@konce-pt/angular 0.7.7 → 0.7.9

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',
@@ -762,6 +763,11 @@ const KPT_MESSAGES_EN = {
762
763
  nextYear: 'Next year',
763
764
  prevYears: 'Previous years',
764
765
  nextYears: 'Next years',
766
+ prevDecades: 'Previous decades',
767
+ nextDecades: 'Next decades',
768
+ chooseMonth: 'Choose month',
769
+ chooseYear: 'Choose year',
770
+ chooseDecade: 'Choose decade',
765
771
  calendar: 'Calendar',
766
772
  month: 'Month',
767
773
  time: 'Time',
@@ -997,6 +1003,7 @@ const KPT_MESSAGES_PL = {
997
1003
  min: 'min',
998
1004
  max: 'max',
999
1005
  editCell: 'Edytuj: {column}',
1006
+ total: 'Razem',
1000
1007
  },
1001
1008
  confirm: {
1002
1009
  header: 'Potwierdzenie',
@@ -1024,6 +1031,11 @@ const KPT_MESSAGES_PL = {
1024
1031
  nextYear: 'Następny rok',
1025
1032
  prevYears: 'Poprzednie lata',
1026
1033
  nextYears: 'Następne lata',
1034
+ prevDecades: 'Poprzednie dekady',
1035
+ nextDecades: 'Następne dekady',
1036
+ chooseMonth: 'Wybierz miesiąc',
1037
+ chooseYear: 'Wybierz rok',
1038
+ chooseDecade: 'Wybierz dekadę',
1027
1039
  calendar: 'Kalendarz',
1028
1040
  month: 'Miesiąc',
1029
1041
  time: 'Godzina',
@@ -3047,7 +3059,7 @@ class KptClock {
3047
3059
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptClock, { className: "KptClock", filePath: "lib/datepicker/clock.component.ts", lineNumber: 94 }); })();
3048
3060
 
3049
3061
  const _forTrack0$8 = ($index, $item) => $item.iso;
3050
- const _forTrack1$1 = ($index, $item) => $item.value;
3062
+ const _forTrack1$2 = ($index, $item) => $item.label;
3051
3063
  function KptDatepicker_Conditional_2_Template(rf, ctx) { if (rf & 1) {
3052
3064
  i0.ɵɵelementStart(0, "span", 2);
3053
3065
  i0.ɵɵtext(1);
@@ -3076,325 +3088,284 @@ function KptDatepicker_Conditional_5_Template(rf, ctx) { if (rf & 1) {
3076
3088
  const ctx_r0 = i0.ɵɵnextContext();
3077
3089
  i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("common.clear"));
3078
3090
  } }
3079
- function KptDatepicker_ng_template_7_Case_1_Template(rf, ctx) { if (rf & 1) {
3080
- const _r4 = i0.ɵɵgetCurrentView();
3081
- i0.ɵɵelementStart(0, "kpt-clock", 11);
3082
- i0.ɵɵtwoWayListener("valueChange", function KptDatepicker_ng_template_7_Case_1_Template_kpt_clock_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.timeStr, $event) || (ctx_r0.timeStr = $event); return i0.ɵɵresetView($event); });
3091
+ function KptDatepicker_ng_template_7_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
3092
+ const _r5 = i0.ɵɵgetCurrentView();
3093
+ i0.ɵɵelementStart(0, "div", 12)(1, "button", 14);
3094
+ i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Conditional_1_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.backToCalendar()); });
3095
+ i0.ɵɵelement(2, "kpt-icon", 15);
3083
3096
  i0.ɵɵelementEnd();
3084
- i0.ɵɵelementStart(1, "div", 12)(2, "kpt-button", 13);
3085
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_1_Template_kpt_button_click_2_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.commit()); });
3086
- i0.ɵɵtext(3);
3097
+ i0.ɵɵelementStart(3, "span", 16);
3098
+ i0.ɵɵtext(4);
3087
3099
  i0.ɵɵelementEnd()();
3088
3100
  } if (rf & 2) {
3089
- const ctx_r0 = i0.ɵɵnextContext(2);
3090
- i0.ɵɵtwoWayProperty("value", ctx_r0.timeStr);
3091
- i0.ɵɵproperty("hourFormat", ctx_r0.hourFormat())("minuteStep", ctx_r0.minuteStep());
3092
- i0.ɵɵadvance(3);
3093
- i0.ɵɵtextInterpolate(ctx_r0.i18n.t("common.done"));
3094
- } }
3095
- function KptDatepicker_ng_template_7_Case_2_Conditional_0_For_9_Template(rf, ctx) { if (rf & 1) {
3096
- i0.ɵɵelementStart(0, "span", 20);
3097
- i0.ɵɵtext(1);
3098
- i0.ɵɵelementEnd();
3099
- } if (rf & 2) {
3100
- const wd_r7 = ctx.$implicit;
3101
+ const ctx_r0 = i0.ɵɵnextContext(3);
3101
3102
  i0.ɵɵadvance();
3102
- i0.ɵɵtextInterpolate(wd_r7);
3103
+ i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.calendar"));
3104
+ i0.ɵɵadvance(3);
3105
+ i0.ɵɵtextInterpolate(ctx_r0.i18n.t("datepicker.time"));
3103
3106
  } }
3104
- function KptDatepicker_ng_template_7_Case_2_Conditional_0_For_12_For_1_Template(rf, ctx) { if (rf & 1) {
3105
- const _r8 = i0.ɵɵgetCurrentView();
3106
- i0.ɵɵelementStart(0, "button", 25);
3107
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_2_Conditional_0_For_12_For_1_Template_button_click_0_listener() { const cell_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r0 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r0.selectDay(cell_r9)); });
3108
- i0.ɵɵtext(1);
3107
+ function KptDatepicker_ng_template_7_Conditional_1_Template(rf, ctx) { if (rf & 1) {
3108
+ const _r4 = i0.ɵɵgetCurrentView();
3109
+ i0.ɵɵconditionalCreate(0, KptDatepicker_ng_template_7_Conditional_1_Conditional_0_Template, 5, 2, "div", 12);
3110
+ i0.ɵɵelementStart(1, "kpt-clock", 13);
3111
+ i0.ɵɵtwoWayListener("valueChange", function KptDatepicker_ng_template_7_Conditional_1_Template_kpt_clock_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.timeStr, $event) || (ctx_r0.timeStr = $event); return i0.ɵɵresetView($event); });
3109
3112
  i0.ɵɵelementEnd();
3110
3113
  } if (rf & 2) {
3111
- const cell_r9 = ctx.$implicit;
3112
- i0.ɵɵclassProp("kpt-calendar__day--muted", !cell_r9.inMonth)("kpt-calendar__day--today", cell_r9.today)("kpt-calendar__day--selected", cell_r9.selected);
3113
- i0.ɵɵproperty("disabled", cell_r9.disabled);
3114
- i0.ɵɵattribute("aria-pressed", cell_r9.selected);
3114
+ const ctx_r0 = i0.ɵɵnextContext(2);
3115
+ i0.ɵɵconditional(ctx_r0.selectionMode() === "datetime" ? 0 : -1);
3115
3116
  i0.ɵɵadvance();
3116
- i0.ɵɵtextInterpolate(cell_r9.day);
3117
- } }
3118
- function KptDatepicker_ng_template_7_Case_2_Conditional_0_For_12_Template(rf, ctx) { if (rf & 1) {
3119
- i0.ɵɵrepeaterCreate(0, KptDatepicker_ng_template_7_Case_2_Conditional_0_For_12_For_1_Template, 2, 9, "button", 24, _forTrack0$8);
3120
- } if (rf & 2) {
3121
- const week_r10 = ctx.$implicit;
3122
- i0.ɵɵrepeater(week_r10);
3117
+ i0.ɵɵtwoWayProperty("value", ctx_r0.timeStr);
3118
+ i0.ɵɵproperty("hourFormat", ctx_r0.hourFormat())("minuteStep", ctx_r0.minuteStep());
3123
3119
  } }
3124
- function KptDatepicker_ng_template_7_Case_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
3120
+ function KptDatepicker_ng_template_7_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
3125
3121
  const _r6 = i0.ɵɵgetCurrentView();
3126
- i0.ɵɵelementStart(0, "div", 14)(1, "button", 15);
3127
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_2_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.prevMonth()); });
3128
- i0.ɵɵelement(2, "kpt-icon", 16);
3129
- i0.ɵɵelementEnd();
3130
- i0.ɵɵelementStart(3, "span", 17);
3131
- i0.ɵɵtext(4);
3132
- i0.ɵɵelementEnd();
3133
- i0.ɵɵelementStart(5, "button", 15);
3134
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_2_Conditional_0_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.nextMonth()); });
3135
- i0.ɵɵelement(6, "kpt-icon", 18);
3136
- i0.ɵɵelementEnd()();
3137
- i0.ɵɵelementStart(7, "div", 19);
3138
- i0.ɵɵrepeaterCreate(8, KptDatepicker_ng_template_7_Case_2_Conditional_0_For_9_Template, 2, 1, "span", 20, i0.ɵɵrepeaterTrackByIdentity);
3139
- i0.ɵɵelementEnd();
3140
- i0.ɵɵelementStart(10, "div", 21);
3141
- i0.ɵɵrepeaterCreate(11, KptDatepicker_ng_template_7_Case_2_Conditional_0_For_12_Template, 2, 0, null, null, i0.ɵɵrepeaterTrackByIndex);
3122
+ i0.ɵɵelementStart(0, "button", 22);
3123
+ i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Conditional_2_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.pagePrev()); });
3124
+ i0.ɵɵelement(1, "kpt-icon", 15);
3142
3125
  i0.ɵɵelementEnd();
3143
- i0.ɵɵelementStart(13, "button", 22);
3144
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_2_Conditional_0_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openClock()); });
3145
- i0.ɵɵelement(14, "kpt-icon", 23);
3146
- i0.ɵɵelementStart(15, "span");
3147
- i0.ɵɵtext(16);
3148
- i0.ɵɵelementEnd()();
3149
3126
  } if (rf & 2) {
3150
3127
  const ctx_r0 = i0.ɵɵnextContext(3);
3151
- i0.ɵɵadvance();
3152
- i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.prevMonth"));
3153
- i0.ɵɵadvance(3);
3154
- i0.ɵɵtextInterpolate(ctx_r0.monthLabel());
3155
- i0.ɵɵadvance();
3156
- i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.nextMonth"));
3157
- i0.ɵɵadvance(3);
3158
- i0.ɵɵrepeater(ctx_r0.weekdays());
3159
- i0.ɵɵadvance(3);
3160
- i0.ɵɵrepeater(ctx_r0.weeks());
3161
- i0.ɵɵadvance(5);
3162
- i0.ɵɵtextInterpolate(ctx_r0.timeBarLabel());
3128
+ i0.ɵɵproperty("disabled", !ctx_r0.canPageBack());
3129
+ i0.ɵɵattribute("aria-label", ctx_r0.navPrevLabel());
3163
3130
  } }
3164
- function KptDatepicker_ng_template_7_Case_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
3165
- const _r11 = i0.ɵɵgetCurrentView();
3166
- i0.ɵɵelementStart(0, "div", 14)(1, "button", 15);
3167
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_2_Conditional_1_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r11); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.backToCalendar()); });
3168
- i0.ɵɵelement(2, "kpt-icon", 16);
3131
+ function KptDatepicker_ng_template_7_Conditional_2_Case_3_Template(rf, ctx) { if (rf & 1) {
3132
+ const _r7 = i0.ɵɵgetCurrentView();
3133
+ i0.ɵɵelementStart(0, "button", 23);
3134
+ i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Conditional_2_Case_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.goTo("month")); });
3135
+ i0.ɵɵtext(1);
3169
3136
  i0.ɵɵelementEnd();
3170
- i0.ɵɵelementStart(3, "span", 17);
3171
- i0.ɵɵtext(4);
3172
- i0.ɵɵelementEnd()();
3173
- i0.ɵɵelementStart(5, "kpt-clock", 11);
3174
- i0.ɵɵtwoWayListener("valueChange", function KptDatepicker_ng_template_7_Case_2_Conditional_1_Template_kpt_clock_valueChange_5_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r0 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r0.timeStr, $event) || (ctx_r0.timeStr = $event); return i0.ɵɵresetView($event); });
3137
+ i0.ɵɵelementStart(2, "button", 23);
3138
+ i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Conditional_2_Case_3_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.goTo("year")); });
3139
+ i0.ɵɵtext(3);
3175
3140
  i0.ɵɵelementEnd();
3176
3141
  } if (rf & 2) {
3177
3142
  const ctx_r0 = i0.ɵɵnextContext(3);
3143
+ i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.chooseMonth"));
3178
3144
  i0.ɵɵadvance();
3179
- i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.calendar"));
3180
- i0.ɵɵadvance(3);
3181
- i0.ɵɵtextInterpolate(ctx_r0.i18n.t("datepicker.time"));
3145
+ i0.ɵɵtextInterpolate(ctx_r0.monthName());
3182
3146
  i0.ɵɵadvance();
3183
- i0.ɵɵtwoWayProperty("value", ctx_r0.timeStr);
3184
- i0.ɵɵproperty("hourFormat", ctx_r0.hourFormat())("minuteStep", ctx_r0.minuteStep());
3185
- } }
3186
- function KptDatepicker_ng_template_7_Case_2_Template(rf, ctx) { if (rf & 1) {
3187
- const _r5 = i0.ɵɵgetCurrentView();
3188
- i0.ɵɵconditionalCreate(0, KptDatepicker_ng_template_7_Case_2_Conditional_0_Template, 17, 4)(1, KptDatepicker_ng_template_7_Case_2_Conditional_1_Template, 6, 5);
3189
- i0.ɵɵelementStart(2, "div", 12)(3, "kpt-button", 13);
3190
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_2_Template_kpt_button_click_3_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.commit()); });
3191
- i0.ɵɵtext(4);
3192
- i0.ɵɵelementEnd()();
3193
- } if (rf & 2) {
3194
- const ctx_r0 = i0.ɵɵnextContext(2);
3195
- i0.ɵɵconditional(ctx_r0.dtView() === "calendar" ? 0 : 1);
3196
- i0.ɵɵadvance(4);
3197
- i0.ɵɵtextInterpolate(ctx_r0.i18n.t("common.done"));
3147
+ i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.chooseYear"));
3148
+ i0.ɵɵadvance();
3149
+ i0.ɵɵtextInterpolate(ctx_r0.viewYear());
3198
3150
  } }
3199
- function KptDatepicker_ng_template_7_Case_3_For_9_Template(rf, ctx) { if (rf & 1) {
3200
- const _r13 = i0.ɵɵgetCurrentView();
3201
- i0.ɵɵelementStart(0, "button", 28);
3202
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_3_For_9_Template_button_click_0_listener() { const cell_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.selectCell(cell_r14)); });
3151
+ function KptDatepicker_ng_template_7_Conditional_2_Case_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
3152
+ i0.ɵɵelementStart(0, "span", 16);
3203
3153
  i0.ɵɵtext(1);
3204
3154
  i0.ɵɵelementEnd();
3205
3155
  } if (rf & 2) {
3206
- const cell_r14 = ctx.$implicit;
3207
- i0.ɵɵclassProp("kpt-calendar__cell--selected", cell_r14.selected);
3208
- i0.ɵɵproperty("disabled", cell_r14.disabled);
3209
- i0.ɵɵattribute("aria-pressed", cell_r14.selected);
3156
+ const ctx_r0 = i0.ɵɵnextContext(4);
3210
3157
  i0.ɵɵadvance();
3211
- i0.ɵɵtextInterpolate(cell_r14.label);
3158
+ i0.ɵɵtextInterpolate(ctx_r0.i18n.t("datepicker.month"));
3212
3159
  } }
3213
- function KptDatepicker_ng_template_7_Case_3_Template(rf, ctx) { if (rf & 1) {
3214
- const _r12 = i0.ɵɵgetCurrentView();
3215
- i0.ɵɵelementStart(0, "div", 14)(1, "button", 15);
3216
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_3_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r12); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.prevYear()); });
3217
- i0.ɵɵelement(2, "kpt-icon", 16);
3218
- i0.ɵɵelementEnd();
3219
- i0.ɵɵelementStart(3, "span", 17);
3220
- i0.ɵɵtext(4);
3221
- i0.ɵɵelementEnd();
3222
- i0.ɵɵelementStart(5, "button", 15);
3223
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_3_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r12); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.nextYear()); });
3224
- i0.ɵɵelement(6, "kpt-icon", 18);
3225
- i0.ɵɵelementEnd()();
3226
- i0.ɵɵelementStart(7, "div", 26);
3227
- i0.ɵɵrepeaterCreate(8, KptDatepicker_ng_template_7_Case_3_For_9_Template, 2, 5, "button", 27, _forTrack1$1);
3160
+ function KptDatepicker_ng_template_7_Conditional_2_Case_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
3161
+ const _r8 = i0.ɵɵgetCurrentView();
3162
+ i0.ɵɵelementStart(0, "button", 23);
3163
+ i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Conditional_2_Case_4_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.goTo("year")); });
3164
+ i0.ɵɵtext(1);
3228
3165
  i0.ɵɵelementEnd();
3229
3166
  } if (rf & 2) {
3230
- const ctx_r0 = i0.ɵɵnextContext(2);
3167
+ const ctx_r0 = i0.ɵɵnextContext(4);
3168
+ i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.chooseYear"));
3231
3169
  i0.ɵɵadvance();
3232
- i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.prevYear"));
3233
- i0.ɵɵadvance(3);
3234
3170
  i0.ɵɵtextInterpolate(ctx_r0.viewYear());
3235
- i0.ɵɵadvance();
3236
- i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.nextYear"));
3237
- i0.ɵɵadvance(3);
3238
- i0.ɵɵrepeater(ctx_r0.monthCells());
3239
3171
  } }
3240
- function KptDatepicker_ng_template_7_Case_4_For_9_Template(rf, ctx) { if (rf & 1) {
3241
- const _r16 = i0.ɵɵgetCurrentView();
3242
- i0.ɵɵelementStart(0, "button", 28);
3243
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_4_For_9_Template_button_click_0_listener() { const cell_r17 = i0.ɵɵrestoreView(_r16).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.selectCell(cell_r17)); });
3244
- i0.ɵɵtext(1);
3245
- i0.ɵɵelementEnd();
3172
+ function KptDatepicker_ng_template_7_Conditional_2_Case_4_Template(rf, ctx) { if (rf & 1) {
3173
+ i0.ɵɵconditionalCreate(0, KptDatepicker_ng_template_7_Conditional_2_Case_4_Conditional_0_Template, 2, 1, "span", 16)(1, KptDatepicker_ng_template_7_Conditional_2_Case_4_Conditional_1_Template, 2, 2, "button", 19);
3246
3174
  } if (rf & 2) {
3247
- const cell_r17 = ctx.$implicit;
3248
- i0.ɵɵclassProp("kpt-calendar__cell--selected", cell_r17.selected);
3249
- i0.ɵɵproperty("disabled", cell_r17.disabled);
3250
- i0.ɵɵattribute("aria-pressed", cell_r17.selected);
3251
- i0.ɵɵadvance();
3252
- i0.ɵɵtextInterpolate(cell_r17.label);
3175
+ const ctx_r0 = i0.ɵɵnextContext(3);
3176
+ i0.ɵɵconditional(ctx_r0.selectionMode() === "month" ? 0 : 1);
3253
3177
  } }
3254
- function KptDatepicker_ng_template_7_Case_4_Template(rf, ctx) { if (rf & 1) {
3255
- const _r15 = i0.ɵɵgetCurrentView();
3256
- i0.ɵɵelementStart(0, "div", 14)(1, "button", 15);
3257
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r15); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.prevYearPage()); });
3258
- i0.ɵɵelement(2, "kpt-icon", 16);
3259
- i0.ɵɵelementEnd();
3260
- i0.ɵɵelementStart(3, "span", 17);
3261
- i0.ɵɵtext(4);
3262
- i0.ɵɵelementEnd();
3263
- i0.ɵɵelementStart(5, "button", 15);
3264
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_4_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r15); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.nextYearPage()); });
3265
- i0.ɵɵelement(6, "kpt-icon", 18);
3266
- i0.ɵɵelementEnd()();
3267
- i0.ɵɵelementStart(7, "div", 26);
3268
- i0.ɵɵrepeaterCreate(8, KptDatepicker_ng_template_7_Case_4_For_9_Template, 2, 5, "button", 27, _forTrack1$1);
3178
+ function KptDatepicker_ng_template_7_Conditional_2_Case_5_Template(rf, ctx) { if (rf & 1) {
3179
+ const _r9 = i0.ɵɵgetCurrentView();
3180
+ i0.ɵɵelementStart(0, "button", 23);
3181
+ i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Conditional_2_Case_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.goTo("decade")); });
3182
+ i0.ɵɵtext(1);
3269
3183
  i0.ɵɵelementEnd();
3270
3184
  } if (rf & 2) {
3271
- const ctx_r0 = i0.ɵɵnextContext(2);
3185
+ const ctx_r0 = i0.ɵɵnextContext(3);
3186
+ i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.chooseDecade"));
3272
3187
  i0.ɵɵadvance();
3273
- i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.prevYears"));
3274
- i0.ɵɵadvance(3);
3275
3188
  i0.ɵɵtextInterpolate(ctx_r0.yearRangeLabel());
3276
- i0.ɵɵadvance();
3277
- i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.nextYears"));
3278
- i0.ɵɵadvance(3);
3279
- i0.ɵɵrepeater(ctx_r0.yearCells());
3280
3189
  } }
3281
- function KptDatepicker_ng_template_7_Case_5_For_5_Template(rf, ctx) { if (rf & 1) {
3282
- const _r18 = i0.ɵɵgetCurrentView();
3283
- i0.ɵɵelementStart(0, "button", 30);
3284
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_5_For_5_Template_button_click_0_listener() { const cell_r19 = i0.ɵɵrestoreView(_r18).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.selectCell(cell_r19)); });
3190
+ function KptDatepicker_ng_template_7_Conditional_2_Case_6_Template(rf, ctx) { if (rf & 1) {
3191
+ i0.ɵɵelementStart(0, "span", 16);
3285
3192
  i0.ɵɵtext(1);
3286
3193
  i0.ɵɵelementEnd();
3287
3194
  } if (rf & 2) {
3288
- const cell_r19 = ctx.$implicit;
3289
- i0.ɵɵclassProp("kpt-calendar__cell--selected", cell_r19.selected);
3290
- i0.ɵɵattribute("aria-pressed", cell_r19.selected);
3195
+ const ctx_r0 = i0.ɵɵnextContext(3);
3291
3196
  i0.ɵɵadvance();
3292
- i0.ɵɵtextInterpolate(cell_r19.label);
3197
+ i0.ɵɵtextInterpolate(ctx_r0.decadeRangeLabel());
3293
3198
  } }
3294
- function KptDatepicker_ng_template_7_Case_5_Template(rf, ctx) { if (rf & 1) {
3295
- i0.ɵɵelementStart(0, "div", 14)(1, "span", 17);
3296
- i0.ɵɵtext(2);
3297
- i0.ɵɵelementEnd()();
3298
- i0.ɵɵelementStart(3, "div", 26);
3299
- i0.ɵɵrepeaterCreate(4, KptDatepicker_ng_template_7_Case_5_For_5_Template, 2, 4, "button", 29, _forTrack1$1);
3199
+ function KptDatepicker_ng_template_7_Conditional_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
3200
+ const _r10 = i0.ɵɵgetCurrentView();
3201
+ i0.ɵɵelementStart(0, "button", 22);
3202
+ i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Conditional_2_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.pageNext()); });
3203
+ i0.ɵɵelement(1, "kpt-icon", 24);
3300
3204
  i0.ɵɵelementEnd();
3301
3205
  } if (rf & 2) {
3302
- const ctx_r0 = i0.ɵɵnextContext(2);
3303
- i0.ɵɵadvance(2);
3304
- i0.ɵɵtextInterpolate(ctx_r0.i18n.t("datepicker.month"));
3305
- i0.ɵɵadvance(2);
3306
- i0.ɵɵrepeater(ctx_r0.monthCells());
3206
+ const ctx_r0 = i0.ɵɵnextContext(3);
3207
+ i0.ɵɵproperty("disabled", !ctx_r0.canPageForward());
3208
+ i0.ɵɵattribute("aria-label", ctx_r0.navNextLabel());
3307
3209
  } }
3308
- function KptDatepicker_ng_template_7_Case_6_For_9_Template(rf, ctx) { if (rf & 1) {
3309
- i0.ɵɵelementStart(0, "span", 20);
3210
+ function KptDatepicker_ng_template_7_Conditional_2_Case_8_For_2_Template(rf, ctx) { if (rf & 1) {
3211
+ i0.ɵɵelementStart(0, "span", 26);
3310
3212
  i0.ɵɵtext(1);
3311
3213
  i0.ɵɵelementEnd();
3312
3214
  } if (rf & 2) {
3313
- const wd_r21 = ctx.$implicit;
3215
+ const wd_r11 = ctx.$implicit;
3314
3216
  i0.ɵɵadvance();
3315
- i0.ɵɵtextInterpolate(wd_r21);
3217
+ i0.ɵɵtextInterpolate(wd_r11);
3316
3218
  } }
3317
- function KptDatepicker_ng_template_7_Case_6_For_12_For_1_Template(rf, ctx) { if (rf & 1) {
3318
- const _r22 = i0.ɵɵgetCurrentView();
3319
- i0.ɵɵelementStart(0, "button", 25);
3320
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_6_For_12_For_1_Template_button_click_0_listener() { const cell_r23 = i0.ɵɵrestoreView(_r22).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.selectDay(cell_r23)); });
3219
+ function KptDatepicker_ng_template_7_Conditional_2_Case_8_For_5_For_1_Template(rf, ctx) { if (rf & 1) {
3220
+ const _r12 = i0.ɵɵgetCurrentView();
3221
+ i0.ɵɵelementStart(0, "button", 29);
3222
+ i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Conditional_2_Case_8_For_5_For_1_Template_button_click_0_listener() { const cell_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r0 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r0.selectDay(cell_r13)); });
3321
3223
  i0.ɵɵtext(1);
3322
3224
  i0.ɵɵelementEnd();
3323
3225
  } if (rf & 2) {
3324
- const cell_r23 = ctx.$implicit;
3325
- i0.ɵɵclassProp("kpt-calendar__day--muted", !cell_r23.inMonth)("kpt-calendar__day--today", cell_r23.today)("kpt-calendar__day--selected", cell_r23.selected);
3326
- i0.ɵɵproperty("disabled", cell_r23.disabled);
3327
- i0.ɵɵattribute("aria-pressed", cell_r23.selected);
3226
+ const cell_r13 = ctx.$implicit;
3227
+ i0.ɵɵclassProp("kpt-calendar__day--muted", !cell_r13.inMonth)("kpt-calendar__day--today", cell_r13.today)("kpt-calendar__day--selected", cell_r13.selected);
3228
+ i0.ɵɵproperty("disabled", cell_r13.disabled);
3229
+ i0.ɵɵattribute("aria-pressed", cell_r13.selected);
3328
3230
  i0.ɵɵadvance();
3329
- i0.ɵɵtextInterpolate(cell_r23.day);
3231
+ i0.ɵɵtextInterpolate(cell_r13.day);
3330
3232
  } }
