@eui/components 19.0.3 → 19.0.4

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 (170) hide show
  1. package/directives/eui-has-permission.directive.d.ts +70 -2
  2. package/directives/eui-has-permission.directive.d.ts.map +1 -1
  3. package/directives/eui-maxlength.directive.d.ts +94 -10
  4. package/directives/eui-maxlength.directive.d.ts.map +1 -1
  5. package/docs/components/EuiAlertComponent.html +129 -0
  6. package/docs/components/EuiAlertTitleComponent.html +12 -0
  7. package/docs/components/EuiChipComponent.html +108 -1
  8. package/docs/components/EuiInputCheckboxComponent.html +169 -10
  9. package/docs/components/EuiInputGroupAddOnComponent.html +22 -0
  10. package/docs/components/EuiInputGroupAddOnItemComponent.html +30 -0
  11. package/docs/components/EuiInputGroupComponent.html +35 -0
  12. package/docs/components/EuiInputNumberComponent.html +83 -4
  13. package/docs/components/EuiInputRadioComponent.html +228 -0
  14. package/docs/components/EuiInputTextComponent.html +50 -0
  15. package/docs/components/EuiPaginatorComponent.html +204 -0
  16. package/docs/components/EuiTextareaComponent.html +207 -1
  17. package/docs/dependencies.html +2 -2
  18. package/docs/directives/AutoResizeDirective.html +49 -1
  19. package/docs/directives/EuiHasPermissionDirective.html +34 -0
  20. package/docs/directives/EuiInputNumberDirective.html +17 -0
  21. package/docs/directives/EuiMaxLengthDirective.html +35 -7
  22. package/docs/js/menu-wc.js +65 -119
  23. package/docs/js/menu-wc_es5.js +1 -1
  24. package/docs/js/search/search_index.js +2 -2
  25. package/docs/miscellaneous/functions.html +14 -0
  26. package/docs/modules/EuiAlertModule.html +11 -0
  27. package/docs/modules/EuiChipModule.html +11 -0
  28. package/docs/modules/EuiHasPermissionDirectiveModule.html +17 -3
  29. package/docs/modules/EuiInputCheckboxModule.html +25 -4
  30. package/docs/modules/EuiInputGroupModule.html +20 -5
  31. package/docs/modules/EuiInputNumberModule.html +26 -5
  32. package/docs/modules/EuiInputRadioModule.html +27 -4
  33. package/docs/modules/EuiInputTextModule.html +25 -4
  34. package/docs/modules/EuiMaxLengthDirectiveModule.html +25 -4
  35. package/docs/modules/EuiPaginatorModule.html +11 -0
  36. package/docs/modules/EuiTextAreaModule.html +20 -4
  37. package/eui-alert/components/eui-alert-title.component.d.ts +1 -0
  38. package/eui-alert/components/eui-alert-title.component.d.ts.map +1 -1
  39. package/eui-alert/eui-alert.component.d.ts +74 -0
  40. package/eui-alert/eui-alert.component.d.ts.map +1 -1
  41. package/eui-alert/eui-alert.module.d.ts +12 -0
  42. package/eui-alert/eui-alert.module.d.ts.map +1 -1
  43. package/eui-chip/eui-chip.component.d.ts +71 -0
  44. package/eui-chip/eui-chip.component.d.ts.map +1 -1
  45. package/eui-chip/eui-chip.module.d.ts +12 -0
  46. package/eui-chip/eui-chip.module.d.ts.map +1 -1
  47. package/eui-input-checkbox/eui-input-checkbox.component.d.ts +88 -11
  48. package/eui-input-checkbox/eui-input-checkbox.component.d.ts.map +1 -1
  49. package/eui-input-checkbox/eui-input-checkbox.module.d.ts +17 -3
  50. package/eui-input-checkbox/eui-input-checkbox.module.d.ts.map +1 -1
  51. package/eui-input-group/eui-input-group-addon-item.component.d.ts +33 -1
  52. package/eui-input-group/eui-input-group-addon-item.component.d.ts.map +1 -1
  53. package/eui-input-group/eui-input-group-addon.component.d.ts +40 -2
  54. package/eui-input-group/eui-input-group-addon.component.d.ts.map +1 -1
  55. package/eui-input-group/eui-input-group.component.d.ts +44 -1
  56. package/eui-input-group/eui-input-group.component.d.ts.map +1 -1
  57. package/eui-input-group/eui-input-group.module.d.ts +21 -5
  58. package/eui-input-group/eui-input-group.module.d.ts.map +1 -1
  59. package/eui-input-number/eui-input-number.component.d.ts +73 -9
  60. package/eui-input-number/eui-input-number.component.d.ts.map +1 -1
  61. package/eui-input-number/eui-input-number.module.d.ts +19 -4
  62. package/eui-input-number/eui-input-number.module.d.ts.map +1 -1
  63. package/eui-input-number/eui-number-control.directive.d.ts +27 -2
  64. package/eui-input-number/eui-number-control.directive.d.ts.map +1 -1
  65. package/eui-input-radio/eui-input-radio.component.d.ts +96 -1
  66. package/eui-input-radio/eui-input-radio.component.d.ts.map +1 -1
  67. package/eui-input-radio/eui-input-radio.module.d.ts +20 -3
  68. package/eui-input-radio/eui-input-radio.module.d.ts.map +1 -1
  69. package/eui-input-text/eui-input-text.component.d.ts +54 -1
  70. package/eui-input-text/eui-input-text.component.d.ts.map +1 -1
  71. package/eui-input-text/eui-input-text.module.d.ts +19 -3
  72. package/eui-input-text/eui-input-text.module.d.ts.map +1 -1
  73. package/eui-paginator/eui-paginator.component.d.ts +148 -4
  74. package/eui-paginator/eui-paginator.component.d.ts.map +1 -1
  75. package/eui-paginator/eui-paginator.module.d.ts +12 -0
  76. package/eui-paginator/eui-paginator.module.d.ts.map +1 -1
  77. package/eui-textarea/auto-resize.directive.d.ts +90 -3
  78. package/eui-textarea/auto-resize.directive.d.ts.map +1 -1
  79. package/eui-textarea/eui-textarea.component.d.ts +111 -5
  80. package/eui-textarea/eui-textarea.component.d.ts.map +1 -1
  81. package/eui-textarea/eui-textarea.module.d.ts +23 -4
  82. package/eui-textarea/eui-textarea.module.d.ts.map +1 -1
  83. package/eui-timepicker/eui-timepicker.component.d.ts.map +1 -1
  84. package/fesm2022/eui-components-directives.mjs +180 -34
  85. package/fesm2022/eui-components-directives.mjs.map +1 -1
  86. package/fesm2022/eui-components-eui-accordion.mjs +1 -1
  87. package/fesm2022/eui-components-eui-alert.mjs +85 -3
  88. package/fesm2022/eui-components-eui-alert.mjs.map +1 -1
  89. package/fesm2022/eui-components-eui-autocomplete.mjs +2 -2
  90. package/fesm2022/eui-components-eui-avatar.mjs +1 -1
  91. package/fesm2022/eui-components-eui-badge.mjs +1 -1
  92. package/fesm2022/eui-components-eui-block-content.mjs +1 -1
  93. package/fesm2022/eui-components-eui-block-document.mjs +1 -1
  94. package/fesm2022/eui-components-eui-breadcrumb.mjs +1 -1
  95. package/fesm2022/eui-components-eui-button-group.mjs +1 -1
  96. package/fesm2022/eui-components-eui-button-v2.mjs +1 -1
  97. package/fesm2022/eui-components-eui-button.mjs +1 -1
  98. package/fesm2022/eui-components-eui-card.mjs +3 -3
  99. package/fesm2022/eui-components-eui-card.mjs.map +1 -1
  100. package/fesm2022/eui-components-eui-chip-group.mjs +1 -1
  101. package/fesm2022/eui-components-eui-chip-list.mjs +1 -1
  102. package/fesm2022/eui-components-eui-chip.mjs +75 -1
  103. package/fesm2022/eui-components-eui-chip.mjs.map +1 -1
  104. package/fesm2022/eui-components-eui-dashboard-button.mjs +1 -1
  105. package/fesm2022/eui-components-eui-dashboard-card.mjs +1 -1
  106. package/fesm2022/eui-components-eui-date-range-selector.mjs +5 -5
  107. package/fesm2022/eui-components-eui-date-range-selector.mjs.map +1 -1
  108. package/fesm2022/eui-components-eui-datepicker.mjs +1 -1
  109. package/fesm2022/eui-components-eui-dialog.mjs +1 -1
  110. package/fesm2022/eui-components-eui-dimmer.mjs +1 -1
  111. package/fesm2022/eui-components-eui-disable-content.mjs +1 -1
  112. package/fesm2022/eui-components-eui-discussion-thread.mjs +1 -1
  113. package/fesm2022/eui-components-eui-dropdown.mjs +2 -2
  114. package/fesm2022/eui-components-eui-feedback-message.mjs +1 -1
  115. package/fesm2022/eui-components-eui-fieldset.mjs +1 -1
  116. package/fesm2022/eui-components-eui-file-upload.mjs +1 -1
  117. package/fesm2022/eui-components-eui-growl.mjs +1 -1
  118. package/fesm2022/eui-components-eui-icon-button-expander.mjs +1 -1
  119. package/fesm2022/eui-components-eui-icon-button.mjs +1 -1
  120. package/fesm2022/eui-components-eui-icon-color.mjs +1 -1
  121. package/fesm2022/eui-components-eui-icon-input.mjs +1 -1
  122. package/fesm2022/eui-components-eui-icon-state.mjs +1 -1
  123. package/fesm2022/eui-components-eui-icon-toggle.mjs +1 -1
  124. package/fesm2022/eui-components-eui-icon.mjs +1 -1
  125. package/fesm2022/eui-components-eui-input-checkbox.mjs +104 -14
  126. package/fesm2022/eui-components-eui-input-checkbox.mjs.map +1 -1
  127. package/fesm2022/eui-components-eui-input-group.mjs +142 -12
  128. package/fesm2022/eui-components-eui-input-group.mjs.map +1 -1
  129. package/fesm2022/eui-components-eui-input-number.mjs +109 -13
  130. package/fesm2022/eui-components-eui-input-number.mjs.map +1 -1
  131. package/fesm2022/eui-components-eui-input-radio.mjs +117 -6
  132. package/fesm2022/eui-components-eui-input-radio.mjs.map +1 -1
  133. package/fesm2022/eui-components-eui-input-text.mjs +73 -6
  134. package/fesm2022/eui-components-eui-input-text.mjs.map +1 -1
  135. package/fesm2022/eui-components-eui-label.mjs +1 -1
  136. package/fesm2022/eui-components-eui-language-selector.mjs +1 -1
  137. package/fesm2022/eui-components-eui-list.mjs +1 -1
  138. package/fesm2022/eui-components-eui-menu.mjs +1 -1
  139. package/fesm2022/eui-components-eui-message-box.mjs +1 -1
  140. package/fesm2022/eui-components-eui-navbar.mjs +1 -1
  141. package/fesm2022/eui-components-eui-overlay.mjs +1 -1
  142. package/fesm2022/eui-components-eui-page.mjs +1 -1
  143. package/fesm2022/eui-components-eui-paginator.mjs +153 -6
  144. package/fesm2022/eui-components-eui-paginator.mjs.map +1 -1
  145. package/fesm2022/eui-components-eui-popover.mjs +1 -1
  146. package/fesm2022/eui-components-eui-progress-bar.mjs +1 -1
  147. package/fesm2022/eui-components-eui-progress-circle.mjs +1 -1
  148. package/fesm2022/eui-components-eui-select.mjs +1 -1
  149. package/fesm2022/eui-components-eui-sidebar-menu.mjs +1 -1
  150. package/fesm2022/eui-components-eui-skeleton.mjs +1 -1
  151. package/fesm2022/eui-components-eui-slide-toggle.mjs +2 -2
  152. package/fesm2022/eui-components-eui-split-button.mjs +1 -1
  153. package/fesm2022/eui-components-eui-table-v2.mjs +1 -1
  154. package/fesm2022/eui-components-eui-table.mjs +1 -1
  155. package/fesm2022/eui-components-eui-tabs.mjs +1 -1
  156. package/fesm2022/eui-components-eui-textarea.mjs +221 -15
  157. package/fesm2022/eui-components-eui-textarea.mjs.map +1 -1
  158. package/fesm2022/eui-components-eui-timebar.mjs +1 -1
  159. package/fesm2022/eui-components-eui-timeline.mjs +1 -1
  160. package/fesm2022/eui-components-eui-timepicker.mjs +36 -29
  161. package/fesm2022/eui-components-eui-timepicker.mjs.map +1 -1
  162. package/fesm2022/eui-components-eui-tree-list.mjs +1 -1
  163. package/fesm2022/eui-components-eui-tree.mjs +1 -1
  164. package/fesm2022/eui-components-eui-user-profile.mjs +1 -1
  165. package/fesm2022/eui-components-eui-wizard.mjs +1 -1
  166. package/fesm2022/eui-components-externals-eui-editor.mjs +1 -1
  167. package/fesm2022/eui-components-externals-quill.mjs +1 -1
  168. package/fesm2022/eui-components-layout.mjs +2 -2
  169. package/fesm2022/eui-components-shared.mjs +2 -2
  170. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-input-group.mjs","sources":["../../eui-input-group/eui-input-group.component.ts","../../eui-input-group/eui-input-group-addon.component.ts","../../eui-input-group/eui-input-group-addon-item.component.ts","../../eui-input-group/eui-input-group.module.ts","../../eui-input-group/eui-components-eui-input-group.ts"],"sourcesContent":["import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[euiInputGroup]',\n styleUrls: ['./styles/_index.scss'],\n template: '<ng-content/>',\n standalone: false,\n})\nexport class EuiInputGroupComponent {\n @HostBinding('attr.data-e2e') @Input() e2eAttr = 'eui-input-group';\n @HostBinding('class')\n public get cssClasses(): string {\n return 'eui-input-group';\n }\n\n @HostBinding('attr.type') protected type = 'inputGroup';\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[euiInputGroupAddOn], eui-input-group-addon',\n styleUrls: ['./styles/eui-input-group-addon.scss'],\n template: '<ng-content></ng-content>',\n standalone: false,\n})\nexport class EuiInputGroupAddOnComponent {\n @HostBinding('attr.data-e2e') @Input() e2eAttr = 'eui-input-group-addon';\n @HostBinding('class')\n public get cssClasses(): string {\n return 'eui-input-group-addon';\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[euiInputGroupAddOnItem], eui-input-group-addon-item',\n styleUrls: ['./styles/eui-input-group-addon-item.scss'],\n template: '<ng-content></ng-content>',\n standalone: false,\n})\nexport class EuiInputGroupAddOnItemComponent {\n @HostBinding('attr.data-e2e') @Input() e2eAttr = 'eui-input-group-addon-item';\n @HostBinding('class')\n public get cssClasses(): string {\n return 'eui-input-group-addon-item';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EuiInputGroupComponent } from './eui-input-group.component';\nimport { EuiInputGroupAddOnComponent } from './eui-input-group-addon.component';\nimport { EuiInputGroupAddOnItemComponent } from './eui-input-group-addon-item.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n EuiInputGroupComponent,\n EuiInputGroupAddOnComponent,\n EuiInputGroupAddOnItemComponent,\n ],\n exports: [\n EuiInputGroupComponent,\n EuiInputGroupAddOnComponent,\n EuiInputGroupAddOnItemComponent,\n ],\n})\nexport class EuiInputGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-components-eui-input-group.mjs","sources":["../../eui-input-group/eui-input-group.component.ts","../../eui-input-group/eui-input-group-addon.component.ts","../../eui-input-group/eui-input-group-addon-item.component.ts","../../eui-input-group/eui-input-group.module.ts","../../eui-input-group/eui-components-eui-input-group.ts"],"sourcesContent":["import { Component, HostBinding, Input } from '@angular/core';\n\n/**\n * @description\n * A component that serves as the main container for input group elements.\n * Can only be used as an attribute selector on a div element.\n *\n * @example\n * ```html\n * <div euiInputGroup>\n * <eui-input-group-addon>\n * <eui-input-group-addon-item>Prefix</eui-input-group-addon-item>\n * </eui-input-group-addon>\n * <input type=\"text\">\n * <eui-input-group-addon>\n * <eui-input-group-addon-item>Suffix</eui-input-group-addon-item>\n * </eui-input-group-addon>\n * </div>\n * ```\n *\n * @selector div[euiInputGroup]\n * @standalone false\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[euiInputGroup]',\n styleUrls: ['./styles/_index.scss'],\n template: '<ng-content/>',\n standalone: true,\n})\nexport class EuiInputGroupComponent {\n /**\n * @description\n * Input property for setting the data-e2e attribute value.\n * Used for end-to-end testing purposes.\n *\n * @default 'eui-input-group'\n */\n @HostBinding('attr.data-e2e') @Input() e2eAttr = 'eui-input-group';\n /**\n * @description\n * Getter that returns the CSS class for the component.\n * Bound to the host element's class attribute.\n *\n * @returns {string} The CSS class name\n */\n @HostBinding('class')\n public get cssClasses(): string {\n return 'eui-input-group';\n }\n\n /**\n * @description\n * Protected property that defines the type of the input group.\n * Bound to the host element's type attribute.\n *\n * @protected\n * @default 'inputGroup'\n */\n @HostBinding('attr.type') protected type = 'inputGroup';\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\n/**\n * @description\n * A component that serves as a container for input group add-on items.\n * Can be used either as an attribute selector on a div or as a custom element.\n *\n * @example\n * As an attribute\n * ```html\n * <div euiInputGroupAddOn>\n * <div euiInputGroupAddOnItem>Item 1</div>\n * <div euiInputGroupAddOnItem>Item 2</div>\n * </div>\n * ```\n *\n * As an element\n * ```html\n * <eui-input-group-addon>\n * <eui-input-group-addon-item>Item 1</eui-input-group-addon-item>\n * <eui-input-group-addon-item>Item 2</eui-input-group-addon-item>\n * </eui-input-group-addon>\n * ```\n *\n * @selector div[euiInputGroupAddOn], eui-input-group-addon\n * @standalone false\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[euiInputGroupAddOn], eui-input-group-addon',\n styleUrls: ['./styles/eui-input-group-addon.scss'],\n template: '<ng-content></ng-content>',\n standalone: true,\n})\nexport class EuiInputGroupAddOnComponent {\n /**\n * @description\n * Input property for setting the data-e2e attribute value.\n * Used for end-to-end testing purposes.\n *\n * @default 'eui-input-group-addon'\n */\n @HostBinding('attr.data-e2e') @Input() e2eAttr = 'eui-input-group-addon';/**\n * @description\n * Getter that returns the CSS class for the component.\n * Bound to the host element's class attribute.\n *\n * @returns {string} The CSS class name\n */\n @HostBinding('class')\n public get cssClasses(): string {\n return 'eui-input-group-addon';\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\n/**\n * @description\n * A component that represents an individual item within an input group add-on.\n * Can be used either as an attribute selector on a div or as a custom element.\n *\n * @example\n * As an attribute\n * ```html\n * <div euiInputGroupAddOnItem>Content</div>\n * ```\n *\n * As an element\n * ```html\n * <eui-input-group-addon-item>Content</eui-input-group-addon-item>\n * ```\n *\n * @selector div[euiInputGroupAddOnItem], eui-input-group-addon-item\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[euiInputGroupAddOnItem], eui-input-group-addon-item',\n styleUrls: ['./styles/eui-input-group-addon-item.scss'],\n template: '<ng-content></ng-content>',\n standalone: true,\n})\nexport class EuiInputGroupAddOnItemComponent {\n /**\n * @description\n * Input property for setting the data-e2e attribute value.\n * Used for end-to-end testing purposes.\n *\n * @default 'eui-input-group-addon-item'\n */\n @HostBinding('attr.data-e2e') @Input() e2eAttr = 'eui-input-group-addon-item';\n /**\n * @description\n * Getter that returns the CSS class for the component.\n * Bound to the host element's class attribute.\n *\n * @returns {string} The CSS class name\n */\n @HostBinding('class')\n public get cssClasses(): string {\n return 'eui-input-group-addon-item';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EuiInputGroupComponent } from './eui-input-group.component';\nimport { EuiInputGroupAddOnComponent } from './eui-input-group-addon.component';\nimport { EuiInputGroupAddOnItemComponent } from './eui-input-group-addon-item.component';\n\n/**\n * @description\n * Angular module that provides input group components for the EUI framework.\n * Includes the main input group component and its add-on components.\n *\n * @example\n * // In your app.module.ts or feature module:\n * import { EuiInputGroupModule } from '@eui/input-group';\n *\n * @NgModule({\n * imports: [\n * EuiInputGroupModule\n * ]\n * })\n * export class YourModule { }\n */\n@NgModule({\n imports: [\n CommonModule,\n EuiInputGroupComponent,\n EuiInputGroupAddOnComponent,\n EuiInputGroupAddOnItemComponent,\n ],\n exports: [\n EuiInputGroupComponent,\n EuiInputGroupAddOnComponent,\n EuiInputGroupAddOnItemComponent,\n ],\n})\nexport class EuiInputGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { LOCALE_ID, PLATFORM_ID, numberAttribute, booleanAttribute, Component, Optional, Inject, Input, HostBinding, HostListener, forwardRef, Directive, NgModule } from '@angular/core';
2
+ import { LOCALE_ID, PLATFORM_ID, booleanAttribute, numberAttribute, HostListener, Input, HostBinding, Optional, Inject, Component, forwardRef, Directive, NgModule } from '@angular/core';
3
3
  import { coerceNumberProperty, coerceBooleanProperty } from '@angular/cdk/coercion';
4
4
  import Cleave from 'cleave.js';
5
5
  import { InputDirective } from '@eui/components/shared';
@@ -9,12 +9,60 @@ import { EuiClearableDirective, EuiLoadingDirective } from '@eui/components/dire
9
9
  import { NgControl, NG_VALUE_ACCESSOR } from '@angular/forms';
10
10
  import * as i1 from '@eui/core';
11
11
 
12
+ /**
13
+ * Get the decimal separator based on the locale
14
+ *
15
+ * @param locale value of the locale based on ISO 639-1
16
+ */
12
17
  function getDecimal(locale) {
13
18
  return new Intl.NumberFormat(locale).format(1.1).charAt(1);
14
19
  }
20
+ /**
21
+ * Get the group separator based on the locale
22
+ *
23
+ * @param locale value of the locale based on ISO 639-1
24
+ */
15
25
  function getGroup(locale) {
16
26
  return new Intl.NumberFormat(locale).format(1000).charAt(1);
17
27
  }
28
+ /**
29
+ * Input number component that allows the user to enter a number. It supports number
30
+ * formatting and validation. It uses Cleave.js to format the number. It depends on
31
+ * the {@link LocaleService} to get the current locale and format the number accordingly.
32
+ *
33
+ * It supports the following attributes:
34
+ * - {@link min}: The minimum number can be entered. Blocks user's input if not in range.
35
+ * - {@link max}: The maximum number can be entered. Blocks user's input if not in range.
36
+ * - {@link leadingZero}: Adds leading zero to a number. Formatting will not work.
37
+ * - {@link isInvalid}: Sets the invalid state of the input element.
38
+ * - {@link fractionDigits}: Determines how many digits to show after the decimal point.
39
+ * - {@link digits}: Determines how many digits to show before the decimal point.
40
+ * - {@link fillFraction}: Fills the decimal part with zeros in case it's less than the fractionDigits.
41
+ * - {@link roundUp}: Rounds a number with more than two decimals UP.
42
+ * - {@link noFormat}: Disables the number formatting. It will be treated as a plain number.
43
+ * - {@link value}: The value of the input element.
44
+ * - {@link placeholder}: The placeholder value of the input element.
45
+ * - {@link euiClearable}: Adds a clear button to the input element.
46
+ * - {@link euiLoading}: Adds a loading spinner to the input element.
47
+ * - {@link readonly}: Disables the input element.
48
+ * - {@link disabled}: Disables the input element.
49
+ * - {@link euiDanger}: Sets the invalid state of the input element.
50
+ * - {@link euiSuccess}: Sets the success state of the input element.
51
+ * - {@link euiWarning}: Sets the warning state of the input element.
52
+ * - {@link euiInfo}: Sets the info state of the input element.
53
+ * - {@link euiPrimary}: Sets the primary state of the input element.
54
+ * - {@link euiSecondary}: Sets the secondary state of the input element.
55
+ *
56
+ * @example
57
+ * ```html
58
+ * <input euiInputNumber
59
+ * min="0"
60
+ * max="100"
61
+ * leadingZero="3"
62
+ * value="100.00"
63
+ * placeholder="100.00" />
64
+ * ```
65
+ */
18
66
  class EuiInputNumberComponent extends InputDirective {
19
67
  get isInvalid() {
20
68
  return this._isInvalid || null;
@@ -22,10 +70,16 @@ class EuiInputNumberComponent extends InputDirective {
22
70
  set isInvalid(state) {
23
71
  this.setInvalid(state);
24
72
  }
73
+ /**
74
+ * CSS classes to be added to the host element.
75
+ */
25
76
  get cssClasses() {
26
77
  return [super.getCssClasses('eui-input-number'), this._isInvalid ? 'eui-input-number--invalid' : ''].join(' ').trim();
27
78
  }
28
- /** how many digits for the decimal part */
79
+ /**
80
+ * determines how many digits to show after the decimal point
81
+ */
82
+ // TODO: transform to signal attribute
29
83
  get fractionDigits() {
30
84
  return this._fractionDigits;
31
85
  }
@@ -40,9 +94,11 @@ class EuiInputNumberComponent extends InputDirective {
40
94
  this.locale_id = locale_id;
41
95
  this.document = document;
42
96
  this.platformId = platformId;
43
- /** Adds leading zero to a number. Formatting will not work.
97
+ /**
98
+ * Adds leading zero to a number. Formatting will not work.
44
99
  * e.g. with leadingZero=3 input number 5 => 005
45
100
  */
101
+ // TODO: transform to signal attribute
46
102
  this.leadingZero = 0;
47
103
  this.type = 'eui-number';
48
104
  this._fractionDigits = 0;
@@ -233,6 +289,12 @@ class EuiInputNumberComponent extends InputDirective {
233
289
  this.cleaveInstance.setRawValue(this.max.toString());
234
290
  }
235
291
  }
292
+ /**
293
+ * @Override setInvalid setInvalidAttribute of InputDirective
294
+ * Sets the invalid state of the input element.
295
+ *
296
+ * @param state
297
+ */
236
298
  setInvalid(state) {
237
299
  // in case it's controlled by NgControl override
238
300
  this._isInvalid = this.control ? this.control.invalid && this.control.touched : coerceBooleanProperty(state);
@@ -266,7 +328,6 @@ class EuiInputNumberComponent extends InputDirective {
266
328
  /**
267
329
  * instantiate Cleave.js
268
330
  */
269
- // eslint-disable-next-line
270
331
  initCleave(onChangeCallback) {
271
332
  if (isPlatformServer(this.platformId)) {
272
333
  // in case it's not a browser environment
@@ -509,18 +570,16 @@ class EuiInputNumberComponent extends InputDirective {
509
570
  * Checks whether a value is defined or not
510
571
  *
511
572
  * @param value
512
- * @private
513
573
  */
514
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
515
574
  isDefined(value) {
516
575
  return value !== undefined && value !== null;
517
576
  }
518
577
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EuiInputNumberComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.LocaleService, optional: true }, { token: LOCALE_ID }, { token: i0.Injector }, { token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }
519
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.0.5", type: EuiInputNumberComponent, isStandalone: false, selector: "input[euiInputNumber]", inputs: { min: ["min", "min", numberAttribute], max: ["max", "max", numberAttribute], leadingZero: ["leadingZero", "leadingZero", numberAttribute], isInvalid: "isInvalid", fractionDigits: "fractionDigits", digits: ["digits", "digits", numberAttribute], fillFraction: ["fillFraction", "fillFraction", booleanAttribute], roundUp: ["roundUp", "roundUp", numberAttribute], noFormat: ["noFormat", "noFormat", booleanAttribute], value: "value" }, host: { listeners: { "blur": "onTouched()", "paste": "onPaste($event)", "keydown": "onKeyDown($event)", "focusout": "onFocusout()" }, properties: { "class": "this.cssClasses", "attr.type": "this.type" } }, usesInheritance: true, usesOnChanges: true, hostDirectives: [{ directive: i2.EuiClearableDirective, inputs: ["euiClearable", "euiClearable", "readonly", "readonly", "disabled", "disabled"] }, { directive: i2.EuiLoadingDirective, inputs: ["euiLoading", "euiLoading", "readonly", "readonly"] }], ngImport: i0, template: '', isInline: true, styles: [".eui-19 :host.eui-input-number{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--eui-f-m);appearance:none;background-color:var(--eui-c-white);border:1px solid var(--eui-c-neutral-lighter);border-radius:var(--eui-br-m);box-shadow:none;color:var(--eui-c-text);padding:calc(var(--eui-s-xs) - 1px) calc(var(--eui-s-m) - 1px);width:100%}.eui-19 :host.eui-input-number:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-input-number:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-input-number [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-input-number:not([hidden]){display:block}.eui-19 :host.eui-input-number::placeholder{color:var(--eui-c-neutral-lighter)!important;opacity:1}.eui-19 :host.eui-input-number[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;height:inherit;padding-left:0;padding-right:0;pointer-events:none}.eui-19 :host.eui-input-number[readonly]+.eui-feedback-message,.eui-19 :host.eui-input-number[readonly]+.eui-input-maxlength{appearance:none;display:none}.eui-19 :host.eui-input-number[disabled]:not([readonly]),.eui-19 :host.eui-input-number--disabled:not([readonly]){background-color:var(--eui-c-neutral-bg-light)!important;border:1px solid var(--eui-c-neutral-lightest);color:var(--eui-c-neutral-light);pointer-events:none}.eui-19 :host.eui-input-number--invalid,.eui-19 :host.eui-input-number--danger{border:1px solid var(--eui-c-danger)}.eui-19 :host.eui-input-number--clearable{padding-right:var(--eui-s-2xl)}.eui-19 :host.eui-input-number--clearable-icon{cursor:pointer;position:absolute;right:var(--eui-s-s);-webkit-user-select:none;user-select:none;visibility:visible}.eui-19 :host.eui-input-number--clearable-icon:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-input-number--clearable-icon:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-input-number--clearable-icon [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-input-number--clearable-icon>svg{fill:var(--eui-c-neutral-lighter)}.eui-19 :host.eui-input-number--clearable-icon>svg:hover{fill:var(--eui-c-danger)}.eui-19 :host.eui-input-number--loading{padding-right:var(--eui-s-2xl)}.eui-19 :host.eui-input-number--loading-icon{align-items:center;display:flex}.eui-19 :host.eui-input-number--loading-icon:after,.eui-19 :host.eui-input-number--loading-icon:before{content:\"\";height:var(--eui-s-l);position:absolute;right:var(--eui-s-s);width:var(--eui-s-l)}.eui-19 :host.eui-input-number--loading-icon:before{border:var(--eui-s-2xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-19 :host.eui-input-number--loading-icon:after{animation:loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-c-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eui-s-2xs);box-shadow:0 0 0 1px transparent}.eui-19 :host.eui-input-number--loading-icon--sm:after,.eui-19 :host.eui-input-number--loading-icon--sm:before{height:var(--eui-s-m);width:var(--eui-s-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-19 :host.eui-input-number[readonly]{pointer-events:auto}\n"] }); }
578
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.0.5", type: EuiInputNumberComponent, isStandalone: true, selector: "input[euiInputNumber]", inputs: { min: ["min", "min", numberAttribute], max: ["max", "max", numberAttribute], leadingZero: ["leadingZero", "leadingZero", numberAttribute], isInvalid: "isInvalid", fractionDigits: "fractionDigits", digits: ["digits", "digits", numberAttribute], fillFraction: ["fillFraction", "fillFraction", booleanAttribute], roundUp: ["roundUp", "roundUp", numberAttribute], noFormat: ["noFormat", "noFormat", booleanAttribute], value: "value" }, host: { listeners: { "blur": "onTouched()", "paste": "onPaste($event)", "keydown": "onKeyDown($event)", "focusout": "onFocusout()" }, properties: { "class": "this.cssClasses", "attr.type": "this.type" } }, usesInheritance: true, usesOnChanges: true, hostDirectives: [{ directive: i2.EuiClearableDirective, inputs: ["euiClearable", "euiClearable", "readonly", "readonly", "disabled", "disabled"] }, { directive: i2.EuiLoadingDirective, inputs: ["euiLoading", "euiLoading", "readonly", "readonly"] }], ngImport: i0, template: '', isInline: true, styles: [".eui-19 :host.eui-input-number{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--eui-f-m);appearance:none;background-color:var(--eui-c-white);border:1px solid var(--eui-c-neutral-lighter);border-radius:var(--eui-br-m);box-shadow:none;color:var(--eui-c-text);padding:calc(var(--eui-s-xs) - 1px) calc(var(--eui-s-m) - 1px);width:100%}.eui-19 :host.eui-input-number:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-input-number:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-input-number [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-input-number:not([hidden]){display:block}.eui-19 :host.eui-input-number::placeholder{color:var(--eui-c-neutral-lighter)!important;opacity:1}.eui-19 :host.eui-input-number[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;height:inherit;padding-left:0;padding-right:0;pointer-events:none}.eui-19 :host.eui-input-number[readonly]+.eui-feedback-message,.eui-19 :host.eui-input-number[readonly]+.eui-input-maxlength{appearance:none;display:none}.eui-19 :host.eui-input-number[disabled]:not([readonly]),.eui-19 :host.eui-input-number--disabled:not([readonly]){background-color:var(--eui-c-neutral-bg-light)!important;border:1px solid var(--eui-c-neutral-lightest);color:var(--eui-c-neutral-light);pointer-events:none}.eui-19 :host.eui-input-number--invalid,.eui-19 :host.eui-input-number--danger{border:1px solid var(--eui-c-danger)}.eui-19 :host.eui-input-number--clearable{padding-right:var(--eui-s-2xl)}.eui-19 :host.eui-input-number--clearable-icon{cursor:pointer;position:absolute;right:var(--eui-s-s);-webkit-user-select:none;user-select:none;visibility:visible}.eui-19 :host.eui-input-number--clearable-icon:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-input-number--clearable-icon:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-input-number--clearable-icon [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-input-number--clearable-icon>svg{fill:var(--eui-c-neutral-lighter)}.eui-19 :host.eui-input-number--clearable-icon>svg:hover{fill:var(--eui-c-danger)}.eui-19 :host.eui-input-number--loading{padding-right:var(--eui-s-2xl)}.eui-19 :host.eui-input-number--loading-icon{align-items:center;display:flex}.eui-19 :host.eui-input-number--loading-icon:after,.eui-19 :host.eui-input-number--loading-icon:before{content:\"\";height:var(--eui-s-l);position:absolute;right:var(--eui-s-s);width:var(--eui-s-l)}.eui-19 :host.eui-input-number--loading-icon:before{border:var(--eui-s-2xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-19 :host.eui-input-number--loading-icon:after{animation:loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-c-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eui-s-2xs);box-shadow:0 0 0 1px transparent}.eui-19 :host.eui-input-number--loading-icon--sm:after,.eui-19 :host.eui-input-number--loading-icon--sm:before{height:var(--eui-s-m);width:var(--eui-s-m)}@keyframes loading{to{transform:rotate(360deg)}}.eui-19 :host.eui-input-number[readonly]{pointer-events:auto}\n"] }); }
520
579
  }
521
580
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EuiInputNumberComponent, decorators: [{
522
581
  type: Component,
523
- args: [{ selector: 'input[euiInputNumber]', template: '', standalone: false, hostDirectives: [
582
+ args: [{ selector: 'input[euiInputNumber]', template: '', standalone: true, hostDirectives: [
524
583
  {
525
584
  directive: EuiClearableDirective,
526
585
  inputs: ['euiClearable', 'readonly', 'disabled'],
@@ -587,6 +646,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
587
646
  args: ['focusout']
588
647
  }] } });
589
648
 
649
+ /**
650
+ * @description
651
+ * Directive for the {@link EuiInputNumberComponent}. This directive is used to
652
+ * handle the value changes of the input element and update the value of the
653
+ * directive and the form control. It also implements the ControlValueAccessor
654
+ * interface to allow the directive to be used with reactive forms.
655
+ *
656
+ * @example
657
+ * ```html
658
+ * <input euiInputNumber formControlName="number" />
659
+ * ```
660
+ */
590
661
  class EuiInputNumberDirective {
591
662
  constructor(elementRef, euiNumberComponent, document, platformId) {
592
663
  this.elementRef = elementRef;
@@ -636,12 +707,23 @@ class EuiInputNumberDirective {
636
707
  registerOnTouched(fn) {
637
708
  this.onTouched = fn;
638
709
  }
710
+ /**
711
+ * Set the disabled state of the input element.
712
+ *
713
+ * @param isDisabled
714
+ */
639
715
  setDisabledState(isDisabled) {
640
716
  this.euiNumberComponent.disabled = isDisabled;
641
717
  }
642
718
  onTouched() {
643
719
  // this.euiNumberComponent.isInvalid = this.control.invalid;
644
720
  }
721
+ /**
722
+ * Handle the value changes of the input element and update the value of the
723
+ * directive and the form control.
724
+ *
725
+ * @param event
726
+ */
645
727
  valueChanges(event) {
646
728
  const { target } = event;
647
729
  this.euiNumberComponent['onValueChanged'](event);
@@ -651,7 +733,7 @@ class EuiInputNumberDirective {
651
733
  }
652
734
  }
653
735
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EuiInputNumberDirective, deps: [{ token: i0.ElementRef }, { token: EuiInputNumberComponent, optional: true }, { token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
654
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: EuiInputNumberDirective, isStandalone: false, selector: "input[euiInputNumber][formControl],input[euiInputNumber][formControlName],input[euiInputNumber][ngModel]", providers: [
736
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: EuiInputNumberDirective, isStandalone: true, selector: "input[euiInputNumber][formControl],input[euiInputNumber][formControlName],input[euiInputNumber][ngModel]", providers: [
655
737
  {
656
738
  provide: NG_VALUE_ACCESSOR,
657
739
  useExisting: forwardRef(() => EuiInputNumberDirective),
@@ -670,7 +752,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
670
752
  multi: true,
671
753
  },
672
754
  ],
673
- standalone: false,
755
+ standalone: true,
674
756
  }]
675
757
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: EuiInputNumberComponent, decorators: [{
676
758
  type: Optional
@@ -682,16 +764,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
682
764
  args: [PLATFORM_ID]
683
765
  }] }] });
684
766
 
767
+ /**
768
+ * @description
769
+ * Module for the {@link EuiInputNumberComponent} and {@link EuiInputNumberDirective}.
770
+ *
771
+ * @example
772
+ * ```typescript
773
+ * import { EuiInputNumberModule } from '@eui/components/eui-input-number';
774
+ *
775
+ * @NgModule({
776
+ * imports: [EuiInputNumberModule]
777
+ * })
778
+ * export class AppModule {}
779
+ * ```
780
+ * @deprecated Use {@link `EuiInputNumberComponent`} and or {@link `EuiInputNumberDirective`} instead.
781
+ */
685
782
  class EuiInputNumberModule {
686
783
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EuiInputNumberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
687
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: EuiInputNumberModule, declarations: [EuiInputNumberComponent, EuiInputNumberDirective], imports: [CommonModule], exports: [EuiInputNumberComponent, EuiInputNumberDirective] }); }
784
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: EuiInputNumberModule, imports: [CommonModule, EuiInputNumberComponent, EuiInputNumberDirective], exports: [EuiInputNumberComponent, EuiInputNumberDirective] }); }
688
785
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EuiInputNumberModule, imports: [CommonModule] }); }
689
786
  }
