igniteui-angular 22.0.0-rc.1 → 22.0.0-rc.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.
Files changed (97) hide show
  1. package/fesm2022/igniteui-angular-accordion.mjs +1 -1
  2. package/fesm2022/igniteui-angular-accordion.mjs.map +1 -1
  3. package/fesm2022/igniteui-angular-action-strip.mjs +1 -1
  4. package/fesm2022/igniteui-angular-action-strip.mjs.map +1 -1
  5. package/fesm2022/igniteui-angular-button-group.mjs +1 -1
  6. package/fesm2022/igniteui-angular-button-group.mjs.map +1 -1
  7. package/fesm2022/igniteui-angular-calendar.mjs +1 -1
  8. package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
  9. package/fesm2022/igniteui-angular-card.mjs +6 -6
  10. package/fesm2022/igniteui-angular-card.mjs.map +1 -1
  11. package/fesm2022/igniteui-angular-carousel.mjs +6 -6
  12. package/fesm2022/igniteui-angular-carousel.mjs.map +1 -1
  13. package/fesm2022/igniteui-angular-chips.mjs +34 -34
  14. package/fesm2022/igniteui-angular-chips.mjs.map +1 -1
  15. package/fesm2022/igniteui-angular-core.mjs +6 -6
  16. package/fesm2022/igniteui-angular-core.mjs.map +1 -1
  17. package/fesm2022/igniteui-angular-date-picker.mjs +2 -2
  18. package/fesm2022/igniteui-angular-date-picker.mjs.map +1 -1
  19. package/fesm2022/igniteui-angular-directives.mjs +12 -12
  20. package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
  21. package/fesm2022/igniteui-angular-drop-down.mjs +5 -5
  22. package/fesm2022/igniteui-angular-drop-down.mjs.map +1 -1
  23. package/fesm2022/igniteui-angular-grids-core.mjs +26 -23
  24. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  25. package/fesm2022/igniteui-angular-grids-grid.mjs +51 -51
  26. package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
  27. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +7 -7
  28. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs.map +1 -1
  29. package/fesm2022/igniteui-angular-grids-tree-grid.mjs +5 -5
  30. package/fesm2022/igniteui-angular-grids-tree-grid.mjs.map +1 -1
  31. package/fesm2022/igniteui-angular-icon.mjs +4 -4
  32. package/fesm2022/igniteui-angular-icon.mjs.map +1 -1
  33. package/fesm2022/igniteui-angular-input-group.mjs +18 -18
  34. package/fesm2022/igniteui-angular-input-group.mjs.map +1 -1
  35. package/fesm2022/igniteui-angular-list.mjs +5 -5
  36. package/fesm2022/igniteui-angular-list.mjs.map +1 -1
  37. package/fesm2022/igniteui-angular-navbar.mjs +5 -5
  38. package/fesm2022/igniteui-angular-navbar.mjs.map +1 -1
  39. package/fesm2022/igniteui-angular-paginator.mjs +2 -2
  40. package/fesm2022/igniteui-angular-paginator.mjs.map +1 -1
  41. package/fesm2022/igniteui-angular-progressbar.mjs +7 -7
  42. package/fesm2022/igniteui-angular-progressbar.mjs.map +1 -1
  43. package/fesm2022/igniteui-angular-query-builder.mjs +2 -2
  44. package/fesm2022/igniteui-angular-query-builder.mjs.map +1 -1
  45. package/fesm2022/igniteui-angular-radio.mjs +5 -5
  46. package/fesm2022/igniteui-angular-radio.mjs.map +1 -1
  47. package/fesm2022/igniteui-angular-select.mjs +217 -209
  48. package/fesm2022/igniteui-angular-select.mjs.map +1 -1
  49. package/fesm2022/igniteui-angular-slider.mjs +17 -17
  50. package/fesm2022/igniteui-angular-slider.mjs.map +1 -1
  51. package/fesm2022/igniteui-angular-snackbar.mjs +1 -1
  52. package/fesm2022/igniteui-angular-snackbar.mjs.map +1 -1
  53. package/fesm2022/igniteui-angular-splitter.mjs +2 -2
  54. package/fesm2022/igniteui-angular-splitter.mjs.map +1 -1
  55. package/fesm2022/igniteui-angular-stepper.mjs +2 -2
  56. package/fesm2022/igniteui-angular-stepper.mjs.map +1 -1
  57. package/fesm2022/igniteui-angular-time-picker.mjs +1 -1
  58. package/fesm2022/igniteui-angular-time-picker.mjs.map +1 -1
  59. package/fesm2022/igniteui-angular-tree.mjs +1 -1
  60. package/fesm2022/igniteui-angular-tree.mjs.map +1 -1
  61. package/input-group/README.md +1 -1
  62. package/migrations/migration-collection.json +5 -0
  63. package/migrations/update-22_0_0/index.d.ts +3 -0
  64. package/migrations/update-22_0_0/index.js +86 -0
  65. package/migrations/update-22_0_0/index.spec.d.ts +1 -0
  66. package/migrations/update-22_0_0/index.spec.js +116 -0
  67. package/package.json +1 -1
  68. package/types/igniteui-angular-accordion.d.ts +3 -3
  69. package/types/igniteui-angular-action-strip.d.ts +1 -1
  70. package/types/igniteui-angular-button-group.d.ts +1 -1
  71. package/types/igniteui-angular-calendar.d.ts +1 -1
  72. package/types/igniteui-angular-card.d.ts +6 -6
  73. package/types/igniteui-angular-carousel.d.ts +6 -6
  74. package/types/igniteui-angular-chips.d.ts +38 -38
  75. package/types/igniteui-angular-core.d.ts +9 -9
  76. package/types/igniteui-angular-date-picker.d.ts +4 -4
  77. package/types/igniteui-angular-directives.d.ts +15 -15
  78. package/types/igniteui-angular-drop-down.d.ts +6 -6
  79. package/types/igniteui-angular-grids-core.d.ts +30 -29
  80. package/types/igniteui-angular-grids-grid.d.ts +51 -51
  81. package/types/igniteui-angular-grids-hierarchical-grid.d.ts +7 -7
  82. package/types/igniteui-angular-grids-tree-grid.d.ts +7 -7
  83. package/types/igniteui-angular-icon.d.ts +4 -4
  84. package/types/igniteui-angular-input-group.d.ts +17 -17
  85. package/types/igniteui-angular-list.d.ts +7 -7
  86. package/types/igniteui-angular-navbar.d.ts +7 -7
  87. package/types/igniteui-angular-paginator.d.ts +2 -2
  88. package/types/igniteui-angular-progressbar.d.ts +7 -7
  89. package/types/igniteui-angular-query-builder.d.ts +3 -3
  90. package/types/igniteui-angular-radio.d.ts +5 -5
  91. package/types/igniteui-angular-select.d.ts +91 -7
  92. package/types/igniteui-angular-slider.d.ts +17 -17
  93. package/types/igniteui-angular-snackbar.d.ts +1 -1
  94. package/types/igniteui-angular-splitter.d.ts +3 -3
  95. package/types/igniteui-angular-stepper.d.ts +2 -2
  96. package/types/igniteui-angular-time-picker.d.ts +1 -1
  97. package/types/igniteui-angular-tree.d.ts +2 -2
@@ -717,7 +717,7 @@ class IgxInputGroupComponent {
717
717
  }
718
718
  /**
719
719
  * Sets how the input will be styled.
720
- * Allowed values of type IgxInputGroupType.
720
+ * Allowed values of type input group type.
721
721
  * ```html
722
722
  * <igx-input-group [type]="'search'">
723
723
  * ```
@@ -726,8 +726,8 @@ class IgxInputGroupComponent {
726
726
  this._type = value;
727
727
  }
728
728
  /**
729
- * Returns the type of the `IgxInputGroupComponent`. How the input is styled.
730
- * The default is `line`.
729
+ * Returns the type of the input group. How the input is styled.
730
+ * The default is `box`.
731
731
  * ```typescript
732
732
  * @ViewChild("MyInputGroup")
733
733
  * public inputGroup: IgxInputGroupComponent;
@@ -737,11 +737,11 @@ class IgxInputGroupComponent {
737
737
  * ```
738
738
  */
739
739
  get type() {
740
- return this._type || this._inputGroupType || 'line';
740
+ return this._type || this._inputGroupType || 'box';
741
741
  }