3331
- function KptDatepicker_ng_template_7_Case_6_For_12_Template(rf, ctx) { if (rf & 1) {
3332
- i0.ɵɵrepeaterCreate(0, KptDatepicker_ng_template_7_Case_6_For_12_For_1_Template, 2, 9, "button", 24, _forTrack0$8);
3233
+ function KptDatepicker_ng_template_7_Conditional_2_Case_8_For_5_Template(rf, ctx) { if (rf & 1) {
3234
+ i0.ɵɵrepeaterCreate(0, KptDatepicker_ng_template_7_Conditional_2_Case_8_For_5_For_1_Template, 2, 9, "button", 28, _forTrack0$8);
3333
3235
  } if (rf & 2) {
3334
- const week_r24 = ctx.$implicit;
3335
- i0.ɵɵrepeater(week_r24);
3236
+ const week_r14 = ctx.$implicit;
3237
+ i0.ɵɵrepeater(week_r14);
3336
3238
  } }
3337
- function KptDatepicker_ng_template_7_Case_6_Template(rf, ctx) { if (rf & 1) {
3338
- const _r20 = i0.ɵɵgetCurrentView();
3339
- i0.ɵɵelementStart(0, "div", 14)(1, "button", 15);
3340
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_6_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r20); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.prevMonth()); });
3341
- i0.ɵɵelement(2, "kpt-icon", 16);
3239
+ function KptDatepicker_ng_template_7_Conditional_2_Case_8_Template(rf, ctx) { if (rf & 1) {
3240
+ i0.ɵɵelementStart(0, "div", 25);
3241
+ i0.ɵɵrepeaterCreate(1, KptDatepicker_ng_template_7_Conditional_2_Case_8_For_2_Template, 2, 1, "span", 26, i0.ɵɵrepeaterTrackByIdentity);
3342
3242
  i0.ɵɵelementEnd();
3343
- i0.ɵɵelementStart(3, "span", 17);
3344
- i0.ɵɵtext(4);
3243
+ i0.ɵɵelementStart(3, "div", 27);
3244
+ i0.ɵɵrepeaterCreate(4, KptDatepicker_ng_template_7_Conditional_2_Case_8_For_5_Template, 2, 0, null, null, i0.ɵɵrepeaterTrackByIndex);
3245
+ i0.ɵɵelementEnd();
3246
+ } if (rf & 2) {
3247
+ const ctx_r0 = i0.ɵɵnextContext(3);
3248
+ i0.ɵɵadvance();
3249
+ i0.ɵɵrepeater(ctx_r0.weekdays());
3250
+ i0.ɵɵadvance(3);
3251
+ i0.ɵɵrepeater(ctx_r0.weeks());
3252
+ } }
3253
+ function KptDatepicker_ng_template_7_Conditional_2_Case_9_For_2_Template(rf, ctx) { if (rf & 1) {
3254
+ const _r15 = i0.ɵɵgetCurrentView();
3255
+ i0.ɵɵelementStart(0, "button", 32);
3256
+ i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Conditional_2_Case_9_For_2_Template_button_click_0_listener() { const cell_r16 = i0.ɵɵrestoreView(_r15).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.selectCell(cell_r16)); });
3257
+ i0.ɵɵtext(1);
3258
+ i0.ɵɵelementEnd();
3259
+ } if (rf & 2) {
3260
+ const cell_r16 = ctx.$implicit;
3261
+ i0.ɵɵclassProp("kpt-calendar__cell--selected", cell_r16.selected)("kpt-calendar__cell--current", cell_r16.current);
3262
+ i0.ɵɵproperty("disabled", cell_r16.disabled);
3263
+ i0.ɵɵattribute("aria-pressed", cell_r16.selected);
3264
+ i0.ɵɵadvance();
3265
+ i0.ɵɵtextInterpolate(cell_r16.label);
3266
+ } }
3267
+ function KptDatepicker_ng_template_7_Conditional_2_Case_9_Template(rf, ctx) { if (rf & 1) {
3268
+ i0.ɵɵelementStart(0, "div", 30);
3269
+ i0.ɵɵrepeaterCreate(1, KptDatepicker_ng_template_7_Conditional_2_Case_9_For_2_Template, 2, 7, "button", 31, _forTrack1$2);
3345
3270
  i0.ɵɵelementEnd();
3346
- i0.ɵɵelementStart(5, "button", 15);
3347
- i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Case_6_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r20); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.nextMonth()); });
3348
- i0.ɵɵelement(6, "kpt-icon", 18);
3271
+ } if (rf & 2) {
3272
+ const ctx_r0 = i0.ɵɵnextContext(3);
3273
+ i0.ɵɵclassProp("kpt-calendar__grid--decades", ctx_r0.panelView() === "decade");
3274
+ i0.ɵɵadvance();
3275
+ i0.ɵɵrepeater(ctx_r0.levelCells());
3276
+ } }
3277
+ function KptDatepicker_ng_template_7_Conditional_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
3278
+ const _r17 = i0.ɵɵgetCurrentView();
3279
+ i0.ɵɵelementStart(0, "button", 33);
3280
+ i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Conditional_2_Conditional_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openClock()); });
3281
+ i0.ɵɵelement(1, "kpt-icon", 34);
3282
+ i0.ɵɵelementStart(2, "span");
3283
+ i0.ɵɵtext(3);
3349
3284
  i0.ɵɵelementEnd()();
3350
- i0.ɵɵelementStart(7, "div", 19);
3351
- i0.ɵɵrepeaterCreate(8, KptDatepicker_ng_template_7_Case_6_For_9_Template, 2, 1, "span", 20, i0.ɵɵrepeaterTrackByIdentity);
3285
+ } if (rf & 2) {
3286
+ const ctx_r0 = i0.ɵɵnextContext(3);
3287
+ i0.ɵɵadvance(3);
3288
+ i0.ɵɵtextInterpolate(ctx_r0.timeBarLabel());
3289
+ } }
3290
+ function KptDatepicker_ng_template_7_Conditional_2_Template(rf, ctx) { if (rf & 1) {
3291
+ i0.ɵɵelementStart(0, "div", 12);
3292
+ i0.ɵɵconditionalCreate(1, KptDatepicker_ng_template_7_Conditional_2_Conditional_1_Template, 2, 2, "button", 17);
3293
+ i0.ɵɵelementStart(2, "span", 18);
3294
+ i0.ɵɵconditionalCreate(3, KptDatepicker_ng_template_7_Conditional_2_Case_3_Template, 4, 4)(4, KptDatepicker_ng_template_7_Conditional_2_Case_4_Template, 2, 1)(5, KptDatepicker_ng_template_7_Conditional_2_Case_5_Template, 2, 2, "button", 19)(6, KptDatepicker_ng_template_7_Conditional_2_Case_6_Template, 2, 1, "span", 16);
3352
3295
  i0.ɵɵelementEnd();
3353
- i0.ɵɵelementStart(10, "div", 21);
3354
- i0.ɵɵrepeaterCreate(11, KptDatepicker_ng_template_7_Case_6_For_12_Template, 2, 0, null, null, i0.ɵɵrepeaterTrackByIndex);
3296
+ i0.ɵɵconditionalCreate(7, KptDatepicker_ng_template_7_Conditional_2_Conditional_7_Template, 2, 2, "button", 17);
3355
3297
  i0.ɵɵelementEnd();
3298
+ i0.ɵɵconditionalCreate(8, KptDatepicker_ng_template_7_Conditional_2_Case_8_Template, 6, 0)(9, KptDatepicker_ng_template_7_Conditional_2_Case_9_Template, 3, 2, "div", 20);
3299
+ i0.ɵɵconditionalCreate(10, KptDatepicker_ng_template_7_Conditional_2_Conditional_10_Template, 4, 1, "button", 21);
3356
3300
  } if (rf & 2) {
3301
+ let tmp_4_0;
3302
+ let tmp_6_0;
3357
3303
  const ctx_r0 = i0.ɵɵnextContext(2);
3358
3304
  i0.ɵɵadvance();
3359
- i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.prevMonth"));
3360
- i0.ɵɵadvance(3);
3361
- i0.ɵɵtextInterpolate(ctx_r0.monthLabel());
3305
+ i0.ɵɵconditional(ctx_r0.hasNav() ? 1 : -1);
3306
+ i0.ɵɵadvance(2);
3307
+ i0.ɵɵconditional((tmp_4_0 = ctx_r0.panelView()) === "day" ? 3 : tmp_4_0 === "month" ? 4 : tmp_4_0 === "year" ? 5 : tmp_4_0 === "decade" ? 6 : -1);
3308
+ i0.ɵɵadvance(4);
3309
+ i0.ɵɵconditional(ctx_r0.hasNav() ? 7 : -1);
3362
3310
  i0.ɵɵadvance();
3363
- i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.nextMonth"));
3364
- i0.ɵɵadvance(3);
3365
- i0.ɵɵrepeater(ctx_r0.weekdays());
3366
- i0.ɵɵadvance(3);
3367
- i0.ɵɵrepeater(ctx_r0.weeks());
3311
+ i0.ɵɵconditional((tmp_6_0 = ctx_r0.panelView()) === "day" ? 8 : 9);
3312
+ i0.ɵɵadvance(2);
3313
+ i0.ɵɵconditional(ctx_r0.selectionMode() === "datetime" ? 10 : -1);
3314
+ } }
3315
+ function KptDatepicker_ng_template_7_Conditional_3_Template(rf, ctx) { if (rf & 1) {
3316
+ const _r18 = i0.ɵɵgetCurrentView();
3317
+ i0.ɵɵelementStart(0, "div", 11)(1, "kpt-button", 35);
3318
+ i0.ɵɵlistener("click", function KptDatepicker_ng_template_7_Conditional_3_Template_kpt_button_click_1_listener() { i0.ɵɵrestoreView(_r18); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.commit()); });
3319
+ i0.ɵɵtext(2);
3320
+ i0.ɵɵelementEnd()();
3321
+ } if (rf & 2) {
3322
+ const ctx_r0 = i0.ɵɵnextContext(2);
3323
+ i0.ɵɵadvance(2);
3324
+ i0.ɵɵtextInterpolate(ctx_r0.i18n.t("common.done"));
3368
3325
  } }
3369
3326
  function KptDatepicker_ng_template_7_Template(rf, ctx) { if (rf & 1) {
3370
3327
  const _r3 = i0.ɵɵgetCurrentView();
3371
3328
  i0.ɵɵelementStart(0, "div", 10);
3372
3329
  i0.ɵɵlistener("keydown.escape", function KptDatepicker_ng_template_7_Template_div_keydown_escape_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.close()); });
3373
- i0.ɵɵconditionalCreate(1, KptDatepicker_ng_template_7_Case_1_Template, 4, 4)(2, KptDatepicker_ng_template_7_Case_2_Template, 5, 2)(3, KptDatepicker_ng_template_7_Case_3_Template, 10, 3)(4, KptDatepicker_ng_template_7_Case_4_Template, 10, 3)(5, KptDatepicker_ng_template_7_Case_5_Template, 6, 1)(6, KptDatepicker_ng_template_7_Case_6_Template, 13, 3);
3330
+ i0.ɵɵconditionalCreate(1, KptDatepicker_ng_template_7_Conditional_1_Template, 2, 4)(2, KptDatepicker_ng_template_7_Conditional_2_Template, 11, 5);
3331
+ i0.ɵɵconditionalCreate(3, KptDatepicker_ng_template_7_Conditional_3_Template, 3, 1, "div", 11);
3374
3332
  i0.ɵɵelementEnd();
3375
3333
  } if (rf & 2) {
3376
- let tmp_3_0;
3377
3334
  const ctx_r0 = i0.ɵɵnextContext();
3378
- i0.ɵɵclassProp("kpt-calendar--clock", ctx_r0.selectionMode() === "time" || ctx_r0.selectionMode() === "datetime" && ctx_r0.dtView() === "clock");
3335
+ i0.ɵɵclassProp("kpt-calendar--clock", ctx_r0.showClock());
3379
3336
  i0.ɵɵadvance();
3380
- i0.ɵɵconditional((tmp_3_0 = ctx_r0.selectionMode()) === "time" ? 1 : tmp_3_0 === "datetime" ? 2 : tmp_3_0 === "monthYear" ? 3 : tmp_3_0 === "year" ? 4 : tmp_3_0 === "month" ? 5 : 6);
3337
+ i0.ɵɵconditional(ctx_r0.showClock() ? 1 : 2);
3338
+ i0.ɵɵadvance(2);
3339
+ i0.ɵɵconditional(ctx_r0.hasFooter() ? 3 : -1);
3381
3340
  } }
3341
+ /** Kolejność poziomów panelu, od najdrobniejszego. Indeks = „wysokość" widoku. */
3342
+ const LEVELS = ['day', 'month', 'year', 'decade'];
3382
3343
  const pad$1 = (n) => String(n).padStart(2, '0');
3383
3344
  const toIso$1 = (d) => `${d.getFullYear()}-${pad$1(d.getMonth() + 1)}-${pad$1(d.getDate())}`;
3384
3345
  /**
3385
3346
  * Wybór daty/godziny z własnym kalendarzem (CDK Overlay), Signal Forms.
3386
3347
  * Granulacja przez `selectionMode`: data, miesiąc+rok, rok, miesiąc, data+godzina, sama godzina.
3348
+ * Panel jest stosem widoków dekady → lata → miesiące → dni: klik w komórkę schodzi poziom niżej,
3349
+ * klik w tytuł wchodzi poziom wyżej. Poziom startowy ustawia `startView` (data urodzenia:
3350
+ * `startView="decade"`); domyślnie startuje na poziomie, na którym tryb zatwierdza wartość.
3387
3351
  * Godzina na tarczy zegara (dwa etapy: godziny → minuty), format 12/24h przez `hourFormat`.
3388
3352
  * Format wartości zależy od trybu: 'RRRR-MM-DD' / 'RRRR-MM' / 'RRRR' / 'MM'
3389
3353
  * / 'RRRR-MM-DDTHH:mm' (datetime) / 'HH:mm' (time). Czas przechowywany zawsze 24h.
3390
3354
  * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`
3391
3355
  *
3392
3356
  * @example
3393
- * <kpt-datepicker [formField]="f.birthDate" minDate="1900-01-01" />
3357
+ * <kpt-datepicker [formField]="f.birthDate" startView="decade" minDate="1900-01-01" />
3394
3358
  * <kpt-datepicker selectionMode="datetime" [hourFormat]="12" [(value)]="meetingAt" />
3395
3359
  * <kpt-datepicker selectionMode="time" [(value)]="alarm" />
3396
3360
  */
