@acorex/components 22.3.2 → 22.3.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.
@@ -9,7 +9,7 @@ import { AsyncPipe } from '@angular/common';
9
9
  import * as i0 from '@angular/core';
10
10
  import { input, model, EventEmitter, effect, ViewEncapsulation, Component } from '@angular/core';
11
11
  import { FormsModule } from '@angular/forms';
12
- import { i as isValidPickerFileName } from './acorex-components-conversation-acorex-components-conversation-BEDMf4vn.mjs';
12
+ import { i as isValidPickerFileName } from './acorex-components-conversation-acorex-components-conversation-BZjCPB-7.mjs';
13
13
 
14
14
  class AXConversationPickerRenameFileDialogComponent {
15
15
  constructor() {
@@ -62,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
62
62
  }], ctorParameters: () => [], propDecorators: { initialName: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialName", required: true }] }], fileName: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileName", required: false }] }, { type: i0.Output, args: ["fileNameChange"] }] } });
63
63
 
64
64
  export { AXConversationPickerRenameFileDialogComponent };
65
- //# sourceMappingURL=acorex-components-conversation-picker-rename-file-dialog.component-C1lV6aI2.mjs.map
65
+ //# sourceMappingURL=acorex-components-conversation-picker-rename-file-dialog.component-CNwDWg_O.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-conversation-picker-rename-file-dialog.component-C1lV6aI2.mjs","sources":["../../../../packages/components/conversation/src/lib/plugins/composer/components/shared/picker-rename-file-dialog.component.ts","../../../../packages/components/conversation/src/lib/plugins/composer/components/shared/picker-rename-file-dialog.component.html"],"sourcesContent":["import { AXClosableComponent, AXComponentCloseEvent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, EventEmitter, ViewEncapsulation, effect, input, model } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { isValidPickerFileName } from './picker-file.utils';\n\n@Component({\n selector: 'ax-conversation-picker-rename-file-dialog',\n encapsulation: ViewEncapsulation.None,\n imports: [\n AsyncPipe,\n FormsModule,\n AXButtonComponent,\n AXDecoratorGenericComponent,\n AXTextBoxModule,\n AXTranslationModule,\n ],\n providers: [{ provide: AXClosableComponent, useExisting: AXConversationPickerRenameFileDialogComponent }],\n templateUrl: './picker-rename-file-dialog.component.html',\n styleUrl: './picker-rename-file-dialog.component.css',\n})\nexport class AXConversationPickerRenameFileDialogComponent {\n readonly initialName = input.required<string>();\n readonly fileName = model('');\n\n constructor() {\n effect(() => {\n this.fileName.set(this.initialName());\n });\n }\n\n canSave(): boolean {\n const next = this.fileName().trim();\n return isValidPickerFileName(next) && next !== this.initialName().trim();\n }\n\n save(): void {\n if (!this.canSave()) {\n return;\n }\n\n const event = new AXComponentCloseEvent();\n event.component = this;\n event.data = this.fileName().trim();\n this.onClosed.emit(event);\n }\n\n cancel(): void {\n const event = new AXComponentCloseEvent();\n event.component = this;\n this.onClosed.emit(event);\n }\n\n onKeyDown(event: { nativeEvent?: KeyboardEvent } | undefined): void {\n if (event?.nativeEvent?.key === 'Enter') {\n event.nativeEvent.preventDefault();\n this.save();\n }\n }\n\n readonly onClosed = new EventEmitter<AXComponentCloseEvent>();\n}\n","<div class=\"ax-conversation-picker-rename-dialog\">\n <div class=\"dialog-content\">\n <ax-text-box\n [(value)]=\"fileName\"\n [look]=\"'outline'\"\n [placeholder]=\"'@acorex:chat.pickers.files.rename-placeholder' | translate | async\"\n (onKeyDown)=\"onKeyDown($event)\"\n />\n </div>\n\n <ax-footer class=\"dialog-footer\">\n <ax-suffix>\n <ax-button\n [text]=\"'@acorex:chat.actions.cancel' | translate | async\"\n [look]=\"'solid'\"\n (onClick)=\"cancel()\"\n />\n <ax-button\n [text]=\"'@acorex:chat.actions.save' | translate | async\"\n [look]=\"'solid'\"\n [color]=\"'primary'\"\n [disabled]=\"!canSave()\"\n (onClick)=\"save()\"\n />\n </ax-suffix>\n </ax-footer>\n</div>\n"],"names":["i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-conversation-picker-rename-file-dialog.component-CNwDWg_O.mjs","sources":["../../../../packages/components/conversation/src/lib/plugins/composer/components/shared/picker-rename-file-dialog.component.ts","../../../../packages/components/conversation/src/lib/plugins/composer/components/shared/picker-rename-file-dialog.component.html"],"sourcesContent":["import { AXClosableComponent, AXComponentCloseEvent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, EventEmitter, ViewEncapsulation, effect, input, model } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { isValidPickerFileName } from './picker-file.utils';\n\n@Component({\n selector: 'ax-conversation-picker-rename-file-dialog',\n encapsulation: ViewEncapsulation.None,\n imports: [\n AsyncPipe,\n FormsModule,\n AXButtonComponent,\n AXDecoratorGenericComponent,\n AXTextBoxModule,\n AXTranslationModule,\n ],\n providers: [{ provide: AXClosableComponent, useExisting: AXConversationPickerRenameFileDialogComponent }],\n templateUrl: './picker-rename-file-dialog.component.html',\n styleUrl: './picker-rename-file-dialog.component.css',\n})\nexport class AXConversationPickerRenameFileDialogComponent {\n readonly initialName = input.required<string>();\n readonly fileName = model('');\n\n constructor() {\n effect(() => {\n this.fileName.set(this.initialName());\n });\n }\n\n canSave(): boolean {\n const next = this.fileName().trim();\n return isValidPickerFileName(next) && next !== this.initialName().trim();\n }\n\n save(): void {\n if (!this.canSave()) {\n return;\n }\n\n const event = new AXComponentCloseEvent();\n event.component = this;\n event.data = this.fileName().trim();\n this.onClosed.emit(event);\n }\n\n cancel(): void {\n const event = new AXComponentCloseEvent();\n event.component = this;\n this.onClosed.emit(event);\n }\n\n onKeyDown(event: { nativeEvent?: KeyboardEvent } | undefined): void {\n if (event?.nativeEvent?.key === 'Enter') {\n event.nativeEvent.preventDefault();\n this.save();\n }\n }\n\n readonly onClosed = new EventEmitter<AXComponentCloseEvent>();\n}\n","<div class=\"ax-conversation-picker-rename-dialog\">\n <div class=\"dialog-content\">\n <ax-text-box\n [(value)]=\"fileName\"\n [look]=\"'outline'\"\n [placeholder]=\"'@acorex:chat.pickers.files.rename-placeholder' | translate | async\"\n (onKeyDown)=\"onKeyDown($event)\"\n />\n </div>\n\n <ax-footer class=\"dialog-footer\">\n <ax-suffix>\n <ax-button\n [text]=\"'@acorex:chat.actions.cancel' | translate | async\"\n [look]=\"'solid'\"\n (onClick)=\"cancel()\"\n />\n <ax-button\n [text]=\"'@acorex:chat.actions.save' | translate | async\"\n [look]=\"'solid'\"\n [color]=\"'primary'\"\n [disabled]=\"!canSave()\"\n (onClick)=\"save()\"\n />\n </ax-suffix>\n </ax-footer>\n</div>\n"],"names":["i1","i2"],"mappings":";;;;;;;;;;;;;MAyBa,6CAA6C,CAAA;AAIxD,IAAA,WAAA,GAAA;QAHS,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,QAAQ;wFAAU;QACtC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,EAAE;qFAAC;AAqCpB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAyB;QAlC3D,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACvC,QAAA,CAAC,CAAC;IACJ;IAEA,OAAO,GAAA;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;AACnC,QAAA,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;IAC1E;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;YACnB;QACF;AAEA,QAAA,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE;AACzC,QAAA,KAAK,CAAC,SAAS,GAAG,IAAI;QACtB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;AACnC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE;AACzC,QAAA,KAAK,CAAC,SAAS,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;AAEA,IAAA,SAAS,CAAC,KAAkD,EAAA;QAC1D,IAAI,KAAK,EAAE,WAAW,EAAE,GAAG,KAAK,OAAO,EAAE;AACvC,YAAA,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE;YAClC,IAAI,CAAC,IAAI,EAAE;QACb;IACF;8GArCW,6CAA6C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7C,6CAA6C,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAJ7C,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,6CAA6C,EAAE,CAAC,0BCrB3G,4xBA2BA,EAAA,MAAA,EAAA,CAAA,igBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDZI,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,2BAA2B,EAAA,QAAA,EAAA,8IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAC3B,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EALnB,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAWA,6CAA6C,EAAA,UAAA,EAAA,CAAA;kBAfzD,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2CAA2C,EAAA,aAAA,EACtC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B;wBACP,SAAS;wBACT,WAAW;wBACX,iBAAiB;wBACjB,2BAA2B;wBAC3B,eAAe;wBACf,mBAAmB;qBACpB,EAAA,SAAA,EACU,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAA,6CAA+C,EAAE,CAAC,EAAA,QAAA,EAAA,4xBAAA,EAAA,MAAA,EAAA,CAAA,igBAAA,CAAA,EAAA;;;;;"}
@@ -1,2 +1,2 @@
1
- export { A as AXConversationApi, a as AXConversationApiLoggerService, b as AXConversationAudioAttachmentComponent, c as AXConversationAudioFileTypeProvider, d as AXConversationAudioPickerComponent, e as AXConversationAudioRendererComponent, f as AXConversationAvatarComponent, g as AXConversationAvatarPickerComponent, h as AXConversationBaseRegistry, j as AXConversationComposerActionRegistry, k as AXConversationComposerComponent, l as AXConversationComposerFileTypesProvider, m as AXConversationComposerGenerationStateService, n as AXConversationComposerPopupComponent, o as AXConversationComposerService, p as AXConversationComposerTabRegistry, q as AXConversationContainerComponent, r as AXConversationContainerDirective, s as AXConversationDateUtilsService, t as AXConversationDeleteDialogComponent, u as AXConversationEmojiTabComponent, v as AXConversationErrorHandlerService, w as AXConversationFallbackRendererComponent, x as AXConversationFileAttachmentComponent, y as AXConversationFileFileTypeProvider, z as AXConversationFilePickerComponent, B as AXConversationFileRendererComponent, C as AXConversationForwardMessageDialogComponent, D as AXConversationImageAttachmentComponent, E as AXConversationImageFileTypeProvider, F as AXConversationImagePickerComponent, G as AXConversationImageRendererComponent, H as AXConversationInfiniteScrollDirective, I as AXConversationInfoBarActionRegistry, J as AXConversationInfoBarComponent, K as AXConversationInfoBarSearchComponent, L as AXConversationInfoBarService, M as AXConversationItemActionRegistry, N as AXConversationLocationPickerComponent, O as AXConversationLocationRendererComponent, P as AXConversationMediaPlaybackInfoBarBannerComponent, Q as AXConversationMessageActionRegistry, R as AXConversationMessageApi, S as AXConversationMessageListComponent, T as AXConversationMessageListNoActiveDefaultComponent, U as AXConversationMessageListService, V as AXConversationMessageRendererCopyHostComponent, W as AXConversationMessageRendererRegistry, X as AXConversationMessageRendererStateComponent, Y as AXConversationMessageUtilsService, Z as AXConversationModule, _ as AXConversationNewDialogComponent, $ as AXConversationPickerCaptionComponent, a0 as AXConversationPickerEmptyComponent, a1 as AXConversationPickerFooterComponent, a2 as AXConversationPickerHeaderComponent, a3 as AXConversationPickerOptionsComponent, a4 as AXConversationPickerShellComponent, a5 as AXConversationPickerToolbarComponent, a6 as AXConversationRealtimeApi, a7 as AXConversationRegistryComponentOutletComponent, a8 as AXConversationRegistryService, a9 as AXConversationService, aa as AXConversationSidebarComponent, ab as AXConversationSidebarService, ac as AXConversationStickerRendererComponent, ad as AXConversationStickerTabComponent, ae as AXConversationSystemRendererComponent, af as AXConversationTabRegistry, ag as AXConversationTextRendererComponent, ah as AXConversationUserApi, ai as AXConversationVideoAttachmentComponent, aj as AXConversationVideoFileTypeProvider, ak as AXConversationVideoPickerComponent, al as AXConversationVideoRendererComponent, am as AXConversationVoiceFileTypeProvider, an as AXConversationVoiceRecorderComponent, ao as AXConversationVoiceRendererComponent, ap as AX_CONVERSATION_AUDIO_CATALOG, aq as AX_CONVERSATION_AUDIO_PRESENTATION, ar as AX_CONVERSATION_AUDIO_RENDERER, as as AX_CONVERSATION_BUILTIN_COMPOSER_TABS, at as AX_CONVERSATION_COMPOSER_AUDIO_ACTION, au as AX_CONVERSATION_COMPOSER_EMOJI_ACTION, av as AX_CONVERSATION_COMPOSER_EMOJI_TAB, aw as AX_CONVERSATION_COMPOSER_FILE_ACTION, ax as AX_CONVERSATION_COMPOSER_IMAGE_ACTION, ay as AX_CONVERSATION_COMPOSER_LOCATION_ACTION, az as AX_CONVERSATION_COMPOSER_STICKER_TAB, aA as AX_CONVERSATION_COMPOSER_VIDEO_ACTION, aB as AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, aC as AX_CONVERSATION_CONFIG, aD as AX_CONVERSATION_CONNECTION_ERRORS, aE as AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, aF as AX_CONVERSATION_DEFAULT_COMPOSER_ACTIONS, aG as AX_CONVERSATION_DEFAULT_COMPOSER_TABS, aH as AX_CONVERSATION_DEFAULT_CONVERSATION_ITEM_ACTIONS, aI as AX_CONVERSATION_DEFAULT_CONVERSATION_TABS, aJ as AX_CONVERSATION_DEFAULT_GROUP_ICON, aK as AX_CONVERSATION_DEFAULT_INFO_BAR_ACTIONS, aL as AX_CONVERSATION_DEFAULT_MESSAGE_ACTIONS, aM as AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND, aN as AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND_PRESET_ID, aO as AX_CONVERSATION_DEFAULT_MESSAGE_LIST_THEME_BACKGROUND, aP as AX_CONVERSATION_DEFAULT_MESSAGE_RENDERERS, aQ as AX_CONVERSATION_DEFAULT_ROOM_PREFERENCES, aR as AX_CONVERSATION_DEFAULT_USER_ICON, aS as AX_CONVERSATION_ERRORS, aT as AX_CONVERSATION_ERROR_HANDLER_CONFIG, aU as AX_CONVERSATION_ERROR_MESSAGES, aV as AX_CONVERSATION_FALLBACK_RENDERER, aW as AX_CONVERSATION_FILE_CATALOG, aX as AX_CONVERSATION_FILE_ERRORS, aY as AX_CONVERSATION_FILE_PRESENTATION, aZ as AX_CONVERSATION_FILE_RENDERER, a_ as AX_CONVERSATION_FILE_TYPES_READY, a$ as AX_CONVERSATION_IMAGE_CATALOG, b0 as AX_CONVERSATION_IMAGE_PRESENTATION, b1 as AX_CONVERSATION_IMAGE_RENDERER, b2 as AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, b3 as AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, b4 as AX_CONVERSATION_INFO_BAR_DELETE_ACTION, b5 as AX_CONVERSATION_INFO_BAR_DIVIDER, b6 as AX_CONVERSATION_INFO_BAR_MUTE_ACTION, b7 as AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, b8 as AX_CONVERSATION_ITEM_BLOCK_ACTION, b9 as AX_CONVERSATION_ITEM_DELETE_ACTION, ba as AX_CONVERSATION_ITEM_DIVIDER, bb as AX_CONVERSATION_ITEM_MARK_READ_ACTION, bc as AX_CONVERSATION_ITEM_MUTE_ACTION, bd as AX_CONVERSATION_ITEM_PIN_ACTION, be as AX_CONVERSATION_JUMBO_EMOJI_MAX, bf as AX_CONVERSATION_LOCATION_ERRORS, bg as AX_CONVERSATION_LOCATION_RENDERER, bh as AX_CONVERSATION_MESSAGE_DELETE_ACTION, bi as AX_CONVERSATION_MESSAGE_EDIT_ACTION, bj as AX_CONVERSATION_MESSAGE_ERRORS, bk as AX_CONVERSATION_MESSAGE_FORWARD_ACTION, bl as AX_CONVERSATION_MESSAGE_LIST_BACKGROUND_PRESETS, bm as AX_CONVERSATION_MESSAGE_REPLY_ACTION, bn as AX_CONVERSATION_MESSAGE_TYPE_FILE_TYPE, bo as AX_CONVERSATION_PEER_AVATAR_TYPES, bp as AX_CONVERSATION_REGISTRY_CONFIG, bq as AX_CONVERSATION_STICKER_API_KEY, br as AX_CONVERSATION_STICKER_RENDERER, bs as AX_CONVERSATION_SYSTEM_RENDERER, bt as AX_CONVERSATION_TAB_ALL, bu as AX_CONVERSATION_TAB_ARCHIVED, bv as AX_CONVERSATION_TAB_BOT, bw as AX_CONVERSATION_TAB_CHANNELS, bx as AX_CONVERSATION_TAB_GROUPS, by as AX_CONVERSATION_TAB_PRIVATE, bz as AX_CONVERSATION_TAB_UNREAD, bA as AX_CONVERSATION_TEXT_RENDERER, bB as AX_CONVERSATION_URL_ERRORS, bC as AX_CONVERSATION_USER_AVATAR_COMPONENT, bD as AX_CONVERSATION_USER_ERRORS, bE as AX_CONVERSATION_VIDEO_CATALOG, bF as AX_CONVERSATION_VIDEO_PRESENTATION, bG as AX_CONVERSATION_VIDEO_RENDERER, bH as AX_CONVERSATION_VOICE_CATALOG, bI as AX_CONVERSATION_VOICE_PRESENTATION, bJ as AX_CONVERSATION_VOICE_RENDERER, bK as AX_DEFAULT_CONVERSATION_CONFIG, bL as abortPickerUploads, bM as applyAudioLocalPreview, bN as applyFileLocalPreview, bO as applyLocalPreview, bP as applyVideoLocalPreview, bQ as applyVoiceLocalPreview, bR as audioItemFromUpload, bS as bindMediaRendererContentState, bT as buildMediaGalleryTiles, bU as canShowRendererContentError, bV as cleanupPickerUploads, bW as conversationAudioUtilities, bX as conversationFileUtilities, bY as conversationImageUtilities, bZ as conversationVideoUtilities, b_ as conversationVoiceUtilities, b$ as copyWithFileTypeFallback, c0 as countLoneEmojis, c1 as createConversationAudioFileType, c2 as createConversationFileFileType, c3 as createConversationImageFileType, c4 as createConversationVideoFileType, c5 as createConversationVoiceFileType, c6 as createLocalPreviewUrl, c7 as createObjectUrl, c8 as createPickerDragHandlers, c9 as createPickerUploadItemId, ca as createResolvedMediaUrlSignal, cb as deleteUploadedPickerMedia, cc as dismissComposerPickerHost, cd as ensureConversationFileCatalogRegistered, ce as fetchConversationMediaPage, cf as fileItemAsAudioMedia, cg as fileItemFromUpload, ch as filesFromClipboardEvent, ci as filterMessagesByMediaCategory, cj as filterSupplementalInfoPanelMessages, ck as findExistingPrivateConversation, cl as formatDuration, cm as formatErrorMessage, cn as formatFileByteSize, co as formatFileSize, cp as formatMediaDuration, cq as formatPickerValidationMessage, cr as getActiveComposerPickerPasteHandler, cs as getConversationMediaCategories, ct as getConversationProfileFields, cu as getErrorMessage, cv as getMessageAudioItems, cw as getMessageVideoItems, cx as getPickerCancelUploadLabel, cy as getPrivatePeerParticipant, cz as hasRegistryComponent, cA as inferFileExtensionHintFromMessage, cB as isAttachmentListCategory, cC as isComposerAttachmentBannerEnabled, cD as isComposerTabEnabled, cE as isConversationReactionsEnabled, cF as isConversationRoomCreator, cG as isGenericPrivateConversationTitle, cH as isGridMediaCategory, cI as isGroupLikeConversation, cJ as isJumboEmojiText, cK as isJumboEmojiTextMessage, cL as isMessageDeliveryPending, cM as isMessageListThemeBackground, cN as isMessageVisibleAfterHistoryCutoff, cO as isNonPersistableMediaUrl, cP as isPickerItemReadyToSend, cQ as isPlainChromeMessage, cR as isSameMessageListBackground, cS as isUploadAborted, cT as limitFilesToCapacity, cU as listTextGraphemes, cV as mediaCopyText, cW as mergeAudioUploadResult, cX as mergeFileUploadResult, cY as mergeInfoPanelMessages, cZ as mergeUploadResult, c_ as mergeVideoUploadResult, c$ as mergeVoiceUploadResult, d0 as mergeWithDefaults, d1 as messageContainsLink, d2 as normalizeAudioPayload, d3 as normalizeConversationInboundFile, d4 as normalizeFilePayload, d5 as normalizeImagePayload, d6 as normalizeMessageListBackgroundValue, d7 as normalizeVideoPayload, d8 as notifyMaxFilesCapacityExceeded, d9 as notifyPickerValidationErrors, da as openWithFileType, db as pickDisplayMediaUrl, dc as pickEarliestJoinedParticipant, dd as pickerItemToMediaReference, de as pickerItemToUploadResult, df as probeAudioDuration, dg as probeImageDimensions, dh as probeVideoMedia, di as provideConversation, dj as provideConversationComposerFileTypes, dk as provideConversationFileCatalog, dl as registerComposerPickerPasteHandler, dm as reportMediaLoadError, dn as resolveComposerAttachmentPresentation, dp as resolveComposerMaxFiles, dq as resolveConversationAvatarDisplay, dr as resolveConversationComposerTabs, ds as resolveConversationForViewer, dt as resolveConversationMessageFileType, du as resolveConversationPeerParticipant, dv as resolveConversationPeerUserId, dw as resolveConversationTitleForViewer, dx as resolveGalleryImageUrl, dy as resolveImageDisplayUrl, dz as resolveMessageChrome, dA as resolveMessageListBackgroundRaw, dB as resolveMessageListBackgroundStyle, dC as resolveParticipantProfile, dD as resolvePersistableMediaUrl, dE as resolvePersistedThumbnailUrl, dF as resolvePrivatePeerParticipant, dG as resolvePrivatePeerUserId, dH as resolveUserAvatarDisplay, dI as resolveVideoThumbnailUrl, dJ as revokeObjectUrl, dK as revokePickerBlobPreviews, dL as sanitizeInput, dM as shouldUseUserAvatarForConversation, dN as sortUsersForForward, dO as syncPlaybackInfoBarBanner, dP as toMediaItemUploaderReference, dQ as toUploaderReference, dR as uploadPickerFile, dS as usesDefaultMessageListWallpaper, dT as validateConversationId, dU as validateEmail, dV as validateLatitude, dW as validateLongitude, dX as validateMessagePayload, dY as validateMessageText, dZ as validateMessageType, d_ as validateUrl, d$ as validateUserId, e0 as validateUserIds, e1 as videoItemFromUpload } from './acorex-components-conversation-acorex-components-conversation-BEDMf4vn.mjs';
1
+ export { A as AXConversationApi, a as AXConversationApiLoggerService, b as AXConversationAudioAttachmentComponent, c as AXConversationAudioFileTypeProvider, d as AXConversationAudioPickerComponent, e as AXConversationAudioRendererComponent, f as AXConversationAvatarComponent, g as AXConversationAvatarPickerComponent, h as AXConversationBaseRegistry, j as AXConversationComposerActionRegistry, k as AXConversationComposerComponent, l as AXConversationComposerFileTypesProvider, m as AXConversationComposerGenerationStateService, n as AXConversationComposerPopupComponent, o as AXConversationComposerService, p as AXConversationComposerTabRegistry, q as AXConversationContainerComponent, r as AXConversationContainerDirective, s as AXConversationDateUtilsService, t as AXConversationDeleteDialogComponent, u as AXConversationEmojiTabComponent, v as AXConversationErrorHandlerService, w as AXConversationFallbackRendererComponent, x as AXConversationFileAttachmentComponent, y as AXConversationFileFileTypeProvider, z as AXConversationFilePickerComponent, B as AXConversationFileRendererComponent, C as AXConversationForwardMessageDialogComponent, D as AXConversationImageAttachmentComponent, E as AXConversationImageFileTypeProvider, F as AXConversationImagePickerComponent, G as AXConversationImageRendererComponent, H as AXConversationInfiniteScrollDirective, I as AXConversationInfoBarActionRegistry, J as AXConversationInfoBarComponent, K as AXConversationInfoBarSearchComponent, L as AXConversationInfoBarService, M as AXConversationItemActionRegistry, N as AXConversationLocationPickerComponent, O as AXConversationLocationRendererComponent, P as AXConversationMediaPlaybackInfoBarBannerComponent, Q as AXConversationMessageActionRegistry, R as AXConversationMessageApi, S as AXConversationMessageListComponent, T as AXConversationMessageListNoActiveDefaultComponent, U as AXConversationMessageListService, V as AXConversationMessageRendererCopyHostComponent, W as AXConversationMessageRendererRegistry, X as AXConversationMessageRendererStateComponent, Y as AXConversationMessageUtilsService, Z as AXConversationModule, _ as AXConversationNewDialogComponent, $ as AXConversationPickerCaptionComponent, a0 as AXConversationPickerEmptyComponent, a1 as AXConversationPickerFooterComponent, a2 as AXConversationPickerHeaderComponent, a3 as AXConversationPickerOptionsComponent, a4 as AXConversationPickerShellComponent, a5 as AXConversationPickerToolbarComponent, a6 as AXConversationRealtimeApi, a7 as AXConversationRegistryComponentOutletComponent, a8 as AXConversationRegistryService, a9 as AXConversationService, aa as AXConversationSidebarComponent, ab as AXConversationSidebarService, ac as AXConversationStickerRendererComponent, ad as AXConversationStickerTabComponent, ae as AXConversationSystemRendererComponent, af as AXConversationTabRegistry, ag as AXConversationTextRendererComponent, ah as AXConversationUserApi, ai as AXConversationVideoAttachmentComponent, aj as AXConversationVideoFileTypeProvider, ak as AXConversationVideoPickerComponent, al as AXConversationVideoRendererComponent, am as AXConversationVoiceFileTypeProvider, an as AXConversationVoiceRecorderComponent, ao as AXConversationVoiceRendererComponent, ap as AX_CONVERSATION_AUDIO_CATALOG, aq as AX_CONVERSATION_AUDIO_PRESENTATION, ar as AX_CONVERSATION_AUDIO_RENDERER, as as AX_CONVERSATION_BUILTIN_COMPOSER_TABS, at as AX_CONVERSATION_COMPOSER_AUDIO_ACTION, au as AX_CONVERSATION_COMPOSER_EMOJI_ACTION, av as AX_CONVERSATION_COMPOSER_EMOJI_TAB, aw as AX_CONVERSATION_COMPOSER_FILE_ACTION, ax as AX_CONVERSATION_COMPOSER_IMAGE_ACTION, ay as AX_CONVERSATION_COMPOSER_LOCATION_ACTION, az as AX_CONVERSATION_COMPOSER_STICKER_TAB, aA as AX_CONVERSATION_COMPOSER_VIDEO_ACTION, aB as AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, aC as AX_CONVERSATION_CONFIG, aD as AX_CONVERSATION_CONNECTION_ERRORS, aE as AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, aF as AX_CONVERSATION_DEFAULT_COMPOSER_ACTIONS, aG as AX_CONVERSATION_DEFAULT_COMPOSER_TABS, aH as AX_CONVERSATION_DEFAULT_CONVERSATION_ITEM_ACTIONS, aI as AX_CONVERSATION_DEFAULT_CONVERSATION_TABS, aJ as AX_CONVERSATION_DEFAULT_GROUP_ICON, aK as AX_CONVERSATION_DEFAULT_INFO_BAR_ACTIONS, aL as AX_CONVERSATION_DEFAULT_MESSAGE_ACTIONS, aM as AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND, aN as AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND_PRESET_ID, aO as AX_CONVERSATION_DEFAULT_MESSAGE_LIST_THEME_BACKGROUND, aP as AX_CONVERSATION_DEFAULT_MESSAGE_RENDERERS, aQ as AX_CONVERSATION_DEFAULT_ROOM_PREFERENCES, aR as AX_CONVERSATION_DEFAULT_USER_ICON, aS as AX_CONVERSATION_ERRORS, aT as AX_CONVERSATION_ERROR_HANDLER_CONFIG, aU as AX_CONVERSATION_ERROR_MESSAGES, aV as AX_CONVERSATION_FALLBACK_RENDERER, aW as AX_CONVERSATION_FILE_CATALOG, aX as AX_CONVERSATION_FILE_ERRORS, aY as AX_CONVERSATION_FILE_PRESENTATION, aZ as AX_CONVERSATION_FILE_RENDERER, a_ as AX_CONVERSATION_FILE_TYPES_READY, a$ as AX_CONVERSATION_IMAGE_CATALOG, b0 as AX_CONVERSATION_IMAGE_PRESENTATION, b1 as AX_CONVERSATION_IMAGE_RENDERER, b2 as AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, b3 as AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, b4 as AX_CONVERSATION_INFO_BAR_DELETE_ACTION, b5 as AX_CONVERSATION_INFO_BAR_DIVIDER, b6 as AX_CONVERSATION_INFO_BAR_MUTE_ACTION, b7 as AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, b8 as AX_CONVERSATION_ITEM_BLOCK_ACTION, b9 as AX_CONVERSATION_ITEM_DELETE_ACTION, ba as AX_CONVERSATION_ITEM_DIVIDER, bb as AX_CONVERSATION_ITEM_MARK_READ_ACTION, bc as AX_CONVERSATION_ITEM_MUTE_ACTION, bd as AX_CONVERSATION_ITEM_PIN_ACTION, be as AX_CONVERSATION_JUMBO_EMOJI_MAX, bf as AX_CONVERSATION_LOCATION_ERRORS, bg as AX_CONVERSATION_LOCATION_RENDERER, bh as AX_CONVERSATION_MESSAGE_DELETE_ACTION, bi as AX_CONVERSATION_MESSAGE_EDIT_ACTION, bj as AX_CONVERSATION_MESSAGE_ERRORS, bk as AX_CONVERSATION_MESSAGE_FORWARD_ACTION, bl as AX_CONVERSATION_MESSAGE_LIST_BACKGROUND_PRESETS, bm as AX_CONVERSATION_MESSAGE_REPLY_ACTION, bn as AX_CONVERSATION_MESSAGE_TYPE_FILE_TYPE, bo as AX_CONVERSATION_PEER_AVATAR_TYPES, bp as AX_CONVERSATION_REGISTRY_CONFIG, bq as AX_CONVERSATION_STICKER_API_KEY, br as AX_CONVERSATION_STICKER_RENDERER, bs as AX_CONVERSATION_SYSTEM_RENDERER, bt as AX_CONVERSATION_TAB_ALL, bu as AX_CONVERSATION_TAB_ARCHIVED, bv as AX_CONVERSATION_TAB_BOT, bw as AX_CONVERSATION_TAB_CHANNELS, bx as AX_CONVERSATION_TAB_GROUPS, by as AX_CONVERSATION_TAB_PRIVATE, bz as AX_CONVERSATION_TAB_UNREAD, bA as AX_CONVERSATION_TEXT_RENDERER, bB as AX_CONVERSATION_URL_ERRORS, bC as AX_CONVERSATION_USER_AVATAR_COMPONENT, bD as AX_CONVERSATION_USER_ERRORS, bE as AX_CONVERSATION_VIDEO_CATALOG, bF as AX_CONVERSATION_VIDEO_PRESENTATION, bG as AX_CONVERSATION_VIDEO_RENDERER, bH as AX_CONVERSATION_VOICE_CATALOG, bI as AX_CONVERSATION_VOICE_PRESENTATION, bJ as AX_CONVERSATION_VOICE_RENDERER, bK as AX_DEFAULT_CONVERSATION_CONFIG, bL as abortPickerUploads, bM as applyAudioLocalPreview, bN as applyFileLocalPreview, bO as applyLocalPreview, bP as applyVideoLocalPreview, bQ as applyVoiceLocalPreview, bR as audioItemFromUpload, bS as bindMediaRendererContentState, bT as buildMediaGalleryTiles, bU as canShowRendererContentError, bV as cleanupPickerUploads, bW as conversationAudioUtilities, bX as conversationFileUtilities, bY as conversationImageUtilities, bZ as conversationVideoUtilities, b_ as conversationVoiceUtilities, b$ as copyWithFileTypeFallback, c0 as countLoneEmojis, c1 as createConversationAudioFileType, c2 as createConversationFileFileType, c3 as createConversationImageFileType, c4 as createConversationVideoFileType, c5 as createConversationVoiceFileType, c6 as createLocalPreviewUrl, c7 as createObjectUrl, c8 as createPickerDragHandlers, c9 as createPickerUploadItemId, ca as createResolvedMediaUrlSignal, cb as deleteUploadedPickerMedia, cc as dismissComposerPickerHost, cd as ensureConversationFileCatalogRegistered, ce as fetchConversationMediaPage, cf as fileItemAsAudioMedia, cg as fileItemFromUpload, ch as filesFromClipboardEvent, ci as filterMessagesByMediaCategory, cj as filterSupplementalInfoPanelMessages, ck as findExistingPrivateConversation, cl as formatDuration, cm as formatErrorMessage, cn as formatFileByteSize, co as formatFileSize, cp as formatMediaDuration, cq as formatPickerValidationMessage, cr as getActiveComposerPickerPasteHandler, cs as getConversationMediaCategories, ct as getConversationProfileFields, cu as getErrorMessage, cv as getMessageAudioItems, cw as getMessageVideoItems, cx as getPickerCancelUploadLabel, cy as getPrivatePeerParticipant, cz as hasRegistryComponent, cA as inferFileExtensionHintFromMessage, cB as isAttachmentListCategory, cC as isComposerAttachmentBannerEnabled, cD as isComposerTabEnabled, cE as isConversationReactionsEnabled, cF as isConversationRoomCreator, cG as isGenericPrivateConversationTitle, cH as isGridMediaCategory, cI as isGroupLikeConversation, cJ as isJumboEmojiText, cK as isJumboEmojiTextMessage, cL as isMessageDeliveryPending, cM as isMessageListThemeBackground, cN as isMessageVisibleAfterHistoryCutoff, cO as isNonPersistableMediaUrl, cP as isPickerItemReadyToSend, cQ as isPlainChromeMessage, cR as isSameMessageListBackground, cS as isUploadAborted, cT as limitFilesToCapacity, cU as listTextGraphemes, cV as mediaCopyText, cW as mergeAudioUploadResult, cX as mergeFileUploadResult, cY as mergeInfoPanelMessages, cZ as mergeUploadResult, c_ as mergeVideoUploadResult, c$ as mergeVoiceUploadResult, d0 as mergeWithDefaults, d1 as messageContainsLink, d2 as normalizeAudioPayload, d3 as normalizeConversationInboundFile, d4 as normalizeFilePayload, d5 as normalizeImagePayload, d6 as normalizeMessageListBackgroundValue, d7 as normalizeVideoPayload, d8 as notifyMaxFilesCapacityExceeded, d9 as notifyPickerValidationErrors, da as openWithFileType, db as pickDisplayMediaUrl, dc as pickEarliestJoinedParticipant, dd as pickerItemToMediaReference, de as pickerItemToUploadResult, df as probeAudioDuration, dg as probeImageDimensions, dh as probeVideoMedia, di as provideConversation, dj as provideConversationComposerFileTypes, dk as provideConversationFileCatalog, dl as registerComposerPickerPasteHandler, dm as reportMediaLoadError, dn as resolveComposerAttachmentPresentation, dp as resolveComposerMaxFiles, dq as resolveConversationAvatarDisplay, dr as resolveConversationComposerTabs, ds as resolveConversationForViewer, dt as resolveConversationMessageFileType, du as resolveConversationPeerParticipant, dv as resolveConversationPeerUserId, dw as resolveConversationTitleForViewer, dx as resolveGalleryImageUrl, dy as resolveImageDisplayUrl, dz as resolveMessageChrome, dA as resolveMessageListBackgroundRaw, dB as resolveMessageListBackgroundStyle, dC as resolveParticipantProfile, dD as resolvePersistableMediaUrl, dE as resolvePersistedThumbnailUrl, dF as resolvePrivatePeerParticipant, dG as resolvePrivatePeerUserId, dH as resolveUserAvatarDisplay, dI as resolveVideoThumbnailUrl, dJ as revokeObjectUrl, dK as revokePickerBlobPreviews, dL as sanitizeInput, dM as shouldUseUserAvatarForConversation, dN as sortUsersForForward, dO as syncPlaybackInfoBarBanner, dP as toMediaItemUploaderReference, dQ as toUploaderReference, dR as uploadPickerFile, dS as usesDefaultMessageListWallpaper, dT as validateConversationId, dU as validateEmail, dV as validateLatitude, dW as validateLongitude, dX as validateMessagePayload, dY as validateMessageText, dZ as validateMessageType, d_ as validateUrl, d$ as validateUserId, e0 as validateUserIds, e1 as videoItemFromUpload } from './acorex-components-conversation-acorex-components-conversation-BZjCPB-7.mjs';
2
2
  //# sourceMappingURL=acorex-components-conversation.mjs.map