690
787
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EuiInputNumberModule, decorators: [{
691
788
  type: NgModule,
692
789
  args: [{
693
- imports: [CommonModule],
694
- declarations: [EuiInputNumberComponent, EuiInputNumberDirective],
790
+ imports: [CommonModule, EuiInputNumberComponent, EuiInputNumberDirective],
695
791
  exports: [EuiInputNumberComponent, EuiInputNumberDirective],
696
792
  }]
697
793
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-input-number.mjs","sources":["../../eui-input-number/eui-input-number.component.ts","../../eui-input-number/eui-number-control.directive.ts","../../eui-input-number/eui-input-number.module.ts","../../eui-input-number/eui-components-eui-input-number.ts"],"sourcesContent":["import {\n Optional,\n LOCALE_ID,\n Inject,\n Component,\n DoCheck,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Renderer2,\n SimpleChanges,\n Injector,\n numberAttribute,\n PLATFORM_ID,\n booleanAttribute,\n} from '@angular/core';\nimport { LocaleService, LocaleState } from '@eui/core';\nimport { coerceBooleanProperty, coerceNumberProperty, BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { type CleaveOptions } from 'cleave.js/options';\nimport Cleave from 'cleave.js';\nimport { CleaveEventOnChange } from './models/cleave-event-onchange.model';\nimport { InputDirective } from '@eui/components/shared';\nimport { DOCUMENT, isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { EuiClearableDirective, EuiLoadingDirective } from '@eui/components/directives';\nimport { NgControl } from '@angular/forms';\n\nexport interface CleaveInstance extends Cleave {\n initSwapHiddenInput?: () => void;\n initNumeralFormatter?: () => void;\n initTimeFormatter?: () => void;\n initDateFormatter?: () => void;\n initPhoneFormatter?: () => void;\n updateCreditCardPropsByValue?: () => void;\n updateValueState?: () => void;\n callOnValueChanged?: () => void;\n onChange?: (event?: Event) => void;\n onCut?: (event?: Event) => void;\n onFocus?: (event?: Event) => void;\n onCopy?: (event?: Event) => void;\n onKeyDown?: (event?: Event) => void;\n onChangeListener?: (event?: Event) => void;\n onKeyDownListener?: (event?: Event) => void;\n onFocusListener?: (event?: Event) => void;\n onCutListener?: (event?: Event) => void;\n onCopyListener?: (event?: Event) => void;\n}\n\nfunction getDecimal(locale: string): string {\n return new Intl.NumberFormat(locale).format(1.1).charAt(1);\n}\n\nfunction getGroup(locale: string): string {\n return new Intl.NumberFormat(locale).format(1000).charAt(1);\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'input[euiInputNumber]',\n styleUrls: ['./styles/_index.scss'],\n template: '',\n standalone: false,\n hostDirectives: [\n {\n directive: EuiClearableDirective,\n inputs: ['euiClearable', 'readonly', 'disabled'],\n },\n {\n directive: EuiLoadingDirective,\n inputs: ['euiLoading', 'readonly'],\n },\n ],\n host: {\n '(blur)': 'onTouched()',\n },\n})\nexport class EuiInputNumberComponent extends InputDirective implements OnInit, OnDestroy, DoCheck, OnChanges {\n /**\n * The minimum number can be entered. Blocks user's input if not in range.\n */\n @Input({ transform: numberAttribute }) min!: number;\n /**\n * The maximum number can be entered. Blocks user's input if not in range.\n */\n @Input({ transform: numberAttribute }) max!: number;\n /** Adds leading zero to a number. Formatting will not work.\n * e.g. with leadingZero=3 input number 5 => 005\n */\n @Input({ transform: numberAttribute }) leadingZero = 0;\n @Input()\n public get isInvalid(): boolean {\n return this._isInvalid || null;\n }\n\n public set isInvalid(state: BooleanInput) {\n this.setInvalid(state);\n }\n @HostBinding('class')\n public get cssClasses(): string {\n return [super.getCssClasses('eui-input-number'), this._isInvalid ? 'eui-input-number--invalid' : ''].join(' ').trim();\n }\n\n /** how many digits for the decimal part */\n @Input()\n get fractionDigits(): number {\n return this._fractionDigits;\n }\n set fractionDigits(value: NumberInput) {\n this._fractionDigits = coerceNumberProperty(value);\n }\n /** how many digits for the integer part */\n @Input({ transform: numberAttribute }) digits!: number;\n @Input({ transform: booleanAttribute }) fillFraction: boolean;\n /** rounds a number with more than two decimals UP */\n @Input({ transform: numberAttribute }) roundUp!: number;\n protected _isInvalid: boolean;\n /**\n * does not format the and do a thousand grouping of number\n */\n @Input({ transform: booleanAttribute }) noFormat: boolean;\n @HostBinding('attr.type') protected type = 'eui-number';\n @Input() value: string;\n public onChangeCallback: <T>(_: T) => void;\n cleaveInstance: CleaveInstance;\n\n /** holds instance of cleave */\n /** options for the Cleave instance */\n private options: CleaveOptions;\n private _fractionDigits = 0;\n\n constructor(\n protected _elementRef: ElementRef,\n protected _renderer: Renderer2,\n @Optional() private localeService: LocaleService,\n @Inject(LOCALE_ID) private locale_id: string,\n injector: Injector,\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: unknown,\n ) {\n super(_elementRef, _renderer, injector);\n\n // set default options\n this.options = {\n numeral: true,\n delimiter: getGroup(locale_id || 'en'),\n numeralDecimalMark: getDecimal(locale_id || 'en'),\n numeralDecimalScale: this.fractionDigits,\n numeralIntegerScale: this.digits,\n };\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n\n this.control = this.injector.get(NgControl, undefined, { optional: true });\n\n // instantiate cleave\n if (!this.control) {\n this.initCleave();\n }\n\n // subscribe to localization service and listen for locale change. De-construction of locale should happen here!\n this.localeService?.getState().subscribe((state: LocaleState) => {\n this.options = this.getCleaveOptsBasedOnLocale(state?.id);\n\n // update the options on the cleave instance\n this.updateOptions(true);\n });\n\n this._renderer.setProperty(this._elementRef.nativeElement, 'rootClassName', 'eui-input-number');\n }\n\n ngDoCheck(): void {\n if (!this.control) {\n this.control = this.injector.get(NgControl, undefined, { optional: true });\n }\n this.isInvalid = this.control ? this.control.invalid && this.control.touched : this._isInvalid;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (Object.hasOwn(changes, 'value')) {\n this._elementRef.nativeElement.value = this.value;\n if (this.cleaveInstance) {\n this.cleaveInstance.setRawValue(this.value);\n }\n }\n if (Object.hasOwn(changes, 'fractionDigits')) {\n this.options = { ...this.options, numeralDecimalScale: this.fractionDigits };\n this.updateOptions();\n }\n if (Object.hasOwn(changes, 'noFormat')) {\n this.options = { ...this.options, numeralThousandsGroupStyle: this.noFormat ? 'none' : 'thousand' };\n this.updateOptions();\n }\n if (Object.hasOwn(changes, 'fillFraction') && this.cleaveInstance) {\n this.applyFractionFill(this.cleaveInstance.getRawValue());\n }\n if (Object.hasOwn(changes, 'digits')) {\n this.options = { ...this.options, numeralIntegerScale: this.digits };\n this.updateOptions();\n }\n if (Object.hasOwn(changes, 'min')) {\n this.min = changes['min'].currentValue;\n if (changes['min'].currentValue >= 0) {\n if (this.cleaveInstance) {\n // take care of the sign symbol\n this.cleaveInstance.setRawValue(Math.abs(Number(this.cleaveInstance.getRawValue())).toString());\n }\n }\n }\n if (Object.hasOwn(changes, 'max')) {\n this.max = changes['max'].currentValue;\n // check if current value is in range\n if (this.cleaveInstance) {\n const number = Number(this.cleaveInstance.getRawValue());\n if (number > this.max) {\n this.cleaveInstance.setRawValue(this.max.toString());\n }\n }\n }\n if (Object.hasOwn(changes, 'roundUp')) {\n if (changes['roundUp'].currentValue > 0) {\n if (this.cleaveInstance) {\n let number = Number.parseFloat(this.cleaveInstance.getRawValue());\n number = this.decimalAdjust(number, this.roundUp * -1);\n this.cleaveInstance.setRawValue(number.toString());\n }\n }\n }\n if(Object.hasOwn(changes, 'placeholder')) {\n // parse number\n const number = this.parseNumber(changes['placeholder'].currentValue?.toString() || undefined);\n // set placeholder in case none is provided\n this.setPlaceholderAttribute(isNaN(number) ? changes['placeholder'].currentValue : number);\n }\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n // destroy cleave instance\n if (this.cleaveInstance) {\n this.cleaveInstance.destroy();\n }\n }\n\n onChange: <T>(_: T) => void = <T>(_: T): void => {\n if (this.control && (_ !== null || _ !== undefined)) {\n // parse number\n // const value = Number(_);\n // run on next MicroTask to avoid NG0100 error TODO: deeper investigation\n // Promise.resolve().then(() => this.control.viewToModelUpdate(value));\n // in case control is FormControl\n // this.control?.control.setValue(isNaN(value) ? null : value, { emitEvent: false, emitModelToViewChange: false });\n }\n };\n onTouched: () => void = (): void => {\n this.control?.control.markAsTouched();\n };\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent): void {\n // get the value from clipboard\n const value = (event.clipboardData || window['clipboardData']).getData('text');\n // in case round UP is enabled\n if (this.roundUp > 0) {\n const div = this.document.createElement('input');\n // create a clone of cleaveInstance\n const cloneInstance: CleaveInstance = new Cleave(div, { ...this.options, numeralDecimalScale: 8 });\n cloneInstance.setRawValue(value.toString());\n let number = Number.parseFloat(cloneInstance.getRawValue());\n number = this.decimalAdjust(number, this.roundUp * -1);\n if (!Number.isNaN(number)) {\n this.cleaveInstance.setRawValue(number.toString());\n // TODO: investigate in the future how can this be avoided\n setTimeout(() => {\n // this.writeValue(number.toString());\n }, 0);\n }\n }\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeyDown(e: KeyboardEvent): void {\n // check if it's a single symbol and not Special like (Ctrl, backspace etc)\n if (e?.key?.length <= 1 && !e.ctrlKey && !e.altKey && !e.metaKey) {\n // stop event propagation if key pressed is not a number or locale character or minus sign\n if (\n Number.isNaN(Number.parseInt(e.key, 10)) &&\n this.isMinusAllowed(e.key) &&\n e.key !== getDecimal(this.localeService?.currentLocale || this.locale_id)\n ) {\n e.stopPropagation();\n e.preventDefault();\n // stop event propagation if key pressed exceeds the min/max value range\n } else if (!Number.isNaN(Number.parseInt(e.key, 10)) && this.isOutSideRange(e)) {\n e.stopPropagation();\n e.preventDefault();\n } else if (this.isOutSideRange(e)) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n // protect decimal symbol deletion in case fillFraction is on\n if (e.key === 'Delete' || e.key === 'Backspace') {\n const element = this._elementRef.nativeElement;\n // position of caret\n const pos = element.selectionStart;\n // get character about to be deleted\n const char = element.value.charAt(pos - 1);\n // in case the char is the decimal symbol prevent deletion and move caret in front\n if (this.fillFraction &&\n char === getDecimal(this.localeService?.currentLocale || this.locale_id)) {\n e.stopPropagation();\n e.preventDefault();\n element.setSelectionRange(pos - 1, pos - 1);\n } else if (this.isOutSideRange(e)) {\n // don't allow insertion that will put number out of range\n e.stopPropagation();\n e.preventDefault();\n }\n }\n }\n\n @HostListener('focusout')\n protected onFocusout(): void {\n // in case fillFraction feature is on and there's no integer part add leading 0\n if (this.fillFraction && this.cleaveInstance.getRawValue().match(/^\\.[0-9]+/g)) {\n this.cleaveInstance.setRawValue('0' + this.cleaveInstance.getRawValue());\n }\n\n // in case round UP is enabled\n if (this.roundUp > 0) {\n const number = Number.parseFloat(this.cleaveInstance.getRawValue());\n this.cleaveInstance.setRawValue(this.decimalAdjust(number, this.roundUp * -1).toString());\n }\n\n // in case min is set and value is less than min reset to the min value\n if (this.min !== null && this.min !== undefined && Number.parseFloat(this.cleaveInstance.getRawValue()) < this.min) {\n this.cleaveInstance.setRawValue(this.min.toString());\n }\n\n // in case max is set and value is greater than max reset to the max value\n if (this.max !== null && this.max !== undefined && Number.parseFloat(this.cleaveInstance.getRawValue()) > this.max) {\n this.cleaveInstance.setRawValue(this.max.toString());\n }\n }\n\n protected setInvalid(state?: BooleanInput): void {\n // in case it's controlled by NgControl override\n this._isInvalid = this.control ? this.control.invalid && this.control.touched : coerceBooleanProperty(state);\n\n // set BaseDirective Attribute\n this.euiDanger = this._isInvalid;\n }\n\n /**\n * @Override setPlaceholder setPlaceholderAttribute of InputDirective\n * Updates the placeholder value based on current number format and given value.\n * If value passed contains characters it doesn't format placeholder.\n * */\n protected setPlaceholderAttribute(value: string | number): void {\n // if value is a number, format the value based on current number format\n if (typeof value === 'number' && !isNaN(value) && isPlatformBrowser(this.platformId)) {\n const div = this.document.createElement('input');\n // create a clone of cleaveInstance\n const cloneInstance: CleaveInstance = new Cleave(div, this.options);\n // BEWARE: by the time your setRawValue cleave options have changed thus number formatting\n cloneInstance.setRawValue(value.toString());\n // set the value with current format as placeholder\n super.setPlaceholderAttribute(cloneInstance.getFormattedValue());\n } else if (typeof value === 'string') {\n super.setPlaceholderAttribute(value.toString());\n } else if (isNaN(value)) {\n value = this._elementRef.nativeElement.placeholder;\n super.setPlaceholderAttribute(value.toString());\n }\n }\n\n /**\n * instantiate Cleave.js\n */\n // eslint-disable-next-line\n private initCleave<T>(onChangeCallback?: (obj: T) => any): void {\n if(isPlatformServer(this.platformId)) {\n // in case it's not a browser environment\n return;\n }\n // change the cleave prototype function to intercept onCut callback\n // and allow based on the event bubbling and disabled state\n // TIP: change behavior of onCut to stop in case bubble is canceled\n // TODO: See relevant issue https://github.com/nosir/cleave.js/issues/675\n const _onCut = Cleave.prototype['onCut'];\n Cleave.prototype['onCut'] = function (e: Event): void {\n /* eslint-enable no-invalid-this */\n // Check if the event is composed and stopPropagation hasn't been called\n if (!e.composed && !e.defaultPrevented && !this.element.disabled) {\n _onCut.call(this, e);\n }\n /* eslint-disable no-invalid-this */\n };\n\n // in case options is undefined\n const opts: CleaveOptions = { ...this.options };\n\n // set the onValue change listener to keep the value at readOnly element in sync\n opts.onValueChanged = onChangeCallback || this.onValueChanged.bind(this);\n\n // in case round UP is enabled\n if (this.roundUp > 0) {\n const number = Number.parseFloat(this._elementRef.nativeElement.value);\n this._elementRef.nativeElement.value = this.decimalAdjust(number, this.roundUp * -1);\n }\n\n // create the Cleave instance with the new or updated options\n this.cleaveInstance = new Cleave(this._elementRef.nativeElement, opts);\n }\n\n /**\n * Updates the cleave options by destroying the current instance and creating another one while keeping the previous\n * value.\n */\n private updateOptions(localeUpdated = false): void {\n if (this.cleaveInstance) {\n // the value before destroying cleave instance\n const previousValue = this.cleaveInstance.getRawValue();\n\n // update the Cleave instance with the new or updated options\n this.cleaveInstance.properties = {\n ...this.cleaveInstance.properties,\n ...this.options,\n initValue: previousValue,\n };\n\n // init number formatter with updated options\n this.cleaveInstance.initNumeralFormatter();\n\n // In case previous settings where numeralDecimalMark='.' with value 1000.99, and they changed to\n // numeralDecimalMark=','; set initValue to 1000.99 or even 1000,99 will not be reflected and cleave will\n // remove the decimal part. Set of the value after initialization causes reformat of number and works.\n this.cleaveInstance.setRawValue(previousValue);\n\n // parse number\n const number = this.parseNumber(this._elementRef.nativeElement.placeholder || undefined, localeUpdated);\n // set placeholder in case none is provided\n this.setPlaceholderAttribute(number);\n }\n }\n\n /**\n * Callback function of the Cleave instance that is invoked when value is changed.\n *\n * @param event type of CleaveEventOnChange\n */\n private onValueChanged(event: CleaveEventOnChange): void {\n const { target } = event;\n\n if (this.fillFraction) {\n this.applyFractionFill(target.rawValue);\n }\n this.onChange(Number.parseFloat(target.rawValue));\n // fill leading zero\n if (this.leadingZero) {\n const size = this.leadingZero > this.digits && this.digits > 0 ? this.digits : this.leadingZero;\n this._elementRef.nativeElement.value = this.padZero(event.target.rawValue, size);\n }\n }\n\n /**\n * responsible to extract all locale information needed to build CleaveOptions related to number format.\n *\n * @param id The id of the locale\n */\n private getCleaveOptsBasedOnLocale(id: string): CleaveOptions {\n if (!id || id === '') {\n throw new Error('Locale id cannot be empty or undefined');\n }\n const opts: CleaveOptions = {\n numeral: true,\n delimiter: getGroup(id),\n numeralDecimalMark: getDecimal(id),\n numeralDecimalScale: this.fractionDigits,\n numeralIntegerScale: this.digits,\n numeralThousandsGroupStyle: this.noFormat ? 'none' : 'thousand', // TODO: implement based on locale\n };\n\n return { ...this.options, ...opts };\n }\n\n /**\n * Applies the fill of decimal part with zeros in case decimal part of given number has\n * size less than the max fraction digits.\n *\n * @param number\n * @param cleaveInstance\n * @private\n */\n private applyFractionFill(number: string, cleaveInstance: CleaveInstance = this.cleaveInstance): void {\n // if fill fraction is enabled and there's cleave instance\n if (this.fillFraction) {\n if (this.cleaveInstance) {\n number = number?.toString();\n if (number === '' || !number) {\n return;\n }\n const hasDecimal = number.split('.').length > 1;\n // in case there's already decimal point in number\n if (hasDecimal) {\n const decimalSize = number.split('.')[1].length;\n // if size of decimal part of number is less than the max fraction digits\n if (decimalSize < this._fractionDigits) {\n number = number + new Array(this._fractionDigits - decimalSize).fill(0).join('');\n const pos = this._elementRef.nativeElement.selectionStart;\n cleaveInstance.setRawValue(number);\n this._elementRef.nativeElement.setSelectionRange(pos, pos);\n }\n // in case there's not, force it by filling it as much zero as the fraction digits\n } else if (this.fractionDigits > 0) {\n number = `${number}.${new Array(this._fractionDigits).fill(0).join('')}`;\n const pos = this._elementRef.nativeElement.selectionStart;\n cleaveInstance.setRawValue(number);\n this._elementRef.nativeElement.setSelectionRange(pos, pos);\n }\n }\n }\n }\n\n /**\n * Parses a given formatted number and returns it as a number.\n *\n * @param value The formatted number you want to parse e.g. 111,888.22\n * @param userPrevLocaleState Use previous locale state to parse the value. By default, is false\n * @private\n */\n private parseNumber(value: string, userPrevLocaleState = false): number {\n // locale state\n const locale = userPrevLocaleState ? this.localeService?.previousLocale : this.localeService?.currentLocale || this.locale_id || 'en';\n // get decimal and group symbols\n const decimalSymbol = getDecimal(locale);\n const groupSymbol = getGroup(locale);\n // replace symbols to parse number\n const parsedNumber = value?.split(groupSymbol).join('').split(decimalSymbol).join('.');\n return Number.parseFloat(parsedNumber);\n }\n\n /**\n * Pad leading zero to the number\n *\n * @param num The number to add leading zero to\n * @param size Number of number's leading zero\n * @private\n */\n private padZero(num, size): string {\n num = num.toString();\n // get integer and decimal part\n // eslint-disable-next-line prefer-const\n let [integer, decimal] = num.split('.');\n while (integer.length < size) {\n integer = '0' + integer;\n }\n return decimal ? `${integer}.${decimal}` : integer;\n }\n\n /**\n * checks whether the min symbol is allowed. It is allowed when minus symbol\n * provided and min input is undefined or min provided and is negative.\n *\n * @param key The key string coming from an event\n */\n private isMinusAllowed(key: string): boolean {\n return !this.min || this.min < 0 ? key !== '-' : true;\n }\n\n /**\n * check whether the key entered is inside the min and\n * max range. Returns true if it's out of range.\n *\n * @param e A keyboard event\n */\n private isOutSideRange(e: KeyboardEvent): boolean {\n if (!this.cleaveInstance) {\n return false;\n }\n // get caret position\n const pos = e.target['selectionStart'];\n // get caret position (in case there's text selected)\n const endPos = e.target['selectionEnd'];\n // get current value (formatted)\n let value = e.target['value'];\n // remove key from value\n if (e.key === 'Delete' || e.key === 'Backspace') {\n // check if there's selection of text to be removed\n if (pos !== endPos) {\n value = e.target['value'].substring(0, pos) + e.target['value'].substring(endPos, e.target['value'].length);\n } else {\n value = e.target['value'].substring(0, pos - 1) + e.target['value'].substring(endPos, e.target['value'].length);\n }\n } else {\n // add key to the value\n value = [value.slice(0, pos), e.key, value.slice(endPos)].join('');\n }\n\n // create a Cleave instance to extract the number from formatted value\n const cleave: CleaveInstance = new Cleave(this.document.createElement('input'), { ...this.options });\n cleave.setRawValue(value);\n const number = Number(cleave.getRawValue());\n // destroy cleave instance\n cleave.destroy();\n return !isNaN(number) &&\n this.min >= 0 ? (this.isDefined(this.max) && this.max < number) : (this.min > number || this.max < number) &&\n this.max <= 0 ? (this.isDefined(this.min) && this.min > number) : (this.min > number || this.max < number);\n }\n\n /**\n * Decimal adjustment of a number.\n *\n * @param value The number.\n * @param exp The exponent (the 10 logarithm of the adjustment base).\n * @returns The adjusted value.\n */\n private decimalAdjust(value: number, exp: number): number {\n // If the exp is undefined or zero...\n if (typeof exp === 'undefined' || +exp === 0) {\n return Math.round(value);\n }\n value = +value;\n exp = +exp;\n // If the value is not a number or the exp is not an integer...\n if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {\n return NaN;\n }\n // Shift\n let cleaned = value.toString().split('e');\n value = Math.round(+(cleaned[0] + 'e' + (cleaned[1] ? +cleaned[1] - exp : -exp)));\n // Shift back\n cleaned = value.toString().split('e');\n return +(cleaned[0] + 'e' + (cleaned[1] ? +cleaned[1] + exp : exp));\n }\n\n /**\n * Checks whether a value is defined or not\n *\n * @param value\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private isDefined(value: any): boolean {\n return value !== undefined && value !== null;\n }\n}\n","import { Directive, ElementRef, forwardRef, Inject, OnInit, Optional, PLATFORM_ID } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CleaveInstance, EuiInputNumberComponent } from './eui-input-number.component';\nimport Cleave from 'cleave.js';\nimport { DOCUMENT, isPlatformServer } from '@angular/common';\n\n@Directive({\n selector: 'input[euiInputNumber][formControl],input[euiInputNumber][formControlName],input[euiInputNumber][ngModel]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EuiInputNumberDirective),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class EuiInputNumberDirective implements ControlValueAccessor, OnInit {\n /** hold a copy of the value */\n private value: number;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onChange: (t: any) => void;\n\n constructor(\n private elementRef: ElementRef,\n @Optional() private euiNumberComponent: EuiInputNumberComponent,\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: unknown,\n ) {}\n\n ngOnInit(): void {\n this.euiNumberComponent['initCleave'](this.valueChanges.bind(this));\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(obj: any): void {\n if (isPlatformServer(this.platformId)) {\n return;\n }\n const cleave: CleaveInstance = new Cleave(this.document.createElement('input'), { ...this.euiNumberComponent['options'] });\n cleave.setRawValue(obj);\n if (this.euiNumberComponent.fillFraction && obj !== '' && obj) {\n this.euiNumberComponent['applyFractionFill'](obj, cleave);\n }\n let valueOfElement: string;\n // fill leading zero\n if (this.euiNumberComponent.leadingZero) {\n const size =\n this.euiNumberComponent.leadingZero > this.euiNumberComponent.digits && this.euiNumberComponent.digits > 0\n ? this.euiNumberComponent.digits\n : this.euiNumberComponent.leadingZero;\n valueOfElement = this.euiNumberComponent['padZero'](cleave.getFormattedValue(), size);\n } else {\n valueOfElement = cleave.getFormattedValue();\n }\n this.elementRef.nativeElement.value = valueOfElement;\n this.value = Number.parseFloat(cleave.getRawValue());\n cleave.destroy();\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this.onChange = (t): void => {\n this.value = t;\n fn(t);\n };\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.euiNumberComponent.disabled = isDisabled;\n }\n\n private onTouched(): void {\n // this.euiNumberComponent.isInvalid = this.control.invalid;\n }\n\n private valueChanges(event): void {\n const { target } = event;\n\n this.euiNumberComponent['onValueChanged'](event);\n const numberCoerce = Number.parseFloat(target.rawValue);\n if (this.value !== numberCoerce && this.onChange) {\n this.onChange(isNaN(numberCoerce) ? null : numberCoerce);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EuiInputNumberComponent } from './eui-input-number.component';\nimport { EuiInputNumberDirective } from './eui-number-control.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [EuiInputNumberComponent, EuiInputNumberDirective],\n exports: [EuiInputNumberComponent, EuiInputNumberDirective],\n})\nexport class EuiInputNumberModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.EuiInputNumberComponent"],"mappings":"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"}
1
+ {"version":3,"file":"eui-components-eui-input-number.mjs","sources":["../../eui-input-number/eui-input-number.component.ts","../../eui-input-number/eui-number-control.directive.ts","../../eui-input-number/eui-input-number.module.ts","../../eui-input-number/eui-components-eui-input-number.ts"],"sourcesContent":["import {\n Optional,\n LOCALE_ID,\n Inject,\n Component,\n DoCheck,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Renderer2,\n SimpleChanges,\n Injector,\n numberAttribute,\n PLATFORM_ID,\n booleanAttribute,\n} from '@angular/core';\nimport { LocaleService, LocaleState } from '@eui/core';\nimport { coerceBooleanProperty, coerceNumberProperty, BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { type CleaveOptions } from 'cleave.js/options';\nimport Cleave from 'cleave.js';\nimport { CleaveEventOnChange } from './models/cleave-event-onchange.model';\nimport { InputDirective } from '@eui/components/shared';\nimport { DOCUMENT, isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { EuiClearableDirective, EuiLoadingDirective } from '@eui/components/directives';\nimport { NgControl } from '@angular/forms';\n\nexport interface CleaveInstance extends Cleave {\n initSwapHiddenInput?: () => void;\n initNumeralFormatter?: () => void;\n initTimeFormatter?: () => void;\n initDateFormatter?: () => void;\n initPhoneFormatter?: () => void;\n updateCreditCardPropsByValue?: () => void;\n updateValueState?: () => void;\n callOnValueChanged?: () => void;\n onChange?: (event?: Event) => void;\n onCut?: (event?: Event) => void;\n onFocus?: (event?: Event) => void;\n onCopy?: (event?: Event) => void;\n onKeyDown?: (event?: Event) => void;\n onChangeListener?: (event?: Event) => void;\n onKeyDownListener?: (event?: Event) => void;\n onFocusListener?: (event?: Event) => void;\n onCutListener?: (event?: Event) => void;\n onCopyListener?: (event?: Event) => void;\n}\n\n/**\n * Get the decimal separator based on the locale\n *\n * @param locale value of the locale based on ISO 639-1\n */\nfunction getDecimal(locale: string): string {\n return new Intl.NumberFormat(locale).format(1.1).charAt(1);\n}\n\n/**\n * Get the group separator based on the locale\n *\n * @param locale value of the locale based on ISO 639-1\n */\nfunction getGroup(locale: string): string {\n return new Intl.NumberFormat(locale).format(1000).charAt(1);\n}\n\n/**\n * Input number component that allows the user to enter a number. It supports number\n * formatting and validation. It uses Cleave.js to format the number. It depends on\n * the {@link LocaleService} to get the current locale and format the number accordingly.\n *\n * It supports the following attributes:\n * - {@link min}: The minimum number can be entered. Blocks user's input if not in range.\n * - {@link max}: The maximum number can be entered. Blocks user's input if not in range.\n * - {@link leadingZero}: Adds leading zero to a number. Formatting will not work.\n * - {@link isInvalid}: Sets the invalid state of the input element.\n * - {@link fractionDigits}: Determines how many digits to show after the decimal point.\n * - {@link digits}: Determines how many digits to show before the decimal point.\n * - {@link fillFraction}: Fills the decimal part with zeros in case it's less than the fractionDigits.\n * - {@link roundUp}: Rounds a number with more than two decimals UP.\n * - {@link noFormat}: Disables the number formatting. It will be treated as a plain number.\n * - {@link value}: The value of the input element.\n * - {@link placeholder}: The placeholder value of the input element.\n * - {@link euiClearable}: Adds a clear button to the input element.\n * - {@link euiLoading}: Adds a loading spinner to the input element.\n * - {@link readonly}: Disables the input element.\n * - {@link disabled}: Disables the input element.\n * - {@link euiDanger}: Sets the invalid state of the input element.\n * - {@link euiSuccess}: Sets the success state of the input element.\n * - {@link euiWarning}: Sets the warning state of the input element.\n * - {@link euiInfo}: Sets the info state of the input element.\n * - {@link euiPrimary}: Sets the primary state of the input element.\n * - {@link euiSecondary}: Sets the secondary state of the input element.\n *\n * @example\n * ```html\n * <input euiInputNumber\n * min=\"0\"\n * max=\"100\"\n * leadingZero=\"3\"\n * value=\"100.00\"\n * placeholder=\"100.00\" />\n * ```\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'input[euiInputNumber]',\n styleUrls: ['./styles/_index.scss'],\n template: '',\n standalone: true,\n hostDirectives: [\n {\n directive: EuiClearableDirective,\n inputs: ['euiClearable', 'readonly', 'disabled'],\n },\n {\n directive: EuiLoadingDirective,\n inputs: ['euiLoading', 'readonly'],\n },\n ],\n host: {\n '(blur)': 'onTouched()',\n },\n})\nexport class EuiInputNumberComponent extends InputDirective implements OnInit, OnDestroy, DoCheck, OnChanges {\n /**\n * The minimum number can be entered. Blocks user's input if not in range.\n */\n // TODO: transform to signal attribute\n @Input({ transform: numberAttribute }) min!: number;\n /**\n * The maximum number can be entered. Blocks user's input if not in range.\n */\n // TODO: transform to signal attribute\n @Input({ transform: numberAttribute }) max!: number;\n /**\n * Adds leading zero to a number. Formatting will not work.\n * e.g. with leadingZero=3 input number 5 => 005\n */\n // TODO: transform to signal attribute\n @Input({ transform: numberAttribute }) leadingZero = 0;\n @Input()\n public get isInvalid(): boolean {\n return this._isInvalid || null;\n }\n\n public set isInvalid(state: BooleanInput) {\n this.setInvalid(state);\n }\n\n /**\n * CSS classes to be added to the host element.\n */\n @HostBinding('class')\n public get cssClasses(): string {\n return [super.getCssClasses('eui-input-number'), this._isInvalid ? 'eui-input-number--invalid' : ''].join(' ').trim();\n }\n\n /**\n * determines how many digits to show after the decimal point\n */\n // TODO: transform to signal attribute\n @Input()\n get fractionDigits(): number {\n return this._fractionDigits;\n }\n set fractionDigits(value: NumberInput) {\n this._fractionDigits = coerceNumberProperty(value);\n }\n /**\n * determines how many digits to show before the decimal point\n */\n // TODO: transform to signal attribute\n @Input({ transform: numberAttribute }) digits!: number;\n /**\n * fills the decimal part with zeros in case it's less than the fractionDigits\n */\n // TODO: transform to signal attribute\n @Input({ transform: booleanAttribute }) fillFraction: boolean;\n /**\n * rounds a number with more than two decimals UP\n */\n // TODO: transform to signal attribute\n @Input({ transform: numberAttribute }) roundUp!: number;\n protected _isInvalid: boolean;\n /**\n * Disables the number formatting. It will be treated as a plain number.\n * Will do a thousand grouping of number.\n */\n // TODO: transform to signal attribute\n @Input({ transform: booleanAttribute }) noFormat: boolean;\n @HostBinding('attr.type') protected type = 'eui-number';\n /**\n * The value of the input element.\n */\n @Input() value: string;\n public onChangeCallback: <T>(_: T) => void;\n /**\n * holds instance of cleave.js\n */\n cleaveInstance: CleaveInstance;\n\n /**\n * holds instance of cleave options for the Cleave instance\n */\n private options: CleaveOptions;\n private _fractionDigits = 0;\n\n constructor(\n protected _elementRef: ElementRef,\n protected _renderer: Renderer2,\n @Optional() private localeService: LocaleService,\n @Inject(LOCALE_ID) private locale_id: string,\n injector: Injector,\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: unknown,\n ) {\n super(_elementRef, _renderer, injector);\n\n // set default options\n this.options = {\n numeral: true,\n delimiter: getGroup(locale_id || 'en'),\n numeralDecimalMark: getDecimal(locale_id || 'en'),\n numeralDecimalScale: this.fractionDigits,\n numeralIntegerScale: this.digits,\n };\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n\n this.control = this.injector.get(NgControl, undefined, { optional: true });\n\n // instantiate cleave\n if (!this.control) {\n this.initCleave();\n }\n\n // subscribe to localization service and listen for locale change. De-construction of locale should happen here!\n this.localeService?.getState().subscribe((state: LocaleState) => {\n this.options = this.getCleaveOptsBasedOnLocale(state?.id);\n\n // update the options on the cleave instance\n this.updateOptions(true);\n });\n\n this._renderer.setProperty(this._elementRef.nativeElement, 'rootClassName', 'eui-input-number');\n }\n\n ngDoCheck(): void {\n if (!this.control) {\n this.control = this.injector.get(NgControl, undefined, { optional: true });\n }\n this.isInvalid = this.control ? this.control.invalid && this.control.touched : this._isInvalid;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (Object.hasOwn(changes, 'value')) {\n this._elementRef.nativeElement.value = this.value;\n if (this.cleaveInstance) {\n this.cleaveInstance.setRawValue(this.value);\n }\n }\n if (Object.hasOwn(changes, 'fractionDigits')) {\n this.options = { ...this.options, numeralDecimalScale: this.fractionDigits };\n this.updateOptions();\n }\n if (Object.hasOwn(changes, 'noFormat')) {\n this.options = { ...this.options, numeralThousandsGroupStyle: this.noFormat ? 'none' : 'thousand' };\n this.updateOptions();\n }\n if (Object.hasOwn(changes, 'fillFraction') && this.cleaveInstance) {\n this.applyFractionFill(this.cleaveInstance.getRawValue());\n }\n if (Object.hasOwn(changes, 'digits')) {\n this.options = { ...this.options, numeralIntegerScale: this.digits };\n this.updateOptions();\n }\n if (Object.hasOwn(changes, 'min')) {\n this.min = changes['min'].currentValue;\n if (changes['min'].currentValue >= 0) {\n if (this.cleaveInstance) {\n // take care of the sign symbol\n this.cleaveInstance.setRawValue(Math.abs(Number(this.cleaveInstance.getRawValue())).toString());\n }\n }\n }\n if (Object.hasOwn(changes, 'max')) {\n this.max = changes['max'].currentValue;\n // check if current value is in range\n if (this.cleaveInstance) {\n const number = Number(this.cleaveInstance.getRawValue());\n if (number > this.max) {\n this.cleaveInstance.setRawValue(this.max.toString());\n }\n }\n }\n if (Object.hasOwn(changes, 'roundUp')) {\n if (changes['roundUp'].currentValue > 0) {\n if (this.cleaveInstance) {\n let number = Number.parseFloat(this.cleaveInstance.getRawValue());\n number = this.decimalAdjust(number, this.roundUp * -1);\n this.cleaveInstance.setRawValue(number.toString());\n }\n }\n }\n if(Object.hasOwn(changes, 'placeholder')) {\n // parse number\n const number = this.parseNumber(changes['placeholder'].currentValue?.toString() || undefined);\n // set placeholder in case none is provided\n this.setPlaceholderAttribute(isNaN(number) ? changes['placeholder'].currentValue : number);\n }\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n // destroy cleave instance\n if (this.cleaveInstance) {\n this.cleaveInstance.destroy();\n }\n }\n\n onChange: <T>(_: T) => void = <T>(_: T): void => {\n if (this.control && (_ !== null || _ !== undefined)) {\n // parse number\n // const value = Number(_);\n // run on next MicroTask to avoid NG0100 error TODO: deeper investigation\n // Promise.resolve().then(() => this.control.viewToModelUpdate(value));\n // in case control is FormControl\n // this.control?.control.setValue(isNaN(value) ? null : value, { emitEvent: false, emitModelToViewChange: false });\n }\n };\n onTouched: () => void = (): void => {\n this.control?.control.markAsTouched();\n };\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent): void {\n // get the value from clipboard\n const value = (event.clipboardData || window['clipboardData']).getData('text');\n // in case round UP is enabled\n if (this.roundUp > 0) {\n const div = this.document.createElement('input');\n // create a clone of cleaveInstance\n const cloneInstance: CleaveInstance = new Cleave(div, { ...this.options, numeralDecimalScale: 8 });\n cloneInstance.setRawValue(value.toString());\n let number = Number.parseFloat(cloneInstance.getRawValue());\n number = this.decimalAdjust(number, this.roundUp * -1);\n if (!Number.isNaN(number)) {\n this.cleaveInstance.setRawValue(number.toString());\n // TODO: investigate in the future how can this be avoided\n setTimeout(() => {\n // this.writeValue(number.toString());\n }, 0);\n }\n }\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeyDown(e: KeyboardEvent): void {\n // check if it's a single symbol and not Special like (Ctrl, backspace etc)\n if (e?.key?.length <= 1 && !e.ctrlKey && !e.altKey && !e.metaKey) {\n // stop event propagation if key pressed is not a number or locale character or minus sign\n if (\n Number.isNaN(Number.parseInt(e.key, 10)) &&\n this.isMinusAllowed(e.key) &&\n e.key !== getDecimal(this.localeService?.currentLocale || this.locale_id)\n ) {\n e.stopPropagation();\n e.preventDefault();\n // stop event propagation if key pressed exceeds the min/max value range\n } else if (!Number.isNaN(Number.parseInt(e.key, 10)) && this.isOutSideRange(e)) {\n e.stopPropagation();\n e.preventDefault();\n } else if (this.isOutSideRange(e)) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n // protect decimal symbol deletion in case fillFraction is on\n if (e.key === 'Delete' || e.key === 'Backspace') {\n const element = this._elementRef.nativeElement;\n // position of caret\n const pos = element.selectionStart;\n // get character about to be deleted\n const char = element.value.charAt(pos - 1);\n // in case the char is the decimal symbol prevent deletion and move caret in front\n if (this.fillFraction &&\n char === getDecimal(this.localeService?.currentLocale || this.locale_id)) {\n e.stopPropagation();\n e.preventDefault();\n element.setSelectionRange(pos - 1, pos - 1);\n } else if (this.isOutSideRange(e)) {\n // don't allow insertion that will put number out of range\n e.stopPropagation();\n e.preventDefault();\n }\n }\n }\n\n @HostListener('focusout')\n protected onFocusout(): void {\n // in case fillFraction feature is on and there's no integer part add leading 0\n if (this.fillFraction && this.cleaveInstance.getRawValue().match(/^\\.[0-9]+/g)) {\n this.cleaveInstance.setRawValue('0' + this.cleaveInstance.getRawValue());\n }\n\n // in case round UP is enabled\n if (this.roundUp > 0) {\n const number = Number.parseFloat(this.cleaveInstance.getRawValue());\n this.cleaveInstance.setRawValue(this.decimalAdjust(number, this.roundUp * -1).toString());\n }\n\n // in case min is set and value is less than min reset to the min value\n if (this.min !== null && this.min !== undefined && Number.parseFloat(this.cleaveInstance.getRawValue()) < this.min) {\n this.cleaveInstance.setRawValue(this.min.toString());\n }\n\n // in case max is set and value is greater than max reset to the max value\n if (this.max !== null && this.max !== undefined && Number.parseFloat(this.cleaveInstance.getRawValue()) > this.max) {\n this.cleaveInstance.setRawValue(this.max.toString());\n }\n }\n\n /**\n * @Override setInvalid setInvalidAttribute of InputDirective\n * Sets the invalid state of the input element.\n *\n * @param state\n */\n protected setInvalid(state?: BooleanInput): void {\n // in case it's controlled by NgControl override\n this._isInvalid = this.control ? this.control.invalid && this.control.touched : coerceBooleanProperty(state);\n\n // set BaseDirective Attribute\n this.euiDanger = this._isInvalid;\n }\n\n /**\n * @Override setPlaceholder setPlaceholderAttribute of InputDirective\n * Updates the placeholder value based on current number format and given value.\n * If value passed contains characters it doesn't format placeholder.\n * */\n protected setPlaceholderAttribute(value: string | number): void {\n // if value is a number, format the value based on current number format\n if (typeof value === 'number' && !isNaN(value) && isPlatformBrowser(this.platformId)) {\n const div = this.document.createElement('input');\n // create a clone of cleaveInstance\n const cloneInstance: CleaveInstance = new Cleave(div, this.options);\n // BEWARE: by the time your setRawValue cleave options have changed thus number formatting\n cloneInstance.setRawValue(value.toString());\n // set the value with current format as placeholder\n super.setPlaceholderAttribute(cloneInstance.getFormattedValue());\n } else if (typeof value === 'string') {\n super.setPlaceholderAttribute(value.toString());\n } else if (isNaN(value)) {\n value = this._elementRef.nativeElement.placeholder;\n super.setPlaceholderAttribute(value.toString());\n }\n }\n\n /**\n * instantiate Cleave.js\n */\n private initCleave<T, P>(onChangeCallback?: (obj: T) => P): void {\n if(isPlatformServer(this.platformId)) {\n // in case it's not a browser environment\n return;\n }\n // change the cleave prototype function to intercept onCut callback\n // and allow based on the event bubbling and disabled state\n // TIP: change behavior of onCut to stop in case bubble is canceled\n // TODO: See relevant issue https://github.com/nosir/cleave.js/issues/675\n const _onCut = Cleave.prototype['onCut'];\n Cleave.prototype['onCut'] = function (e: Event): void {\n /* eslint-enable no-invalid-this */\n // Check if the event is composed and stopPropagation hasn't been called\n if (!e.composed && !e.defaultPrevented && !this.element.disabled) {\n _onCut.call(this, e);\n }\n /* eslint-disable no-invalid-this */\n };\n\n // in case options is undefined\n const opts: CleaveOptions = { ...this.options };\n\n // set the onValue change listener to keep the value at readOnly element in sync\n opts.onValueChanged = onChangeCallback || this.onValueChanged.bind(this);\n\n // in case round UP is enabled\n if (this.roundUp > 0) {\n const number = Number.parseFloat(this._elementRef.nativeElement.value);\n this._elementRef.nativeElement.value = this.decimalAdjust(number, this.roundUp * -1);\n }\n\n // create the Cleave instance with the new or updated options\n this.cleaveInstance = new Cleave(this._elementRef.nativeElement, opts);\n }\n\n /**\n * Updates the cleave options by destroying the current instance and creating another one while keeping the previous\n * value.\n */\n private updateOptions(localeUpdated = false): void {\n if (this.cleaveInstance) {\n // the value before destroying cleave instance\n const previousValue = this.cleaveInstance.getRawValue();\n\n // update the Cleave instance with the new or updated options\n this.cleaveInstance.properties = {\n ...this.cleaveInstance.properties,\n ...this.options,\n initValue: previousValue,\n };\n\n // init number formatter with updated options\n this.cleaveInstance.initNumeralFormatter();\n\n // In case previous settings where numeralDecimalMark='.' with value 1000.99, and they changed to\n // numeralDecimalMark=','; set initValue to 1000.99 or even 1000,99 will not be reflected and cleave will\n // remove the decimal part. Set of the value after initialization causes reformat of number and works.\n this.cleaveInstance.setRawValue(previousValue);\n\n // parse number\n const number = this.parseNumber(this._elementRef.nativeElement.placeholder || undefined, localeUpdated);\n // set placeholder in case none is provided\n this.setPlaceholderAttribute(number);\n }\n }\n\n /**\n * Callback function of the Cleave instance that is invoked when value is changed.\n *\n * @param event type of CleaveEventOnChange\n */\n private onValueChanged(event: CleaveEventOnChange): void {\n const { target } = event;\n\n if (this.fillFraction) {\n this.applyFractionFill(target.rawValue);\n }\n this.onChange(Number.parseFloat(target.rawValue));\n // fill leading zero\n if (this.leadingZero) {\n const size = this.leadingZero > this.digits && this.digits > 0 ? this.digits : this.leadingZero;\n this._elementRef.nativeElement.value = this.padZero(event.target.rawValue, size);\n }\n }\n\n /**\n * responsible to extract all locale information needed to build CleaveOptions related to number format.\n *\n * @param id The id of the locale\n */\n private getCleaveOptsBasedOnLocale(id: string): CleaveOptions {\n if (!id || id === '') {\n throw new Error('Locale id cannot be empty or undefined');\n }\n const opts: CleaveOptions = {\n numeral: true,\n delimiter: getGroup(id),\n numeralDecimalMark: getDecimal(id),\n numeralDecimalScale: this.fractionDigits,\n numeralIntegerScale: this.digits,\n numeralThousandsGroupStyle: this.noFormat ? 'none' : 'thousand', // TODO: implement based on locale\n };\n\n return { ...this.options, ...opts };\n }\n\n /**\n * Applies the fill of decimal part with zeros in case decimal part of given number has\n * size less than the max fraction digits.\n *\n * @param number\n * @param cleaveInstance\n * @private\n */\n private applyFractionFill(number: string, cleaveInstance: CleaveInstance = this.cleaveInstance): void {\n // if fill fraction is enabled and there's cleave instance\n if (this.fillFraction) {\n if (this.cleaveInstance) {\n number = number?.toString();\n if (number === '' || !number) {\n return;\n }\n const hasDecimal = number.split('.').length > 1;\n // in case there's already decimal point in number\n if (hasDecimal) {\n const decimalSize = number.split('.')[1].length;\n // if size of decimal part of number is less than the max fraction digits\n if (decimalSize < this._fractionDigits) {\n number = number + new Array(this._fractionDigits - decimalSize).fill(0).join('');\n const pos = this._elementRef.nativeElement.selectionStart;\n cleaveInstance.setRawValue(number);\n this._elementRef.nativeElement.setSelectionRange(pos, pos);\n }\n // in case there's not, force it by filling it as much zero as the fraction digits\n } else if (this.fractionDigits > 0) {\n number = `${number}.${new Array(this._fractionDigits).fill(0).join('')}`;\n const pos = this._elementRef.nativeElement.selectionStart;\n cleaveInstance.setRawValue(number);\n this._elementRef.nativeElement.setSelectionRange(pos, pos);\n }\n }\n }\n }\n\n /**\n * Parses a given formatted number and returns it as a number.\n *\n * @param value The formatted number you want to parse e.g. 111,888.22\n * @param userPrevLocaleState Use previous locale state to parse the value. By default, is false\n * @private\n */\n private parseNumber(value: string, userPrevLocaleState = false): number {\n // locale state\n const locale = userPrevLocaleState ? this.localeService?.previousLocale : this.localeService?.currentLocale || this.locale_id || 'en';\n // get decimal and group symbols\n const decimalSymbol = getDecimal(locale);\n const groupSymbol = getGroup(locale);\n // replace symbols to parse number\n const parsedNumber = value?.split(groupSymbol).join('').split(decimalSymbol).join('.');\n return Number.parseFloat(parsedNumber);\n }\n\n /**\n * Pad leading zero to the number\n *\n * @param num The number to add leading zero to\n * @param size Number of number's leading zero\n * @private\n */\n private padZero(num: string, size: number): string {\n num = num.toString();\n // get integer and decimal part\n // eslint-disable-next-line prefer-const\n let [integer, decimal] = num.split('.');\n while (integer.length < size) {\n integer = '0' + integer;\n }\n return decimal ? `${integer}.${decimal}` : integer;\n }\n\n /**\n * checks whether the min symbol is allowed. It is allowed when minus symbol\n * provided and min input is undefined or min provided and is negative.\n *\n * @param key The key string coming from an event\n */\n private isMinusAllowed(key: string): boolean {\n return !this.min || this.min < 0 ? key !== '-' : true;\n }\n\n /**\n * check whether the key entered is inside the min and\n * max range. Returns true if it's out of range.\n *\n * @param e A keyboard event\n */\n private isOutSideRange(e: KeyboardEvent): boolean {\n if (!this.cleaveInstance) {\n return false;\n }\n // get caret position\n const pos = e.target['selectionStart'];\n // get caret position (in case there's text selected)\n const endPos = e.target['selectionEnd'];\n // get current value (formatted)\n let value = e.target['value'];\n // remove key from value\n if (e.key === 'Delete' || e.key === 'Backspace') {\n // check if there's selection of text to be removed\n if (pos !== endPos) {\n value = e.target['value'].substring(0, pos) + e.target['value'].substring(endPos, e.target['value'].length);\n } else {\n value = e.target['value'].substring(0, pos - 1) + e.target['value'].substring(endPos, e.target['value'].length);\n }\n } else {\n // add key to the value\n value = [value.slice(0, pos), e.key, value.slice(endPos)].join('');\n }\n\n // create a Cleave instance to extract the number from formatted value\n const cleave: CleaveInstance = new Cleave(this.document.createElement('input'), { ...this.options });\n cleave.setRawValue(value);\n const number = Number(cleave.getRawValue());\n // destroy cleave instance\n cleave.destroy();\n return !isNaN(number) &&\n this.min >= 0 ? (this.isDefined(this.max) && this.max < number) : (this.min > number || this.max < number) &&\n this.max <= 0 ? (this.isDefined(this.min) && this.min > number) : (this.min > number || this.max < number);\n }\n\n /**\n * Decimal adjustment of a number.\n *\n * @param value The number.\n * @param exp The exponent (the 10 logarithm of the adjustment base).\n * @returns The adjusted value.\n */\n private decimalAdjust(value: number, exp: number): number {\n // If the exp is undefined or zero...\n if (typeof exp === 'undefined' || +exp === 0) {\n return Math.round(value);\n }\n value = +value;\n exp = +exp;\n // If the value is not a number or the exp is not an integer...\n if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {\n return NaN;\n }\n // Shift\n let cleaned = value.toString().split('e');\n value = Math.round(+(cleaned[0] + 'e' + (cleaned[1] ? +cleaned[1] - exp : -exp)));\n // Shift back\n cleaned = value.toString().split('e');\n return +(cleaned[0] + 'e' + (cleaned[1] ? +cleaned[1] + exp : exp));\n }\n\n /**\n * Checks whether a value is defined or not\n *\n * @param value\n */\n private isDefined(value: number): boolean {\n return value !== undefined && value !== null;\n }\n}\n","import { Directive, ElementRef, forwardRef, Inject, OnInit, Optional, PLATFORM_ID } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CleaveInstance, EuiInputNumberComponent } from './eui-input-number.component';\nimport Cleave from 'cleave.js';\nimport { DOCUMENT, isPlatformServer } from '@angular/common';\n\n/**\n * @description\n * Directive for the {@link EuiInputNumberComponent}. This directive is used to\n * handle the value changes of the input element and update the value of the\n * directive and the form control. It also implements the ControlValueAccessor\n * interface to allow the directive to be used with reactive forms.\n *\n * @example\n * ```html\n * <input euiInputNumber formControlName=\"number\" />\n * ```\n */\n@Directive({\n selector: 'input[euiInputNumber][formControl],input[euiInputNumber][formControlName],input[euiInputNumber][ngModel]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EuiInputNumberDirective),\n multi: true,\n },\n ],\n standalone: true,\n})\nexport class EuiInputNumberDirective implements ControlValueAccessor, OnInit {\n /**\n * holds a copy of the value\n */\n private value: number;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onChange: (t: any) => void;\n\n constructor(\n private elementRef: ElementRef,\n @Optional() private euiNumberComponent: EuiInputNumberComponent,\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: unknown,\n ) {}\n\n ngOnInit(): void {\n this.euiNumberComponent['initCleave'](this.valueChanges.bind(this));\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(obj: any): void {\n if (isPlatformServer(this.platformId)) {\n return;\n }\n const cleave: CleaveInstance = new Cleave(this.document.createElement('input'), { ...this.euiNumberComponent['options'] });\n cleave.setRawValue(obj);\n if (this.euiNumberComponent.fillFraction && obj !== '' && obj) {\n this.euiNumberComponent['applyFractionFill'](obj, cleave);\n }\n let valueOfElement: string;\n // fill leading zero\n if (this.euiNumberComponent.leadingZero) {\n const size =\n this.euiNumberComponent.leadingZero > this.euiNumberComponent.digits && this.euiNumberComponent.digits > 0\n ? this.euiNumberComponent.digits\n : this.euiNumberComponent.leadingZero;\n valueOfElement = this.euiNumberComponent['padZero'](cleave.getFormattedValue(), size);\n } else {\n valueOfElement = cleave.getFormattedValue();\n }\n this.elementRef.nativeElement.value = valueOfElement;\n this.value = Number.parseFloat(cleave.getRawValue());\n cleave.destroy();\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this.onChange = (t): void => {\n this.value = t;\n fn(t);\n };\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /**\n * Set the disabled state of the input element.\n *\n * @param isDisabled\n */\n setDisabledState(isDisabled: boolean): void {\n this.euiNumberComponent.disabled = isDisabled;\n }\n\n private onTouched(): void {\n // this.euiNumberComponent.isInvalid = this.control.invalid;\n }\n\n /**\n * Handle the value changes of the input element and update the value of the\n * directive and the form control.\n *\n * @param event\n */\n private valueChanges(event): void {\n const { target } = event;\n\n this.euiNumberComponent['onValueChanged'](event);\n const numberCoerce = Number.parseFloat(target.rawValue);\n if (this.value !== numberCoerce && this.onChange) {\n this.onChange(isNaN(numberCoerce) ? null : numberCoerce);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EuiInputNumberComponent } from './eui-input-number.component';\nimport { EuiInputNumberDirective } from './eui-number-control.directive';\n\n/**\n * @description\n * Module for the {@link EuiInputNumberComponent} and {@link EuiInputNumberDirective}.\n *\n * @example\n * ```typescript\n * import { EuiInputNumberModule } from '@eui/components/eui-input-number';\n *\n * @NgModule({\n * imports: [EuiInputNumberModule]\n * })\n * export class AppModule {}\n * ```\n * @deprecated Use {@link `EuiInputNumberComponent`} and or {@link `EuiInputNumberDirective`} instead.\n */\n@NgModule({\n imports: [CommonModule, EuiInputNumberComponent, EuiInputNumberDirective],\n exports: [EuiInputNumberComponent, EuiInputNumberDirective],\n})\nexport class EuiInputNumberModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.EuiInputNumberComponent"],"mappings":"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"}