ecabs-components 1.1.57 → 1.1.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README.md +9 -1
  2. package/esm2022/lib/base/consts/error-messages.consts.mjs +13 -1
  3. package/esm2022/lib/base/directives/date-mask.directive.mjs +56 -80
  4. package/esm2022/lib/base/directives/time-mask.directive.mjs +12 -35
  5. package/esm2022/lib/base/directives/time-range.directive.mjs +6 -32
  6. package/esm2022/lib/base/models/element.models.mjs +1 -1
  7. package/esm2022/lib/base/models/select.models.mjs +1 -1
  8. package/esm2022/lib/base/pipes/truncate.pipe.mjs +1 -1
  9. package/esm2022/lib/base/utils/time-mask.util.mjs +87 -0
  10. package/esm2022/lib/ecabs-button-toggle/ecabs-button-toggle.component.mjs +4 -4
  11. package/esm2022/lib/ecabs-buttons-v2/ecabs-buttons-v2.component.mjs +2 -2
  12. package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +2 -2
  13. package/esm2022/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.component.mjs +105 -0
  14. package/esm2022/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.module.mjs +36 -0
  15. package/esm2022/lib/ecabs-chip-autocomplete/ecabs-chip-autocomplete.component.mjs +4 -6
  16. package/esm2022/lib/ecabs-chip-group/ecabs-chip-group.component.mjs +3 -3
  17. package/esm2022/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.mjs +2 -2
  18. package/esm2022/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.component.mjs +10 -12
  19. package/esm2022/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.module.mjs +7 -3
  20. package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +31 -11
  21. package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +3 -3
  22. package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +2 -2
  23. package/esm2022/lib/ecabs-increment/ecabs-increment.component.mjs +2 -2
  24. package/esm2022/lib/ecabs-input-range/ecabs-input-range.component.mjs +188 -0
  25. package/esm2022/lib/ecabs-input-range/ecabs-input-range.module.mjs +40 -0
  26. package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.component.mjs +2 -2
  27. package/esm2022/lib/ecabs-multiple-dates-picker/ecabs-multiple-dates-picker.component.mjs +2 -2
  28. package/esm2022/lib/ecabs-note/ecabs-note.component.mjs +2 -2
  29. package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +2 -2
  30. package/esm2022/lib/ecabs-place-autocomplete/ecabs-place-autocomplete.component.mjs +2 -2
  31. package/esm2022/lib/ecabs-place-autocomplete-v2/ecabs-place-autocomplete-v2.component.mjs +2 -2
  32. package/esm2022/lib/ecabs-segment/ecabs-segment.component.mjs +26 -0
  33. package/esm2022/lib/ecabs-select-v2/ecabs-select-v2.component.mjs +76 -79
  34. package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.mjs +2 -2
  35. package/esm2022/lib/ecabs-time-range-input-v2/config.model.mjs +2 -0
  36. package/esm2022/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.component.mjs +169 -0
  37. package/esm2022/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.module.mjs +32 -0
  38. package/esm2022/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.service.mjs +29 -0
  39. package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +3 -55
  40. package/esm2022/lib/ecabs-validation/ecabs-validation.component.mjs +2 -2
  41. package/esm2022/public-api.mjs +9 -1
  42. package/fesm2022/ecabs-components.mjs +883 -402
  43. package/fesm2022/ecabs-components.mjs.map +1 -1
  44. package/lib/base/directives/date-mask.directive.d.ts +6 -7
  45. package/lib/base/directives/time-mask.directive.d.ts +2 -3
  46. package/lib/base/directives/time-range.directive.d.ts +1 -2
  47. package/lib/base/models/element.models.d.ts +0 -5
  48. package/lib/base/models/select.models.d.ts +1 -0
  49. package/lib/base/utils/time-mask.util.d.ts +3 -0
  50. package/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.component.d.ts +29 -0
  51. package/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.module.d.ts +12 -0
  52. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.d.ts +4 -2
  53. package/lib/ecabs-input-range/ecabs-input-range.component.d.ts +44 -0
  54. package/lib/ecabs-input-range/ecabs-input-range.module.d.ts +13 -0
  55. package/lib/ecabs-segment/ecabs-segment.component.d.ts +8 -0
  56. package/lib/ecabs-select-v2/ecabs-select-v2.component.d.ts +24 -25
  57. package/lib/ecabs-time-range-input-v2/config.model.d.ts +5 -0
  58. package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.component.d.ts +51 -0
  59. package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.module.d.ts +11 -0
  60. package/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.service.d.ts +12 -0
  61. package/lib/ecabs-timepicker/ecabs-timepicker.component.d.ts +0 -5
  62. package/package.json +4 -3
  63. package/public-api.d.ts +8 -0
  64. package/src/assets/styles/material/overrides/_card.scss +14 -2
  65. package/src/assets/styles/material/overrides/_chip.scss +10 -1
  66. package/src/assets/styles/material/overrides/_divider.scss +4 -2
  67. package/src/assets/styles/material/overrides/_paginator.scss +1 -1
  68. package/src/assets/styles/material/overrides/_toggle.scss +7 -1
  69. package/src/assets/styles/scss/modules/_card.scss +32 -9
  70. package/src/assets/styles/scss/modules/_divider.scss +2 -1
  71. package/src/assets/styles/scss/modules/_form.scss +1 -1
  72. package/src/assets/styles/scss/modules/_legend.scss +2 -2
  73. package/src/assets/styles/scss/modules/_timepicker.scss +1 -1
  74. package/src/assets/styles/scss/utilities/_colors.scss +1 -0
  75. package/src/assets/styles/scss/utilities/_fonts.scss +2 -1
  76. package/src/assets/styles/scss/utilities/_variables.scss +6 -0
  77. package/src/assets/styles/tailwind/index.scss +1 -1
  78. package/esm2022/lib/base/consts/date-mask.consts.mjs +0 -76
  79. package/lib/base/consts/date-mask.consts.d.ts +0 -7