3397
3361
  class KptDatepicker {
3362
+ effectiveStartView() {
3363
+ const commit = LEVELS.indexOf(this.commitLevel());
3364
+ const top = LEVELS.indexOf(this.topLevel());
3365
+ const wanted = this.startView();
3366
+ const idx = wanted ? LEVELS.indexOf(wanted) : commit;
3367
+ return LEVELS[Math.min(Math.max(idx, commit), top)];
3368
+ }
3398
3369
  constructor() {
3399
3370
  this.value = model('', /* @ts-ignore */
3400
3371
  ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
@@ -3415,6 +3386,13 @@ class KptDatepicker {
3415
3386
  /** Granulacja wyboru. */
3416
3387
  this.selectionMode = input('date', /* @ts-ignore */
3417
3388
  ...(ngDevMode ? [{ debugName: "selectionMode" }] : /* istanbul ignore next */ []));
3389
+ /**
3390
+ * Poziom, od którego otwiera się panel. `null` = poziom zatwierdzania danego trybu
3391
+ * (dni dla 'date'). Nie schodzi poniżej tego poziomu — `startView="day"` w trybie 'year'
3392
+ * nie ma sensu i jest podnoszony do 'year'.
3393
+ */
3394
+ this.startView = input(null, /* @ts-ignore */
3395
+ ...(ngDevMode ? [{ debugName: "startView" }] : /* istanbul ignore next */ []));
3418
3396
  /** Prezentacja miesiąca w trybie 'month': słownie ('long') lub liczbą ('number'). */
3419
3397
  this.monthDisplay = input('long', /* @ts-ignore */
3420
3398
  ...(ngDevMode ? [{ debugName: "monthDisplay" }] : /* istanbul ignore next */ []));
@@ -3455,6 +3433,25 @@ class KptDatepicker {
3455
3433
  this.today = new Date();
3456
3434
  this.view = signal({ y: this.today.getFullYear(), m: this.today.getMonth() }, /* @ts-ignore */
3457
3435
  ...(ngDevMode ? [{ debugName: "view" }] : /* istanbul ignore next */ []));
3436
+ /** Aktualny poziom stosu widoków panelu. */
3437
+ this.panelView = signal('day', /* @ts-ignore */
3438
+ ...(ngDevMode ? [{ debugName: "panelView" }] : /* istanbul ignore next */ []));
3439
+ /** Poziom, na którym klik w komórkę zatwierdza wartość zamiast schodzić niżej. */
3440
+ this.commitLevel = computed(() => {
3441
+ switch (this.selectionMode()) {
3442
+ case 'monthYear':
3443
+ case 'month':
3444
+ return 'month';
3445
+ case 'year':
3446
+ return 'year';
3447
+ default:
3448
+ return 'day';
3449
+ }
3450
+ }, /* @ts-ignore */
3451
+ ...(ngDevMode ? [{ debugName: "commitLevel" }] : /* istanbul ignore next */ []));
3452
+ /** Tryb 'month' nie ma roku ani dekady — wartością jest samo 'MM'. */
3453
+ this.topLevel = computed(() => this.selectionMode() === 'month' ? 'month' : 'decade', /* @ts-ignore */
3454
+ ...(ngDevMode ? [{ debugName: "topLevel" }] : /* istanbul ignore next */ []));
3458
3455
  // ── Stan czasu (bufor 'HH:mm', 24h) ──
3459
3456
  this.timeStr = signal('', /* @ts-ignore */
3460
3457
  ...(ngDevMode ? [{ debugName: "timeStr" }] : /* istanbul ignore next */ []));
@@ -3462,24 +3459,77 @@ class KptDatepicker {
3462
3459
  ...(ngDevMode ? [{ debugName: "dtView" }] : /* istanbul ignore next */ []));
3463
3460
  this.pendingDate = signal('', /* @ts-ignore */
3464
3461
  ...(ngDevMode ? [{ debugName: "pendingDate" }] : /* istanbul ignore next */ []));
3462
+ /** Tarcza zamiast siatek: tryb 'time' zawsze, 'datetime' po wejściu w pasek czasu. */
3463
+ this.showClock = computed(() => this.selectionMode() === 'time' || (this.selectionMode() === 'datetime' && this.dtView() === 'clock'), /* @ts-ignore */
3464
+ ...(ngDevMode ? [{ debugName: "showClock" }] : /* istanbul ignore next */ []));
3465
+ this.hasFooter = computed(() => this.selectionMode() === 'time' || this.selectionMode() === 'datetime', /* @ts-ignore */
3466
+ ...(ngDevMode ? [{ debugName: "hasFooter" }] : /* istanbul ignore next */ []));
3465
3467
  this.positions = [
3466
3468
  { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },
3467
3469
  { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },
3468
3470
  ];
3469
3471
  this.viewYear = computed(() => this.view().y, /* @ts-ignore */
3470
3472
  ...(ngDevMode ? [{ debugName: "viewYear" }] : /* istanbul ignore next */ []));
3471
- this.monthLabel = computed(() => {
3473
+ this.monthName = computed(() => this.months()[this.view().m], /* @ts-ignore */
3474
+ ...(ngDevMode ? [{ debugName: "monthName" }] : /* istanbul ignore next */ []));
3475
+ /** Początek dekady widocznej w siatce lat (1979 → 1970). */
3476
+ this.decadeStart = computed(() => Math.floor(this.view().y / 10) * 10, /* @ts-ignore */
3477
+ ...(ngDevMode ? [{ debugName: "decadeStart" }] : /* istanbul ignore next */ []));
3478
+ /** Początek strony dekad: 12 dekad, czyli 120 lat (1979 → 1920, strona 1920–2039). */
3479
+ this.centuryStart = computed(() => Math.floor(this.view().y / 120) * 120, /* @ts-ignore */
3480
+ ...(ngDevMode ? [{ debugName: "centuryStart" }] : /* istanbul ignore next */ []));
3481
+ this.yearRangeLabel = computed(() => `${this.decadeStart()} – ${this.decadeStart() + 9}`, /* @ts-ignore */
3482
+ ...(ngDevMode ? [{ debugName: "yearRangeLabel" }] : /* istanbul ignore next */ []));
3483
+ this.decadeRangeLabel = computed(() => `${this.centuryStart()} – ${this.centuryStart() + 119}`, /* @ts-ignore */
3484
+ ...(ngDevMode ? [{ debugName: "decadeRangeLabel" }] : /* istanbul ignore next */ []));
3485
+ /** Tryb 'month' nie ma po czym nawigować — siatka miesięcy jest kompletna. */
3486
+ this.hasNav = computed(() => this.selectionMode() !== 'month', /* @ts-ignore */
3487
+ ...(ngDevMode ? [{ debugName: "hasNav" }] : /* istanbul ignore next */ []));
3488
+ this.navPrevLabel = computed(() => {
3489
+ switch (this.panelView()) {
3490
+ case 'month': return this.i18n.t('datepicker.prevYear');
3491
+ case 'year': return this.i18n.t('datepicker.prevYears');
3492
+ case 'decade': return this.i18n.t('datepicker.prevDecades');
3493
+ default: return this.i18n.t('datepicker.prevMonth');
3494
+ }
3495
+ }, /* @ts-ignore */
3496
+ ...(ngDevMode ? [{ debugName: "navPrevLabel" }] : /* istanbul ignore next */ []));
3497
+ this.navNextLabel = computed(() => {
3498
+ switch (this.panelView()) {
3499
+ case 'month': return this.i18n.t('datepicker.nextYear');
3500
+ case 'year': return this.i18n.t('datepicker.nextYears');
3501
+ case 'decade': return this.i18n.t('datepicker.nextDecades');
3502
+ default: return this.i18n.t('datepicker.nextMonth');
3503
+ }
3504
+ }, /* @ts-ignore */
3505
+ ...(ngDevMode ? [{ debugName: "navNextLabel" }] : /* istanbul ignore next */ []));
3506
+ /** Strzałka wstecz gasnie, gdy cała poprzednia strona wypada przed `minDate`. */
3507
+ this.canPageBack = computed(() => {
3508
+ const min = this.minDate();
3509
+ if (!min)
3510
+ return true;
3472
3511
  const { y, m } = this.view();
3473
- return `${this.months()[m]} ${y}`;
3512
+ switch (this.panelView()) {
3513
+ case 'month': return `${y - 1}-12` >= min.slice(0, 7);
3514
+ case 'year': return this.decadeStart() - 1 >= +min.slice(0, 4);
3515
+ case 'decade': return this.centuryStart() - 1 >= +min.slice(0, 4);
3516
+ default: return toIso$1(new Date(y, m, 0)) >= min; // ostatni dzień poprzedniego miesiąca
3517
+ }
3474
3518
  }, /* @ts-ignore */
3475
- ...(ngDevMode ? [{ debugName: "monthLabel" }] : /* istanbul ignore next */ []));
3476
- this.yearPageStart = computed(() => {
3477
- const y = this.view().y;
3478
- return y - (((y % 12) + 12) % 12);
3519
+ ...(ngDevMode ? [{ debugName: "canPageBack" }] : /* istanbul ignore next */ []));
3520
+ this.canPageForward = computed(() => {
3521
+ const max = this.maxDate();
3522
+ if (!max)
3523
+ return true;
3524
+ const { y, m } = this.view();
3525
+ switch (this.panelView()) {
3526
+ case 'month': return `${y + 1}-01` <= max.slice(0, 7);
3527
+ case 'year': return this.decadeStart() + 10 <= +max.slice(0, 4);
3528
+ case 'decade': return this.centuryStart() + 120 <= +max.slice(0, 4);
3529
+ default: return toIso$1(new Date(y, m + 1, 1)) <= max;
3530
+ }
3479
3531
  }, /* @ts-ignore */
3480
- ...(ngDevMode ? [{ debugName: "yearPageStart" }] : /* istanbul ignore next */ []));
3481
- this.yearRangeLabel = computed(() => `${this.yearPageStart()} – ${this.yearPageStart() + 11}`, /* @ts-ignore */
3482
- ...(ngDevMode ? [{ debugName: "yearRangeLabel" }] : /* istanbul ignore next */ []));
3532
+ ...(ngDevMode ? [{ debugName: "canPageForward" }] : /* istanbul ignore next */ []));
3483
3533
  /** Etykieta czasu na pasku trybu datetime (uwzględnia AM/PM). */
3484
3534
  this.timeBarLabel = computed(() => {
3485
3535
  const t = this.parseTime(this.timeStr());
@@ -3557,35 +3607,97 @@ class KptDatepicker {
3557
3607
  return weeks;
3558
3608
  }, /* @ts-ignore */
3559
3609
  ...(ngDevMode ? [{ debugName: "weeks" }] : /* istanbul ignore next */ []));
3560
- // ── Siatka miesięcy (tryby 'monthYear' / 'month') ──
3610
+ /** Rok/miesiąc bieżącej wartości — zaznaczenie w siatkach wyższych poziomów. */
3611
+ this.selectedYM = computed(() => {
3612
+ const v = this.value();
3613
+ switch (this.selectionMode()) {
3614
+ case 'month': {
3615
+ const m = /^(\d{2})$/.exec(v);
3616
+ return { y: null, m: m ? +m[1] - 1 : null };
3617
+ }
3618
+ case 'year':
3619
+ return { y: /^\d{4}$/.test(v) ? +v : null, m: null };
3620
+ case 'monthYear': {
3621
+ const m = /^(\d{4})-(\d{2})$/.exec(v);
3622
+ return m ? { y: +m[1], m: +m[2] - 1 } : { y: null, m: null };
3623
+ }
3624
+ case 'time':
3625
+ return { y: null, m: null };
3626
+ default: {
3627
+ const d = this.parseDate(this.selectedDateIso());
3628
+ return d ? { y: d.getFullYear(), m: d.getMonth() } : { y: null, m: null };
3629
+ }
3630
+ }
3631
+ }, /* @ts-ignore */
3632
+ ...(ngDevMode ? [{ debugName: "selectedYM" }] : /* istanbul ignore next */ []));
3633
+ // ── Siatka miesięcy ──
3561
3634
  this.monthCells = computed(() => {
3562
3635
  const { y } = this.view();
3563
- const sel = this.value();
3636
+ const sel = this.selectedYM();
3564
3637
  const isMonthOnly = this.selectionMode() === 'month';
3565
3638
  const numeric = this.monthDisplay() === 'number';
3566
- return this.months().map((name, i) => {
3567
- const mm = pad$1(i + 1);
3568
- const value = isMonthOnly ? mm : `${y}-${mm}`;
3569
- return {
3570
- label: numeric ? mm : name,
3571
- value,
3572
- selected: sel === value,
3573
- disabled: isMonthOnly ? false : this.isMonthYearDisabled(y, i),
3574
- };
3575
- });
3639
+ const todayY = this.today.getFullYear();
3640
+ const todayM = this.today.getMonth();
3641
+ return this.months().map((name, i) => ({
3642
+ label: numeric ? pad$1(i + 1) : name,
3643
+ y,
3644
+ m: i,
3645
+ selected: sel.m === i && (isMonthOnly || sel.y === y),
3646
+ current: todayM === i && (isMonthOnly || todayY === y),
3647
+ disabled: isMonthOnly ? false : this.isMonthYearDisabled(y, i),
3648
+ }));
3576
3649
  }, /* @ts-ignore */
3577
3650
  ...(ngDevMode ? [{ debugName: "monthCells" }] : /* istanbul ignore next */ []));
3578
- // ── Siatka lat (tryb 'year') ──
3651
+ // ── Siatka lat (pełna dekada) ──
3579
3652
  this.yearCells = computed(() => {
3580
- const start = this.yearPageStart();
3581
- const sel = this.value();
3582
- return Array.from({ length: 12 }, (_, i) => {
3653
+ const start = this.decadeStart();
3654
+ const sel = this.selectedYM();
3655
+ const todayY = this.today.getFullYear();
3656
+ return Array.from({ length: 10 }, (_, i) => {
3583
3657
  const year = start + i;
3584
- const value = String(year);
3585
- return { label: value, value, selected: sel === value, disabled: this.isYearDisabled(year) };
3658
+ return {
3659
+ label: String(year),
3660
+ y: year,
3661
+ m: 0,
3662
+ selected: sel.y === year,
3663
+ current: todayY === year,
3664
+ disabled: this.isYearDisabled(year),
3665
+ };
3586
3666
  });
3587
3667
  }, /* @ts-ignore */
3588
3668
  ...(ngDevMode ? [{ debugName: "yearCells" }] : /* istanbul ignore next */ []));
3669
+ // ── Siatka dekad (12 dekad = 120 lat) ──
3670
+ this.decadeCells = computed(() => {
3671
+ const start = this.centuryStart();
3672
+ const sel = this.selectedYM();
3673
+ const todayY = this.today.getFullYear();
3674
+ return Array.from({ length: 12 }, (_, i) => {
3675
+ const from = start + i * 10;
3676
+ const to = from + 9;
3677
+ return {
3678
+ label: `${from} – ${to}`,
3679
+ y: from,
3680
+ m: 0,
3681
+ selected: sel.y != null && sel.y >= from && sel.y <= to,
3682
+ current: todayY >= from && todayY <= to,
3683
+ // Dekada wypada z zakresu dopiero, gdy poza nim są oba jej krańce.
3684
+ disabled: this.isYearDisabled(from) && this.isYearDisabled(to),
3685
+ };
3686
+ });
3687
+ }, /* @ts-ignore */
3688
+ ...(ngDevMode ? [{ debugName: "decadeCells" }] : /* istanbul ignore next */ []));
3689
+ /** Komórki bieżącego poziomu — siatka miesięcy/lat/dekad ma jeden wspólny markup. */
3690
+ this.levelCells = computed(() => {
3691
+ switch (this.panelView()) {
3692
+ case 'year':
3693
+ return this.yearCells();
3694
+ case 'decade':
3695
+ return this.decadeCells();
3696
+ default:
3697
+ return this.monthCells();
3698
+ }
3699
+ }, /* @ts-ignore */
3700
+ ...(ngDevMode ? [{ debugName: "levelCells" }] : /* istanbul ignore next */ []));
3589
3701
  // Kalendarz może zostać otwarty także z zewnątrz (`[open]`), nie tylko klikiem w trigger —
3590
3702
  // widok i bufor czasu ustawiamy więc przy każdym otwarciu, nie w `toggleOpen()`.
3591
3703
  effect(() => {
@@ -3594,6 +3706,7 @@ class KptDatepicker {
3594
3706
  if (!isOpen)
3595
3707
  return;
3596
3708
  this.view.set(this.initialView());
3709
+ this.panelView.set(this.effectiveStartView());
3597
3710
  this.syncTimeFromValue();
3598
3711
  this.dtView.set(this.selectionMode() === 'time' ? 'clock' : 'calendar');
3599
3712
  });
@@ -3700,11 +3813,29 @@ class KptDatepicker {
3700
3813
  this.value.set(cell.iso);
3701
3814
  this.close();
3702
3815
  }
3816
+ /**
3817
+ * Klik w komórkę siatki: na poziomie zatwierdzania ustawia wartość i zamyka panel,
3818
+ * wyżej — przestawia widok i schodzi poziom niżej.
3819
+ */
3703
3820
  selectCell(cell) {
3704
3821
  if (cell.disabled)
3705
3822
  return;
3706
- this.value.set(cell.value);
3707
- this.close();
3823
+ const level = this.panelView();
3824
+ if (level === this.commitLevel()) {
3825
+ this.value.set(level === 'year' ? String(cell.y) : this.monthValue(cell));
3826
+ this.close();
3827
+ return;
3828
+ }
3829
+ this.view.update(({ m }) => ({ y: cell.y, m: level === 'month' ? cell.m : m }));
3830
+ this.panelView.set(LEVELS[LEVELS.indexOf(level) - 1]);
3831
+ }
3832
+ monthValue(cell) {
3833
+ const mm = pad$1(cell.m + 1);
3834
+ return this.selectionMode() === 'month' ? mm : `${cell.y}-${mm}`;
3835
+ }
3836
+ /** Klik w tytuł — wejście poziom wyżej w stosie widoków. */
3837
+ goTo(level) {
3838
+ this.panelView.set(level);
3708
3839
  }
3709
3840
  // ── Zegar (delegowany do kpt-clock przez timeStr) ──
3710
3841
  openClock() {
@@ -3725,23 +3856,33 @@ class KptDatepicker {
3725
3856
  }
3726
3857
  this.close();
3727
3858
  }
3728
- prevMonth() {
3729
- this.view.update(({ y, m }) => (m === 0 ? { y: y - 1, m: 11 } : { y, m: m - 1 }));
3730
- }
3731
- nextMonth() {
3732
- this.view.update(({ y, m }) => (m === 11 ? { y: y + 1, m: 0 } : { y, m: m + 1 }));
3733
- }
3734
- prevYear() {
3735
- this.view.update(({ y, m }) => ({ y: y - 1, m }));
3736
- }
3737
- nextYear() {
3738
- this.view.update(({ y, m }) => ({ y: y + 1, m }));
3859
+ /** Strzałki ‹ › — krok zależny od poziomu: miesiąc, rok, dekada, strona dekad. */
3860
+ page(dir) {
3861
+ const level = this.panelView();
3862
+ this.view.update(({ y, m }) => {
3863
+ switch (level) {
3864
+ case 'month':
3865
+ return { y: y + dir, m };
3866
+ case 'year':
3867
+ return { y: y + dir * 10, m };
3868
+ case 'decade':
3869
+ return { y: y + dir * 120, m };
3870
+ default: {
3871
+ const next = m + dir;
3872
+ if (next < 0)
3873
+ return { y: y - 1, m: 11 };
3874
+ if (next > 11)
3875
+ return { y: y + 1, m: 0 };
3876
+ return { y, m: next };
3877
+ }
3878
+ }
3879
+ });
3739
3880
  }
3740
- prevYearPage() {
3741
- this.view.update(({ y, m }) => ({ y: y - 12, m }));
3881
+ pagePrev() {
3882
+ this.page(-1);
3742
3883
  }
3743
- nextYearPage() {
3744
- this.view.update(({ y, m }) => ({ y: y + 12, m }));
3884
+ pageNext() {
3885
+ this.page(1);
3745
3886
  }
3746
3887
  clear(event) {
3747
3888
  event.stopPropagation();
@@ -3749,7 +3890,7 @@ class KptDatepicker {
3749
3890
  this.pendingDate.set('');
3750
3891
  }
3751
3892
  static { this.ɵfac = function KptDatepicker_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptDatepicker)(); }; }
3752
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptDatepicker, selectors: [["kpt-datepicker"]], hostAttrs: [1, "kpt-datepicker-host"], inputs: { value: [1, "value"], disabled: [1, "disabled"], invalid: [1, "invalid"], touched: [1, "touched"], placeholder: [1, "placeholder"], ariaLabel: [1, "ariaLabel"], displayFormat: [1, "displayFormat"], selectionMode: [1, "selectionMode"], monthDisplay: [1, "monthDisplay"], hourFormat: [1, "hourFormat"], minuteStep: [1, "minuteStep"], minDate: [1, "minDate"], maxDate: [1, "maxDate"], open: [1, "open"] }, outputs: { value: "valueChange", touch: "touch", open: "openChange" }, decls: 8, vars: 15, consts: [["trigger", "cdkOverlayOrigin"], ["cdkOverlayOrigin", "", "role", "button", "tabindex", "0", 1, "kpt-datepicker", 3, "click", "keydown.enter", "blur"], [1, "kpt-datepicker__value"], [1, "kpt-datepicker__placeholder"], [1, "kpt-datepicker__spacer"], ["type", "button", 1, "kpt-datepicker__clear"], [1, "kpt-datepicker__icon", 3, "name"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "detach", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayHasBackdrop"], ["type", "button", 1, "kpt-datepicker__clear", 3, "click"], ["name", "x"], [1, "kpt-calendar", 3, "keydown.escape"], [3, "valueChange", "value", "hourFormat", "minuteStep"], [1, "kpt-calendar__footer"], ["size", "sm", 3, "click"], [1, "kpt-calendar__header"], ["type", "button", 1, "kpt-calendar__nav", 3, "click"], ["name", "chevron-left"], [1, "kpt-calendar__title"], ["name", "chevron-right"], [1, "kpt-calendar__weekdays"], [1, "kpt-calendar__weekday"], [1, "kpt-calendar__grid"], ["type", "button", 1, "kpt-calendar__timebar", 3, "click"], ["name", "clock"], ["type", "button", 1, "kpt-calendar__day", 3, "kpt-calendar__day--muted", "kpt-calendar__day--today", "kpt-calendar__day--selected", "disabled"], ["type", "button", 1, "kpt-calendar__day", 3, "click", "disabled"], [1, "kpt-calendar__grid", "kpt-calendar__grid--cells"], ["type", "button", 1, "kpt-calendar__cell", 3, "kpt-calendar__cell--selected", "disabled"], ["type", "button", 1, "kpt-calendar__cell", 3, "click", "disabled"], ["type", "button", 1, "kpt-calendar__cell", 3, "kpt-calendar__cell--selected"], ["type", "button", 1, "kpt-calendar__cell", 3, "click"]], template: function KptDatepicker_Template(rf, ctx) { if (rf & 1) {
3893
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptDatepicker, selectors: [["kpt-datepicker"]], hostAttrs: [1, "kpt-datepicker-host"], inputs: { value: [1, "value"], disabled: [1, "disabled"], invalid: [1, "invalid"], touched: [1, "touched"], placeholder: [1, "placeholder"], ariaLabel: [1, "ariaLabel"], displayFormat: [1, "displayFormat"], selectionMode: [1, "selectionMode"], startView: [1, "startView"], monthDisplay: [1, "monthDisplay"], hourFormat: [1, "hourFormat"], minuteStep: [1, "minuteStep"], minDate: [1, "minDate"], maxDate: [1, "maxDate"], open: [1, "open"] }, outputs: { value: "valueChange", touch: "touch", open: "openChange" }, decls: 8, vars: 15, consts: [["trigger", "cdkOverlayOrigin"], ["cdkOverlayOrigin", "", "role", "button", "tabindex", "0", 1, "kpt-datepicker", 3, "click", "keydown.enter", "blur"], [1, "kpt-datepicker__value"], [1, "kpt-datepicker__placeholder"], [1, "kpt-datepicker__spacer"], ["type", "button", 1, "kpt-datepicker__clear"], [1, "kpt-datepicker__icon", 3, "name"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "detach", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayHasBackdrop"], ["type", "button", 1, "kpt-datepicker__clear", 3, "click"], ["name", "x"], [1, "kpt-calendar", 3, "keydown.escape"], [1, "kpt-calendar__footer"], [1, "kpt-calendar__header"], [3, "valueChange", "value", "hourFormat", "minuteStep"], ["type", "button", 1, "kpt-calendar__nav", 3, "click"], ["name", "chevron-left"], [1, "kpt-calendar__title"], ["type", "button", 1, "kpt-calendar__nav", 3, "disabled"], [1, "kpt-calendar__titles"], ["type", "button", 1, "kpt-calendar__title-btn"], [1, "kpt-calendar__grid", "kpt-calendar__grid--cells", 3, "kpt-calendar__grid--decades"], ["type", "button", 1, "kpt-calendar__timebar"], ["type", "button", 1, "kpt-calendar__nav", 3, "click", "disabled"], ["type", "button", 1, "kpt-calendar__title-btn", 3, "click"], ["name", "chevron-right"], [1, "kpt-calendar__weekdays"], [1, "kpt-calendar__weekday"], [1, "kpt-calendar__grid"], ["type", "button", 1, "kpt-calendar__day", 3, "kpt-calendar__day--muted", "kpt-calendar__day--today", "kpt-calendar__day--selected", "disabled"], ["type", "button", 1, "kpt-calendar__day", 3, "click", "disabled"], [1, "kpt-calendar__grid", "kpt-calendar__grid--cells"], ["type", "button", 1, "kpt-calendar__cell", 3, "kpt-calendar__cell--selected", "kpt-calendar__cell--current", "disabled"], ["type", "button", 1, "kpt-calendar__cell", 3, "click", "disabled"], ["type", "button", 1, "kpt-calendar__timebar", 3, "click"], ["name", "clock"], ["size", "sm", 3, "click"]], template: function KptDatepicker_Template(rf, ctx) { if (rf & 1) {
3753
3894
  i0.ɵɵelementStart(0, "div", 1, 0);
3754
3895
  i0.ɵɵlistener("click", function KptDatepicker_Template_div_click_0_listener() { return ctx.toggleOpen(); })("keydown.enter", function KptDatepicker_Template_div_keydown_enter_0_listener() { return ctx.toggleOpen(); })("blur", function KptDatepicker_Template_div_blur_0_listener() { return ctx.touch.emit(); });
3755
3896
  i0.ɵɵconditionalCreate(2, KptDatepicker_Conditional_2_Template, 2, 1, "span", 2)(3, KptDatepicker_Conditional_3_Template, 2, 1, "span", 3);
@@ -3757,10 +3898,10 @@ class KptDatepicker {
3757
3898
  i0.ɵɵconditionalCreate(5, KptDatepicker_Conditional_5_Template, 2, 1, "button", 5);
3758
3899
  i0.ɵɵelement(6, "kpt-icon", 6);
3759
3900
  i0.ɵɵelementEnd();
3760
- i0.ɵɵtemplate(7, KptDatepicker_ng_template_7_Template, 7, 3, "ng-template", 7);
3901
+ i0.ɵɵtemplate(7, KptDatepicker_ng_template_7_Template, 4, 4, "ng-template", 7);
3761
3902
  i0.ɵɵlistener("backdropClick", function KptDatepicker_Template_ng_template_backdropClick_7_listener() { return ctx.close(); })("detach", function KptDatepicker_Template_ng_template_detach_7_listener() { return ctx.close(); });
3762
3903
  } if (rf & 2) {
3763
- const trigger_r25 = i0.ɵɵreference(1);
3904
+ const trigger_r19 = i0.ɵɵreference(1);
3764
3905
  i0.ɵɵclassProp("kpt-datepicker--open", ctx.open())("kpt-datepicker--disabled", ctx.disabled())("kpt-datepicker--invalid", ctx.showInvalid());
3765
3906
  i0.ɵɵattribute("aria-disabled", ctx.disabled() || null)("aria-label", ctx.ariaLabel());
3766
3907
  i0.ɵɵadvance(2);
@@ -3770,14 +3911,14 @@ class KptDatepicker {
3770
3911
  i0.ɵɵadvance();
3771
3912
  i0.ɵɵproperty("name", ctx.selectionMode() === "time" ? "clock" : "calendar");
3772
3913
  i0.ɵɵadvance();
3773
- i0.ɵɵproperty("cdkConnectedOverlayOrigin", trigger_r25)("cdkConnectedOverlayOpen", ctx.open())("cdkConnectedOverlayPositions", ctx.positions)("cdkConnectedOverlayHasBackdrop", true);
3774
- } }, dependencies: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon, KptButton, KptClock], styles: ["@layer kpt.components{.kpt-datepicker-host{display:block}.kpt-datepicker{display:flex;align-items:center;gap:var(--%NS%kpt-space-2, .5rem);height:2.5rem;padding-inline:var(--%NS%kpt-space-3, .75rem);box-sizing:border-box;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-size:var(--%NS%kpt-font-size-sm, .875rem);cursor:pointer}.kpt-datepicker:hover:not(.kpt-datepicker--disabled){border-color:var(--%NS%kpt-form-field-border-hover)}.kpt-datepicker:focus-visible,.kpt-datepicker.kpt-datepicker--open{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-datepicker.kpt-datepicker--invalid{border-color:var(--%NS%kpt-form-field-border-error)}.kpt-datepicker.kpt-datepicker--disabled{cursor:not-allowed;opacity:.6;background:var(--%NS%kpt-color-surface-variant)}.kpt-datepicker__placeholder{color:var(--%NS%kpt-form-field-placeholder)}.kpt-datepicker__spacer{flex:1}.kpt-datepicker__icon{color:var(--%NS%kpt-color-on-surface-muted)}.kpt-datepicker__clear{display:inline-flex;border:0;background:none;cursor:pointer;color:var(--%NS%kpt-color-on-surface-muted);padding:0}.kpt-datepicker__clear:hover{color:var(--%NS%kpt-color-on-surface)}.kpt-calendar{width:17rem;padding:var(--%NS%kpt-space-3, .75rem);background:var(--%NS%kpt-color-surface-raised);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-color-border);border-radius:var(--%NS%kpt-radius-md, .5rem);box-shadow:var(--%NS%kpt-elevation-3);color:var(--%NS%kpt-color-on-surface);font-size:var(--%NS%kpt-font-size-sm, .875rem)}.kpt-calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--%NS%kpt-space-2, .5rem)}.kpt-calendar__title{font-weight:var(--%NS%kpt-font-weight-semibold, 600);text-transform:capitalize}.kpt-calendar__nav{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:var(--%NS%kpt-radius-md, .5rem);background:none;color:var(--%NS%kpt-color-on-surface);cursor:pointer}.kpt-calendar__nav:hover{background:var(--%NS%kpt-color-muted)}.kpt-calendar__weekdays,.kpt-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.kpt-calendar__weekday{text-align:center;font-size:var(--%NS%kpt-font-size-xs, .75rem);color:var(--%NS%kpt-color-on-surface-muted);padding:.25rem 0}.kpt-calendar__day{aspect-ratio:1;border:0;border-radius:var(--%NS%kpt-radius-sm, .25rem);background:none;color:var(--%NS%kpt-color-on-surface);cursor:pointer;font:inherit}.kpt-calendar__day:hover:not(:disabled){background:var(--%NS%kpt-color-muted)}.kpt-calendar__day--muted{color:var(--%NS%kpt-color-on-surface-muted);opacity:.5}.kpt-calendar__day--today{box-shadow:inset 0 0 0 1px var(--%NS%kpt-color-border-strong)}.kpt-calendar__day--selected{background:var(--%NS%kpt-color-primary)!important;color:var(--%NS%kpt-color-on-primary)}.kpt-calendar__day:disabled{opacity:.3;cursor:not-allowed}.kpt-calendar__grid--cells{grid-template-columns:repeat(3,1fr);gap:4px}.kpt-calendar__cell{padding:.6rem .25rem;border:0;border-radius:var(--%NS%kpt-radius-sm, .25rem);background:none;color:var(--%NS%kpt-color-on-surface);cursor:pointer;font:inherit;text-transform:capitalize}.kpt-calendar__cell:hover:not(:disabled){background:var(--%NS%kpt-color-muted)}.kpt-calendar__cell--selected{background:var(--%NS%kpt-color-primary)!important;color:var(--%NS%kpt-color-on-primary)}.kpt-calendar__cell:disabled{opacity:.3;cursor:not-allowed}.kpt-calendar__timebar{display:flex;align-items:center;justify-content:center;gap:var(--%NS%kpt-space-2, .5rem);width:100%;margin-top:var(--%NS%kpt-space-2, .5rem);padding:var(--%NS%kpt-space-2, .5rem);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-color-border);border-radius:var(--%NS%kpt-radius-md, .5rem);background:none;color:var(--%NS%kpt-color-on-surface);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer}.kpt-calendar__timebar:hover{background:var(--%NS%kpt-color-muted)}.kpt-calendar__timebar kpt-icon{color:var(--%NS%kpt-color-on-surface-muted)}.kpt-calendar__footer{display:flex;justify-content:flex-end;margin-top:var(--%NS%kpt-space-3, .75rem)}.kpt-calendar--clock{width:16rem}}\n"], encapsulation: 2 }); }
3914
+ i0.ɵɵproperty("cdkConnectedOverlayOrigin", trigger_r19)("cdkConnectedOverlayOpen", ctx.open())("cdkConnectedOverlayPositions", ctx.positions)("cdkConnectedOverlayHasBackdrop", true);
3915
+ } }, dependencies: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon, KptButton, KptClock], styles: ["@layer kpt.components{.kpt-datepicker-host{display:block}.kpt-datepicker{display:flex;align-items:center;gap:var(--%NS%kpt-space-2, .5rem);height:2.5rem;padding-inline:var(--%NS%kpt-space-3, .75rem);box-sizing:border-box;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-size:var(--%NS%kpt-font-size-sm, .875rem);cursor:pointer}.kpt-datepicker:hover:not(.kpt-datepicker--disabled){border-color:var(--%NS%kpt-form-field-border-hover)}.kpt-datepicker:focus-visible,.kpt-datepicker.kpt-datepicker--open{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-datepicker.kpt-datepicker--invalid{border-color:var(--%NS%kpt-form-field-border-error)}.kpt-datepicker.kpt-datepicker--disabled{cursor:not-allowed;opacity:.6;background:var(--%NS%kpt-color-surface-variant)}.kpt-datepicker__placeholder{color:var(--%NS%kpt-form-field-placeholder)}.kpt-datepicker__spacer{flex:1}.kpt-datepicker__icon{color:var(--%NS%kpt-color-on-surface-muted)}.kpt-datepicker__clear{display:inline-flex;border:0;background:none;cursor:pointer;color:var(--%NS%kpt-color-on-surface-muted);padding:0}.kpt-datepicker__clear:hover{color:var(--%NS%kpt-color-on-surface)}.kpt-calendar{width:17rem;padding:var(--%NS%kpt-space-3, .75rem);background:var(--%NS%kpt-color-surface-raised);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-color-border);border-radius:var(--%NS%kpt-radius-md, .5rem);box-shadow:var(--%NS%kpt-elevation-3);color:var(--%NS%kpt-color-on-surface);font-size:var(--%NS%kpt-font-size-sm, .875rem)}.kpt-calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--%NS%kpt-space-2, .5rem)}.kpt-calendar__title{font-weight:var(--%NS%kpt-font-weight-semibold, 600);text-transform:capitalize}.kpt-calendar__titles{display:flex;align-items:center;gap:var(--%NS%kpt-space-1, .25rem)}.kpt-calendar__title-btn{padding:.25rem var(--%NS%kpt-space-2, .5rem);border:0;border-radius:var(--%NS%kpt-radius-sm, .25rem);background:var(--%NS%kpt-color-muted);color:var(--%NS%kpt-color-on-surface);font:inherit;font-weight:var(--%NS%kpt-font-weight-semibold, 600);text-transform:capitalize;cursor:pointer}.kpt-calendar__title-btn:hover{background:var(--%NS%kpt-color-muted-hover)}.kpt-calendar__title-btn:focus-visible{outline:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-color-border-strong);outline-offset:1px}.kpt-calendar__nav{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:var(--%NS%kpt-radius-md, .5rem);background:none;color:var(--%NS%kpt-color-on-surface);cursor:pointer}.kpt-calendar__nav:hover:not(:disabled){background:var(--%NS%kpt-color-muted)}.kpt-calendar__nav:disabled{opacity:.3;cursor:not-allowed}.kpt-calendar__weekdays,.kpt-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.kpt-calendar__weekday{text-align:center;font-size:var(--%NS%kpt-font-size-xs, .75rem);color:var(--%NS%kpt-color-on-surface-muted);padding:.25rem 0}.kpt-calendar__day{aspect-ratio:1;border:0;border-radius:var(--%NS%kpt-radius-sm, .25rem);background:none;color:var(--%NS%kpt-color-on-surface);cursor:pointer;font:inherit}.kpt-calendar__day:hover:not(:disabled){background:var(--%NS%kpt-color-muted)}.kpt-calendar__day--muted{color:var(--%NS%kpt-color-on-surface-muted);opacity:.5}.kpt-calendar__day--today{box-shadow:inset 0 0 0 1px var(--%NS%kpt-color-border-strong)}.kpt-calendar__day--selected{background:var(--%NS%kpt-color-primary)!important;color:var(--%NS%kpt-color-on-primary)}.kpt-calendar__day:disabled{opacity:.3;cursor:not-allowed}.kpt-calendar__grid--cells{grid-template-columns:repeat(3,1fr);gap:4px}.kpt-calendar__cell{padding:.6rem .25rem;border:0;border-radius:var(--%NS%kpt-radius-sm, .25rem);background:none;color:var(--%NS%kpt-color-on-surface);cursor:pointer;font:inherit;text-transform:capitalize}.kpt-calendar__cell:hover:not(:disabled){background:var(--%NS%kpt-color-muted)}.kpt-calendar__cell--current{box-shadow:inset 0 0 0 1px var(--%NS%kpt-color-border-strong)}.kpt-calendar__cell--selected{background:var(--%NS%kpt-color-primary)!important;color:var(--%NS%kpt-color-on-primary)}.kpt-calendar__cell:disabled{opacity:.3;cursor:not-allowed}.kpt-calendar__grid--decades .kpt-calendar__cell{padding-inline:0;font-size:var(--%NS%kpt-font-size-xs, .75rem);white-space:nowrap}.kpt-calendar__timebar{display:flex;align-items:center;justify-content:center;gap:var(--%NS%kpt-space-2, .5rem);width:100%;margin-top:var(--%NS%kpt-space-2, .5rem);padding:var(--%NS%kpt-space-2, .5rem);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-color-border);border-radius:var(--%NS%kpt-radius-md, .5rem);background:none;color:var(--%NS%kpt-color-on-surface);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer}.kpt-calendar__timebar:hover{background:var(--%NS%kpt-color-muted)}.kpt-calendar__timebar kpt-icon{color:var(--%NS%kpt-color-on-surface-muted)}.kpt-calendar__footer{display:flex;justify-content:flex-end;margin-top:var(--%NS%kpt-space-3, .75rem)}.kpt-calendar--clock{width:16rem}}\n"], encapsulation: 2 }); }
3775
3916
  }
3776
3917
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptDatepicker, [{
3777
3918
  type: Component,
3778
- args: [{ selector: 'kpt-datepicker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon, KptButton, KptClock], host: { class: 'kpt-datepicker-host' }, template: "<div\n class=\"kpt-datepicker\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"button\"\n tabindex=\"0\"\n [class.kpt-datepicker--open]=\"open()\"\n [class.kpt-datepicker--disabled]=\"disabled()\"\n [class.kpt-datepicker--invalid]=\"showInvalid()\"\n [attr.aria-disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"toggleOpen()\"\n (keydown.enter)=\"toggleOpen()\"\n (blur)=\"touch.emit()\"\n>\n @if (display()) {\n <span class=\"kpt-datepicker__value\">{{ display() }}</span>\n } @else {\n <span class=\"kpt-datepicker__placeholder\">{{ effectivePlaceholder() }}</span>\n }\n <span class=\"kpt-datepicker__spacer\"></span>\n @if (display()) {\n <button type=\"button\" class=\"kpt-datepicker__clear\" (click)=\"clear($event)\" [attr.aria-label]=\"i18n.t('common.clear')\"><kpt-icon name=\"x\" /></button>\n }\n <kpt-icon\n class=\"kpt-datepicker__icon\"\n [name]=\"selectionMode() === 'time' ? 'clock' : 'calendar'\"\n />\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div class=\"kpt-calendar\" [class.kpt-calendar--clock]=\"selectionMode() === 'time' || (selectionMode() === 'datetime' && dtView() === 'clock')\" (keydown.escape)=\"close()\">\n @switch (selectionMode()) {\n @case ('time') {\n <kpt-clock [(value)]=\"timeStr\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n }\n @case ('datetime') {\n @if (dtView() === 'calendar') {\n <div class=\"kpt-calendar__header\">\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"prevMonth()\" [attr.aria-label]=\"i18n.t('datepicker.prevMonth')\"><kpt-icon name=\"chevron-left\" /></button>\n <span class=\"kpt-calendar__title\">{{ monthLabel() }}</span>\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"nextMonth()\" [attr.aria-label]=\"i18n.t('datepicker.nextMonth')\"><kpt-icon name=\"chevron-right\" /></button>\n </div>\n <div class=\"kpt-calendar__weekdays\">\n @for (wd of weekdays(); track wd) {\n <span class=\"kpt-calendar__weekday\">{{ wd }}</span>\n }\n </div>\n <div class=\"kpt-calendar__grid\">\n @for (week of weeks(); track $index) {\n @for (cell of week; track cell.iso) {\n <button\n type=\"button\"\n class=\"kpt-calendar__day\"\n [class.kpt-calendar__day--muted]=\"!cell.inMonth\"\n [class.kpt-calendar__day--today]=\"cell.today\"\n [class.kpt-calendar__day--selected]=\"cell.selected\"\n [disabled]=\"cell.disabled\"\n [attr.aria-pressed]=\"cell.selected\"\n (click)=\"selectDay(cell)\"\n >{{ cell.day }}</button>\n }\n }\n </div>\n <button type=\"button\" class=\"kpt-calendar__timebar\" (click)=\"openClock()\">\n <kpt-icon name=\"clock\" />\n <span>{{ timeBarLabel() }}</span>\n </button>\n } @else {\n <div class=\"kpt-calendar__header\">\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"backToCalendar()\" [attr.aria-label]=\"i18n.t('datepicker.calendar')\"><kpt-icon name=\"chevron-left\" /></button>\n <span class=\"kpt-calendar__title\">{{ i18n.t('datepicker.time') }}</span>\n </div>\n <kpt-clock [(value)]=\"timeStr\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n }\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n }\n @case ('monthYear') {\n <div class=\"kpt-calendar__header\">\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"prevYear()\" [attr.aria-label]=\"i18n.t('datepicker.prevYear')\"><kpt-icon name=\"chevron-left\" /></button>\n <span class=\"kpt-calendar__title\">{{ viewYear() }}</span>\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"nextYear()\" [attr.aria-label]=\"i18n.t('datepicker.nextYear')\"><kpt-icon name=\"chevron-right\" /></button>\n </div>\n <div class=\"kpt-calendar__grid kpt-calendar__grid--cells\">\n @for (cell of monthCells(); track cell.value) {\n <button\n type=\"button\"\n class=\"kpt-calendar__cell\"\n [class.kpt-calendar__cell--selected]=\"cell.selected\"\n [disabled]=\"cell.disabled\"\n [attr.aria-pressed]=\"cell.selected\"\n (click)=\"selectCell(cell)\"\n >{{ cell.label }}</button>\n }\n </div>\n }\n @case ('year') {\n <div class=\"kpt-calendar__header\">\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"prevYearPage()\" [attr.aria-label]=\"i18n.t('datepicker.prevYears')\"><kpt-icon name=\"chevron-left\" /></button>\n <span class=\"kpt-calendar__title\">{{ yearRangeLabel() }}</span>\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"nextYearPage()\" [attr.aria-label]=\"i18n.t('datepicker.nextYears')\"><kpt-icon name=\"chevron-right\" /></button>\n </div>\n <div class=\"kpt-calendar__grid kpt-calendar__grid--cells\">\n @for (cell of yearCells(); track cell.value) {\n <button\n type=\"button\"\n class=\"kpt-calendar__cell\"\n [class.kpt-calendar__cell--selected]=\"cell.selected\"\n [disabled]=\"cell.disabled\"\n [attr.aria-pressed]=\"cell.selected\"\n (click)=\"selectCell(cell)\"\n >{{ cell.label }}</button>\n }\n </div>\n }\n @case ('month') {\n <div class=\"kpt-calendar__header\">\n <span class=\"kpt-calendar__title\">{{ i18n.t('datepicker.month') }}</span>\n </div>\n <div class=\"kpt-calendar__grid kpt-calendar__grid--cells\">\n @for (cell of monthCells(); track cell.value) {\n <button\n type=\"button\"\n class=\"kpt-calendar__cell\"\n [class.kpt-calendar__cell--selected]=\"cell.selected\"\n [attr.aria-pressed]=\"cell.selected\"\n (click)=\"selectCell(cell)\"\n >{{ cell.label }}</button>\n }\n </div>\n }\n @default {\n <div class=\"kpt-calendar__header\">\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"prevMonth()\" [attr.aria-label]=\"i18n.t('datepicker.prevMonth')\"><kpt-icon name=\"chevron-left\" /></button>\n <span class=\"kpt-calendar__title\">{{ monthLabel() }}</span>\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"nextMonth()\" [attr.aria-label]=\"i18n.t('datepicker.nextMonth')\"><kpt-icon name=\"chevron-right\" /></button>\n </div>\n <div class=\"kpt-calendar__weekdays\">\n @for (wd of weekdays(); track wd) {\n <span class=\"kpt-calendar__weekday\">{{ wd }}</span>\n }\n </div>\n <div class=\"kpt-calendar__grid\">\n @for (week of weeks(); track $index) {\n @for (cell of week; track cell.iso) {\n <button\n type=\"button\"\n class=\"kpt-calendar__day\"\n [class.kpt-calendar__day--muted]=\"!cell.inMonth\"\n [class.kpt-calendar__day--today]=\"cell.today\"\n [class.kpt-calendar__day--selected]=\"cell.selected\"\n [disabled]=\"cell.disabled\"\n [attr.aria-pressed]=\"cell.selected\"\n (click)=\"selectDay(cell)\"\n >{{ cell.day }}</button>\n }\n }\n </div>\n }\n }\n </div>\n</ng-template>\n", styles: ["@layer kpt.components{.kpt-datepicker-host{display:block}.kpt-datepicker{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);height:2.5rem;padding-inline:var(--kpt-space-3, .75rem);box-sizing:border-box;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-size:var(--kpt-font-size-sm, .875rem);cursor:pointer}.kpt-datepicker:hover:not(.kpt-datepicker--disabled){border-color:var(--kpt-form-field-border-hover)}.kpt-datepicker:focus-visible,.kpt-datepicker.kpt-datepicker--open{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-datepicker.kpt-datepicker--invalid{border-color:var(--kpt-form-field-border-error)}.kpt-datepicker.kpt-datepicker--disabled{cursor:not-allowed;opacity:.6;background:var(--kpt-color-surface-variant)}.kpt-datepicker__placeholder{color:var(--kpt-form-field-placeholder)}.kpt-datepicker__spacer{flex:1}.kpt-datepicker__icon{color:var(--kpt-color-on-surface-muted)}.kpt-datepicker__clear{display:inline-flex;border:0;background:none;cursor:pointer;color:var(--kpt-color-on-surface-muted);padding:0}.kpt-datepicker__clear:hover{color:var(--kpt-color-on-surface)}.kpt-calendar{width:17rem;padding:var(--kpt-space-3, .75rem);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);color:var(--kpt-color-on-surface);font-size:var(--kpt-font-size-sm, .875rem)}.kpt-calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--kpt-space-2, .5rem)}.kpt-calendar__title{font-weight:var(--kpt-font-weight-semibold, 600);text-transform:capitalize}.kpt-calendar__nav{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:var(--kpt-radius-md, .5rem);background:none;color:var(--kpt-color-on-surface);cursor:pointer}.kpt-calendar__nav:hover{background:var(--kpt-color-muted)}.kpt-calendar__weekdays,.kpt-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.kpt-calendar__weekday{text-align:center;font-size:var(--kpt-font-size-xs, .75rem);color:var(--kpt-color-on-surface-muted);padding:.25rem 0}.kpt-calendar__day{aspect-ratio:1;border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);cursor:pointer;font:inherit}.kpt-calendar__day:hover:not(:disabled){background:var(--kpt-color-muted)}.kpt-calendar__day--muted{color:var(--kpt-color-on-surface-muted);opacity:.5}.kpt-calendar__day--today{box-shadow:inset 0 0 0 1px var(--kpt-color-border-strong)}.kpt-calendar__day--selected{background:var(--kpt-color-primary)!important;color:var(--kpt-color-on-primary)}.kpt-calendar__day:disabled{opacity:.3;cursor:not-allowed}.kpt-calendar__grid--cells{grid-template-columns:repeat(3,1fr);gap:4px}.kpt-calendar__cell{padding:.6rem .25rem;border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);cursor:pointer;font:inherit;text-transform:capitalize}.kpt-calendar__cell:hover:not(:disabled){background:var(--kpt-color-muted)}.kpt-calendar__cell--selected{background:var(--kpt-color-primary)!important;color:var(--kpt-color-on-primary)}.kpt-calendar__cell:disabled{opacity:.3;cursor:not-allowed}.kpt-calendar__timebar{display:flex;align-items:center;justify-content:center;gap:var(--kpt-space-2, .5rem);width:100%;margin-top:var(--kpt-space-2, .5rem);padding:var(--kpt-space-2, .5rem);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);border-radius:var(--kpt-radius-md, .5rem);background:none;color:var(--kpt-color-on-surface);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer}.kpt-calendar__timebar:hover{background:var(--kpt-color-muted)}.kpt-calendar__timebar kpt-icon{color:var(--kpt-color-on-surface-muted)}.kpt-calendar__footer{display:flex;justify-content:flex-end;margin-top:var(--kpt-space-3, .75rem)}.kpt-calendar--clock{width:16rem}}\n"] }]
3779
- }], () => [], { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }], touch: [{ type: i0.Output, args: ["touch"] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], displayFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayFormat", required: false }] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }], monthDisplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "monthDisplay", required: false }] }], hourFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "hourFormat", required: false }] }], minuteStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "minuteStep", required: false }] }], minDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDate", required: false }] }], maxDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDate", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }] }); })();
3780
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptDatepicker, { className: "KptDatepicker", filePath: "lib/datepicker/datepicker.component.ts", lineNumber: 68 }); })();
3919
+ args: [{ selector: 'kpt-datepicker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon, KptButton, KptClock], host: { class: 'kpt-datepicker-host' }, template: "<div\n class=\"kpt-datepicker\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"button\"\n tabindex=\"0\"\n [class.kpt-datepicker--open]=\"open()\"\n [class.kpt-datepicker--disabled]=\"disabled()\"\n [class.kpt-datepicker--invalid]=\"showInvalid()\"\n [attr.aria-disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"toggleOpen()\"\n (keydown.enter)=\"toggleOpen()\"\n (blur)=\"touch.emit()\"\n>\n @if (display()) {\n <span class=\"kpt-datepicker__value\">{{ display() }}</span>\n } @else {\n <span class=\"kpt-datepicker__placeholder\">{{ effectivePlaceholder() }}</span>\n }\n <span class=\"kpt-datepicker__spacer\"></span>\n @if (display()) {\n <button type=\"button\" class=\"kpt-datepicker__clear\" (click)=\"clear($event)\" [attr.aria-label]=\"i18n.t('common.clear')\"><kpt-icon name=\"x\" /></button>\n }\n <kpt-icon\n class=\"kpt-datepicker__icon\"\n [name]=\"selectionMode() === 'time' ? 'clock' : 'calendar'\"\n />\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div class=\"kpt-calendar\" [class.kpt-calendar--clock]=\"showClock()\" (keydown.escape)=\"close()\">\n @if (showClock()) {\n @if (selectionMode() === 'datetime') {\n <div class=\"kpt-calendar__header\">\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"backToCalendar()\" [attr.aria-label]=\"i18n.t('datepicker.calendar')\"><kpt-icon name=\"chevron-left\" /></button>\n <span class=\"kpt-calendar__title\">{{ i18n.t('datepicker.time') }}</span>\n </div>\n }\n <kpt-clock [(value)]=\"timeStr\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <!-- Nag\u0142\u00F3wek wsp\u00F3lny dla czterech poziom\u00F3w: r\u00F3\u017Cni je tylko tre\u015B\u0107 tytu\u0142u. -->\n <div class=\"kpt-calendar__header\">\n @if (hasNav()) {\n <button type=\"button\" class=\"kpt-calendar__nav\" [disabled]=\"!canPageBack()\" (click)=\"pagePrev()\" [attr.aria-label]=\"navPrevLabel()\"><kpt-icon name=\"chevron-left\" /></button>\n }\n <span class=\"kpt-calendar__titles\">\n @switch (panelView()) {\n @case ('day') {\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('month')\" [attr.aria-label]=\"i18n.t('datepicker.chooseMonth')\">{{ monthName() }}</button>\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('year')\" [attr.aria-label]=\"i18n.t('datepicker.chooseYear')\">{{ viewYear() }}</button>\n }\n @case ('month') {\n @if (selectionMode() === 'month') {\n <span class=\"kpt-calendar__title\">{{ i18n.t('datepicker.month') }}</span>\n } @else {\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('year')\" [attr.aria-label]=\"i18n.t('datepicker.chooseYear')\">{{ viewYear() }}</button>\n }\n }\n @case ('year') {\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('decade')\" [attr.aria-label]=\"i18n.t('datepicker.chooseDecade')\">{{ yearRangeLabel() }}</button>\n }\n @case ('decade') {\n <span class=\"kpt-calendar__title\">{{ decadeRangeLabel() }}</span>\n }\n }\n </span>\n @if (hasNav()) {\n <button type=\"button\" class=\"kpt-calendar__nav\" [disabled]=\"!canPageForward()\" (click)=\"pageNext()\" [attr.aria-label]=\"navNextLabel()\"><kpt-icon name=\"chevron-right\" /></button>\n }\n </div>\n\n @switch (panelView()) {\n @case ('day') {\n <div class=\"kpt-calendar__weekdays\">\n @for (wd of weekdays(); track wd) {\n <span class=\"kpt-calendar__weekday\">{{ wd }}</span>\n }\n </div>\n <div class=\"kpt-calendar__grid\">\n @for (week of weeks(); track $index) {\n @for (cell of week; track cell.iso) {\n <button\n type=\"button\"\n class=\"kpt-calendar__day\"\n [class.kpt-calendar__day--muted]=\"!cell.inMonth\"\n [class.kpt-calendar__day--today]=\"cell.today\"\n [class.kpt-calendar__day--selected]=\"cell.selected\"\n [disabled]=\"cell.disabled\"\n [attr.aria-pressed]=\"cell.selected\"\n (click)=\"selectDay(cell)\"\n >{{ cell.day }}</button>\n }\n }\n </div>\n }\n @default {\n <div class=\"kpt-calendar__grid kpt-calendar__grid--cells\" [class.kpt-calendar__grid--decades]=\"panelView() === 'decade'\">\n @for (cell of levelCells(); track cell.label) {\n <button\n type=\"button\"\n class=\"kpt-calendar__cell\"\n [class.kpt-calendar__cell--selected]=\"cell.selected\"\n [class.kpt-calendar__cell--current]=\"cell.current\"\n [disabled]=\"cell.disabled\"\n [attr.aria-pressed]=\"cell.selected\"\n (click)=\"selectCell(cell)\"\n >{{ cell.label }}</button>\n }\n </div>\n }\n }\n\n @if (selectionMode() === 'datetime') {\n <button type=\"button\" class=\"kpt-calendar__timebar\" (click)=\"openClock()\">\n <kpt-icon name=\"clock\" />\n <span>{{ timeBarLabel() }}</span>\n </button>\n }\n }\n @if (hasFooter()) {\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n }\n </div>\n</ng-template>\n", styles: ["@layer kpt.components{.kpt-datepicker-host{display:block}.kpt-datepicker{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);height:2.5rem;padding-inline:var(--kpt-space-3, .75rem);box-sizing:border-box;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-size:var(--kpt-font-size-sm, .875rem);cursor:pointer}.kpt-datepicker:hover:not(.kpt-datepicker--disabled){border-color:var(--kpt-form-field-border-hover)}.kpt-datepicker:focus-visible,.kpt-datepicker.kpt-datepicker--open{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-datepicker.kpt-datepicker--invalid{border-color:var(--kpt-form-field-border-error)}.kpt-datepicker.kpt-datepicker--disabled{cursor:not-allowed;opacity:.6;background:var(--kpt-color-surface-variant)}.kpt-datepicker__placeholder{color:var(--kpt-form-field-placeholder)}.kpt-datepicker__spacer{flex:1}.kpt-datepicker__icon{color:var(--kpt-color-on-surface-muted)}.kpt-datepicker__clear{display:inline-flex;border:0;background:none;cursor:pointer;color:var(--kpt-color-on-surface-muted);padding:0}.kpt-datepicker__clear:hover{color:var(--kpt-color-on-surface)}.kpt-calendar{width:17rem;padding:var(--kpt-space-3, .75rem);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);color:var(--kpt-color-on-surface);font-size:var(--kpt-font-size-sm, .875rem)}.kpt-calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--kpt-space-2, .5rem)}.kpt-calendar__title{font-weight:var(--kpt-font-weight-semibold, 600);text-transform:capitalize}.kpt-calendar__titles{display:flex;align-items:center;gap:var(--kpt-space-1, .25rem)}.kpt-calendar__title-btn{padding:.25rem var(--kpt-space-2, .5rem);border:0;border-radius:var(--kpt-radius-sm, .25rem);background:var(--kpt-color-muted);color:var(--kpt-color-on-surface);font:inherit;font-weight:var(--kpt-font-weight-semibold, 600);text-transform:capitalize;cursor:pointer}.kpt-calendar__title-btn:hover{background:var(--kpt-color-muted-hover)}.kpt-calendar__title-btn:focus-visible{outline:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border-strong);outline-offset:1px}.kpt-calendar__nav{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:var(--kpt-radius-md, .5rem);background:none;color:var(--kpt-color-on-surface);cursor:pointer}.kpt-calendar__nav:hover:not(:disabled){background:var(--kpt-color-muted)}.kpt-calendar__nav:disabled{opacity:.3;cursor:not-allowed}.kpt-calendar__weekdays,.kpt-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.kpt-calendar__weekday{text-align:center;font-size:var(--kpt-font-size-xs, .75rem);color:var(--kpt-color-on-surface-muted);padding:.25rem 0}.kpt-calendar__day{aspect-ratio:1;border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);cursor:pointer;font:inherit}.kpt-calendar__day:hover:not(:disabled){background:var(--kpt-color-muted)}.kpt-calendar__day--muted{color:var(--kpt-color-on-surface-muted);opacity:.5}.kpt-calendar__day--today{box-shadow:inset 0 0 0 1px var(--kpt-color-border-strong)}.kpt-calendar__day--selected{background:var(--kpt-color-primary)!important;color:var(--kpt-color-on-primary)}.kpt-calendar__day:disabled{opacity:.3;cursor:not-allowed}.kpt-calendar__grid--cells{grid-template-columns:repeat(3,1fr);gap:4px}.kpt-calendar__cell{padding:.6rem .25rem;border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);cursor:pointer;font:inherit;text-transform:capitalize}.kpt-calendar__cell:hover:not(:disabled){background:var(--kpt-color-muted)}.kpt-calendar__cell--current{box-shadow:inset 0 0 0 1px var(--kpt-color-border-strong)}.kpt-calendar__cell--selected{background:var(--kpt-color-primary)!important;color:var(--kpt-color-on-primary)}.kpt-calendar__cell:disabled{opacity:.3;cursor:not-allowed}.kpt-calendar__grid--decades .kpt-calendar__cell{padding-inline:0;font-size:var(--kpt-font-size-xs, .75rem);white-space:nowrap}.kpt-calendar__timebar{display:flex;align-items:center;justify-content:center;gap:var(--kpt-space-2, .5rem);width:100%;margin-top:var(--kpt-space-2, .5rem);padding:var(--kpt-space-2, .5rem);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);border-radius:var(--kpt-radius-md, .5rem);background:none;color:var(--kpt-color-on-surface);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer}.kpt-calendar__timebar:hover{background:var(--kpt-color-muted)}.kpt-calendar__timebar kpt-icon{color:var(--kpt-color-on-surface-muted)}.kpt-calendar__footer{display:flex;justify-content:flex-end;margin-top:var(--kpt-space-3, .75rem)}.kpt-calendar--clock{width:16rem}}\n"] }]
3920
+ }], () => [], { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }], touch: [{ type: i0.Output, args: ["touch"] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], displayFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayFormat", required: false }] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }], startView: [{ type: i0.Input, args: [{ isSignal: true, alias: "startView", required: false }] }], monthDisplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "monthDisplay", required: false }] }], hourFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "hourFormat", required: false }] }], minuteStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "minuteStep", required: false }] }], minDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDate", required: false }] }], maxDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDate", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }] }); })();
3921
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptDatepicker, { className: "KptDatepicker", filePath: "lib/datepicker/datepicker.component.ts", lineNumber: 81 }); })();
3781
3922
 