@@ -191,7 +191,14 @@ class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), MXLookCo
191
191
  this.commitValue(null, true);
192
192
  return;
193
193
  }
194
- this.commitValue(this.clampToRange(+e.unmasked), true);
194
+ this.commitValue(+e.unmasked, true);
195
+ }
196
+ handleOnBlurEvent(e) {
197
+ this.emitOnBlurEvent(e);
198
+ if (this.disabled || this.readonly) {
199
+ return;
200
+ }
201
+ void this.validate();
195
202
  }
196
203
  onWheel(event) {
197
204
  if (this.changeOnScroll()) {
@@ -225,7 +232,7 @@ class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), MXLookCo
225
232
  useExisting: forwardRef(() => AXNumberBoxComponent),
226
233
  multi: true,
227
234
  },
228
- ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-editor-container ax-default {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimalPlaces()\"\n [minValue]=\"minValue()\"\n [maxValue]=\"maxValue()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-general-button-control\">\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n@if (minValue() != null || maxValue() != null) {\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n}\n<div class=\"ax-error-container\"></div>\n", styles: ["@layer components{ax-number-box input::-webkit-outer-spin-button,ax-number-box input::-webkit-inner-spin-button{-webkit-appearance:none;margin:calc(var(--spacing, .25rem) * 0)}ax-number-box input[type=number]{-moz-appearance:textfield}ax-number-box .ax-general-button-control{display:flex;width:fit-content;flex-direction:column}ax-number-box .ax-general-button-control .ax-general-button-icon{height:calc(var(--spacing, .25rem) * 1)!important;padding:calc(var(--spacing, .25rem) * 1.5)!important;font-size:var(--text-xs, .75rem)!important;line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))!important}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AXInputMaskDirective, selector: "[axInputMask]", inputs: ["maskMode", "separator", "eager", "minValue", "maxValue", "decimal", "maskPattern", "customTokens"], outputs: ["onMaskChanged"], exportAs: ["axInputMask"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i2.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }], encapsulation: i0.ViewEncapsulation.None }); }
235
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-editor-container ax-default {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimalPlaces()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"handleOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-general-button-control\">\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n@if (minValue() != null || maxValue() != null) {\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n}\n<div class=\"ax-error-container\"></div>\n", styles: ["@layer components{ax-number-box input::-webkit-outer-spin-button,ax-number-box input::-webkit-inner-spin-button{-webkit-appearance:none;margin:calc(var(--spacing, .25rem) * 0)}ax-number-box input[type=number]{-moz-appearance:textfield}ax-number-box .ax-general-button-control{display:flex;width:fit-content;flex-direction:column}ax-number-box .ax-general-button-control .ax-general-button-icon{height:calc(var(--spacing, .25rem) * 1)!important;padding:calc(var(--spacing, .25rem) * 1.5)!important;font-size:var(--text-xs, .75rem)!important;line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))!important}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AXInputMaskDirective, selector: "[axInputMask]", inputs: ["maskMode", "separator", "eager", "minValue", "maxValue", "decimal", "maskPattern", "customTokens"], outputs: ["onMaskChanged"], exportAs: ["axInputMask"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i2.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }], encapsulation: i0.ViewEncapsulation.None }); }
229
236
  }
230
237
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
231
238
  type: Component,
@@ -250,7 +257,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
250
257
  useExisting: forwardRef(() => AXNumberBoxComponent),
251
258
  multi: true,
252
259
  },
253
- ], imports: [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule, AXFormModule], template: "<div\n class=\"ax-editor-container ax-default {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimalPlaces()\"\n [minValue]=\"minValue()\"\n [maxValue]=\"maxValue()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-general-button-control\">\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n@if (minValue() != null || maxValue() != null) {\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n}\n<div class=\"ax-error-container\"></div>\n", styles: ["@layer components{ax-number-box input::-webkit-outer-spin-button,ax-number-box input::-webkit-inner-spin-button{-webkit-appearance:none;margin:calc(var(--spacing, .25rem) * 0)}ax-number-box input[type=number]{-moz-appearance:textfield}ax-number-box .ax-general-button-control{display:flex;width:fit-content;flex-direction:column}ax-number-box .ax-general-button-control .ax-general-button-icon{height:calc(var(--spacing, .25rem) * 1)!important;padding:calc(var(--spacing, .25rem) * 1.5)!important;font-size:var(--text-xs, .75rem)!important;line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))!important}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
260
+ ], imports: [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule, AXFormModule], template: "<div\n class=\"ax-editor-container ax-default {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimalPlaces()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"handleOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-general-button-control\">\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n@if (minValue() != null || maxValue() != null) {\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n}\n<div class=\"ax-error-container\"></div>\n", styles: ["@layer components{ax-number-box input::-webkit-outer-spin-button,ax-number-box input::-webkit-inner-spin-button{-webkit-appearance:none;margin:calc(var(--spacing, .25rem) * 0)}ax-number-box input[type=number]{-moz-appearance:textfield}ax-number-box .ax-general-button-control{display:flex;width:fit-content;flex-direction:column}ax-number-box .ax-general-button-control .ax-general-button-icon{height:calc(var(--spacing, .25rem) * 1)!important;padding:calc(var(--spacing, .25rem) * 1.5)!important;font-size:var(--text-xs, .75rem)!important;line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))!important}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
254
261
  }], propDecorators: { minValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "minValue", required: false }] }], maxValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxValue", required: false }] }], showSpinButtons: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSpinButtons", required: false }] }], thousandsSeparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "thousandsSeparator", required: false }] }, { type: i0.Output, args: ["thousandsSeparatorChange"] }], decimals: [{ type: i0.Input, args: [{ isSignal: true, alias: "decimals", required: false }] }], changeOnScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "changeOnScroll", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], input: [{ type: i0.ViewChild, args: ['input', { isSignal: true }] }], __hostName: [{
255
262
  type: HostBinding,
256
263
  args: ['attr.name']
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-number-box.mjs","sources":["../../../../packages/components/number-box/src/lib/number-box.component.ts","../../../../packages/components/number-box/src/lib/number-box.component.html","../../../../packages/components/number-box/src/lib/number-box.module.ts","../../../../packages/components/number-box/src/acorex-components-number-box.ts"],"sourcesContent":["import { AXInputMaskDirective, type AXInputMaskEvent } from '@acorex/cdk/input-mask';\nimport {\n Component,\n ElementRef,\n HostBinding,\n ViewEncapsulation,\n afterNextRender,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport {\n AXClearableComponent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * The NumberBox is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-number-box',\n templateUrl: './number-box.component.html',\n styleUrls: ['./number-box.component.css'],\n inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id', 'look'],\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ],\n\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXNumberBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXNumberBoxComponent },\n { provide: AXClearableComponent, useExisting: AXNumberBoxComponent },\n { provide: AXValuableComponent, useExisting: AXNumberBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXNumberBoxComponent),\n multi: true,\n },\n ],\n imports: [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule, AXFormModule],\n})\nexport class AXNumberBoxComponent extends classes(MXInputBaseValueComponent<number>, MXLookComponent) {\n minValue = input<number>(null);\n maxValue = input<number>(null);\n showSpinButtons = input(true);\n thousandsSeparator = model<string>(null);\n decimals = input(0);\n changeOnScroll = input(false);\n step = input(1);\n protected mode = signal<'digits' | 'thousandsSeparator' | 'decimal'>('digits');\n protected decimalPlaces = computed(() => Math.max(this.decimals(), this.getFractionDigits(this.step())));\n private input = viewChild<ElementRef<HTMLInputElement>>('input');\n protected stringValue = signal('');\n private translationService = inject(AXTranslationService);\n\n protected validateFn = async (val: number) => {\n const min = this.minValue();\n if (min != null && val != null && val < min) {\n const message = await this.translationService.translateAsync('@acorex:validation.messages.min', {\n params: { value: min },\n });\n\n return {\n result: false,\n message,\n };\n }\n\n const max = this.maxValue();\n if (max != null && val != null && val > max) {\n const message = await this.translationService.translateAsync('@acorex:validation.messages.max', {\n params: { value: max },\n });\n\n return {\n result: false,\n message,\n };\n }\n\n return { result: true };\n };\n\n protected override internalValueChanged(value: number | undefined | null): void {\n if (value === undefined || value === null) {\n this.stringValue.set('');\n } else {\n this.stringValue.set(this.formatDisplayValue(value));\n }\n\n setTimeout(() => {\n const inputElement = this.input()?.nativeElement;\n if (inputElement) {\n inputElement.dispatchEvent(new Event('input', { bubbles: true }));\n }\n }, 0);\n }\n\n #init = afterNextRender(() => {\n this.onFocus.subscribe(() => {\n this.input().nativeElement.select();\n });\n });\n\n #eff = effect(() => {\n if (this.thousandsSeparator()) {\n this.mode.set('thousandsSeparator');\n } else if (this.decimalPlaces() > 0) {\n this.mode.set('decimal');\n } else {\n this.mode.set('digits');\n }\n });\n\n private plusValue() {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const currentValue = this.getNumericValue();\n const nextValue = this.clampToRange(this.getSteppedValue(currentValue, 1));\n this.commitValue(nextValue, true);\n }\n\n private minusValue() {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const currentValue = this.getNumericValue();\n const nextValue = this.clampToRange(this.getSteppedValue(currentValue, -1));\n this.commitValue(nextValue, true);\n }\n\n private getNumericValue(): number {\n if (this.mode() === 'thousandsSeparator') {\n return +(this.stringValue().split(this.thousandsSeparator()).join('') || '0');\n }\n\n return +(this.stringValue() || '0');\n }\n\n private getSteppedValue(currentValue: number, direction: 1 | -1): number {\n const step = this.step();\n const precision = Math.max(this.decimalPlaces(), this.getFractionDigits(currentValue));\n const scale = 10 ** precision;\n const currentUnits = Math.round(currentValue * scale);\n const stepUnits = Math.round(step * scale) * direction;\n\n return (currentUnits + stepUnits) / scale;\n }\n\n private formatDisplayValue(value: number): string {\n if (this.mode() === 'thousandsSeparator') {\n const formatted = value.toLocaleString(undefined, {\n minimumFractionDigits: 0,\n maximumFractionDigits: this.decimalPlaces(),\n });\n return formatted.split(',').join(this.thousandsSeparator());\n }\n\n if (this.decimalPlaces() > 0) {\n return value.toFixed(this.decimalPlaces());\n }\n\n return value.toString();\n }\n\n private clampToRange(value: number): number {\n const min = this.minValue();\n const max = this.maxValue();\n\n if (min != null && value < min) {\n return min;\n }\n\n if (max != null && value > max) {\n return max;\n }\n\n return value;\n }\n\n private getFractionDigits(value: number): number {\n if (!Number.isFinite(value)) {\n return 0;\n }\n\n const normalizedValue = value.toString().toLowerCase();\n if (!normalizedValue.includes('e-')) {\n return normalizedValue.split('.')[1]?.length ?? 0;\n }\n\n const [, exponent] = normalizedValue.split('e-');\n return Number(exponent);\n }\n\n protected handleOnKeydownEvent(e: KeyboardEvent) {\n if (e.key !== 'ArrowUp' && e.key !== 'ArrowDown') return;\n if (this.disabled || this.readonly) return;\n if (e.key === 'ArrowUp') {\n this.plusValue();\n } else if (e.key === 'ArrowDown') {\n this.minusValue();\n }\n }\n\n protected handleUpClick() {\n if (this.disabled || this.readonly) return;\n this.plusValue();\n }\n protected handleDownClick() {\n if (this.disabled || this.readonly) return;\n this.minusValue();\n }\n\n protected handleOnMaskChanged(e: AXInputMaskEvent) {\n if (!e.unmasked || e.unmasked === '-' || isNaN(+e.unmasked)) {\n this.commitValue(null, true);\n return;\n }\n\n this.commitValue(this.clampToRange(+e.unmasked), true);\n }\n\n protected onWheel(event: WheelEvent) {\n if (this.changeOnScroll()) {\n event.preventDefault();\n if (!this.disabled && !this.readonly) {\n if (event.deltaY > 0) {\n this.minusValue();\n } else {\n this.plusValue();\n }\n }\n }\n }\n\n override reset(): void {\n this.stringValue.set('0');\n this.commitValue(0);\n super.reset(true);\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<div\n class=\"ax-editor-container ax-default {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimalPlaces()\"\n [minValue]=\"minValue()\"\n [maxValue]=\"maxValue()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-general-button-control\">\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n@if (minValue() != null || maxValue() != null) {\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n}\n<div class=\"ax-error-container\"></div>\n","import { AXInputMaskDirective } from '@acorex/cdk/input-mask';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXNumberBoxComponent } from './number-box.component';\n\nconst COMPONENT = [AXNumberBoxComponent];\nconst MODULES = [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXNumberBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-number-box.mjs","sources":["../../../../packages/components/number-box/src/lib/number-box.component.ts","../../../../packages/components/number-box/src/lib/number-box.component.html","../../../../packages/components/number-box/src/lib/number-box.module.ts","../../../../packages/components/number-box/src/acorex-components-number-box.ts"],"sourcesContent":["import { AXInputMaskDirective, type AXInputMaskEvent } from '@acorex/cdk/input-mask';\nimport {\n Component,\n ElementRef,\n HostBinding,\n ViewEncapsulation,\n afterNextRender,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport {\n AXClearableComponent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * The NumberBox is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-number-box',\n templateUrl: './number-box.component.html',\n styleUrls: ['./number-box.component.css'],\n inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id', 'look'],\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ],\n\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXNumberBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXNumberBoxComponent },\n { provide: AXClearableComponent, useExisting: AXNumberBoxComponent },\n { provide: AXValuableComponent, useExisting: AXNumberBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXNumberBoxComponent),\n multi: true,\n },\n ],\n imports: [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule, AXFormModule],\n})\nexport class AXNumberBoxComponent extends classes(MXInputBaseValueComponent<number>, MXLookComponent) {\n minValue = input<number>(null);\n maxValue = input<number>(null);\n showSpinButtons = input(true);\n thousandsSeparator = model<string>(null);\n decimals = input(0);\n changeOnScroll = input(false);\n step = input(1);\n protected mode = signal<'digits' | 'thousandsSeparator' | 'decimal'>('digits');\n protected decimalPlaces = computed(() => Math.max(this.decimals(), this.getFractionDigits(this.step())));\n private input = viewChild<ElementRef<HTMLInputElement>>('input');\n protected stringValue = signal('');\n private translationService = inject(AXTranslationService);\n\n protected validateFn = async (val: number) => {\n const min = this.minValue();\n if (min != null && val != null && val < min) {\n const message = await this.translationService.translateAsync('@acorex:validation.messages.min', {\n params: { value: min },\n });\n\n return {\n result: false,\n message,\n };\n }\n\n const max = this.maxValue();\n if (max != null && val != null && val > max) {\n const message = await this.translationService.translateAsync('@acorex:validation.messages.max', {\n params: { value: max },\n });\n\n return {\n result: false,\n message,\n };\n }\n\n return { result: true };\n };\n\n protected override internalValueChanged(value: number | undefined | null): void {\n if (value === undefined || value === null) {\n this.stringValue.set('');\n } else {\n this.stringValue.set(this.formatDisplayValue(value));\n }\n\n setTimeout(() => {\n const inputElement = this.input()?.nativeElement;\n if (inputElement) {\n inputElement.dispatchEvent(new Event('input', { bubbles: true }));\n }\n }, 0);\n }\n\n #init = afterNextRender(() => {\n this.onFocus.subscribe(() => {\n this.input().nativeElement.select();\n });\n });\n\n #eff = effect(() => {\n if (this.thousandsSeparator()) {\n this.mode.set('thousandsSeparator');\n } else if (this.decimalPlaces() > 0) {\n this.mode.set('decimal');\n } else {\n this.mode.set('digits');\n }\n });\n\n private plusValue() {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const currentValue = this.getNumericValue();\n const nextValue = this.clampToRange(this.getSteppedValue(currentValue, 1));\n this.commitValue(nextValue, true);\n }\n\n private minusValue() {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const currentValue = this.getNumericValue();\n const nextValue = this.clampToRange(this.getSteppedValue(currentValue, -1));\n this.commitValue(nextValue, true);\n }\n\n private getNumericValue(): number {\n if (this.mode() === 'thousandsSeparator') {\n return +(this.stringValue().split(this.thousandsSeparator()).join('') || '0');\n }\n\n return +(this.stringValue() || '0');\n }\n\n private getSteppedValue(currentValue: number, direction: 1 | -1): number {\n const step = this.step();\n const precision = Math.max(this.decimalPlaces(), this.getFractionDigits(currentValue));\n const scale = 10 ** precision;\n const currentUnits = Math.round(currentValue * scale);\n const stepUnits = Math.round(step * scale) * direction;\n\n return (currentUnits + stepUnits) / scale;\n }\n\n private formatDisplayValue(value: number): string {\n if (this.mode() === 'thousandsSeparator') {\n const formatted = value.toLocaleString(undefined, {\n minimumFractionDigits: 0,\n maximumFractionDigits: this.decimalPlaces(),\n });\n return formatted.split(',').join(this.thousandsSeparator());\n }\n\n if (this.decimalPlaces() > 0) {\n return value.toFixed(this.decimalPlaces());\n }\n\n return value.toString();\n }\n\n private clampToRange(value: number): number {\n const min = this.minValue();\n const max = this.maxValue();\n\n if (min != null && value < min) {\n return min;\n }\n\n if (max != null && value > max) {\n return max;\n }\n\n return value;\n }\n\n private getFractionDigits(value: number): number {\n if (!Number.isFinite(value)) {\n return 0;\n }\n\n const normalizedValue = value.toString().toLowerCase();\n if (!normalizedValue.includes('e-')) {\n return normalizedValue.split('.')[1]?.length ?? 0;\n }\n\n const [, exponent] = normalizedValue.split('e-');\n return Number(exponent);\n }\n\n protected handleOnKeydownEvent(e: KeyboardEvent) {\n if (e.key !== 'ArrowUp' && e.key !== 'ArrowDown') return;\n if (this.disabled || this.readonly) return;\n if (e.key === 'ArrowUp') {\n this.plusValue();\n } else if (e.key === 'ArrowDown') {\n this.minusValue();\n }\n }\n\n protected handleUpClick() {\n if (this.disabled || this.readonly) return;\n this.plusValue();\n }\n protected handleDownClick() {\n if (this.disabled || this.readonly) return;\n this.minusValue();\n }\n\n protected handleOnMaskChanged(e: AXInputMaskEvent) {\n if (!e.unmasked || e.unmasked === '-' || isNaN(+e.unmasked)) {\n this.commitValue(null, true);\n return;\n }\n\n this.commitValue(+e.unmasked, true);\n }\n\n protected handleOnBlurEvent(e: FocusEvent) {\n this.emitOnBlurEvent(e);\n if (this.disabled || this.readonly) {\n return;\n }\n void this.validate();\n }\n\n protected onWheel(event: WheelEvent) {\n if (this.changeOnScroll()) {\n event.preventDefault();\n if (!this.disabled && !this.readonly) {\n if (event.deltaY > 0) {\n this.minusValue();\n } else {\n this.plusValue();\n }\n }\n }\n }\n\n override reset(): void {\n this.stringValue.set('0');\n this.commitValue(0);\n super.reset(true);\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<div\n class=\"ax-editor-container ax-default {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n [name]=\"name\"\n axInputMask\n (onMaskChanged)=\"handleOnMaskChanged($event)\"\n [maskMode]=\"mode()\"\n inputmode=\"numeric\"\n class=\"ax-input\"\n [separator]=\"thousandsSeparator()\"\n [decimal]=\"decimalPlaces()\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [(ngModel)]=\"stringValue\"\n (keydown)=\"handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"handleOnBlurEvent($event)\"\n (wheel)=\"onWheel($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showSpinButtons()) {\n <div class=\"ax-general-button-control\">\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleUpClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-up ax-arrow-button\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"handleDownClick()\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-chevron-down ax-arrow-button\"></span>\n </button>\n </div>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n@if (minValue() != null || maxValue() != null) {\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n}\n<div class=\"ax-error-container\"></div>\n","import { AXInputMaskDirective } from '@acorex/cdk/input-mask';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXNumberBoxComponent } from './number-box.component';\n\nconst COMPONENT = [AXNumberBoxComponent];\nconst MODULES = [FormsModule, AXInputMaskDirective, AXButtonModule, AXDecoratorModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXNumberBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}