@@ -4,16 +4,15 @@ export declare class EcabsMaskDateDirective implements OnInit, OnDestroy {
4
4
  private readonly element;
5
5
  isDateTimeMask: boolean;
6
6
  considerSeconds: boolean;
7
- maskedInputController: any;
8
- mask: (string | RegExp)[];
9
- maskDateTime: (string | RegExp)[];
10
- maskDateTimeWithSeconds: (string | RegExp)[];
11
- config: any;
7
+ private maskedInput;
8
+ private readonly timeMaskOptions;
12
9
  constructor(element: ElementRef);
13
- onNgModelChange(value: any): void;
14
10
  ngOnInit(): void;
15
11
  ngOnDestroy(): void;
16
- private containsNumber;
12
+ private buildDynamicMask;
13
+ private getDaySegment;
14
+ private getMonthSegment;
15
+ private extractTimeValue;
17
16
  static ɵfac: i0.ɵɵFactoryDeclaration<EcabsMaskDateDirective, never>;
18
17
  static ɵdir: i0.ɵɵDirectiveDeclaration<EcabsMaskDateDirective, "[ecabsMaskDate]", never, { "isDateTimeMask": { "alias": "isDateTimeMask"; "required": false; }; "considerSeconds": { "alias": "considerSeconds"; "required": false; }; }, {}, never, never, false, never>;
19
18
  }
@@ -4,12 +4,11 @@ export declare class EcabsMaskTimeDirective implements OnInit, OnDestroy {
4
4
  private readonly element;
5
5
  timeRange?: boolean;
6
6
  all: string;
7
- maskedInputController: any;
8
- maskTimeRange: (string | RegExp)[];
9
- maskTime: (string | RegExp)[];
7
+ private maskedInput;
10
8
  constructor(element: ElementRef);
11
9
  ngOnInit(): void;
12
10
  ngOnDestroy(): void;
11
+ private getMaskOptions;
13
12
  static ɵfac: i0.ɵɵFactoryDeclaration<EcabsMaskTimeDirective, never>;
14
13
  static ɵdir: i0.ɵɵDirectiveDeclaration<EcabsMaskTimeDirective, "[ecabsTime]", never, { "timeRange": { "alias": "timeRange"; "required": false; }; "all": { "alias": "all"; "required": false; }; }, {}, never, never, false, never>;
15
14
  }