3782
3923
  const _c0$u = ["ta"];
3783
3924
  /**
@@ -5879,7 +6020,8 @@ class KptColorPicker {
5879
6020
  }], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], presets: [{ type: i0.Input, args: [{ isSignal: true, alias: "presets", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }], touch: [{ type: i0.Output, args: ["touch"] }] }); })();
5880
6021
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptColorPicker, { className: "KptColorPicker", filePath: "lib/color-picker/color-picker.component.ts", lineNumber: 52 }); })();
5881
6022
 
5882
- const _forTrack0$5 = ($index, $item) => $item.iso;
6023
+ const _forTrack0$5 = ($index, $item) => $item.key;
6024
+ const _forTrack1$1 = ($index, $item) => $item.iso;
5883
6025
  function KptDateRange_Conditional_2_Template(rf, ctx) { if (rf & 1) {
5884
6026
  i0.ɵɵelementStart(0, "span", 2);
5885
6027
  i0.ɵɵtext(1);
@@ -5956,64 +6098,129 @@ function KptDateRange_ng_template_7_Conditional_1_Template(rf, ctx) { if (rf & 1
5956
6098
  i0.ɵɵadvance(4);
5957
6099
  i0.ɵɵtextInterpolate(ctx_r0.i18n.t("common.done"));
5958
6100
  } }
5959
- function KptDateRange_ng_template_7_Conditional_2_For_9_Template(rf, ctx) { if (rf & 1) {
5960
- i0.ɵɵelementStart(0, "span", 23);
6101
+ function KptDateRange_ng_template_7_Conditional_2_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
6102
+ const _r7 = i0.ɵɵgetCurrentView();
6103
+ i0.ɵɵelementStart(0, "button", 26);
6104
+ i0.ɵɵlistener("click", function KptDateRange_ng_template_7_Conditional_2_For_2_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.prevMonth()); });
6105
+ i0.ɵɵelement(1, "kpt-icon", 27);
6106
+ i0.ɵɵelementEnd();
6107
+ } if (rf & 2) {
6108
+ const ctx_r0 = i0.ɵɵnextContext(4);
6109
+ i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.prevMonth"));
6110
+ } }
6111
+ function KptDateRange_ng_template_7_Conditional_2_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
6112
+ i0.ɵɵelement(0, "span", 21);
6113
+ } }
6114
+ function KptDateRange_ng_template_7_Conditional_2_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
6115
+ const _r8 = i0.ɵɵgetCurrentView();
6116
+ i0.ɵɵelementStart(0, "button", 26);
6117
+ i0.ɵɵlistener("click", function KptDateRange_ng_template_7_Conditional_2_For_2_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.nextMonth()); });
6118
+ i0.ɵɵelement(1, "kpt-icon", 28);
6119
+ i0.ɵɵelementEnd();
6120
+ } if (rf & 2) {
6121
+ const ctx_r0 = i0.ɵɵnextContext(4);
6122
+ i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.nextMonth"));
6123
+ } }
6124
+ function KptDateRange_ng_template_7_Conditional_2_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
6125
+ i0.ɵɵelement(0, "span", 21);
6126
+ } }
6127
+ function KptDateRange_ng_template_7_Conditional_2_For_2_For_10_Template(rf, ctx) { if (rf & 1) {
6128
+ i0.ɵɵelementStart(0, "span", 24);
5961
6129
  i0.ɵɵtext(1);
5962
6130
  i0.ɵɵelementEnd();
5963
6131
  } if (rf & 2) {
5964
- const wd_r8 = ctx.$implicit;
6132
+ const wd_r9 = ctx.$implicit;
5965
6133
  i0.ɵɵadvance();
5966
- i0.ɵɵtextInterpolate(wd_r8);
6134
+ i0.ɵɵtextInterpolate(wd_r9);
5967
6135
  } }
5968
- function KptDateRange_ng_template_7_Conditional_2_For_12_For_1_Template(rf, ctx) { if (rf & 1) {
5969
- const _r9 = i0.ɵɵgetCurrentView();
5970
- i0.ɵɵelementStart(0, "button", 26);
5971
- i0.ɵɵlistener("click", function KptDateRange_ng_template_7_Conditional_2_For_12_For_1_Template_button_click_0_listener() { const cell_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.selectDay(cell_r10)); });
6136
+ function KptDateRange_ng_template_7_Conditional_2_For_2_For_13_For_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
6137
+ i0.ɵɵelement(0, "span", 29);
6138
+ } }
6139
+ function KptDateRange_ng_template_7_Conditional_2_For_2_For_13_For_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
6140
+ const _r10 = i0.ɵɵgetCurrentView();
6141
+ i0.ɵɵelementStart(0, "button", 31);
6142
+ i0.ɵɵlistener("click", function KptDateRange_ng_template_7_Conditional_2_For_2_For_13_For_1_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const cell_r11 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r0.selectDay(cell_r11)); });
5972
6143
  i0.ɵɵtext(1);
5973
6144
  i0.ɵɵelementEnd();
5974
6145
  } if (rf & 2) {
5975
- const cell_r10 = ctx.$implicit;
5976
- i0.ɵɵclassProp("kpt-calendar__day--muted", !cell_r10.inMonth)("kpt-calendar__day--range", cell_r10.inRange)("kpt-calendar__day--selected", cell_r10.isStart || cell_r10.isEnd);
6146
+ const cell_r11 = i0.ɵɵnextContext().$implicit;
6147
+ i0.ɵɵclassProp("kpt-calendar__day--muted", !cell_r11.inMonth)("kpt-calendar__day--today", cell_r11.today)("kpt-calendar__day--range", cell_r11.inRange)("kpt-calendar__day--range-start", cell_r11.rangeStart)("kpt-calendar__day--range-end", cell_r11.rangeEnd)("kpt-calendar__day--selected", cell_r11.isStart || cell_r11.isEnd);
5977
6148
  i0.ɵɵadvance();
5978
- i0.ɵɵtextInterpolate(cell_r10.day);
6149
+ i0.ɵɵtextInterpolate(cell_r11.day);
5979
6150
  } }
5980
- function KptDateRange_ng_template_7_Conditional_2_For_12_Template(rf, ctx) { if (rf & 1) {
5981
- i0.ɵɵrepeaterCreate(0, KptDateRange_ng_template_7_Conditional_2_For_12_For_1_Template, 2, 7, "button", 25, _forTrack0$5);
6151
+ function KptDateRange_ng_template_7_Conditional_2_For_2_For_13_For_1_Template(rf, ctx) { if (rf & 1) {
6152
+ i0.ɵɵconditionalCreate(0, KptDateRange_ng_template_7_Conditional_2_For_2_For_13_For_1_Conditional_0_Template, 1, 0, "span", 29)(1, KptDateRange_ng_template_7_Conditional_2_For_2_For_13_For_1_Conditional_1_Template, 2, 13, "button", 30);
5982
6153
  } if (rf & 2) {
5983
- const week_r11 = ctx.$implicit;
5984
- i0.ɵɵrepeater(week_r11);
6154
+ const cell_r11 = ctx.$implicit;
6155
+ i0.ɵɵconditional(cell_r11.blank ? 0 : 1);
5985
6156
  } }
5986
- function KptDateRange_ng_template_7_Conditional_2_Conditional_13_Conditional_5_Template(rf, ctx) { if (rf & 1) {
5987
- const _r13 = i0.ɵɵgetCurrentView();
6157
+ function KptDateRange_ng_template_7_Conditional_2_For_2_For_13_Template(rf, ctx) { if (rf & 1) {
6158
+ i0.ɵɵrepeaterCreate(0, KptDateRange_ng_template_7_Conditional_2_For_2_For_13_For_1_Template, 2, 1, null, null, _forTrack1$1);
6159
+ } if (rf & 2) {
6160
+ const week_r12 = ctx.$implicit;
6161
+ i0.ɵɵrepeater(week_r12);
6162
+ } }
6163
+ function KptDateRange_ng_template_7_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
6164
+ i0.ɵɵelementStart(0, "div", 18)(1, "div", 19);
6165
+ i0.ɵɵconditionalCreate(2, KptDateRange_ng_template_7_Conditional_2_For_2_Conditional_2_Template, 2, 1, "button", 20)(3, KptDateRange_ng_template_7_Conditional_2_For_2_Conditional_3_Template, 1, 0, "span", 21);
6166
+ i0.ɵɵelementStart(4, "span", 22);
6167
+ i0.ɵɵtext(5);
6168
+ i0.ɵɵelementEnd();
6169
+ i0.ɵɵconditionalCreate(6, KptDateRange_ng_template_7_Conditional_2_For_2_Conditional_6_Template, 2, 1, "button", 20)(7, KptDateRange_ng_template_7_Conditional_2_For_2_Conditional_7_Template, 1, 0, "span", 21);
6170
+ i0.ɵɵelementEnd();
6171
+ i0.ɵɵelementStart(8, "div", 23);
6172
+ i0.ɵɵrepeaterCreate(9, KptDateRange_ng_template_7_Conditional_2_For_2_For_10_Template, 2, 1, "span", 24, i0.ɵɵrepeaterTrackByIdentity);
6173
+ i0.ɵɵelementEnd();
6174
+ i0.ɵɵelementStart(11, "div", 25);
6175
+ i0.ɵɵrepeaterCreate(12, KptDateRange_ng_template_7_Conditional_2_For_2_For_13_Template, 2, 0, null, null, i0.ɵɵrepeaterTrackByIndex);
6176
+ i0.ɵɵelementEnd()();
6177
+ } if (rf & 2) {
6178
+ const panel_r13 = ctx.$implicit;
6179
+ const ɵ$index_47_r14 = ctx.$index;
6180
+ const ɵ$count_47_r15 = ctx.$count;
6181
+ const ctx_r0 = i0.ɵɵnextContext(3);
6182
+ i0.ɵɵadvance(2);
6183
+ i0.ɵɵconditional(ɵ$index_47_r14 === 0 ? 2 : 3);
6184
+ i0.ɵɵadvance(3);
6185
+ i0.ɵɵtextInterpolate(panel_r13.label);
6186
+ i0.ɵɵadvance();
6187
+ i0.ɵɵconditional(ɵ$index_47_r14 === ɵ$count_47_r15 - 1 ? 6 : 7);
6188
+ i0.ɵɵadvance(3);
6189
+ i0.ɵɵrepeater(ctx_r0.weekdays());
6190
+ i0.ɵɵadvance(3);
6191
+ i0.ɵɵrepeater(panel_r13.weeks);
6192
+ } }
6193
+ function KptDateRange_ng_template_7_Conditional_2_Conditional_3_Conditional_5_Template(rf, ctx) { if (rf & 1) {
6194
+ const _r17 = i0.ɵɵgetCurrentView();
5988
6195
  i0.ɵɵelementStart(0, "kpt-clock", 16);
5989
- i0.ɵɵlistener("valueChange", function KptDateRange_ng_template_7_Conditional_2_Conditional_13_Conditional_5_Template_kpt_clock_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.startTime.set($event)); });
6196
+ i0.ɵɵlistener("valueChange", function KptDateRange_ng_template_7_Conditional_2_Conditional_3_Conditional_5_Template_kpt_clock_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.startTime.set($event)); });
5990
6197
  i0.ɵɵelementEnd();
5991
6198
  } if (rf & 2) {
5992
6199
  const ctx_r0 = i0.ɵɵnextContext(4);
5993
6200
  i0.ɵɵproperty("value", ctx_r0.startTime())("hourFormat", ctx_r0.hourFormat())("minuteStep", ctx_r0.minuteStep());
5994
6201
  } }
5995
- function KptDateRange_ng_template_7_Conditional_2_Conditional_13_Conditional_6_Template(rf, ctx) { if (rf & 1) {
5996
- const _r14 = i0.ɵɵgetCurrentView();
6202
+ function KptDateRange_ng_template_7_Conditional_2_Conditional_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
6203
+ const _r18 = i0.ɵɵgetCurrentView();
5997
6204
  i0.ɵɵelementStart(0, "kpt-clock", 16);
5998
- i0.ɵɵlistener("valueChange", function KptDateRange_ng_template_7_Conditional_2_Conditional_13_Conditional_6_Template_kpt_clock_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.endTime.set($event)); });
6205
+ i0.ɵɵlistener("valueChange", function KptDateRange_ng_template_7_Conditional_2_Conditional_3_Conditional_6_Template_kpt_clock_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.endTime.set($event)); });
5999
6206
  i0.ɵɵelementEnd();
6000
6207
  } if (rf & 2) {
6001
6208
  const ctx_r0 = i0.ɵɵnextContext(4);
6002
6209
  i0.ɵɵproperty("value", ctx_r0.endTime())("hourFormat", ctx_r0.hourFormat())("minuteStep", ctx_r0.minuteStep());
6003
6210
  } }
6004
- function KptDateRange_ng_template_7_Conditional_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
6005
- const _r12 = i0.ɵɵgetCurrentView();
6211
+ function KptDateRange_ng_template_7_Conditional_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
6212
+ const _r16 = i0.ɵɵgetCurrentView();
6006
6213
  i0.ɵɵelementStart(0, "div", 11)(1, "button", 12);
6007
- i0.ɵɵlistener("click", function KptDateRange_ng_template_7_Conditional_2_Conditional_13_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r12); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.timeEnd.set("start")); });
6214
+ i0.ɵɵlistener("click", function KptDateRange_ng_template_7_Conditional_2_Conditional_3_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r16); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.timeEnd.set("start")); });
6008
6215
  i0.ɵɵtext(2);
6009
6216
  i0.ɵɵelementEnd();
6010
6217
  i0.ɵɵelementStart(3, "button", 12);
6011
- i0.ɵɵlistener("click", function KptDateRange_ng_template_7_Conditional_2_Conditional_13_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r12); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.timeEnd.set("end")); });
6218
+ i0.ɵɵlistener("click", function KptDateRange_ng_template_7_Conditional_2_Conditional_3_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r16); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.timeEnd.set("end")); });
6012
6219
  i0.ɵɵtext(4);
6013
6220
  i0.ɵɵelementEnd()();
6014
- i0.ɵɵconditionalCreate(5, KptDateRange_ng_template_7_Conditional_2_Conditional_13_Conditional_5_Template, 1, 3, "kpt-clock", 13)(6, KptDateRange_ng_template_7_Conditional_2_Conditional_13_Conditional_6_Template, 1, 3, "kpt-clock", 13);
6221
+ i0.ɵɵconditionalCreate(5, KptDateRange_ng_template_7_Conditional_2_Conditional_3_Conditional_5_Template, 1, 3, "kpt-clock", 13)(6, KptDateRange_ng_template_7_Conditional_2_Conditional_3_Conditional_6_Template, 1, 3, "kpt-clock", 13);
6015
6222
  i0.ɵɵelementStart(7, "div", 14)(8, "kpt-button", 15);
6016
- i0.ɵɵlistener("click", function KptDateRange_ng_template_7_Conditional_2_Conditional_13_Template_kpt_button_click_8_listener() { i0.ɵɵrestoreView(_r12); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.commit()); });
6223
+ i0.ɵɵlistener("click", function KptDateRange_ng_template_7_Conditional_2_Conditional_3_Template_kpt_button_click_8_listener() { i0.ɵɵrestoreView(_r16); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.commit()); });
6017
6224
  i0.ɵɵtext(9);
6018
6225
  i0.ɵɵelementEnd()();
6019
6226
  } if (rf & 2) {
@@ -6032,49 +6239,26 @@ function KptDateRange_ng_template_7_Conditional_2_Conditional_13_Template(rf, ct
6032
6239
  i0.ɵɵtextInterpolate(ctx_r0.i18n.t("common.done"));
6033
6240
  } }
6034
6241
  function KptDateRange_ng_template_7_Conditional_2_Template(rf, ctx) { if (rf & 1) {
6035
- const _r7 = i0.ɵɵgetCurrentView();
6036
- i0.ɵɵelementStart(0, "div", 17)(1, "button", 18);
6037
- i0.ɵɵlistener("click", function KptDateRange_ng_template_7_Conditional_2_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.prevMonth()); });
6038
- i0.ɵɵelement(2, "kpt-icon", 19);
6039
- i0.ɵɵelementEnd();
6040
- i0.ɵɵelementStart(3, "span", 20);
6041
- i0.ɵɵtext(4);
6042
- i0.ɵɵelementEnd();
6043
- i0.ɵɵelementStart(5, "button", 18);
6044
- i0.ɵɵlistener("click", function KptDateRange_ng_template_7_Conditional_2_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.nextMonth()); });
6045
- i0.ɵɵelement(6, "kpt-icon", 21);
6046
- i0.ɵɵelementEnd()();
6047
- i0.ɵɵelementStart(7, "div", 22);
6048
- i0.ɵɵrepeaterCreate(8, KptDateRange_ng_template_7_Conditional_2_For_9_Template, 2, 1, "span", 23, i0.ɵɵrepeaterTrackByIdentity);
6049
- i0.ɵɵelementEnd();
6050
- i0.ɵɵelementStart(10, "div", 24);
6051
- i0.ɵɵrepeaterCreate(11, KptDateRange_ng_template_7_Conditional_2_For_12_Template, 2, 0, null, null, i0.ɵɵrepeaterTrackByIndex);
6242
+ i0.ɵɵelementStart(0, "div", 17);
6243
+ i0.ɵɵrepeaterCreate(1, KptDateRange_ng_template_7_Conditional_2_For_2_Template, 14, 3, "div", 18, _forTrack0$5);
6052
6244
  i0.ɵɵelementEnd();
6053
- i0.ɵɵconditionalCreate(13, KptDateRange_ng_template_7_Conditional_2_Conditional_13_Template, 10, 8);
6245
+ i0.ɵɵconditionalCreate(3, KptDateRange_ng_template_7_Conditional_2_Conditional_3_Template, 10, 8);
6054
6246
  } if (rf & 2) {
6055
6247
  const ctx_r0 = i0.ɵɵnextContext(2);
6056
6248
  i0.ɵɵadvance();
6057
- i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.prevMonth"));
6058
- i0.ɵɵadvance(3);
6059
- i0.ɵɵtextInterpolate(ctx_r0.monthLabel());
6060
- i0.ɵɵadvance();
6061
- i0.ɵɵattribute("aria-label", ctx_r0.i18n.t("datepicker.nextMonth"));
6062
- i0.ɵɵadvance(3);
6063
- i0.ɵɵrepeater(ctx_r0.weekdays());
6064
- i0.ɵɵadvance(3);
6065
- i0.ɵɵrepeater(ctx_r0.weeks());
6249
+ i0.ɵɵrepeater(ctx_r0.panels());
6066
6250
  i0.ɵɵadvance(2);
6067
- i0.ɵɵconditional(ctx_r0.mode() === "datetime" ? 13 : -1);
6251
+ i0.ɵɵconditional(ctx_r0.mode() === "datetime" ? 3 : -1);
6068
6252
  } }
6069
6253
  function KptDateRange_ng_template_7_Template(rf, ctx) { if (rf & 1) {
6070
6254
  const _r3 = i0.ɵɵgetCurrentView();
6071
6255
  i0.ɵɵelementStart(0, "div", 10);
6072
6256
  i0.ɵɵlistener("keydown.escape", function KptDateRange_ng_template_7_Template_div_keydown_escape_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.close()); });
6073
- i0.ɵɵconditionalCreate(1, KptDateRange_ng_template_7_Conditional_1_Template, 10, 8)(2, KptDateRange_ng_template_7_Conditional_2_Template, 14, 4);
6257
+ i0.ɵɵconditionalCreate(1, KptDateRange_ng_template_7_Conditional_1_Template, 10, 8)(2, KptDateRange_ng_template_7_Conditional_2_Template, 4, 1);
6074
6258
  i0.ɵɵelementEnd();
6075
6259
  } if (rf & 2) {
6076
6260
  const ctx_r0 = i0.ɵɵnextContext();
6077
- i0.ɵɵclassProp("kpt-calendar--clock", ctx_r0.mode() === "time");
6261
+ i0.ɵɵclassProp("kpt-calendar--clock", ctx_r0.mode() === "time")("kpt-calendar--range", ctx_r0.mode() !== "time")("kpt-calendar--multi", ctx_r0.multi() && ctx_r0.mode() !== "time");
6078
6262
  i0.ɵɵadvance();
6079
6263
  i0.ɵɵconditional(ctx_r0.mode() === "time" ? 1 : 2);
6080
6264
  } }
@@ -6083,11 +6267,14 @@ const toIso = (d) => `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDat
6083
6267
  /**
6084
6268
  * Wybór zakresu dat z kalendarzem (CDK Overlay), Signal Forms.
6085
6269
  * `mode`: 'date' (domyślnie), 'datetime' (data+godzina, tarcza zegara), 'time' (sama godzina).
6270
+ * `visibleMonths` pokazuje kilka miesięcy obok siebie (typowo 2) — zakres podświetla się
6271
+ * ciągłym pasmem przez wszystkie panele.
6086
6272
  * Wartość: `{ start, end }` — daty 'RRRR-MM-DD', datetime 'RRRR-MM-DDTHH:mm', godziny 'HH:mm'.
6087
6273
  * Wymaga `import '@angular/cdk/overlay-prebuilt.css';`
6088
6274
  *
6089
6275
  * @example
6090
6276
  * <kpt-date-range [formField]="f.period" />
6277
+ * <kpt-date-range [visibleMonths]="2" [(value)]="period" />
6091
6278
  * <kpt-date-range mode="datetime" [hourFormat]="12" [(value)]="span" />
6092
6279
  * <kpt-date-range mode="time" [(value)]="hours" />
6093
6280
  */
