@acorex/components 18.2.1 → 18.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. package/color-palette/lib/color-palette.module.d.ts +2 -2
  2. package/common/lib/components/selection-base.component.class.d.ts +1 -0
  3. package/conversation/index.d.ts +4 -0
  4. package/conversation/lib/conversation-container/conversation-container.component.d.ts +5 -0
  5. package/conversation/lib/conversation-input/conversation-input.component.d.ts +7 -1
  6. package/conversation/lib/conversation-message/conversation-message.component.d.ts +5 -2
  7. package/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.d.ts +28 -0
  8. package/conversation/lib/conversation-messages/conversation-message-file/conversation-message-file.component.d.ts +1 -0
  9. package/conversation/lib/conversation-messages/conversation-message-image/conversation-message-image.component.d.ts +9 -0
  10. package/conversation/lib/conversation-messages/conversation-message-video/conversation-message-video.component.d.ts +9 -0
  11. package/conversation/lib/conversation-view/conversation-view.component.d.ts +5 -4
  12. package/conversation/lib/conversation.module.d.ts +18 -17
  13. package/conversation/lib/conversation.types.d.ts +2 -1
  14. package/conversation/lib/services/conversation.service.d.ts +54 -0
  15. package/esm2022/audio-wave/lib/audio-wave.component.mjs +2 -2
  16. package/esm2022/badge/lib/badge.component.mjs +2 -2
  17. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +4 -4
  18. package/esm2022/color-palette/lib/color-palette.component.mjs +2 -2
  19. package/esm2022/color-palette/lib/color-palette.module.mjs +4 -4
  20. package/esm2022/common/lib/components/selection-base.component.class.mjs +14 -2
  21. package/esm2022/conversation/index.mjs +5 -1
  22. package/esm2022/conversation/lib/conversation-container/conversation-container.component.mjs +11 -0
  23. package/esm2022/conversation/lib/conversation-input/conversation-input.component.mjs +18 -5
  24. package/esm2022/conversation/lib/conversation-message/conversation-message.component.mjs +19 -16
  25. package/esm2022/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.mjs +113 -0
  26. package/esm2022/conversation/lib/conversation-messages/conversation-message-file/conversation-message-file.component.mjs +5 -3
  27. package/esm2022/conversation/lib/conversation-messages/conversation-message-image/conversation-message-image.component.mjs +21 -0
  28. package/esm2022/conversation/lib/conversation-messages/conversation-message-video/conversation-message-video.component.mjs +21 -0
  29. package/esm2022/conversation/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.mjs +3 -3
  30. package/esm2022/conversation/lib/conversation-view/conversation-view.component.mjs +10 -11
  31. package/esm2022/conversation/lib/conversation.module.mjs +25 -5
  32. package/esm2022/conversation/lib/conversation.types.mjs +1 -1
  33. package/esm2022/conversation/lib/services/conversation.service.mjs +135 -2
  34. package/esm2022/select-box/lib/select-box.component.mjs +14 -2
  35. package/esm2022/slider/acorex-components-slider.mjs +5 -0
  36. package/esm2022/slider/index.mjs +3 -0
  37. package/esm2022/slider/lib/slider.component.mjs +117 -0
  38. package/esm2022/slider/lib/slider.module.mjs +23 -0
  39. package/fesm2022/acorex-components-audio-wave.mjs +1 -1
  40. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  41. package/fesm2022/acorex-components-badge.mjs +2 -2
  42. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  43. package/fesm2022/acorex-components-color-palette.mjs +8 -8
  44. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  45. package/fesm2022/acorex-components-common.mjs +13 -1
  46. package/fesm2022/acorex-components-common.mjs.map +1 -1
  47. package/fesm2022/acorex-components-conversation.mjs +352 -47
  48. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  49. package/fesm2022/acorex-components-select-box.mjs +13 -1
  50. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  51. package/fesm2022/acorex-components-slider.mjs +142 -0
  52. package/fesm2022/acorex-components-slider.mjs.map +1 -0
  53. package/package.json +7 -7
  54. package/slider/README.md +3 -0
  55. package/slider/index.d.ts +2 -0
  56. package/{range-slider/lib/range-slider.component.d.ts → slider/lib/slider.component.d.ts} +4 -4
  57. package/slider/lib/slider.module.d.ts +10 -0
  58. package/esm2022/range-slider/acorex-components-range-slider.mjs +0 -5
  59. package/esm2022/range-slider/index.mjs +0 -3
  60. package/esm2022/range-slider/lib/range-slider.component.mjs +0 -117
  61. package/esm2022/range-slider/lib/range-slider.module.mjs +0 -23
  62. package/fesm2022/acorex-components-range-slider.mjs +0 -142
  63. package/fesm2022/acorex-components-range-slider.mjs.map +0 -1
  64. package/range-slider/README.md +0 -3
  65. package/range-slider/index.d.ts +0 -2
  66. package/range-slider/lib/range-slider.module.d.ts +0 -10
@@ -84,7 +84,19 @@ class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MXSelecti
84
84
  this.searchBox?.onKeyDown.unsubscribe();
85
85
  }
86
86
  getItemByKey(key) {
87
- return this._listDataSource.find(key);
87
+ const startTime = Date.now();
88
+ const check = async () => {
89
+ while (Date.now() - startTime < 2000) {
90
+ if (typeof this._listDataSource.find === 'function') {
91
+ return this._listDataSource.find(key);
92
+ }
93
+ else {
94
+ await new Promise((resolve) => setTimeout(resolve, 50));
95
+ }
96
+ }
97
+ console.log('Timeout reached without finding the "getItemByKey" method');
98
+ };
99
+ return check();
88
100
  }