@@ -5,8 +5,7 @@ export declare class EcabsTimeRangeDirective implements OnInit, OnDestroy {
5
5
  isDateTimeMask: boolean;
6
6
  considerSeconds: boolean;
7
7
  all: string;
8
- maskedInputController: any;
9
- maskDateTime: (string | RegExp)[];
8
+ private maskedInput;
10
9
  constructor(element: ElementRef);
11
10
  ngOnInit(): void;
12
11
  ngOnDestroy(): void;
@@ -23,8 +23,3 @@ export interface ElementData {
23
23
  labelPosition?: 'before' | 'after';
24
24
  readonly?: boolean;
25
25
  }
26
- export interface SelectValue {
27
- label: string | number;
28
- value: string | number;
29
- selectAllIdentifier?: string | number;
30
- }
@@ -2,4 +2,5 @@ export interface SelectOption<T = unknown> {
2
2
  label: string;
3
3
  value: T;
4
4
  disabled?: boolean;
5
+ selectAllIdentifier?: string | number;
5
6
  }
@@ -0,0 +1,3 @@
1
+ import { MaskitoOptions } from '@maskito/core';
2
+ export declare function createTimeRangeMaskOptions(): MaskitoOptions;
3
+ export declare function createTimeMaskOptions(): MaskitoOptions;
@@ -0,0 +1,29 @@
1
+ import { AfterViewInit, DestroyRef, EventEmitter, Injector } from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
3
+ import { MatCheckboxChange } from '@angular/material/checkbox';
4
+ import EcabsElementBaseComponent from '../base/element-base';
5
+ import * as i0 from "@angular/core";
6
+ export declare class EcabsCheckboxV2Component extends EcabsElementBaseComponent implements ControlValueAccessor, AfterViewInit {
7
+ private readonly injector;
8
+ private readonly destroyRef;
9
+ label: string;
10
+ showLabel: boolean;
11
+ readonly checkboxChanged: EventEmitter<boolean>;
12
+ val: boolean;
13
+ get value(): boolean;
14
+ get hasError(): boolean;
15
+ set value(value: boolean);
16
+ constructor(injector: Injector, destroyRef: DestroyRef);
17
+ onChange: (value: boolean) => void;
18
+ onTouched: () => void;
19
+ ngAfterViewInit(): void;
20
+ toggle(event: MatCheckboxChange): void;
21
+ onRowClick(): void;
22
+ onKeyDown(event: KeyboardEvent): void;
23
+ onBlur(): void;
24
+ writeValue(value: boolean | null | undefined): void;
25
+ registerOnChange(fn: (value: boolean) => void): void;
26
+ registerOnTouched(fn: () => void): void;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<EcabsCheckboxV2Component, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<EcabsCheckboxV2Component, "ecabs-checkbox-v2", never, { "label": { "alias": "label"; "required": false; }; "showLabel": { "alias": "showLabel"; "required": false; }; }, { "checkboxChanged": "checkboxChanged"; }, never, never, false, never>;
29
+ }
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./ecabs-checkbox-v2.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "../base/element-wrapper/element-wrapper.module";
5
+ import * as i4 from "@angular/forms";
6
+ import * as i5 from "@angular/material/icon";
7
+ import * as i6 from "@angular/material/checkbox";
8
+ export declare class EcabsCheckboxV2Module {
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<EcabsCheckboxV2Module, never>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<EcabsCheckboxV2Module, [typeof i1.EcabsCheckboxV2Component], [typeof i2.CommonModule, typeof i3.ElementWrapperModule, typeof i4.FormsModule, typeof i5.MatIconModule, typeof i6.MatCheckboxModule], [typeof i1.EcabsCheckboxV2Component]>;
11
+ static ɵinj: i0.ɵɵInjectorDeclaration<EcabsCheckboxV2Module>;
12
+ }
@@ -39,7 +39,7 @@ export declare class EcabsDateTimePickerComponent extends EcabsElementBaseCompon
39
39
  preventCallSetterPickerValue: boolean;
40
40
  runTimeout: boolean;
41
41
  translationConfig: EcabsDatePickerTranslations;
42
- isEmptyFormat: string;
42
+ isEmptyFormat: any;
43
43
  get value(): Date;
44
44
  get pickerValue(): string;
45
45
  get hours(): string;
@@ -61,7 +61,9 @@ export declare class EcabsDateTimePickerComponent extends EcabsElementBaseCompon
61
61
  onApply(): void;
62
62
  refreshPickerValue(date: Date): void;
63
63
  private formatDateTime;
64
- private roundNumber;
64
+ private normalizeWithAutoPad;
65
+ private toDigits;
66
+ private formatTwoDigits;
65
67
  private setValues;
66
68
  static ɵfac: i0.ɵɵFactoryDeclaration<EcabsDateTimePickerComponent, never>;
67
69
  static ɵcmp: i0.ɵɵComponentDeclaration<EcabsDateTimePickerComponent, "ecabs-date-time-picker", never, { "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "touchUi": { "alias": "touchUi"; "required": false; }; "hideSeconds": { "alias": "hideSeconds"; "required": false; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; }; "applyLabel": { "alias": "applyLabel"; "required": false; }; "applyMinDateAuto": { "alias": "applyMinDateAuto"; "required": false; }; "preserveOriginalValue": { "alias": "preserveOriginalValue"; "required": false; }; }, {}, never, never, false, never>;
@@ -0,0 +1,44 @@
1
+ import { EventEmitter, ElementRef, AfterViewInit, Injector, DestroyRef } from '@angular/core';
2
+ import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
3
+ import EcabsElementBaseComponent from '../base/element-base';
4
+ import * as i0 from "@angular/core";
5
+ export interface RangeValue {
6
+ from: number | null;
7
+ to: number | null;
8
+ }
9
+ export declare class EcabsInputRangeComponent extends EcabsElementBaseComponent implements ControlValueAccessor, Validator, AfterViewInit {
10
+ private readonly injector;
11
+ private readonly destroyRef;
12
+ toInput: ElementRef;
13
+ digitsOnly: boolean;
14
+ allowDecimal: boolean;
15
+ allowHyphen: boolean;
16
+ min: number;
17
+ max: number;
18
+ step: number;
19
+ separatorText: string;
20
+ fromPlaceholder: string;
21
+ toPlaceholder: string;
22
+ rangeChange: EventEmitter<RangeValue>;
23
+ val: RangeValue;
24
+ isFocused: boolean;
25
+ constructor(injector: Injector, destroyRef: DestroyRef);
26
+ ngAfterViewInit(): void;
27
+ get value(): RangeValue;
28
+ set value(v: RangeValue);
29
+ setFocus(focus: boolean): void;
30
+ focusToInput(): void;
31
+ updateValue(key: 'from' | 'to', val: any): void;
32
+ getFromError(value?: RangeValue): ValidationErrors | null;
33
+ getToError(value?: RangeValue): ValidationErrors | null;
34
+ getIncompleteRangeError(value?: RangeValue): ValidationErrors | null;
35
+ get hasAnyError(): boolean;
36
+ validate(control: AbstractControl): ValidationErrors | null;
37
+ onChange: (value: RangeValue) => void;
38
+ onTouched: () => void;
39
+ writeValue(v: RangeValue): void;
40
+ registerOnChange(fn: (value: RangeValue) => void): void;
41
+ registerOnTouched(fn: () => void): void;
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<EcabsInputRangeComponent, never>;
43
+ static ɵcmp: i0.ɵɵComponentDeclaration<EcabsInputRangeComponent, "ecabs-input-range", never, { "digitsOnly": { "alias": "digitsOnly"; "required": false; }; "allowDecimal": { "alias": "allowDecimal"; "required": false; }; "allowHyphen": { "alias": "allowHyphen"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "separatorText": { "alias": "separatorText"; "required": false; }; "fromPlaceholder": { "alias": "fromPlaceholder"; "required": false; }; "toPlaceholder": { "alias": "toPlaceholder"; "required": false; }; }, { "rangeChange": "rangeChange"; }, never, never, false, never>;
44
+ }
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./ecabs-input-range.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "@angular/forms";
5
+ import * as i4 from "../base/element-wrapper/element-wrapper.module";
6
+ import * as i5 from "../base/directives/digits-only.directive.module";
7
+ import * as i6 from "../base/directives/min-max.directive.module";
8
+ import * as i7 from "../ecabs-buttons-v2/ecabs-buttons-v2.module";
9
+ export declare class EcabsInputRangeModule {
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<EcabsInputRangeModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<EcabsInputRangeModule, [typeof i1.EcabsInputRangeComponent], [typeof i2.CommonModule, typeof i3.FormsModule, typeof i4.ElementWrapperModule, typeof i5.EcabsDigitsOnlyDirectivesModule, typeof i6.EcabsMinMaxDirectiveModule, typeof i7.EcabsButtonsV2Module], [typeof i1.EcabsInputRangeComponent]>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<EcabsInputRangeModule>;
13
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class EcabsSegmentComponent {
3
+ title: string;
4
+ subtitle?: string;
5
+ showTitleDivider: boolean;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<EcabsSegmentComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<EcabsSegmentComponent, "ecabs-segment", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "showTitleDivider": { "alias": "showTitleDivider"; "required": false; }; }, {}, never, ["*"], true, never>;
8
+ }
@@ -1,17 +1,17 @@
1
- import { AfterViewInit, DestroyRef, EventEmitter, Injector, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
- import { ControlValueAccessor } from '@angular/forms';
1
+ import { AfterViewInit, DestroyRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
+ import { ControlValueAccessor, NgControl } from '@angular/forms';
3
3
  import { NgSelectComponent } from '@ng-select/ng-select';
4
4
  import { Subject } from 'rxjs';
5
5
  import EcabsElementBaseComponent from '../base/element-base';
6
- import { SelectValue } from '../base/models/element.models';
6
+ import { SelectOption } from '../base/models/select.models';
7
7
  import * as i0 from "@angular/core";
8
- export declare class EcabsSelectV2Component extends EcabsElementBaseComponent implements AfterViewInit, ControlValueAccessor, OnChanges, OnInit {
9
- private readonly injector;
8
+ export declare class EcabsSelectV2Component<T = unknown> extends EcabsElementBaseComponent implements AfterViewInit, ControlValueAccessor, OnChanges, OnInit {
9
+ readonly ngControl: NgControl;
10
10
  private readonly destroyRef;
11
11
  ngSelect: NgSelectComponent;
12
12
  appearance: 'underline' | 'outline';
13
13
  appendTo: string;
14
- items: SelectValue[];
14
+ items: SelectOption<T>[];
15
15
  bindLabel: string;
16
16
  bindValue: string;
17
17
  editableSearchTerm: boolean;
@@ -22,7 +22,7 @@ export declare class EcabsSelectV2Component extends EcabsElementBaseComponent im
22
22
  hideSelected: boolean;
23
23
  clearOnBackspace: boolean;
24
24
  clearSearchOnAdd: boolean;
25
- trackByFn: any;
25
+ trackByFn: ((item: SelectOption<T>) => T | undefined) | undefined;
26
26
  minLength: number;
27
27
  searchPlaceholder: string;
28
28
  typeahead: Subject<string>;
@@ -31,30 +31,29 @@ export declare class EcabsSelectV2Component extends EcabsElementBaseComponent im
31
31
  selectAllLabel: string;
32
32
  otherLabel: string;
33
33
  othersLabel: string;
34
- readonly selectionChange: EventEmitter<any>;
35
- touched: boolean;
36
- val: string | number;
34
+ readonly selectionChange: EventEmitter<SelectOption<T> | SelectOption<T>[]>;
35
+ val: T;
37
36
  isOpen: boolean;
38
37
  groupByKey: string;
39
- selectedMulti: any[];
40
- itemsList: SelectValue[];
38
+ selectedMulti: SelectOption<T>[];
39
+ itemsList: SelectOption<T>[];
41
40
  isTypeAhead: boolean;
42
- get value(): string | number;
43
- set value(val: string | number);
44
- constructor(injector: Injector, destroyRef: DestroyRef);
41
+ get value(): T;
42
+ set value(val: T);
43
+ constructor(ngControl: NgControl, destroyRef: DestroyRef);
45
44
  ngOnInit(): void;
46
45
  ngAfterViewInit(): void;
47
46
  ngOnChanges(changes: SimpleChanges): void;
48
- writeValue(value: number): void;
49
- registerOnChange(onChange: any): void;
50
- registerOnTouched(onTouched: any): void;
51
- markAsTouched(): void;
52
- onChange: any;
53
- onTouch: any;
47
+ writeValue(value: T): void;
48
+ registerOnChange(fn: (value: T) => void): void;
49
+ registerOnTouched(fn: () => void): void;
50
+ private onChange;
51
+ private onTouched;
54
52
  onBlur(): void;
55
- selectAllFn(items: SelectValue[]): void;
56
- changed($event: SelectValue[]): void;
53
+ selectAllFn(items: SelectOption<T>[]): SelectOption<T>[];
54
+ private refreshMultipleItems;
55
+ changed($event: SelectOption<T> | SelectOption<T>[]): void;
57
56
  protected initTrackBy(): void;
58
- static ɵfac: i0.ɵɵFactoryDeclaration<EcabsSelectV2Component, never>;
59
- static ɵcmp: i0.ɵɵComponentDeclaration<EcabsSelectV2Component, "ecabs-select-v2", never, { "appearance": { "alias": "appearance"; "required": false; }; "appendTo": { "alias": "appendTo"; "required": false; }; "items": { "alias": "items"; "required": false; }; "bindLabel": { "alias": "bindLabel"; "required": false; }; "bindValue": { "alias": "bindValue"; "required": false; }; "editableSearchTerm": { "alias": "editableSearchTerm"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "notFoundText": { "alias": "notFoundText"; "required": false; }; "hideSelected": { "alias": "hideSelected"; "required": false; }; "clearOnBackspace": { "alias": "clearOnBackspace"; "required": false; }; "clearSearchOnAdd": { "alias": "clearSearchOnAdd"; "required": false; }; "trackByFn": { "alias": "trackByFn"; "required": false; }; "minLength": { "alias": "minLength"; "required": false; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "typeahead": { "alias": "typeahead"; "required": false; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; }; "clearAllText": { "alias": "clearAllText"; "required": false; }; "selectAllLabel": { "alias": "selectAllLabel"; "required": false; }; "otherLabel": { "alias": "otherLabel"; "required": false; }; "othersLabel": { "alias": "othersLabel"; "required": false; }; }, { "selectionChange": "selectionChange"; }, never, never, false, never>;
57
+ static ɵfac: i0.ɵɵFactoryDeclaration<EcabsSelectV2Component<any>, [{ optional: true; self: true; }, null]>;
58
+ static ɵcmp: i0.ɵɵComponentDeclaration<EcabsSelectV2Component<any>, "ecabs-select-v2", never, { "appearance": { "alias": "appearance"; "required": false; }; "appendTo": { "alias": "appendTo"; "required": false; }; "items": { "alias": "items"; "required": false; }; "bindLabel": { "alias": "bindLabel"; "required": false; }; "bindValue": { "alias": "bindValue"; "required": false; }; "editableSearchTerm": { "alias": "editableSearchTerm"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "notFoundText": { "alias": "notFoundText"; "required": false; }; "hideSelected": { "alias": "hideSelected"; "required": false; }; "clearOnBackspace": { "alias": "clearOnBackspace"; "required": false; }; "clearSearchOnAdd": { "alias": "clearSearchOnAdd"; "required": false; }; "trackByFn": { "alias": "trackByFn"; "required": false; }; "minLength": { "alias": "minLength"; "required": false; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "typeahead": { "alias": "typeahead"; "required": false; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; }; "clearAllText": { "alias": "clearAllText"; "required": false; }; "selectAllLabel": { "alias": "selectAllLabel"; "required": false; }; "otherLabel": { "alias": "otherLabel"; "required": false; }; "othersLabel": { "alias": "othersLabel"; "required": false; }; }, { "selectionChange": "selectionChange"; }, never, never, false, never>;
60
59
  }
@@ -0,0 +1,5 @@
1
+ export interface FormTimePickerConfigV2 {
2
+ dayStart: string;
3
+ dayEnd: string;
4
+ iconClass: string;
5
+ }
@@ -0,0 +1,51 @@
1
+ import { AfterViewInit, DestroyRef, Injector } from '@angular/core';
2
+ import { ControlValueAccessor, UntypedFormControl } from '@angular/forms';
3
+ import EcabsElementBaseComponent from '../base/element-base';
4
+ import { ListPlacement } from '../base/models/timepicker.models';
5
+ import * as i0 from "@angular/core";
6
+ export declare class EcabsTimeRangeInputV2Component extends EcabsElementBaseComponent implements ControlValueAccessor, AfterViewInit {
7
+ private readonly injector;
8
+ private readonly destroyRef;
9
+ showCloseIcon: boolean;
10
+ listPlacement: ListPlacement;
11
+ appendTo: string;
12
+ min: string;
13
+ max: string;
14
+ showDayStart: boolean;
15
+ showDayEnd: boolean;
16
+ addSecond: boolean;
17
+ dayStartLabel: string;
18
+ dayEndLabel: string;
19
+ separatorLabel: string;
20
+ startTimePlaceholder: string;
21
+ endTimePlaceholder: string;
22
+ val: {
23
+ timeFrom: string;
24
+ timeTo: string;
25
+ };
26
+ _timeFrom: string;
27
+ _timeTo: string;
28
+ get value(): {
29
+ timeFrom: string;
30
+ timeTo: string;
31
+ };
32
+ get timeFrom(): string;
33
+ get timeTo(): string;
34
+ set value(val: {
35
+ timeFrom: string;
36
+ timeTo: string;
37
+ });
38
+ set timeFrom(val: string);
39
+ set timeTo(val: string);
40
+ constructor(injector: Injector, destroyRef: DestroyRef);
41
+ ngAfterViewInit(): void;
42
+ onChange: any;
43
+ onTouch: any;
44
+ writeValue(value: any): void;
45
+ registerOnChange(fn: any): void;
46
+ registerOnTouched(fn: any): void;
47
+ onApply(): void;
48
+ timeRangeValidator(control: UntypedFormControl): void;
49
+ static ɵfac: i0.ɵɵFactoryDeclaration<EcabsTimeRangeInputV2Component, never>;
50
+ static ɵcmp: i0.ɵɵComponentDeclaration<EcabsTimeRangeInputV2Component, "ecabs-time-range-input-v2", never, { "showCloseIcon": { "alias": "showCloseIcon"; "required": false; }; "listPlacement": { "alias": "listPlacement"; "required": false; }; "appendTo": { "alias": "appendTo"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "showDayStart": { "alias": "showDayStart"; "required": false; }; "showDayEnd": { "alias": "showDayEnd"; "required": false; }; "addSecond": { "alias": "addSecond"; "required": false; }; "dayStartLabel": { "alias": "dayStartLabel"; "required": false; }; "dayEndLabel": { "alias": "dayEndLabel"; "required": false; }; "separatorLabel": { "alias": "separatorLabel"; "required": false; }; "startTimePlaceholder": { "alias": "startTimePlaceholder"; "required": false; }; "endTimePlaceholder": { "alias": "endTimePlaceholder"; "required": false; }; }, {}, never, never, false, never>;
51
+ }
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./ecabs-time-range-input-v2.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "../base/element-wrapper/element-wrapper.module";
5
+ import * as i4 from "../ecabs-timepicker/ecabs-timepicker.module";
6
+ import * as i5 from "@angular/forms";
7
+ export declare class EcabsTimeRangeInputV2Module {
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<EcabsTimeRangeInputV2Module, never>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<EcabsTimeRangeInputV2Module, [typeof i1.EcabsTimeRangeInputV2Component], [typeof i2.CommonModule, typeof i3.ElementWrapperModule, typeof i4.EcabsTimepickerModule, typeof i5.FormsModule], [typeof i1.EcabsTimeRangeInputV2Component]>;
10
+ static ɵinj: i0.ɵɵInjectorDeclaration<EcabsTimeRangeInputV2Module>;
11
+ }
@@ -0,0 +1,12 @@
1
+ import { Subject } from 'rxjs';
2
+ import { FormTimePickerConfigV2 } from './config.model';
3
+ import * as i0 from "@angular/core";
4
+ export declare class FormTimePickerServiceV2 {
5
+ config: FormTimePickerConfigV2;
6
+ closeSub: Subject<boolean>;
7
+ setConfig(c: FormTimePickerConfigV2): void;
8
+ getConfig(): FormTimePickerConfigV2;
9
+ close(): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<FormTimePickerServiceV2, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<FormTimePickerServiceV2>;
12
+ }
@@ -23,7 +23,6 @@ export declare class EcabsTimepickerComponent extends EcabsElementBaseComponent
23
23
  dayEndLabel: string;
24
24
  position: ListPosition;
25
25
  _data: string;
26
- inputData: string;
27
26
  _timePicker: {
28
27
  querySelector: (arg0: string) => HTMLElement;
29
28
  };
@@ -40,13 +39,9 @@ export declare class EcabsTimepickerComponent extends EcabsElementBaseComponent
40
39
  clearInput(): void;
41
40
  calcListPosition(): void;
42
41
  inputKeyDown(event: any): boolean;
43
- updateInputData(event: string): void;
44
42
  checkSpecialKeys(key: TimepickerSpecialKey): TimepickerSpecialKey;
45
43
  checkUnUsedKeys(key: string): boolean;
46
44
  checkOutOfRangeNumber(time: any): boolean;
47
- makeHourFull(): void;
48
- makeMinuteFull(): void;
49
- fixTimeToNearest(): void;
50
45
  onChangeFn: (_: any) => void;
51
46
  onTouchedFn: () => void;
52
47
  registerOnChange(fn: any): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ecabs-components",
3
- "version": "1.1.57",
3
+ "version": "1.1.63",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": "^16.2.12",
6
6
  "@angular/common": "^16.2.12",
@@ -8,6 +8,8 @@
8
8
  "@angular/cdk": "^16.2.12",
9
9
  "@angular/material": "^16.2.12",
10
10
  "@angular-slider/ngx-slider": "^18.0.0",
11
+ "@maskito/core": "^5.0.0",
12
+ "@maskito/kit": "^5.0.0",
11
13
  "@ng-select/ng-select": "^11.2.0",
12
14
  "autoprefixer": "^10.4.17",
13
15
  "date-fns": "^2.29.3",
@@ -18,8 +20,7 @@
18
20
  "ngx-phosphor-icons": "^1.0.7",
19
21
  "postcss": "^8.4.35",
20
22
  "rxjs": "~7.5.0",
21
- "tailwindcss": "^3.4.13",
22
- "vanilla-text-mask": "^5.1.1"
23
+ "tailwindcss": "^3.4.13"
23
24
  },
24
25
  "dependencies": {
25
26
  "tslib": "^2.3.0"
package/public-api.d.ts CHANGED
@@ -9,6 +9,8 @@ export * from './lib/ecabs-button-toggle/ecabs-button-toggle.component';
9
9
  export * from './lib/ecabs-button-toggle/ecabs-button-toggle.module';
10
10
  export * from './lib/ecabs-input/ecabs-input.component';
11
11
  export * from './lib/ecabs-input/ecabs-input.module';
12
+ export * from './lib/ecabs-input-range/ecabs-input-range.component';
13
+ export * from './lib/ecabs-input-range/ecabs-input-range.module';
12
14
  export * from './lib/ecabs-select/ecabs-select.module';
13
15
  export * from './lib/ecabs-select/ecabs-select.component';
14
16
  export * from './lib/ecabs-select-v2/ecabs-select-v2.module';
@@ -27,6 +29,8 @@ export * from './lib/base/models/select.models';
27
29
  export * from './lib/base/models/waypoint.models';
28
30
  export * from './lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component';
29
31
  export * from './lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module';
32
+ export * from './lib/ecabs-checkbox-v2/ecabs-checkbox-v2.component';
33
+ export * from './lib/ecabs-checkbox-v2/ecabs-checkbox-v2.module';
30
34
  export * from './lib/ecabs-date-picker/ecabs-date-picker.component';
31
35
  export * from './lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component';
32
36
  export * from './lib/ecabs-date-time-picker/ecabs-date-time-picker.component';
@@ -138,9 +142,13 @@ export * from './lib/base/adapters/date.adapter';
138
142
  export * from './lib/base/consts/waypoint.consts';
139
143
  export * from './lib/ecabs-dialog-confirm-deletion/ecabs-dialog-confirm-deletion.module';
140
144
  export * from './lib/ecabs-dialog-confirm-deletion/ecabs-dialog-confirm-deletion.component';
145
+ export * from './lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.service';
146
+ export * from './lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.module';
147
+ export * from './lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.component';
141
148
  export * from './lib/ecabs-chip-group/ecabs-chip-group.module';
142
149
  export * from './lib/ecabs-chip-group/ecabs-chip-group.component';
143
150
  export * from './lib/ecabs-chip-autocomplete/ecabs-chip-autocomplete.component';
144
151
  export * from './lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.module';
145
152
  export * from './lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.component';
146
153
  export * from './lib/ecabs-date-range-picker-v2/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header-v2.component';
154
+ export * from './lib/ecabs-segment/ecabs-segment.component';
@@ -2,16 +2,28 @@
2
2
  &.mdc-card {
3
3
  @extend .card;
4
4
 
5
+ .mat-mdc-card-header {
6
+ @extend .card__header;
7
+
8
+ .mat-divider {
9
+ margin-top: 0;
10
+ }
11
+ }
12
+
5
13
  .mat-mdc-card-subtitle {
6
- @extend .card--subtitle;
14
+ @extend .card__subtitle;
7
15
  }
8
16
 
9
17
  .mat-mdc-card-title {
10
- @extend .card--title;
18
+ @extend .card__title;
11
19
  }
12
20
 
13
21
  .mat-mdc-card-content {
14
22
  @extend .card__content;
15
23
  }
24
+
25
+ .mat-divider:not(.card__title--divider) {
26
+ margin-top: calc-rem(24px);
27
+ }
16
28
  }
17
29
  }
@@ -158,7 +158,7 @@ ecabs-chip-group {
158
158
  .mat-mdc-chip {
159
159
  --mdc-chip-elevated-container-color: var(--color-white);
160
160
  --mdc-chip-label-text-color: var(--color-gray-600);
161
- --mdc-chip-label-text-size: #{$font-size-xs};
161
+ --mdc-chip-label-text-size: #{$font-size-sm};
162
162
  --mdc-chip-label-text-weight: #{$font-weight-medium};
163
163
  --mdc-chip-elevated-selected-container-color: var(--color-brand-dark);
164
164
  --mdc-chip-selected-label-text-color: var(--color-white);
@@ -190,6 +190,15 @@ ecabs-chip-group {
190
190
 
191
191
  .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary {
192
192
  padding: 0;
193
+
194
+ &:after {
195
+ @extend %pseudos;
196
+
197
+ top: 0;
198
+ left: 0;
199
+ bottom: 0;
200
+ right: 0;
201
+ }
193
202
  }
194
203
 
195
204
  .mat-mdc-chip .mdc-chip__ripple,
@@ -1,3 +1,5 @@
1
- .mat-divider {
2
- @extend .divider;
1
+ mat-divider {
2
+ &.mat-divider {
3
+ @extend .divider;
4
+ }
3
5
  }
@@ -70,6 +70,6 @@ mat-paginator {
70
70
  }
71
71
 
72
72
  .mat-mdc-select-value {
73
- @include fontSize($font-size-sm);
73
+ @include fontSize($font-size-md);
74
74
  }
75
75
  }
@@ -45,4 +45,10 @@
45
45
  // }
46
46
  // }
47
47
  // }
48
- }
48
+ }
49
+
50
+ .ecabs-button-toggle {
51
+ &.mat-button-toggle-group {
52
+ border-radius: calc-rem($border-radius-large);
53
+ }
54
+ }
@@ -1,23 +1,46 @@
1
1
  .card {
2
- box-shadow: $box-shadow-default;
2
+ border-radius: $border-radius-xl;
3
+ border: 1px solid var(--color-gray-200);
4
+ box-shadow: $box-shadow-medium;
5
+ padding: calc-rem(24px 32px);
3
6
 
4
- @include m(subtitle) {
5
- @include fontSize($font-size-sm);
7
+ @include m(inset) {
8
+ @extend .card;
6
9
 
7
- color: var(--color-gray-500);
10
+ border-radius: $border-radius-xl;
11
+ border-color: var(--color-gray-100);
12
+ box-shadow: none;
13
+ background-color: var(--color-gray-50);
14
+ padding: calc-rem(16px);
15
+ }
16
+
17
+ @include e(header) {
18
+ padding: calc-rem(0 0 12px 0);
8
19
  }
9
20
 
10
- @include m(title) {
11
- @include fontSize($font-heading-xs);
21
+ @include e(title) {
22
+ @include fontSize($font-size-base);
12
23
 
24
+ line-height: 1.5;
25
+ padding-bottom: calc-rem(4px);
13
26
  margin: 0;
14
- padding-top: 2rem;
15
- padding-left: 1.5rem;
16
27
  color: var(--color-brand-dark);
17
28
  font-weight: $font-weight-semibold;
29
+
30
+
31
+ @include m(divider) {
32
+ margin-top: 0;
33
+ }
34
+ }
35
+
36
+ @include e(subtitle) {
37
+ @include fontSize($font-size-sm);
38
+
39
+ color: var(--color-gray-500);
40
+ line-height: 1.5;
18
41
  }
19
42
 
20
43
  @include e(content) {
21
- padding: calc-rem(32 24);
44
+ padding: calc-rem(20px 0 0 0);
22
45
  }
23
46
  }
@@ -1,3 +1,4 @@
1
1
  .divider {
2
- border-top-color: var(--color-gray-300);
2
+ border-top-color: var(--color-gray-100);
3
+ color: var(--color-gray-100);
3
4
  }
@@ -26,7 +26,7 @@ form {
26
26
 
27
27
  // #Label Note
28
28
  @include e(label-note) {
29
- @include fontSize($font-size-sm);
29
+ @include fontSize($font-size-md);
30
30
 
31
31
  display: inline-block;
32
32
  margin-bottom: 0.25rem;