@@ -6109,6 +6296,8 @@ class KptDateRange {
6109
6296
  ...(ngDevMode ? [{ debugName: "displayFormat" }] : /* istanbul ignore next */ []));
6110
6297
  this.mode = input('date', /* @ts-ignore */
6111
6298
  ...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
6299
+ /** Liczba miesięcy obok siebie (1–3; domyślnie 1). Ignorowana w trybie 'time'. */
6300
+ this.visibleMonths = input(1, { ...(ngDevMode ? { debugName: "visibleMonths" } : /* istanbul ignore next */ {}), transform: numberAttribute });
6112
6301
  this.hourFormat = input(24, { ...(ngDevMode ? { debugName: "hourFormat" } : /* istanbul ignore next */ {}), transform: numberAttribute });
6113
6302
  this.minuteStep = input(1, { ...(ngDevMode ? { debugName: "minuteStep" } : /* istanbul ignore next */ {}), transform: numberAttribute });
6114
6303
  this.i18n = inject(KptI18n);
@@ -6139,11 +6328,13 @@ class KptDateRange {
6139
6328
  { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },
6140
6329
  { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },
6141
6330
  ];
6142
- this.monthLabel = computed(() => {
6143
- const { y, m } = this.view();
6144
- return `${this.months()[m]} ${y}`;
6331
+ this.panelCount = computed(() => {
6332
+ const n = Math.trunc(this.visibleMonths());
6333
+ return Number.isFinite(n) ? Math.min(3, Math.max(1, n)) : 1;
6145
6334
  }, /* @ts-ignore */
6146
- ...(ngDevMode ? [{ debugName: "monthLabel" }] : /* istanbul ignore next */ []));
6335
+ ...(ngDevMode ? [{ debugName: "panelCount" }] : /* istanbul ignore next */ []));
6336
+ this.multi = computed(() => this.panelCount() > 1, /* @ts-ignore */
6337
+ ...(ngDevMode ? [{ debugName: "multi" }] : /* istanbul ignore next */ []));
6147
6338
  this.display = computed(() => {
6148
6339
  const { start, end } = this.value();
6149
6340
  if (!start)
@@ -6163,34 +6354,25 @@ class KptDateRange {
6163
6354
  return end ? `${this.fmtDate(start)} – ${this.fmtDate(end)}` : `${this.fmtDate(start)} – …`;
6164
6355
  }, /* @ts-ignore */
6165
6356
  ...(ngDevMode ? [{ debugName: "display" }] : /* istanbul ignore next */ []));
6166
- this.weeks = computed(() => {
6357
+ /**
6358
+ * Panele miesięcy. Przy kilku panelach dni sąsiednich miesięcy są wygaszane do pustych slotów:
6359
+ * inaczej ta sama data byłaby klikalna dwa razy (jako „wyszarzona" w jednym panelu i właściwa
6360
+ * w drugim) i pasmo zakresu malowałoby się w obu miejscach.
6361
+ */
6362
+ this.panels = computed(() => {
6167
6363
  const { y, m } = this.view();
6168
- const start = this.mode() === 'datetime' ? this.startDate() : this.value().start;
6169
- const end = this.mode() === 'datetime' ? this.endDate() : this.value().end;
6170
- const first = new Date(y, m, 1);
6171
- const startOffset = (first.getDay() + 6) % 7;
6172
- const gridStart = new Date(y, m, 1 - startOffset);
6173
- const weeks = [];
6174
- for (let w = 0; w < 6; w++) {
6175
- const row = [];
6176
- for (let d = 0; d < 7; d++) {
6177
- const date = new Date(gridStart.getFullYear(), gridStart.getMonth(), gridStart.getDate() + w * 7 + d);
6178
- const iso = toIso(date);
6179
- row.push({
6180
- day: date.getDate(),
6181
- iso,
6182
- inMonth: date.getMonth() === m,
6183
- isStart: iso === start,
6184
- isEnd: iso === end,
6185
- inRange: !!start && !!end && iso > start && iso < end,
6186
- disabled: false,
6187
- });
6188
- }
6189
- weeks.push(row);
6190
- }
6191
- return weeks;
6364
+ return Array.from({ length: this.panelCount() }, (_, i) => {
6365
+ const first = new Date(y, m + i, 1);
6366
+ const py = first.getFullYear();
6367
+ const pm = first.getMonth();
6368
+ return {
6369
+ key: `${py}-${pad(pm + 1)}`,
6370
+ label: `${this.months()[pm]} ${py}`,
6371
+ weeks: this.buildWeeks(py, pm),
6372
+ };
6373
+ });
6192
6374
  }, /* @ts-ignore */
6193
- ...(ngDevMode ? [{ debugName: "weeks" }] : /* istanbul ignore next */ []));
6375
+ ...(ngDevMode ? [{ debugName: "panels" }] : /* istanbul ignore next */ []));
6194
6376
  }
6195
6377
  datePart(v) {
6196
6378
  return v ? v.slice(0, 10) : '';
@@ -6216,6 +6398,41 @@ class KptDateRange {
6216
6398
  }
6217
6399
  return hhmm;
6218
6400
  }
6401
+ buildWeeks(y, m) {
6402
+ const datetime = this.mode() === 'datetime';
6403
+ const start = datetime ? this.startDate() : this.value().start;
6404
+ const end = datetime ? this.endDate() : this.value().end;
6405
+ const hasBand = !!start && !!end && start < end;
6406
+ const hideOutside = this.multi();
6407
+ const todayIso = toIso(this.today);
6408
+ const first = new Date(y, m, 1);
6409
+ const startOffset = (first.getDay() + 6) % 7;
6410
+ const gridStart = new Date(y, m, 1 - startOffset);
6411
+ const weeks = [];
6412
+ for (let w = 0; w < 6; w++) {
6413
+ const row = [];
6414
+ for (let d = 0; d < 7; d++) {
6415
+ const date = new Date(gridStart.getFullYear(), gridStart.getMonth(), gridStart.getDate() + w * 7 + d);
6416
+ const iso = toIso(date);
6417
+ const inMonth = date.getMonth() === m;
6418
+ row.push({
6419
+ day: date.getDate(),
6420
+ iso,
6421
+ inMonth,
6422
+ today: iso === todayIso,
6423
+ isStart: iso === start,
6424
+ isEnd: iso === end,
6425
+ inRange: hasBand && iso > start && iso < end,
6426
+ rangeStart: hasBand && iso === start,
6427
+ rangeEnd: hasBand && iso === end,
6428
+ blank: hideOutside && !inMonth,
6429
+ disabled: false,
6430
+ });
6431
+ }
6432
+ weeks.push(row);
6433
+ }
6434
+ return weeks;
6435
+ }
6219
6436
  toggleOpen() {
6220
6437
  if (this.disabled())
6221
6438
  return;
@@ -6245,6 +6462,8 @@ class KptDateRange {
6245
6462
  this.touch.emit();
6246
6463
  }
6247
6464
  selectDay(cell) {
6465
+ if (cell.blank || cell.disabled)
6466
+ return;
6248
6467
  if (this.mode() === 'datetime') {
6249
6468
  const start = this.startDate();
6250
6469
  const end = this.endDate();
@@ -6306,7 +6525,7 @@ class KptDateRange {
6306
6525
  this.endDate.set('');
6307
6526
  }
6308
6527
  static { this.ɵfac = function KptDateRange_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptDateRange)(); }; }
6309
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptDateRange, selectors: [["kpt-date-range"]], hostAttrs: [1, "kpt-date-range-host"], inputs: { value: [1, "value"], disabled: [1, "disabled"], invalid: [1, "invalid"], touched: [1, "touched"], placeholder: [1, "placeholder"], displayFormat: [1, "displayFormat"], mode: [1, "mode"], hourFormat: [1, "hourFormat"], minuteStep: [1, "minuteStep"] }, outputs: { value: "valueChange", touch: "touch" }, decls: 8, vars: 12, consts: [["trigger", "cdkOverlayOrigin"], ["cdkOverlayOrigin", "", "role", "button", "tabindex", "0", 1, "kpt-date-range", 3, "click", "keydown.enter", "blur"], [1, "kpt-date-range__value"], [1, "kpt-date-range__placeholder"], [1, "kpt-date-range__spacer"], ["type", "button", 1, "kpt-date-range__clear"], ["name", "calendar", 1, "kpt-date-range__icon"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "detach", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayHasBackdrop"], ["type", "button", 1, "kpt-date-range__clear", 3, "click"], ["name", "x"], [1, "kpt-calendar", 3, "keydown.escape"], [1, "kpt-range-tabs"], ["type", "button", 3, "click"], [3, "value", "hourFormat", "minuteStep"], [1, "kpt-calendar__footer"], ["size", "sm", 3, "click"], [3, "valueChange", "value", "hourFormat", "minuteStep"], [1, "kpt-calendar__header"], ["type", "button", 1, "kpt-calendar__nav", 3, "click"], ["name", "chevron-left"], [1, "kpt-calendar__title"], ["name", "chevron-right"], [1, "kpt-calendar__weekdays"], [1, "kpt-calendar__weekday"], [1, "kpt-calendar__grid"], ["type", "button", 1, "kpt-calendar__day", 3, "kpt-calendar__day--muted", "kpt-calendar__day--range", "kpt-calendar__day--selected"], ["type", "button", 1, "kpt-calendar__day", 3, "click"]], template: function KptDateRange_Template(rf, ctx) { if (rf & 1) {
6528
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptDateRange, selectors: [["kpt-date-range"]], hostAttrs: [1, "kpt-date-range-host"], inputs: { value: [1, "value"], disabled: [1, "disabled"], invalid: [1, "invalid"], touched: [1, "touched"], placeholder: [1, "placeholder"], displayFormat: [1, "displayFormat"], mode: [1, "mode"], visibleMonths: [1, "visibleMonths"], hourFormat: [1, "hourFormat"], minuteStep: [1, "minuteStep"] }, outputs: { value: "valueChange", touch: "touch" }, decls: 8, vars: 12, consts: [["trigger", "cdkOverlayOrigin"], ["cdkOverlayOrigin", "", "role", "button", "tabindex", "0", 1, "kpt-date-range", 3, "click", "keydown.enter", "blur"], [1, "kpt-date-range__value"], [1, "kpt-date-range__placeholder"], [1, "kpt-date-range__spacer"], ["type", "button", 1, "kpt-date-range__clear"], ["name", "calendar", 1, "kpt-date-range__icon"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "detach", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayHasBackdrop"], ["type", "button", 1, "kpt-date-range__clear", 3, "click"], ["name", "x"], [1, "kpt-calendar", 3, "keydown.escape"], [1, "kpt-range-tabs"], ["type", "button", 3, "click"], [3, "value", "hourFormat", "minuteStep"], [1, "kpt-calendar__footer"], ["size", "sm", 3, "click"], [3, "valueChange", "value", "hourFormat", "minuteStep"], [1, "kpt-calendar__panels"], [1, "kpt-calendar__panel"], [1, "kpt-calendar__header"], ["type", "button", 1, "kpt-calendar__nav"], [1, "kpt-calendar__nav-slot"], [1, "kpt-calendar__title"], [1, "kpt-calendar__weekdays"], [1, "kpt-calendar__weekday"], [1, "kpt-calendar__grid"], ["type", "button", 1, "kpt-calendar__nav", 3, "click"], ["name", "chevron-left"], ["name", "chevron-right"], [1, "kpt-calendar__day", "kpt-calendar__day--blank"], ["type", "button", 1, "kpt-calendar__day", 3, "kpt-calendar__day--muted", "kpt-calendar__day--today", "kpt-calendar__day--range", "kpt-calendar__day--range-start", "kpt-calendar__day--range-end", "kpt-calendar__day--selected"], ["type", "button", 1, "kpt-calendar__day", 3, "click"]], template: function KptDateRange_Template(rf, ctx) { if (rf & 1) {
6310
6529
  i0.ɵɵelementStart(0, "div", 1, 0);
6311
6530
  i0.ɵɵlistener("click", function KptDateRange_Template_div_click_0_listener() { return ctx.toggleOpen(); })("keydown.enter", function KptDateRange_Template_div_keydown_enter_0_listener() { return ctx.toggleOpen(); })("blur", function KptDateRange_Template_div_blur_0_listener() { return ctx.touch.emit(); });
6312
6531
  i0.ɵɵconditionalCreate(2, KptDateRange_Conditional_2_Template, 2, 1, "span", 2)(3, KptDateRange_Conditional_3_Template, 2, 1, "span", 3);
@@ -6314,24 +6533,24 @@ class KptDateRange {
6314
6533
  i0.ɵɵconditionalCreate(5, KptDateRange_Conditional_5_Template, 2, 1, "button", 5);
6315
6534
  i0.ɵɵelement(6, "kpt-icon", 6);
6316
6535
  i0.ɵɵelementEnd();
6317
- i0.ɵɵtemplate(7, KptDateRange_ng_template_7_Template, 3, 3, "ng-template", 7);
6536
+ i0.ɵɵtemplate(7, KptDateRange_ng_template_7_Template, 3, 7, "ng-template", 7);
6318
6537
  i0.ɵɵlistener("backdropClick", function KptDateRange_Template_ng_template_backdropClick_7_listener() { return ctx.close(); })("detach", function KptDateRange_Template_ng_template_detach_7_listener() { return ctx.close(); });
6319
6538
  } if (rf & 2) {
6320
- const trigger_r15 = i0.ɵɵreference(1);
6539
+ const trigger_r19 = i0.ɵɵreference(1);
6321
6540
  i0.ɵɵclassProp("kpt-date-range--open", ctx.open())("kpt-date-range--disabled", ctx.disabled())("kpt-date-range--invalid", ctx.showInvalid());
6322
6541
  i0.ɵɵadvance(2);
6323
6542
  i0.ɵɵconditional(ctx.display() ? 2 : 3);
6324
6543
  i0.ɵɵadvance(3);
6325
6544
  i0.ɵɵconditional(ctx.display() ? 5 : -1);
6326
6545
  i0.ɵɵadvance(2);
6327
- i0.ɵɵproperty("cdkConnectedOverlayOrigin", trigger_r15)("cdkConnectedOverlayOpen", ctx.open())("cdkConnectedOverlayPositions", ctx.positions)("cdkConnectedOverlayHasBackdrop", true);
6328
- } }, dependencies: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon, KptButton, KptClock], styles: ["@layer kpt.components{.kpt-date-range-host{display:block}.kpt-date-range{display:flex;align-items:center;gap:var(--%NS%kpt-space-2, .5rem);height:2.5rem;padding-inline:var(--%NS%kpt-space-3, .75rem);box-sizing:border-box;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-size:var(--%NS%kpt-font-size-sm, .875rem);cursor:pointer}.kpt-date-range:hover:not(.kpt-date-range--disabled){border-color:var(--%NS%kpt-form-field-border-hover)}.kpt-date-range:focus-visible,.kpt-date-range.kpt-date-range--open{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-date-range.kpt-date-range--invalid{border-color:var(--%NS%kpt-form-field-border-error)}.kpt-date-range.kpt-date-range--disabled{cursor:not-allowed;opacity:.6;background:var(--%NS%kpt-color-surface-variant)}.kpt-date-range__placeholder{color:var(--%NS%kpt-form-field-placeholder)}.kpt-date-range__spacer{flex:1}.kpt-date-range__icon{color:var(--%NS%kpt-color-on-surface-muted)}.kpt-date-range__clear{display:inline-flex;border:0;background:none;cursor:pointer;padding:0;color:var(--%NS%kpt-color-on-surface-muted)}.kpt-date-range__clear:hover{color:var(--%NS%kpt-color-on-surface)}.kpt-calendar{width:17rem;padding:var(--%NS%kpt-space-3, .75rem);background:var(--%NS%kpt-color-surface-raised);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-color-border);border-radius:var(--%NS%kpt-radius-md, .5rem);box-shadow:var(--%NS%kpt-elevation-3);color:var(--%NS%kpt-color-on-surface);font-size:var(--%NS%kpt-font-size-sm, .875rem)}.kpt-calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--%NS%kpt-space-2, .5rem)}.kpt-calendar__title{font-weight:var(--%NS%kpt-font-weight-semibold, 600);text-transform:capitalize}.kpt-calendar__nav{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:var(--%NS%kpt-radius-md, .5rem);background:none;color:var(--%NS%kpt-color-on-surface);cursor:pointer}.kpt-calendar__nav:hover{background:var(--%NS%kpt-color-muted)}.kpt-calendar__weekdays,.kpt-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.kpt-calendar__weekday{text-align:center;font-size:var(--%NS%kpt-font-size-xs, .75rem);color:var(--%NS%kpt-color-on-surface-muted);padding:.25rem 0}.kpt-calendar__day{aspect-ratio:1;border:0;border-radius:var(--%NS%kpt-radius-sm, .25rem);background:none;color:var(--%NS%kpt-color-on-surface);cursor:pointer;font:inherit}.kpt-calendar__day:hover:not(:disabled){background:var(--%NS%kpt-color-muted)}.kpt-calendar__day--muted{color:var(--%NS%kpt-color-on-surface-muted);opacity:.5}.kpt-calendar__day--range{background:color-mix(in oklch,var(--%NS%kpt-color-primary) 14%,transparent);border-radius:0}.kpt-calendar__day--selected{background:var(--%NS%kpt-color-primary)!important;color:var(--%NS%kpt-color-on-primary)}.kpt-calendar__footer{display:flex;justify-content:flex-end;margin-top:var(--%NS%kpt-space-3, .75rem)}.kpt-calendar--clock{width:16rem}.kpt-range-tabs{display:flex;gap:var(--%NS%kpt-space-1, .25rem);margin-block:var(--%NS%kpt-space-3, .75rem) var(--%NS%kpt-space-2, .5rem);padding:2px;background:var(--%NS%kpt-color-surface-variant);border-radius:var(--%NS%kpt-radius-md, .5rem)}.kpt-range-tabs button{flex:1;border:0;background:none;padding:var(--%NS%kpt-space-1, .25rem) var(--%NS%kpt-space-2, .5rem);border-radius:var(--%NS%kpt-radius-sm, .25rem);color:var(--%NS%kpt-color-on-surface-muted);font:inherit;font-size:var(--%NS%kpt-font-size-sm, .875rem);cursor:pointer}.kpt-range-tabs button.is-active{background:var(--%NS%kpt-color-surface-raised);color:var(--%NS%kpt-color-on-surface);font-weight:var(--%NS%kpt-font-weight-medium, 500);box-shadow:var(--%NS%kpt-elevation-1)}}\n"], encapsulation: 2 }); }
6546
+ i0.ɵɵproperty("cdkConnectedOverlayOrigin", trigger_r19)("cdkConnectedOverlayOpen", ctx.open())("cdkConnectedOverlayPositions", ctx.positions)("cdkConnectedOverlayHasBackdrop", true);
6547
+ } }, dependencies: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon, KptButton, KptClock], styles: ["@charset \"UTF-8\";@layer kpt.components{.kpt-date-range-host{display:block}.kpt-date-range{display:flex;align-items:center;gap:var(--%NS%kpt-space-2, .5rem);height:2.5rem;padding-inline:var(--%NS%kpt-space-3, .75rem);box-sizing:border-box;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-size:var(--%NS%kpt-font-size-sm, .875rem);cursor:pointer}.kpt-date-range:hover:not(.kpt-date-range--disabled){border-color:var(--%NS%kpt-form-field-border-hover)}.kpt-date-range:focus-visible,.kpt-date-range.kpt-date-range--open{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-date-range.kpt-date-range--invalid{border-color:var(--%NS%kpt-form-field-border-error)}.kpt-date-range.kpt-date-range--disabled{cursor:not-allowed;opacity:.6;background:var(--%NS%kpt-color-surface-variant)}.kpt-date-range__placeholder{color:var(--%NS%kpt-form-field-placeholder)}.kpt-date-range__spacer{flex:1}.kpt-date-range__icon{color:var(--%NS%kpt-color-on-surface-muted)}.kpt-date-range__clear{display:inline-flex;border:0;background:none;cursor:pointer;padding:0;color:var(--%NS%kpt-color-on-surface-muted)}.kpt-date-range__clear:hover{color:var(--%NS%kpt-color-on-surface)}.kpt-calendar{width:17rem;padding:var(--%NS%kpt-space-3, .75rem);background:var(--%NS%kpt-color-surface-raised);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-color-border);border-radius:var(--%NS%kpt-radius-md, .5rem);box-shadow:var(--%NS%kpt-elevation-3);color:var(--%NS%kpt-color-on-surface);font-size:var(--%NS%kpt-font-size-sm, .875rem)}.kpt-calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--%NS%kpt-space-2, .5rem)}.kpt-calendar__title{font-weight:var(--%NS%kpt-font-weight-semibold, 600);text-transform:capitalize}.kpt-calendar__nav{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:var(--%NS%kpt-radius-md, .5rem);background:none;color:var(--%NS%kpt-color-on-surface);cursor:pointer}.kpt-calendar__nav:hover{background:var(--%NS%kpt-color-muted)}.kpt-calendar__nav-slot{width:2rem;height:2rem}.kpt-calendar__panels{display:flex;flex-wrap:wrap;gap:var(--%NS%kpt-space-4, 1rem)}.kpt-calendar__panel{flex:none;width:15.5rem}.kpt-calendar__weekdays,.kpt-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.kpt-calendar__weekday{text-align:center;font-size:var(--%NS%kpt-font-size-xs, .75rem);color:var(--%NS%kpt-color-on-surface-muted);padding:.25rem 0}.kpt-calendar__day{position:relative;isolation:isolate;aspect-ratio:1;border:0;border-radius:var(--%NS%kpt-radius-sm, .25rem);background:none;color:var(--%NS%kpt-color-on-surface);cursor:pointer;font:inherit}.kpt-calendar__day:hover:not(:disabled){background:var(--%NS%kpt-color-muted)}.kpt-calendar__day--muted{color:var(--%NS%kpt-color-on-surface-muted);opacity:.5}.kpt-calendar__day--blank{cursor:default;pointer-events:none}.kpt-calendar__day--today{box-shadow:inset 0 0 0 1px var(--%NS%kpt-color-border-strong)}.kpt-calendar__day--selected{background:var(--%NS%kpt-color-primary)!important;color:var(--%NS%kpt-color-on-primary)}.kpt-calendar__footer{display:flex;justify-content:flex-end;margin-top:var(--%NS%kpt-space-3, .75rem)}.kpt-calendar--clock{width:16rem}.kpt-calendar--multi{width:auto;max-width:calc(100vw - 2rem)}.kpt-calendar--range .kpt-calendar__day--%NS%range:before,.kpt-calendar--range .kpt-calendar__day--%NS%range-start:before,.kpt-calendar--range .kpt-calendar__day--%NS%range-end:before{content:\"\";position:absolute;inset-block:0;inset-inline:-1px;z-index:-2;background:color-mix(in oklch,var(--%NS%kpt-color-primary) 14%,transparent)}.kpt-calendar--range .kpt-calendar__day--%NS%range-start:before{inset-inline-start:50%}.kpt-calendar--range .kpt-calendar__day--%NS%range-end:before{inset-inline-end:50%}.kpt-calendar--range .kpt-calendar__day--selected{background:none!important;color:var(--%NS%kpt-color-on-primary)}.kpt-calendar--range .kpt-calendar__day--%NS%selected:after{content:\"\";position:absolute;inset:0;z-index:-1;border-radius:var(--%NS%kpt-radius-sm, .25rem);background:var(--%NS%kpt-color-primary)}.kpt-calendar--range .kpt-calendar__grid>.kpt-calendar__day:nth-child(7n+1):before{border-start-start-radius:var(--%NS%kpt-radius-sm, .25rem);border-end-start-radius:var(--%NS%kpt-radius-sm, .25rem)}.kpt-calendar--range .kpt-calendar__grid>.kpt-calendar__day:nth-child(7n):before{border-start-end-radius:var(--%NS%kpt-radius-sm, .25rem);border-end-end-radius:var(--%NS%kpt-radius-sm, .25rem)}.kpt-range-tabs{display:flex;gap:var(--%NS%kpt-space-1, .25rem);margin-block:var(--%NS%kpt-space-3, .75rem) var(--%NS%kpt-space-2, .5rem);padding:2px;background:var(--%NS%kpt-color-surface-variant);border-radius:var(--%NS%kpt-radius-md, .5rem)}.kpt-range-tabs button{flex:1;border:0;background:none;padding:var(--%NS%kpt-space-1, .25rem) var(--%NS%kpt-space-2, .5rem);border-radius:var(--%NS%kpt-radius-sm, .25rem);color:var(--%NS%kpt-color-on-surface-muted);font:inherit;font-size:var(--%NS%kpt-font-size-sm, .875rem);cursor:pointer}.kpt-range-tabs button.is-active{background:var(--%NS%kpt-color-surface-raised);color:var(--%NS%kpt-color-on-surface);font-weight:var(--%NS%kpt-font-weight-medium, 500);box-shadow:var(--%NS%kpt-elevation-1)}}\n"], encapsulation: 2 }); }
6329
6548
  }