89
101
  _handleOnOpenedEvent(e) {
90
102
  this.renderList = true;
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-select-box.mjs","sources":["../../../../libs/components/select-box/src/lib/select-box.component.ts","../../../../libs/components/select-box/src/lib/select-box.component.html","../../../../libs/components/select-box/src/lib/select-box.module.ts","../../../../libs/components/select-box/src/acorex-components-select-box.ts"],"sourcesContent":["import {\n AXClearableComponent,\n AXClosbaleComponent,\n AXComponent,\n AXDataSource,\n AXEvent,\n AXFocusableComponent,\n AXHotkeysService,\n AXItemClickEvent,\n AXSearchableComponent,\n AXValuableComponent,\n AXValueChangedEvent,\n AX_SELECTION_DATA_TOKEN,\n MXLookComponent,\n MXSelectionBridgeService,\n MXSelectionValueComponent,\n convertArrayToDataSource,\n} from '@acorex/components/common';\nimport { AXDropdownBoxComponent, MXDropdownBoxBaseComponent } from '@acorex/components/dropdown';\nimport { AXListComponent } from '@acorex/components/list';\nimport { AXSearchBoxComponent } from '@acorex/components/search-box';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n WritableSignal,\n forwardRef,\n inject,\n signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { findLastIndex, last, nth } from 'lodash-es';\nimport { classes } from 'polytype';\nimport { Observable } from 'rxjs';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-select-box',\n templateUrl: './select-box.component.html',\n styleUrls: ['./select-box.component.scss'],\n inputs: [\n 'disabled',\n 'readonly',\n 'tabIndex',\n 'placeholder',\n 'minValue',\n 'maxValue',\n 'value',\n 'state',\n 'name',\n 'id',\n 'type',\n 'look',\n 'multiple',\n 'valueField',\n 'textField',\n ],\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'readonlyChange',\n 'disabledChange',\n 'onOpened',\n 'onClosed',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXSelectBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXSelectBoxComponent },\n { provide: AXValuableComponent, useExisting: AXSelectBoxComponent },\n { provide: AXClearableComponent, useExisting: AXSelectBoxComponent },\n { provide: AXClosbaleComponent, useExisting: AXSelectBoxComponent },\n { provide: AXSearchableComponent, useExisting: AXSelectBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXSelectBoxComponent),\n multi: true,\n },\n {\n provide: AX_SELECTION_DATA_TOKEN,\n useClass: MXSelectionBridgeService,\n },\n AXUnsubscriber,\n ],\n host: { ngSkipHydration: 'true' },\n})\nexport class AXSelectBoxComponent\n extends classes(MXDropdownBoxBaseComponent, MXSelectionValueComponent, MXLookComponent)\n implements AfterViewInit, OnDestroy\n{\n private hotKeyService: AXHotkeysService = inject(AXHotkeysService);\n protected isLoading: WritableSignal<boolean> = signal(false);\n protected renderList = false;\n\n protected dropdownSizes: { width: string; height: string } = {\n width: '100%',\n height: 'auto',\n };\n\n protected _listDataSource: AXDataSource<any> = convertArrayToDataSource([], {\n key: this.valueField,\n pageSize: 10,\n });\n\n private _dataSource: AXDataSource<any> | any[];\n public get dataSource(): AXDataSource<any> | any[] {\n return this._dataSource;\n }\n @Input()\n public set dataSource(v: AXDataSource<any> | any[]) {\n this._dataSource = v;\n if (Array.isArray(v)) {\n this._listDataSource = convertArrayToDataSource(v, {\n key: this.valueField,\n pageSize: 10,\n });\n } else {\n this._listDataSource = this.dataSource as AXDataSource<any>;\n }\n //\n //\n this._listDataSource.onChanged.pipe(this._unsubscriber.takeUntilDestroy).subscribe((data) => {\n this.setDropdownSize(data.totalCount);\n });\n this._listDataSource.onLoadingChanged.pipe(this._unsubscriber.takeUntilDestroy).subscribe((loading) => {\n this.isLoading.set(loading);\n });\n }\n\n @Input()\n placeholder: string;\n\n @Input()\n caption: string;\n\n @Input()\n itemTemplate: TemplateRef<any>;\n\n @Input()\n selectedTemplate: TemplateRef<any>;\n\n @Input()\n emptyTemplate: TemplateRef<any>;\n\n @Input()\n loadingTemplate: TemplateRef<any>;\n\n @Input()\n dropdownWidth = 260;\n\n @ViewChild('panel') panel!: ElementRef<HTMLDivElement>;\n\n @ViewChild(AXListComponent)\n list: AXListComponent;\n\n @ContentChild(AXSearchBoxComponent, { static: true })\n searchBox: AXSearchBoxComponent;\n\n @ViewChild(AXDropdownBoxComponent, { static: true })\n protected dropdown: AXDropdownBoxComponent;\n\n protected autoHeight = false;\n\n public selectionService = inject(AX_SELECTION_DATA_TOKEN);\n\n searchEvent: Observable<any>;\n\n private _unsubscriber = inject(AXUnsubscriber);\n\n protected override ngOnInit(): void {\n super.ngOnInit();\n //\n this.registerValidation();\n }\n\n ngAfterViewInit() {\n this.setDropdownSize();\n }\n\n override ngOnDestroy(): void {\n this.searchBox?.onKeyDown.unsubscribe();\n }\n\n getItemByKey(key: any): Promise<any> | any {\n return this._listDataSource.find(key);\n }\n\n protected _handleOnOpenedEvent(e: AXEvent) {\n this.renderList = true;\n this.list?.render();\n this._handleFocus();\n //\n this.onOpened.emit({\n component: this,\n isUserInteraction: e.isUserInteraction,\n });\n }\n\n protected _handleOnClosedEvent(e: AXEvent) {\n //this.input.focus();\n this.onClosed.emit({\n component: this,\n isUserInteraction: e.isUserInteraction,\n });\n this._unsubscriber.unsubscribe();\n }\n\n protected _handleFocus() {\n setTimeout(() => {\n if (this.searchBox) {\n this.searchBox.focus();\n //TODO: unsubscribe\n this.hotKeyService\n .addShortcut({ keys: 'Control.f', element: this.panel.nativeElement })\n .pipe(this._unsubscriber.takeUntilDestroy)\n .subscribe(() => {\n this.searchBox.focus();\n });\n this.searchBox.onKeyDown.pipe(this._unsubscriber.takeUntilDestroy).subscribe((e) => {\n if (e.nativeEvent.code === 'ArrowDown' || e.nativeEvent.key === 'ArrowDown') {\n this.list?.focus();\n e.nativeEvent.preventDefault();\n }\n });\n } else {\n this.list?.focus();\n }\n });\n }\n\n protected _handleBadgeRemove(e: MouseEvent, item) {\n this.unselectItems(item);\n e.stopPropagation();\n }\n\n protected _handleValueChanged(e: AXValueChangedEvent) {\n if (e.isUserInteraction) {\n this.commitValue(e.component.selectedItems, true);\n }\n }\n\n protected _handleOnItemClick(e: AXItemClickEvent) {\n if (!this.multiple) {\n this.close();\n }\n }\n\n override internalValueChanged(): void {\n if (!this.multiple) this.close();\n setTimeout(() => {\n this.detectAutoHeight();\n }, 100);\n }\n\n private detectAutoHeight() {\n const containerWidth: number = this.getHostElement().querySelector<HTMLDivElement>('.ax-select-box-selection').clientWidth;\n const itemsWidth: number = Array.from(this.getHostElement().querySelectorAll<HTMLDivElement>('.ax-selected-token')).reduce(\n (a, i) => a + i.clientWidth,\n 0,\n );\n this.autoHeight = containerWidth - itemsWidth <= 8;\n this.dropdown.updatePosition();\n this.cdr.markForCheck();\n }\n\n private setDropdownSize(count = 0) {\n if (this.dropdown.isActionsheetStyle) {\n this.dropdownSizes = {\n width: '100%',\n height: ['auto', '0px'].includes(this.dropdownSizes.height) ? `${Math.min(15, count) * 40}px` : this.dropdownSizes.height,\n };\n } else {\n //TODO: calc min-with from formula or config\n const hostWidth = Math.max(this.getHostElement().offsetWidth, this.dropdownWidth);\n this.dropdownSizes = {\n width: `${hostWidth}px`,\n height: count == 0 ? 'auto' : `${Math.min(5, count) * 40}px`,\n };\n }\n setTimeout(() => {\n this.dropdown.updatePosition();\n });\n }\n\n @HostListener('keydown', ['$event'])\n _handleKeydown(e: KeyboardEvent) {\n if (e.code === 'ArrowDown' || e.code === 'ArrowUp') {\n this.selectItemByNav(e.code === 'ArrowDown' ? 1 : -1);\n e.preventDefault();\n } else if (e.code === 'Backspace') {\n this.unselectItems(this.selectedItems.pop());\n e.preventDefault();\n }\n // if ((e.code === 'Space' || e.code === 'Enter') && this.hasItems) {\n // if (this.readonly || this.disabled) {\n // e.preventDefault();\n // e.stopPropagation();\n // return;\n // }\n // const id = document.activeElement?.closest('li')?.dataset?.id;\n // this.toggleSelect(id);\n // e.preventDefault();\n // e.stopPropagation()\n // }\n }\n\n private selectItemByNav(sign: 1 | -1) {\n if (Array.isArray(this.dataSource) && !this.multiple) {\n const items = this.normalizeItemsList(this.dataSource);\n const _last: any = last(this.selectedItems);\n let i = -1;\n if (_last) {\n i = findLastIndex(items, [this.valueField, _last[this.valueField]]);\n }\n i += sign;\n if (i < 0 || i >= items.length) return;\n const next = nth<any>(items, i);\n if (next) {\n this.selectItems(next);\n }\n } else {\n this.open();\n }\n }\n\n search(term: string) {\n if (term) {\n this._listDataSource.filter({\n field: this.textField,\n value: term,\n operator: { type: 'contains' },\n });\n } else {\n this._listDataSource.clearFilter();\n }\n this._listDataSource.refresh();\n }\n\n refresh() {\n this.reset(false);\n this.clearSelectionCache();\n this.list?.refresh();\n this.close();\n }\n}\n","<ax-dropdown-box [disabled]=\"disabled\" (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\" [look]=\"look\" [class.ax-auto-height]=\"autoHeight\"\n (focus)=\"emitOnFocusEvent($event)\" (blur)=\"emitOnBlurEvent($event)\">\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div class=\"ax-select-box-selection ax-content\" [class.ax-multiple]=\"multiple\" [tabindex]=\"tabIndex\"\n (click)=\"toggle()\">\n @if (selectedItems.length === 0) {\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n }\n @for (item of selectedItems; track $index) {\n @if(selectedTemplate) {\n <ng-template *ngTemplateOutlet=\"selectedTemplate; context: { $implicit: { data:item } }\"></ng-template>\n }\n @else{\n <div class=\"ax-selected-token\">\n {{ getDisplayText(item) }}\n @if (!disabled && !readonly && multiple) {\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n }\n </div>\n }\n }\n </div>\n @if (selectedItems?.length && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-general-button ax-button-icon\"\n (click)=\"toggle()\">\n <!-- @if (isLoading() && !isOpen) {\n <ax-loading type=\"spinner\"></ax-loading>\n } @else { -->\n <span class=\"ax-icon ax-icon-chevron-left ax-arrow-button\" [ngClass]=\"{\n '-rotation-90': !isOpen,\n 'rotation-90': isOpen\n }\"></span>\n <!-- } -->\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-template #search>\n <ng-content select=\"ax-search-box\"> </ng-content>\n </ng-template>\n </ng-container>\n <ng-container panel>\n <div #panel class=\"ax-select-box-panel\" [style.min-width]=\"dropdownSizes.width\">\n @if (dropdown.isActionsheetStyle) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ caption || placeholder || 'selectbox.popover.title' | translate | async }}</ax-title>\n <ax-close-button\n [icon]=\"multiple ? 'ax-icon ax-icon-check !ax-text-primary-500' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n @if (searchBox) {\n <div class=\"ax-search-container\">\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\n </div>\n }\n @if (renderList) {\n <ax-list [dataSource]=\"_listDataSource\" [multiple]=\"multiple\" [style.height]=\"dropdownSizes.height\"\n [valueField]=\"valueField\" [textField]=\"textField\" [emptyTemplate]=\"emptyTemplate ?? empty\"\n [itemTemplate]=\"itemTemplate\" [loadingTemplate]=\"loadingTemplate\" [ngModel]=\"value\"\n (onValueChanged)=\"_handleValueChanged($event)\" [selectionMode]=\"'item'\"\n (onItemClick)=\"_handleOnItemClick($event)\">\n <ng-template #empty> {{ 'no-result-found' | translate | async}} </ng-template>\n </ax-list>\n }\n\n @if (isLoading()) {\n @if (loadingTemplate) {\n <ng-template *ngTemplateOutlet=\"loadingTemplate\"></ng-template>\n } @else {\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading></ax-loading>\n </div>\n }\n }\n\n <ng-content select=\"ax-footer\"> </ng-content>\n </div>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXListModule } from '@acorex/components/list';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXSelectBoxComponent } from './select-box.component';\n\n@NgModule({\n imports: [\n CommonModule,\n AXCommonModule,\n FormsModule,\n AXCheckBoxModule,\n AXBadgeModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXPopoverModule,\n AXLoadingModule,\n A11yModule,\n AXTextBoxModule,\n AXDropdownModule,\n AXListModule,\n ],\n exports: [AXSelectBoxComponent],\n declarations: [AXSelectBoxComponent],\n providers: [],\n})\nexport class AXSelectBoxModule {}\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-select-box.mjs","sources":["../../../../libs/components/select-box/src/lib/select-box.component.ts","../../../../libs/components/select-box/src/lib/select-box.component.html","../../../../libs/components/select-box/src/lib/select-box.module.ts","../../../../libs/components/select-box/src/acorex-components-select-box.ts"],"sourcesContent":["import {\n AXClearableComponent,\n AXClosbaleComponent,\n AXComponent,\n AXDataSource,\n AXEvent,\n AXFocusableComponent,\n AXHotkeysService,\n AXItemClickEvent,\n AXSearchableComponent,\n AXValuableComponent,\n AXValueChangedEvent,\n AX_SELECTION_DATA_TOKEN,\n MXLookComponent,\n MXSelectionBridgeService,\n MXSelectionValueComponent,\n convertArrayToDataSource,\n} from '@acorex/components/common';\nimport { AXDropdownBoxComponent, MXDropdownBoxBaseComponent } from '@acorex/components/dropdown';\nimport { AXListComponent } from '@acorex/components/list';\nimport { AXSearchBoxComponent } from '@acorex/components/search-box';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n WritableSignal,\n forwardRef,\n inject,\n signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { findLastIndex, last, nth } from 'lodash-es';\nimport { classes } from 'polytype';\nimport { Observable } from 'rxjs';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-select-box',\n templateUrl: './select-box.component.html',\n styleUrls: ['./select-box.component.scss'],\n inputs: [\n 'disabled',\n 'readonly',\n 'tabIndex',\n 'placeholder',\n 'minValue',\n 'maxValue',\n 'value',\n 'state',\n 'name',\n 'id',\n 'type',\n 'look',\n 'multiple',\n 'valueField',\n 'textField',\n ],\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'readonlyChange',\n 'disabledChange',\n 'onOpened',\n 'onClosed',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXSelectBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXSelectBoxComponent },\n { provide: AXValuableComponent, useExisting: AXSelectBoxComponent },\n { provide: AXClearableComponent, useExisting: AXSelectBoxComponent },\n { provide: AXClosbaleComponent, useExisting: AXSelectBoxComponent },\n { provide: AXSearchableComponent, useExisting: AXSelectBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXSelectBoxComponent),\n multi: true,\n },\n {\n provide: AX_SELECTION_DATA_TOKEN,\n useClass: MXSelectionBridgeService,\n },\n AXUnsubscriber,\n ],\n host: { ngSkipHydration: 'true' },\n})\nexport class AXSelectBoxComponent\n extends classes(MXDropdownBoxBaseComponent, MXSelectionValueComponent, MXLookComponent)\n implements AfterViewInit, OnDestroy\n{\n private hotKeyService: AXHotkeysService = inject(AXHotkeysService);\n protected isLoading: WritableSignal<boolean> = signal(false);\n protected renderList = false;\n\n protected dropdownSizes: { width: string; height: string } = {\n width: '100%',\n height: 'auto',\n };\n\n protected _listDataSource: AXDataSource<any> = convertArrayToDataSource([], {\n key: this.valueField,\n pageSize: 10,\n });\n\n private _dataSource: AXDataSource<any> | any[];\n public get dataSource(): AXDataSource<any> | any[] {\n return this._dataSource;\n }\n @Input()\n public set dataSource(v: AXDataSource<any> | any[]) {\n this._dataSource = v;\n if (Array.isArray(v)) {\n this._listDataSource = convertArrayToDataSource(v, {\n key: this.valueField,\n pageSize: 10,\n });\n } else {\n this._listDataSource = this.dataSource as AXDataSource<any>;\n }\n //\n //\n this._listDataSource.onChanged.pipe(this._unsubscriber.takeUntilDestroy).subscribe((data) => {\n this.setDropdownSize(data.totalCount);\n });\n this._listDataSource.onLoadingChanged.pipe(this._unsubscriber.takeUntilDestroy).subscribe((loading) => {\n this.isLoading.set(loading);\n });\n }\n\n @Input()\n placeholder: string;\n\n @Input()\n caption: string;\n\n @Input()\n itemTemplate: TemplateRef<any>;\n\n @Input()\n selectedTemplate: TemplateRef<any>;\n\n @Input()\n emptyTemplate: TemplateRef<any>;\n\n @Input()\n loadingTemplate: TemplateRef<any>;\n\n @Input()\n dropdownWidth = 260;\n\n @ViewChild('panel') panel!: ElementRef<HTMLDivElement>;\n\n @ViewChild(AXListComponent)\n list: AXListComponent;\n\n @ContentChild(AXSearchBoxComponent, { static: true })\n searchBox: AXSearchBoxComponent;\n\n @ViewChild(AXDropdownBoxComponent, { static: true })\n protected dropdown: AXDropdownBoxComponent;\n\n protected autoHeight = false;\n\n public selectionService = inject(AX_SELECTION_DATA_TOKEN);\n\n searchEvent: Observable<any>;\n\n private _unsubscriber = inject(AXUnsubscriber);\n\n protected override ngOnInit(): void {\n super.ngOnInit();\n //\n this.registerValidation();\n }\n\n ngAfterViewInit() {\n this.setDropdownSize();\n }\n\n override ngOnDestroy(): void {\n this.searchBox?.onKeyDown.unsubscribe();\n }\n\n getItemByKey(key: any): Promise<any> | any {\n const startTime = Date.now();\n\n const check = async () => {\n while (Date.now() - startTime < 2000) {\n if (typeof this._listDataSource.find === 'function') {\n return this._listDataSource.find(key);\n } else {\n await new Promise((resolve) => setTimeout(resolve, 50));\n }\n }\n console.log('Timeout reached without finding the \"getItemByKey\" method');\n };\n return check();\n }\n\n protected _handleOnOpenedEvent(e: AXEvent) {\n this.renderList = true;\n this.list?.render();\n this._handleFocus();\n //\n this.onOpened.emit({\n component: this,\n isUserInteraction: e.isUserInteraction,\n });\n }\n\n protected _handleOnClosedEvent(e: AXEvent) {\n //this.input.focus();\n this.onClosed.emit({\n component: this,\n isUserInteraction: e.isUserInteraction,\n });\n this._unsubscriber.unsubscribe();\n }\n\n protected _handleFocus() {\n setTimeout(() => {\n if (this.searchBox) {\n this.searchBox.focus();\n //TODO: unsubscribe\n this.hotKeyService\n .addShortcut({ keys: 'Control.f', element: this.panel.nativeElement })\n .pipe(this._unsubscriber.takeUntilDestroy)\n .subscribe(() => {\n this.searchBox.focus();\n });\n this.searchBox.onKeyDown.pipe(this._unsubscriber.takeUntilDestroy).subscribe((e) => {\n if (e.nativeEvent.code === 'ArrowDown' || e.nativeEvent.key === 'ArrowDown') {\n this.list?.focus();\n e.nativeEvent.preventDefault();\n }\n });\n } else {\n this.list?.focus();\n }\n });\n }\n\n protected _handleBadgeRemove(e: MouseEvent, item) {\n this.unselectItems(item);\n e.stopPropagation();\n }\n\n protected _handleValueChanged(e: AXValueChangedEvent) {\n if (e.isUserInteraction) {\n this.commitValue(e.component.selectedItems, true);\n }\n }\n\n protected _handleOnItemClick(e: AXItemClickEvent) {\n if (!this.multiple) {\n this.close();\n }\n }\n\n override internalValueChanged(): void {\n if (!this.multiple) this.close();\n setTimeout(() => {\n this.detectAutoHeight();\n }, 100);\n }\n\n private detectAutoHeight() {\n const containerWidth: number = this.getHostElement().querySelector<HTMLDivElement>('.ax-select-box-selection').clientWidth;\n const itemsWidth: number = Array.from(this.getHostElement().querySelectorAll<HTMLDivElement>('.ax-selected-token')).reduce(\n (a, i) => a + i.clientWidth,\n 0,\n );\n this.autoHeight = containerWidth - itemsWidth <= 8;\n this.dropdown.updatePosition();\n this.cdr.markForCheck();\n }\n\n private setDropdownSize(count = 0) {\n if (this.dropdown.isActionsheetStyle) {\n this.dropdownSizes = {\n width: '100%',\n height: ['auto', '0px'].includes(this.dropdownSizes.height) ? `${Math.min(15, count) * 40}px` : this.dropdownSizes.height,\n };\n } else {\n //TODO: calc min-with from formula or config\n const hostWidth = Math.max(this.getHostElement().offsetWidth, this.dropdownWidth);\n this.dropdownSizes = {\n width: `${hostWidth}px`,\n height: count == 0 ? 'auto' : `${Math.min(5, count) * 40}px`,\n };\n }\n setTimeout(() => {\n this.dropdown.updatePosition();\n });\n }\n\n @HostListener('keydown', ['$event'])\n _handleKeydown(e: KeyboardEvent) {\n if (e.code === 'ArrowDown' || e.code === 'ArrowUp') {\n this.selectItemByNav(e.code === 'ArrowDown' ? 1 : -1);\n e.preventDefault();\n } else if (e.code === 'Backspace') {\n this.unselectItems(this.selectedItems.pop());\n e.preventDefault();\n }\n // if ((e.code === 'Space' || e.code === 'Enter') && this.hasItems) {\n // if (this.readonly || this.disabled) {\n // e.preventDefault();\n // e.stopPropagation();\n // return;\n // }\n // const id = document.activeElement?.closest('li')?.dataset?.id;\n // this.toggleSelect(id);\n // e.preventDefault();\n // e.stopPropagation()\n // }\n }\n\n private selectItemByNav(sign: 1 | -1) {\n if (Array.isArray(this.dataSource) && !this.multiple) {\n const items = this.normalizeItemsList(this.dataSource);\n const _last: any = last(this.selectedItems);\n let i = -1;\n if (_last) {\n i = findLastIndex(items, [this.valueField, _last[this.valueField]]);\n }\n i += sign;\n if (i < 0 || i >= items.length) return;\n const next = nth<any>(items, i);\n if (next) {\n this.selectItems(next);\n }\n } else {\n this.open();\n }\n }\n\n search(term: string) {\n if (term) {\n this._listDataSource.filter({\n field: this.textField,\n value: term,\n operator: { type: 'contains' },\n });\n } else {\n this._listDataSource.clearFilter();\n }\n this._listDataSource.refresh();\n }\n\n refresh() {\n this.reset(false);\n this.clearSelectionCache();\n this.list?.refresh();\n this.close();\n }\n}\n","<ax-dropdown-box [disabled]=\"disabled\" (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\" [look]=\"look\" [class.ax-auto-height]=\"autoHeight\"\n (focus)=\"emitOnFocusEvent($event)\" (blur)=\"emitOnBlurEvent($event)\">\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div class=\"ax-select-box-selection ax-content\" [class.ax-multiple]=\"multiple\" [tabindex]=\"tabIndex\"\n (click)=\"toggle()\">\n @if (selectedItems.length === 0) {\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n }\n @for (item of selectedItems; track $index) {\n @if(selectedTemplate) {\n <ng-template *ngTemplateOutlet=\"selectedTemplate; context: { $implicit: { data:item } }\"></ng-template>\n }\n @else{\n <div class=\"ax-selected-token\">\n {{ getDisplayText(item) }}\n @if (!disabled && !readonly && multiple) {\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n }\n </div>\n }\n }\n </div>\n @if (selectedItems?.length && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-general-button ax-button-icon\"\n (click)=\"toggle()\">\n <!-- @if (isLoading() && !isOpen) {\n <ax-loading type=\"spinner\"></ax-loading>\n } @else { -->\n <span class=\"ax-icon ax-icon-chevron-left ax-arrow-button\" [ngClass]=\"{\n '-rotation-90': !isOpen,\n 'rotation-90': isOpen\n }\"></span>\n <!-- } -->\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-template #search>\n <ng-content select=\"ax-search-box\"> </ng-content>\n </ng-template>\n </ng-container>\n <ng-container panel>\n <div #panel class=\"ax-select-box-panel\" [style.min-width]=\"dropdownSizes.width\">\n @if (dropdown.isActionsheetStyle) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ caption || placeholder || 'selectbox.popover.title' | translate | async }}</ax-title>\n <ax-close-button\n [icon]=\"multiple ? 'ax-icon ax-icon-check !ax-text-primary-500' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n @if (searchBox) {\n <div class=\"ax-search-container\">\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\n </div>\n }\n @if (renderList) {\n <ax-list [dataSource]=\"_listDataSource\" [multiple]=\"multiple\" [style.height]=\"dropdownSizes.height\"\n [valueField]=\"valueField\" [textField]=\"textField\" [emptyTemplate]=\"emptyTemplate ?? empty\"\n [itemTemplate]=\"itemTemplate\" [loadingTemplate]=\"loadingTemplate\" [ngModel]=\"value\"\n (onValueChanged)=\"_handleValueChanged($event)\" [selectionMode]=\"'item'\"\n (onItemClick)=\"_handleOnItemClick($event)\">\n <ng-template #empty> {{ 'no-result-found' | translate | async}} </ng-template>\n </ax-list>\n }\n\n @if (isLoading()) {\n @if (loadingTemplate) {\n <ng-template *ngTemplateOutlet=\"loadingTemplate\"></ng-template>\n } @else {\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading></ax-loading>\n </div>\n }\n }\n\n <ng-content select=\"ax-footer\"> </ng-content>\n </div>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXListModule } from '@acorex/components/list';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXSelectBoxComponent } from './select-box.component';\n\n@NgModule({\n imports: [\n CommonModule,\n AXCommonModule,\n FormsModule,\n AXCheckBoxModule,\n AXBadgeModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXPopoverModule,\n AXLoadingModule,\n A11yModule,\n AXTextBoxModule,\n AXDropdownModule,\n AXListModule,\n ],\n exports: [AXSelectBoxComponent],\n declarations: [AXSelectBoxComponent],\n providers: [],\n})\nexport class AXSelectBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ import * as i0 from '@angular/core';
2
+ import { forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, HostBinding, NgModule } from '@angular/core';
3
+ import { MXValueComponent, MXColorComponent, AXValuableComponent, AXCommonModule } from '@acorex/components/common';
4
+ import * as i1 from '@angular/forms';
5
+ import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
6
+ import { classes } from 'polytype';
7
+ import { CommonModule } from '@angular/common';
8
+
9
+ class AXSliderComponent extends classes((MXValueComponent), MXColorComponent) {
10
+ constructor(_zone) {
11
+ super();
12
+ this._zone = _zone;
13
+ this._minValue = 0;
14
+ this._maxValue = 100;
15
+ this._step = 1;
16
+ //TODO: vertical dont work properly
17
+ this.direction = 'horizontal';
18
+ }
19
+ /**
20
+ * Specifies the smallest value that is valid
21
+ */
22
+ get minValue() {
23
+ return this._minValue ?? 0;
24
+ }
25
+ set minValue(v) {
26
+ this.setOption({
27
+ name: 'minValue',
28
+ value: v != null ? Number(v) : 0,
29
+ });
30
+ }
31
+ /**
32
+ * Specifies the greatest value that is valid
33
+ */
34
+ get maxValue() {
35
+ return this._maxValue ?? 100;
36
+ }
37
+ set maxValue(v) {
38
+ this.setOption({
39
+ name: 'maxValue',
40
+ value: v != null ? Number(v) : 100,
41
+ });
42
+ }
43
+ /**
44
+ * Specifies the greatest value that is valid
45
+ */
46
+ get step() {
47
+ return this._step ?? 100;
48
+ }
49
+ set step(v) {
50
+ this.setOption({
51
+ name: 'step',
52
+ value: v != null ? Number(v) : 1,
53
+ });
54
+ }
55
+ internalOptionChanged(e) {
56
+ this._calcVars();
57
+ }
58
+ internalValueChanged(value) {
59
+ this._calcVars();
60
+ }
61
+ _handleModelChange(value) {
62
+ this.commitValue(value, true);
63
+ }
64
+ _calcVars() {
65
+ this._zone.runOutsideAngular(() => {
66
+ const per = (((this.value ?? 0) - this.minValue) /
67
+ (this.maxValue - this.minValue)) *
68
+ 100 -
69
+ 0.1;
70
+ this.getHostElement().style.setProperty('--ax-current-value', `${per}%`);
71
+ });
72
+ }
73
+ get __hostClass() {
74
+ return `ax-${this.color}-solid ax-${this.direction}`;
75
+ }
76
+ get __hostClassDisabled() {
77
+ return this.disabled;
78
+ }
79
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXSliderComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
80
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXSliderComponent, selector: "ax-slider", inputs: { readonly: "readonly", disabled: "disabled", value: "value", name: "name", color: "color", minValue: "minValue", maxValue: "maxValue", step: "step", direction: "direction" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", readonlyChange: "readonlyChange", disabledChange: "disabledChange" }, host: { properties: { "class": "this.__hostClass", "class.ax-state-disabled": "this.__hostClassDisabled" } }, providers: [
81
+ { provide: AXValuableComponent, useExisting: AXSliderComponent },
82
+ {
83
+ provide: NG_VALUE_ACCESSOR,
84
+ useExisting: forwardRef(() => AXSliderComponent),
85
+ multi: true,
86
+ },
87
+ ], usesInheritance: true, ngImport: i0, template: "<input type=\"range\" [min]=\"minValue\" [max]=\"maxValue\" [ngModel]=\"value\" (ngModelChange)=\"_handleModelChange($event)\"\n (blur)=\"emitOnBlurEvent($event)\" (focus)=\"emitOnFocusEvent($event)\" [step]=\"step\" [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\">", styles: ["ax-slider{--ax-current-value: 0%;width:100%}ax-slider input{height:.5rem;width:100%;appearance:none;border-radius:9999px;background-color:rgba(var(--ax-color-on-surface));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-slider input::-webkit-slider-thumb{height:1.5rem;width:1.5rem;cursor:pointer;appearance:none;border-radius:9999px;border-width:1px;border-style:solid;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-white));--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow)}ax-slider input::-moz-range-thumb{height:1.5rem;width:1.5rem;cursor:pointer;appearance:none;border-radius:9999px;border-width:1px;border-style:solid;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-white));--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow)}ax-slider.ax-vertical input[type=range]{transform:rotate(270deg);-moz-transform:rotate(270deg);appearance:slider-vertical;-webkit-appearance:slider-vertical;writing-mode:bt-lr}ax-slider.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-slider.ax-primary-solid input{background:linear-gradient(to right,rgba(var(--ax-color-primary-500)) 0%,rgba(var(--ax-color-primary-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-slider.ax-secondary-solid input{background:linear-gradient(to right,rgba(var(--ax-color-secondary-500)) 0%,rgba(var(--ax-color-secondary-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-slider.ax-success-solid input{background:linear-gradient(to right,rgba(var(--ax-color-success-500)) 0%,rgba(var(--ax-color-success-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-slider.ax-warning-solid input{background:linear-gradient(to right,rgba(var(--ax-color-warning-500)) 0%,rgba(var(--ax-color-warning-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-slider.ax-danger-solid input{background:linear-gradient(to right,rgba(var(--ax-color-danger-500)) 0%,rgba(var(--ax-color-danger-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-slider.ax-info-solid input{background:linear-gradient(to right,rgba(var(--ax-color-info-500)) 0%,rgba(var(--ax-color-info-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-slider.ax-ghost-solid input{background:linear-gradient(to right,rgba(var(--ax-color-ghost-fore)) 0%,rgba(var(--ax-color-ghost-fore)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-slider.ax-primary-solid input{background:linear-gradient(to right,rgba(var(--ax-color-primary-500),70%) 0%,rgba(var(--ax-color-primary-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-slider.ax-secondary-solid input{background:linear-gradient(to right,rgba(var(--ax-color-secondary-500),70%) 0%,rgba(var(--ax-color-secondary-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-slider.ax-success-solid input{background:linear-gradient(to right,rgba(var(--ax-color-success-500),70%) 0%,rgba(var(--ax-color-success-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-slider.ax-warning-solid input{background:linear-gradient(to right,rgba(var(--ax-color-warning-500),70%) 0%,rgba(var(--ax-color-warning-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-slider.ax-danger-solid input{background:linear-gradient(to right,rgba(var(--ax-color-danger-500),70%) 0%,rgba(var(--ax-color-danger-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-slider.ax-info-solid input{background:linear-gradient(to right,rgba(var(--ax-color-info-500),70%) 0%,rgba(var(--ax-color-info-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
88
+ }
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXSliderComponent, decorators: [{
90
+ type: Component,
91
+ args: [{ selector: 'ax-slider', changeDetection: ChangeDetectionStrategy.OnPush, inputs: ['readonly', 'disabled', 'value', 'name', 'color'], outputs: [
92
+ 'valueChange',
93
+ 'onValueChanged',
94
+ 'readonlyChange',
95
+ 'disabledChange',
96
+ ], encapsulation: ViewEncapsulation.None, providers: [
97
+ { provide: AXValuableComponent, useExisting: AXSliderComponent },
98
+ {
99
+ provide: NG_VALUE_ACCESSOR,
100
+ useExisting: forwardRef(() => AXSliderComponent),
101
+ multi: true,
102
+ },
103
+ ], template: "<input type=\"range\" [min]=\"minValue\" [max]=\"maxValue\" [ngModel]=\"value\" (ngModelChange)=\"_handleModelChange($event)\"\n (blur)=\"emitOnBlurEvent($event)\" (focus)=\"emitOnFocusEvent($event)\" [step]=\"step\" [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\">", styles: ["ax-slider{--ax-current-value: 0%;width:100%}ax-slider input{height:.5rem;width:100%;appearance:none;border-radius:9999px;background-color:rgba(var(--ax-color-on-surface));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-slider input::-webkit-slider-thumb{height:1.5rem;width:1.5rem;cursor:pointer;appearance:none;border-radius:9999px;border-width:1px;border-style:solid;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-white));--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow)}ax-slider input::-moz-range-thumb{height:1.5rem;width:1.5rem;cursor:pointer;appearance:none;border-radius:9999px;border-width:1px;border-style:solid;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-white));--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow)}ax-slider.ax-vertical input[type=range]{transform:rotate(270deg);-moz-transform:rotate(270deg);appearance:slider-vertical;-webkit-appearance:slider-vertical;writing-mode:bt-lr}ax-slider.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-slider.ax-primary-solid input{background:linear-gradient(to right,rgba(var(--ax-color-primary-500)) 0%,rgba(var(--ax-color-primary-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-slider.ax-secondary-solid input{background:linear-gradient(to right,rgba(var(--ax-color-secondary-500)) 0%,rgba(var(--ax-color-secondary-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-slider.ax-success-solid input{background:linear-gradient(to right,rgba(var(--ax-color-success-500)) 0%,rgba(var(--ax-color-success-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-slider.ax-warning-solid input{background:linear-gradient(to right,rgba(var(--ax-color-warning-500)) 0%,rgba(var(--ax-color-warning-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-slider.ax-danger-solid input{background:linear-gradient(to right,rgba(var(--ax-color-danger-500)) 0%,rgba(var(--ax-color-danger-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-slider.ax-info-solid input{background:linear-gradient(to right,rgba(var(--ax-color-info-500)) 0%,rgba(var(--ax-color-info-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-slider.ax-ghost-solid input{background:linear-gradient(to right,rgba(var(--ax-color-ghost-fore)) 0%,rgba(var(--ax-color-ghost-fore)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-slider.ax-primary-solid input{background:linear-gradient(to right,rgba(var(--ax-color-primary-500),70%) 0%,rgba(var(--ax-color-primary-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-slider.ax-secondary-solid input{background:linear-gradient(to right,rgba(var(--ax-color-secondary-500),70%) 0%,rgba(var(--ax-color-secondary-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-slider.ax-success-solid input{background:linear-gradient(to right,rgba(var(--ax-color-success-500),70%) 0%,rgba(var(--ax-color-success-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-slider.ax-warning-solid input{background:linear-gradient(to right,rgba(var(--ax-color-warning-500),70%) 0%,rgba(var(--ax-color-warning-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-slider.ax-danger-solid input{background:linear-gradient(to right,rgba(var(--ax-color-danger-500),70%) 0%,rgba(var(--ax-color-danger-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-slider.ax-info-solid input{background:linear-gradient(to right,rgba(var(--ax-color-info-500),70%) 0%,rgba(var(--ax-color-info-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}\n"] }]
104
+ }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { minValue: [{
105
+ type: Input
106
+ }], maxValue: [{
107
+ type: Input
108
+ }], step: [{
109
+ type: Input
110
+ }], direction: [{
111
+ type: Input
112
+ }], __hostClass: [{
113
+ type: HostBinding,
114
+ args: ['class']
115
+ }], __hostClassDisabled: [{
116
+ type: HostBinding,
117
+ args: ['class.ax-state-disabled']
118
+ }] } });
119
+
120
+ const COMPONENT = [AXSliderComponent];
121
+ const MODULES = [CommonModule, AXCommonModule, FormsModule];
122
+ class AXSliderModule {
123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
124
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXSliderModule, declarations: [AXSliderComponent], imports: [CommonModule, AXCommonModule, FormsModule], exports: [AXSliderComponent] }); }
125
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXSliderModule, imports: [MODULES] }); }
126
+ }
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXSliderModule, decorators: [{
128
+ type: NgModule,
129
+ args: [{
130
+ declarations: [...COMPONENT],
131
+ imports: [...MODULES],
132
+ exports: [...COMPONENT],
133
+ providers: [],
134
+ }]
135
+ }] });
136
+
137
+ /**
138
+ * Generated bundle index. Do not edit.
139
+ */
140
+
141
+ export { AXSliderComponent, AXSliderModule };
142
+ //# sourceMappingURL=acorex-components-slider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-components-slider.mjs","sources":["../../../../libs/components/slider/src/lib/slider.component.ts","../../../../libs/components/slider/src/lib/slider.component.html","../../../../libs/components/slider/src/lib/slider.module.ts","../../../../libs/components/slider/src/acorex-components-slider.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n NgZone,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\n\nimport {\n AXDirection,\n AXValuableComponent,\n MXColorComponent,\n MXComponentOptionChanged,\n MXValueComponent,\n} from '@acorex/components/common';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n@Component({\n selector: 'ax-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['readonly', 'disabled', 'value', 'name', 'color'],\n outputs: [\n 'valueChange',\n 'onValueChanged',\n 'readonlyChange',\n 'disabledChange',\n ],\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXValuableComponent, useExisting: AXSliderComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXSliderComponent),\n multi: true,\n },\n ],\n})\nexport class AXSliderComponent extends classes(\n MXValueComponent<number>,\n MXColorComponent\n) {\n constructor(private _zone: NgZone) {\n super();\n }\n\n private _minValue = 0;\n /**\n * Specifies the smallest value that is valid\n */\n @Input()\n public get minValue(): number {\n return this._minValue ?? 0;\n }\n public set minValue(v: number) {\n this.setOption({\n name: 'minValue',\n value: v != null ? Number(v) : 0,\n });\n }\n\n private _maxValue = 100;\n /**\n * Specifies the greatest value that is valid\n */\n @Input()\n public get maxValue(): number {\n return this._maxValue ?? 100;\n }\n public set maxValue(v: number) {\n this.setOption({\n name: 'maxValue',\n value: v != null ? Number(v) : 100,\n });\n }\n\n private _step = 1;\n /**\n * Specifies the greatest value that is valid\n */\n @Input()\n public get step(): number {\n return this._step ?? 100;\n }\n public set step(v: number) {\n this.setOption({\n name: 'step',\n value: v != null ? Number(v) : 1,\n });\n }\n\n //TODO: vertical dont work properly\n @Input()\n direction: AXDirection = 'horizontal';\n\n override internalOptionChanged(e: MXComponentOptionChanged) {\n this._calcVars();\n }\n\n override internalValueChanged(value: number): void {\n this._calcVars();\n }\n\n protected _handleModelChange(value: number) {\n this.commitValue(value, true);\n }\n\n private _calcVars() {\n this._zone.runOutsideAngular(() => {\n const per =\n (((this.value ?? 0) - this.minValue) /\n (this.maxValue - this.minValue)) *\n 100 -\n 0.1;\n this.getHostElement().style.setProperty('--ax-current-value', `${per}%`);\n });\n }\n\n @HostBinding('class')\n private get __hostClass(): string {\n return `ax-${this.color}-solid ax-${this.direction}`;\n }\n\n @HostBinding('class.ax-state-disabled')\n private get __hostClassDisabled(): boolean {\n return this.disabled;\n }\n}\n","<input type=\"range\" [min]=\"minValue\" [max]=\"maxValue\" [ngModel]=\"value\" (ngModelChange)=\"_handleModelChange($event)\"\n (blur)=\"emitOnBlurEvent($event)\" (focus)=\"emitOnFocusEvent($event)\" [step]=\"step\" [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\">","import { AXCommonModule } from '@acorex/components/common';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXSliderComponent } from './slider.component';\n\nconst COMPONENT = [AXSliderComponent];\nconst MODULES = [CommonModule, AXCommonModule, FormsModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXSliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "18.2.1",
3
+ "version": "18.3.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=18.0.0",
6
6
  "@angular/core": ">=18.0.0",
