@acorex/components 7.4.4 → 7.4.6
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.
- package/alert/lib/alert.component.d.ts +1 -3
- package/avatar/lib/avatar-group.component.d.ts +1 -4
- package/avatar/lib/avatar.component.d.ts +6 -7
- package/badge/lib/badge.component.d.ts +1 -3
- package/calendar/lib/calendar.class.d.ts +1 -3
- package/chips/lib/chips.component.d.ts +2 -4
- package/common/index.d.ts +2 -0
- package/common/lib/classes/styles.class.d.ts +1 -0
- package/common/lib/components/appearance-component.class.d.ts +12 -0
- package/common/lib/components/base-component.class.d.ts +1 -4
- package/common/lib/components/color-component.class.d.ts +0 -1
- package/common/lib/components/colorlook-component.class.d.ts +0 -1
- package/common/lib/components/interactive-component.class.d.ts +0 -1
- package/common/lib/components/look-component.class.d.ts +0 -1
- package/common/lib/components/selection-base.component.class.d.ts +45 -0
- package/common/lib/components/value-component.class.d.ts +0 -1
- package/data-pager/lib/data-pager-base.component.d.ts +3 -3
- package/data-pager/lib/data-pager.component.d.ts +2 -2
- package/datetime-box/lib/datetime-box.component.d.ts +9 -9
- package/datetime-input/lib/datetime-input.component.d.ts +1 -1
- package/datetime-picker/index.d.ts +1 -0
- package/datetime-picker/lib/datetime-picker.component.d.ts +5 -4
- package/datetime-picker/lib/datetime-picker.config.d.ts +8 -0
- package/dropdown/lib/dropdown-box.component.d.ts +6 -4
- package/esm2022/action-sheet/lib/action-sheet.component.mjs +4 -3
- package/esm2022/alert/lib/alert.component.mjs +3 -3
- package/esm2022/avatar/lib/avatar-group.component.mjs +2 -4
- package/esm2022/avatar/lib/avatar.component.mjs +21 -15
- package/esm2022/avatar/lib/avatar.module.mjs +3 -3
- package/esm2022/badge/lib/badge.component.mjs +2 -3
- package/esm2022/calendar/lib/calendar.class.mjs +2 -3
- package/esm2022/calendar/lib/calendar.component.mjs +2 -1
- package/esm2022/chips/lib/chips.component.mjs +3 -4
- package/esm2022/color-box/lib/color-box.component.mjs +1 -1
- package/esm2022/color-palette/lib/color-palette-input.component.mjs +1 -1
- package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +2 -1
- package/esm2022/common/index.mjs +3 -1
- package/esm2022/common/lib/classes/styles.class.mjs +1 -1
- package/esm2022/common/lib/components/appearance-component.class.mjs +25 -0
- package/esm2022/common/lib/components/base-component.class.mjs +15 -16
- package/esm2022/common/lib/components/color-component.class.mjs +2 -2
- package/esm2022/common/lib/components/colorlook-component.class.mjs +1 -4
- package/esm2022/common/lib/components/interactive-component.class.mjs +24 -24
- package/esm2022/common/lib/components/look-component.class.mjs +2 -2
- package/esm2022/common/lib/components/selection-base.component.class.mjs +176 -0
- package/esm2022/common/lib/components/value-component.class.mjs +8 -7
- package/esm2022/data-pager/lib/data-pager-base.component.mjs +4 -10
- package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +3 -3
- package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +59 -16
- package/esm2022/data-pager/lib/data-pager.component.mjs +8 -8
- package/esm2022/datetime-box/lib/datetime-box.component.mjs +15 -12
- package/esm2022/datetime-input/lib/datetime-input.component.mjs +4 -4
- package/esm2022/datetime-picker/index.mjs +2 -1
- package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +23 -11
- package/esm2022/datetime-picker/lib/datetime-picker.config.mjs +22 -0
- package/esm2022/decorators/lib/components/generic-content.component.mjs +26 -3
- package/esm2022/dialog/lib/dialog.component.mjs +2 -1
- package/esm2022/dropdown/lib/dropdown-box.component.mjs +11 -9
- package/esm2022/dropdown/lib/dropdown-panel.component.mjs +3 -2
- package/esm2022/form/lib/form-field.component.mjs +2 -2
- package/esm2022/form/lib/form.component.mjs +7 -6
- package/esm2022/form/lib/validation-rule.widget.mjs +2 -1
- package/esm2022/image/lib/image.component.mjs +2 -1
- package/esm2022/loading/lib/loading.component.mjs +2 -1
- package/esm2022/notification/lib/notification.component.mjs +2 -1
- package/esm2022/picker/lib/picker.component.mjs +16 -20
- package/esm2022/popover/lib/popover.component.mjs +11 -4
- package/esm2022/popup/lib/popup.component.mjs +2 -1
- package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +2 -1
- package/esm2022/scheduler/lib/scheduler.component.mjs +2 -2
- package/esm2022/select-box/lib/select-box.component.mjs +15 -12
- package/esm2022/selection-list/lib/selection-list.component.mjs +52 -26
- package/esm2022/switch/lib/switch-content.component.mjs +9 -7
- package/esm2022/text-box/lib/text-box.component.mjs +28 -12
- package/esm2022/toast/lib/toast.component.mjs +2 -1
- package/esm2022/tooltip/lib/tooltip.directive.mjs +30 -2
- package/fesm2022/acorex-components-action-sheet.mjs +3 -2
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +2 -2
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +22 -18
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +1 -2
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +2 -1
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +2 -3
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +1 -1
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +2 -1
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-common.mjs +241 -49
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +69 -32
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +16 -13
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +3 -3
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +45 -13
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +24 -1
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +1 -0
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +11 -8
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +8 -6
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +1 -0
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +1 -0
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +1 -0
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +13 -17
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +10 -3
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +1 -0
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +2 -1
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +14 -11
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +51 -26
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +8 -7
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-text-box.mjs +26 -10
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +1 -0
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +29 -1
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/form/lib/form.component.d.ts +2 -2
- package/mixin/lib/base-components.class.d.ts +2 -2
- package/mixin/lib/base-menu-mixin.class.d.ts +5 -5
- package/mixin/lib/button-mixin.class.d.ts +2 -2
- package/mixin/lib/clickable-mixin.class.d.ts +2 -2
- package/mixin/lib/color-look-mixing.class.d.ts +2 -2
- package/mixin/lib/datalist-component.class.d.ts +10 -10
- package/mixin/lib/dropdown-mixin.class.d.ts +2 -2
- package/mixin/lib/interactive-mixin.class.d.ts +4 -4
- package/mixin/lib/mixin.class.d.ts +61 -61
- package/mixin/lib/page-component.class.d.ts +2 -2
- package/mixin/lib/selection-component.class.d.ts +2 -2
- package/mixin/lib/sizable-mixin.class.d.ts +2 -2
- package/mixin/lib/textbox-mixin.class.d.ts +2 -2
- package/mixin/lib/value-mixin.class.d.ts +8 -8
- package/package.json +1 -1
- package/picker/lib/picker.component.d.ts +2 -2
- package/popover/lib/popover.component.d.ts +3 -1
- package/select-box/lib/select-box.component.d.ts +2 -1
- package/selection-list/lib/selection-list.component.d.ts +10 -15
- package/switch/lib/switch-content.component.d.ts +2 -2
- package/text-box/lib/text-box.component.d.ts +11 -3
- package/tooltip/lib/tooltip.directive.d.ts +7 -1
@@ -1,14 +1,14 @@
|
|
1
|
+
import { AXClosbaleComponent, AXSearchableComponent, AXValuableComponent, AXCommonModule } from '@acorex/components/common';
|
1
2
|
import * as i1 from '@acorex/core/platform';
|
2
3
|
import * as i7 from '@acorex/core/translation';
|
3
4
|
import { AXTranslator, AXTranslationModule } from '@acorex/core/translation';
|
4
5
|
import * as i0 from '@angular/core';
|
5
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, ContentChild, Input, HostListener, NgModule } from '@angular/core';
|
6
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, ContentChild, Input, HostListener, HostBinding, NgModule } from '@angular/core';
|
6
7
|
import { findLast, first, last, findLastIndex, nth } from 'lodash-es';
|
7
|
-
import {
|
8
|
+
import { AXBaseSelectionDropdownMixin } from '@acorex/components/mixin';
|
8
9
|
import * as i4 from '@acorex/components/popover';
|
9
10
|
import { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';
|
10
11
|
import { AXSearchBoxComponent } from '@acorex/components/search-box';
|
11
|
-
import { AXBaseSelectionDropdownMixin } from '@acorex/components/mixin';
|
12
12
|
import * as i2 from '@angular/common';
|
13
13
|
import { CommonModule } from '@angular/common';
|
14
14
|
import * as i3 from '@acorex/components/decorators';
|
@@ -108,8 +108,7 @@ class AXSelectBoxComponent extends AXBaseSelectionDropdownMixin {
|
|
108
108
|
}
|
109
109
|
_checkForLoadData() {
|
110
110
|
const list = this.listContainer.nativeElement;
|
111
|
-
if (this.loadedCount < this.totalCount &&
|
112
|
-
list.scrollHeight < list.parentElement.clientHeight * 1.5) {
|
111
|
+
if (this.loadedCount < this.totalCount && list.scrollHeight < list.parentElement.clientHeight * 1.5) {
|
113
112
|
this._fetchData();
|
114
113
|
}
|
115
114
|
}
|
@@ -242,9 +241,7 @@ class AXSelectBoxComponent extends AXBaseSelectionDropdownMixin {
|
|
242
241
|
_focusItemByNav(sign) {
|
243
242
|
const list = this.listContainer.nativeElement;
|
244
243
|
const fn = (s) => list.querySelector(s);
|
245
|
-
const itemDiv = fn(`.ax-list-item.ax-state-focus`) ||
|
246
|
-
fn(`.ax-list-item.ax-state-selected`) ||
|
247
|
-
fn(`.ax-list-item`);
|
244
|
+
const itemDiv = fn(`.ax-list-item.ax-state-focus`) || fn(`.ax-list-item.ax-state-selected`) || fn(`.ax-list-item`);
|
248
245
|
let next = (sign == 1 ? itemDiv.nextElementSibling : itemDiv.previousElementSibling);
|
249
246
|
if (next) {
|
250
247
|
this._focusItemElement(next);
|
@@ -315,12 +312,15 @@ class AXSelectBoxComponent extends AXBaseSelectionDropdownMixin {
|
|
315
312
|
_fetchData() {
|
316
313
|
super._fetchData({ searchQuery: this._searchBox?.value });
|
317
314
|
}
|
315
|
+
get __hostClass() {
|
316
|
+
return `ax-editor-container ax-drop-down ax-appearance-solid`;
|
317
|
+
}
|
318
318
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXSelectBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.AXPlatform }], target: i0.ɵɵFactoryTarget.Component }); }
|
319
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: { isOpen: "isOpen", fitParent: "fitParent", dropdownWidth: "dropdownWidth", position: "position", disabled: "disabled", tabIndex: "tabIndex", allowNull: "allowNull", value: "value", name: "name", checked: "checked", placeholder: "placeholder", maxLength: "maxLength", type: "type", autoComplete: "autoComplete", readonly: "readonly", pageSize: "pageSize", items: "items", valueField: "valueField", textField: "textField", disabledField: "disabledField", disabledCallback: "disabledCallback", multiple: "multiple", selectionMode: "selectionMode", clearButton: "clearButton", checkbox: "checkbox" }, outputs: { onOpened: "onOpened", onClosed: "onClosed", onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", onValueChanged: "onValueChanged" }, host: { listeners: { "keydown": "_handleKeydown($event)" },
|
319
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: { isOpen: "isOpen", fitParent: "fitParent", dropdownWidth: "dropdownWidth", position: "position", disabled: "disabled", tabIndex: "tabIndex", allowNull: "allowNull", value: "value", name: "name", checked: "checked", placeholder: "placeholder", maxLength: "maxLength", type: "type", autoComplete: "autoComplete", readonly: "readonly", pageSize: "pageSize", items: "items", valueField: "valueField", textField: "textField", disabledField: "disabledField", disabledCallback: "disabledCallback", multiple: "multiple", selectionMode: "selectionMode", clearButton: "clearButton", checkbox: "checkbox" }, outputs: { onOpened: "onOpened", onClosed: "onClosed", onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", onValueChanged: "onValueChanged" }, host: { listeners: { "keydown": "_handleKeydown($event)" }, properties: { "class": "this.__hostClass" } }, providers: [
|
320
320
|
{ provide: AXClosbaleComponent, useExisting: AXSelectBoxComponent },
|
321
321
|
{ provide: AXSearchableComponent, useExisting: AXSelectBoxComponent },
|
322
322
|
{ provide: AXValuableComponent, useExisting: AXSelectBoxComponent },
|
323
|
-
], queries: [{ propertyName: "_searchBox", first: true, predicate: AXSearchBoxComponent, descendants: true, static: true }, { propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, static: true }, { propertyName: "listContainer", first: true, predicate: ["listContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\"> </ng-content>\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\n <div class=\"ax-select-box-selection\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\"\n (blur)=\"_emitOnBlurEvent($event)\">\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\n <ng-template #singleSelectedTemplate>\n <ng-container *ngFor=\"let item of selectedItems\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n </ng-container>\n </ng-template>\n <ng-template #multipleSelectedTemplate>\n <div class=\"ax-select-box-multi-selection\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <div class=\"ax-select-multi-item\">\n {{ _getItemDisplayTextTemplte(item) }}\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #showPlaceholder>\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n </ng-template>\n </div>\n</div>\n<button type=\"button\" class=\"ax-general-button ax-button-icon\" (click)=\"clear()\" [tabIndex]=\"-1\"\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\n <span class=\"ax-icon ax-icon-close\"></span>\n</button>\n<button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-general-button ax-button-icon\"\n (click)=\"_handleArrowClickEvent($event)\">\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\n <ax-loading type=\"spinner\"></ax-loading>\n </ng-container>\n <ng-template #iconTemplate>\n <span class=\"ax-icon ax-icon-chevron-left ax-transition-all\" [ngClass]=\"{\n '-ax-rotation-90': !isOpen,\n 'ax-rotation-90': isOpen\n }\"></span>\n </ng-template>\n</button>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<ng-content select=\"ax-suffix\"> </ng-content>\n<ax-popover [target]=\"_target\" [placement]=\"position\" [openOn]=\"'manual'\" [closeOn]=\"'clickout'\"\n [adaptivityEnabled]=\"true\" (onOpened)=\"_handlePopupOnOpened($event)\" (onClosed)=\"_handlePopupOnClosed($event)\">\n <div class=\"ax-overlay-pane\" (keydown)=\"_handlePopoverKeydown($event)\" tabindex=\"0\" aria-modal=\"true\" cdkTrapFocus\n [class.ax-overlay-actionsheet]=\"_isActionSheet\" [class.ax-full]=\"_searchBox || isLazy\"\n [style.min-width.px]=\"_popoverWidth\">\n <div class=\"ax-list\">\n <ax-header *ngIf=\"_isActionSheet\">\n <ax-title>{{ _popoverTitle }}</ax-title>\n <ax-close-button class=\"ax-icon\"\n [icon]=\"multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\"></ax-close-button>\n </ax-header>\n <div class=\"ax-search-box-container\" [class.ax-state-hidden]=\"!_searchBox\" [cdkTrapFocus]=\"_searchBox != null\">\n <ng-content select=\"ax-search-box\"></ng-content>\n </div>\n <div class=\"ax-content ax-list-items-container ax-default\" (scroll)=\"_handleListScroll($event)\" #listContainer>\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul>\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\"> </ng-container>\n <ng-template #tmpTree let-list=\"list\">\n <ng-container *ngFor=\"let item of list; let i = index; trackBy: _trackByFunction\">\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\n <li class=\"ax-list-item\" (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, direction: direction }\">\n </ng-container>\n </li>\n </ng-container>\n <ng-template #defualtTemplate>\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <ul *ngIf=\"item.children?.length > 0\">\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n </ng-container>\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item)\"></span>\n </li>\n </ng-container>\n <ng-template #multipleTemplate>\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [class.ax-state-checkbox]=\"checkbox\"\n [attr.tabindex]=\"i\" (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span>\n <input class=\"ax-checkbox\" type=\"checkbox\" [class.ax-state-disabled]=\"isItemDisabled(item)\"\n *ngIf=\"checkbox\" [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\" />\n <span class=\"ax-checkbox-label\">{{ _getItemDisplayTextTemplte(item) }}</span>\n </span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\"\n *ngIf=\"isItemSelected(item) && !checkbox\"></span>\n </li>\n </ng-template>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-template>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseLoadingTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [context]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\" [innerHTML]=\"\n 'common.no-result-for'\n | trans\n : {\n exp: this._searchBox ? this._searchBox.value : ''\n }\n \"></div>\n </ng-template>\n </ng-container>\n </ng-template>\n </div>\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\n >\n \n </div> -->\n <!-- <div class=\"ax-footer\">footer</div> -->\n </div>\n </div>\n</ax-popover>", styles: ["ax-select-box .ax-select-multi-item{display:flex;align-items:center;padding:.25rem .5rem;background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore));border-radius:var(--ax-rounded-border-default);margin-inline-end:.5rem}ax-select-box .ax-select-multi-item .ax-icon-close{cursor:pointer;margin-inline-start:.5rem}ax-select-box .ax-select-box-selection{display:flex;justify-content:center;align-items:center;outline-color:transparent;outline:transparent;-webkit-user-select:none;user-select:none}ax-select-box .ax-select-box-selection>span{padding-inline-start:1rem;padding-inline-end:.75rem;white-space:nowrap}ax-select-box .ax-select-box-selection .ax-selectbox-input{opacity:0;width:0}ax-select-box .ax-select-box-multi-selection{padding:0 .5rem;display:flex;justify-content:center;align-items:center}ax-select-box .ax-placeholder{padding-inline-start:1rem;padding-inline-end:.75rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title , ax-sub-title" }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "directive", type: i6.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
323
|
+
], queries: [{ propertyName: "_searchBox", first: true, predicate: AXSearchBoxComponent, descendants: true, static: true }, { propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, static: true }, { propertyName: "listContainer", first: true, predicate: ["listContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\"> </ng-content>\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\n <div class=\"ax-select-box-selection\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\"\n (blur)=\"_emitOnBlurEvent($event)\">\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\n <ng-template #singleSelectedTemplate>\n <ng-container *ngFor=\"let item of selectedItems\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n </ng-container>\n </ng-template>\n <ng-template #multipleSelectedTemplate>\n <div class=\"ax-select-box-multi-selection\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <div class=\"ax-select-multi-item\">\n {{ _getItemDisplayTextTemplte(item) }}\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #showPlaceholder>\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n </ng-template>\n </div>\n</div>\n<button type=\"button\" class=\"ax-general-button ax-button-icon\" (click)=\"clear()\" [tabIndex]=\"-1\"\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\n <span class=\"ax-icon ax-icon-close\"></span>\n</button>\n<button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-general-button ax-button-icon\"\n (click)=\"_handleArrowClickEvent($event)\">\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\n <ax-loading type=\"spinner\"></ax-loading>\n </ng-container>\n <ng-template #iconTemplate>\n <span class=\"ax-icon ax-icon-chevron-left ax-transition-all\" [ngClass]=\"{\n '-ax-rotation-90': !isOpen,\n 'ax-rotation-90': isOpen\n }\"></span>\n </ng-template>\n</button>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<ng-content select=\"ax-suffix\"> </ng-content>\n<ax-popover [target]=\"_target\" [placement]=\"position\" [openOn]=\"'manual'\" [closeOn]=\"'clickout'\"\n [adaptivityEnabled]=\"true\" (onOpened)=\"_handlePopupOnOpened($event)\" (onClosed)=\"_handlePopupOnClosed($event)\">\n <div class=\"ax-overlay-pane\" (keydown)=\"_handlePopoverKeydown($event)\" tabindex=\"0\" aria-modal=\"true\" cdkTrapFocus\n [class.ax-overlay-actionsheet]=\"_isActionSheet\" [class.ax-full]=\"_searchBox || isLazy\"\n [style.min-width.px]=\"_popoverWidth\">\n <div class=\"ax-list\">\n <ax-header *ngIf=\"_isActionSheet\">\n <ax-title>{{ _popoverTitle }}</ax-title>\n <ax-close-button class=\"ax-icon\"\n [icon]=\"multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\"></ax-close-button>\n </ax-header>\n <div class=\"ax-search-box-container\" [class.ax-state-hidden]=\"!_searchBox\" [cdkTrapFocus]=\"_searchBox != null\">\n <ng-content select=\"ax-search-box\"></ng-content>\n </div>\n <div class=\"ax-content ax-list-items-container ax-default\" (scroll)=\"_handleListScroll($event)\" #listContainer>\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul>\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\"> </ng-container>\n <ng-template #tmpTree let-list=\"list\">\n <ng-container *ngFor=\"let item of list; let i = index; trackBy: _trackByFunction\">\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\n <li class=\"ax-list-item\" (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, direction: direction }\">\n </ng-container>\n </li>\n </ng-container>\n <ng-template #defualtTemplate>\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <ul *ngIf=\"item.children?.length > 0\">\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n </ng-container>\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item)\"></span>\n </li>\n </ng-container>\n <ng-template #multipleTemplate>\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [class.ax-state-checkbox]=\"checkbox\"\n [attr.tabindex]=\"i\" (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span>\n <input class=\"ax-checkbox\" type=\"checkbox\" [class.ax-state-disabled]=\"isItemDisabled(item)\"\n *ngIf=\"checkbox\" [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\" />\n <span class=\"ax-checkbox-label\">{{ _getItemDisplayTextTemplte(item) }}</span>\n </span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\"\n *ngIf=\"isItemSelected(item) && !checkbox\"></span>\n </li>\n </ng-template>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-template>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseLoadingTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [context]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\" [innerHTML]=\"\n 'common.no-result-for'\n | trans\n : {\n exp: this._searchBox ? this._searchBox.value : ''\n }\n \"></div>\n </ng-template>\n </ng-container>\n </ng-template>\n </div>\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\n >\n \n </div> -->\n <!-- <div class=\"ax-footer\">footer</div> -->\n </div>\n </div>\n</ax-popover>", styles: ["ax-select-box .ax-select-multi-item{display:flex;align-items:center;padding:.25rem .5rem;background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore));border-radius:var(--ax-rounded-border-default);margin-inline-end:.5rem}ax-select-box .ax-select-multi-item .ax-icon-close{cursor:pointer;margin-inline-start:.5rem}ax-select-box .ax-select-box-selection{display:flex;justify-content:center;align-items:center;outline-color:transparent;outline:transparent;-webkit-user-select:none;user-select:none}ax-select-box .ax-select-box-selection>span{padding-inline-start:1rem;padding-inline-end:.75rem;white-space:nowrap}ax-select-box .ax-select-box-selection .ax-selectbox-input{opacity:0;width:0}ax-select-box .ax-select-box-multi-selection{padding:0 .5rem;display:flex;justify-content:center;align-items:center}ax-select-box .ax-placeholder{padding-inline-start:1rem;padding-inline-end:.75rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title , ax-sub-title" }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "directive", type: i6.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
324
324
|
}
|
325
325
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXSelectBoxComponent, decorators: [{
|
326
326
|
type: Component,
|
@@ -352,7 +352,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
|
|
352
352
|
{ provide: AXClosbaleComponent, useExisting: AXSelectBoxComponent },
|
353
353
|
{ provide: AXSearchableComponent, useExisting: AXSelectBoxComponent },
|
354
354
|
{ provide: AXValuableComponent, useExisting: AXSelectBoxComponent },
|
355
|
-
],
|
355
|
+
], template: "<ng-content select=\"ax-prefix\"> </ng-content>\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\n <div class=\"ax-select-box-selection\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\"\n (blur)=\"_emitOnBlurEvent($event)\">\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\n <ng-template #singleSelectedTemplate>\n <ng-container *ngFor=\"let item of selectedItems\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n </ng-container>\n </ng-template>\n <ng-template #multipleSelectedTemplate>\n <div class=\"ax-select-box-multi-selection\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <div class=\"ax-select-multi-item\">\n {{ _getItemDisplayTextTemplte(item) }}\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #showPlaceholder>\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n </ng-template>\n </div>\n</div>\n<button type=\"button\" class=\"ax-general-button ax-button-icon\" (click)=\"clear()\" [tabIndex]=\"-1\"\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\n <span class=\"ax-icon ax-icon-close\"></span>\n</button>\n<button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-general-button ax-button-icon\"\n (click)=\"_handleArrowClickEvent($event)\">\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\n <ax-loading type=\"spinner\"></ax-loading>\n </ng-container>\n <ng-template #iconTemplate>\n <span class=\"ax-icon ax-icon-chevron-left ax-transition-all\" [ngClass]=\"{\n '-ax-rotation-90': !isOpen,\n 'ax-rotation-90': isOpen\n }\"></span>\n </ng-template>\n</button>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<ng-content select=\"ax-suffix\"> </ng-content>\n<ax-popover [target]=\"_target\" [placement]=\"position\" [openOn]=\"'manual'\" [closeOn]=\"'clickout'\"\n [adaptivityEnabled]=\"true\" (onOpened)=\"_handlePopupOnOpened($event)\" (onClosed)=\"_handlePopupOnClosed($event)\">\n <div class=\"ax-overlay-pane\" (keydown)=\"_handlePopoverKeydown($event)\" tabindex=\"0\" aria-modal=\"true\" cdkTrapFocus\n [class.ax-overlay-actionsheet]=\"_isActionSheet\" [class.ax-full]=\"_searchBox || isLazy\"\n [style.min-width.px]=\"_popoverWidth\">\n <div class=\"ax-list\">\n <ax-header *ngIf=\"_isActionSheet\">\n <ax-title>{{ _popoverTitle }}</ax-title>\n <ax-close-button class=\"ax-icon\"\n [icon]=\"multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\"></ax-close-button>\n </ax-header>\n <div class=\"ax-search-box-container\" [class.ax-state-hidden]=\"!_searchBox\" [cdkTrapFocus]=\"_searchBox != null\">\n <ng-content select=\"ax-search-box\"></ng-content>\n </div>\n <div class=\"ax-content ax-list-items-container ax-default\" (scroll)=\"_handleListScroll($event)\" #listContainer>\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul>\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\"> </ng-container>\n <ng-template #tmpTree let-list=\"list\">\n <ng-container *ngFor=\"let item of list; let i = index; trackBy: _trackByFunction\">\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\n <li class=\"ax-list-item\" (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, direction: direction }\">\n </ng-container>\n </li>\n </ng-container>\n <ng-template #defualtTemplate>\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <ul *ngIf=\"item.children?.length > 0\">\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n </ng-container>\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item)\"></span>\n </li>\n </ng-container>\n <ng-template #multipleTemplate>\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [class.ax-state-checkbox]=\"checkbox\"\n [attr.tabindex]=\"i\" (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span>\n <input class=\"ax-checkbox\" type=\"checkbox\" [class.ax-state-disabled]=\"isItemDisabled(item)\"\n *ngIf=\"checkbox\" [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\" />\n <span class=\"ax-checkbox-label\">{{ _getItemDisplayTextTemplte(item) }}</span>\n </span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\"\n *ngIf=\"isItemSelected(item) && !checkbox\"></span>\n </li>\n </ng-template>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-template>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseLoadingTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [context]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\" [innerHTML]=\"\n 'common.no-result-for'\n | trans\n : {\n exp: this._searchBox ? this._searchBox.value : ''\n }\n \"></div>\n </ng-template>\n </ng-container>\n </ng-template>\n </div>\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\n >\n \n </div> -->\n <!-- <div class=\"ax-footer\">footer</div> -->\n </div>\n </div>\n</ax-popover>", styles: ["ax-select-box .ax-select-multi-item{display:flex;align-items:center;padding:.25rem .5rem;background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore));border-radius:var(--ax-rounded-border-default);margin-inline-end:.5rem}ax-select-box .ax-select-multi-item .ax-icon-close{cursor:pointer;margin-inline-start:.5rem}ax-select-box .ax-select-box-selection{display:flex;justify-content:center;align-items:center;outline-color:transparent;outline:transparent;-webkit-user-select:none;user-select:none}ax-select-box .ax-select-box-selection>span{padding-inline-start:1rem;padding-inline-end:.75rem;white-space:nowrap}ax-select-box .ax-select-box-selection .ax-selectbox-input{opacity:0;width:0}ax-select-box .ax-select-box-multi-selection{padding:0 .5rem;display:flex;justify-content:center;align-items:center}ax-select-box .ax-placeholder{padding-inline-start:1rem;padding-inline-end:.75rem}\n"] }]
|
356
356
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.AXPlatform }]; }, propDecorators: { popover: [{
|
357
357
|
type: ViewChild,
|
358
358
|
args: [AXPopoverComponent, { static: true }]
|
@@ -372,6 +372,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
|
|
372
372
|
}], _handleKeydown: [{
|
373
373
|
type: HostListener,
|
374
374
|
args: ['keydown', ['$event']]
|
375
|
+
}], __hostClass: [{
|
376
|
+
type: HostBinding,
|
377
|
+
args: ['class']
|
375
378
|
}] } });
|
376
379
|
|
377
380
|
class AXSelectBoxModule {
|
@@ -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 { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslator } from '@acorex/core/translation';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n HostListener,\n Input,\n NgZone,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { findLast, findLastIndex, first, last, nth } from 'lodash-es';\nimport { AXClosbaleComponent, AXSearchableComponent, AXValuableComponent } from '@acorex/components/common';\n\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { AXSearchBoxComponent } from '@acorex/components/search-box';\nimport { AXBaseSelectionDropdownMixin } from '@acorex/components/mixin';\n\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 'isOpen',\n 'fitParent',\n 'dropdownWidth',\n 'position',\n 'disabled',\n 'tabIndex',\n 'allowNull',\n 'value',\n 'name',\n 'checked',\n 'placeholder',\n 'maxLength',\n 'type',\n 'autoComplete',\n 'readonly',\n 'pageSize',\n 'items',\n 'valueField',\n 'textField',\n 'disabledField',\n 'disabledCallback',\n 'multiple',\n 'selectionMode',\n ],\n outputs: ['onOpened', 'onClosed', 'onBlur', 'onFocus', 'valueChange', 'onValueChanged'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: AXClosbaleComponent, useExisting: AXSelectBoxComponent },\n { provide: AXSearchableComponent, useExisting: AXSelectBoxComponent },\n { provide: AXValuableComponent, useExisting: AXSelectBoxComponent },\n ],\n host: { class: 'ax-editor-container ax-drop-down' },\n})\nexport class AXSelectBoxComponent extends AXBaseSelectionDropdownMixin {\n @ViewChild(AXPopoverComponent, { static: true })\n popover: AXPopoverComponent;\n\n @ContentChild(AXSearchBoxComponent, { static: true })\n _searchBox: AXSearchBoxComponent;\n\n _target: HTMLDivElement;\n _popoverTitle: string;\n _popoverWidth: number;\n\n /**\n * Defines the clearButton.\n */\n @Input()\n clearButton = false;\n\n /**\n * Defines the checkbox.\n */\n @Input()\n checkbox = false;\n\n @ViewChild('listContainer', { static: true })\n private listContainer: ElementRef<HTMLDivElement>;\n\n @ContentChild('emptyTemplate')\n private _contentEmptyTemplate: TemplateRef<any>;\n\n get emptyTemplate(): TemplateRef<any> {\n return this._contentEmptyTemplate;\n }\n\n _isActionSheet = false;\n _forceFocus = false;\n\n protected _loadingOptions = {\n text: AXTranslator.get('layout.loading.text'),\n };\n /**\n * @ignore\n */\n constructor(\n private _elementRef: ElementRef<HTMLDivElement>,\n private _cdr: ChangeDetectorRef,\n private _zone: NgZone,\n private _platform: AXPlatform\n ) {\n super(_elementRef, _cdr);\n this._isActionSheet = this._platform.is('SM');\n this._platform.resize.subscribe(() => {\n this._isActionSheet = this._platform.is('SM');\n this.popover.close();\n this._detectPopupSize();\n });\n }\n\n _handleArrowClickEvent(e: MouseEvent) {\n e.stopPropagation();\n // e.nativeEvent.stopPropagation();\n this.toggle();\n }\n\n _handleInputClickEvent(e: MouseEvent) {\n e.stopPropagation();\n this.toggle();\n }\n\n onInit() {\n super.onInit();\n this._target = this._elementRef.nativeElement;\n\n this._updatePopupTitle();\n }\n\n onViewInit() {\n super.onViewInit();\n this._detectPopupSize();\n }\n\n refresh() {\n this.value = null;\n super.refresh();\n }\n\n private _updatePopupTitle() {\n const count = this.selectedItems?.length || 0;\n //this._popoverTitle = count > 1 ? `(${count}) items selected` : (this.placeholder || AXTranslator.get('selectbox.popover.title'));\n this._popoverTitle = this.placeholder || AXTranslator.get('selectbox.popover.title');\n }\n\n private _detectPopupSize() {\n this._popoverWidth = this._isActionSheet ? 0 : this._target.offsetWidth;\n }\n\n _handleOnItemClick(e: MouseEvent, item: any) {\n if (this.isItemDisabled(item)) {\n return;\n }\n if (!this.multiple) this.close();\n this.toggleSelect(item);\n this._cdr.detectChanges();\n }\n\n _handleListScroll(e: Event) {\n const list = e.target as HTMLDivElement;\n if (list.scrollTop < list.scrollHeight - list.clientHeight) {\n return;\n }\n this._fetchData();\n }\n\n private _checkForLoadData() {\n const list: any = this.listContainer.nativeElement;\n if (\n this.loadedCount < this.totalCount &&\n list.scrollHeight < list.parentElement.clientHeight * 1.5\n ) {\n this._fetchData();\n }\n }\n\n _onDataLoaded() {\n if (this.popover.isOpen) {\n setTimeout(() => {\n this._checkForLoadData();\n this.popover.updatePosition();\n if (this._forceFocus) {\n this._focusSelectedItem();\n this._forceFocus = false;\n }\n this._focusSearchBox();\n }, 100);\n }\n }\n\n _onValueChanged(oldValue: any, newValue: any) {\n super._onValueChanged(oldValue, newValue);\n }\n\n _handleOnRemoveItemClick(e: MouseEvent, item: any) {\n this.unselectItems(item);\n e.stopPropagation();\n }\n\n _handleBadgeRemove(e: MouseEvent, item) {\n this.unselectItems(item);\n e.stopPropagation();\n this.close();\n }\n\n @HostListener('keydown', ['$event'])\n _handleKeydown(e: KeyboardEvent) {\n const isLetter = new RegExp(/[a-zA-Z0-9\\-]/).test(String.fromCharCode(e.keyCode));\n if (\n e.code === 'Backspace' &&\n e.type === 'keydown' &&\n ((this.allowNull === true && this.selectedItems.length > 0) ||\n (this.allowNull !== true && this.selectedItems.length > 1))\n ) {\n this.isUserInput = true;\n this.unselectItems(this.selectedItems.pop());\n e.preventDefault();\n return;\n } else if (\n (e.code === 'ArrowDown' || e.code === 'ArrowUp' || e.code === 'Space') &&\n !this.popover.isOpen &&\n e.type === 'keydown'\n ) {\n if (this.multiple) {\n this.open();\n } else {\n this.isUserInput = true;\n if (e.ctrlKey || e.code === 'Space') {\n this.open();\n } else {\n this._selectedItemByNav(e.key === 'ArrowDown' ? 1 : -1);\n }\n }\n e.preventDefault();\n return;\n } else if (isLetter) {\n this.text = e.key;\n this.open();\n e.preventDefault();\n return;\n }\n }\n\n _handlePopoverKeydown(e: KeyboardEvent) {\n if ((e.target as HTMLElement).tagName == 'INPUT' && ['Space', 'Backspace'].includes(e.code))\n return;\n if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.displayItems.length > 0) {\n this.isUserInput = true;\n this._focusItemByNav(e.key === 'ArrowDown' ? 1 : -1);\n e.preventDefault();\n } else if (\n e.code === 'Backspace' &&\n ((this.allowNull === true && this.selectedItems.length > 0) ||\n (this.allowNull !== true && this.selectedItems.length > 1))\n ) {\n this.isUserInput = true;\n this.unselectItems(this.selectedItems.pop());\n e.preventDefault();\n } else if (e.code === 'Space' || e.code === 'Enter') {\n e.preventDefault();\n const focusedItemId =\n this.listContainer.nativeElement.querySelector<HTMLElement>('.ax-state-focus')?.dataset?.id;\n const focusedItem = findLast(this.flatItems, [this.valueField, focusedItemId]);\n if (focusedItem) {\n if (this.isItemDisabled(focusedItem)) {\n return;\n }\n if (this.multiple) {\n this.isUserInput = true;\n this.toggleSelect(focusedItem);\n } else {\n this.isUserInput = true;\n this.selectItems(focusedItem);\n this.close();\n }\n }\n } else if (e.code === 'Tab') {\n this.close();\n e.preventDefault();\n e.stopPropagation();\n } else if (e.key === 'Escape') {\n this.close();\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n async _handlePopupOnOpened(e) {\n this._detectPopupSize();\n this.popover.focus();\n if (this.displayItems.length == 0) {\n this._forceFocus = true;\n this._fetchData();\n } else {\n this._focusSelectedItem();\n }\n this._focusSearchBox();\n }\n\n _handlePopupOnClosed(e) {\n this.focus();\n }\n\n private _focusSearchBox() {\n if (this._searchBox && (!this._isActionSheet || this._searchBox.value)) {\n this._searchBox.focus();\n }\n }\n\n private _focusItemByNav(sign: -1 | 1): void {\n const list = this.listContainer.nativeElement;\n const fn = (s) => list.querySelector<HTMLElement>(s);\n const itemDiv: any =\n fn(`.ax-list-item.ax-state-focus`) ||\n fn(`.ax-list-item.ax-state-selected`) ||\n fn(`.ax-list-item`);\n let next = (\n sign == 1 ? itemDiv.nextElementSibling : itemDiv.previousElementSibling\n ) as HTMLElement;\n if (next) {\n this._focusItemElement(next);\n } else {\n const parent = itemDiv.closest('.ax-list-item-group');\n if (parent) {\n const lis = (\n sign == 1 ? parent.nextElementSibling : parent.previousElementSibling\n )?.querySelectorAll('li');\n const a = sign == 1 ? first(lis) : last(lis);\n if (a) {\n this._focusItemElement(a as any);\n }\n }\n }\n }\n\n private _focusSelectedItem() {\n this._zone.runOutsideAngular(() => {\n const list = this.listContainer.nativeElement;\n const fn = (s) => list.querySelector<HTMLElement>(s);\n const itemDiv = fn(`.ax-list-item.ax-state-selected`) || fn(`.ax-list-item`);\n if (itemDiv) {\n this._focusItemElement(itemDiv);\n }\n });\n }\n\n private _focusItemElement(el: HTMLElement) {\n this._zone.runOutsideAngular(() => {\n const list = this.listContainer.nativeElement;\n list.querySelectorAll('.ax-list-item').forEach((c) => {\n if (c == el) {\n c.classList.add('ax-state-focus');\n el.scrollIntoView({ behavior: 'auto' });\n } else {\n c.classList.remove('ax-state-focus');\n }\n });\n if (!this._isActionSheet && this._searchBox) this._searchBox.focus();\n else el.focus();\n });\n }\n\n private _selectedItemByNav(sign: -1 | 1): void {\n const _last: any = last(this.selectedItems);\n let i = 0;\n if (_last) {\n i = findLastIndex(this.flatItems, [this.valueField, _last[this.valueField]]);\n }\n i += sign;\n let next = nth<any>(this.flatItems, i);\n while (next?.children && next?.children.length) {\n i += sign;\n next = nth<any>(this.flatItems, i);\n }\n if (next) {\n this.selectItems(next);\n } else if (next == null && sign == 1) {\n this._fetchData();\n }\n }\n\n search(exp: string) {\n this.empty();\n this._forceFocus = true;\n this._fetchData();\n }\n\n _fetchData() {\n super._fetchData({ searchQuery: this._searchBox?.value });\n }\n}\n","<ng-content select=\"ax-prefix\"> </ng-content>\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\n <div class=\"ax-select-box-selection\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\"\n (blur)=\"_emitOnBlurEvent($event)\">\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\n <ng-template #singleSelectedTemplate>\n <ng-container *ngFor=\"let item of selectedItems\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n </ng-container>\n </ng-template>\n <ng-template #multipleSelectedTemplate>\n <div class=\"ax-select-box-multi-selection\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <div class=\"ax-select-multi-item\">\n {{ _getItemDisplayTextTemplte(item) }}\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #showPlaceholder>\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n </ng-template>\n </div>\n</div>\n<button type=\"button\" class=\"ax-general-button ax-button-icon\" (click)=\"clear()\" [tabIndex]=\"-1\"\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\n <span class=\"ax-icon ax-icon-close\"></span>\n</button>\n<button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-general-button ax-button-icon\"\n (click)=\"_handleArrowClickEvent($event)\">\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\n <ax-loading type=\"spinner\"></ax-loading>\n </ng-container>\n <ng-template #iconTemplate>\n <span class=\"ax-icon ax-icon-chevron-left ax-transition-all\" [ngClass]=\"{\n '-ax-rotation-90': !isOpen,\n 'ax-rotation-90': isOpen\n }\"></span>\n </ng-template>\n</button>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<ng-content select=\"ax-suffix\"> </ng-content>\n<ax-popover [target]=\"_target\" [placement]=\"position\" [openOn]=\"'manual'\" [closeOn]=\"'clickout'\"\n [adaptivityEnabled]=\"true\" (onOpened)=\"_handlePopupOnOpened($event)\" (onClosed)=\"_handlePopupOnClosed($event)\">\n <div class=\"ax-overlay-pane\" (keydown)=\"_handlePopoverKeydown($event)\" tabindex=\"0\" aria-modal=\"true\" cdkTrapFocus\n [class.ax-overlay-actionsheet]=\"_isActionSheet\" [class.ax-full]=\"_searchBox || isLazy\"\n [style.min-width.px]=\"_popoverWidth\">\n <div class=\"ax-list\">\n <ax-header *ngIf=\"_isActionSheet\">\n <ax-title>{{ _popoverTitle }}</ax-title>\n <ax-close-button class=\"ax-icon\"\n [icon]=\"multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\"></ax-close-button>\n </ax-header>\n <div class=\"ax-search-box-container\" [class.ax-state-hidden]=\"!_searchBox\" [cdkTrapFocus]=\"_searchBox != null\">\n <ng-content select=\"ax-search-box\"></ng-content>\n </div>\n <div class=\"ax-content ax-list-items-container ax-default\" (scroll)=\"_handleListScroll($event)\" #listContainer>\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul>\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\"> </ng-container>\n <ng-template #tmpTree let-list=\"list\">\n <ng-container *ngFor=\"let item of list; let i = index; trackBy: _trackByFunction\">\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\n <li class=\"ax-list-item\" (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, direction: direction }\">\n </ng-container>\n </li>\n </ng-container>\n <ng-template #defualtTemplate>\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <ul *ngIf=\"item.children?.length > 0\">\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n </ng-container>\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item)\"></span>\n </li>\n </ng-container>\n <ng-template #multipleTemplate>\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [class.ax-state-checkbox]=\"checkbox\"\n [attr.tabindex]=\"i\" (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span>\n <input class=\"ax-checkbox\" type=\"checkbox\" [class.ax-state-disabled]=\"isItemDisabled(item)\"\n *ngIf=\"checkbox\" [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\" />\n <span class=\"ax-checkbox-label\">{{ _getItemDisplayTextTemplte(item) }}</span>\n </span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\"\n *ngIf=\"isItemSelected(item) && !checkbox\"></span>\n </li>\n </ng-template>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-template>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseLoadingTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [context]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\" [innerHTML]=\"\n 'common.no-result-for'\n | trans\n : {\n exp: this._searchBox ? this._searchBox.value : ''\n }\n \"></div>\n </ng-template>\n </ng-container>\n </ng-template>\n </div>\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\n >\n \n </div> -->\n <!-- <div class=\"ax-footer\">footer</div> -->\n </div>\n </div>\n</ax-popover>","import { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\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 { A11yModule } from '@angular/cdk/a11y';\n\nimport { AXSelectBoxComponent } from './select-box.component';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXCommonModule } from '@acorex/components/common';\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 ],\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 { AXClosbaleComponent, AXSearchableComponent, AXValuableComponent } from '@acorex/components/common';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslator } from '@acorex/core/translation';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n NgZone,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { findLast, findLastIndex, first, last, nth } from 'lodash-es';\n\nimport { AXBaseSelectionDropdownMixin } from '@acorex/components/mixin';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { AXSearchBoxComponent } from '@acorex/components/search-box';\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 'isOpen',\n 'fitParent',\n 'dropdownWidth',\n 'position',\n 'disabled',\n 'tabIndex',\n 'allowNull',\n 'value',\n 'name',\n 'checked',\n 'placeholder',\n 'maxLength',\n 'type',\n 'autoComplete',\n 'readonly',\n 'pageSize',\n 'items',\n 'valueField',\n 'textField',\n 'disabledField',\n 'disabledCallback',\n 'multiple',\n 'selectionMode',\n ],\n outputs: ['onOpened', 'onClosed', 'onBlur', 'onFocus', 'valueChange', 'onValueChanged'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: AXClosbaleComponent, useExisting: AXSelectBoxComponent },\n { provide: AXSearchableComponent, useExisting: AXSelectBoxComponent },\n { provide: AXValuableComponent, useExisting: AXSelectBoxComponent },\n ],\n})\nexport class AXSelectBoxComponent extends AXBaseSelectionDropdownMixin {\n @ViewChild(AXPopoverComponent, { static: true })\n popover: AXPopoverComponent;\n\n @ContentChild(AXSearchBoxComponent, { static: true })\n _searchBox: AXSearchBoxComponent;\n\n _target: HTMLDivElement;\n _popoverTitle: string;\n _popoverWidth: number;\n\n /**\n * Defines the clearButton.\n */\n @Input()\n clearButton = false;\n\n /**\n * Defines the checkbox.\n */\n @Input()\n checkbox = false;\n\n @ViewChild('listContainer', { static: true })\n private listContainer: ElementRef<HTMLDivElement>;\n\n @ContentChild('emptyTemplate')\n private _contentEmptyTemplate: TemplateRef<any>;\n\n get emptyTemplate(): TemplateRef<any> {\n return this._contentEmptyTemplate;\n }\n\n _isActionSheet = false;\n _forceFocus = false;\n\n protected _loadingOptions = {\n text: AXTranslator.get('layout.loading.text'),\n };\n /**\n * @ignore\n */\n constructor(\n private _elementRef: ElementRef<HTMLDivElement>,\n private _cdr: ChangeDetectorRef,\n private _zone: NgZone,\n private _platform: AXPlatform,\n ) {\n super(_elementRef, _cdr);\n this._isActionSheet = this._platform.is('SM');\n this._platform.resize.subscribe(() => {\n this._isActionSheet = this._platform.is('SM');\n this.popover.close();\n this._detectPopupSize();\n });\n }\n\n _handleArrowClickEvent(e: MouseEvent) {\n e.stopPropagation();\n // e.nativeEvent.stopPropagation();\n this.toggle();\n }\n\n _handleInputClickEvent(e: MouseEvent) {\n e.stopPropagation();\n this.toggle();\n }\n\n onInit() {\n super.onInit();\n this._target = this._elementRef.nativeElement;\n\n this._updatePopupTitle();\n }\n\n onViewInit() {\n super.onViewInit();\n this._detectPopupSize();\n }\n\n refresh() {\n this.value = null;\n super.refresh();\n }\n\n private _updatePopupTitle() {\n const count = this.selectedItems?.length || 0;\n //this._popoverTitle = count > 1 ? `(${count}) items selected` : (this.placeholder || AXTranslator.get('selectbox.popover.title'));\n this._popoverTitle = this.placeholder || AXTranslator.get('selectbox.popover.title');\n }\n\n private _detectPopupSize() {\n this._popoverWidth = this._isActionSheet ? 0 : this._target.offsetWidth;\n }\n\n _handleOnItemClick(e: MouseEvent, item: any) {\n if (this.isItemDisabled(item)) {\n return;\n }\n if (!this.multiple) this.close();\n this.toggleSelect(item);\n this._cdr.detectChanges();\n }\n\n _handleListScroll(e: Event) {\n const list = e.target as HTMLDivElement;\n if (list.scrollTop < list.scrollHeight - list.clientHeight) {\n return;\n }\n this._fetchData();\n }\n\n private _checkForLoadData() {\n const list: any = this.listContainer.nativeElement;\n if (this.loadedCount < this.totalCount && list.scrollHeight < list.parentElement.clientHeight * 1.5) {\n this._fetchData();\n }\n }\n\n _onDataLoaded() {\n if (this.popover.isOpen) {\n setTimeout(() => {\n this._checkForLoadData();\n this.popover.updatePosition();\n if (this._forceFocus) {\n this._focusSelectedItem();\n this._forceFocus = false;\n }\n this._focusSearchBox();\n }, 100);\n }\n }\n\n _onValueChanged(oldValue: any, newValue: any) {\n super._onValueChanged(oldValue, newValue);\n }\n\n _handleOnRemoveItemClick(e: MouseEvent, item: any) {\n this.unselectItems(item);\n e.stopPropagation();\n }\n\n _handleBadgeRemove(e: MouseEvent, item) {\n this.unselectItems(item);\n e.stopPropagation();\n this.close();\n }\n\n @HostListener('keydown', ['$event'])\n _handleKeydown(e: KeyboardEvent) {\n const isLetter = new RegExp(/[a-zA-Z0-9\\-]/).test(String.fromCharCode(e.keyCode));\n if (\n e.code === 'Backspace' &&\n e.type === 'keydown' &&\n ((this.allowNull === true && this.selectedItems.length > 0) ||\n (this.allowNull !== true && this.selectedItems.length > 1))\n ) {\n this.isUserInput = true;\n this.unselectItems(this.selectedItems.pop());\n e.preventDefault();\n return;\n } else if (\n (e.code === 'ArrowDown' || e.code === 'ArrowUp' || e.code === 'Space') &&\n !this.popover.isOpen &&\n e.type === 'keydown'\n ) {\n if (this.multiple) {\n this.open();\n } else {\n this.isUserInput = true;\n if (e.ctrlKey || e.code === 'Space') {\n this.open();\n } else {\n this._selectedItemByNav(e.key === 'ArrowDown' ? 1 : -1);\n }\n }\n e.preventDefault();\n return;\n } else if (isLetter) {\n this.text = e.key;\n this.open();\n e.preventDefault();\n return;\n }\n }\n\n _handlePopoverKeydown(e: KeyboardEvent) {\n if ((e.target as HTMLElement).tagName == 'INPUT' && ['Space', 'Backspace'].includes(e.code)) return;\n if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.displayItems.length > 0) {\n this.isUserInput = true;\n this._focusItemByNav(e.key === 'ArrowDown' ? 1 : -1);\n e.preventDefault();\n } else if (\n e.code === 'Backspace' &&\n ((this.allowNull === true && this.selectedItems.length > 0) ||\n (this.allowNull !== true && this.selectedItems.length > 1))\n ) {\n this.isUserInput = true;\n this.unselectItems(this.selectedItems.pop());\n e.preventDefault();\n } else if (e.code === 'Space' || e.code === 'Enter') {\n e.preventDefault();\n const focusedItemId =\n this.listContainer.nativeElement.querySelector<HTMLElement>('.ax-state-focus')?.dataset?.id;\n const focusedItem = findLast(this.flatItems, [this.valueField, focusedItemId]);\n if (focusedItem) {\n if (this.isItemDisabled(focusedItem)) {\n return;\n }\n if (this.multiple) {\n this.isUserInput = true;\n this.toggleSelect(focusedItem);\n } else {\n this.isUserInput = true;\n this.selectItems(focusedItem);\n this.close();\n }\n }\n } else if (e.code === 'Tab') {\n this.close();\n e.preventDefault();\n e.stopPropagation();\n } else if (e.key === 'Escape') {\n this.close();\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n async _handlePopupOnOpened(e) {\n this._detectPopupSize();\n this.popover.focus();\n if (this.displayItems.length == 0) {\n this._forceFocus = true;\n this._fetchData();\n } else {\n this._focusSelectedItem();\n }\n this._focusSearchBox();\n }\n\n _handlePopupOnClosed(e) {\n this.focus();\n }\n\n private _focusSearchBox() {\n if (this._searchBox && (!this._isActionSheet || this._searchBox.value)) {\n this._searchBox.focus();\n }\n }\n\n private _focusItemByNav(sign: -1 | 1): void {\n const list = this.listContainer.nativeElement;\n const fn = (s) => list.querySelector<HTMLElement>(s);\n const itemDiv: any =\n fn(`.ax-list-item.ax-state-focus`) || fn(`.ax-list-item.ax-state-selected`) || fn(`.ax-list-item`);\n let next = (sign == 1 ? itemDiv.nextElementSibling : itemDiv.previousElementSibling) as HTMLElement;\n if (next) {\n this._focusItemElement(next);\n } else {\n const parent = itemDiv.closest('.ax-list-item-group');\n if (parent) {\n const lis = (sign == 1 ? parent.nextElementSibling : parent.previousElementSibling)?.querySelectorAll(\n 'li',\n );\n const a = sign == 1 ? first(lis) : last(lis);\n if (a) {\n this._focusItemElement(a as any);\n }\n }\n }\n }\n\n private _focusSelectedItem() {\n this._zone.runOutsideAngular(() => {\n const list = this.listContainer.nativeElement;\n const fn = (s) => list.querySelector<HTMLElement>(s);\n const itemDiv = fn(`.ax-list-item.ax-state-selected`) || fn(`.ax-list-item`);\n if (itemDiv) {\n this._focusItemElement(itemDiv);\n }\n });\n }\n\n private _focusItemElement(el: HTMLElement) {\n this._zone.runOutsideAngular(() => {\n const list = this.listContainer.nativeElement;\n list.querySelectorAll('.ax-list-item').forEach((c) => {\n if (c == el) {\n c.classList.add('ax-state-focus');\n el.scrollIntoView({ behavior: 'auto' });\n } else {\n c.classList.remove('ax-state-focus');\n }\n });\n if (!this._isActionSheet && this._searchBox) this._searchBox.focus();\n else el.focus();\n });\n }\n\n private _selectedItemByNav(sign: -1 | 1): void {\n const _last: any = last(this.selectedItems);\n let i = 0;\n if (_last) {\n i = findLastIndex(this.flatItems, [this.valueField, _last[this.valueField]]);\n }\n i += sign;\n let next = nth<any>(this.flatItems, i);\n while (next?.children && next?.children.length) {\n i += sign;\n next = nth<any>(this.flatItems, i);\n }\n if (next) {\n this.selectItems(next);\n } else if (next == null && sign == 1) {\n this._fetchData();\n }\n }\n\n search(exp: string) {\n this.empty();\n this._forceFocus = true;\n this._fetchData();\n }\n\n _fetchData() {\n super._fetchData({ searchQuery: this._searchBox?.value });\n }\n\n @HostBinding('class')\n get __hostClass(): string {\n return `ax-editor-container ax-drop-down ax-appearance-solid`;\n }\n}\n","<ng-content select=\"ax-prefix\"> </ng-content>\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\n <div class=\"ax-select-box-selection\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\"\n (blur)=\"_emitOnBlurEvent($event)\">\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\n <ng-template #singleSelectedTemplate>\n <ng-container *ngFor=\"let item of selectedItems\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n </ng-container>\n </ng-template>\n <ng-template #multipleSelectedTemplate>\n <div class=\"ax-select-box-multi-selection\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <div class=\"ax-select-multi-item\">\n {{ _getItemDisplayTextTemplte(item) }}\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #showPlaceholder>\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n </ng-template>\n </div>\n</div>\n<button type=\"button\" class=\"ax-general-button ax-button-icon\" (click)=\"clear()\" [tabIndex]=\"-1\"\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\n <span class=\"ax-icon ax-icon-close\"></span>\n</button>\n<button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-general-button ax-button-icon\"\n (click)=\"_handleArrowClickEvent($event)\">\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\n <ax-loading type=\"spinner\"></ax-loading>\n </ng-container>\n <ng-template #iconTemplate>\n <span class=\"ax-icon ax-icon-chevron-left ax-transition-all\" [ngClass]=\"{\n '-ax-rotation-90': !isOpen,\n 'ax-rotation-90': isOpen\n }\"></span>\n </ng-template>\n</button>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<ng-content select=\"ax-suffix\"> </ng-content>\n<ax-popover [target]=\"_target\" [placement]=\"position\" [openOn]=\"'manual'\" [closeOn]=\"'clickout'\"\n [adaptivityEnabled]=\"true\" (onOpened)=\"_handlePopupOnOpened($event)\" (onClosed)=\"_handlePopupOnClosed($event)\">\n <div class=\"ax-overlay-pane\" (keydown)=\"_handlePopoverKeydown($event)\" tabindex=\"0\" aria-modal=\"true\" cdkTrapFocus\n [class.ax-overlay-actionsheet]=\"_isActionSheet\" [class.ax-full]=\"_searchBox || isLazy\"\n [style.min-width.px]=\"_popoverWidth\">\n <div class=\"ax-list\">\n <ax-header *ngIf=\"_isActionSheet\">\n <ax-title>{{ _popoverTitle }}</ax-title>\n <ax-close-button class=\"ax-icon\"\n [icon]=\"multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\"></ax-close-button>\n </ax-header>\n <div class=\"ax-search-box-container\" [class.ax-state-hidden]=\"!_searchBox\" [cdkTrapFocus]=\"_searchBox != null\">\n <ng-content select=\"ax-search-box\"></ng-content>\n </div>\n <div class=\"ax-content ax-list-items-container ax-default\" (scroll)=\"_handleListScroll($event)\" #listContainer>\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul>\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\"> </ng-container>\n <ng-template #tmpTree let-list=\"list\">\n <ng-container *ngFor=\"let item of list; let i = index; trackBy: _trackByFunction\">\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\n <li class=\"ax-list-item\" (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, direction: direction }\">\n </ng-container>\n </li>\n </ng-container>\n <ng-template #defualtTemplate>\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <ul *ngIf=\"item.children?.length > 0\">\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n </ng-container>\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item)\"></span>\n </li>\n </ng-container>\n <ng-template #multipleTemplate>\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [class.ax-state-checkbox]=\"checkbox\"\n [attr.tabindex]=\"i\" (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span>\n <input class=\"ax-checkbox\" type=\"checkbox\" [class.ax-state-disabled]=\"isItemDisabled(item)\"\n *ngIf=\"checkbox\" [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\" />\n <span class=\"ax-checkbox-label\">{{ _getItemDisplayTextTemplte(item) }}</span>\n </span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\"\n *ngIf=\"isItemSelected(item) && !checkbox\"></span>\n </li>\n </ng-template>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-template>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseLoadingTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [context]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\" [innerHTML]=\"\n 'common.no-result-for'\n | trans\n : {\n exp: this._searchBox ? this._searchBox.value : ''\n }\n \"></div>\n </ng-template>\n </ng-container>\n </ng-template>\n </div>\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\n >\n \n </div> -->\n <!-- <div class=\"ax-footer\">footer</div> -->\n </div>\n </div>\n</ax-popover>","import { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\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 { A11yModule } from '@angular/cdk/a11y';\n\nimport { AXSelectBoxComponent } from './select-box.component';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXCommonModule } from '@acorex/components/common';\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 ],\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,9 +1,9 @@
|
|
1
|
-
import {
|
1
|
+
import { MXSelectionValueComponent, AXComponent, AXFocusableComponent, AXValuableComponent } from '@acorex/components/common';
|
2
2
|
import * as i0 from '@angular/core';
|
3
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';
|
3
|
+
import { forwardRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, HostBinding, NgModule } from '@angular/core';
|
4
|
+
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
4
5
|
import * as i1 from '@angular/common';
|
5
6
|
import { CommonModule } from '@angular/common';
|
6
|
-
import { FormsModule } from '@angular/forms';
|
7
7
|
import { AXCheckBoxModule } from '@acorex/components/check-box';
|
8
8
|
import { AXRadioModule } from '@acorex/components/radio';
|
9
9
|
import { AXLabelModule } from '@acorex/components/label';
|
@@ -15,16 +15,17 @@ import { AXFormModule } from '@acorex/components/form';
|
|
15
15
|
* @category Components
|
16
16
|
*/
|
17
17
|
//TODO: on parent click (card style) -> checkbox or radio change value
|
18
|
-
class AXSelectionListComponent extends
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
18
|
+
class AXSelectionListComponent extends MXSelectionValueComponent {
|
19
|
+
constructor() {
|
20
|
+
super(...arguments);
|
21
|
+
this._direction = 'horizontal';
|
22
|
+
this.appearance = 'solid';
|
23
|
+
}
|
24
|
+
get direction() {
|
25
|
+
return this._direction;
|
26
|
+
}
|
27
|
+
set direction(v) {
|
28
|
+
this._direction = v;
|
28
29
|
}
|
29
30
|
_handleOnItemValueChange(item, e) {
|
30
31
|
if (this.readonly || this.disabled) {
|
@@ -32,20 +33,27 @@ class AXSelectionListComponent extends AXBaseSelectionValueMixin {
|
|
32
33
|
e.stopPropagation();
|
33
34
|
}
|
34
35
|
else {
|
35
|
-
e.target.checked
|
36
|
-
? this.selectItems(item)
|
37
|
-
: this.unselectItems(item);
|
36
|
+
e.target.checked ? this.selectItems(item) : this.unselectItems(item);
|
38
37
|
}
|
39
38
|
}
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
39
|
+
get __hostClass() {
|
40
|
+
return [
|
41
|
+
`ax-appearance-${this.appearance}`,
|
42
|
+
`${this.disabled ? 'ax-state-disabled' : ''}`,
|
43
|
+
`${this.readonly ? 'ax-state-readonly' : ''}`,
|
44
|
+
];
|
46
45
|
}
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXSelectionListComponent, deps:
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXSelectionListComponent, selector: "ax-selection-list", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", valueField: "valueField", textField: "textField",
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXSelectionListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXSelectionListComponent, selector: "ax-selection-list", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", valueField: "valueField", textField: "textField", hintField: "hintField", disabledField: "disabledField", readonlyField: "readonlyField", multiple: "multiple", items: "items", selectionMode: "selectionMode", direction: "direction", appearance: "appearance" }, outputs: { onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus" }, host: { properties: { "class": "this.__hostClass" } }, providers: [
|
48
|
+
{ provide: AXComponent, useExisting: AXSelectionListComponent },
|
49
|
+
{ provide: AXFocusableComponent, useExisting: AXSelectionListComponent },
|
50
|
+
{ provide: AXValuableComponent, useExisting: AXSelectionListComponent },
|
51
|
+
{
|
52
|
+
provide: NG_VALUE_ACCESSOR,
|
53
|
+
useExisting: forwardRef(() => AXSelectionListComponent),
|
54
|
+
multi: true,
|
55
|
+
},
|
56
|
+
], usesInheritance: true, ngImport: i0, template: "<ul class=\"ax-{{ direction }}\">\n <ng-container *ngFor=\"let item of displayItems; let i = index\">\n <li [class.ax-state-selected]=\"isItemSelected(item)\">\n <label>\n <ng-container *ngIf=\"multiple; then checkboxList; else radioButtonList\"></ng-container>\n <ng-template #checkboxList>\n <input\n #ic\n [id]=\"id + '-' + i\"\n class=\"ax-checkbox\"\n type=\"checkbox\"\n (change)=\"_handleOnItemValueChange(item, $event)\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"disabled || item[disabledField]\"\n [readOnly]=\"readonly || item[readonlyField]\"\n />\n </ng-template>\n <ng-template #radioButtonList>\n <input\n #ir\n [id]=\"id + '-' + i\"\n class=\"ax-radio\"\n type=\"radio\"\n [attr.name]=\"id\"\n (change)=\"_handleOnItemValueChange(item, $event)\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"disabled || item[disabledField]\"\n [readOnly]=\"readonly || item[readonlyField]\"\n />\n </ng-template>\n <div>\n {{ item[textField] }}\n <p class=\"ax-hint-text\" *ngIf=\"item[hintField]\">\n {{ item[hintField] }}\n </p>\n </div>\n </label>\n </li>\n </ng-container>\n</ul>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", styles: [".ax-dark .ax-card-style .ax-selection-list.ax-vertical>div,.ax-dark .ax-card-style .ax-selection-list.ax-horizontal>div{background-color:rgba(var(--ax-color-surface))}ax-selection-list.ax-appearance-divided ul.ax-vertical li:last-child label,ax-selection-list.ax-appearance-divided ul.ax-horizontal li:last-child label{border:none}ax-selection-list.ax-appearance-divided ul.ax-vertical>li label{padding-bottom:.875rem;border-bottom:1px solid;border-color:rgba(var(--ax-color-border-default))}ax-selection-list.ax-appearance-divided ul.ax-horizontal>li label{border-inline-end:1px solid;border-color:rgba(var(--ax-color-border-default))}ax-selection-list.ax-appearance-card ul{gap:.75rem}ax-selection-list.ax-appearance-card ul.ax-vertical>li label,ax-selection-list.ax-appearance-card ul.ax-horizontal>li label{border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default)}ax-selection-list.ax-appearance-card ul.ax-vertical>li.ax-state-selected label,ax-selection-list.ax-appearance-card ul.ax-horizontal>li.ax-state-selected label{border-color:rgba(var(--ax-color-primary-500))}ax-selection-list.ax-state-disabled{cursor:not-allowed}ax-selection-list ul{display:flex;flex-wrap:wrap}ax-selection-list ul.ax-vertical{flex-direction:column}ax-selection-list ul.ax-horizontal{flex-direction:row}ax-selection-list ul li{cursor:pointer}ax-selection-list ul li label{display:flex;flex-direction:row;align-items:flex-start;cursor:inherit;padding:.75rem}ax-selection-list ul li label .ax-checkbox,ax-selection-list ul li label .ax-radio{margin-block-start:.15rem}ax-selection-list ul li label>div{font-weight:400;font-size:.875rem;margin-inline-start:.75rem}ax-selection-list ul li label>div .ax-hint-text{font-weight:500;color:rgba(var(--ax-color-text-default),.5)}ax-selection-list.ax-state-error{color:rgba(var(--ax-color-danger-500))}ax-selection-list.ax-state-error .ax-checkbox-checkmark,ax-selection-list.ax-state-error .ax-radio-checkmark{border-color:rgba(var(--ax-color-danger-500))}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
49
57
|
}
|
50
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXSelectionListComponent, decorators: [{
|
51
59
|
type: Component,
|
@@ -57,12 +65,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
|
|
57
65
|
'value',
|
58
66
|
'valueField',
|
59
67
|
'textField',
|
68
|
+
'hintField',
|
69
|
+
'disabledField',
|
70
|
+
'readonlyField',
|
60
71
|
'multiple',
|
61
72
|
'items',
|
62
73
|
'selectionMode',
|
63
|
-
], outputs: ['
|
64
|
-
|
74
|
+
], outputs: ['onValueChanged', 'onBlur', 'onFocus'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
75
|
+
{ provide: AXComponent, useExisting: AXSelectionListComponent },
|
76
|
+
{ provide: AXFocusableComponent, useExisting: AXSelectionListComponent },
|
77
|
+
{ provide: AXValuableComponent, useExisting: AXSelectionListComponent },
|
78
|
+
{
|
79
|
+
provide: NG_VALUE_ACCESSOR,
|
80
|
+
useExisting: forwardRef(() => AXSelectionListComponent),
|
81
|
+
multi: true,
|
82
|
+
},
|
83
|
+
], template: "<ul class=\"ax-{{ direction }}\">\n <ng-container *ngFor=\"let item of displayItems; let i = index\">\n <li [class.ax-state-selected]=\"isItemSelected(item)\">\n <label>\n <ng-container *ngIf=\"multiple; then checkboxList; else radioButtonList\"></ng-container>\n <ng-template #checkboxList>\n <input\n #ic\n [id]=\"id + '-' + i\"\n class=\"ax-checkbox\"\n type=\"checkbox\"\n (change)=\"_handleOnItemValueChange(item, $event)\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"disabled || item[disabledField]\"\n [readOnly]=\"readonly || item[readonlyField]\"\n />\n </ng-template>\n <ng-template #radioButtonList>\n <input\n #ir\n [id]=\"id + '-' + i\"\n class=\"ax-radio\"\n type=\"radio\"\n [attr.name]=\"id\"\n (change)=\"_handleOnItemValueChange(item, $event)\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"disabled || item[disabledField]\"\n [readOnly]=\"readonly || item[readonlyField]\"\n />\n </ng-template>\n <div>\n {{ item[textField] }}\n <p class=\"ax-hint-text\" *ngIf=\"item[hintField]\">\n {{ item[hintField] }}\n </p>\n </div>\n </label>\n </li>\n </ng-container>\n</ul>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", styles: [".ax-dark .ax-card-style .ax-selection-list.ax-vertical>div,.ax-dark .ax-card-style .ax-selection-list.ax-horizontal>div{background-color:rgba(var(--ax-color-surface))}ax-selection-list.ax-appearance-divided ul.ax-vertical li:last-child label,ax-selection-list.ax-appearance-divided ul.ax-horizontal li:last-child label{border:none}ax-selection-list.ax-appearance-divided ul.ax-vertical>li label{padding-bottom:.875rem;border-bottom:1px solid;border-color:rgba(var(--ax-color-border-default))}ax-selection-list.ax-appearance-divided ul.ax-horizontal>li label{border-inline-end:1px solid;border-color:rgba(var(--ax-color-border-default))}ax-selection-list.ax-appearance-card ul{gap:.75rem}ax-selection-list.ax-appearance-card ul.ax-vertical>li label,ax-selection-list.ax-appearance-card ul.ax-horizontal>li label{border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default)}ax-selection-list.ax-appearance-card ul.ax-vertical>li.ax-state-selected label,ax-selection-list.ax-appearance-card ul.ax-horizontal>li.ax-state-selected label{border-color:rgba(var(--ax-color-primary-500))}ax-selection-list.ax-state-disabled{cursor:not-allowed}ax-selection-list ul{display:flex;flex-wrap:wrap}ax-selection-list ul.ax-vertical{flex-direction:column}ax-selection-list ul.ax-horizontal{flex-direction:row}ax-selection-list ul li{cursor:pointer}ax-selection-list ul li label{display:flex;flex-direction:row;align-items:flex-start;cursor:inherit;padding:.75rem}ax-selection-list ul li label .ax-checkbox,ax-selection-list ul li label .ax-radio{margin-block-start:.15rem}ax-selection-list ul li label>div{font-weight:400;font-size:.875rem;margin-inline-start:.75rem}ax-selection-list ul li label>div .ax-hint-text{font-weight:500;color:rgba(var(--ax-color-text-default),.5)}ax-selection-list.ax-state-error{color:rgba(var(--ax-color-danger-500))}ax-selection-list.ax-state-error .ax-checkbox-checkmark,ax-selection-list.ax-state-error .ax-radio-checkmark{border-color:rgba(var(--ax-color-danger-500))}\n"] }]
|
84
|
+
}], propDecorators: { direction: [{
|
85
|
+
type: Input
|
86
|
+
}], appearance: [{
|
65
87
|
type: Input
|
88
|
+
}], __hostClass: [{
|
89
|
+
type: HostBinding,
|
90
|
+
args: ['class']
|
66
91
|
}] } });
|
67
92
|
|
68
93
|
class AXSelectionListModule {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-selection-list.mjs","sources":["../../../../libs/components/selection-list/src/lib/selection-list.component.ts","../../../../libs/components/selection-list/src/lib/selection-list.component.html","../../../../libs/components/selection-list/src/lib/selection-list.module.ts","../../../../libs/components/selection-list/src/acorex-components-selection-list.ts"],"sourcesContent":["import {
|
1
|
+
{"version":3,"file":"acorex-components-selection-list.mjs","sources":["../../../../libs/components/selection-list/src/lib/selection-list.component.ts","../../../../libs/components/selection-list/src/lib/selection-list.component.html","../../../../libs/components/selection-list/src/lib/selection-list.module.ts","../../../../libs/components/selection-list/src/acorex-components-selection-list.ts"],"sourcesContent":["import {\n AXComponent,\n AXDirection,\n AXFocusableComponent,\n AXValuableComponent,\n MXSelectionValueComponent,\n} from '@acorex/components/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport type AXSelectionListAppearance = 'solid' | 'divided' | 'card';\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-selection-list',\n templateUrl: './selection-list.component.html',\n styleUrls: ['./selection-list.component.scss'],\n inputs: [\n 'disabled',\n 'readonly',\n 'tabIndex',\n 'size',\n 'value',\n 'valueField',\n 'textField',\n 'hintField',\n 'disabledField',\n 'readonlyField',\n 'multiple',\n 'items',\n 'selectionMode',\n ],\n outputs: ['onValueChanged', 'onBlur', 'onFocus'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: AXComponent, useExisting: AXSelectionListComponent },\n { provide: AXFocusableComponent, useExisting: AXSelectionListComponent },\n { provide: AXValuableComponent, useExisting: AXSelectionListComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXSelectionListComponent),\n multi: true,\n },\n ],\n})\n\n//TODO: on parent click (card style) -> checkbox or radio change value\nexport class AXSelectionListComponent extends MXSelectionValueComponent {\n private _direction: AXDirection = 'horizontal';\n @Input()\n public get direction(): AXDirection {\n return this._direction;\n }\n public set direction(v: AXDirection) {\n this._direction = v;\n }\n\n @Input() appearance: AXSelectionListAppearance = 'solid';\n\n protected _handleOnItemValueChange(item: any, e: Event) {\n if (this.readonly || this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n } else {\n (e.target as any).checked ? this.selectItems(item) : this.unselectItems(item);\n }\n }\n\n @HostBinding('class')\n private get __hostClass(): string[] {\n return [\n `ax-appearance-${this.appearance}`,\n `${this.disabled ? 'ax-state-disabled' : ''}`,\n `${this.readonly ? 'ax-state-readonly' : ''}`,\n ];\n }\n}\n","<ul class=\"ax-{{ direction }}\">\n <ng-container *ngFor=\"let item of displayItems; let i = index\">\n <li [class.ax-state-selected]=\"isItemSelected(item)\">\n <label>\n <ng-container *ngIf=\"multiple; then checkboxList; else radioButtonList\"></ng-container>\n <ng-template #checkboxList>\n <input\n #ic\n [id]=\"id + '-' + i\"\n class=\"ax-checkbox\"\n type=\"checkbox\"\n (change)=\"_handleOnItemValueChange(item, $event)\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"disabled || item[disabledField]\"\n [readOnly]=\"readonly || item[readonlyField]\"\n />\n </ng-template>\n <ng-template #radioButtonList>\n <input\n #ir\n [id]=\"id + '-' + i\"\n class=\"ax-radio\"\n type=\"radio\"\n [attr.name]=\"id\"\n (change)=\"_handleOnItemValueChange(item, $event)\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"disabled || item[disabledField]\"\n [readOnly]=\"readonly || item[readonlyField]\"\n />\n </ng-template>\n <div>\n {{ item[textField] }}\n <p class=\"ax-hint-text\" *ngIf=\"item[hintField]\">\n {{ item[hintField] }}\n </p>\n </div>\n </label>\n </li>\n </ng-container>\n</ul>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXSelectionListComponent } from './selection-list.component';\nimport { FormsModule } from '@angular/forms';\n\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXRadioModule } from '@acorex/components/radio';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXFormModule } from '@acorex/components/form';\n\n@NgModule({\n declarations: [AXSelectionListComponent],\n imports: [CommonModule, FormsModule, AXCheckBoxModule, AXRadioModule, AXLabelModule, AXFormModule],\n exports: [AXSelectionListComponent],\n providers: []\n})\nexport class AXSelectionListModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|