nexheal-lib 0.0.67 → 0.0.69
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/fesm2022/nexheal-lib.mjs +87 -28
- package/fesm2022/nexheal-lib.mjs.map +1 -1
- package/index.d.ts +14 -2
- package/package.json +1 -1
package/fesm2022/nexheal-lib.mjs
CHANGED
|
@@ -3074,8 +3074,12 @@ class PaginatedAutocompleteControl {
|
|
|
3074
3074
|
paginationType = 'scroll';
|
|
3075
3075
|
pageSize = 10;
|
|
3076
3076
|
searchDebounce = 300;
|
|
3077
|
-
/**
|
|
3078
|
-
|
|
3077
|
+
/**
|
|
3078
|
+
* Omit: search runs only from the search icon (and Enter). Set a number: type-to-search
|
|
3079
|
+
* with that minimum trimmed length (empty search still loads the full list). Pass 0 for
|
|
3080
|
+
* type-to-search with no minimum.
|
|
3081
|
+
*/
|
|
3082
|
+
minSearchLength;
|
|
3079
3083
|
/** Re-fetch page 1 every time the dropdown opens, instead of reusing cached results */
|
|
3080
3084
|
refreshOnOpen = false;
|
|
3081
3085
|
/** Total record count for the current search, from the API response */
|
|
@@ -3130,12 +3134,15 @@ class PaginatedAutocompleteControl {
|
|
|
3130
3134
|
this._disabled = value;
|
|
3131
3135
|
if (this.inputControl) {
|
|
3132
3136
|
if (value) {
|
|
3133
|
-
this.inputControl.disable();
|
|
3137
|
+
this.inputControl.disable({ emitEvent: false });
|
|
3134
3138
|
}
|
|
3135
3139
|
else {
|
|
3136
|
-
this.inputControl.enable();
|
|
3140
|
+
this.inputControl.enable({ emitEvent: false });
|
|
3137
3141
|
}
|
|
3138
3142
|
}
|
|
3143
|
+
if (value) {
|
|
3144
|
+
this.onControlDisabled();
|
|
3145
|
+
}
|
|
3139
3146
|
}
|
|
3140
3147
|
pageChange = new EventEmitter();
|
|
3141
3148
|
optionSelected = new EventEmitter();
|
|
@@ -3177,6 +3184,14 @@ class PaginatedAutocompleteControl {
|
|
|
3177
3184
|
get pageRangeEnd() {
|
|
3178
3185
|
return Math.min((this.currentPage - 1) * this.pageSize + this._displayedOptions.length, this.totalCount);
|
|
3179
3186
|
}
|
|
3187
|
+
/** Disabled via @Input or reactive forms (ControlValueAccessor). */
|
|
3188
|
+
get controlDisabled() {
|
|
3189
|
+
return this._disabled || this.inputControl.disabled;
|
|
3190
|
+
}
|
|
3191
|
+
/** `minSearchLength` omitted — API only via search icon / Enter, not while typing. */
|
|
3192
|
+
get searchOnButtonOnly() {
|
|
3193
|
+
return this.minSearchLength === undefined;
|
|
3194
|
+
}
|
|
3180
3195
|
constructor() { }
|
|
3181
3196
|
ngOnInit() {
|
|
3182
3197
|
this.inputControl.markAsPristine();
|
|
@@ -3188,8 +3203,12 @@ class PaginatedAutocompleteControl {
|
|
|
3188
3203
|
// A selection happened after this keystroke — drop the search
|
|
3189
3204
|
if (this.cancelPendingSearch)
|
|
3190
3205
|
return;
|
|
3191
|
-
if (this.
|
|
3206
|
+
if (this.searchOnButtonOnly ||
|
|
3207
|
+
this.readonly ||
|
|
3208
|
+
this.controlDisabled ||
|
|
3209
|
+
!this.hasFocus) {
|
|
3192
3210
|
return;
|
|
3211
|
+
}
|
|
3193
3212
|
this.loadPage(1, value);
|
|
3194
3213
|
}));
|
|
3195
3214
|
}
|
|
@@ -3237,16 +3256,23 @@ class PaginatedAutocompleteControl {
|
|
|
3237
3256
|
this.onTouched = fn;
|
|
3238
3257
|
}
|
|
3239
3258
|
setDisabledState(isDisabled) {
|
|
3259
|
+
this._disabled = isDisabled;
|
|
3240
3260
|
if (isDisabled) {
|
|
3241
|
-
this.inputControl.disable();
|
|
3261
|
+
this.inputControl.disable({ emitEvent: false });
|
|
3262
|
+
this.onControlDisabled();
|
|
3242
3263
|
}
|
|
3243
3264
|
else {
|
|
3244
|
-
this.inputControl.enable();
|
|
3265
|
+
this.inputControl.enable({ emitEvent: false });
|
|
3245
3266
|
}
|
|
3246
3267
|
}
|
|
3268
|
+
onControlDisabled() {
|
|
3269
|
+
this.isPageLoading = false;
|
|
3270
|
+
this.isDropdownOpen = false;
|
|
3271
|
+
this.hasFocus = false;
|
|
3272
|
+
}
|
|
3247
3273
|
// paging
|
|
3248
3274
|
isSearchAllowed(search) {
|
|
3249
|
-
if (this.minSearchLength <= 0) {
|
|
3275
|
+
if (this.minSearchLength == null || this.minSearchLength <= 0) {
|
|
3250
3276
|
return true;
|
|
3251
3277
|
}
|
|
3252
3278
|
const trimmed = search.trim();
|
|
@@ -3267,6 +3293,10 @@ class PaginatedAutocompleteControl {
|
|
|
3267
3293
|
this.highlightedIndex = null;
|
|
3268
3294
|
}
|
|
3269
3295
|
loadPage(page, search) {
|
|
3296
|
+
if (this.readonly || this.controlDisabled) {
|
|
3297
|
+
this.isPageLoading = false;
|
|
3298
|
+
return;
|
|
3299
|
+
}
|
|
3270
3300
|
if (page === 1 && !this.isSearchAllowed(search)) {
|
|
3271
3301
|
this.handleSearchBelowMinLength();
|
|
3272
3302
|
return;
|
|
@@ -3386,7 +3416,7 @@ class PaginatedAutocompleteControl {
|
|
|
3386
3416
|
}
|
|
3387
3417
|
// events
|
|
3388
3418
|
onUserType(event) {
|
|
3389
|
-
if (this.readonly)
|
|
3419
|
+
if (this.readonly || this.controlDisabled)
|
|
3390
3420
|
return;
|
|
3391
3421
|
// A real keystroke re-arms searching after any selection cancelled it
|
|
3392
3422
|
this.cancelPendingSearch = false;
|
|
@@ -3394,12 +3424,12 @@ class PaginatedAutocompleteControl {
|
|
|
3394
3424
|
}
|
|
3395
3425
|
onFocus() {
|
|
3396
3426
|
this.hasFocus = true;
|
|
3397
|
-
if (this.readonly || this.isDropdownOpen)
|
|
3427
|
+
if (this.readonly || this.controlDisabled || this.isDropdownOpen)
|
|
3398
3428
|
return;
|
|
3399
3429
|
this.openWithSearch();
|
|
3400
3430
|
}
|
|
3401
3431
|
onInputClick() {
|
|
3402
|
-
if (this.readonly || this.isDropdownOpen)
|
|
3432
|
+
if (this.readonly || this.controlDisabled || this.isDropdownOpen)
|
|
3403
3433
|
return;
|
|
3404
3434
|
if (this.hasFocus) {
|
|
3405
3435
|
this.openWithSearch();
|
|
@@ -3408,12 +3438,15 @@ class PaginatedAutocompleteControl {
|
|
|
3408
3438
|
onSearchIconClick(event) {
|
|
3409
3439
|
event.preventDefault();
|
|
3410
3440
|
event.stopPropagation();
|
|
3411
|
-
|
|
3441
|
+
this.inputElement?.nativeElement.focus();
|
|
3442
|
+
this.runSearchAction();
|
|
3443
|
+
}
|
|
3444
|
+
runSearchAction() {
|
|
3445
|
+
if (this.readonly || this.controlDisabled) {
|
|
3412
3446
|
return;
|
|
3413
3447
|
}
|
|
3414
3448
|
this.cancelPendingSearch = false;
|
|
3415
3449
|
this.hasFocus = true;
|
|
3416
|
-
this.inputElement?.nativeElement.focus();
|
|
3417
3450
|
this.loadPage(1, this.openSearchTerm());
|
|
3418
3451
|
}
|
|
3419
3452
|
/** Text to search with when the dropdown opens: if the input just holds the
|
|
@@ -3426,21 +3459,35 @@ class PaginatedAutocompleteControl {
|
|
|
3426
3459
|
}
|
|
3427
3460
|
return value;
|
|
3428
3461
|
}
|
|
3462
|
+
/** Reopen the dropdown from cached results for `term` without calling the API. */
|
|
3463
|
+
tryReopenCachedSearch(term) {
|
|
3464
|
+
if (this.refreshOnOpen ||
|
|
3465
|
+
this.lastLoadedSearch !== term ||
|
|
3466
|
+
this._displayedOptions.length === 0) {
|
|
3467
|
+
return false;
|
|
3468
|
+
}
|
|
3469
|
+
this.isPageLoading = false;
|
|
3470
|
+
this.openDropdown();
|
|
3471
|
+
if (this.paginationType === 'arrow') {
|
|
3472
|
+
this.showCachedPage(1);
|
|
3473
|
+
}
|
|
3474
|
+
const idx = this.selectedItems
|
|
3475
|
+
? this._displayedOptions.findIndex((o) => o.id === this.selectedItems.id)
|
|
3476
|
+
: -1;
|
|
3477
|
+
this.highlightedIndex =
|
|
3478
|
+
idx >= 0 ? idx : this._displayedOptions.length > 0 ? 0 : null;
|
|
3479
|
+
return true;
|
|
3480
|
+
}
|
|
3429
3481
|
openWithSearch() {
|
|
3482
|
+
if (this.readonly || this.controlDisabled) {
|
|
3483
|
+
return;
|
|
3484
|
+
}
|
|
3430
3485
|
const term = this.openSearchTerm();
|
|
3431
|
-
|
|
3432
|
-
|
|
3433
|
-
|
|
3434
|
-
|
|
3435
|
-
|
|
3436
|
-
if (this.paginationType === 'arrow') {
|
|
3437
|
-
this.showCachedPage(1);
|
|
3438
|
-
}
|
|
3439
|
-
const idx = this.selectedItems
|
|
3440
|
-
? this._displayedOptions.findIndex((o) => o.id === this.selectedItems.id)
|
|
3441
|
-
: -1;
|
|
3442
|
-
this.highlightedIndex =
|
|
3443
|
-
idx >= 0 ? idx : this._displayedOptions.length > 0 ? 0 : null;
|
|
3486
|
+
if (this.searchOnButtonOnly) {
|
|
3487
|
+
this.tryReopenCachedSearch(term);
|
|
3488
|
+
return;
|
|
3489
|
+
}
|
|
3490
|
+
if (this.tryReopenCachedSearch(term)) {
|
|
3444
3491
|
return;
|
|
3445
3492
|
}
|
|
3446
3493
|
this.loadPage(1, term);
|
|
@@ -3491,6 +3538,10 @@ class PaginatedAutocompleteControl {
|
|
|
3491
3538
|
}
|
|
3492
3539
|
onKeyDown(event) {
|
|
3493
3540
|
if (!this.isDropdownOpen) {
|
|
3541
|
+
if (this.searchOnButtonOnly && event.key === "Enter") {
|
|
3542
|
+
event.preventDefault();
|
|
3543
|
+
this.runSearchAction();
|
|
3544
|
+
}
|
|
3494
3545
|
return;
|
|
3495
3546
|
}
|
|
3496
3547
|
switch (event.key) {
|
|
@@ -3607,6 +3658,14 @@ class PaginatedAutocompleteControl {
|
|
|
3607
3658
|
this.valueBuffer = null;
|
|
3608
3659
|
this.onChange(null);
|
|
3609
3660
|
this.selectionCleared.emit();
|
|
3661
|
+
if (this.searchOnButtonOnly) {
|
|
3662
|
+
this.isDropdownOpen = false;
|
|
3663
|
+
this.isPageLoading = false;
|
|
3664
|
+
this._displayedOptions = [];
|
|
3665
|
+
this.pageCache.clear();
|
|
3666
|
+
this.lastLoadedSearch = null;
|
|
3667
|
+
return;
|
|
3668
|
+
}
|
|
3610
3669
|
if (this.hasFocus) {
|
|
3611
3670
|
this.loadPage(1, "");
|
|
3612
3671
|
}
|
|
@@ -3618,7 +3677,7 @@ class PaginatedAutocompleteControl {
|
|
|
3618
3677
|
useExisting: PaginatedAutocompleteControl,
|
|
3619
3678
|
multi: true,
|
|
3620
3679
|
},
|
|
3621
|
-
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "dropdownElement", first: true, predicate: ["dropdownElement"], descendants: true }], ngImport: i0, template: "<div class=\"form-group auto-complete paginated-autocomplete\" [ngClass]=\"customClass\" [class.readonly]=\"readonly\"\r\n [class.with-search-icon]=\"showSearchIcon\">\r\n @if (title) {\r\n <label class=\"inp-label\" [ngClass]=\"{ 'required': required }\">{{ title }}</label>\r\n }\r\n\r\n <input #inputElement type=\"text\" class=\"form-control\" [placeholder]=\"placeholder\" [formControl]=\"inputControl\"\r\n (input)=\"onUserType($event)\" (blur)=\"onBlur()\" (keydown)=\"onKeyDown($event)\" (focus)=\"onFocus()\" (click)=\"onInputClick()\"\r\n [ngClass]=\"{'is-invalid': error}\" [attr.autocomplete]=\"autocomplete || null\" [readonly]=\"readonly\" />\r\n\r\n <span class=\"focus-border\"></span>\r\n\r\n @if (!inputLoader && inputControl.value && clearVal && hasFocus) {\r\n <label class=\"clear\" (mousedown)=\"onOptionMouseDown()\" (click)=\"resetInput()\">\r\n <i class=\"he he-close\"></i>\r\n </label>\r\n }\r\n\r\n @if (showSearchIcon && !readonly) {\r\n <label class=\"rs-search\" (mousedown)=\"onOptionMouseDown()\" (click)=\"onSearchIconClick($event)\">\r\n <i class=\"he he-search\"></i>\r\n </label>\r\n }\r\n\r\n @if (isDropdownOpen) {\r\n <div #dropdownElement class=\"option-list\" [class.fixed-height]=\"paginationType === 'arrow' && totalPages > 1\"\r\n (mousedown)=\"onOptionMouseDown()\" (scroll)=\"onListScroll($event)\">\r\n @if (options.length === 0 && !isPageLoading && !loadErrorMessage) {\r\n <div class=\"no-results\">\r\n <div>No results found</div>\r\n @if (isAddNewItem) {\r\n <div (click)=\"onAddNewItemClick()\" class=\"btn-new\">\r\n Add New Item\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n @for (suggestion of options; track suggestion.id; let i = $index) {\r\n <div class=\"list-item\" [ngClass]=\"{\r\n 'active': suggestion === selectedItems,\r\n 'highlighted': highlightedIndex === i\r\n }\" (click)=\"selectSuggestion(suggestion)\" (mouseover)=\"onMouseOver(i)\">\r\n {{ suggestion[optionDisplayProperty] }}\r\n </div>\r\n }\r\n\r\n @if (isPageLoading) {\r\n <div class=\"list-loading\">Loading...</div>\r\n }\r\n\r\n @if (loadErrorMessage) {\r\n <div class=\"load-error\" (click)=\"retryLoad($event)\">\r\n {{ loadErrorMessage }} \u00B7 <span class=\"retry\">Retry</span>\r\n </div>\r\n }\r\n\r\n @if (paginationType === 'click' && hasMore && !isPageLoading && !loadErrorMessage) {\r\n <div class=\"load-more\" (click)=\"onLoadMoreClick($event)\">\r\n Load more ({{ options.length }} of {{ totalCount }})\r\n </div>\r\n }\r\n\r\n @if (totalCount > 0 && options.length > 0 && !loadErrorMessage && !(paginationType === 'click' && hasMore)) {\r\n <div class=\"list-footer\" [class.pager-footer]=\"paginationType === 'arrow'\">\r\n @if (paginationType === 'arrow') {\r\n <span class=\"range\">{{ pageRangeStart }} - {{ pageRangeEnd }} of {{ totalCount }}</span>\r\n <span class=\"pager-nav\">\r\n <span class=\"pager-btn\" [class.disabled]=\"currentPage <= 1\" (click)=\"prevArrowPage()\">\u2039</span>\r\n <span class=\"pager-btn\" [class.disabled]=\"currentPage >= totalPages\" (click)=\"nextArrowPage()\">\u203A</span>\r\n </span>\r\n } @else {\r\n {{ options.length }} of {{ totalCount }}\r\n @if (hasMore && paginationType === 'scroll') {\r\n <span> \u00B7 scroll for more</span>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n\r\n @if (inputLoader) {\r\n <label class=\"loader input-loader\"></label>\r\n }\r\n\r\n @if (error) {\r\n <div class=\"val-msg\">{{ errorMessage }}</div>\r\n }\r\n</div>\r\n", styles: [".form-group.paginated-autocomplete.with-search-icon .form-control{padding-right:4rem}.form-group.paginated-autocomplete.with-search-icon .rs-search{top:27px;right:7px;z-index:2;padding:5px;width:30px;height:30px;display:grid;cursor:pointer;position:absolute;border-radius:5px;place-items:center}.form-group.paginated-autocomplete.with-search-icon .rs-search i{font-size:16px;color:#807a7a}.form-group.paginated-autocomplete.with-search-icon .rs-search:hover{background:#ff7f5d1a}.form-group.paginated-autocomplete.with-search-icon .rs-search:hover i{color:#ff7f5d}.form-group.paginated-autocomplete.with-search-icon .clear{right:2.5rem}.form-group.paginated-autocomplete.with-search-icon.no-label .rs-search{top:7px}.form-group.paginated-autocomplete.with-search-icon.no-label .clear{top:10px}.form-group.paginated-autocomplete.with-search-icon.group-sm .rs-search{top:25px}.form-group.paginated-autocomplete.with-search-icon.group-sm.no-label .rs-search{top:4px;width:27px;height:27px}.form-group.paginated-autocomplete.with-search-icon.group-sm.no-label .rs-search i{font-size:14px}.form-group.paginated-autocomplete.with-search-icon.group-sm.no-label .clear{top:6px;right:2.25rem}.form-group.paginated-autocomplete .option-list{max-height:220px;overflow-y:auto}.form-group.paginated-autocomplete .option-list.fixed-height{height:220px;display:flex;flex-direction:column}.form-group.paginated-autocomplete .option-list.fixed-height .list-item,.form-group.paginated-autocomplete .option-list.fixed-height .no-results,.form-group.paginated-autocomplete .option-list.fixed-height .list-loading,.form-group.paginated-autocomplete .option-list.fixed-height .load-error{flex-shrink:0}.form-group.paginated-autocomplete .option-list.fixed-height .list-footer{margin-top:auto}.form-group.paginated-autocomplete .option-list .no-results{padding:10px;color:#9b9b9b;text-align:center}.form-group.paginated-autocomplete .option-list .list-loading{padding:8px 10px;color:#9b9b9b;text-align:center;font-size:12px}.form-group.paginated-autocomplete .option-list .load-more{padding:8px 10px;text-align:center;cursor:pointer;color:#0d6efd;font-size:13px;border-top:1px solid #eee;-webkit-user-select:none;user-select:none}.form-group.paginated-autocomplete .option-list .load-more:hover{background-color:#f5f5f5}.form-group.paginated-autocomplete .option-list .load-error{padding:8px 10px;text-align:center;font-size:12px;color:#dc3545;cursor:pointer;border-top:1px solid #eee;-webkit-user-select:none;user-select:none}.form-group.paginated-autocomplete .option-list .load-error .retry{color:#0d6efd;text-decoration:underline}.form-group.paginated-autocomplete .option-list .load-error:hover{background-color:#f5f5f5}.form-group.paginated-autocomplete .option-list .list-footer{position:sticky;bottom:0;padding:4px 10px;text-align:center;font-size:11px;color:#9b9b9b;background-color:#fff;border-top:1px solid #eee;-webkit-user-select:none;user-select:none}.form-group.paginated-autocomplete .option-list .list-footer .pager-nav{display:inline-flex;align-items:center;gap:6px}.form-group.paginated-autocomplete .option-list .list-footer .range{color:#5f6368;font-size:12px}.form-group.paginated-autocomplete .option-list .list-footer .pager-btn{width:24px;height:24px;border-radius:4px;border:1px solid #dadce0;display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;color:#5f6368;cursor:pointer;background-color:#fff}.form-group.paginated-autocomplete .option-list .list-footer .pager-btn:hover{background-color:#f5f5f5}.form-group.paginated-autocomplete .option-list .list-footer .pager-btn.disabled{border-color:transparent;color:#ccc;cursor:default;pointer-events:none}.form-group.paginated-autocomplete .option-list .list-footer.pager-footer{display:flex;justify-content:space-between;align-items:center;padding:4px 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
3680
|
+
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "dropdownElement", first: true, predicate: ["dropdownElement"], descendants: true }], ngImport: i0, template: "<div class=\"form-group auto-complete paginated-autocomplete\" [ngClass]=\"customClass\" [class.readonly]=\"readonly\"\r\n [class.with-search-icon]=\"showSearchIcon\">\r\n @if (title) {\r\n <label class=\"inp-label\" [ngClass]=\"{ 'required': required }\">{{ title }}</label>\r\n }\r\n\r\n <input #inputElement type=\"text\" class=\"form-control\" [placeholder]=\"placeholder\" [formControl]=\"inputControl\"\r\n (input)=\"onUserType($event)\" (blur)=\"onBlur()\" (keydown)=\"onKeyDown($event)\" (focus)=\"onFocus()\" (click)=\"onInputClick()\"\r\n [ngClass]=\"{'is-invalid': error}\" [attr.autocomplete]=\"autocomplete || null\" [readonly]=\"readonly\" />\r\n\r\n <span class=\"focus-border\"></span>\r\n\r\n @if (!inputLoader && inputControl.value && clearVal && hasFocus) {\r\n <label class=\"clear\" (mousedown)=\"onOptionMouseDown()\" (click)=\"resetInput()\">\r\n <i class=\"he he-close\"></i>\r\n </label>\r\n }\r\n\r\n @if (showSearchIcon && !readonly && !controlDisabled) {\r\n <label class=\"rs-search\" (mousedown)=\"onOptionMouseDown()\" (click)=\"onSearchIconClick($event)\">\r\n <i class=\"he he-search\"></i>\r\n </label>\r\n }\r\n\r\n @if (isDropdownOpen) {\r\n <div #dropdownElement class=\"option-list\" [class.fixed-height]=\"paginationType === 'arrow' && totalPages > 1\"\r\n (mousedown)=\"onOptionMouseDown()\" (scroll)=\"onListScroll($event)\">\r\n @if (options.length === 0 && !isPageLoading && !loadErrorMessage) {\r\n <div class=\"no-results\">\r\n <div>No results found</div>\r\n @if (isAddNewItem) {\r\n <div (click)=\"onAddNewItemClick()\" class=\"btn-new\">\r\n Add New Item\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n @for (suggestion of options; track suggestion.id; let i = $index) {\r\n <div class=\"list-item\" [ngClass]=\"{\r\n 'active': suggestion === selectedItems,\r\n 'highlighted': highlightedIndex === i\r\n }\" (click)=\"selectSuggestion(suggestion)\" (mouseover)=\"onMouseOver(i)\">\r\n {{ suggestion[optionDisplayProperty] }}\r\n </div>\r\n }\r\n\r\n @if (isPageLoading) {\r\n <div class=\"list-loading\">Loading...</div>\r\n }\r\n\r\n @if (loadErrorMessage) {\r\n <div class=\"load-error\" (click)=\"retryLoad($event)\">\r\n {{ loadErrorMessage }} \u00B7 <span class=\"retry\">Retry</span>\r\n </div>\r\n }\r\n\r\n @if (paginationType === 'click' && hasMore && !isPageLoading && !loadErrorMessage) {\r\n <div class=\"load-more\" (click)=\"onLoadMoreClick($event)\">\r\n Load more ({{ options.length }} of {{ totalCount }})\r\n </div>\r\n }\r\n\r\n @if (totalCount > 0 && options.length > 0 && !loadErrorMessage && !(paginationType === 'click' && hasMore)) {\r\n <div class=\"list-footer\" [class.pager-footer]=\"paginationType === 'arrow'\">\r\n @if (paginationType === 'arrow') {\r\n <span class=\"range\">{{ pageRangeStart }} - {{ pageRangeEnd }} of {{ totalCount }}</span>\r\n <span class=\"pager-nav\">\r\n <span class=\"pager-btn\" [class.disabled]=\"currentPage <= 1\" (click)=\"prevArrowPage()\">\u2039</span>\r\n <span class=\"pager-btn\" [class.disabled]=\"currentPage >= totalPages\" (click)=\"nextArrowPage()\">\u203A</span>\r\n </span>\r\n } @else {\r\n {{ options.length }} of {{ totalCount }}\r\n @if (hasMore && paginationType === 'scroll') {\r\n <span> \u00B7 scroll for more</span>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n\r\n @if (inputLoader) {\r\n <label class=\"loader input-loader\"></label>\r\n }\r\n\r\n @if (error) {\r\n <div class=\"val-msg\">{{ errorMessage }}</div>\r\n }\r\n</div>\r\n", styles: [".form-group.paginated-autocomplete.with-search-icon .form-control{padding-right:4rem}.form-group.paginated-autocomplete.with-search-icon .rs-search{top:27px;right:7px;z-index:2;padding:5px;width:30px;height:30px;display:grid;cursor:pointer;position:absolute;border-radius:5px;place-items:center}.form-group.paginated-autocomplete.with-search-icon .rs-search i{font-size:16px;color:#807a7a}.form-group.paginated-autocomplete.with-search-icon .rs-search:hover{background:#ff7f5d1a}.form-group.paginated-autocomplete.with-search-icon .rs-search:hover i{color:#ff7f5d}.form-group.paginated-autocomplete.with-search-icon .clear{right:2.5rem}.form-group.paginated-autocomplete.with-search-icon.no-label .rs-search{top:7px}.form-group.paginated-autocomplete.with-search-icon.no-label .clear{top:10px}.form-group.paginated-autocomplete.with-search-icon.group-sm .rs-search{top:25px}.form-group.paginated-autocomplete.with-search-icon.group-sm.no-label .rs-search{top:4px;width:27px;height:27px}.form-group.paginated-autocomplete.with-search-icon.group-sm.no-label .rs-search i{font-size:14px}.form-group.paginated-autocomplete.with-search-icon.group-sm.no-label .clear{top:6px;right:2.25rem}.form-group.paginated-autocomplete .option-list{max-height:220px;overflow-y:auto}.form-group.paginated-autocomplete .option-list.fixed-height{height:220px;display:flex;flex-direction:column}.form-group.paginated-autocomplete .option-list.fixed-height .list-item,.form-group.paginated-autocomplete .option-list.fixed-height .no-results,.form-group.paginated-autocomplete .option-list.fixed-height .list-loading,.form-group.paginated-autocomplete .option-list.fixed-height .load-error{flex-shrink:0}.form-group.paginated-autocomplete .option-list.fixed-height .list-footer{margin-top:auto}.form-group.paginated-autocomplete .option-list .no-results{padding:10px;color:#9b9b9b;text-align:center}.form-group.paginated-autocomplete .option-list .list-loading{padding:8px 10px;color:#9b9b9b;text-align:center;font-size:12px}.form-group.paginated-autocomplete .option-list .load-more{padding:8px 10px;text-align:center;cursor:pointer;color:#0d6efd;font-size:13px;border-top:1px solid #eee;-webkit-user-select:none;user-select:none}.form-group.paginated-autocomplete .option-list .load-more:hover{background-color:#f5f5f5}.form-group.paginated-autocomplete .option-list .load-error{padding:8px 10px;text-align:center;font-size:12px;color:#dc3545;cursor:pointer;border-top:1px solid #eee;-webkit-user-select:none;user-select:none}.form-group.paginated-autocomplete .option-list .load-error .retry{color:#0d6efd;text-decoration:underline}.form-group.paginated-autocomplete .option-list .load-error:hover{background-color:#f5f5f5}.form-group.paginated-autocomplete .option-list .list-footer{position:sticky;bottom:0;padding:4px 10px;text-align:center;font-size:11px;color:#9b9b9b;background-color:#fff;border-top:1px solid #eee;-webkit-user-select:none;user-select:none}.form-group.paginated-autocomplete .option-list .list-footer .pager-nav{display:inline-flex;align-items:center;gap:6px}.form-group.paginated-autocomplete .option-list .list-footer .range{color:#5f6368;font-size:12px}.form-group.paginated-autocomplete .option-list .list-footer .pager-btn{width:24px;height:24px;border-radius:4px;border:1px solid #dadce0;display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;color:#5f6368;cursor:pointer;background-color:#fff}.form-group.paginated-autocomplete .option-list .list-footer .pager-btn:hover{background-color:#f5f5f5}.form-group.paginated-autocomplete .option-list .list-footer .pager-btn.disabled{border-color:transparent;color:#ccc;cursor:default;pointer-events:none}.form-group.paginated-autocomplete .option-list .list-footer.pager-footer{display:flex;justify-content:space-between;align-items:center;padding:4px 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
3622
3681
|
}
|
|
3623
3682
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PaginatedAutocompleteControl, decorators: [{
|
|
3624
3683
|
type: Component,
|
|
@@ -3628,7 +3687,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
3628
3687
|
useExisting: PaginatedAutocompleteControl,
|
|
3629
3688
|
multi: true,
|
|
3630
3689
|
},
|
|
3631
|
-
], template: "<div class=\"form-group auto-complete paginated-autocomplete\" [ngClass]=\"customClass\" [class.readonly]=\"readonly\"\r\n [class.with-search-icon]=\"showSearchIcon\">\r\n @if (title) {\r\n <label class=\"inp-label\" [ngClass]=\"{ 'required': required }\">{{ title }}</label>\r\n }\r\n\r\n <input #inputElement type=\"text\" class=\"form-control\" [placeholder]=\"placeholder\" [formControl]=\"inputControl\"\r\n (input)=\"onUserType($event)\" (blur)=\"onBlur()\" (keydown)=\"onKeyDown($event)\" (focus)=\"onFocus()\" (click)=\"onInputClick()\"\r\n [ngClass]=\"{'is-invalid': error}\" [attr.autocomplete]=\"autocomplete || null\" [readonly]=\"readonly\" />\r\n\r\n <span class=\"focus-border\"></span>\r\n\r\n @if (!inputLoader && inputControl.value && clearVal && hasFocus) {\r\n <label class=\"clear\" (mousedown)=\"onOptionMouseDown()\" (click)=\"resetInput()\">\r\n <i class=\"he he-close\"></i>\r\n </label>\r\n }\r\n\r\n @if (showSearchIcon && !readonly) {\r\n <label class=\"rs-search\" (mousedown)=\"onOptionMouseDown()\" (click)=\"onSearchIconClick($event)\">\r\n <i class=\"he he-search\"></i>\r\n </label>\r\n }\r\n\r\n @if (isDropdownOpen) {\r\n <div #dropdownElement class=\"option-list\" [class.fixed-height]=\"paginationType === 'arrow' && totalPages > 1\"\r\n (mousedown)=\"onOptionMouseDown()\" (scroll)=\"onListScroll($event)\">\r\n @if (options.length === 0 && !isPageLoading && !loadErrorMessage) {\r\n <div class=\"no-results\">\r\n <div>No results found</div>\r\n @if (isAddNewItem) {\r\n <div (click)=\"onAddNewItemClick()\" class=\"btn-new\">\r\n Add New Item\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n @for (suggestion of options; track suggestion.id; let i = $index) {\r\n <div class=\"list-item\" [ngClass]=\"{\r\n 'active': suggestion === selectedItems,\r\n 'highlighted': highlightedIndex === i\r\n }\" (click)=\"selectSuggestion(suggestion)\" (mouseover)=\"onMouseOver(i)\">\r\n {{ suggestion[optionDisplayProperty] }}\r\n </div>\r\n }\r\n\r\n @if (isPageLoading) {\r\n <div class=\"list-loading\">Loading...</div>\r\n }\r\n\r\n @if (loadErrorMessage) {\r\n <div class=\"load-error\" (click)=\"retryLoad($event)\">\r\n {{ loadErrorMessage }} \u00B7 <span class=\"retry\">Retry</span>\r\n </div>\r\n }\r\n\r\n @if (paginationType === 'click' && hasMore && !isPageLoading && !loadErrorMessage) {\r\n <div class=\"load-more\" (click)=\"onLoadMoreClick($event)\">\r\n Load more ({{ options.length }} of {{ totalCount }})\r\n </div>\r\n }\r\n\r\n @if (totalCount > 0 && options.length > 0 && !loadErrorMessage && !(paginationType === 'click' && hasMore)) {\r\n <div class=\"list-footer\" [class.pager-footer]=\"paginationType === 'arrow'\">\r\n @if (paginationType === 'arrow') {\r\n <span class=\"range\">{{ pageRangeStart }} - {{ pageRangeEnd }} of {{ totalCount }}</span>\r\n <span class=\"pager-nav\">\r\n <span class=\"pager-btn\" [class.disabled]=\"currentPage <= 1\" (click)=\"prevArrowPage()\">\u2039</span>\r\n <span class=\"pager-btn\" [class.disabled]=\"currentPage >= totalPages\" (click)=\"nextArrowPage()\">\u203A</span>\r\n </span>\r\n } @else {\r\n {{ options.length }} of {{ totalCount }}\r\n @if (hasMore && paginationType === 'scroll') {\r\n <span> \u00B7 scroll for more</span>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n\r\n @if (inputLoader) {\r\n <label class=\"loader input-loader\"></label>\r\n }\r\n\r\n @if (error) {\r\n <div class=\"val-msg\">{{ errorMessage }}</div>\r\n }\r\n</div>\r\n", styles: [".form-group.paginated-autocomplete.with-search-icon .form-control{padding-right:4rem}.form-group.paginated-autocomplete.with-search-icon .rs-search{top:27px;right:7px;z-index:2;padding:5px;width:30px;height:30px;display:grid;cursor:pointer;position:absolute;border-radius:5px;place-items:center}.form-group.paginated-autocomplete.with-search-icon .rs-search i{font-size:16px;color:#807a7a}.form-group.paginated-autocomplete.with-search-icon .rs-search:hover{background:#ff7f5d1a}.form-group.paginated-autocomplete.with-search-icon .rs-search:hover i{color:#ff7f5d}.form-group.paginated-autocomplete.with-search-icon .clear{right:2.5rem}.form-group.paginated-autocomplete.with-search-icon.no-label .rs-search{top:7px}.form-group.paginated-autocomplete.with-search-icon.no-label .clear{top:10px}.form-group.paginated-autocomplete.with-search-icon.group-sm .rs-search{top:25px}.form-group.paginated-autocomplete.with-search-icon.group-sm.no-label .rs-search{top:4px;width:27px;height:27px}.form-group.paginated-autocomplete.with-search-icon.group-sm.no-label .rs-search i{font-size:14px}.form-group.paginated-autocomplete.with-search-icon.group-sm.no-label .clear{top:6px;right:2.25rem}.form-group.paginated-autocomplete .option-list{max-height:220px;overflow-y:auto}.form-group.paginated-autocomplete .option-list.fixed-height{height:220px;display:flex;flex-direction:column}.form-group.paginated-autocomplete .option-list.fixed-height .list-item,.form-group.paginated-autocomplete .option-list.fixed-height .no-results,.form-group.paginated-autocomplete .option-list.fixed-height .list-loading,.form-group.paginated-autocomplete .option-list.fixed-height .load-error{flex-shrink:0}.form-group.paginated-autocomplete .option-list.fixed-height .list-footer{margin-top:auto}.form-group.paginated-autocomplete .option-list .no-results{padding:10px;color:#9b9b9b;text-align:center}.form-group.paginated-autocomplete .option-list .list-loading{padding:8px 10px;color:#9b9b9b;text-align:center;font-size:12px}.form-group.paginated-autocomplete .option-list .load-more{padding:8px 10px;text-align:center;cursor:pointer;color:#0d6efd;font-size:13px;border-top:1px solid #eee;-webkit-user-select:none;user-select:none}.form-group.paginated-autocomplete .option-list .load-more:hover{background-color:#f5f5f5}.form-group.paginated-autocomplete .option-list .load-error{padding:8px 10px;text-align:center;font-size:12px;color:#dc3545;cursor:pointer;border-top:1px solid #eee;-webkit-user-select:none;user-select:none}.form-group.paginated-autocomplete .option-list .load-error .retry{color:#0d6efd;text-decoration:underline}.form-group.paginated-autocomplete .option-list .load-error:hover{background-color:#f5f5f5}.form-group.paginated-autocomplete .option-list .list-footer{position:sticky;bottom:0;padding:4px 10px;text-align:center;font-size:11px;color:#9b9b9b;background-color:#fff;border-top:1px solid #eee;-webkit-user-select:none;user-select:none}.form-group.paginated-autocomplete .option-list .list-footer .pager-nav{display:inline-flex;align-items:center;gap:6px}.form-group.paginated-autocomplete .option-list .list-footer .range{color:#5f6368;font-size:12px}.form-group.paginated-autocomplete .option-list .list-footer .pager-btn{width:24px;height:24px;border-radius:4px;border:1px solid #dadce0;display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;color:#5f6368;cursor:pointer;background-color:#fff}.form-group.paginated-autocomplete .option-list .list-footer .pager-btn:hover{background-color:#f5f5f5}.form-group.paginated-autocomplete .option-list .list-footer .pager-btn.disabled{border-color:transparent;color:#ccc;cursor:default;pointer-events:none}.form-group.paginated-autocomplete .option-list .list-footer.pager-footer{display:flex;justify-content:space-between;align-items:center;padding:4px 8px}\n"] }]
|
|
3690
|
+
], template: "<div class=\"form-group auto-complete paginated-autocomplete\" [ngClass]=\"customClass\" [class.readonly]=\"readonly\"\r\n [class.with-search-icon]=\"showSearchIcon\">\r\n @if (title) {\r\n <label class=\"inp-label\" [ngClass]=\"{ 'required': required }\">{{ title }}</label>\r\n }\r\n\r\n <input #inputElement type=\"text\" class=\"form-control\" [placeholder]=\"placeholder\" [formControl]=\"inputControl\"\r\n (input)=\"onUserType($event)\" (blur)=\"onBlur()\" (keydown)=\"onKeyDown($event)\" (focus)=\"onFocus()\" (click)=\"onInputClick()\"\r\n [ngClass]=\"{'is-invalid': error}\" [attr.autocomplete]=\"autocomplete || null\" [readonly]=\"readonly\" />\r\n\r\n <span class=\"focus-border\"></span>\r\n\r\n @if (!inputLoader && inputControl.value && clearVal && hasFocus) {\r\n <label class=\"clear\" (mousedown)=\"onOptionMouseDown()\" (click)=\"resetInput()\">\r\n <i class=\"he he-close\"></i>\r\n </label>\r\n }\r\n\r\n @if (showSearchIcon && !readonly && !controlDisabled) {\r\n <label class=\"rs-search\" (mousedown)=\"onOptionMouseDown()\" (click)=\"onSearchIconClick($event)\">\r\n <i class=\"he he-search\"></i>\r\n </label>\r\n }\r\n\r\n @if (isDropdownOpen) {\r\n <div #dropdownElement class=\"option-list\" [class.fixed-height]=\"paginationType === 'arrow' && totalPages > 1\"\r\n (mousedown)=\"onOptionMouseDown()\" (scroll)=\"onListScroll($event)\">\r\n @if (options.length === 0 && !isPageLoading && !loadErrorMessage) {\r\n <div class=\"no-results\">\r\n <div>No results found</div>\r\n @if (isAddNewItem) {\r\n <div (click)=\"onAddNewItemClick()\" class=\"btn-new\">\r\n Add New Item\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n @for (suggestion of options; track suggestion.id; let i = $index) {\r\n <div class=\"list-item\" [ngClass]=\"{\r\n 'active': suggestion === selectedItems,\r\n 'highlighted': highlightedIndex === i\r\n }\" (click)=\"selectSuggestion(suggestion)\" (mouseover)=\"onMouseOver(i)\">\r\n {{ suggestion[optionDisplayProperty] }}\r\n </div>\r\n }\r\n\r\n @if (isPageLoading) {\r\n <div class=\"list-loading\">Loading...</div>\r\n }\r\n\r\n @if (loadErrorMessage) {\r\n <div class=\"load-error\" (click)=\"retryLoad($event)\">\r\n {{ loadErrorMessage }} \u00B7 <span class=\"retry\">Retry</span>\r\n </div>\r\n }\r\n\r\n @if (paginationType === 'click' && hasMore && !isPageLoading && !loadErrorMessage) {\r\n <div class=\"load-more\" (click)=\"onLoadMoreClick($event)\">\r\n Load more ({{ options.length }} of {{ totalCount }})\r\n </div>\r\n }\r\n\r\n @if (totalCount > 0 && options.length > 0 && !loadErrorMessage && !(paginationType === 'click' && hasMore)) {\r\n <div class=\"list-footer\" [class.pager-footer]=\"paginationType === 'arrow'\">\r\n @if (paginationType === 'arrow') {\r\n <span class=\"range\">{{ pageRangeStart }} - {{ pageRangeEnd }} of {{ totalCount }}</span>\r\n <span class=\"pager-nav\">\r\n <span class=\"pager-btn\" [class.disabled]=\"currentPage <= 1\" (click)=\"prevArrowPage()\">\u2039</span>\r\n <span class=\"pager-btn\" [class.disabled]=\"currentPage >= totalPages\" (click)=\"nextArrowPage()\">\u203A</span>\r\n </span>\r\n } @else {\r\n {{ options.length }} of {{ totalCount }}\r\n @if (hasMore && paginationType === 'scroll') {\r\n <span> \u00B7 scroll for more</span>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n\r\n @if (inputLoader) {\r\n <label class=\"loader input-loader\"></label>\r\n }\r\n\r\n @if (error) {\r\n <div class=\"val-msg\">{{ errorMessage }}</div>\r\n }\r\n</div>\r\n", styles: [".form-group.paginated-autocomplete.with-search-icon .form-control{padding-right:4rem}.form-group.paginated-autocomplete.with-search-icon .rs-search{top:27px;right:7px;z-index:2;padding:5px;width:30px;height:30px;display:grid;cursor:pointer;position:absolute;border-radius:5px;place-items:center}.form-group.paginated-autocomplete.with-search-icon .rs-search i{font-size:16px;color:#807a7a}.form-group.paginated-autocomplete.with-search-icon .rs-search:hover{background:#ff7f5d1a}.form-group.paginated-autocomplete.with-search-icon .rs-search:hover i{color:#ff7f5d}.form-group.paginated-autocomplete.with-search-icon .clear{right:2.5rem}.form-group.paginated-autocomplete.with-search-icon.no-label .rs-search{top:7px}.form-group.paginated-autocomplete.with-search-icon.no-label .clear{top:10px}.form-group.paginated-autocomplete.with-search-icon.group-sm .rs-search{top:25px}.form-group.paginated-autocomplete.with-search-icon.group-sm.no-label .rs-search{top:4px;width:27px;height:27px}.form-group.paginated-autocomplete.with-search-icon.group-sm.no-label .rs-search i{font-size:14px}.form-group.paginated-autocomplete.with-search-icon.group-sm.no-label .clear{top:6px;right:2.25rem}.form-group.paginated-autocomplete .option-list{max-height:220px;overflow-y:auto}.form-group.paginated-autocomplete .option-list.fixed-height{height:220px;display:flex;flex-direction:column}.form-group.paginated-autocomplete .option-list.fixed-height .list-item,.form-group.paginated-autocomplete .option-list.fixed-height .no-results,.form-group.paginated-autocomplete .option-list.fixed-height .list-loading,.form-group.paginated-autocomplete .option-list.fixed-height .load-error{flex-shrink:0}.form-group.paginated-autocomplete .option-list.fixed-height .list-footer{margin-top:auto}.form-group.paginated-autocomplete .option-list .no-results{padding:10px;color:#9b9b9b;text-align:center}.form-group.paginated-autocomplete .option-list .list-loading{padding:8px 10px;color:#9b9b9b;text-align:center;font-size:12px}.form-group.paginated-autocomplete .option-list .load-more{padding:8px 10px;text-align:center;cursor:pointer;color:#0d6efd;font-size:13px;border-top:1px solid #eee;-webkit-user-select:none;user-select:none}.form-group.paginated-autocomplete .option-list .load-more:hover{background-color:#f5f5f5}.form-group.paginated-autocomplete .option-list .load-error{padding:8px 10px;text-align:center;font-size:12px;color:#dc3545;cursor:pointer;border-top:1px solid #eee;-webkit-user-select:none;user-select:none}.form-group.paginated-autocomplete .option-list .load-error .retry{color:#0d6efd;text-decoration:underline}.form-group.paginated-autocomplete .option-list .load-error:hover{background-color:#f5f5f5}.form-group.paginated-autocomplete .option-list .list-footer{position:sticky;bottom:0;padding:4px 10px;text-align:center;font-size:11px;color:#9b9b9b;background-color:#fff;border-top:1px solid #eee;-webkit-user-select:none;user-select:none}.form-group.paginated-autocomplete .option-list .list-footer .pager-nav{display:inline-flex;align-items:center;gap:6px}.form-group.paginated-autocomplete .option-list .list-footer .range{color:#5f6368;font-size:12px}.form-group.paginated-autocomplete .option-list .list-footer .pager-btn{width:24px;height:24px;border-radius:4px;border:1px solid #dadce0;display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;color:#5f6368;cursor:pointer;background-color:#fff}.form-group.paginated-autocomplete .option-list .list-footer .pager-btn:hover{background-color:#f5f5f5}.form-group.paginated-autocomplete .option-list .list-footer .pager-btn.disabled{border-color:transparent;color:#ccc;cursor:default;pointer-events:none}.form-group.paginated-autocomplete .option-list .list-footer.pager-footer{display:flex;justify-content:space-between;align-items:center;padding:4px 8px}\n"] }]
|
|
3632
3691
|
}], ctorParameters: () => [], propDecorators: { title: [{
|
|
3633
3692
|
type: Input
|
|
3634
3693
|
}], required: [{
|