@@ -313,12 +313,6 @@
313
313
  "esm": "./esm2022/radio/acorex-components-radio.mjs",
314
314
  "default": "./fesm2022/acorex-components-radio.mjs"
315
315
  },
316
- "./range-slider": {
317
- "types": "./range-slider/index.d.ts",
318
- "esm2022": "./esm2022/range-slider/acorex-components-range-slider.mjs",
319
- "esm": "./esm2022/range-slider/acorex-components-range-slider.mjs",
320
- "default": "./fesm2022/acorex-components-range-slider.mjs"
321
- },
322
316
  "./result": {
323
317
  "types": "./result/index.d.ts",
324
318
  "esm2022": "./esm2022/result/acorex-components-result.mjs",
@@ -373,6 +367,12 @@
373
367
  "esm": "./esm2022/skeleton/acorex-components-skeleton.mjs",
374
368
  "default": "./fesm2022/acorex-components-skeleton.mjs"
375
369
  },
370
+ "./slider": {
371
+ "types": "./slider/index.d.ts",
372
+ "esm2022": "./esm2022/slider/acorex-components-slider.mjs",
373
+ "esm": "./esm2022/slider/acorex-components-slider.mjs",
374
+ "default": "./fesm2022/acorex-components-slider.mjs"
375
+ },
376
376
  "./step-wizard": {
377
377
  "types": "./step-wizard/index.d.ts",
378
378
  "esm2022": "./esm2022/step-wizard/acorex-components-step-wizard.mjs",
@@ -0,0 +1,3 @@
1
+ # @acorex/components/slider
2
+
3
+ Secondary entry point of `@acorex/components`. It can be used by importing from `@acorex/components/slider`.
@@ -0,0 +1,2 @@
1
+ export * from './lib/slider.component';
2
+ export * from './lib/slider.module';
@@ -1,12 +1,12 @@
1
1
  import { NgZone } from '@angular/core';
2
2
  import { AXDirection, MXColorComponent, MXComponentOptionChanged, MXValueComponent } from '@acorex/components/common';
3
3
  import * as i0 from "@angular/core";
4
- declare const AXRangeSliderComponent_base: import("polytype").Polytype.ClusteredConstructor<[{
4
+ declare const AXSliderComponent_base: import("polytype").Polytype.ClusteredConstructor<[{
5
5
  new (): MXValueComponent<number>;
6
6
  ɵfac: unknown;
7
7
  ɵprov: import("@angular/core").ɵɵInjectableDeclaration<MXValueComponent<any>>;
8
8
  }, typeof MXColorComponent]>;
9
- export declare class AXRangeSliderComponent extends AXRangeSliderComponent_base {
9
+ export declare class AXSliderComponent extends AXSliderComponent_base {
10
10
  private _zone;
11
11
  constructor(_zone: NgZone);
12
12
  private _minValue;
@@ -34,7 +34,7 @@ export declare class AXRangeSliderComponent extends AXRangeSliderComponent_base
34
34
  private _calcVars;
35
35
  private get __hostClass();
36
36
  private get __hostClassDisabled();
37
- static ɵfac: i0.ɵɵFactoryDeclaration<AXRangeSliderComponent, never>;
38
- static ɵcmp: i0.ɵɵComponentDeclaration<AXRangeSliderComponent, "ax-range-slider", never, { "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; "color": { "alias": "color"; "required": false; }; "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "step": { "alias": "step"; "required": false; }; "direction": { "alias": "direction"; "required": false; }; }, { "valueChange": "valueChange"; "onValueChanged": "onValueChanged"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; }, never, never, false, never>;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXSliderComponent, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXSliderComponent, "ax-slider", never, { "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; "color": { "alias": "color"; "required": false; }; "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "step": { "alias": "step"; "required": false; }; "direction": { "alias": "direction"; "required": false; }; }, { "valueChange": "valueChange"; "onValueChanged": "onValueChanged"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; }, never, never, false, never>;
39
39
  }
40
40
  export {};
@@ -0,0 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./slider.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "@acorex/components/common";
5
+ import * as i4 from "@angular/forms";
6
+ export declare class AXSliderModule {
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXSliderModule, never>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXSliderModule, [typeof i1.AXSliderComponent], [typeof i2.CommonModule, typeof i3.AXCommonModule, typeof i4.FormsModule], [typeof i1.AXSliderComponent]>;
9
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXSliderModule>;
10
+ }
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtcmFuZ2Utc2xpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3JhbmdlLXNsaWRlci9zcmMvYWNvcmV4LWNvbXBvbmVudHMtcmFuZ2Utc2xpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -1,3 +0,0 @@
1
- export * from './lib/range-slider.component';
2
- export * from './lib/range-slider.module';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcmFuZ2Utc2xpZGVyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9yYW5nZS1zbGlkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JhbmdlLXNsaWRlci5tb2R1bGUnO1xuIl19
@@ -1,117 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding, Input, NgZone, ViewEncapsulation, forwardRef, } from '@angular/core';
2
- import { AXValuableComponent, MXColorComponent, MXValueComponent, } from '@acorex/components/common';
3
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { classes } from 'polytype';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/forms";
7
- export class AXRangeSliderComponent extends classes((MXValueComponent), MXColorComponent) {
8
- constructor(_zone) {
9
- super();
10
- this._zone = _zone;
11
- this._minValue = 0;
12
- this._maxValue = 100;
13
- this._step = 1;
14
- //TODO: vertical dont work properly
15
- this.direction = 'horizontal';
16
- }
17
- /**
18
- * Specifies the smallest value that is valid
19
- */
20
- get minValue() {
21
- return this._minValue ?? 0;
22
- }
23
- set minValue(v) {
24
- this.setOption({
25
- name: 'minValue',
26
- value: v != null ? Number(v) : 0,
27
- });
28
- }
29
- /**
30
- * Specifies the greatest value that is valid
31
- */
32
- get maxValue() {
33
- return this._maxValue ?? 100;
34
- }
35
- set maxValue(v) {
36
- this.setOption({
37
- name: 'maxValue',
38
- value: v != null ? Number(v) : 100,
39
- });
40
- }
41
- /**
42
- * Specifies the greatest value that is valid
43
- */
44
- get step() {
45
- return this._step ?? 100;
46
- }
47
- set step(v) {
48
- this.setOption({
49
- name: 'step',
50
- value: v != null ? Number(v) : 1,
51
- });
52
- }
53
- internalOptionChanged(e) {
54
- this._calcVars();
55
- }
56
- internalValueChanged(value) {
57
- this._calcVars();
58
- }
59
- _handleModelChange(value) {
60
- this.commitValue(value, true);
61
- }
62
- _calcVars() {
63
- this._zone.runOutsideAngular(() => {
64
- const per = (((this.value ?? 0) - this.minValue) /
65
- (this.maxValue - this.minValue)) *
66
- 100 -
67
- 0.1;
68
- this.getHostElement().style.setProperty('--ax-current-value', `${per}%`);
69
- });
70
- }
71
- get __hostClass() {
72
- return `ax-${this.color}-solid ax-${this.direction}`;
73
- }
74
- get __hostClassDisabled() {
75
- return this.disabled;
76
- }
77
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXRangeSliderComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
78
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXRangeSliderComponent, selector: "ax-range-slider", inputs: { readonly: "readonly", disabled: "disabled", value: "value", name: "name", color: "color", minValue: "minValue", maxValue: "maxValue", step: "step", direction: "direction" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", readonlyChange: "readonlyChange", disabledChange: "disabledChange" }, host: { properties: { "class": "this.__hostClass", "class.ax-state-disabled": "this.__hostClassDisabled" } }, providers: [
79
- { provide: AXValuableComponent, useExisting: AXRangeSliderComponent },
80
- {
81
- provide: NG_VALUE_ACCESSOR,
82
- useExisting: forwardRef(() => AXRangeSliderComponent),
83
- multi: true,
84
- },
85
- ], usesInheritance: true, ngImport: i0, template: "<input type=\"range\" [min]=\"minValue\" [max]=\"maxValue\" [ngModel]=\"value\" (ngModelChange)=\"_handleModelChange($event)\"\n (blur)=\"emitOnBlurEvent($event)\" (focus)=\"emitOnFocusEvent($event)\" [step]=\"step\" [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\">", styles: ["ax-range-slider{--ax-current-value: 0%}ax-range-slider input{height:.5rem;width:100%;appearance:none;border-radius:9999px;background-color:rgba(var(--ax-color-on-surface));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-range-slider input::-webkit-slider-thumb{height:1.5rem;width:1.5rem;cursor:pointer;appearance:none;border-radius:9999px;border-width:1px;border-style:solid;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-white));--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow)}ax-range-slider input::-moz-range-thumb{height:1.5rem;width:1.5rem;cursor:pointer;appearance:none;border-radius:9999px;border-width:1px;border-style:solid;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-white));--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow)}ax-range-slider.ax-vertical input[type=range]{transform:rotate(270deg);-moz-transform:rotate(270deg);appearance:slider-vertical;-webkit-appearance:slider-vertical;writing-mode:bt-lr}ax-range-slider.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-range-slider.ax-primary-solid input{background:linear-gradient(to right,rgba(var(--ax-color-primary-500)) 0%,rgba(var(--ax-color-primary-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-range-slider.ax-secondary-solid input{background:linear-gradient(to right,rgba(var(--ax-color-secondary-500)) 0%,rgba(var(--ax-color-secondary-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-range-slider.ax-success-solid input{background:linear-gradient(to right,rgba(var(--ax-color-success-500)) 0%,rgba(var(--ax-color-success-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-range-slider.ax-warning-solid input{background:linear-gradient(to right,rgba(var(--ax-color-warning-500)) 0%,rgba(var(--ax-color-warning-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-range-slider.ax-danger-solid input{background:linear-gradient(to right,rgba(var(--ax-color-danger-500)) 0%,rgba(var(--ax-color-danger-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-range-slider.ax-info-solid input{background:linear-gradient(to right,rgba(var(--ax-color-info-500)) 0%,rgba(var(--ax-color-info-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-range-slider.ax-ghost-solid input{background:linear-gradient(to right,rgba(var(--ax-color-ghost-fore)) 0%,rgba(var(--ax-color-ghost-fore)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-range-slider.ax-primary-solid input{background:linear-gradient(to right,rgba(var(--ax-color-primary-500),70%) 0%,rgba(var(--ax-color-primary-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-range-slider.ax-secondary-solid input{background:linear-gradient(to right,rgba(var(--ax-color-secondary-500),70%) 0%,rgba(var(--ax-color-secondary-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-range-slider.ax-success-solid input{background:linear-gradient(to right,rgba(var(--ax-color-success-500),70%) 0%,rgba(var(--ax-color-success-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-range-slider.ax-warning-solid input{background:linear-gradient(to right,rgba(var(--ax-color-warning-500),70%) 0%,rgba(var(--ax-color-warning-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-range-slider.ax-danger-solid input{background:linear-gradient(to right,rgba(var(--ax-color-danger-500),70%) 0%,rgba(var(--ax-color-danger-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-range-slider.ax-info-solid input{background:linear-gradient(to right,rgba(var(--ax-color-info-500),70%) 0%,rgba(var(--ax-color-info-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
86
- }
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXRangeSliderComponent, decorators: [{
88
- type: Component,
89
- args: [{ selector: 'ax-range-slider', changeDetection: ChangeDetectionStrategy.OnPush, inputs: ['readonly', 'disabled', 'value', 'name', 'color'], outputs: [
90
- 'valueChange',
91
- 'onValueChanged',
92
- 'readonlyChange',
93
- 'disabledChange',
94
- ], encapsulation: ViewEncapsulation.None, providers: [
95
- { provide: AXValuableComponent, useExisting: AXRangeSliderComponent },
96
- {
97
- provide: NG_VALUE_ACCESSOR,
98
- useExisting: forwardRef(() => AXRangeSliderComponent),
99
- multi: true,
100
- },
101
- ], template: "<input type=\"range\" [min]=\"minValue\" [max]=\"maxValue\" [ngModel]=\"value\" (ngModelChange)=\"_handleModelChange($event)\"\n (blur)=\"emitOnBlurEvent($event)\" (focus)=\"emitOnFocusEvent($event)\" [step]=\"step\" [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\">", styles: ["ax-range-slider{--ax-current-value: 0%}ax-range-slider input{height:.5rem;width:100%;appearance:none;border-radius:9999px;background-color:rgba(var(--ax-color-on-surface));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-range-slider input::-webkit-slider-thumb{height:1.5rem;width:1.5rem;cursor:pointer;appearance:none;border-radius:9999px;border-width:1px;border-style:solid;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-white));--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow)}ax-range-slider input::-moz-range-thumb{height:1.5rem;width:1.5rem;cursor:pointer;appearance:none;border-radius:9999px;border-width:1px;border-style:solid;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-white));--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow)}ax-range-slider.ax-vertical input[type=range]{transform:rotate(270deg);-moz-transform:rotate(270deg);appearance:slider-vertical;-webkit-appearance:slider-vertical;writing-mode:bt-lr}ax-range-slider.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-range-slider.ax-primary-solid input{background:linear-gradient(to right,rgba(var(--ax-color-primary-500)) 0%,rgba(var(--ax-color-primary-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-range-slider.ax-secondary-solid input{background:linear-gradient(to right,rgba(var(--ax-color-secondary-500)) 0%,rgba(var(--ax-color-secondary-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-range-slider.ax-success-solid input{background:linear-gradient(to right,rgba(var(--ax-color-success-500)) 0%,rgba(var(--ax-color-success-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-range-slider.ax-warning-solid input{background:linear-gradient(to right,rgba(var(--ax-color-warning-500)) 0%,rgba(var(--ax-color-warning-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-range-slider.ax-danger-solid input{background:linear-gradient(to right,rgba(var(--ax-color-danger-500)) 0%,rgba(var(--ax-color-danger-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-range-slider.ax-info-solid input{background:linear-gradient(to right,rgba(var(--ax-color-info-500)) 0%,rgba(var(--ax-color-info-500)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}ax-range-slider.ax-ghost-solid input{background:linear-gradient(to right,rgba(var(--ax-color-ghost-fore)) 0%,rgba(var(--ax-color-ghost-fore)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-range-slider.ax-primary-solid input{background:linear-gradient(to right,rgba(var(--ax-color-primary-500),70%) 0%,rgba(var(--ax-color-primary-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-range-slider.ax-secondary-solid input{background:linear-gradient(to right,rgba(var(--ax-color-secondary-500),70%) 0%,rgba(var(--ax-color-secondary-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-range-slider.ax-success-solid input{background:linear-gradient(to right,rgba(var(--ax-color-success-500),70%) 0%,rgba(var(--ax-color-success-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-range-slider.ax-warning-solid input{background:linear-gradient(to right,rgba(var(--ax-color-warning-500),70%) 0%,rgba(var(--ax-color-warning-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-range-slider.ax-danger-solid input{background:linear-gradient(to right,rgba(var(--ax-color-danger-500),70%) 0%,rgba(var(--ax-color-danger-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}.ax-dark ax-range-slider.ax-info-solid input{background:linear-gradient(to right,rgba(var(--ax-color-info-500),70%) 0%,rgba(var(--ax-color-info-500),70%) var(--ax-current-value),rgba(var(--ax-color-on-surface)) var(--ax-current-value),rgba(var(--ax-color-on-surface)) 100%)}\n"] }]
102
- }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { minValue: [{
103
- type: Input
104
- }], maxValue: [{
105
- type: Input
106
- }], step: [{
107
- type: Input
108
- }], direction: [{
109
- type: Input
110
- }], __hostClass: [{
111
- type: HostBinding,
112
- args: ['class']
113
- }], __hostClassDisabled: [{
114
- type: HostBinding,
115
- args: ['class.ax-state-disabled']
116
- }] } });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9yYW5nZS1zbGlkZXIvc3JjL2xpYi9yYW5nZS1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3JhbmdlLXNsaWRlci9zcmMvbGliL3JhbmdlLXNsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFFTCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBRWhCLGdCQUFnQixHQUNqQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQXdCbkMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLE9BQU8sQ0FDakQsQ0FBQSxnQkFBd0IsQ0FBQSxFQUN4QixnQkFBZ0IsQ0FDakI7SUFDQyxZQUFvQixLQUFhO1FBQy9CLEtBQUssRUFBRSxDQUFDO1FBRFUsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUl6QixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBZWQsY0FBUyxHQUFHLEdBQUcsQ0FBQztRQWVoQixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBZWxCLG1DQUFtQztRQUVuQyxjQUFTLEdBQWdCLFlBQVksQ0FBQztJQWpEdEMsQ0FBQztJQUdEOztPQUVHO0lBQ0gsSUFDVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQVcsUUFBUSxDQUFDLENB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QkFDYyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNULEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsd0JBQXdCLEVBQUU7d0JBQ3JFOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDOzRCQUNyRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjsyRUFlVSxRQUFRO3NCQURsQixLQUFLO2dCQWdCSyxRQUFRO3NCQURsQixLQUFLO2dCQWdCSyxJQUFJO3NCQURkLEtBQUs7Z0JBYU4sU0FBUztzQkFEUixLQUFLO2dCQTJCTSxXQUFXO3NCQUR0QixXQUFXO3VCQUFDLE9BQU87Z0JBTVIsbUJBQW1CO3NCQUQ5QixXQUFXO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIEFYRGlyZWN0aW9uLFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBNWENvbG9yQ29tcG9uZW50LFxuICBNWENvbXBvbmVudE9wdGlvbkNoYW5nZWQsXG4gIE1YVmFsdWVDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1yYW5nZS1zbGlkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbnB1dHM6IFsncmVhZG9ubHknLCAnZGlzYWJsZWQnLCAndmFsdWUnLCAnbmFtZScsICdjb2xvciddLFxuICBvdXRwdXRzOiBbXG4gICAgJ3ZhbHVlQ2hhbmdlJyxcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxuICAgICdyZWFkb25seUNoYW5nZScsXG4gICAgJ2Rpc2FibGVkQ2hhbmdlJyxcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhSYW5nZVNsaWRlckNvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhSYW5nZVNsaWRlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFJhbmdlU2xpZGVyQ29tcG9uZW50IGV4dGVuZHMgY2xhc3NlcyhcbiAgTVhWYWx1ZUNvbXBvbmVudDxudW1iZXI+LFxuICBNWENvbG9yQ29tcG9uZW50XG4pIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfem9uZTogTmdab25lKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX21pblZhbHVlID0gMDtcbiAgLyoqXG4gICAqICBTcGVjaWZpZXMgdGhlIHNtYWxsZXN0IHZhbHVlIHRoYXQgaXMgdmFsaWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgbWluVmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWluVmFsdWUgPz8gMDtcbiAgfVxuICBwdWJsaWMgc2V0IG1pblZhbHVlKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdtaW5WYWx1ZScsXG4gICAgICB2YWx1ZTogdiAhPSBudWxsID8gTnVtYmVyKHYpIDogMCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX21heFZhbHVlID0gMTAwO1xuICAvKipcbiAgICogIFNwZWNpZmllcyB0aGUgZ3JlYXRlc3QgdmFsdWUgdGhhdCBpcyB2YWxpZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9tYXhWYWx1ZSA/PyAxMDA7XG4gIH1cbiAgcHVibGljIHNldCBtYXhWYWx1ZSh2OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnbWF4VmFsdWUnLFxuICAgICAgdmFsdWU6IHYgIT0gbnVsbCA/IE51bWJlcih2KSA6IDEwMCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3N0ZXAgPSAxO1xuICAvKipcbiAgICogIFNwZWNpZmllcyB0aGUgZ3JlYXRlc3QgdmFsdWUgdGhhdCBpcyB2YWxpZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBzdGVwKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3N0ZXAgPz8gMTAwO1xuICB9XG4gIHB1YmxpYyBzZXQgc3RlcCh2OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnc3RlcCcsXG4gICAgICB2YWx1ZTogdiAhPSBudWxsID8gTnVtYmVyKHYpIDogMSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vVE9ETzogdmVydGljYWwgZG9udCB3b3JrIHByb3Blcmx5XG4gIEBJbnB1dCgpXG4gIGRpcmVjdGlvbjogQVhEaXJlY3Rpb24gPSAnaG9yaXpvbnRhbCc7XG5cbiAgb3ZlcnJpZGUgaW50ZXJuYWxPcHRpb25DaGFuZ2VkKGU6IE1YQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCkge1xuICAgIHRoaXMuX2NhbGNWYXJzKCk7XG4gIH1cblxuICBvdmVycmlkZSBpbnRlcm5hbFZhbHVlQ2hhbmdlZCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fY2FsY1ZhcnMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlTW9kZWxDaGFuZ2UodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuY29tbWl0VmFsdWUodmFsdWUsIHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY1ZhcnMoKSB7XG4gICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBjb25zdCBwZXIgPVxuICAgICAgICAoKCh0aGlzLnZhbHVlID8/IDApIC0gdGhpcy5taW5WYWx1ZSkgL1xuICAgICAgICAgICh0aGlzLm1heFZhbHVlIC0gdGhpcy5taW5WYWx1ZSkpICpcbiAgICAgICAgICAxMDAgLVxuICAgICAgICAwLjE7XG4gICAgICB0aGlzLmdldEhvc3RFbGVtZW50KCkuc3R5bGUuc2V0UHJvcGVydHkoJy0tYXgtY3VycmVudC12YWx1ZScsIGAke3Blcn0lYCk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGF4LSR7dGhpcy5jb2xvcn0tc29saWQgYXgtJHt0aGlzLmRpcmVjdGlvbn1gO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZCcpXG4gIHByaXZhdGUgZ2V0IF9faG9zdENsYXNzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7XG4gIH1cbn1cbiIsIjxpbnB1dCB0eXBlPVwicmFuZ2VcIiBbbWluXT1cIm1pblZhbHVlXCIgW21heF09XCJtYXhWYWx1ZVwiIFtuZ01vZGVsXT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwiX2hhbmRsZU1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAgIChibHVyKT1cImVtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCIgKGZvY3VzKT1cImVtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiIFtzdGVwXT1cInN0ZXBcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiPiJdfQ==