ng-zenduit 2.3.0 → 2.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ng-zenduit",
3
- "version": "2.3.0",
3
+ "version": "2.3.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=22.0.0 <23.0.0",
6
6
  "@angular/core": ">=22.0.0 <23.0.0",
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, OnInit, ElementRef, NgZone, TemplateRef, OnChanges, ViewContainerRef, SimpleChanges, Renderer2, InjectionToken, AfterViewInit, ChangeDetectorRef, OnDestroy } from '@angular/core';
2
+ import { EventEmitter, OnInit, ElementRef, NgZone, TemplateRef, OnChanges, ViewContainerRef, SimpleChanges, DoCheck, Renderer2, InjectionToken, AfterViewInit, ChangeDetectorRef, OnDestroy } from '@angular/core';
3
3
  import * as i60 from '@angular/cdk/overlay';
4
4
  import { Overlay } from '@angular/cdk/overlay';
5
5
  import * as i62 from '@ngx-translate/core';
@@ -810,7 +810,7 @@ declare class ZenduDatepickerComponent implements OnChanges {
810
810
  static ɵcmp: i0.ɵɵComponentDeclaration<ZenduDatepickerComponent, "zen-datepicker", never, { "date": { "alias": "date"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "showSeconds": { "alias": "showSeconds"; "required": false; }; "showDate": { "alias": "showDate"; "required": false; }; "parentContainer": { "alias": "parentContainer"; "required": false; }; "containerClass": { "alias": "containerClass"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "boxDesign": { "alias": "boxDesign"; "required": false; }; "highlightDays": { "alias": "highlightDays"; "required": false; }; "autoConfirm": { "alias": "autoConfirm"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "highlightError": { "alias": "highlightError"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "xPosition": { "alias": "xPosition"; "required": false; }; "yPosition": { "alias": "yPosition"; "required": false; }; "dispalyOverParent": { "alias": "dispalyOverParent"; "required": false; }; }, { "dateChange": "dateChange"; }, never, never, false, never>;
811
811
  }
812
812
 
813
- declare class ZenduFilterComponent implements OnChanges {
813
+ declare class ZenduFilterComponent implements OnChanges, DoCheck {
814
814
  renderer: Renderer2;
815
815
  config: FiltersConfig;
816
816
  filter: object;
@@ -822,6 +822,7 @@ declare class ZenduFilterComponent implements OnChanges {
822
822
  customTrigger: boolean;
823
823
  imageUrl: string;
824
824
  label: string;
825
+ triggerVariant: 'default' | 'icon-only';
825
826
  showOptions: boolean;
826
827
  customOptions: string;
827
828
  wrapperBodyClass: string;
@@ -830,13 +831,16 @@ declare class ZenduFilterComponent implements OnChanges {
830
831
  isApplied: boolean;
831
832
  private lastAppliedFilter;
832
833
  private resetedFilter;
834
+ selectedCount: number;
835
+ appliedCount: number;
836
+ hasActiveFilters: boolean;
833
837
  menuLeft: string;
834
838
  menuRight: string;
835
839
  menuTop: string;
836
840
  menuBottom: string;
841
+ menuMaxHeight: string;
837
842
  showNoFilterResult: boolean;
838
843
  errorMessage: string[];
839
- datepickerPosition: typeof DATEPICKER_POSITION;
840
844
  selectedDateRangeOptions: {
841
845
  [key: string]: string;
842
846
  };
@@ -844,6 +848,7 @@ declare class ZenduFilterComponent implements OnChanges {
844
848
  _componentElement: ElementRef<HTMLElement>;
845
849
  constructor(renderer: Renderer2);
846
850
  ngOnChanges(changes: any): void;
851
+ ngDoCheck(): void;
847
852
  outsideHandling(event: MouseEvent): void;
848
853
  windowSizeHandling(): void;
849
854
  windowScroll(): void;
@@ -853,6 +858,15 @@ declare class ZenduFilterComponent implements OnChanges {
853
858
  private extractUniqueDataSource;
854
859
  onSelectAll(item: FiltersConfigItem): void;
855
860
  isItemActive(item: FiltersConfigItem): boolean;
861
+ /**
862
+ * Whether a section is actively contributing to the filter — used to show the
863
+ * per-section "applied" dot next to its chevron. Mirrors the per-type gating
864
+ * of computeSelectedCount() (e.g. a radio only counts when it differs from the
865
+ * default), so the dot and the trigger count badge can never disagree. Unlike
866
+ * isItemActive(), this has no side effects and treats a default radio as
867
+ * inactive.
868
+ */
869
+ isItemFiltered(item: FiltersConfigItem): boolean;
856
870
  searchTextChanged(): void;
857
871
  private resetLazyLoadingSources;
858
872
  private filterItems;
@@ -861,6 +875,14 @@ declare class ZenduFilterComponent implements OnChanges {
861
875
  private resetFilters;
862
876
  private restorePreviousApplied;
863
877
  reset(): void;
878
+ /**
879
+ * Resets the dropdown's internal selection state (checkboxes, radios, date /
880
+ * number ranges) and the trigger count badge to match a filter object —
881
+ * defaults to the currently bound `filter`. Call this from the host after
882
+ * changing the bound filter outside the component's own UI (e.g. removing a
883
+ * chip in a view-filters bar) so the dropdown and badge stay in sync.
884
+ */
885
+ syncFromFilter(filter?: object): void;
864
886
  apply(): void;
865
887
  private updateAppliedState;
866
888
  private getFilterObject;
@@ -880,11 +902,10 @@ declare class ZenduFilterComponent implements OnChanges {
880
902
  hasTreeData(configItem: FiltersConfigItem): boolean;
881
903
  handleDateRangeOptionClick(item: any, option: any): void;
882
904
  handleCustomDateRangeClick(item: any): void;
883
- handleEndDateChange(item: any): void;
884
- get hasMultiselectItems(): boolean;
885
- get selectedCount(): number;
905
+ handleEndDateChange(item: FiltersConfigItem, date: Date | null): void;
906
+ private computeSelectedCount;
886
907
  static ɵfac: i0.ɵɵFactoryDeclaration<ZenduFilterComponent, never>;
887
- static ɵcmp: i0.ɵɵComponentDeclaration<ZenduFilterComponent, "zen-filter", never, { "config": { "alias": "config"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "position": { "alias": "position"; "required": false; }; "resetBehavior": { "alias": "resetBehavior"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; "customTrigger": { "alias": "customTrigger"; "required": false; }; "imageUrl": { "alias": "imageUrl"; "required": false; }; "label": { "alias": "label"; "required": false; }; "showOptions": { "alias": "showOptions"; "required": false; }; "customOptions": { "alias": "customOptions"; "required": false; }; "wrapperBodyClass": { "alias": "wrapperBodyClass"; "required": false; }; "customPosition": { "alias": "customPosition"; "required": false; }; }, { "filterChange": "filterChange"; "isVisibleChange": "isVisibleChange"; }, never, ["*"], false, never>;
908
+ static ɵcmp: i0.ɵɵComponentDeclaration<ZenduFilterComponent, "zen-filter", never, { "config": { "alias": "config"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "position": { "alias": "position"; "required": false; }; "resetBehavior": { "alias": "resetBehavior"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; "customTrigger": { "alias": "customTrigger"; "required": false; }; "imageUrl": { "alias": "imageUrl"; "required": false; }; "label": { "alias": "label"; "required": false; }; "triggerVariant": { "alias": "triggerVariant"; "required": false; }; "showOptions": { "alias": "showOptions"; "required": false; }; "customOptions": { "alias": "customOptions"; "required": false; }; "wrapperBodyClass": { "alias": "wrapperBodyClass"; "required": false; }; "customPosition": { "alias": "customPosition"; "required": false; }; }, { "filterChange": "filterChange"; "isVisibleChange": "isVisibleChange"; }, never, ["*"], false, never>;
888
909
  }
889
910
 
890
911
  declare class ZenduGroupsComponent implements OnChanges {
@@ -1798,7 +1819,12 @@ declare class ZenduDatePickerDropdownComponent implements OnInit, OnChanges, OnD
1798
1819
  mobileBreakpoint: number;
1799
1820
  timePicker: boolean;
1800
1821
  autoApply: boolean;
1801
- triggerBtn: ElementRef;
1822
+ /**
1823
+ * Hide the built-in trigger button. The popup then anchors to the host
1824
+ * element, so an external control (e.g. a select) can drive it via open().
1825
+ */
1826
+ hideTrigger: boolean;
1827
+ triggerBtn?: ElementRef;
1802
1828
  mobile: boolean;
1803
1829
  isOpen: boolean;
1804
1830
  dropdownStyle: {
@@ -1885,7 +1911,7 @@ declare class ZenduDatePickerDropdownComponent implements OnInit, OnChanges, OnD
1885
1911
  isRangeStart(day: DatePickerDay): boolean;
1886
1912
  isRangeEnd(day: DatePickerDay): boolean;
1887
1913
  static ɵfac: i0.ɵɵFactoryDeclaration<ZenduDatePickerDropdownComponent, [null, null, { optional: true; }]>;
1888
- static ɵcmp: i0.ɵɵComponentDeclaration<ZenduDatePickerDropdownComponent, "zen-date-picker-dropdown", never, { "type": { "alias": "type"; "required": false; }; "date": { "alias": "date"; "required": false; }; "startDate": { "alias": "startDate"; "required": false; }; "endDate": { "alias": "endDate"; "required": false; }; "presets": { "alias": "presets"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "dateMarkers": { "alias": "dateMarkers"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "mobileBreakpoint": { "alias": "mobileBreakpoint"; "required": false; }; "timePicker": { "alias": "timePicker"; "required": false; }; "autoApply": { "alias": "autoApply"; "required": false; }; }, { "dateChange": "dateChange"; "startDateChange": "startDateChange"; "endDateChange": "endDateChange"; "rangeChange": "rangeChange"; }, never, never, false, never>;
1914
+ static ɵcmp: i0.ɵɵComponentDeclaration<ZenduDatePickerDropdownComponent, "zen-date-picker-dropdown", never, { "type": { "alias": "type"; "required": false; }; "date": { "alias": "date"; "required": false; }; "startDate": { "alias": "startDate"; "required": false; }; "endDate": { "alias": "endDate"; "required": false; }; "presets": { "alias": "presets"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "dateMarkers": { "alias": "dateMarkers"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "mobileBreakpoint": { "alias": "mobileBreakpoint"; "required": false; }; "timePicker": { "alias": "timePicker"; "required": false; }; "autoApply": { "alias": "autoApply"; "required": false; }; "hideTrigger": { "alias": "hideTrigger"; "required": false; }; }, { "dateChange": "dateChange"; "startDateChange": "startDateChange"; "endDateChange": "endDateChange"; "rangeChange": "rangeChange"; }, never, never, false, never>;
1889
1915
  }
1890
1916
 
1891
1917
  interface FileUploadItem {
@@ -2020,7 +2046,7 @@ interface DropdownOption {
2020
2046
  icon?: string;
2021
2047
  }
2022
2048
  declare class ZenduInputComponent implements ControlValueAccessor, OnInit, OnChanges {
2023
- inputElement: ElementRef<HTMLInputElement>;
2049
+ inputElement: ElementRef<HTMLInputElement | HTMLTextAreaElement>;
2024
2050
  /**
2025
2051
  * Input type attribute
2026
2052
  */
@@ -2125,6 +2151,22 @@ declare class ZenduInputComponent implements ControlValueAccessor, OnInit, OnCha
2125
2151
  * Trailing static text
2126
2152
  */
2127
2153
  trailingText: string;
2154
+ /**
2155
+ * Render a multiline textarea instead of a single-line input.
2156
+ * Composes with label/hint/character-count/states; single-line
2157
+ * adornments (leading/trailing dropdowns and text) are not used.
2158
+ */
2159
+ multiline: boolean;
2160
+ /**
2161
+ * Initial visible rows for the multiline textarea (height is then
2162
+ * user-resizable vertically). Only applies when `multiline` is true.
2163
+ */
2164
+ rows: number;
2165
+ /**
2166
+ * Whether the multiline textarea can be resized via the footer drag handle.
2167
+ * When false, the handle is hidden and the height stays fixed at `rows`.
2168
+ */
2169
+ resizable: boolean;
2128
2170
  /**
2129
2171
  * Input size
2130
2172
  */
@@ -2146,7 +2188,15 @@ declare class ZenduInputComponent implements ControlValueAccessor, OnInit, OnCha
2146
2188
  */
2147
2189
  width: string;
2148
2190
  /**
2149
- * Value change event
2191
+ * Value change event for the `[(value)]` two-way binding.
2192
+ *
2193
+ * NOTE — type contract for `type="number"`: this output always emits the
2194
+ * RAW STRING from the input element. The CVA path (`[(ngModel)]` /
2195
+ * `formControl`) instead emits a real `number` (or '' when empty/invalid).
2196
+ * So a consumer binding BOTH `[(value)]` and ngModel/formControl to the same
2197
+ * number input will observe a `string` here and a `number` there for the
2198
+ * same edit. Bind only one, and prefer ngModel/formControl when you need the
2199
+ * numeric value.
2150
2200
  */
2151
2201
  valueChange: EventEmitter<string>;
2152
2202
  /**
@@ -2197,7 +2247,7 @@ declare class ZenduInputComponent implements ControlValueAccessor, OnInit, OnCha
2197
2247
  * Leading icon click event
2198
2248
  */
2199
2249
  leadingIconClick: EventEmitter<MouseEvent>;
2200
- value: string;
2250
+ value: string | number;
2201
2251
  isFocused: boolean;
2202
2252
  showHelpTooltip: boolean;
2203
2253
  leadingDropdownOpen: boolean;
@@ -2227,11 +2277,12 @@ declare class ZenduInputComponent implements ControlValueAccessor, OnInit, OnCha
2227
2277
  get hostClass(): boolean;
2228
2278
  ngOnInit(): void;
2229
2279
  ngOnChanges(changes: SimpleChanges): void;
2230
- writeValue(value: string): void;
2231
- registerOnChange(fn: (value: string) => void): void;
2280
+ writeValue(value: string | number): void;
2281
+ registerOnChange(fn: (value: string | number) => void): void;
2232
2282
  registerOnTouched(fn: () => void): void;
2233
2283
  setDisabledState(isDisabled: boolean): void;
2234
2284
  onInputChange(event: Event): void;
2285
+ private coerceValue;
2235
2286
  onInputFocus(event: FocusEvent): void;
2236
2287
  onInputBlur(event: FocusEvent): void;
2237
2288
  onKeydown(event: KeyboardEvent): void;
@@ -2251,6 +2302,12 @@ declare class ZenduInputComponent implements ControlValueAccessor, OnInit, OnCha
2251
2302
  getLeadingDropdownLabel(): string;
2252
2303
  getTrailingDropdownLabel(): string;
2253
2304
  focusInput(): void;
2305
+ /**
2306
+ * Drag-to-resize for the multiline textarea via the custom footer handle.
2307
+ * Native resize is disabled in CSS; this adjusts the textarea height while
2308
+ * the pointer is held, clamped to a minimum.
2309
+ */
2310
+ onResizeStart(event: PointerEvent): void;
2254
2311
  parsePhoneNumber(): void;
2255
2312
  onCountryChanged(country: any): void;
2256
2313
  onPhoneChanged(input?: HTMLInputElement): void;
@@ -2259,7 +2316,10 @@ declare class ZenduInputComponent implements ControlValueAccessor, OnInit, OnCha
2259
2316
  onPhoneInputChange(event: Event): void;
2260
2317
  onLeadingIconClick(event: MouseEvent): void;
2261
2318
  static ɵfac: i0.ɵɵFactoryDeclaration<ZenduInputComponent, never>;
2262
- static ɵcmp: i0.ɵɵComponentDeclaration<ZenduInputComponent, "zen-input", never, { "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "label": { "alias": "label"; "required": false; }; "hintText": { "alias": "hintText"; "required": false; }; "leadingIcon": { "alias": "leadingIcon"; "required": false; }; "helpIcon": { "alias": "helpIcon"; "required": false; }; "helpTooltip": { "alias": "helpTooltip"; "required": false; }; "destructive": { "alias": "destructive"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "minLength": { "alias": "minLength"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "leadingDropdownOptions": { "alias": "leadingDropdownOptions"; "required": false; }; "leadingDropdownValue": { "alias": "leadingDropdownValue"; "required": false; }; "leadingDropdownPlaceholder": { "alias": "leadingDropdownPlaceholder"; "required": false; }; "trailingDropdownOptions": { "alias": "trailingDropdownOptions"; "required": false; }; "trailingDropdownValue": { "alias": "trailingDropdownValue"; "required": false; }; "trailingDropdownPlaceholder": { "alias": "trailingDropdownPlaceholder"; "required": false; }; "leadingText": { "alias": "leadingText"; "required": false; }; "trailingText": { "alias": "trailingText"; "required": false; }; "size": { "alias": "size"; "required": false; }; "showCharacterCount": { "alias": "showCharacterCount"; "required": false; }; "phoneMaxLength": { "alias": "phoneMaxLength"; "required": false; }; "phone": { "alias": "phone"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, { "valueChange": "valueChange"; "inputFocus": "inputFocus"; "inputBlur": "inputBlur"; "inputKeydown": "inputKeydown"; "inputKeyup": "inputKeyup"; "leadingDropdownChange": "leadingDropdownChange"; "leadingDropdownValueChange": "leadingDropdownValueChange"; "trailingDropdownChange": "trailingDropdownChange"; "trailingDropdownValueChange": "trailingDropdownValueChange"; "helpIconClick": "helpIconClick"; "phoneChange": "phoneChange"; "validChange": "validChange"; "leadingIconClick": "leadingIconClick"; }, never, never, false, never>;
2319
+ static ɵcmp: i0.ɵɵComponentDeclaration<ZenduInputComponent, "zen-input", never, { "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "label": { "alias": "label"; "required": false; }; "hintText": { "alias": "hintText"; "required": false; }; "leadingIcon": { "alias": "leadingIcon"; "required": false; }; "helpIcon": { "alias": "helpIcon"; "required": false; }; "helpTooltip": { "alias": "helpTooltip"; "required": false; }; "destructive": { "alias": "destructive"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "minLength": { "alias": "minLength"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "leadingDropdownOptions": { "alias": "leadingDropdownOptions"; "required": false; }; "leadingDropdownValue": { "alias": "leadingDropdownValue"; "required": false; }; "leadingDropdownPlaceholder": { "alias": "leadingDropdownPlaceholder"; "required": false; }; "trailingDropdownOptions": { "alias": "trailingDropdownOptions"; "required": false; }; "trailingDropdownValue": { "alias": "trailingDropdownValue"; "required": false; }; "trailingDropdownPlaceholder": { "alias": "trailingDropdownPlaceholder"; "required": false; }; "leadingText": { "alias": "leadingText"; "required": false; }; "trailingText": { "alias": "trailingText"; "required": false; }; "multiline": { "alias": "multiline"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "resizable": { "alias": "resizable"; "required": false; }; "size": { "alias": "size"; "required": false; }; "showCharacterCount": { "alias": "showCharacterCount"; "required": false; }; "phoneMaxLength": { "alias": "phoneMaxLength"; "required": false; }; "phone": { "alias": "phone"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, { "valueChange": "valueChange"; "inputFocus": "inputFocus"; "inputBlur": "inputBlur"; "inputKeydown": "inputKeydown"; "inputKeyup": "inputKeyup"; "leadingDropdownChange": "leadingDropdownChange"; "leadingDropdownValueChange": "leadingDropdownValueChange"; "trailingDropdownChange": "trailingDropdownChange"; "trailingDropdownValueChange": "trailingDropdownValueChange"; "helpIconClick": "helpIconClick"; "phoneChange": "phoneChange"; "validChange": "validChange"; "leadingIconClick": "leadingIconClick"; }, never, never, false, never>;
2320
+ static ngAcceptInputType_multiline: unknown;
2321
+ static ngAcceptInputType_rows: unknown;
2322
+ static ngAcceptInputType_resizable: unknown;
2263
2323
  }
2264
2324
 
2265
2325
  declare class ZenButtonComponent {