6330
6549
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptDateRange, [{
6331
6550
  type: Component,
6332
- args: [{ selector: 'kpt-date-range', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon, KptButton, KptClock], host: { class: 'kpt-date-range-host' }, template: "<div\n class=\"kpt-date-range\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"button\"\n tabindex=\"0\"\n [class.kpt-date-range--open]=\"open()\"\n [class.kpt-date-range--disabled]=\"disabled()\"\n [class.kpt-date-range--invalid]=\"showInvalid()\"\n (click)=\"toggleOpen()\"\n (keydown.enter)=\"toggleOpen()\"\n (blur)=\"touch.emit()\"\n>\n @if (display()) {\n <span class=\"kpt-date-range__value\">{{ display() }}</span>\n } @else {\n <span class=\"kpt-date-range__placeholder\">{{ effectivePlaceholder() }}</span>\n }\n <span class=\"kpt-date-range__spacer\"></span>\n @if (display()) {\n <button type=\"button\" class=\"kpt-date-range__clear\" (click)=\"clear($event)\" [attr.aria-label]=\"i18n.t('common.clear')\"><kpt-icon name=\"x\" /></button>\n }\n <kpt-icon class=\"kpt-date-range__icon\" name=\"calendar\" />\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div class=\"kpt-calendar\" [class.kpt-calendar--clock]=\"mode() === 'time'\" (keydown.escape)=\"close()\">\n @if (mode() === 'time') {\n <div class=\"kpt-range-tabs\">\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'start'\" (click)=\"timeEnd.set('start')\">{{ i18n.t('dateRange.from') }}</button>\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'end'\" (click)=\"timeEnd.set('end')\">{{ i18n.t('dateRange.to') }}</button>\n </div>\n @if (timeEnd() === 'start') {\n <kpt-clock [value]=\"startTime()\" (valueChange)=\"startTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <kpt-clock [value]=\"endTime()\" (valueChange)=\"endTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n }\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n } @else {\n <div class=\"kpt-calendar__header\">\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"prevMonth()\" [attr.aria-label]=\"i18n.t('datepicker.prevMonth')\"><kpt-icon name=\"chevron-left\" /></button>\n <span class=\"kpt-calendar__title\">{{ monthLabel() }}</span>\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"nextMonth()\" [attr.aria-label]=\"i18n.t('datepicker.nextMonth')\"><kpt-icon name=\"chevron-right\" /></button>\n </div>\n <div class=\"kpt-calendar__weekdays\">\n @for (wd of weekdays(); track wd) {\n <span class=\"kpt-calendar__weekday\">{{ wd }}</span>\n }\n </div>\n <div class=\"kpt-calendar__grid\">\n @for (week of weeks(); track $index) {\n @for (cell of week; track cell.iso) {\n <button\n type=\"button\"\n class=\"kpt-calendar__day\"\n [class.kpt-calendar__day--muted]=\"!cell.inMonth\"\n [class.kpt-calendar__day--range]=\"cell.inRange\"\n [class.kpt-calendar__day--selected]=\"cell.isStart || cell.isEnd\"\n (click)=\"selectDay(cell)\"\n >{{ cell.day }}</button>\n }\n }\n </div>\n\n @if (mode() === 'datetime') {\n <div class=\"kpt-range-tabs\">\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'start'\" (click)=\"timeEnd.set('start')\">{{ i18n.t('dateRange.fromTime') }}</button>\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'end'\" (click)=\"timeEnd.set('end')\">{{ i18n.t('dateRange.toTime') }}</button>\n </div>\n @if (timeEnd() === 'start') {\n <kpt-clock [value]=\"startTime()\" (valueChange)=\"startTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <kpt-clock [value]=\"endTime()\" (valueChange)=\"endTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n }\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n }\n }\n </div>\n</ng-template>\n", styles: ["@layer kpt.components{.kpt-date-range-host{display:block}.kpt-date-range{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);height:2.5rem;padding-inline:var(--kpt-space-3, .75rem);box-sizing:border-box;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-size:var(--kpt-font-size-sm, .875rem);cursor:pointer}.kpt-date-range:hover:not(.kpt-date-range--disabled){border-color:var(--kpt-form-field-border-hover)}.kpt-date-range:focus-visible,.kpt-date-range.kpt-date-range--open{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-date-range.kpt-date-range--invalid{border-color:var(--kpt-form-field-border-error)}.kpt-date-range.kpt-date-range--disabled{cursor:not-allowed;opacity:.6;background:var(--kpt-color-surface-variant)}.kpt-date-range__placeholder{color:var(--kpt-form-field-placeholder)}.kpt-date-range__spacer{flex:1}.kpt-date-range__icon{color:var(--kpt-color-on-surface-muted)}.kpt-date-range__clear{display:inline-flex;border:0;background:none;cursor:pointer;padding:0;color:var(--kpt-color-on-surface-muted)}.kpt-date-range__clear:hover{color:var(--kpt-color-on-surface)}.kpt-calendar{width:17rem;padding:var(--kpt-space-3, .75rem);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);color:var(--kpt-color-on-surface);font-size:var(--kpt-font-size-sm, .875rem)}.kpt-calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--kpt-space-2, .5rem)}.kpt-calendar__title{font-weight:var(--kpt-font-weight-semibold, 600);text-transform:capitalize}.kpt-calendar__nav{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:var(--kpt-radius-md, .5rem);background:none;color:var(--kpt-color-on-surface);cursor:pointer}.kpt-calendar__nav:hover{background:var(--kpt-color-muted)}.kpt-calendar__weekdays,.kpt-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.kpt-calendar__weekday{text-align:center;font-size:var(--kpt-font-size-xs, .75rem);color:var(--kpt-color-on-surface-muted);padding:.25rem 0}.kpt-calendar__day{aspect-ratio:1;border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);cursor:pointer;font:inherit}.kpt-calendar__day:hover:not(:disabled){background:var(--kpt-color-muted)}.kpt-calendar__day--muted{color:var(--kpt-color-on-surface-muted);opacity:.5}.kpt-calendar__day--range{background:color-mix(in oklch,var(--kpt-color-primary) 14%,transparent);border-radius:0}.kpt-calendar__day--selected{background:var(--kpt-color-primary)!important;color:var(--kpt-color-on-primary)}.kpt-calendar__footer{display:flex;justify-content:flex-end;margin-top:var(--kpt-space-3, .75rem)}.kpt-calendar--clock{width:16rem}.kpt-range-tabs{display:flex;gap:var(--kpt-space-1, .25rem);margin-block:var(--kpt-space-3, .75rem) var(--kpt-space-2, .5rem);padding:2px;background:var(--kpt-color-surface-variant);border-radius:var(--kpt-radius-md, .5rem)}.kpt-range-tabs button{flex:1;border:0;background:none;padding:var(--kpt-space-1, .25rem) var(--kpt-space-2, .5rem);border-radius:var(--kpt-radius-sm, .25rem);color:var(--kpt-color-on-surface-muted);font:inherit;font-size:var(--kpt-font-size-sm, .875rem);cursor:pointer}.kpt-range-tabs button.is-active{background:var(--kpt-color-surface-raised);color:var(--kpt-color-on-surface);font-weight:var(--kpt-font-weight-medium, 500);box-shadow:var(--kpt-elevation-1)}}\n"] }]
6333
- }], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }], touch: [{ type: i0.Output, args: ["touch"] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], displayFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayFormat", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], hourFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "hourFormat", required: false }] }], minuteStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "minuteStep", required: false }] }] }); })();
6334
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptDateRange, { className: "KptDateRange", filePath: "lib/date-range/date-range.component.ts", lineNumber: 63 }); })();
6551
+ args: [{ selector: 'kpt-date-range', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon, KptButton, KptClock], host: { class: 'kpt-date-range-host' }, template: "<div\n class=\"kpt-date-range\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"button\"\n tabindex=\"0\"\n [class.kpt-date-range--open]=\"open()\"\n [class.kpt-date-range--disabled]=\"disabled()\"\n [class.kpt-date-range--invalid]=\"showInvalid()\"\n (click)=\"toggleOpen()\"\n (keydown.enter)=\"toggleOpen()\"\n (blur)=\"touch.emit()\"\n>\n @if (display()) {\n <span class=\"kpt-date-range__value\">{{ display() }}</span>\n } @else {\n <span class=\"kpt-date-range__placeholder\">{{ effectivePlaceholder() }}</span>\n }\n <span class=\"kpt-date-range__spacer\"></span>\n @if (display()) {\n <button type=\"button\" class=\"kpt-date-range__clear\" (click)=\"clear($event)\" [attr.aria-label]=\"i18n.t('common.clear')\"><kpt-icon name=\"x\" /></button>\n }\n <kpt-icon class=\"kpt-date-range__icon\" name=\"calendar\" />\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n class=\"kpt-calendar\"\n [class.kpt-calendar--clock]=\"mode() === 'time'\"\n [class.kpt-calendar--range]=\"mode() !== 'time'\"\n [class.kpt-calendar--multi]=\"multi() && mode() !== 'time'\"\n (keydown.escape)=\"close()\"\n >\n @if (mode() === 'time') {\n <div class=\"kpt-range-tabs\">\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'start'\" (click)=\"timeEnd.set('start')\">{{ i18n.t('dateRange.from') }}</button>\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'end'\" (click)=\"timeEnd.set('end')\">{{ i18n.t('dateRange.to') }}</button>\n </div>\n @if (timeEnd() === 'start') {\n <kpt-clock [value]=\"startTime()\" (valueChange)=\"startTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <kpt-clock [value]=\"endTime()\" (valueChange)=\"endTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n }\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n } @else {\n <div class=\"kpt-calendar__panels\">\n @for (panel of panels(); track panel.key; let first = $first, last = $last) {\n <div class=\"kpt-calendar__panel\">\n <!-- Strza\u0142ki tylko na skrajnych panelach; puste sloty trzymaj\u0105 tytu\u0142 na \u015Brodku. -->\n <div class=\"kpt-calendar__header\">\n @if (first) {\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"prevMonth()\" [attr.aria-label]=\"i18n.t('datepicker.prevMonth')\"><kpt-icon name=\"chevron-left\" /></button>\n } @else {\n <span class=\"kpt-calendar__nav-slot\"></span>\n }\n <span class=\"kpt-calendar__title\">{{ panel.label }}</span>\n @if (last) {\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"nextMonth()\" [attr.aria-label]=\"i18n.t('datepicker.nextMonth')\"><kpt-icon name=\"chevron-right\" /></button>\n } @else {\n <span class=\"kpt-calendar__nav-slot\"></span>\n }\n </div>\n <div class=\"kpt-calendar__weekdays\">\n @for (wd of weekdays(); track wd) {\n <span class=\"kpt-calendar__weekday\">{{ wd }}</span>\n }\n </div>\n <div class=\"kpt-calendar__grid\">\n @for (week of panel.weeks; track $index) {\n @for (cell of week; track cell.iso) {\n @if (cell.blank) {\n <span class=\"kpt-calendar__day kpt-calendar__day--blank\"></span>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-calendar__day\"\n [class.kpt-calendar__day--muted]=\"!cell.inMonth\"\n [class.kpt-calendar__day--today]=\"cell.today\"\n [class.kpt-calendar__day--range]=\"cell.inRange\"\n [class.kpt-calendar__day--range-start]=\"cell.rangeStart\"\n [class.kpt-calendar__day--range-end]=\"cell.rangeEnd\"\n [class.kpt-calendar__day--selected]=\"cell.isStart || cell.isEnd\"\n (click)=\"selectDay(cell)\"\n >{{ cell.day }}</button>\n }\n }\n }\n </div>\n </div>\n }\n </div>\n\n @if (mode() === 'datetime') {\n <div class=\"kpt-range-tabs\">\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'start'\" (click)=\"timeEnd.set('start')\">{{ i18n.t('dateRange.fromTime') }}</button>\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'end'\" (click)=\"timeEnd.set('end')\">{{ i18n.t('dateRange.toTime') }}</button>\n </div>\n @if (timeEnd() === 'start') {\n <kpt-clock [value]=\"startTime()\" (valueChange)=\"startTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <kpt-clock [value]=\"endTime()\" (valueChange)=\"endTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n }\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n }\n }\n </div>\n</ng-template>\n", styles: ["@charset \"UTF-8\";@layer kpt.components{.kpt-date-range-host{display:block}.kpt-date-range{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);height:2.5rem;padding-inline:var(--kpt-space-3, .75rem);box-sizing:border-box;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-size:var(--kpt-font-size-sm, .875rem);cursor:pointer}.kpt-date-range:hover:not(.kpt-date-range--disabled){border-color:var(--kpt-form-field-border-hover)}.kpt-date-range:focus-visible,.kpt-date-range.kpt-date-range--open{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-date-range.kpt-date-range--invalid{border-color:var(--kpt-form-field-border-error)}.kpt-date-range.kpt-date-range--disabled{cursor:not-allowed;opacity:.6;background:var(--kpt-color-surface-variant)}.kpt-date-range__placeholder{color:var(--kpt-form-field-placeholder)}.kpt-date-range__spacer{flex:1}.kpt-date-range__icon{color:var(--kpt-color-on-surface-muted)}.kpt-date-range__clear{display:inline-flex;border:0;background:none;cursor:pointer;padding:0;color:var(--kpt-color-on-surface-muted)}.kpt-date-range__clear:hover{color:var(--kpt-color-on-surface)}.kpt-calendar{width:17rem;padding:var(--kpt-space-3, .75rem);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);color:var(--kpt-color-on-surface);font-size:var(--kpt-font-size-sm, .875rem)}.kpt-calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--kpt-space-2, .5rem)}.kpt-calendar__title{font-weight:var(--kpt-font-weight-semibold, 600);text-transform:capitalize}.kpt-calendar__nav{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:var(--kpt-radius-md, .5rem);background:none;color:var(--kpt-color-on-surface);cursor:pointer}.kpt-calendar__nav:hover{background:var(--kpt-color-muted)}.kpt-calendar__nav-slot{width:2rem;height:2rem}.kpt-calendar__panels{display:flex;flex-wrap:wrap;gap:var(--kpt-space-4, 1rem)}.kpt-calendar__panel{flex:none;width:15.5rem}.kpt-calendar__weekdays,.kpt-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.kpt-calendar__weekday{text-align:center;font-size:var(--kpt-font-size-xs, .75rem);color:var(--kpt-color-on-surface-muted);padding:.25rem 0}.kpt-calendar__day{position:relative;isolation:isolate;aspect-ratio:1;border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);cursor:pointer;font:inherit}.kpt-calendar__day:hover:not(:disabled){background:var(--kpt-color-muted)}.kpt-calendar__day--muted{color:var(--kpt-color-on-surface-muted);opacity:.5}.kpt-calendar__day--blank{cursor:default;pointer-events:none}.kpt-calendar__day--today{box-shadow:inset 0 0 0 1px var(--kpt-color-border-strong)}.kpt-calendar__day--selected{background:var(--kpt-color-primary)!important;color:var(--kpt-color-on-primary)}.kpt-calendar__footer{display:flex;justify-content:flex-end;margin-top:var(--kpt-space-3, .75rem)}.kpt-calendar--clock{width:16rem}.kpt-calendar--multi{width:auto;max-width:calc(100vw - 2rem)}.kpt-calendar--range .kpt-calendar__day--range:before,.kpt-calendar--range .kpt-calendar__day--range-start:before,.kpt-calendar--range .kpt-calendar__day--range-end:before{content:\"\";position:absolute;inset-block:0;inset-inline:-1px;z-index:-2;background:color-mix(in oklch,var(--kpt-color-primary) 14%,transparent)}.kpt-calendar--range .kpt-calendar__day--range-start:before{inset-inline-start:50%}.kpt-calendar--range .kpt-calendar__day--range-end:before{inset-inline-end:50%}.kpt-calendar--range .kpt-calendar__day--selected{background:none!important;color:var(--kpt-color-on-primary)}.kpt-calendar--range .kpt-calendar__day--selected:after{content:\"\";position:absolute;inset:0;z-index:-1;border-radius:var(--kpt-radius-sm, .25rem);background:var(--kpt-color-primary)}.kpt-calendar--range .kpt-calendar__grid>.kpt-calendar__day:nth-child(7n+1):before{border-start-start-radius:var(--kpt-radius-sm, .25rem);border-end-start-radius:var(--kpt-radius-sm, .25rem)}.kpt-calendar--range .kpt-calendar__grid>.kpt-calendar__day:nth-child(7n):before{border-start-end-radius:var(--kpt-radius-sm, .25rem);border-end-end-radius:var(--kpt-radius-sm, .25rem)}.kpt-range-tabs{display:flex;gap:var(--kpt-space-1, .25rem);margin-block:var(--kpt-space-3, .75rem) var(--kpt-space-2, .5rem);padding:2px;background:var(--kpt-color-surface-variant);border-radius:var(--kpt-radius-md, .5rem)}.kpt-range-tabs button{flex:1;border:0;background:none;padding:var(--kpt-space-1, .25rem) var(--kpt-space-2, .5rem);border-radius:var(--kpt-radius-sm, .25rem);color:var(--kpt-color-on-surface-muted);font:inherit;font-size:var(--kpt-font-size-sm, .875rem);cursor:pointer}.kpt-range-tabs button.is-active{background:var(--kpt-color-surface-raised);color:var(--kpt-color-on-surface);font-weight:var(--kpt-font-weight-medium, 500);box-shadow:var(--kpt-elevation-1)}}\n"] }]
6552
+ }], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }], touch: [{ type: i0.Output, args: ["touch"] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], displayFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayFormat", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], visibleMonths: [{ type: i0.Input, args: [{ isSignal: true, alias: "visibleMonths", required: false }] }], hourFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "hourFormat", required: false }] }], minuteStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "minuteStep", required: false }] }] }); })();
6553
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptDateRange, { className: "KptDateRange", filePath: "lib/date-range/date-range.component.ts", lineNumber: 79 }); })();
6335
6554
 