742
742
  /**
743
743
  * Sets the theme of the input.
744
- * Allowed values of type IgxInputGroupTheme.
744
+ * Allowed values of type input group theme.
745
745
  * ```typescript
746
746
  * @ViewChild("MyInputGroup")
747
747
  * public inputGroup: IgxInputGroupComponent;
@@ -754,7 +754,7 @@ class IgxInputGroupComponent {
754
754
  }
755
755
  /**
756
756
  * Returns the theme of the input.
757
- * The returned value is of type IgxInputGroupType.
757
+ * The returned value is of type input group type.
758
758
  * ```typescript
759
759
  * @ViewChild("MyInputGroup")
760
760
  * public inputGroup: IgxInputGroupComponent;
@@ -773,7 +773,7 @@ class IgxInputGroupComponent {
773
773
  this.cdr = inject(ChangeDetectorRef);
774
774
  this.themeToken = inject(THEME_TOKEN);
775
775
  /**
776
- * Property that enables/disables the auto-generated class of the `IgxInputGroupComponent`.
776
+ * Property that enables/disables the auto-generated class of the input group.
777
777
  * By default applied the class is applied.
778
778
  * ```typescript
779
779
  * @ViewChild("MyInputGroup")
@@ -792,8 +792,8 @@ class IgxInputGroupComponent {
792
792
  this.isFocused = false;
793
793
  /**
794
794
  * @hidden @internal
795
- * When truthy, disables the `IgxInputGroupComponent`.
796
- * Controlled by the underlying `IgxInputDirective`.
795
+ * When truthy, disables the input group.
796
+ * Controlled by the underlying input.
797
797
  * ```html
798
798
  * <igx-input-group [disabled]="true"></igx-input-group>
799
799
  * ```
@@ -848,7 +848,7 @@ class IgxInputGroupComponent {
848
848
  event.stopPropagation();
849
849
  }
850
850
  /**
851
- * Returns whether the `IgxInputGroupComponent` has hints.
851
+ * Returns whether the input group has hints.
852
852
  * ```typescript
853
853
  * @ViewChild("MyInputGroup")
854
854
  * public inputGroup: IgxInputGroupComponent;
@@ -877,7 +877,7 @@ class IgxInputGroupComponent {
877
877
  this._suffixes = items;
878
878
  }
879
879
  /**
880
- * Returns whether the `IgxInputGroupComponent` has border.
880
+ * Returns whether the input group has border.
881
881
  * ```typescript
882
882
  * @ViewChild("MyInputGroup")
883
883
  * public inputGroup: IgxInputGroupComponent;
@@ -891,7 +891,7 @@ class IgxInputGroupComponent {
891
891
  this._theme === 'material');
892
892
  }
893
893
  /**
894
- * Returns whether the `IgxInputGroupComponent` type is line.
894
+ * Returns whether the input group type is line.
895
895
  * ```typescript
896
896
  * @ViewChild("MyInputGroup1")
897
897
  * public inputGroup: IgxInputGroupComponent;
@@ -904,7 +904,7 @@ class IgxInputGroupComponent {
904
904
  return this.type === 'line' && this._theme === 'material';
905
905
  }
906
906
  /**
907
- * Returns whether the `IgxInputGroupComponent` type is box.
907
+ * Returns whether the input group type is box.
908
908
  * ```typescript
909
909
  * @ViewChild("MyInputGroup1")
910
910
  * public inputGroup: IgxInputGroupComponent;
@@ -945,7 +945,7 @@ class IgxInputGroupComponent {
945
945
  return this.input.fileNames || this.resourceStrings.igx_input_file_placeholder;
946
946
  }
947
947
  /**
948
- * Returns whether the `IgxInputGroupComponent` type is border.
948
+ * Returns whether the input group type is border.
949
949
  * ```typescript
950
950
  * @ViewChild("MyInputGroup1")
951
951
  * public inputGroup: IgxInputGroupComponent;
@@ -958,7 +958,7 @@ class IgxInputGroupComponent {
958
958
  return this.type === 'border' && this._theme === 'material';
959
959
  }
960
960
  /**
961
- * Returns true if the `IgxInputGroupComponent` theme is Fluent.
961
+ * Returns true if the input group theme is Fluent.
962
962
  * ```typescript
963
963
  * @ViewChild("MyInputGroup1")
964
964
  * public inputGroup: IgxInputGroupComponent;
@@ -971,7 +971,7 @@ class IgxInputGroupComponent {
971
971
  return this._theme === 'fluent';
972
972
  }
973
973
  /**
974
- * Returns true if the `IgxInputGroupComponent` theme is Bootstrap.
974
+ * Returns true if the input group theme is Bootstrap.
975
975
  * ```typescript
976
976
  * @ViewChild("MyInputGroup1")
977
977
  * public inputGroup: IgxInputGroupComponent;
@@ -984,7 +984,7 @@ class IgxInputGroupComponent {
984
984
  return this._theme === 'bootstrap';
985
985
  }
986
986
  /**
987
- * Returns true if the `IgxInputGroupComponent` theme is Indigo.
987
+ * Returns true if the input group theme is Indigo.
988
988
  * ```typescript
989
989
  * @ViewChild("MyInputGroup1")
990
990
  * public inputGroup: IgxInputGroupComponent;
@@ -997,7 +997,7 @@ class IgxInputGroupComponent {
997
997
  return this._theme === 'indigo';
998
998
  }
999
999
  /**
1000
- * Returns whether the `IgxInputGroupComponent` type is search.
1000
+ * Returns whether the input group type is search.
1001
1001
  * ```typescript
1002
1002
  * @ViewChild("MyInputGroup1")
1003
1003
  * public inputGroup: IgxInputGroupComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"igniteui-angular-input-group.mjs","sources":["../../../projects/igniteui-angular/input-group/src/input-group/directives-hint/hint.directive.ts","../../../projects/igniteui-angular/input-group/src/input-group/input-group.common.ts","../../../projects/igniteui-angular/input-group/src/input-group/directives-input/input.directive.ts","../../../projects/igniteui-angular/input-group/src/input-group/directives-label/label.directive.ts","../../../projects/igniteui-angular/input-group/src/input-group/directives-prefix/prefix.directive.ts","../../../projects/igniteui-angular/input-group/src/input-group/directives-suffix/suffix.directive.ts","../../../projects/igniteui-angular/input-group/src/input-group/inputGroupType.ts","../../../projects/igniteui-angular/input-group/src/input-group/input-group.component.ts","../../../projects/igniteui-angular/input-group/src/input-group/input-group.component.html","../../../projects/igniteui-angular/input-group/src/input-group/directives-input/read-only-input.directive.ts","../../../projects/igniteui-angular/input-group/src/input-group/public_api.ts","../../../projects/igniteui-angular/input-group/src/input-group/input-group.module.ts","../../../projects/igniteui-angular/input-group/src/igniteui-angular-input-group.ts"],"sourcesContent":["import { Directive, HostBinding, Input, OnInit } from '@angular/core';\n\nenum IgxHintPosition {\n START,\n END\n}\n\n@Directive({\n selector: '[igxHint],igx-hint',\n standalone: true\n})\nexport class IgxHintDirective implements OnInit {\n /**\n * Sets/gets whether the hint position is at the start.\n * Default value is `false`.\n * ```typescript\n * @ViewChild('hint', {read: IgxHintDirective})\n * public igxHint: IgxHintDirective;\n * this.igxHint.isPositionStart = true;\n * ```\n * ```typescript\n * let isHintPositionStart = this.igxHint.isPositionStart;\n * ```\n *\n * @memberof IgxHintDirective\n */\n @HostBinding('class.igx-input-group__hint-item--start')\n public isPositionStart = false;\n /**\n * Sets/gets whether the hint position is at the end.\n * Default value is `false`.\n * ```typescript\n * @ViewChild('hint', {read: IgxHintDirective})\n * public igxHint: IgxHintDirective;\n * this.igxHint.isPositionEnd = true;\n * ```\n * ```typescript\n * let isHintPositionEnd = this.igxHint.isPositionEnd;\n * ```\n *\n * @memberof IgxHintDirective\n */\n @HostBinding('class.igx-input-group__hint-item--end')\n public isPositionEnd = false;\n\n private _position: IgxHintPosition = IgxHintPosition.START;\n /**\n * Sets the position of the hint.\n * ```html\n * <igx-input-group>\n * <input igxInput type=\"text\"/>\n * <igx-hint #hint [position]=\"'start'\">IgxHint displayed at the start</igx-hint>\n * </igx-input-group>\n * ```\n *\n * @memberof IgxHintDirective\n */\n @Input()\n public set position(value: string) {\n const position: IgxHintPosition = (IgxHintPosition as any)[value.toUpperCase()];\n if (position !== undefined) {\n this._position = position;\n this._applyPosition(this._position);\n }\n }\n /**\n * Gets the position of the hint.\n * ```typescript\n * @ViewChild('hint', {read: IgxHintDirective})\n * public igxHint: IgxHintDirective;\n * let hintPosition = this.igxHint.position;\n * ```\n *\n * @memberof IgxHintDirective\n */\n public get position() {\n return this._position.toString();\n }\n /**\n * @hidden\n */\n public ngOnInit() {\n this._applyPosition(this._position);\n }\n\n private _applyPosition(position: IgxHintPosition) {\n this.isPositionStart = this.isPositionEnd = false;\n switch (position) {\n case IgxHintPosition.START:\n this.isPositionStart = true;\n break;\n case IgxHintPosition.END:\n this.isPositionEnd = true;\n break;\n default: break;\n }\n }\n}\n","/** @hidden */\nexport abstract class IgxInputGroupBase {\n public disabled: boolean;\n public isFocused: boolean;\n public isRequired: boolean;\n public hasPlaceholder: boolean;\n}\n","import { AfterViewInit, ChangeDetectorRef, Directive, ElementRef, HostBinding, HostListener, Input, OnDestroy, Renderer2, booleanAttribute, inject } from '@angular/core';\nimport {\n AbstractControl,\n NgControl,\n NgModel,\n TouchedChangeEvent\n} from '@angular/forms';\nimport { filter, Subscription } from 'rxjs';\nimport { IgxInputGroupBase } from '../input-group.common';\n\nconst nativeValidationAttributes = [\n 'required',\n 'pattern',\n 'minlength',\n 'maxlength',\n 'min',\n 'max',\n 'step',\n];\n\nexport enum IgxInputState {\n INITIAL,\n VALID,\n INVALID,\n}\n\n/**\n * The `igxInput` directive creates single- or multiline text elements, covering common scenarios when dealing with form inputs.\n *\n * @igxModule IgxInputGroupModule\n *\n * @igxParent Data Entry & Display\n *\n * @igxTheme igx-input-group-theme\n *\n * @igxKeywords input, input group, form, field, validation\n *\n * @igxGroup presentation\n *\n * @example\n * ```html\n * <input-group>\n * <label for=\"address\">Address</label>\n * <input igxInput name=\"address\" type=\"text\" [(ngModel)]=\"customer.address\">\n * </input-group>\n * ```\n */\n@Directive({\n selector: '[igxInput]',\n exportAs: 'igxInput',\n standalone: true\n})\nexport class IgxInputDirective implements AfterViewInit, OnDestroy {\n public inputGroup = inject(IgxInputGroupBase);\n protected ngModel = inject<NgModel>(NgModel, { optional: true, self: true });\n protected formControl = inject<NgControl>(NgControl, { optional: true, self: true });\n protected element = inject<ElementRef<HTMLInputElement>>(ElementRef);\n protected cdr = inject(ChangeDetectorRef);\n protected renderer = inject(Renderer2);\n\n /**\n * Sets/gets whether the `\"igx-input-group__input\"` class is added to the host element.\n * Default value is `false`.\n *\n * @example\n * ```typescript\n * this.igxInput.isInput = true;\n * ```\n *\n * @example\n * ```typescript\n * let isCLassAdded = this.igxInput.isInput;\n * ```\n */\n @HostBinding('class.igx-input-group__input')\n public isInput = false;\n /**\n * Sets/gets whether the `\"class.igx-input-group__textarea\"` class is added to the host element.\n * Default value is `false`.\n *\n * @example\n * ```typescript\n * this.igxInput.isTextArea = true;\n * ```\n *\n * @example\n * ```typescript\n * let isCLassAdded = this.igxInput.isTextArea;\n * ```\n */\n @HostBinding('class.igx-input-group__textarea')\n public isTextArea = false;\n\n private _valid = IgxInputState.INITIAL;\n private _statusChanges$: Subscription;\n private _valueChanges$: Subscription;\n private _touchedChanges$: Subscription;\n private _fileNames: string;\n private _disabled = false;\n\n private get ngControl(): NgControl {\n return this.ngModel ? this.ngModel : this.formControl;\n }\n\n /**\n * Sets the `value` property.\n *\n * @example\n * ```html\n * <input-group>\n * <input igxInput #igxInput [value]=\"'IgxInput Value'\">\n * </input-group>\n * ```\n */\n @Input()\n public set value(value: any) {\n this.nativeElement.value = value ?? '';\n this.updateValidityState();\n }\n /**\n * Gets the `value` property.\n *\n * @example\n * ```typescript\n * @ViewChild('igxInput', {read: IgxInputDirective})\n * public igxInput: IgxInputDirective;\n * let inputValue = this.igxInput.value;\n * ```\n */\n public get value() {\n return this.nativeElement.value;\n }\n /**\n * Sets the `disabled` property.\n *\n * @example\n * ```html\n * <input-group>\n * <input igxInput #igxInput [disabled]=\"true\">\n * </input-group>\n * ```\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('disabled')\n public set disabled(value: boolean) {\n this._disabled = this.inputGroup.disabled = value;\n if (this.focused && this._disabled) {\n // Browser focus may not fire in good time and mess with change detection, adjust here in advance:\n this.inputGroup.isFocused = false;\n }\n }\n /**\n * Gets the `disabled` property\n *\n * @example\n * ```typescript\n * @ViewChild('igxInput', {read: IgxInputDirective})\n * public igxInput: IgxInputDirective;\n * let isDisabled = this.igxInput.disabled;\n * ```\n */\n public get disabled() {\n return this._disabled;\n }\n\n /**\n * Sets the `required` property.\n *\n * @example\n * ```html\n * <input-group>\n * <input igxInput #igxInput required>\n * </input-group>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public set required(value: boolean) {\n this.nativeElement.required = this.inputGroup.isRequired = value;\n }\n\n /**\n * Gets whether the igxInput is required.\n *\n * @example\n * ```typescript\n * let isRequired = this.igxInput.required;\n * ```\n */\n public get required() {\n let validation;\n if (this.ngControl && (this.ngControl.control.validator || this.ngControl.control.asyncValidator)) {\n validation = this.ngControl.control.validator({} as AbstractControl);\n }\n return validation && validation.required || this.nativeElement.hasAttribute('required');\n }\n /**\n * @hidden\n * @internal\n */\n @HostListener('focus')\n public onFocus() {\n this.inputGroup.isFocused = true;\n }\n /**\n * @param event The event to invoke the handler\n *\n * @hidden\n * @internal\n */\n @HostListener('blur')\n public onBlur() {\n this.inputGroup.isFocused = false;\n if (this.ngControl?.control) {\n this.ngControl.control.markAsTouched();\n }\n this.updateValidityState();\n }\n /** @hidden @internal */\n @HostListener('input')\n public onInput() {\n this.checkNativeValidity();\n }\n /** @hidden @internal */\n @HostListener('change', ['$event'])\n public change(event: Event) {\n if (this.type === 'file') {\n const fileList: FileList | null = (event.target as HTMLInputElement)\n .files;\n const fileArray: File[] = [];\n\n if (fileList) {\n for (const file of Array.from(fileList)) {\n fileArray.push(file);\n }\n }\n\n this._fileNames = (fileArray || []).map((f: File) => f.name).join(', ');\n\n if (this.required && fileList?.length > 0) {\n this._valid = IgxInputState.INITIAL;\n }\n }\n }\n\n /** @hidden @internal */\n public get fileNames() {\n return this._fileNames;\n }\n\n /** @hidden @internal */\n public clear() {\n this.ngControl?.control?.setValue('');\n this.nativeElement.value = null;\n this._fileNames = '';\n }\n\n /** @hidden @internal */\n public ngAfterViewInit() {\n this.inputGroup.hasPlaceholder = this.nativeElement.hasAttribute(\n 'placeholder'\n );\n\n if (this.ngControl && this.ngControl.disabled !== null) {\n this.disabled = this.ngControl.disabled;\n }\n this.inputGroup.disabled =\n this.inputGroup.disabled ||\n this.nativeElement.hasAttribute('disabled');\n this.inputGroup.isRequired = this.nativeElement.hasAttribute(\n 'required'\n );\n\n // Make sure we do not invalidate the input on init\n if (!this.ngControl) {\n this._valid = IgxInputState.INITIAL;\n }\n // Also check the control's validators for required\n if (this.required && !this.inputGroup.isRequired) {\n this.inputGroup.isRequired = this.required;\n }\n\n this.renderer.setAttribute(this.nativeElement, 'aria-required', this.required.toString());\n\n const elTag = this.nativeElement.tagName.toLowerCase();\n if (elTag === 'textarea') {\n this.isTextArea = true;\n\n if (this.nativeElement.getAttribute('rows') === null) {\n this.renderer.setAttribute(this.nativeElement, 'rows', '3');\n }\n } else {\n this.isInput = true;\n }\n\n if (this.ngControl) {\n this._statusChanges$ = this.ngControl.statusChanges.subscribe(\n this.onStatusChanged.bind(this)\n );\n\n this._valueChanges$ = this.ngControl.valueChanges.subscribe(\n this.onValueChanged.bind(this)\n );\n\n if (this.ngControl.control) {\n this._touchedChanges$ = this.ngControl.control.events\n .pipe(filter(e => e instanceof TouchedChangeEvent))\n .subscribe(\n this.updateValidityState.bind(this)\n );\n }\n }\n\n this.cdr.detectChanges();\n }\n /** @hidden @internal */\n public ngOnDestroy() {\n if (this._statusChanges$) {\n this._statusChanges$.unsubscribe();\n }\n\n if (this._valueChanges$) {\n this._valueChanges$.unsubscribe();\n }\n\n if (this._touchedChanges$) {\n this._touchedChanges$.unsubscribe();\n }\n }\n /**\n * Sets a focus on the igxInput.\n *\n * @example\n * ```typescript\n * this.igxInput.focus();\n * ```\n */\n public focus() {\n this.nativeElement.focus();\n }\n /**\n * Gets the `nativeElement` of the igxInput.\n *\n * @example\n * ```typescript\n * let igxInputNativeElement = this.igxInput.nativeElement;\n * ```\n */\n public get nativeElement() {\n return this.element.nativeElement;\n }\n /** @hidden @internal */\n protected onStatusChanged() {\n // Enable/Disable control based on ngControl #7086\n if (this.disabled !== this.ngControl.disabled) {\n this.disabled = this.ngControl.disabled;\n }\n this.updateValidityState();\n }\n\n /** @hidden @internal */\n protected onValueChanged() {\n if (this._fileNames && !this.value) {\n this._fileNames = '';\n }\n }\n\n /**\n * @hidden\n * @internal\n */\n protected updateValidityState() {\n if (this.ngControl) {\n if (!this.disabled && this.isTouchedOrDirty) {\n if (this.hasValidators) {\n // Run the validation with empty object to check if required is enabled.\n const error = this.ngControl.control.validator({} as AbstractControl);\n this.inputGroup.isRequired = error && error.required;\n if (this.focused) {\n this._valid = this.ngControl.valid ? IgxInputState.VALID : IgxInputState.INVALID;\n } else {\n this._valid = this.ngControl.valid ? IgxInputState.INITIAL : IgxInputState.INVALID;\n }\n } else {\n // If validator is dynamically cleared, reset label's required class(asterisk) and IgxInputState #10010\n this.inputGroup.isRequired = false;\n this._valid = this.ngControl.valid ? IgxInputState.INITIAL : IgxInputState.INVALID;\n }\n } else {\n this._valid = IgxInputState.INITIAL;\n }\n this.renderer.setAttribute(this.nativeElement, 'aria-required', this.required.toString());\n const ariaInvalid = this.valid === IgxInputState.INVALID;\n this.renderer.setAttribute(this.nativeElement, 'aria-invalid', ariaInvalid.toString());\n } else {\n this.checkNativeValidity();\n }\n }\n\n private get isTouchedOrDirty(): boolean {\n return (this.ngControl.control.touched || this.ngControl.control.dirty);\n }\n\n private get hasValidators(): boolean {\n return (!!this.ngControl.control.validator || !!this.ngControl.control.asyncValidator);\n }\n\n /**\n * Gets whether the igxInput has a placeholder.\n *\n * @example\n * ```typescript\n * let hasPlaceholder = this.igxInput.hasPlaceholder;\n * ```\n */\n public get hasPlaceholder() {\n return this.nativeElement.hasAttribute('placeholder');\n }\n /**\n * Gets the placeholder element of the igxInput.\n *\n * @example\n * ```typescript\n * let igxInputPlaceholder = this.igxInput.placeholder;\n * ```\n */\n public get placeholder() {\n return this.nativeElement.placeholder;\n }\n\n /**\n * @returns An indicator of whether the input has validator attributes or not\n *\n * @hidden\n * @internal\n */\n private _hasValidators(): boolean {\n for (const nativeValidationAttribute of nativeValidationAttributes) {\n if (this.nativeElement.hasAttribute(nativeValidationAttribute)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets whether the igxInput is focused.\n *\n * @example\n * ```typescript\n * let isFocused = this.igxInput.focused;\n * ```\n */\n public get focused() {\n return this.inputGroup.isFocused;\n }\n /**\n * Gets the state of the igxInput.\n *\n * @example\n * ```typescript\n * let igxInputState = this.igxInput.valid;\n * ```\n */\n public get valid(): IgxInputState {\n return this._valid;\n }\n\n /**\n * Sets the state of the igxInput.\n *\n * @example\n * ```typescript\n * this.igxInput.valid = IgxInputState.INVALID;\n * ```\n */\n public set valid(value: IgxInputState) {\n this._valid = value;\n }\n\n /**\n * Gets whether the igxInput is valid.\n *\n * @example\n * ```typescript\n * let valid = this.igxInput.isValid;\n * ```\n */\n public get isValid(): boolean {\n return this.valid !== IgxInputState.INVALID;\n }\n\n /**\n * A function to assign a native validity property of an input.\n * This should be used when there's no ngControl\n *\n * @hidden\n * @internal\n */\n private checkNativeValidity() {\n if (!this.disabled && this._hasValidators()) {\n this._valid = this.nativeElement.checkValidity() ?\n this.focused ? IgxInputState.VALID : IgxInputState.INITIAL :\n IgxInputState.INVALID;\n }\n }\n\n /**\n * Returns the input type.\n *\n * @hidden\n * @internal\n */\n public get type() {\n return this.nativeElement.type;\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\nlet NEXT_ID = 0;\n\n@Directive({\n selector: '[igxLabel]',\n standalone: true\n})\nexport class IgxLabelDirective {\n @HostBinding('class.igx-input-group__label')\n public defaultClass = true;\n\n /**\n * @hidden\n */\n @HostBinding('attr.id')\n @Input()\n public id = `igx-label-${NEXT_ID++}`;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * @hidden\n */\n@Directive({\n selector: '[igxPrefix],[igxStart],igx-prefix',\n standalone: true\n})\nexport class IgxPrefixDirective { }\n","import { Directive } from '@angular/core';\n\n/**\n * @hidden\n */\n@Directive({\n selector: '[igxSuffix],[igxEnd],igx-suffix',\n standalone: true\n})\nexport class IgxSuffixDirective { }\n","import { InjectionToken } from '@angular/core';\n\nexport const IgxInputGroupEnum = {\n Line: 'line',\n Box: 'box',\n Border: 'border',\n Search: 'search'\n} as const;\n\n/**\n * Defines the InputGroupType DI token.\n */\n// Should this go trough Interface https://angular.io/api/core/InjectionToken\nexport const IGX_INPUT_GROUP_TYPE = /*@__PURE__*/new InjectionToken<IgxInputGroupType>('InputGroupType');\n\n/**\n * Determines the InputGroupType.\n */\nexport type IgxInputGroupType = (typeof IgxInputGroupEnum)[keyof typeof IgxInputGroupEnum];\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n HostBinding,\n HostListener, Input,\n QueryList, booleanAttribute,\n inject,\n DOCUMENT,\n AfterContentChecked,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { IInputResourceStrings, InputResourceStringsEN } from 'igniteui-angular/core';\nimport { PlatformUtil, getComponentTheme } from 'igniteui-angular/core';\nimport { IgxButtonDirective } from 'igniteui-angular/directives';\nimport { IgxHintDirective } from './directives-hint/hint.directive';\nimport {\n IgxInputDirective,\n IgxInputState\n} from './directives-input/input.directive';\nimport { IgxPrefixDirective } from './directives-prefix/prefix.directive';\nimport { IgxSuffixDirective } from './directives-suffix/suffix.directive';\n\nimport { IgxInputGroupBase } from './input-group.common';\nimport { IgxInputGroupType, IGX_INPUT_GROUP_TYPE } from './inputGroupType';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\nimport { getCurrentResourceStrings, onResourceChangeHandle } from 'igniteui-angular/core';\nimport { IgxTheme, THEME_TOKEN, ThemeToken } from 'igniteui-angular/core';\n\n@Component({\n selector: 'igx-input-group',\n templateUrl: 'input-group.component.html',\n providers: [{ provide: IgxInputGroupBase, useExisting: IgxInputGroupComponent }],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [NgTemplateOutlet, IgxPrefixDirective, IgxButtonDirective, IgxSuffixDirective, IgxIconComponent]\n})\nexport class IgxInputGroupComponent implements IgxInputGroupBase, AfterContentChecked {\n public element = inject<ElementRef<HTMLElement>>(ElementRef);\n private _inputGroupType = inject<IgxInputGroupType>(IGX_INPUT_GROUP_TYPE, { optional: true });\n private document = inject(DOCUMENT);\n private platform = inject(PlatformUtil);\n private cdr = inject(ChangeDetectorRef);\n private themeToken = inject<ThemeToken>(THEME_TOKEN);\n\n /**\n * Sets the resource strings.\n * By default it uses EN resources.\n */\n @Input()\n public set resourceStrings(value: IInputResourceStrings) {\n this._resourceStrings = Object.assign({}, this._resourceStrings, value);\n }\n\n /**\n * Returns the resource strings.\n */\n public get resourceStrings(): IInputResourceStrings {\n return this._resourceStrings || this._defaultResourceStrings;\n }\n\n /**\n * Property that enables/disables the auto-generated class of the `IgxInputGroupComponent`.\n * By default applied the class is applied.\n * ```typescript\n * @ViewChild(\"MyInputGroup\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * this.inputGroup.defaultClass = false;\n * ```\n * }\n */\n @HostBinding('class.igx-input-group')\n public defaultClass = true;\n\n /** @hidden */\n @HostBinding('class.igx-input-group--placeholder')\n public hasPlaceholder = false;\n\n /** @hidden */\n @HostBinding('class.igx-input-group--required')\n public isRequired = false;\n\n /** @hidden */\n @HostBinding('class.igx-input-group--focused')\n public isFocused = false;\n\n /**\n * @hidden @internal\n * When truthy, disables the `IgxInputGroupComponent`.\n * Controlled by the underlying `IgxInputDirective`.\n * ```html\n * <igx-input-group [disabled]=\"true\"></igx-input-group>\n * ```\n */\n @HostBinding('class.igx-input-group--disabled')\n public disabled = false;\n\n /**\n * Prevents automatically focusing the input when clicking on other elements in the input group (e.g. prefix or suffix).\n *\n * @remarks Automatic focus causes software keyboard to show on mobile devices.\n *\n * @example\n * ```html\n * <igx-input-group [suppressInputAutofocus]=\"true\"></igx-input-group>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public suppressInputAutofocus = false;\n\n /** @hidden */\n @HostBinding('class.igx-input-group--warning')\n public hasWarning = false;\n\n /** @hidden */\n @ContentChildren(IgxHintDirective, { read: IgxHintDirective })\n protected hints: QueryList<IgxHintDirective>;\n\n @ContentChildren(IgxPrefixDirective, { read: IgxPrefixDirective, descendants: true })\n protected _prefixes: QueryList<IgxPrefixDirective>;\n\n @ContentChildren(IgxSuffixDirective, { read: IgxSuffixDirective, descendants: true })\n protected _suffixes: QueryList<IgxSuffixDirective>;\n\n /** @hidden */\n @ContentChild(IgxInputDirective, { read: IgxInputDirective, static: true })\n protected input: IgxInputDirective;\n\n private _destroyRef = inject(DestroyRef);\n private _type: IgxInputGroupType = null;\n private _filled = false;\n private _theme: IgxTheme;\n private _resourceStrings: IInputResourceStrings = null;\n private _defaultResourceStrings = getCurrentResourceStrings(InputResourceStringsEN);\n private _readOnly: undefined | boolean;\n\n /** @hidden @internal */\n @HostBinding('class.igx-input-group--readonly')\n public get readOnly(): boolean {\n return this._readOnly ?? (this.input?.nativeElement.readOnly || false);\n }\n\n /** @hidden @internal */\n public set readOnly(value: boolean) {\n this._readOnly = value;\n }\n\n /** @hidden */\n @HostBinding('class.igx-input-group--valid')\n public get validClass(): boolean {\n return this.input.valid === IgxInputState.VALID;\n }\n\n /** @hidden */\n @HostBinding('class.igx-input-group--invalid')\n public get invalidClass(): boolean {\n return this.input.valid === IgxInputState.INVALID;\n }\n\n /** @hidden */\n @HostBinding('class.igx-input-group--filled')\n public get isFilled() {\n return this._filled || (this.input && this.input.value);\n }\n\n /** @hidden */\n @HostBinding('class.igx-input-group--textarea-group')\n public get textAreaClass(): boolean {\n return this.input.isTextArea;\n }\n\n /**\n * Sets how the input will be styled.\n * Allowed values of type IgxInputGroupType.\n * ```html\n * <igx-input-group [type]=\"'search'\">\n * ```\n */\n @Input()\n public set type(value: IgxInputGroupType) {\n this._type = value;\n }\n\n /**\n * Returns the type of the `IgxInputGroupComponent`. How the input is styled.\n * The default is `line`.\n * ```typescript\n * @ViewChild(\"MyInputGroup\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let inputType = this.inputGroup.type;\n * }\n * ```\n */\n public get type() {\n return this._type || this._inputGroupType || 'line';\n }\n\n /**\n * Sets the theme of the input.\n * Allowed values of type IgxInputGroupTheme.\n * ```typescript\n * @ViewChild(\"MyInputGroup\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit() {\n * let inputTheme = 'fluent';\n * }\n */\n @Input()\n public set theme(value: IgxTheme) {\n this._theme = value;\n }\n\n /**\n * Returns the theme of the input.\n * The returned value is of type IgxInputGroupType.\n * ```typescript\n * @ViewChild(\"MyInputGroup\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit() {\n * let inputTheme = this.inputGroup.theme;\n * }\n */\n public get theme(): IgxTheme {\n return this._theme;\n }\n\n constructor() {\n this._theme = this.themeToken.theme;\n const themeChange = this.themeToken.onChange((theme) => {\n if (this._theme !== theme) {\n this._theme = theme;\n this.cdr.detectChanges();\n }\n });\n this._destroyRef.onDestroy(() => themeChange.unsubscribe());\n onResourceChangeHandle(this._destroyRef, () => {\n this._defaultResourceStrings = getCurrentResourceStrings(InputResourceStringsEN, false);\n }, this);\n }\n\n /** @hidden */\n @HostListener('click', ['$event'])\n public onClick(event: MouseEvent) {\n if (\n !this.isFocused &&\n event.target !== this.input.nativeElement &&\n !this.suppressInputAutofocus\n ) {\n this.input.focus();\n }\n }\n\n /** @hidden */\n @HostListener('pointerdown', ['$event'])\n public onPointerDown(event: PointerEvent) {\n if (this.isFocused && event.target !== this.input.nativeElement) {\n event.preventDefault();\n }\n }\n\n /** @hidden @internal */\n public hintClickHandler(event: MouseEvent) {\n event.stopPropagation();\n }\n\n /**\n * Returns whether the `IgxInputGroupComponent` has hints.\n * ```typescript\n * @ViewChild(\"MyInputGroup\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let inputHints = this.inputGroup.hasHints;\n * }\n * ```\n */\n public get hasHints() {\n return this.hints.length > 0;\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-input-group--prefixed')\n public get hasPrefixes() {\n return this._prefixes.length > 0;\n }\n\n /** @hidden @internal */\n public set prefixes(items: QueryList<IgxPrefixDirective>) {\n this._prefixes = items;\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-input-group--suffixed')\n public get hasSuffixes() {\n return this._suffixes.length > 0 || this.isFileType && this.isFilled;\n }\n\n /** @hidden @internal */\n public set suffixes(items: QueryList<IgxSuffixDirective>) {\n this._suffixes = items;\n }\n\n /**\n * Returns whether the `IgxInputGroupComponent` has border.\n * ```typescript\n * @ViewChild(\"MyInputGroup\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let inputBorder = this.inputGroup.hasBorder;\n * }\n * ```\n */\n public get hasBorder() {\n return (\n (this.type === 'line' || this.type === 'box') &&\n this._theme === 'material'\n );\n }\n\n /**\n * Returns whether the `IgxInputGroupComponent` type is line.\n * ```typescript\n * @ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeLine = this.inputGroup.isTypeLine;\n * }\n * ```\n */\n public get isTypeLine(): boolean {\n return this.type === 'line' && this._theme === 'material';\n }\n\n /**\n * Returns whether the `IgxInputGroupComponent` type is box.\n * ```typescript\n * @ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeBox = this.inputGroup.isTypeBox;\n * }\n * ```\n */\n @HostBinding('class.igx-input-group--box')\n public get isTypeBox() {\n return this.type === 'box' && this._theme === 'material';\n }\n\n /** @hidden @internal */\n public clearValueHandler() {\n this.input.clear();\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-input-group--file')\n public get isFileType() {\n return this.input.type === 'file';\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-file-input')\n public get isFileInput() {\n return this.input.type === 'file';\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-file-input--filled')\n public get isFileInputFilled() {\n return this.isFileType && this.isFilled;\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-file-input--focused')\n public get isFileInputFocused() {\n return this.isFileType && this.isFocused;\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-file-input--disabled')\n public get isFileInputDisabled() {\n return this.isFileType && this.disabled;\n }\n\n /** @hidden @internal */\n public get fileNames() {\n return this.input.fileNames || this.resourceStrings.igx_input_file_placeholder;\n }\n\n /**\n * Returns whether the `IgxInputGroupComponent` type is border.\n * ```typescript\n * @ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeBorder = this.inputGroup.isTypeBorder;\n * }\n * ```\n */\n @HostBinding('class.igx-input-group--border')\n public get isTypeBorder() {\n return this.type === 'border' && this._theme === 'material';\n }\n\n /**\n * Returns true if the `IgxInputGroupComponent` theme is Fluent.\n * ```typescript\n * @ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeFluent = this.inputGroup.isTypeFluent;\n * }\n * ```\n */\n @HostBinding('class.igx-input-group--fluent')\n public get isTypeFluent() {\n return this._theme === 'fluent';\n }\n\n /**\n * Returns true if the `IgxInputGroupComponent` theme is Bootstrap.\n * ```typescript\n * @ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeBootstrap = this.inputGroup.isTypeBootstrap;\n * }\n * ```\n */\n @HostBinding('class.igx-input-group--bootstrap')\n public get isTypeBootstrap() {\n return this._theme === 'bootstrap';\n }\n\n /**\n * Returns true if the `IgxInputGroupComponent` theme is Indigo.\n * ```typescript\n * @ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeIndigo = this.inputGroup.isTypeIndigo;\n * }\n * ```\n */\n @HostBinding('class.igx-input-group--indigo')\n public get isTypeIndigo() {\n return this._theme === 'indigo';\n }\n\n /**\n * Returns whether the `IgxInputGroupComponent` type is search.\n * ```typescript\n * @ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeSearch = this.inputGroup.isTypeSearch;\n * }\n * ```\n */\n @HostBinding('class.igx-input-group--search')\n public get isTypeSearch() {\n if(!this.isFileType && !this.input.isTextArea) {\n return this.type === 'search';\n }\n }\n\n /** @hidden */\n public get filled() {\n return this._filled;\n }\n\n /** @hidden */\n public set filled(val) {\n this._filled = val;\n }\n\n private setComponentTheme() {\n if (!this.themeToken.preferToken) {\n const theme = getComponentTheme(this.element.nativeElement);\n\n if (theme && theme !== this._theme) {\n this.theme = theme;\n this.cdr.markForCheck();\n }\n }\n }\n\n /** @hidden @internal */\n public ngAfterContentChecked() {\n this.setComponentTheme();\n }\n}\n","@if (isTypeBox) {\n <div class=\"igx-input-group__wrapper\">\n <ng-container *ngTemplateOutlet=\"bundle\"></ng-container>\n </div>\n} @else {\n <ng-container *ngTemplateOutlet=\"bundle\"></ng-container>\n}\n\n<div class=\"igx-input-group__hint\" (click)=\"hintClickHandler($event)\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n</div>\n\n<ng-template #label>\n <ng-content select=\"[igxLabel]\"></ng-content>\n</ng-template>\n\n<ng-template #input>\n <ng-content select=\"[igxInput]\"></ng-content>\n</ng-template>\n\n<ng-template #prefix>\n <ng-content select=\"igx-prefix, [igxPrefix]\"></ng-content>\n</ng-template>\n\n<!-- Dummy usage to satisfy Angular compiler -->\n<ng-template #dummy><span igxPrefix hidden></span></ng-template>\n\n<ng-template #uploadButton>\n @if (isFileType) {\n <div class=\"igx-input-group__upload-button igx-file-input__upload-button-wrapper\">\n <button\n igxButton=\"flat\"\n type=\"button\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n class=\"igx-file-input__upload-button\"\n >\n {{ resourceStrings.igx_input_upload_button }}\n </button>\n </div>\n }\n</ng-template>\n\n<ng-template #files>\n @if (isFileType) {\n <div\n class=\"igx-input-group__file-input igx-file-input__file-names\"\n [title]=\"fileNames\"\n >\n <span>{{ fileNames }}</span>\n </div>\n }\n</ng-template>\n\n<ng-template #clear>\n @if (isFileType && isFilled) {\n <igx-suffix\n class=\"igx-input-group__clear-icon igx-file-input__clear-icon\"\n (click)=\"clearValueHandler()\"\n (keydown.Enter)=\"clearValueHandler()\"\n title=\"clear files\"\n tabindex=\"0\"\n >\n <igx-icon family=\"default\" name=\"input_clear\"></igx-icon>\n </igx-suffix>\n }\n</ng-template>\n\n<ng-template #suffix>\n <ng-content select=\"igx-suffix, [igxSuffix]\"></ng-content>\n</ng-template>\n\n<ng-template #materialBundle>\n <div class=\"igx-input-group__bundle\">\n <div class=\"igx-input-group__bundle-start\">\n <ng-container *ngTemplateOutlet=\"prefix\"></ng-container>\n </div>\n\n <ng-container>\n <div class=\"igx-input-group__notch\">\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </div>\n </ng-container>\n\n <div class=\"igx-input-group__bundle-main\">\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"files\"></ng-container>\n </div>\n\n <div class=\"igx-input-group__filler\"></div>\n\n <div class=\"igx-input-group__bundle-end\">\n <ng-container *ngTemplateOutlet=\"clear\"></ng-container>\n <ng-container *ngTemplateOutlet=\"suffix\"></ng-container>\n </div>\n\n @if (hasBorder) {\n <div class=\"igx-input-group__line\"></div>\n }\n </div>\n</ng-template>\n\n<ng-template #fluentBundle>\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n\n <div class=\"igx-input-group__bundle\">\n <div class=\"igx-input-group__bundle-start\">\n <ng-container *ngTemplateOutlet=\"prefix\"></ng-container>\n </div>\n\n\n <div class=\"igx-input-group__bundle-main\">\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"files\"></ng-container>\n </div>\n\n <div class=\"igx-input-group__bundle-end\">\n <ng-container *ngTemplateOutlet=\"clear\"></ng-container>\n <ng-container *ngTemplateOutlet=\"suffix\"></ng-container>\n </div>\n\n @if (hasBorder) {\n <div class=\"igx-input-group__line\"></div>\n }\n </div>\n</ng-template>\n\n<ng-template #bootstrapBundle>\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n\n <div class=\"igx-input-group__bundle\">\n <div class=\"igx-input-group__bundle-start\">\n <ng-container *ngTemplateOutlet=\"prefix\"></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"files\"></ng-container>\n\n <div class=\"igx-input-group__bundle-end\">\n <ng-container *ngTemplateOutlet=\"clear\"></ng-container>\n <ng-container *ngTemplateOutlet=\"suffix\"></ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #bundle>\n @switch (theme) {\n @case ('bootstrap') {\n <ng-container *ngTemplateOutlet=\"bootstrapBundle\"></ng-container>\n }\n @case ('fluent') {\n <ng-container *ngTemplateOutlet=\"fluentBundle\"></ng-container>\n }\n @case ('indigo') {\n <ng-container *ngTemplateOutlet=\"fluentBundle\"></ng-container>\n }\n @default {\n <ng-container *ngTemplateOutlet=\"materialBundle\"></ng-container>\n }\n }\n</ng-template>\n","import { Directive, effect, inject, input } from '@angular/core';\nimport { IgxInputGroupComponent } from '../input-group.component';\n\n@Directive({\n selector: '[igxReadOnlyInput]',\n exportAs: 'igxReadOnlyInput',\n standalone: true\n})\nexport class IgxReadOnlyInputDirective {\n public igxReadOnlyInput = input<boolean>(false);\n\n private _inputGroup: IgxInputGroupComponent | null = inject(\n IgxInputGroupComponent,\n {\n optional: true\n }\n );\n\n constructor() {\n effect(() => {\n if (this._inputGroup) {\n this._inputGroup.readOnly = this.igxReadOnlyInput();\n }\n });\n }\n}\n","import { IgxHintDirective } from './directives-hint/hint.directive';\nimport { IgxInputDirective } from './directives-input/input.directive';\nimport { IgxLabelDirective } from './directives-label/label.directive';\nimport { IgxPrefixDirective } from './directives-prefix/prefix.directive';\nimport { IgxSuffixDirective } from './directives-suffix/suffix.directive';\nimport { IgxInputGroupComponent } from './input-group.component';\n\nexport * from './input-group.component';\nexport * from './input-group.common';\nexport * from './directives-hint/hint.directive';\nexport * from './directives-input/input.directive';\nexport * from './directives-input/read-only-input.directive';\nexport * from './directives-label/label.directive';\nexport * from './directives-prefix/prefix.directive';\nexport * from './directives-suffix/suffix.directive';\nexport * from './inputGroupType';\n\n/* NOTE: Input group directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_INPUT_GROUP_DIRECTIVES = [\n IgxInputGroupComponent,\n IgxInputDirective,\n IgxLabelDirective,\n IgxPrefixDirective,\n IgxSuffixDirective,\n IgxHintDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_INPUT_GROUP_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * @deprecated\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_INPUT_GROUP_DIRECTIVES\n ],\n exports: [\n ...IGX_INPUT_GROUP_DIRECTIVES\n ]\n})\n\nexport class IgxInputGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxInputGroupComponent","i2.IgxInputDirective","i3.IgxLabelDirective","i4.IgxPrefixDirective","i5.IgxSuffixDirective","i6.IgxHintDirective"],"mappings":"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"}
1
+ {"version":3,"file":"igniteui-angular-input-group.mjs","sources":["../../../projects/igniteui-angular/input-group/src/input-group/directives-hint/hint.directive.ts","../../../projects/igniteui-angular/input-group/src/input-group/input-group.common.ts","../../../projects/igniteui-angular/input-group/src/input-group/directives-input/input.directive.ts","../../../projects/igniteui-angular/input-group/src/input-group/directives-label/label.directive.ts","../../../projects/igniteui-angular/input-group/src/input-group/directives-prefix/prefix.directive.ts","../../../projects/igniteui-angular/input-group/src/input-group/directives-suffix/suffix.directive.ts","../../../projects/igniteui-angular/input-group/src/input-group/inputGroupType.ts","../../../projects/igniteui-angular/input-group/src/input-group/input-group.component.ts","../../../projects/igniteui-angular/input-group/src/input-group/input-group.component.html","../../../projects/igniteui-angular/input-group/src/input-group/directives-input/read-only-input.directive.ts","../../../projects/igniteui-angular/input-group/src/input-group/public_api.ts","../../../projects/igniteui-angular/input-group/src/input-group/input-group.module.ts","../../../projects/igniteui-angular/input-group/src/igniteui-angular-input-group.ts"],"sourcesContent":["import { Directive, HostBinding, Input, OnInit } from '@angular/core';\n\nenum IgxHintPosition {\n START,\n END\n}\n\n@Directive({\n selector: '[igxHint],igx-hint',\n standalone: true\n})\nexport class IgxHintDirective implements OnInit {\n /**\n * Sets/gets whether the hint position is at the start.\n * Default value is `false`.\n * ```typescript\n * @ViewChild('hint', {read: IgxHintDirective})\n * public igxHint: IgxHintDirective;\n * this.igxHint.isPositionStart = true;\n * ```\n * ```typescript\n * let isHintPositionStart = this.igxHint.isPositionStart;\n * ```\n *\n * @memberof IgxHintDirective\n */\n @HostBinding('class.igx-input-group__hint-item--start')\n public isPositionStart = false;\n /**\n * Sets/gets whether the hint position is at the end.\n * Default value is `false`.\n * ```typescript\n * @ViewChild('hint', {read: IgxHintDirective})\n * public igxHint: IgxHintDirective;\n * this.igxHint.isPositionEnd = true;\n * ```\n * ```typescript\n * let isHintPositionEnd = this.igxHint.isPositionEnd;\n * ```\n *\n * @memberof IgxHintDirective\n */\n @HostBinding('class.igx-input-group__hint-item--end')\n public isPositionEnd = false;\n\n private _position: IgxHintPosition = IgxHintPosition.START;\n /**\n * Sets the position of the hint.\n * ```html\n * <igx-input-group>\n * <input igxInput type=\"text\"/>\n * <igx-hint #hint [position]=\"'start'\">IgxHint displayed at the start</igx-hint>\n * </igx-input-group>\n * ```\n *\n * @memberof IgxHintDirective\n */\n @Input()\n public set position(value: string) {\n const position: IgxHintPosition = (IgxHintPosition as any)[value.toUpperCase()];\n if (position !== undefined) {\n this._position = position;\n this._applyPosition(this._position);\n }\n }\n /**\n * Gets the position of the hint.\n * ```typescript\n * @ViewChild('hint', {read: IgxHintDirective})\n * public igxHint: IgxHintDirective;\n * let hintPosition = this.igxHint.position;\n * ```\n *\n * @memberof IgxHintDirective\n */\n public get position() {\n return this._position.toString();\n }\n /**\n * @hidden\n */\n public ngOnInit() {\n this._applyPosition(this._position);\n }\n\n private _applyPosition(position: IgxHintPosition) {\n this.isPositionStart = this.isPositionEnd = false;\n switch (position) {\n case IgxHintPosition.START:\n this.isPositionStart = true;\n break;\n case IgxHintPosition.END:\n this.isPositionEnd = true;\n break;\n default: break;\n }\n }\n}\n","/** @hidden */\nexport abstract class IgxInputGroupBase {\n public disabled: boolean;\n public isFocused: boolean;\n public isRequired: boolean;\n public hasPlaceholder: boolean;\n}\n","import { AfterViewInit, ChangeDetectorRef, Directive, ElementRef, HostBinding, HostListener, Input, OnDestroy, Renderer2, booleanAttribute, inject } from '@angular/core';\nimport {\n AbstractControl,\n NgControl,\n NgModel,\n TouchedChangeEvent\n} from '@angular/forms';\nimport { filter, Subscription } from 'rxjs';\nimport { IgxInputGroupBase } from '../input-group.common';\n\nconst nativeValidationAttributes = [\n 'required',\n 'pattern',\n 'minlength',\n 'maxlength',\n 'min',\n 'max',\n 'step',\n];\n\nexport enum IgxInputState {\n INITIAL,\n VALID,\n INVALID,\n}\n\n/**\n * The `igxInput` directive creates single- or multiline text elements, covering common scenarios when dealing with form inputs.\n *\n * @igxModule IgxInputGroupModule\n *\n * @igxParent Data Entry & Display\n *\n * @igxTheme igx-input-group-theme\n *\n * @igxKeywords input, input group, form, field, validation\n *\n * @igxGroup presentation\n *\n * @example\n * ```html\n * <input-group>\n * <label for=\"address\">Address</label>\n * <input igxInput name=\"address\" type=\"text\" [(ngModel)]=\"customer.address\">\n * </input-group>\n * ```\n */\n@Directive({\n selector: '[igxInput]',\n exportAs: 'igxInput',\n standalone: true\n})\nexport class IgxInputDirective implements AfterViewInit, OnDestroy {\n public inputGroup = inject(IgxInputGroupBase);\n protected ngModel = inject<NgModel>(NgModel, { optional: true, self: true });\n protected formControl = inject<NgControl>(NgControl, { optional: true, self: true });\n protected element = inject<ElementRef<HTMLInputElement>>(ElementRef);\n protected cdr = inject(ChangeDetectorRef);\n protected renderer = inject(Renderer2);\n\n /**\n * Sets/gets whether the `\"igx-input-group__input\"` class is added to the host element.\n * Default value is `false`.\n *\n * @example\n * ```typescript\n * this.igxInput.isInput = true;\n * ```\n *\n * @example\n * ```typescript\n * let isCLassAdded = this.igxInput.isInput;\n * ```\n */\n @HostBinding('class.igx-input-group__input')\n public isInput = false;\n /**\n * Sets/gets whether the `\"class.igx-input-group__textarea\"` class is added to the host element.\n * Default value is `false`.\n *\n * @example\n * ```typescript\n * this.igxInput.isTextArea = true;\n * ```\n *\n * @example\n * ```typescript\n * let isCLassAdded = this.igxInput.isTextArea;\n * ```\n */\n @HostBinding('class.igx-input-group__textarea')\n public isTextArea = false;\n\n private _valid = IgxInputState.INITIAL;\n private _statusChanges$: Subscription;\n private _valueChanges$: Subscription;\n private _touchedChanges$: Subscription;\n private _fileNames: string;\n private _disabled = false;\n\n private get ngControl(): NgControl {\n return this.ngModel ? this.ngModel : this.formControl;\n }\n\n /**\n * Sets the `value` property.\n *\n * @example\n * ```html\n * <input-group>\n * <input igxInput #igxInput [value]=\"'IgxInput Value'\">\n * </input-group>\n * ```\n */\n @Input()\n public set value(value: any) {\n this.nativeElement.value = value ?? '';\n this.updateValidityState();\n }\n /**\n * Gets the `value` property.\n *\n * @example\n * ```typescript\n * @ViewChild('igxInput', {read: IgxInputDirective})\n * public igxInput: IgxInputDirective;\n * let inputValue = this.igxInput.value;\n * ```\n */\n public get value() {\n return this.nativeElement.value;\n }\n /**\n * Sets the `disabled` property.\n *\n * @example\n * ```html\n * <input-group>\n * <input igxInput #igxInput [disabled]=\"true\">\n * </input-group>\n * ```\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('disabled')\n public set disabled(value: boolean) {\n this._disabled = this.inputGroup.disabled = value;\n if (this.focused && this._disabled) {\n // Browser focus may not fire in good time and mess with change detection, adjust here in advance:\n this.inputGroup.isFocused = false;\n }\n }\n /**\n * Gets the `disabled` property\n *\n * @example\n * ```typescript\n * @ViewChild('igxInput', {read: IgxInputDirective})\n * public igxInput: IgxInputDirective;\n * let isDisabled = this.igxInput.disabled;\n * ```\n */\n public get disabled() {\n return this._disabled;\n }\n\n /**\n * Sets the `required` property.\n *\n * @example\n * ```html\n * <input-group>\n * <input igxInput #igxInput required>\n * </input-group>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public set required(value: boolean) {\n this.nativeElement.required = this.inputGroup.isRequired = value;\n }\n\n /**\n * Gets whether the igxInput is required.\n *\n * @example\n * ```typescript\n * let isRequired = this.igxInput.required;\n * ```\n */\n public get required() {\n let validation;\n if (this.ngControl && (this.ngControl.control.validator || this.ngControl.control.asyncValidator)) {\n validation = this.ngControl.control.validator({} as AbstractControl);\n }\n return validation && validation.required || this.nativeElement.hasAttribute('required');\n }\n /**\n * @hidden\n * @internal\n */\n @HostListener('focus')\n public onFocus() {\n this.inputGroup.isFocused = true;\n }\n /**\n * @param event The event to invoke the handler\n *\n * @hidden\n * @internal\n */\n @HostListener('blur')\n public onBlur() {\n this.inputGroup.isFocused = false;\n if (this.ngControl?.control) {\n this.ngControl.control.markAsTouched();\n }\n this.updateValidityState();\n }\n /** @hidden @internal */\n @HostListener('input')\n public onInput() {\n this.checkNativeValidity();\n }\n /** @hidden @internal */\n @HostListener('change', ['$event'])\n public change(event: Event) {\n if (this.type === 'file') {\n const fileList: FileList | null = (event.target as HTMLInputElement)\n .files;\n const fileArray: File[] = [];\n\n if (fileList) {\n for (const file of Array.from(fileList)) {\n fileArray.push(file);\n }\n }\n\n this._fileNames = (fileArray || []).map((f: File) => f.name).join(', ');\n\n if (this.required && fileList?.length > 0) {\n this._valid = IgxInputState.INITIAL;\n }\n }\n }\n\n /** @hidden @internal */\n public get fileNames() {\n return this._fileNames;\n }\n\n /** @hidden @internal */\n public clear() {\n this.ngControl?.control?.setValue('');\n this.nativeElement.value = null;\n this._fileNames = '';\n }\n\n /** @hidden @internal */\n public ngAfterViewInit() {\n this.inputGroup.hasPlaceholder = this.nativeElement.hasAttribute(\n 'placeholder'\n );\n\n if (this.ngControl && this.ngControl.disabled !== null) {\n this.disabled = this.ngControl.disabled;\n }\n this.inputGroup.disabled =\n this.inputGroup.disabled ||\n this.nativeElement.hasAttribute('disabled');\n this.inputGroup.isRequired = this.nativeElement.hasAttribute(\n 'required'\n );\n\n // Make sure we do not invalidate the input on init\n if (!this.ngControl) {\n this._valid = IgxInputState.INITIAL;\n }\n // Also check the control's validators for required\n if (this.required && !this.inputGroup.isRequired) {\n this.inputGroup.isRequired = this.required;\n }\n\n this.renderer.setAttribute(this.nativeElement, 'aria-required', this.required.toString());\n\n const elTag = this.nativeElement.tagName.toLowerCase();\n if (elTag === 'textarea') {\n this.isTextArea = true;\n\n if (this.nativeElement.getAttribute('rows') === null) {\n this.renderer.setAttribute(this.nativeElement, 'rows', '3');\n }\n } else {\n this.isInput = true;\n }\n\n if (this.ngControl) {\n this._statusChanges$ = this.ngControl.statusChanges.subscribe(\n this.onStatusChanged.bind(this)\n );\n\n this._valueChanges$ = this.ngControl.valueChanges.subscribe(\n this.onValueChanged.bind(this)\n );\n\n if (this.ngControl.control) {\n this._touchedChanges$ = this.ngControl.control.events\n .pipe(filter(e => e instanceof TouchedChangeEvent))\n .subscribe(\n this.updateValidityState.bind(this)\n );\n }\n }\n\n this.cdr.detectChanges();\n }\n /** @hidden @internal */\n public ngOnDestroy() {\n if (this._statusChanges$) {\n this._statusChanges$.unsubscribe();\n }\n\n if (this._valueChanges$) {\n this._valueChanges$.unsubscribe();\n }\n\n if (this._touchedChanges$) {\n this._touchedChanges$.unsubscribe();\n }\n }\n /**\n * Sets a focus on the igxInput.\n *\n * @example\n * ```typescript\n * this.igxInput.focus();\n * ```\n */\n public focus() {\n this.nativeElement.focus();\n }\n /**\n * Gets the `nativeElement` of the igxInput.\n *\n * @example\n * ```typescript\n * let igxInputNativeElement = this.igxInput.nativeElement;\n * ```\n */\n public get nativeElement() {\n return this.element.nativeElement;\n }\n /** @hidden @internal */\n protected onStatusChanged() {\n // Enable/Disable control based on ngControl #7086\n if (this.disabled !== this.ngControl.disabled) {\n this.disabled = this.ngControl.disabled;\n }\n this.updateValidityState();\n }\n\n /** @hidden @internal */\n protected onValueChanged() {\n if (this._fileNames && !this.value) {\n this._fileNames = '';\n }\n }\n\n /**\n * @hidden\n * @internal\n */\n protected updateValidityState() {\n if (this.ngControl) {\n if (!this.disabled && this.isTouchedOrDirty) {\n if (this.hasValidators) {\n // Run the validation with empty object to check if required is enabled.\n const error = this.ngControl.control.validator({} as AbstractControl);\n this.inputGroup.isRequired = error && error.required;\n if (this.focused) {\n this._valid = this.ngControl.valid ? IgxInputState.VALID : IgxInputState.INVALID;\n } else {\n this._valid = this.ngControl.valid ? IgxInputState.INITIAL : IgxInputState.INVALID;\n }\n } else {\n // If validator is dynamically cleared, reset label's required class(asterisk) and IgxInputState #10010\n this.inputGroup.isRequired = false;\n this._valid = this.ngControl.valid ? IgxInputState.INITIAL : IgxInputState.INVALID;\n }\n } else {\n this._valid = IgxInputState.INITIAL;\n }\n this.renderer.setAttribute(this.nativeElement, 'aria-required', this.required.toString());\n const ariaInvalid = this.valid === IgxInputState.INVALID;\n this.renderer.setAttribute(this.nativeElement, 'aria-invalid', ariaInvalid.toString());\n } else {\n this.checkNativeValidity();\n }\n }\n\n private get isTouchedOrDirty(): boolean {\n return (this.ngControl.control.touched || this.ngControl.control.dirty);\n }\n\n private get hasValidators(): boolean {\n return (!!this.ngControl.control.validator || !!this.ngControl.control.asyncValidator);\n }\n\n /**\n * Gets whether the igxInput has a placeholder.\n *\n * @example\n * ```typescript\n * let hasPlaceholder = this.igxInput.hasPlaceholder;\n * ```\n */\n public get hasPlaceholder() {\n return this.nativeElement.hasAttribute('placeholder');\n }\n /**\n * Gets the placeholder element of the igxInput.\n *\n * @example\n * ```typescript\n * let igxInputPlaceholder = this.igxInput.placeholder;\n * ```\n */\n public get placeholder() {\n return this.nativeElement.placeholder;\n }\n\n /**\n * @returns An indicator of whether the input has validator attributes or not\n *\n * @hidden\n * @internal\n */\n private _hasValidators(): boolean {\n for (const nativeValidationAttribute of nativeValidationAttributes) {\n if (this.nativeElement.hasAttribute(nativeValidationAttribute)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets whether the igxInput is focused.\n *\n * @example\n * ```typescript\n * let isFocused = this.igxInput.focused;\n * ```\n */\n public get focused() {\n return this.inputGroup.isFocused;\n }\n /**\n * Gets the state of the igxInput.\n *\n * @example\n * ```typescript\n * let igxInputState = this.igxInput.valid;\n * ```\n */\n public get valid(): IgxInputState {\n return this._valid;\n }\n\n /**\n * Sets the state of the igxInput.\n *\n * @example\n * ```typescript\n * this.igxInput.valid = IgxInputState.INVALID;\n * ```\n */\n public set valid(value: IgxInputState) {\n this._valid = value;\n }\n\n /**\n * Gets whether the igxInput is valid.\n *\n * @example\n * ```typescript\n * let valid = this.igxInput.isValid;\n * ```\n */\n public get isValid(): boolean {\n return this.valid !== IgxInputState.INVALID;\n }\n\n /**\n * A function to assign a native validity property of an input.\n * This should be used when there's no ngControl\n *\n * @hidden\n * @internal\n */\n private checkNativeValidity() {\n if (!this.disabled && this._hasValidators()) {\n this._valid = this.nativeElement.checkValidity() ?\n this.focused ? IgxInputState.VALID : IgxInputState.INITIAL :\n IgxInputState.INVALID;\n }\n }\n\n /**\n * Returns the input type.\n *\n * @hidden\n * @internal\n */\n public get type() {\n return this.nativeElement.type;\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\nlet NEXT_ID = 0;\n\n@Directive({\n selector: '[igxLabel]',\n standalone: true\n})\nexport class IgxLabelDirective {\n @HostBinding('class.igx-input-group__label')\n public defaultClass = true;\n\n /**\n * @hidden\n */\n @HostBinding('attr.id')\n @Input()\n public id = `igx-label-${NEXT_ID++}`;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * @hidden\n */\n@Directive({\n selector: '[igxPrefix],[igxStart],igx-prefix',\n standalone: true\n})\nexport class IgxPrefixDirective { }\n","import { Directive } from '@angular/core';\n\n/**\n * @hidden\n */\n@Directive({\n selector: '[igxSuffix],[igxEnd],igx-suffix',\n standalone: true\n})\nexport class IgxSuffixDirective { }\n","import { InjectionToken } from '@angular/core';\n\nexport const IgxInputGroupEnum = {\n Line: 'line',\n Box: 'box',\n Border: 'border',\n Search: 'search'\n} as const;\n\n/**\n * Defines the InputGroupType DI token.\n */\n// Should this go trough Interface https://angular.io/api/core/InjectionToken\nexport const IGX_INPUT_GROUP_TYPE = /*@__PURE__*/new InjectionToken<IgxInputGroupType>('InputGroupType');\n\n/**\n * Determines the InputGroupType.\n */\nexport type IgxInputGroupType = (typeof IgxInputGroupEnum)[keyof typeof IgxInputGroupEnum];\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n HostBinding,\n HostListener, Input,\n QueryList, booleanAttribute,\n inject,\n DOCUMENT,\n AfterContentChecked,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { IInputResourceStrings, InputResourceStringsEN } from 'igniteui-angular/core';\nimport { PlatformUtil, getComponentTheme } from 'igniteui-angular/core';\nimport { IgxButtonDirective } from 'igniteui-angular/directives';\nimport { IgxHintDirective } from './directives-hint/hint.directive';\nimport {\n IgxInputDirective,\n IgxInputState\n} from './directives-input/input.directive';\nimport { IgxPrefixDirective } from './directives-prefix/prefix.directive';\nimport { IgxSuffixDirective } from './directives-suffix/suffix.directive';\n\nimport { IgxInputGroupBase } from './input-group.common';\nimport { IgxInputGroupType, IGX_INPUT_GROUP_TYPE } from './inputGroupType';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\nimport { getCurrentResourceStrings, onResourceChangeHandle } from 'igniteui-angular/core';\nimport { IgxTheme, THEME_TOKEN, ThemeToken } from 'igniteui-angular/core';\n\n@Component({\n selector: 'igx-input-group',\n templateUrl: 'input-group.component.html',\n providers: [{ provide: IgxInputGroupBase, useExisting: IgxInputGroupComponent }],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [NgTemplateOutlet, IgxPrefixDirective, IgxButtonDirective, IgxSuffixDirective, IgxIconComponent]\n})\nexport class IgxInputGroupComponent implements IgxInputGroupBase, AfterContentChecked {\n public element = inject<ElementRef<HTMLElement>>(ElementRef);\n private _inputGroupType = inject<IgxInputGroupType>(IGX_INPUT_GROUP_TYPE, { optional: true });\n private document = inject(DOCUMENT);\n private platform = inject(PlatformUtil);\n private cdr = inject(ChangeDetectorRef);\n private themeToken = inject<ThemeToken>(THEME_TOKEN);\n\n /**\n * Sets the resource strings.\n * By default it uses EN resources.\n */\n @Input()\n public set resourceStrings(value: IInputResourceStrings) {\n this._resourceStrings = Object.assign({}, this._resourceStrings, value);\n }\n\n /**\n * Returns the resource strings.\n */\n public get resourceStrings(): IInputResourceStrings {\n return this._resourceStrings || this._defaultResourceStrings;\n }\n\n /**\n * Property that enables/disables the auto-generated class of the input group.\n * By default applied the class is applied.\n * ```typescript\n * @ViewChild(\"MyInputGroup\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * this.inputGroup.defaultClass = false;\n * ```\n * }\n */\n @HostBinding('class.igx-input-group')\n public defaultClass = true;\n\n /** @hidden */\n @HostBinding('class.igx-input-group--placeholder')\n public hasPlaceholder = false;\n\n /** @hidden */\n @HostBinding('class.igx-input-group--required')\n public isRequired = false;\n\n /** @hidden */\n @HostBinding('class.igx-input-group--focused')\n public isFocused = false;\n\n /**\n * @hidden @internal\n * When truthy, disables the input group.\n * Controlled by the underlying input.\n * ```html\n * <igx-input-group [disabled]=\"true\"></igx-input-group>\n * ```\n */\n @HostBinding('class.igx-input-group--disabled')\n public disabled = false;\n\n /**\n * Prevents automatically focusing the input when clicking on other elements in the input group (e.g. prefix or suffix).\n *\n * @remarks Automatic focus causes software keyboard to show on mobile devices.\n *\n * @example\n * ```html\n * <igx-input-group [suppressInputAutofocus]=\"true\"></igx-input-group>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public suppressInputAutofocus = false;\n\n /** @hidden */\n @HostBinding('class.igx-input-group--warning')\n public hasWarning = false;\n\n /** @hidden */\n @ContentChildren(IgxHintDirective, { read: IgxHintDirective })\n protected hints: QueryList<IgxHintDirective>;\n\n @ContentChildren(IgxPrefixDirective, { read: IgxPrefixDirective, descendants: true })\n protected _prefixes: QueryList<IgxPrefixDirective>;\n\n @ContentChildren(IgxSuffixDirective, { read: IgxSuffixDirective, descendants: true })\n protected _suffixes: QueryList<IgxSuffixDirective>;\n\n /** @hidden */\n @ContentChild(IgxInputDirective, { read: IgxInputDirective, static: true })\n protected input: IgxInputDirective;\n\n private _destroyRef = inject(DestroyRef);\n private _type: IgxInputGroupType = null;\n private _filled = false;\n private _theme: IgxTheme;\n private _resourceStrings: IInputResourceStrings = null;\n private _defaultResourceStrings = getCurrentResourceStrings(InputResourceStringsEN);\n private _readOnly: undefined | boolean;\n\n /** @hidden @internal */\n @HostBinding('class.igx-input-group--readonly')\n public get readOnly(): boolean {\n return this._readOnly ?? (this.input?.nativeElement.readOnly || false);\n }\n\n /** @hidden @internal */\n public set readOnly(value: boolean) {\n this._readOnly = value;\n }\n\n /** @hidden */\n @HostBinding('class.igx-input-group--valid')\n public get validClass(): boolean {\n return this.input.valid === IgxInputState.VALID;\n }\n\n /** @hidden */\n @HostBinding('class.igx-input-group--invalid')\n public get invalidClass(): boolean {\n return this.input.valid === IgxInputState.INVALID;\n }\n\n /** @hidden */\n @HostBinding('class.igx-input-group--filled')\n public get isFilled() {\n return this._filled || (this.input && this.input.value);\n }\n\n /** @hidden */\n @HostBinding('class.igx-input-group--textarea-group')\n public get textAreaClass(): boolean {\n return this.input.isTextArea;\n }\n\n /**\n * Sets how the input will be styled.\n * Allowed values of type input group type.\n * ```html\n * <igx-input-group [type]=\"'search'\">\n * ```\n */\n @Input()\n public set type(value: IgxInputGroupType) {\n this._type = value;\n }\n\n /**\n * Returns the type of the input group. How the input is styled.\n * The default is `box`.\n * ```typescript\n * @ViewChild(\"MyInputGroup\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let inputType = this.inputGroup.type;\n * }\n * ```\n */\n public get type() {\n return this._type || this._inputGroupType || 'box';\n }\n\n /**\n * Sets the theme of the input.\n * Allowed values of type input group theme.\n * ```typescript\n * @ViewChild(\"MyInputGroup\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit() {\n * let inputTheme = 'fluent';\n * }\n */\n @Input()\n public set theme(value: IgxTheme) {\n this._theme = value;\n }\n\n /**\n * Returns the theme of the input.\n * The returned value is of type input group type.\n * ```typescript\n * @ViewChild(\"MyInputGroup\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit() {\n * let inputTheme = this.inputGroup.theme;\n * }\n */\n public get theme(): IgxTheme {\n return this._theme;\n }\n\n constructor() {\n this._theme = this.themeToken.theme;\n const themeChange = this.themeToken.onChange((theme) => {\n if (this._theme !== theme) {\n this._theme = theme;\n this.cdr.detectChanges();\n }\n });\n this._destroyRef.onDestroy(() => themeChange.unsubscribe());\n onResourceChangeHandle(this._destroyRef, () => {\n this._defaultResourceStrings = getCurrentResourceStrings(InputResourceStringsEN, false);\n }, this);\n }\n\n /** @hidden */\n @HostListener('click', ['$event'])\n public onClick(event: MouseEvent) {\n if (\n !this.isFocused &&\n event.target !== this.input.nativeElement &&\n !this.suppressInputAutofocus\n ) {\n this.input.focus();\n }\n }\n\n /** @hidden */\n @HostListener('pointerdown', ['$event'])\n public onPointerDown(event: PointerEvent) {\n if (this.isFocused && event.target !== this.input.nativeElement) {\n event.preventDefault();\n }\n }\n\n /** @hidden @internal */\n public hintClickHandler(event: MouseEvent) {\n event.stopPropagation();\n }\n\n /**\n * Returns whether the input group has hints.\n * ```typescript\n * @ViewChild(\"MyInputGroup\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let inputHints = this.inputGroup.hasHints;\n * }\n * ```\n */\n public get hasHints() {\n return this.hints.length > 0;\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-input-group--prefixed')\n public get hasPrefixes() {\n return this._prefixes.length > 0;\n }\n\n /** @hidden @internal */\n public set prefixes(items: QueryList<IgxPrefixDirective>) {\n this._prefixes = items;\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-input-group--suffixed')\n public get hasSuffixes() {\n return this._suffixes.length > 0 || this.isFileType && this.isFilled;\n }\n\n /** @hidden @internal */\n public set suffixes(items: QueryList<IgxSuffixDirective>) {\n this._suffixes = items;\n }\n\n /**\n * Returns whether the input group has border.\n * ```typescript\n * @ViewChild(\"MyInputGroup\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let inputBorder = this.inputGroup.hasBorder;\n * }\n * ```\n */\n public get hasBorder() {\n return (\n (this.type === 'line' || this.type === 'box') &&\n this._theme === 'material'\n );\n }\n\n /**\n * Returns whether the input group type is line.\n * ```typescript\n * @ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeLine = this.inputGroup.isTypeLine;\n * }\n * ```\n */\n public get isTypeLine(): boolean {\n return this.type === 'line' && this._theme === 'material';\n }\n\n /**\n * Returns whether the input group type is box.\n * ```typescript\n * @ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeBox = this.inputGroup.isTypeBox;\n * }\n * ```\n */\n @HostBinding('class.igx-input-group--box')\n public get isTypeBox() {\n return this.type === 'box' && this._theme === 'material';\n }\n\n /** @hidden @internal */\n public clearValueHandler() {\n this.input.clear();\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-input-group--file')\n public get isFileType() {\n return this.input.type === 'file';\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-file-input')\n public get isFileInput() {\n return this.input.type === 'file';\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-file-input--filled')\n public get isFileInputFilled() {\n return this.isFileType && this.isFilled;\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-file-input--focused')\n public get isFileInputFocused() {\n return this.isFileType && this.isFocused;\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-file-input--disabled')\n public get isFileInputDisabled() {\n return this.isFileType && this.disabled;\n }\n\n /** @hidden @internal */\n public get fileNames() {\n return this.input.fileNames || this.resourceStrings.igx_input_file_placeholder;\n }\n\n /**\n * Returns whether the input group type is border.\n * ```typescript\n * @ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeBorder = this.inputGroup.isTypeBorder;\n * }\n * ```\n */\n @HostBinding('class.igx-input-group--border')\n public get isTypeBorder() {\n return this.type === 'border' && this._theme === 'material';\n }\n\n /**\n * Returns true if the input group theme is Fluent.\n * ```typescript\n * @ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeFluent = this.inputGroup.isTypeFluent;\n * }\n * ```\n */\n @HostBinding('class.igx-input-group--fluent')\n public get isTypeFluent() {\n return this._theme === 'fluent';\n }\n\n /**\n * Returns true if the input group theme is Bootstrap.\n * ```typescript\n * @ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeBootstrap = this.inputGroup.isTypeBootstrap;\n * }\n * ```\n */\n @HostBinding('class.igx-input-group--bootstrap')\n public get isTypeBootstrap() {\n return this._theme === 'bootstrap';\n }\n\n /**\n * Returns true if the input group theme is Indigo.\n * ```typescript\n * @ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeIndigo = this.inputGroup.isTypeIndigo;\n * }\n * ```\n */\n @HostBinding('class.igx-input-group--indigo')\n public get isTypeIndigo() {\n return this._theme === 'indigo';\n }\n\n /**\n * Returns whether the input group type is search.\n * ```typescript\n * @ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeSearch = this.inputGroup.isTypeSearch;\n * }\n * ```\n */\n @HostBinding('class.igx-input-group--search')\n public get isTypeSearch() {\n if(!this.isFileType && !this.input.isTextArea) {\n return this.type === 'search';\n }\n }\n\n /** @hidden */\n public get filled() {\n return this._filled;\n }\n\n /** @hidden */\n public set filled(val) {\n this._filled = val;\n }\n\n private setComponentTheme() {\n if (!this.themeToken.preferToken) {\n const theme = getComponentTheme(this.element.nativeElement);\n\n if (theme && theme !== this._theme) {\n this.theme = theme;\n this.cdr.markForCheck();\n }\n }\n }\n\n /** @hidden @internal */\n public ngAfterContentChecked() {\n this.setComponentTheme();\n }\n}\n","@if (isTypeBox) {\n <div class=\"igx-input-group__wrapper\">\n <ng-container *ngTemplateOutlet=\"bundle\"></ng-container>\n </div>\n} @else {\n <ng-container *ngTemplateOutlet=\"bundle\"></ng-container>\n}\n\n<div class=\"igx-input-group__hint\" (click)=\"hintClickHandler($event)\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n</div>\n\n<ng-template #label>\n <ng-content select=\"[igxLabel]\"></ng-content>\n</ng-template>\n\n<ng-template #input>\n <ng-content select=\"[igxInput]\"></ng-content>\n</ng-template>\n\n<ng-template #prefix>\n <ng-content select=\"igx-prefix, [igxPrefix]\"></ng-content>\n</ng-template>\n\n<!-- Dummy usage to satisfy Angular compiler -->\n<ng-template #dummy><span igxPrefix hidden></span></ng-template>\n\n<ng-template #uploadButton>\n @if (isFileType) {\n <div class=\"igx-input-group__upload-button igx-file-input__upload-button-wrapper\">\n <button\n igxButton=\"flat\"\n type=\"button\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n class=\"igx-file-input__upload-button\"\n >\n {{ resourceStrings.igx_input_upload_button }}\n </button>\n </div>\n }\n</ng-template>\n\n<ng-template #files>\n @if (isFileType) {\n <div\n class=\"igx-input-group__file-input igx-file-input__file-names\"\n [title]=\"fileNames\"\n >\n <span>{{ fileNames }}</span>\n </div>\n }\n</ng-template>\n\n<ng-template #clear>\n @if (isFileType && isFilled) {\n <igx-suffix\n class=\"igx-input-group__clear-icon igx-file-input__clear-icon\"\n (click)=\"clearValueHandler()\"\n (keydown.Enter)=\"clearValueHandler()\"\n title=\"clear files\"\n tabindex=\"0\"\n >\n <igx-icon family=\"default\" name=\"input_clear\"></igx-icon>\n </igx-suffix>\n }\n</ng-template>\n\n<ng-template #suffix>\n <ng-content select=\"igx-suffix, [igxSuffix]\"></ng-content>\n</ng-template>\n\n<ng-template #materialBundle>\n <div class=\"igx-input-group__bundle\">\n <div class=\"igx-input-group__bundle-start\">\n <ng-container *ngTemplateOutlet=\"prefix\"></ng-container>\n </div>\n\n <ng-container>\n <div class=\"igx-input-group__notch\">\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </div>\n </ng-container>\n\n <div class=\"igx-input-group__bundle-main\">\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"files\"></ng-container>\n </div>\n\n <div class=\"igx-input-group__filler\"></div>\n\n <div class=\"igx-input-group__bundle-end\">\n <ng-container *ngTemplateOutlet=\"clear\"></ng-container>\n <ng-container *ngTemplateOutlet=\"suffix\"></ng-container>\n </div>\n\n @if (hasBorder) {\n <div class=\"igx-input-group__line\"></div>\n }\n </div>\n</ng-template>\n\n<ng-template #fluentBundle>\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n\n <div class=\"igx-input-group__bundle\">\n <div class=\"igx-input-group__bundle-start\">\n <ng-container *ngTemplateOutlet=\"prefix\"></ng-container>\n </div>\n\n\n <div class=\"igx-input-group__bundle-main\">\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"files\"></ng-container>\n </div>\n\n <div class=\"igx-input-group__bundle-end\">\n <ng-container *ngTemplateOutlet=\"clear\"></ng-container>\n <ng-container *ngTemplateOutlet=\"suffix\"></ng-container>\n </div>\n\n @if (hasBorder) {\n <div class=\"igx-input-group__line\"></div>\n }\n </div>\n</ng-template>\n\n<ng-template #bootstrapBundle>\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n\n <div class=\"igx-input-group__bundle\">\n <div class=\"igx-input-group__bundle-start\">\n <ng-container *ngTemplateOutlet=\"prefix\"></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"files\"></ng-container>\n\n <div class=\"igx-input-group__bundle-end\">\n <ng-container *ngTemplateOutlet=\"clear\"></ng-container>\n <ng-container *ngTemplateOutlet=\"suffix\"></ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #bundle>\n @switch (theme) {\n @case ('bootstrap') {\n <ng-container *ngTemplateOutlet=\"bootstrapBundle\"></ng-container>\n }\n @case ('fluent') {\n <ng-container *ngTemplateOutlet=\"fluentBundle\"></ng-container>\n }\n @case ('indigo') {\n <ng-container *ngTemplateOutlet=\"fluentBundle\"></ng-container>\n }\n @default {\n <ng-container *ngTemplateOutlet=\"materialBundle\"></ng-container>\n }\n }\n</ng-template>\n","import { Directive, effect, inject, input } from '@angular/core';\nimport { IgxInputGroupComponent } from '../input-group.component';\n\n@Directive({\n selector: '[igxReadOnlyInput]',\n exportAs: 'igxReadOnlyInput',\n standalone: true\n})\nexport class IgxReadOnlyInputDirective {\n public igxReadOnlyInput = input<boolean>(false);\n\n private _inputGroup: IgxInputGroupComponent | null = inject(\n IgxInputGroupComponent,\n {\n optional: true\n }\n );\n\n constructor() {\n effect(() => {\n if (this._inputGroup) {\n this._inputGroup.readOnly = this.igxReadOnlyInput();\n }\n });\n }\n}\n","import { IgxHintDirective } from './directives-hint/hint.directive';\nimport { IgxInputDirective } from './directives-input/input.directive';\nimport { IgxLabelDirective } from './directives-label/label.directive';\nimport { IgxPrefixDirective } from './directives-prefix/prefix.directive';\nimport { IgxSuffixDirective } from './directives-suffix/suffix.directive';\nimport { IgxInputGroupComponent } from './input-group.component';\n\nexport * from './input-group.component';\nexport * from './input-group.common';\nexport * from './directives-hint/hint.directive';\nexport * from './directives-input/input.directive';\nexport * from './directives-input/read-only-input.directive';\nexport * from './directives-label/label.directive';\nexport * from './directives-prefix/prefix.directive';\nexport * from './directives-suffix/suffix.directive';\nexport * from './inputGroupType';\n\n/* NOTE: Input group directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_INPUT_GROUP_DIRECTIVES = [\n IgxInputGroupComponent,\n IgxInputDirective,\n IgxLabelDirective,\n IgxPrefixDirective,\n IgxSuffixDirective,\n IgxHintDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_INPUT_GROUP_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * @deprecated\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_INPUT_GROUP_DIRECTIVES\n ],\n exports: [\n ...IGX_INPUT_GROUP_DIRECTIVES\n ]\n})\n\nexport class IgxInputGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxInputGroupComponent","i2.IgxInputDirective","i3.IgxLabelDirective","i4.IgxPrefixDirective","i5.IgxSuffixDirective","i6.IgxHintDirective"],"mappings":"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"}
@@ -197,7 +197,7 @@ class IgxListItemComponent {
197
197
  }
198
198
  /**
199
199
  * Returns the `context` object which represents the `template context` binding into the `list item container`
200
- * by providing the `$implicit` declaration which is the `IgxListItemComponent` itself.
200
+ * by providing the `$implicit` declaration which is the list item itself.
201
201
  * ```typescript
202
202
  * let listItemComponent = this.listItem.context;
203
203
  * ```
@@ -792,7 +792,7 @@ class IgxListComponent extends IgxListBaseDirective {
792
792
  * Event emitted when a pan item is returned to its original position.
793
793
  *
794
794
  * @remarks
795
- * Provides a reference to an object of type `IgxListComponent` as an event argument.
795
+ * Provides a reference to an object of type list as an event argument.
796
796
  *
797
797
  * @example
798
798
  * ```html
@@ -805,7 +805,7 @@ class IgxListComponent extends IgxListBaseDirective {
805
805
  * Event emitted when a pan gesture is executed on a list item.
806
806
  *
807
807
  * @remarks
808
- * Provides references to the `IgxListItemComponent` and `IgxListPanState` as event arguments.
808
+ * Provides references to the list item and list pan state as event arguments.
809
809
  *
810
810
  * @example
811
811
  * ```html
@@ -817,7 +817,7 @@ class IgxListComponent extends IgxListBaseDirective {
817
817
  * Event emitted when a list item is clicked.
818
818
  *
819
819
  * @remarks
820
- * Provides references to the `IgxListItemComponent` and `Event` as event arguments.
820
+ * Provides references to the list item and `Event` as event arguments.
821
821
  *
822
822
  * @example
823
823
  * ```html
@@ -918,7 +918,7 @@ class IgxListComponent extends IgxListBaseDirective {
918
918
  *
919
919
  * @remarks
920
920
  * Gets the `context` object which represents the `template context` binding into the `list container`
921
- * by providing the `$implicit` declaration which is the `IgxListComponent` itself.
921
+ * by providing the `$implicit` declaration which is the list itself.
922
922
  *
923
923
  * @example
924
924
  * ```typescript