6336
6555
  function KptInputNumber_Conditional_1_Template(rf, ctx) { if (rf & 1) {
6337
6556
  const _r1 = i0.ɵɵgetCurrentView();
@@ -9062,6 +9281,53 @@ class KptRowDetailDef {
9062
9281
  }]
9063
9282
  }], null, null); })();
9064
9283
 
9284
+ /*
9285
+ * Agregacje wiersza podsumowania (`<tfoot>`) — pure TS, wydzielone żeby dało się
9286
+ * testować `node --test` bez ciągnięcia Angulara (jak `csv-export.ts`).
9287
+ */
9288
+ /**
9289
+ * Sumowanie liczb zmiennoprzecinkowych daje ogony (`0.1 + 0.2` → `0.30000000000000004`),
9290
+ * które bez tego przycięcia wyciekłyby wprost do komórki podsumowania.
9291
+ */
9292
+ function trimFloat(value) {
9293
+ return Math.round(value * 1e10) / 1e10;
9294
+ }
9295
+ /** Liczba z komórki: `number` bez zmian, string przez `parseFloat`, reszta → `NaN` (pomijana). */
9296
+ function toNumber(value) {
9297
+ if (typeof value === 'number')
9298
+ return value;
9299
+ if (typeof value === 'string' && value.trim() !== '')
9300
+ return parseFloat(value);
9301
+ return NaN;
9302
+ }
9303
+ /**
9304
+ * Agreguje jedno pole po wierszach. `count` liczy wiersze; pozostałe funkcje pomijają
9305
+ * wartości nieliczbowe. Pusty zbiór liczb: `sum` → 0, `avg`/`min`/`max` → `null`
9306
+ * (komórka renderuje się wtedy pusta).
9307
+ */
9308
+ function aggregate(rows, field, fn) {
9309
+ if (fn === 'count')
9310
+ return rows.length;
9311
+ const nums = [];
9312
+ for (const row of rows) {
9313
+ const num = toNumber(row[field]);
9314
+ if (!Number.isNaN(num))
9315
+ nums.push(num);
9316
+ }
9317
+ switch (fn) {
9318
+ case 'sum':
9319
+ return trimFloat(nums.reduce((acc, n) => acc + n, 0));
9320
+ case 'avg':
9321
+ return nums.length === 0 ? null : trimFloat(nums.reduce((acc, n) => acc + n, 0) / nums.length);
9322
+ case 'min':
9323
+ return nums.length === 0 ? null : Math.min(...nums);
9324
+ case 'max':
9325
+ return nums.length === 0 ? null : Math.max(...nums);
9326
+ default:
9327
+ return null;
9328
+ }
9329
+ }
9330
+
9065
9331
  const _c0$e = ["scrollEl"];
9066
9332
  const _c1$5 = ["theadEl"];
9067
9333
  const _c2$2 = ["editorHost"];
@@ -9113,7 +9379,7 @@ function KptDataTable_Conditional_6_Template(rf, ctx) { if (rf & 1) {
9113
9379
  i0.ɵɵelementContainer(0, 8);
9114
9380
  } if (rf & 2) {
9115
9381
  i0.ɵɵnextContext();
9116
- const filterRowTpl_r4 = i0.ɵɵreference(22);
9382
+ const filterRowTpl_r4 = i0.ɵɵreference(23);
9117
9383
  i0.ɵɵproperty("ngTemplateOutlet", filterRowTpl_r4);
9118
9384
  } }
9119
9385
  function KptDataTable_Conditional_8_Template(rf, ctx) { if (rf & 1) {
@@ -9181,7 +9447,7 @@ function KptDataTable_Conditional_13_Template(rf, ctx) { if (rf & 1) {
9181
9447
  i0.ɵɵelementContainer(0, 8);
9182
9448
  } if (rf & 2) {
9183
9449
  i0.ɵɵnextContext();
9184
- const filterRowTpl_r4 = i0.ɵɵreference(22);
9450
+ const filterRowTpl_r4 = i0.ɵɵreference(23);
9185
9451
  i0.ɵɵproperty("ngTemplateOutlet", filterRowTpl_r4);
9186
9452
  } }
9187
9453
  function KptDataTable_Conditional_15_Template(rf, ctx) { if (rf & 1) {
@@ -9221,7 +9487,7 @@ function KptDataTable_Conditional_17_For_2_Template(rf, ctx) { if (rf & 1) {
9221
9487
  } if (rf & 2) {
9222
9488
  const row_r8 = ctx.$implicit;
9223
9489
  i0.ɵɵnextContext(2);
9224
- const rowTpl_r9 = i0.ɵɵreference(20);
9490
+ const rowTpl_r9 = i0.ɵɵreference(21);
9225
9491
  i0.ɵɵproperty("ngTemplateOutlet", rowTpl_r9)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c5, row_r8));
9226
9492
  } }
9227
9493
  function KptDataTable_Conditional_17_Conditional_3_Template(rf, ctx) { if (rf & 1) {
@@ -9251,7 +9517,7 @@ function KptDataTable_Conditional_18_For_1_Template(rf, ctx) { if (rf & 1) {
9251
9517
  } if (rf & 2) {
9252
9518
  const row_r10 = ctx.$implicit;
9253
9519
  i0.ɵɵnextContext(2);
9254
- const rowTpl_r9 = i0.ɵɵreference(20);
9520
+ const rowTpl_r9 = i0.ɵɵreference(21);
9255
9521
  i0.ɵɵproperty("ngTemplateOutlet", rowTpl_r9)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c5, row_r10));
9256
9522
  } }
9257
9523
  function KptDataTable_Conditional_18_Template(rf, ctx) { if (rf & 1) {
@@ -9260,170 +9526,214 @@ function KptDataTable_Conditional_18_Template(rf, ctx) { if (rf & 1) {
9260
9526
  const ctx_r1 = i0.ɵɵnextContext();
9261
9527
  i0.ɵɵrepeater(ctx_r1.paged());
9262
9528
  } }
9263
- function KptDataTable_ng_template_19_Conditional_1_Template(rf, ctx) { if (rf & 1) {
9264
- const _r13 = i0.ɵɵgetCurrentView();
9265
- i0.ɵɵelementStart(0, "td", 17)(1, "button", 30);
9266
- 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)); });
9267
- i0.ɵɵelement(2, "kpt-icon", 31);
9529
+ function KptDataTable_Conditional_19_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9530
+ i0.ɵɵelementStart(0, "th", 29);
9531
+ i0.ɵɵtext(1);
9532
+ i0.ɵɵelementEnd();
9533
+ } if (rf & 2) {
9534
+ const ctx_r1 = i0.ɵɵnextContext(2);
9535
+ i0.ɵɵstyleProp("left", ctx_r1.hasFrozen() ? 0 : null, "px");
9536
+ i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.hasFrozen());
9537
+ i0.ɵɵattribute("colspan", ctx_r1.summaryLabelSpan());
9538
+ i0.ɵɵadvance();
9539
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.summaryLabelText(), " ");
9540
+ } }
9541
+ function KptDataTable_Conditional_19_For_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
9542
+ i0.ɵɵelementStart(0, "td");
9543
+ i0.ɵɵtext(1);
9544
+ i0.ɵɵelementEnd();
9545
+ } if (rf & 2) {
9546
+ const col_r11 = i0.ɵɵnextContext().$implicit;
9547
+ const ctx_r1 = i0.ɵɵnextContext(2);
9548
+ i0.ɵɵstyleProp("width", col_r11.width)("left", ctx_r1.frozenLeft(col_r11.field), "px");
9549
+ i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.isFrozen(col_r11.field));
9550
+ i0.ɵɵattribute("data-align", col_r11.align ?? "end");
9551
+ i0.ɵɵadvance();
9552
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.summaryText(col_r11.field), " ");
9553
+ } }
9554
+ function KptDataTable_Conditional_19_For_4_Template(rf, ctx) { if (rf & 1) {
9555
+ i0.ɵɵconditionalCreate(0, KptDataTable_Conditional_19_For_4_Conditional_0_Template, 2, 8, "td", 30);
9556
+ } if (rf & 2) {
9557
+ const ɵ$index_89_r12 = ctx.$index;
9558
+ const ctx_r1 = i0.ɵɵnextContext(2);
9559
+ i0.ɵɵconditional(ɵ$index_89_r12 >= ctx_r1.summaryStartIndex() ? 0 : -1);
9560
+ } }
9561
+ function KptDataTable_Conditional_19_Template(rf, ctx) { if (rf & 1) {
9562
+ i0.ɵɵelementStart(0, "tfoot")(1, "tr", 27);
9563
+ i0.ɵɵconditionalCreate(2, KptDataTable_Conditional_19_Conditional_2_Template, 2, 6, "th", 28);
9564
+ i0.ɵɵrepeaterCreate(3, KptDataTable_Conditional_19_For_4_Template, 1, 1, null, null, _forTrack0$1);
9565
+ i0.ɵɵelementEnd()();
9566
+ } if (rf & 2) {
9567
+ const ctx_r1 = i0.ɵɵnextContext();
9568
+ i0.ɵɵadvance(2);
9569
+ i0.ɵɵconditional(ctx_r1.summaryLabelSpan() > 0 ? 2 : -1);
9570
+ i0.ɵɵadvance();
9571
+ i0.ɵɵrepeater(ctx_r1.visibleOrderedColumns());
9572
+ } }
9573
+ function KptDataTable_ng_template_20_Conditional_1_Template(rf, ctx) { if (rf & 1) {
9574
+ const _r15 = i0.ɵɵgetCurrentView();
9575
+ i0.ɵɵelementStart(0, "td", 17)(1, "button", 34);
9576
+ 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)); });
9577
+ i0.ɵɵelement(2, "kpt-icon", 35);
9268
9578
  i0.ɵɵelementEnd()();
9269
9579
  } if (rf & 2) {
9270
- const row_r12 = i0.ɵɵnextContext().$implicit;
9580
+ const row_r14 = i0.ɵɵnextContext().$implicit;
9271
9581
  const ctx_r1 = i0.ɵɵnextContext();
9272
9582
  i0.ɵɵstyleProp("left", ctx_r1.expanderStickyLeft(), "px");
9273
9583
  i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.hasFrozen());
9274
9584
  i0.ɵɵadvance();
9275
- i0.ɵɵclassProp("kpt-data-table__expander-btn--open", ctx_r1.isExpanded(row_r12));
9276
- i0.ɵɵattribute("aria-expanded", ctx_r1.isExpanded(row_r12))("aria-label", ctx_r1.i18n.t("dataTable.expandRow"));
9585
+ i0.ɵɵclassProp("kpt-data-table__expander-btn--open", ctx_r1.isExpanded(row_r14));
9586
+ i0.ɵɵattribute("aria-expanded", ctx_r1.isExpanded(row_r14))("aria-label", ctx_r1.i18n.t("dataTable.expandRow"));
9277
9587
  } }
9278
- function KptDataTable_ng_template_19_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9279
- const _r14 = i0.ɵɵgetCurrentView();
9280
- i0.ɵɵelementStart(0, "td", 18)(1, "input", 32);
9281
- 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)); });
9588
+ function KptDataTable_ng_template_20_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9589
+ const _r16 = i0.ɵɵgetCurrentView();
9590
+ i0.ɵɵelementStart(0, "td", 18)(1, "input", 36);
9591
+ 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)); });
9282
9592
  i0.ɵɵelementEnd()();
9283
9593
  } if (rf & 2) {
9284
- const row_r12 = i0.ɵɵnextContext().$implicit;
9594
+ const row_r14 = i0.ɵɵnextContext().$implicit;
9285
9595
  const ctx_r1 = i0.ɵɵnextContext();
9286
9596
  i0.ɵɵstyleProp("left", ctx_r1.checkboxStickyLeft(), "px");
9287
9597
  i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.hasFrozen());
9288
9598
  i0.ɵɵadvance();
9289
- i0.ɵɵproperty("checked", ctx_r1.isSelected(row_r12));
9599
+ i0.ɵɵproperty("checked", ctx_r1.isSelected(row_r14));
9290
9600
  i0.ɵɵattribute("aria-label", ctx_r1.i18n.t("dataTable.selectRow"));
9291
9601
  } }
9292
- function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9602
+ function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9293
9603
  i0.ɵɵelementContainer(0, 26);
9294
9604
  } if (rf & 2) {
9295
- const row_r12 = i0.ɵɵnextContext(3).$implicit;
9605
+ const row_r14 = i0.ɵɵnextContext(3).$implicit;
9296
9606
  const ctx_r1 = i0.ɵɵnextContext();
9297
- i0.ɵɵproperty("ngTemplateOutlet", ctx)("ngTemplateOutletContext", i0.ɵɵpureFunction4(2, _c7, ctx_r1.editingValue(), row_r12, ctx_r1.commitEditValue, ctx_r1.cancelEdit));
9607
+ i0.ɵɵproperty("ngTemplateOutlet", ctx)("ngTemplateOutletContext", i0.ɵɵpureFunction4(2, _c7, ctx_r1.editingValue(), row_r14, ctx_r1.commitEditValue, ctx_r1.cancelEdit));
9298
9608
  } }
9299
- function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_0_Template(rf, ctx) { if (rf & 1) {
9300
- const _r18 = i0.ɵɵgetCurrentView();
9301
- i0.ɵɵelementStart(0, "kpt-input", 41);
9302
- 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()); });
9609
+ function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_0_Template(rf, ctx) { if (rf & 1) {
9610
+ const _r20 = i0.ɵɵgetCurrentView();
9611
+ i0.ɵɵelementStart(0, "kpt-input", 45);
9612
+ 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()); });
9303
9613
  i0.ɵɵelementEnd();
9304
9614
  } if (rf & 2) {
9305
- const col_r16 = i0.ɵɵnextContext(3).$implicit;
9615
+ const col_r18 = i0.ɵɵnextContext(3).$implicit;
9306
9616
  const ctx_r1 = i0.ɵɵnextContext(2);
9307
- i0.ɵɵproperty("value", ctx_r1.editingValue() ?? "")("placeholder", col_r16.edit.placeholder ?? "");
9617
+ i0.ɵɵproperty("value", ctx_r1.editingValue() ?? "")("placeholder", col_r18.edit.placeholder ?? "");
9308
9618
  } }
9309
- function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_1_Template(rf, ctx) { if (rf & 1) {
9310
- const _r19 = i0.ɵɵgetCurrentView();
9311
- i0.ɵɵelementStart(0, "kpt-input-number", 42);
9312
- 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()); });
9619
+ function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_1_Template(rf, ctx) { if (rf & 1) {
9620
+ const _r21 = i0.ɵɵgetCurrentView();
9621
+ i0.ɵɵelementStart(0, "kpt-input-number", 46);
9622
+ 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()); });
9313
9623
  i0.ɵɵelementEnd();
9314
9624
  } if (rf & 2) {
9315
- const col_r16 = i0.ɵɵnextContext(3).$implicit;
9625
+ const col_r18 = i0.ɵɵnextContext(3).$implicit;
9316
9626
  const ctx_r1 = i0.ɵɵnextContext(2);
9317
- i0.ɵɵproperty("value", ctx_r1.editingValue())("min", col_r16.edit.min)("max", col_r16.edit.max)("step", col_r16.edit.step ?? 1);
9627
+ i0.ɵɵproperty("value", ctx_r1.editingValue())("min", col_r18.edit.min)("max", col_r18.edit.max)("step", col_r18.edit.step ?? 1);
9318
9628
  } }
9319
- function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_2_Template(rf, ctx) { if (rf & 1) {
9320
- const _r20 = i0.ɵɵgetCurrentView();
9321
- i0.ɵɵelementStart(0, "kpt-datepicker", 43);
9322
- 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)); });
9629
+ function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_2_Template(rf, ctx) { if (rf & 1) {
9630
+ const _r22 = i0.ɵɵgetCurrentView();
9631
+ i0.ɵɵelementStart(0, "kpt-datepicker", 47);
9632
+ 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)); });
9323
9633
  i0.ɵɵelementEnd();
9324
9634
  } if (rf & 2) {
9325
9635
  const ctx_r1 = i0.ɵɵnextContext(5);
9326
9636
  i0.ɵɵproperty("value", ctx_r1.editingValue() ?? "")("open", ctx_r1.editorPanelOpen());
9327
9637
  } }
9328
- function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_3_Template(rf, ctx) { if (rf & 1) {
9329
- const _r21 = i0.ɵɵgetCurrentView();
9330
- i0.ɵɵelementStart(0, "kpt-select", 44);
9331
- 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)); });
9638
+ function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_3_Template(rf, ctx) { if (rf & 1) {
9639
+ const _r23 = i0.ɵɵgetCurrentView();
9640
+ i0.ɵɵelementStart(0, "kpt-select", 48);
9641
+ 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)); });
9332
9642
  i0.ɵɵelementEnd();
9333
9643
  } if (rf & 2) {
9334
- const col_r16 = i0.ɵɵnextContext(3).$implicit;
9644
+ const col_r18 = i0.ɵɵnextContext(3).$implicit;
9335
9645
  const ctx_r1 = i0.ɵɵnextContext(2);
9336
- i0.ɵɵproperty("options", col_r16.edit.options ?? i0.ɵɵpureFunction0(4, _c8))("placeholder", col_r16.edit.placeholder ?? "")("value", ctx_r1.editingValue())("open", ctx_r1.editorPanelOpen());
9646
+ i0.ɵɵproperty("options", col_r18.edit.options ?? i0.ɵɵpureFunction0(4, _c8))("placeholder", col_r18.edit.placeholder ?? "")("value", ctx_r1.editingValue())("open", ctx_r1.editorPanelOpen());
9337
9647
  } }
9338
- function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_4_Template(rf, ctx) { if (rf & 1) {
9339
- const _r22 = i0.ɵɵgetCurrentView();
9340
- i0.ɵɵelementStart(0, "kpt-select", 45);
9341
- 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)); });
9648
+ function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_4_Template(rf, ctx) { if (rf & 1) {
9649
+ const _r24 = i0.ɵɵgetCurrentView();
9650
+ i0.ɵɵelementStart(0, "kpt-select", 49);
9651
+ 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)); });
9342
9652
  i0.ɵɵelementEnd();
9343
9653
  } if (rf & 2) {
9344
- const col_r16 = i0.ɵɵnextContext(3).$implicit;
9654
+ const col_r18 = i0.ɵɵnextContext(3).$implicit;
9345
9655
  const ctx_r1 = i0.ɵɵnextContext(2);
9346
- i0.ɵɵproperty("options", col_r16.edit.options ?? i0.ɵɵpureFunction0(4, _c8))("placeholder", col_r16.edit.placeholder ?? "")("value", ctx_r1.editingValue())("open", ctx_r1.editorPanelOpen());
9656
+ i0.ɵɵproperty("options", col_r18.edit.options ?? i0.ɵɵpureFunction0(4, _c8))("placeholder", col_r18.edit.placeholder ?? "")("value", ctx_r1.editingValue())("open", ctx_r1.editorPanelOpen());
9347
9657
  } }
9348
- function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
9349
- 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);
9658
+ function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
9659
+ 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);
9350
9660
  } if (rf & 2) {
9351
9661
  let tmp_19_0;
9352
- const col_r16 = i0.ɵɵnextContext(2).$implicit;
9353
- 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);
9662
+ const col_r18 = i0.ɵɵnextContext(2).$implicit;
9663
+ 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);
9354
9664
  } }
9355
- function KptDataTable_ng_template_19_For_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
9356
- const _r17 = i0.ɵɵgetCurrentView();
9357
- i0.ɵɵelementStart(0, "div", 35, 4);
9358
- 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)); });
9359
- 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);
9665
+ function KptDataTable_ng_template_20_For_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
9666
+ const _r19 = i0.ɵɵgetCurrentView();
9667
+ i0.ɵɵelementStart(0, "div", 39, 4);
9668
+ 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)); });
9669
+ 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);
9360
9670
  i0.ɵɵelementEnd();
9361
9671
  } if (rf & 2) {
9362
9672
  let tmp_18_0;
9363
- const col_r16 = i0.ɵɵnextContext().$implicit;
9673
+ const col_r18 = i0.ɵɵnextContext().$implicit;
9364
9674
  const ctx_r1 = i0.ɵɵnextContext(2);
9365
9675
  i0.ɵɵadvance(2);
9366
- i0.ɵɵconditional((tmp_18_0 = ctx_r1.cellEditTemplate(col_r16.field)) ? 2 : 3, tmp_18_0);
9676
+ i0.ɵɵconditional((tmp_18_0 = ctx_r1.cellEditTemplate(col_r18.field)) ? 2 : 3, tmp_18_0);
9367
9677
  } }
9368
- function KptDataTable_ng_template_19_For_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9678
+ function KptDataTable_ng_template_20_For_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9369
9679
  i0.ɵɵelementContainer(0, 26);
9370
9680
  } if (rf & 2) {
9371
- const col_r16 = i0.ɵɵnextContext().$implicit;
9372
- const row_r12 = i0.ɵɵnextContext().$implicit;
9681
+ const col_r18 = i0.ɵɵnextContext().$implicit;
9682
+ const row_r14 = i0.ɵɵnextContext().$implicit;
9373
9683
  const ctx_r1 = i0.ɵɵnextContext();
9374
- i0.ɵɵproperty("ngTemplateOutlet", ctx)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c9, row_r12, ctx_r1.getValue(row_r12, col_r16.field)));
9684
+ i0.ɵɵproperty("ngTemplateOutlet", ctx)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c9, row_r14, ctx_r1.getValue(row_r14, col_r18.field)));
9375
9685
  } }
9376
- function KptDataTable_ng_template_19_For_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
9686
+ function KptDataTable_ng_template_20_For_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
9377
9687
  i0.ɵɵtext(0);
9378
9688
  } if (rf & 2) {
9379
- const col_r16 = i0.ɵɵnextContext().$implicit;
9380
- const row_r12 = i0.ɵɵnextContext().$implicit;
9689
+ const col_r18 = i0.ɵɵnextContext().$implicit;
9690
+ const row_r14 = i0.ɵɵnextContext().$implicit;
9381
9691
  const ctx_r1 = i0.ɵɵnextContext();
9382
- i0.ɵɵtextInterpolate1(" ", ctx_r1.getValue(row_r12, col_r16.field), " ");
9692
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.getValue(row_r14, col_r18.field), " ");
9383
9693
  } }
9384
- function KptDataTable_ng_template_19_For_4_Template(rf, ctx) { if (rf & 1) {
9385
- const _r15 = i0.ɵɵgetCurrentView();
9386
- i0.ɵɵelementStart(0, "td", 33);
9387
- 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); });
9388
- 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);
9694
+ function KptDataTable_ng_template_20_For_4_Template(rf, ctx) { if (rf & 1) {
9695
+ const _r17 = i0.ɵɵgetCurrentView();
9696
+ i0.ɵɵelementStart(0, "td", 37);
9697
+ 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); });
9698
+ 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);
9389
9699
  i0.ɵɵelementEnd();
9390
9700
  } if (rf & 2) {
9391
9701
  let tmp_22_0;
9392
- const col_r16 = ctx.$implicit;
9393
- const row_r12 = i0.ɵɵnextContext().$implicit;
9702
+ const col_r18 = ctx.$implicit;
9703
+ const row_r14 = i0.ɵɵnextContext().$implicit;
9394
9704
  const ctx_r1 = i0.ɵɵnextContext();
9395
- i0.ɵɵstyleProp("left", ctx_r1.frozenLeft(col_r16.field), "px");
9396
- 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));
9397
- 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);
9705
+ i0.ɵɵstyleProp("left", ctx_r1.frozenLeft(col_r18.field), "px");
9706
+ 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));
9707
+ 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);
9398
9708
  i0.ɵɵadvance();
9399
- 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);
9709
+ 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);
9400
9710
  } }
9401
- function KptDataTable_ng_template_19_Conditional_5_Template(rf, ctx) { if (rf & 1) {
9402
- i0.ɵɵelementStart(0, "tr", 29)(1, "td", 46);
9711
+ function KptDataTable_ng_template_20_Conditional_5_Template(rf, ctx) { if (rf & 1) {
9712
+ i0.ɵɵelementStart(0, "tr", 33)(1, "td", 50);
9403
9713
  i0.ɵɵelementContainer(2, 26);
9404
9714
  i0.ɵɵelementEnd()();
9405
9715
  } if (rf & 2) {
9406
- const row_r12 = i0.ɵɵnextContext().$implicit;
9716
+ const row_r14 = i0.ɵɵnextContext().$implicit;
9407
9717
  const ctx_r1 = i0.ɵɵnextContext();
9408
9718
  i0.ɵɵadvance();
9409
9719
  i0.ɵɵattribute("colspan", ctx_r1.colspan());
9410
9720
  i0.ɵɵadvance();
9411
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.rowDetailTpl())("ngTemplateOutletContext", i0.ɵɵpureFunction1(3, _c5, row_r12));
9721
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.rowDetailTpl())("ngTemplateOutletContext", i0.ɵɵpureFunction1(3, _c5, row_r14));
9412
9722
  } }
9413
- function KptDataTable_ng_template_19_Template(rf, ctx) { if (rf & 1) {
9414
- const _r11 = i0.ɵɵgetCurrentView();
9415
- i0.ɵɵelementStart(0, "tr", 27);
9416
- 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)); });
9417
- i0.ɵɵconditionalCreate(1, KptDataTable_ng_template_19_Conditional_1_Template, 3, 8, "td", 9);
9418
- i0.ɵɵconditionalCreate(2, KptDataTable_ng_template_19_Conditional_2_Template, 2, 6, "td", 10);
9419
- i0.ɵɵrepeaterCreate(3, KptDataTable_ng_template_19_For_4_Template, 4, 12, "td", 28, _forTrack0$1);
9723
+ function KptDataTable_ng_template_20_Template(rf, ctx) { if (rf & 1) {
9724
+ const _r13 = i0.ɵɵgetCurrentView();
9725
+ i0.ɵɵelementStart(0, "tr", 31);
9726
+ 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)); });
9727
+ i0.ɵɵconditionalCreate(1, KptDataTable_ng_template_20_Conditional_1_Template, 3, 8, "td", 9);
9728
+ i0.ɵɵconditionalCreate(2, KptDataTable_ng_template_20_Conditional_2_Template, 2, 6, "td", 10);
9729
+ i0.ɵɵrepeaterCreate(3, KptDataTable_ng_template_20_For_4_Template, 4, 12, "td", 32, _forTrack0$1);
9420
9730
  i0.ɵɵelementEnd();
9421
- i0.ɵɵconditionalCreate(5, KptDataTable_ng_template_19_Conditional_5_Template, 3, 5, "tr", 29);
9731
+ i0.ɵɵconditionalCreate(5, KptDataTable_ng_template_20_Conditional_5_Template, 3, 5, "tr", 33);
9422
9732
  } if (rf & 2) {
9423
- const row_r12 = ctx.$implicit;
9733
+ const row_r14 = ctx.$implicit;
9424
9734
  const ctx_r1 = i0.ɵɵnextContext();
9425
9735
  i0.ɵɵstyleProp("height", ctx_r1.virtualScroll() ? ctx_r1.rowHeight() : null, "px");
9426
- 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));
9736
+ 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));
9427
9737
  i0.ɵɵadvance();
9428
9738
  i0.ɵɵconditional(ctx_r1.hasRowDetail() ? 1 : -1);
9429
9739
  i0.ɵɵadvance();
@@ -9431,114 +9741,114 @@ function KptDataTable_ng_template_19_Template(rf, ctx) { if (rf & 1) {
9431
9741
  i0.ɵɵadvance();
9432
9742
  i0.ɵɵrepeater(ctx_r1.visibleOrderedColumns());
9433
9743
  i0.ɵɵadvance(2);
9434
- i0.ɵɵconditional(ctx_r1.hasRowDetail() && ctx_r1.isExpanded(row_r12) && !ctx_r1.virtualScroll() ? 5 : -1);
9744
+ i0.ɵɵconditional(ctx_r1.hasRowDetail() && ctx_r1.isExpanded(row_r14) && !ctx_r1.virtualScroll() ? 5 : -1);
9435
9745
  } }
9436
- function KptDataTable_ng_template_21_Conditional_1_Template(rf, ctx) { if (rf & 1) {
9746
+ function KptDataTable_ng_template_22_Conditional_1_Template(rf, ctx) { if (rf & 1) {
9437
9747
  i0.ɵɵelement(0, "th", 17);
9438
9748
  } if (rf & 2) {
9439
9749
  const ctx_r1 = i0.ɵɵnextContext(2);
9440
9750
  i0.ɵɵstyleProp("left", ctx_r1.expanderStickyLeft(), "px");
9441
9751
  i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.hasFrozen());
9442
9752
  } }
9443
- function KptDataTable_ng_template_21_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9753
+ function KptDataTable_ng_template_22_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9444
9754
  i0.ɵɵelement(0, "th", 18);
9445
9755
  } if (rf & 2) {
9446
9756
  const ctx_r1 = i0.ɵɵnextContext(2);
9447
9757
  i0.ɵɵstyleProp("left", ctx_r1.checkboxStickyLeft(), "px");
9448
9758
  i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.hasFrozen());
9449
9759
  } }
9450
- function KptDataTable_ng_template_21_For_4_Case_1_Template(rf, ctx) { if (rf & 1) {
9451
- const _r23 = i0.ɵɵgetCurrentView();
9452
- i0.ɵɵelementStart(0, "input", 55);
9453
- 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(); });
9760
+ function KptDataTable_ng_template_22_For_4_Case_1_Template(rf, ctx) { if (rf & 1) {
9761
+ const _r25 = i0.ɵɵgetCurrentView();
9762
+ i0.ɵɵelementStart(0, "input", 58);
9763
+ 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(); });
9454
9764
  i0.ɵɵelementEnd();
9455
9765
  } if (rf & 2) {
9456
- const col_r24 = i0.ɵɵnextContext().$implicit;
9766
+ const col_r26 = i0.ɵɵnextContext().$implicit;
9457
9767
  const ctx_r1 = i0.ɵɵnextContext(2);
9458
- i0.ɵɵproperty("value", ctx_r1.columnFilters()[col_r24.field] || "");
9459
- i0.ɵɵattribute("placeholder", col_r24.filter.placeholder || "")("aria-label", ctx_r1.i18n.t("dataTable.filter", i0.ɵɵpureFunction1(3, _c6, col_r24.header)));
9768
+ i0.ɵɵproperty("value", ctx_r1.columnFilters()[col_r26.field] || "");
9769
+ i0.ɵɵattribute("placeholder", col_r26.filter.placeholder || "")("aria-label", ctx_r1.i18n.t("dataTable.filter", i0.ɵɵpureFunction1(3, _c6, col_r26.header)));
9460
9770
  } }
9461
- function KptDataTable_ng_template_21_For_4_Case_2_Template(rf, ctx) { if (rf & 1) {
9462
- const _r25 = i0.ɵɵgetCurrentView();
9463
- i0.ɵɵelementStart(0, "input", 56);
9464
- 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(); });
9771
+ function KptDataTable_ng_template_22_For_4_Case_2_Template(rf, ctx) { if (rf & 1) {
9772
+ const _r27 = i0.ɵɵgetCurrentView();
9773
+ i0.ɵɵelementStart(0, "input", 59);
9774
+ 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(); });
9465
9775
  i0.ɵɵelementEnd();
9466
9776
  } if (rf & 2) {
9467
- const col_r24 = i0.ɵɵnextContext().$implicit;
9777
+ const col_r26 = i0.ɵɵnextContext().$implicit;
9468
9778
  const ctx_r1 = i0.ɵɵnextContext(2);
9469
- i0.ɵɵproperty("value", ctx_r1.columnFilters()[col_r24.field] || "");
9470
- i0.ɵɵattribute("placeholder", col_r24.filter.placeholder || "")("aria-label", ctx_r1.i18n.t("dataTable.filter", i0.ɵɵpureFunction1(3, _c6, col_r24.header)));
9779
+ i0.ɵɵproperty("value", ctx_r1.columnFilters()[col_r26.field] || "");
9780
+ i0.ɵɵattribute("placeholder", col_r26.filter.placeholder || "")("aria-label", ctx_r1.i18n.t("dataTable.filter", i0.ɵɵpureFunction1(3, _c6, col_r26.header)));
9471
9781
  } }
9472
- function KptDataTable_ng_template_21_For_4_Case_3_Template(rf, ctx) { if (rf & 1) {
9473
- const _r26 = i0.ɵɵgetCurrentView();
9474
- i0.ɵɵelementStart(0, "kpt-select", 57);
9475
- 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)); });
9782
+ function KptDataTable_ng_template_22_For_4_Case_3_Template(rf, ctx) { if (rf & 1) {
9783
+ const _r28 = i0.ɵɵgetCurrentView();
9784
+ i0.ɵɵelementStart(0, "kpt-select", 60);
9785
+ 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)); });
9476
9786
  i0.ɵɵelementEnd();
9477
9787
  } if (rf & 2) {
9478
- const col_r24 = i0.ɵɵnextContext().$implicit;
9788
+ const col_r26 = i0.ɵɵnextContext().$implicit;
9479
9789
  const ctx_r1 = i0.ɵɵnextContext(2);
9480
- 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);
9790
+ 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);
9481
9791
  } }
9482
- function KptDataTable_ng_template_21_For_4_Case_4_Template(rf, ctx) { if (rf & 1) {
9483
- const _r27 = i0.ɵɵgetCurrentView();
9484
- i0.ɵɵelementStart(0, "div", 52)(1, "input", 56);
9485
- 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(); });
9792
+ function KptDataTable_ng_template_22_For_4_Case_4_Template(rf, ctx) { if (rf & 1) {
9793
+ const _r29 = i0.ɵɵgetCurrentView();
9794
+ i0.ɵɵelementStart(0, "div", 55)(1, "input", 59);
9795
+ 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(); });
9486
9796
  i0.ɵɵelementEnd();
9487
- i0.ɵɵelementStart(2, "input", 56);
9488
- 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(); });
9797
+ i0.ɵɵelementStart(2, "input", 59);
9798
+ 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(); });
9489
9799
  i0.ɵɵelementEnd()();
9490
9800
  } if (rf & 2) {
9491
- const col_r24 = i0.ɵɵnextContext().$implicit;
9801
+ const col_r26 = i0.ɵɵnextContext().$implicit;
9492
9802
  const ctx_r1 = i0.ɵɵnextContext(2);
9493
9803
  i0.ɵɵadvance();
9494
- i0.ɵɵproperty("value", ctx_r1.rangeVal(col_r24.field).min);
9495
- i0.ɵɵattribute("placeholder", ctx_r1.i18n.t("dataTable.min"))("aria-label", ctx_r1.i18n.t("dataTable.filterMin", i0.ɵɵpureFunction1(6, _c6, col_r24.header)));
9804
+ i0.ɵɵproperty("value", ctx_r1.rangeVal(col_r26.field).min);
9805
+ i0.ɵɵattribute("placeholder", ctx_r1.i18n.t("dataTable.min"))("aria-label", ctx_r1.i18n.t("dataTable.filterMin", i0.ɵɵpureFunction1(6, _c6, col_r26.header)));
9496
9806
  i0.ɵɵadvance();
9497
- i0.ɵɵproperty("value", ctx_r1.rangeVal(col_r24.field).max);
9498
- i0.ɵɵattribute("placeholder", ctx_r1.i18n.t("dataTable.max"))("aria-label", ctx_r1.i18n.t("dataTable.filterMax", i0.ɵɵpureFunction1(8, _c6, col_r24.header)));
9807
+ i0.ɵɵproperty("value", ctx_r1.rangeVal(col_r26.field).max);
9808
+ i0.ɵɵattribute("placeholder", ctx_r1.i18n.t("dataTable.max"))("aria-label", ctx_r1.i18n.t("dataTable.filterMax", i0.ɵɵpureFunction1(8, _c6, col_r26.header)));
9499
9809
  } }
9500
- function KptDataTable_ng_template_21_For_4_Case_5_Template(rf, ctx) { if (rf & 1) {
9501
- const _r28 = i0.ɵɵgetCurrentView();
9502
- i0.ɵɵelementStart(0, "div", 58);
9503
- i0.ɵɵlistener("click", function KptDataTable_ng_template_21_For_4_Case_5_Template_div_click_0_listener($event) { return $event.stopPropagation(); });
9504
- i0.ɵɵelementStart(1, "kpt-slider", 59);
9505
- 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)); });
9810
+ function KptDataTable_ng_template_22_For_4_Case_5_Template(rf, ctx) { if (rf & 1) {
9811
+ const _r30 = i0.ɵɵgetCurrentView();
9812
+ i0.ɵɵelementStart(0, "div", 61);
9813
+ i0.ɵɵlistener("click", function KptDataTable_ng_template_22_For_4_Case_5_Template_div_click_0_listener($event) { return $event.stopPropagation(); });
9814
+ i0.ɵɵelementStart(1, "kpt-slider", 62);
9815
+ 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)); });
9506
9816
  i0.ɵɵelementEnd()();
9507
9817
  } if (rf & 2) {
9508
- const col_r24 = i0.ɵɵnextContext().$implicit;
9818
+ const col_r26 = i0.ɵɵnextContext().$implicit;
9509
9819
  const ctx_r1 = i0.ɵɵnextContext(2);
9510
9820
  i0.ɵɵadvance();
9511
- 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));
9821
+ 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));
9512
9822
  } }
9513
- function KptDataTable_ng_template_21_For_4_Case_6_Template(rf, ctx) { if (rf & 1) {
9514
- const _r29 = i0.ɵɵgetCurrentView();
9515
- i0.ɵɵelementStart(0, "kpt-date-range", 60);
9516
- 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)); });
9823
+ function KptDataTable_ng_template_22_For_4_Case_6_Template(rf, ctx) { if (rf & 1) {
9824
+ const _r31 = i0.ɵɵgetCurrentView();
9825
+ i0.ɵɵelementStart(0, "kpt-date-range", 63);
9826
+ 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)); });
9517
9827
  i0.ɵɵelementEnd();
9518
9828
  } if (rf & 2) {
9519
- const col_r24 = i0.ɵɵnextContext().$implicit;
9829
+ const col_r26 = i0.ɵɵnextContext().$implicit;
9520
9830
  const ctx_r1 = i0.ɵɵnextContext(2);
9521
- i0.ɵɵproperty("placeholder", col_r24.filter.placeholder || ctx_r1.i18n.t("dataTable.dateRange"))("value", ctx_r1.columnFilters()[col_r24.field] || i0.ɵɵpureFunction0(2, _c10));
9831
+ i0.ɵɵproperty("placeholder", col_r26.filter.placeholder || ctx_r1.i18n.t("dataTable.dateRange"))("value", ctx_r1.columnFilters()[col_r26.field] || i0.ɵɵpureFunction0(2, _c10));
9522
9832
  } }
9523
- function KptDataTable_ng_template_21_For_4_Template(rf, ctx) { if (rf & 1) {
9833
+ function KptDataTable_ng_template_22_For_4_Template(rf, ctx) { if (rf & 1) {
9524
9834
  i0.ɵɵelementStart(0, "th");
9525
- 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);
9835
+ 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);
9526
9836
  i0.ɵɵelementEnd();
9527
9837
  } if (rf & 2) {
9528
9838
  let tmp_19_0;
9529
- const col_r24 = ctx.$implicit;
9839
+ const col_r26 = ctx.$implicit;
9530
9840
  const ctx_r1 = i0.ɵɵnextContext(2);
9531
- i0.ɵɵstyleProp("width", col_r24.width)("left", ctx_r1.frozenLeft(col_r24.field), "px");
9532
- i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.isFrozen(col_r24.field));
9533
- i0.ɵɵattribute("data-align", col_r24.align ?? "start");
9841
+ i0.ɵɵstyleProp("width", col_r26.width)("left", ctx_r1.frozenLeft(col_r26.field), "px");
9842
+ i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.isFrozen(col_r26.field));
9843
+ i0.ɵɵattribute("data-align", col_r26.align ?? "start");
9534
9844
  i0.ɵɵadvance();
9535
- 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);
9845
+ 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);
9536
9846
  } }
9537
- function KptDataTable_ng_template_21_Template(rf, ctx) { if (rf & 1) {
9538
- i0.ɵɵelementStart(0, "tr", 47);
9539
- i0.ɵɵconditionalCreate(1, KptDataTable_ng_template_21_Conditional_1_Template, 1, 4, "th", 9);
9540
- i0.ɵɵconditionalCreate(2, KptDataTable_ng_template_21_Conditional_2_Template, 1, 4, "th", 10);
9541
- i0.ɵɵrepeaterCreate(3, KptDataTable_ng_template_21_For_4_Template, 7, 8, "th", 48, _forTrack0$1);
9847
+ function KptDataTable_ng_template_22_Template(rf, ctx) { if (rf & 1) {
9848
+ i0.ɵɵelementStart(0, "tr", 51);
9849
+ i0.ɵɵconditionalCreate(1, KptDataTable_ng_template_22_Conditional_1_Template, 1, 4, "th", 9);
9850
+ i0.ɵɵconditionalCreate(2, KptDataTable_ng_template_22_Conditional_2_Template, 1, 4, "th", 10);
9851
+ i0.ɵɵrepeaterCreate(3, KptDataTable_ng_template_22_For_4_Template, 7, 8, "th", 30, _forTrack0$1);
9542
9852
  i0.ɵɵelementEnd();
9543
9853
  } if (rf & 2) {
9544
9854
  const ctx_r1 = i0.ɵɵnextContext();
@@ -9549,12 +9859,12 @@ function KptDataTable_ng_template_21_Template(rf, ctx) { if (rf & 1) {
9549
9859
  i0.ɵɵadvance();
9550
9860
  i0.ɵɵrepeater(ctx_r1.visibleOrderedColumns());
9551
9861
  } }
9552
- function KptDataTable_Conditional_23_Template(rf, ctx) { if (rf & 1) {
9553
- const _r30 = i0.ɵɵgetCurrentView();
9862
+ function KptDataTable_Conditional_24_Template(rf, ctx) { if (rf & 1) {
9863
+ const _r32 = i0.ɵɵgetCurrentView();
9554
9864
  i0.ɵɵelementStart(0, "div", 12);
9555
9865
  i0.ɵɵprojection(1);
9556
- i0.ɵɵelementStart(2, "kpt-paginator", 61);
9557
- 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)); });
9866
+ i0.ɵɵelementStart(2, "kpt-paginator", 64);
9867
+ 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)); });
9558
9868
  i0.ɵɵelementEnd()();
9559
9869
  } if (rf & 2) {
9560
9870
  const ctx_r1 = i0.ɵɵnextContext();
@@ -9637,6 +9947,15 @@ class KptDataTable {
9637
9947
  this.expandable = input(false, { ...(ngDevMode ? { debugName: "expandable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
9638
9948
  /** Zezwala na rozwinięcie wielu wierszy naraz (domyślnie tak). */
9639
9949
  this.multiExpand = input(true, { ...(ngDevMode ? { debugName: "multiExpand" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
9950
+ /** Etykieta wiersza podsumowania; bez wartości używa i18n (`dataTable.total`). */
9951
+ this.summaryLabel = input(/* @ts-ignore */
9952
+ ...(ngDevMode ? [undefined, { debugName: "summaryLabel" }] : /* istanbul ignore next */ []));
9953
+ /**
9954
+ * Gotowe wartości podsumowania (pole → wartość). Nadpisują wyliczenia po stronie klienta,
9955
+ * a w trybie `lazy` są ich jedynym źródłem (tabela ma wtedy tylko bieżącą stronę).
9956
+ */
9957
+ this.summaryValues = input(null, /* @ts-ignore */
9958
+ ...(ngDevMode ? [{ debugName: "summaryValues" }] : /* istanbul ignore next */ []));
9640
9959
  // ── Model / zdarzenia ──
9641
9960
  this.selection = model([], /* @ts-ignore */
9642
9961
  ...(ngDevMode ? [{ debugName: "selection" }] : /* istanbul ignore next */ []));
@@ -9804,12 +10123,65 @@ class KptDataTable {
9804
10123
  return rows.slice(start, start + size);
9805
10124
  }, /* @ts-ignore */
9806
10125
  ...(ngDevMode ? [{ debugName: "paged" }] : /* istanbul ignore next */ []));
9807
- this.colspan = computed(() => this.visibleOrderedColumns().length +
9808
- (this.selectable() !== 'none' ? 1 : 0) +
9809
- (this.hasRowDetail() ? 1 : 0), /* @ts-ignore */
10126
+ /** Wiodące kolumny systemowe (rozwijanie + zaznaczanie) — poza `visibleOrderedColumns()`. */
10127
+ this.leadingCells = computed(() => (this.selectable() !== 'none' ? 1 : 0) + (this.hasRowDetail() ? 1 : 0), /* @ts-ignore */
10128
+ ...(ngDevMode ? [{ debugName: "leadingCells" }] : /* istanbul ignore next */ []));
10129
+ this.colspan = computed(() => this.visibleOrderedColumns().length + this.leadingCells(), /* @ts-ignore */
9810
10130
  ...(ngDevMode ? [{ debugName: "colspan" }] : /* istanbul ignore next */ []));
9811
10131
  this.displayCount = computed(() => this.virtualScroll() ? this.sorted().length : this.paged().length, /* @ts-ignore */
9812
10132
  ...(ngDevMode ? [{ debugName: "displayCount" }] : /* istanbul ignore next */ []));
10133
+ // ── Wiersz podsumowania (tfoot) ──
10134
+ /** Etykieta wiersza podsumowania (input albo domyślna z i18n). */
10135
+ this.summaryLabelText = computed(() => this.summaryLabel() ?? this.i18n.t('dataTable.total'), /* @ts-ignore */
10136
+ ...(ngDevMode ? [{ debugName: "summaryLabelText" }] : /* istanbul ignore next */ []));
10137
+ /**
10138
+ * Zbiór do agregacji: wszystkie wiersze po filtrach (a więc ze wszystkich stron — `paged()`
10139
+ * tnie dopiero po tym kroku). Przy `lazy` tabela ma tylko bieżącą stronę, więc nie liczy nic
10140
+ * sama — jedynym źródłem jest wtedy `summaryValues`.
10141
+ */
10142
+ this.summarySource = computed(() => this.lazy() ? [] : this.filtered(), /* @ts-ignore */
10143
+ ...(ngDevMode ? [{ debugName: "summarySource" }] : /* istanbul ignore next */ []));
10144
+ /** Pola z podsumowaniem: kolumny z `summary` (tylko widoczne) + klucze podane w `summaryValues`. */
10145
+ this.summaryFields = computed(() => {
10146
+ const cols = this.visibleOrderedColumns();
10147
+ const overrides = this.summaryValues() ?? {};
10148
+ return cols.filter((c) => c.summary || c.field in overrides).map((c) => c.field);
10149
+ }, /* @ts-ignore */
10150
+ ...(ngDevMode ? [{ debugName: "summaryFields" }] : /* istanbul ignore next */ []));
10151
+ this.hasSummary = computed(() => this.summaryFields().length > 0, /* @ts-ignore */
10152
+ ...(ngDevMode ? [{ debugName: "hasSummary" }] : /* istanbul ignore next */ []));
10153
+ /** Indeks pierwszej podsumowywanej kolumny — do niej scala się etykieta. */
10154
+ this.summaryStartIndex = computed(() => {
10155
+ const first = this.summaryFields()[0];
10156
+ return first === undefined ? -1 : this.visibleOrderedColumns().findIndex((c) => c.field === first);
10157
+ }, /* @ts-ignore */
10158
+ ...(ngDevMode ? [{ debugName: "summaryStartIndex" }] : /* istanbul ignore next */ []));
10159
+ /**
10160
+ * Colspan komórki z etykietą: kolumny systemowe + kolumny przed pierwszą podsumowywaną.
10161
+ * Zero (pierwsza widoczna kolumna jest liczona) = etykieta nie ma się gdzie zmieścić i nie
10162
+ * renderuje się wcale.
10163
+ */
10164
+ this.summaryLabelSpan = computed(() => this.leadingCells() + this.summaryStartIndex(), /* @ts-ignore */
10165
+ ...(ngDevMode ? [{ debugName: "summaryLabelSpan" }] : /* istanbul ignore next */ []));
10166
+ /** Gotowe teksty komórek podsumowania (pole → tekst); pusty string dla braku wartości. */
10167
+ this.summaryTexts = computed(() => {
10168
+ const rows = this.summarySource();
10169
+ const overrides = this.summaryValues() ?? {};
10170
+ const map = new Map();
10171
+ for (const col of this.visibleOrderedColumns()) {
10172
+ if (!col.summary && !(col.field in overrides))
10173
+ continue;
10174
+ const raw = col.field in overrides
10175
+ ? overrides[col.field]
10176
+ : typeof col.summary.fn === 'function'
10177
+ ? col.summary.fn(rows)
10178
+ : aggregate(rows, col.field, col.summary.fn);
10179
+ const format = col.summary?.format;
10180
+ map.set(col.field, format ? format(raw) : raw == null ? '' : String(raw));
10181
+ }
10182
+ return map;
10183
+ }, /* @ts-ignore */
10184
+ ...(ngDevMode ? [{ debugName: "summaryTexts" }] : /* istanbul ignore next */ []));
9813
10185
  /** Mapa pole → przesunięcie left (px) dla wiodących zamrożonych kolumn. */
9814
10186
  /** Suma szerokości wiodących kolumn systemowych (rozwijanie + zaznaczanie) w px. */
9815
10187
  this.leadingStickyWidth = computed(() => {
@@ -10149,6 +10521,9 @@ class KptDataTable {
10149
10521
  }
10150
10522
  });
10151
10523
  }
10524
+ summaryText(field) {
10525
+ return this.summaryTexts().get(field) ?? '';
10526
+ }
10152
10527
  // ── Kolumny zamrożone (sticky, wiodące) ──
10153
10528
  parseWidthPx(width) {
10154
10529
  if (!width)
@@ -10245,7 +10620,7 @@ class KptDataTable {
10245
10620
  i0.ɵɵqueryAdvance(3);
10246
10621
  } }, hostAttrs: [1, "kpt-data-table"], hostVars: 2, hostBindings: function KptDataTable_HostBindings(rf, ctx) { if (rf & 2) {
10247
10622
  i0.ɵɵstyleProp("--%NS%kpt-thead-offset", ctx.theadOffset() + "px");
10248
- } }, 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) {
10623
+ } }, 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) {
10249
10624
  i0.ɵɵprojectionDef(_c3);
10250
10625
  i0.ɵɵconditionalCreate(0, KptDataTable_Conditional_0_Template, 3, 2, "div", 5);
10251
10626
  i0.ɵɵelementStart(1, "div", 6, 0);
@@ -10261,9 +10636,11 @@ class KptDataTable {
10261
10636
  i0.ɵɵelementEnd();
10262
10637
  i0.ɵɵelementStart(14, "tbody");
10263
10638
  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);
10264
- i0.ɵɵelementEnd()()();
10265
- 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);
10266
- i0.ɵɵconditionalCreate(23, KptDataTable_Conditional_23_Template, 3, 4, "div", 12);
10639
+ i0.ɵɵelementEnd();
10640
+ i0.ɵɵconditionalCreate(19, KptDataTable_Conditional_19_Template, 5, 1, "tfoot");
10641
+ i0.ɵɵelementEnd()();
10642
+ 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);
10643
+ i0.ɵɵconditionalCreate(24, KptDataTable_Conditional_24_Template, 3, 4, "div", 12);
10267
10644
  } if (rf & 2) {
10268
10645
  i0.ɵɵconditional(ctx.filterable() || ctx.exportable() ? 0 : -1);
10269
10646
  i0.ɵɵadvance();
@@ -10282,8 +10659,10 @@ class KptDataTable {
10282
10659
  i0.ɵɵconditional(ctx.hasColumnFilters() && ctx.filterRowPosition() === "bottom" ? 13 : -1);
10283
10660
  i0.ɵɵadvance(2);
10284
10661
  i0.ɵɵconditional(ctx.loading() ? 15 : ctx.displayCount() === 0 ? 16 : ctx.virtualScroll() ? 17 : 18);
10285
- i0.ɵɵadvance(8);
10286
- i0.ɵɵconditional(ctx.pageSize() > 0 && !ctx.virtualScroll() ? 23 : -1);
10662
+ i0.ɵɵadvance(4);
10663
+ i0.ɵɵconditional(ctx.hasSummary() && !ctx.loading() && ctx.displayCount() > 0 ? 19 : -1);
10664
+ i0.ɵɵadvance(5);
10665
+ i0.ɵɵconditional(ctx.pageSize() > 0 && !ctx.virtualScroll() ? 24 : -1);
10287
10666
  } }, dependencies: [NgTemplateOutlet,
10288
10667
  KptButton,
10289
10668
  KptIcon,
@@ -10293,7 +10672,7 @@ class KptDataTable {
10293
10672
  KptSlider,
10294
10673
  KptInput,
10295
10674
  KptInputNumber,
10296
- 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 }); }
10675
+ 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 }); }
10297
10676
  }
10298
10677
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptDataTable, [{
10299
10678
  type: Component,
@@ -10311,9 +10690,9 @@ class KptDataTable {
10311
10690
  ], host: {
10312
10691
  'class': 'kpt-data-table',
10313
10692
  '[style.--kpt-thead-offset]': "theadOffset() + 'px'",
10314
- }, 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"] }]
10315
- }], () => [], { 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 }] }] }); })();
10316
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptDataTable, { className: "KptDataTable", filePath: "lib/data-table/data-table.component.ts", lineNumber: 168 }); })();
10693
+ }, 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"] }]
10694
+ }], () => [], { 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 }] }] }); })();
10695
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptDataTable, { className: "KptDataTable", filePath: "lib/data-table/data-table.component.ts", lineNumber: 173 }); })();
10317
10696
 
10318
10697
  const _c0$d = a0 => ({ $implicit: a0, level: 0 });
10319
10698
  const _c1$4 = (a0, a1) => ({ $implicit: a0, level: a1 });