@decaf-ts/for-angular 0.0.62 → 0.0.63
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.
|
@@ -2978,7 +2978,8 @@ var component = {
|
|
|
2978
2978
|
search: {
|
|
2979
2979
|
title: "Not data found for search",
|
|
2980
2980
|
subtitle: "You searched for: <ion-text color=\"primary\" class=\"display-block ion-text-center text-bold\">{0}</ion-text>",
|
|
2981
|
-
button: "Clear search"
|
|
2981
|
+
button: "Clear search",
|
|
2982
|
+
placeholder: "Search..."
|
|
2982
2983
|
},
|
|
2983
2984
|
empty: {
|
|
2984
2985
|
title: "No data found",
|
|
@@ -8175,7 +8176,7 @@ class SearchbarComponent extends NgxComponentDirective {
|
|
|
8175
8176
|
* @default "off"
|
|
8176
8177
|
* @memberOf SearchbarComponent
|
|
8177
8178
|
*/
|
|
8178
|
-
this.autocomplete =
|
|
8179
|
+
this.autocomplete = 'off';
|
|
8179
8180
|
/**
|
|
8180
8181
|
* @description The autocorrect attribute for the searchbar input.
|
|
8181
8182
|
* @summary Controls whether the browser should enable autocorrect functionality for the input field.
|
|
@@ -8186,7 +8187,7 @@ class SearchbarComponent extends NgxComponentDirective {
|
|
|
8186
8187
|
* @default "off"
|
|
8187
8188
|
* @memberOf SearchbarComponent
|
|
8188
8189
|
*/
|
|
8189
|
-
this.autocorrect =
|
|
8190
|
+
this.autocorrect = 'off';
|
|
8190
8191
|
/**
|
|
8191
8192
|
* @description Whether the searchbar should animate.
|
|
8192
8193
|
* @summary Controls the animation behavior of the searchbar during appearance and disappearance transitions.
|
|
@@ -8209,7 +8210,7 @@ class SearchbarComponent extends NgxComponentDirective {
|
|
|
8209
8210
|
* @default "Cancel"
|
|
8210
8211
|
* @memberOf SearchbarComponent
|
|
8211
8212
|
*/
|
|
8212
|
-
this.buttonCancelText =
|
|
8213
|
+
this.buttonCancelText = 'Cancel';
|
|
8213
8214
|
/**
|
|
8214
8215
|
* @description The icon to use for the clear button.
|
|
8215
8216
|
* @summary Specifies the icon to be displayed for the clear button of the searchbar.
|
|
@@ -8249,7 +8250,7 @@ class SearchbarComponent extends NgxComponentDirective {
|
|
|
8249
8250
|
* @default "enter"
|
|
8250
8251
|
* @memberOf SearchbarComponent
|
|
8251
8252
|
*/
|
|
8252
|
-
this.enterkeyhint =
|
|
8253
|
+
this.enterkeyhint = 'enter';
|
|
8253
8254
|
/**
|
|
8254
8255
|
* @description The input mode for the searchbar.
|
|
8255
8256
|
* @summary Specifies the type of data that might be entered by the user while editing the element or its contents.
|
|
@@ -8265,7 +8266,7 @@ class SearchbarComponent extends NgxComponentDirective {
|
|
|
8265
8266
|
* @default "Search"
|
|
8266
8267
|
* @memberOf SearchbarComponent
|
|
8267
8268
|
*/
|
|
8268
|
-
this.placeholder =
|
|
8269
|
+
this.placeholder = 'Search';
|
|
8269
8270
|
/**
|
|
8270
8271
|
* @description The icon to use for the search button.
|
|
8271
8272
|
* @summary Specifies the icon to be displayed for the search button of the searchbar.
|
|
@@ -8273,7 +8274,7 @@ class SearchbarComponent extends NgxComponentDirective {
|
|
|
8273
8274
|
* @default "search-outline"
|
|
8274
8275
|
* @memberOf SearchbarComponent
|
|
8275
8276
|
*/
|
|
8276
|
-
this.searchIcon =
|
|
8277
|
+
this.searchIcon = 'search-outline';
|
|
8277
8278
|
/**
|
|
8278
8279
|
* @description When to show the cancel button.
|
|
8279
8280
|
* @summary Controls the visibility of the cancel button in different states of the searchbar.
|
|
@@ -8281,7 +8282,7 @@ class SearchbarComponent extends NgxComponentDirective {
|
|
|
8281
8282
|
* @default "never"
|
|
8282
8283
|
* @memberOf SearchbarComponent
|
|
8283
8284
|
*/
|
|
8284
|
-
this.showCancelButton =
|
|
8285
|
+
this.showCancelButton = 'never';
|
|
8285
8286
|
/**
|
|
8286
8287
|
* @description When to show the clear button.
|
|
8287
8288
|
* @summary Controls the visibility of the clear button in different states of the searchbar.
|
|
@@ -8289,7 +8290,7 @@ class SearchbarComponent extends NgxComponentDirective {
|
|
|
8289
8290
|
* @default "focus"
|
|
8290
8291
|
* @memberOf SearchbarComponent
|
|
8291
8292
|
*/
|
|
8292
|
-
this.showClearButton =
|
|
8293
|
+
this.showClearButton = 'focus';
|
|
8293
8294
|
/**
|
|
8294
8295
|
* @description Whether to enable spellcheck on the searchbar input.
|
|
8295
8296
|
* @summary Controls whether the browser's spellcheck feature is enabled for the searchbar input.
|
|
@@ -8305,7 +8306,7 @@ class SearchbarComponent extends NgxComponentDirective {
|
|
|
8305
8306
|
* @default "search"
|
|
8306
8307
|
* @memberOf SearchbarComponent
|
|
8307
8308
|
*/
|
|
8308
|
-
this.type =
|
|
8309
|
+
this.type = 'search';
|
|
8309
8310
|
/**
|
|
8310
8311
|
* @description The value of the searchbar input.
|
|
8311
8312
|
* @summary Specifies the current value of the searchbar input.
|
|
@@ -8313,7 +8314,7 @@ class SearchbarComponent extends NgxComponentDirective {
|
|
|
8313
8314
|
* @default ""
|
|
8314
8315
|
* @memberOf SearchbarComponent
|
|
8315
8316
|
*/
|
|
8316
|
-
this.value =
|
|
8317
|
+
this.value = '';
|
|
8317
8318
|
/**
|
|
8318
8319
|
* @description The keys to use for querying.
|
|
8319
8320
|
* @summary Specifies the keys to be used when performing a search query.
|
|
@@ -8321,7 +8322,7 @@ class SearchbarComponent extends NgxComponentDirective {
|
|
|
8321
8322
|
* @default "name"
|
|
8322
8323
|
* @memberOf SearchbarComponent
|
|
8323
8324
|
*/
|
|
8324
|
-
this.queryKeys =
|
|
8325
|
+
this.queryKeys = 'name';
|
|
8325
8326
|
/**
|
|
8326
8327
|
* @description Whether the searchbar is visible.
|
|
8327
8328
|
* @summary Controls the visibility of the searchbar component.
|
|
@@ -8345,7 +8346,7 @@ class SearchbarComponent extends NgxComponentDirective {
|
|
|
8345
8346
|
* @default "primary"
|
|
8346
8347
|
* @memberOf SearchbarComponent
|
|
8347
8348
|
*/
|
|
8348
|
-
this.wrapperColor =
|
|
8349
|
+
this.wrapperColor = 'primary';
|
|
8349
8350
|
/**
|
|
8350
8351
|
* @description Whether to emit events to the window.
|
|
8351
8352
|
* @summary Controls whether search events should be emitted as window events.
|
|
@@ -8565,11 +8566,11 @@ class SearchbarComponent extends NgxComponentDirective {
|
|
|
8565
8566
|
event.preventDefault();
|
|
8566
8567
|
}
|
|
8567
8568
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SearchbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8568
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: SearchbarComponent, isStandalone: true, selector: "ngx-decaf-searchbar", inputs: { autocomplete: "autocomplete", autocorrect: "autocorrect", animated: "animated", buttonCancelText: "buttonCancelText", clearIcon: "clearIcon", color: "color", debounce: "debounce", disabled: "disabled", enterkeyhint: "enterkeyhint", inputmode: "inputmode", placeholder: "placeholder", searchIcon: "searchIcon", showCancelButton: "showCancelButton", showClearButton: "showClearButton", spellcheck: "spellcheck", type: "type", value: "value", queryKeys: "queryKeys", isVisible: "isVisible", wrapper: "wrapper", wrapperColor: "wrapperColor", emitEventToWindow: "emitEventToWindow" }, outputs: { searchEvent: "searchEvent" }, host: { listeners: { "window:toggleSearchbarVisibility": "handleToggleVisibility($event)" } }, usesInheritance: true, ngImport: i0, template: "<ion-searchbar\n [id]=\"uid\"\n ngClass=\"dcf-searchbar\"\n name=\"search\"\n mode=\"ios\"\n (keyup.enter)=\"preventChange($event)\"\n (ionInput)=\"handleInput($event)\"\n (ionClear)=\"handleClear()\"\n [autocomplete]=\"autocomplete\"\n [showCancelButton]=\"showCancelButton\"\n [cancelButtonText]=\"buttonCancelText\"\n [clearIcon]=\"clearIcon\"\n [color]=\"color\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n [enterkeyhint]=\"enterkeyhint\"\n [inputmode]=\"inputmode\"\n [placeholder]=\"placeholder\"\n [searchIcon]=\"searchIcon\"\n [showClearButton]=\"showClearButton\"\n [spellcheck]=\"spellcheck\"\n [type]=\"type\"\n #component\n />\n", styles: [""], dependencies: [{ kind: "component", type: IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }] }); }
|
|
8569
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: SearchbarComponent, isStandalone: true, selector: "ngx-decaf-searchbar", inputs: { autocomplete: "autocomplete", autocorrect: "autocorrect", animated: "animated", buttonCancelText: "buttonCancelText", clearIcon: "clearIcon", color: "color", debounce: "debounce", disabled: "disabled", enterkeyhint: "enterkeyhint", inputmode: "inputmode", placeholder: "placeholder", searchIcon: "searchIcon", showCancelButton: "showCancelButton", showClearButton: "showClearButton", spellcheck: "spellcheck", type: "type", value: "value", queryKeys: "queryKeys", isVisible: "isVisible", wrapper: "wrapper", wrapperColor: "wrapperColor", emitEventToWindow: "emitEventToWindow" }, outputs: { searchEvent: "searchEvent" }, host: { listeners: { "window:toggleSearchbarVisibility": "handleToggleVisibility($event)" } }, usesInheritance: true, ngImport: i0, template: "<ion-searchbar\n [id]=\"uid\"\n ngClass=\"dcf-searchbar\"\n name=\"search\"\n mode=\"ios\"\n (keyup.enter)=\"preventChange($event)\"\n (ionInput)=\"handleInput($event)\"\n (ionClear)=\"handleClear()\"\n [autocomplete]=\"autocomplete\"\n [showCancelButton]=\"showCancelButton\"\n [cancelButtonText]=\"buttonCancelText\"\n [clearIcon]=\"clearIcon\"\n [color]=\"color\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n [enterkeyhint]=\"enterkeyhint\"\n [inputmode]=\"inputmode\"\n [placeholder]=\"placeholder | translate\"\n [searchIcon]=\"searchIcon\"\n [showClearButton]=\"showClearButton\"\n [spellcheck]=\"spellcheck\"\n [type]=\"type\"\n #component\n />\n", styles: [""], dependencies: [{ kind: "component", type: IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
8569
8570
|
}
|
|
8570
8571
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SearchbarComponent, decorators: [{
|
|
8571
8572
|
type: Component,
|
|
8572
|
-
args: [{ selector: 'ngx-decaf-searchbar', standalone: true, imports: [IonSearchbar], template: "<ion-searchbar\n [id]=\"uid\"\n ngClass=\"dcf-searchbar\"\n name=\"search\"\n mode=\"ios\"\n (keyup.enter)=\"preventChange($event)\"\n (ionInput)=\"handleInput($event)\"\n (ionClear)=\"handleClear()\"\n [autocomplete]=\"autocomplete\"\n [showCancelButton]=\"showCancelButton\"\n [cancelButtonText]=\"buttonCancelText\"\n [clearIcon]=\"clearIcon\"\n [color]=\"color\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n [enterkeyhint]=\"enterkeyhint\"\n [inputmode]=\"inputmode\"\n [placeholder]=\"placeholder\"\n [searchIcon]=\"searchIcon\"\n [showClearButton]=\"showClearButton\"\n [spellcheck]=\"spellcheck\"\n [type]=\"type\"\n #component\n />\n" }]
|
|
8573
|
+
args: [{ selector: 'ngx-decaf-searchbar', standalone: true, imports: [TranslatePipe, IonSearchbar], template: "<ion-searchbar\n [id]=\"uid\"\n ngClass=\"dcf-searchbar\"\n name=\"search\"\n mode=\"ios\"\n (keyup.enter)=\"preventChange($event)\"\n (ionInput)=\"handleInput($event)\"\n (ionClear)=\"handleClear()\"\n [autocomplete]=\"autocomplete\"\n [showCancelButton]=\"showCancelButton\"\n [cancelButtonText]=\"buttonCancelText\"\n [clearIcon]=\"clearIcon\"\n [color]=\"color\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n [enterkeyhint]=\"enterkeyhint\"\n [inputmode]=\"inputmode\"\n [placeholder]=\"placeholder | translate\"\n [searchIcon]=\"searchIcon\"\n [showClearButton]=\"showClearButton\"\n [spellcheck]=\"spellcheck\"\n [type]=\"type\"\n #component\n />\n" }]
|
|
8573
8574
|
}], ctorParameters: () => [], propDecorators: { autocomplete: [{
|
|
8574
8575
|
type: Input
|
|
8575
8576
|
}], autocorrect: [{
|
|
@@ -8618,7 +8619,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
8618
8619
|
type: Output
|
|
8619
8620
|
}], handleToggleVisibility: [{
|
|
8620
8621
|
type: HostListener,
|
|
8621
|
-
args: [
|
|
8622
|
+
args: ['window:toggleSearchbarVisibility', ['$event']]
|
|
8622
8623
|
}] } });
|
|
8623
8624
|
|
|
8624
8625
|
/**
|
|
@@ -10035,6 +10036,8 @@ let ListComponent = class ListComponent extends NgxComponentDirective {
|
|
|
10035
10036
|
this.observer = {
|
|
10036
10037
|
refresh: async (...args) => this.observeRepository(...args),
|
|
10037
10038
|
};
|
|
10039
|
+
if (!this.searchbarPlaceholder)
|
|
10040
|
+
this.searchbarPlaceholder = `${this.locale}.search.placeholder`;
|
|
10038
10041
|
this.clickItemSubject
|
|
10039
10042
|
.pipe(debounceTime(100))
|
|
10040
10043
|
.subscribe((event) => this.clickEventEmit(event));
|
|
@@ -10474,7 +10477,10 @@ let ListComponent = class ListComponent extends NgxComponentDirective {
|
|
|
10474
10477
|
*/
|
|
10475
10478
|
async getFromRequest(force = false, start, limit) {
|
|
10476
10479
|
let data = [...(this.data || [])];
|
|
10477
|
-
if (!this.data?.length ||
|
|
10480
|
+
if (!this.data?.length ||
|
|
10481
|
+
force ||
|
|
10482
|
+
this.searchValue?.length ||
|
|
10483
|
+
!!this.searchValue) {
|
|
10478
10484
|
// (self.data as ListItem[]) = [];
|
|
10479
10485
|
if (!this.searchValue?.length &&
|
|
10480
10486
|
!this.searchValue) {
|
|
@@ -10539,6 +10545,9 @@ let ListComponent = class ListComponent extends NgxComponentDirective {
|
|
|
10539
10545
|
this._repository.observe(this.observer);
|
|
10540
10546
|
}
|
|
10541
10547
|
const repo = this._repository;
|
|
10548
|
+
if (!this.indexes) {
|
|
10549
|
+
this.indexes = Object.keys(Model.indexes(this.model) || {});
|
|
10550
|
+
}
|
|
10542
10551
|
if (!this.data?.length ||
|
|
10543
10552
|
force ||
|
|
10544
10553
|
this.searchValue?.length ||
|
|
@@ -10552,20 +10561,21 @@ let ListComponent = class ListComponent extends NgxComponentDirective {
|
|
|
10552
10561
|
if (!this.paginator) {
|
|
10553
10562
|
this.paginator = await repo
|
|
10554
10563
|
.select()
|
|
10555
|
-
.where(this.condition
|
|
10556
|
-
|
|
10557
|
-
|
|
10564
|
+
.where(this.condition
|
|
10565
|
+
? this.condition.eq(!this.modelId
|
|
10566
|
+
? undefined
|
|
10567
|
+
: [Primitives.NUMBER, Primitives.BIGINT].includes(this.pkType)
|
|
10568
|
+
? Number(this.modelId)
|
|
10569
|
+
: this.modelId)
|
|
10570
|
+
: Condition.attribute(this.pk).dif(null))
|
|
10558
10571
|
.orderBy([this.pk, this.sortDirection])
|
|
10559
10572
|
.paginate(this.limit);
|
|
10560
10573
|
}
|
|
10561
10574
|
request = await this.parseResult(this.paginator);
|
|
10562
10575
|
}
|
|
10563
10576
|
else {
|
|
10564
|
-
if (!this.indexes)
|
|
10565
|
-
this.indexes = Object.values(this.mapper) || [this.pk];
|
|
10566
|
-
const condition = this.parseConditions(this.searchValue);
|
|
10567
10577
|
this.changeDetectorRef.detectChanges();
|
|
10568
|
-
request = await this.parseResult(await repo.query(
|
|
10578
|
+
request = await this.parseResult(await repo.query(this.parseConditions(this.searchValue), (this.sortBy || this.pk), this.sortDirection));
|
|
10569
10579
|
data = [];
|
|
10570
10580
|
this.changeDetectorRef.detectChanges();
|
|
10571
10581
|
}
|
|
@@ -10616,8 +10626,8 @@ let ListComponent = class ListComponent extends NgxComponentDirective {
|
|
|
10616
10626
|
*/
|
|
10617
10627
|
parseConditions(value) {
|
|
10618
10628
|
let _condition;
|
|
10619
|
-
|
|
10620
|
-
|
|
10629
|
+
const model = this.model;
|
|
10630
|
+
if (typeof value === Primitives.STRING || !isNaN(value)) {
|
|
10621
10631
|
_condition = Condition.attribute(this.pk).eq(!isNaN(value) ? Number(value) : value);
|
|
10622
10632
|
for (const index of this.indexes) {
|
|
10623
10633
|
if (index === this.pk)
|
|
@@ -10627,21 +10637,31 @@ let ListComponent = class ListComponent extends NgxComponentDirective {
|
|
|
10627
10637
|
orCondition = Condition.attribute(index).eq(Number(value));
|
|
10628
10638
|
}
|
|
10629
10639
|
else {
|
|
10630
|
-
|
|
10640
|
+
const type = Metadata.type(model.constructor, index).name;
|
|
10641
|
+
orCondition =
|
|
10642
|
+
type === Date
|
|
10643
|
+
? Condition.attribute(index).eq(new Date(value))
|
|
10644
|
+
: Condition.attribute(index).regexp(value);
|
|
10631
10645
|
}
|
|
10632
10646
|
_condition = _condition.or(orCondition);
|
|
10633
10647
|
}
|
|
10634
10648
|
}
|
|
10635
10649
|
else {
|
|
10636
10650
|
const { query, sort } = value;
|
|
10637
|
-
|
|
10651
|
+
const pk = this.pk;
|
|
10652
|
+
_condition = Condition.attribute(pk).dif('null');
|
|
10638
10653
|
if (query?.length)
|
|
10639
10654
|
_condition = undefined;
|
|
10640
10655
|
(query || []).forEach((item) => {
|
|
10641
10656
|
const { value, condition, index } = item;
|
|
10642
10657
|
let val = value;
|
|
10643
|
-
if (index === this.pk || !isNaN(val))
|
|
10658
|
+
if (index === this.pk || !isNaN(val)) {
|
|
10644
10659
|
val = Number(val);
|
|
10660
|
+
}
|
|
10661
|
+
const type = Metadata.type(model.constructor, index).name;
|
|
10662
|
+
if (type === Date.name) {
|
|
10663
|
+
val = new Date(val);
|
|
10664
|
+
}
|
|
10645
10665
|
let orCondition;
|
|
10646
10666
|
switch (condition) {
|
|
10647
10667
|
case 'Equal':
|
|
@@ -10800,13 +10820,13 @@ let ListComponent = class ListComponent extends NgxComponentDirective {
|
|
|
10800
10820
|
...Object.keys(this.item).reduce((acc, key) => {
|
|
10801
10821
|
acc[key] = this.item[key];
|
|
10802
10822
|
return acc;
|
|
10803
|
-
}, {})
|
|
10823
|
+
}, {}),
|
|
10804
10824
|
});
|
|
10805
10825
|
return data.reduce((accum, curr) => {
|
|
10806
10826
|
accum.push({
|
|
10807
10827
|
...this.itemMapper(curr, this.mapper, props),
|
|
10808
10828
|
...{ pk: this.pk },
|
|
10809
|
-
...{ model: curr }
|
|
10829
|
+
...{ model: curr },
|
|
10810
10830
|
});
|
|
10811
10831
|
return accum;
|
|
10812
10832
|
}, []);
|
|
@@ -10820,7 +10840,7 @@ let ListComponent = class ListComponent extends NgxComponentDirective {
|
|
|
10820
10840
|
.join(', ');
|
|
10821
10841
|
}
|
|
10822
10842
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10823
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ListComponent, isStandalone: true, selector: "ngx-decaf-list", inputs: { type: "type", showSearchbar: "showSearchbar", data: "data", source: "source", start: "start", limit: "limit", loadMoreData: "loadMoreData", lines: "lines", inset: "inset", scrollThreshold: "scrollThreshold", scrollPosition: "scrollPosition", loadingText: "loadingText", showRefresher: "showRefresher", createButton: "createButton", loadingSpinner: "loadingSpinner", enableFilter: "enableFilter", sortBy: "sortBy", sortDirection: "sortDirection", disableSort: "disableSort", empty: "empty" }, outputs: { clickEvent: "clickEvent" }, host: { listeners: { "window:ListItemClickEvent": "handleClick($event)", "window:searchbarEvent": "handleSearch($event)", "window:BackButtonNavigationEndEvent": "refresh($event)" }, properties: { "attr.id": "uid" } }, usesInheritance: true, ngImport: i0, template: "\n@if (showRefresher) {\n <ion-refresher slot=\"fixed\" [pullFactor]=\"1\" [pullMin]=\"100\" [pullMax]=\"200\" (ionRefresh)=\"handleRefresh($event)\">\n <ion-refresher-content />\n </ion-refresher>\n}\n\n@if (showSearchbar) {\n <div [hidden]=\"!data?.length && !searching\">\n <div class=\"dcf-grid dcf-grid-collapse dcf-grid-actions\">\n <div class=\"dcf-width-expand@m dcf-width-1-1\">\n @if (model && enableFilter) {\n @if (data?.length || searching) {\n <ngx-decaf-filter\n [model]=\"model\"\n [sortDirection]=\"sortDirection\"\n [disableSort]=\"disableSort\"\n (filterEvent)=\"handleFilter($event)\"\n (searchEvent)=\"handleSearch($event)\"\n />\n }\n } @else {\n <ngx-decaf-searchbar [emitEventToWindow]=\"false\" [debounce]=\"500\" (searchEvent)=\"handleSearch($event)\" />\n }\n </div>\n @if(createButton) {\n <div class=\"dcf-width-auto@m dcf-button-container dcf-width-1-1 dcf-flex-middle dcf-flex dcf-flex-center dcf-flex-right@m\">\n <div>\n <ion-button expand=\"block\" (click)=\"changeOperation(OperationKeys.CREATE)\">Create</ion-button>\n </div>\n </div>\n }\n </div>\n </div>\n}\n@if (initialized && data?.length) {\n <ion-list [id]=\"uid\" [inset]=\"inset\" [lines]=\"lines\">\n @if (item?.tag) {\n @for(child of items; track trackItemFn($index, child)) {\n <ngx-decaf-component-renderer\n [tag]=\"item.tag\"\n (listenEvent)=\"handleEvent($event)\"\n [globals]='{\n item: child,\n mapper: mapper,\n route: route,\n model: child\n }'>\n </ngx-decaf-component-renderer>\n }\n } @else {\n <ng-content></ng-content>\n }\n </ion-list>\n\n @if (loadMoreData) {\n @if (pages > 0 && type === 'paginated' && !searchValue?.length) {\n <ngx-decaf-pagination\n [totalPages]=\"pages\"\n [current]=\"page\"\n (clickEvent)=\"handlePaginate($event)\"\n />\n\n } @else {\n <ion-infinite-scroll\n [class]=\"searchValue?.length ? 'dcf-hidden' : ''\"\n\n [position]=\"scrollPosition\"\n [threshold]=\"scrollThreshold\"\n (ionInfinite)=\"handleRefresh($event)\">\n <ion-infinite-scroll-content [loadingSpinner]=\"loadingSpinner\" [loadingText]=\"loadingText\" />\n </ion-infinite-scroll>\n }\n }\n} @else {\n @if (refreshing) {\n @for(skl of skeletonData; track $index) {\n <ion-item>\n <ion-thumbnail slot=\"start\">\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n </ion-thumbnail>\n <ion-label>\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n <ion-text class=\"date\" style=\"width: 20%;\"><ion-skeleton-text [animated]=\"true\"></ion-skeleton-text></ion-text>\n </ion-label>\n </ion-item>\n }\n\n } @else {\n @if (!searching) {\n <ngx-decaf-empty-state\n [title]=\"empty.title ? ((locale + '.'+ empty.title) | translate) : ''\"\n [model]=\"model\"\n [route]=\"route\"\n [modelId]=\"modelId\"\n [buttonLink]=\"empty?.link ?? undefined\"\n [borders]=\"borders\"\n [icon]=\"(item?.icon ?? 'folder-open-outline') || empty.icon\"\n className=\"dcf-empty-data\"\n [subtitle]=\"empty.subtitle ? ((locale + '.'+ empty.subtitle) | translate) : ''\" />\n } @else {\n\n <ngx-decaf-empty-state\n icon=\"search-outline\"\n [model]=\"model\"\n [route]=\"route\"\n [modelId]=\"modelId\"\n [borders]=\"borders\"\n [operations]=\"operations\"\n [body]=\"'small'\"\n [translatable]=\"true\"\n [title]=\"locale + '.search.title' | translate\"\n [subtitle]=\"locale + '.search.subtitle' | translate: {'0': parseSearchValue()}\"\n [searchValue]=\"searchValue\"\n />\n }\n }\n}\n\n", styles: ["ion-infinite-scroll{max-height:50px}ion-infinite-scroll:not(.infinite-scroll-loading) ::ng-deep{max-height:1.5rem}ion-infinite-scroll ::ng-deep ion-spinner{--color: var(--dcf-color-primary);padding-top:1rem}@media (max-width: 768px){#end,[slot=end]{display:none!important}}.dcf-grid-actions{padding:var(--dcf-padding-small);padding-bottom:0}@media (max-width: 768px){.dcf-grid-actions .dcf-button-container{width:100%!important}.dcf-grid-actions .dcf-button-container *{width:calc(100% - 5px)!important;display:inline-block;margin-top:0!important;margin-bottom:var(--dcf-margin-xsmall)!important}}.dcf-grid-actions>div:only-child{width:100%}\n"], dependencies: [{ kind: "component", type: IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "mode", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: PaginationComponent, selector: "ngx-decaf-pagination", inputs: ["totalPages", "current"], outputs: ["clickEvent"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonThumbnail, selector: "ion-thumbnail" }, { kind: "component", type: IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "component", type: IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }, { kind: "component", type: SearchbarComponent, selector: "ngx-decaf-searchbar", inputs: ["autocomplete", "autocorrect", "animated", "buttonCancelText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value", "queryKeys", "isVisible", "wrapper", "wrapperColor", "emitEventToWindow"], outputs: ["searchEvent"] }, { kind: "component", type: EmptyStateComponent, selector: "ngx-decaf-empty-state", inputs: ["title", "titleColor", "subtitle", "subtitleColor", "showIcon", "icon", "iconSize", "iconColor", "buttonLink", "buttonText", "buttonFill", "buttonColor", "buttonSize", "searchValue"] }, { kind: "component", type: FilterComponent, selector: "ngx-decaf-filter", inputs: ["indexes", "multiple", "conditions", "sortBy", "disableSort"], outputs: ["filterEvent", "searchEvent"] }, { kind: "component", type: ComponentRendererComponent, selector: "ngx-decaf-component-renderer", inputs: ["tag", "children", "projectable", "parent"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
10843
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ListComponent, isStandalone: true, selector: "ngx-decaf-list", inputs: { type: "type", showSearchbar: "showSearchbar", searchbarPlaceholder: "searchbarPlaceholder", data: "data", source: "source", start: "start", limit: "limit", loadMoreData: "loadMoreData", lines: "lines", inset: "inset", scrollThreshold: "scrollThreshold", scrollPosition: "scrollPosition", loadingText: "loadingText", showRefresher: "showRefresher", createButton: "createButton", loadingSpinner: "loadingSpinner", enableFilter: "enableFilter", sortBy: "sortBy", sortDirection: "sortDirection", disableSort: "disableSort", empty: "empty" }, outputs: { clickEvent: "clickEvent" }, host: { listeners: { "window:ListItemClickEvent": "handleClick($event)", "window:searchbarEvent": "handleSearch($event)", "window:BackButtonNavigationEndEvent": "refresh($event)" }, properties: { "attr.id": "uid" } }, usesInheritance: true, ngImport: i0, template: "\n@if (showRefresher) {\n <ion-refresher slot=\"fixed\" [pullFactor]=\"1\" [pullMin]=\"100\" [pullMax]=\"200\" (ionRefresh)=\"handleRefresh($event)\">\n <ion-refresher-content />\n </ion-refresher>\n}\n\n@if (showSearchbar) {\n <div [hidden]=\"!data?.length && !searching\">\n <div class=\"dcf-grid dcf-grid-collapse dcf-grid-actions\">\n <div class=\"dcf-width-expand@m dcf-width-1-1\">\n @if (model && enableFilter) {\n @if (data?.length || searching) {\n <ngx-decaf-filter\n [model]=\"model\"\n [indexes]=\"indexes ?? []\"\n [sortDirection]=\"sortDirection\"\n [disableSort]=\"disableSort\"\n (filterEvent)=\"handleFilter($event)\"\n (searchEvent)=\"handleSearch($event)\"\n />\n }\n } @else {\n <ngx-decaf-searchbar [placeholder]=\"searchbarPlaceholder\" [emitEventToWindow]=\"false\" [debounce]=\"500\" (searchEvent)=\"handleSearch($event)\" />\n }\n </div>\n @if(createButton) {\n <div class=\"dcf-width-auto@m dcf-button-container dcf-width-1-1 dcf-flex-middle dcf-flex dcf-flex-center dcf-flex-right@m\">\n <div>\n <ion-button expand=\"block\" (click)=\"changeOperation(OperationKeys.CREATE)\">Create</ion-button>\n </div>\n </div>\n }\n </div>\n </div>\n}\n@if (initialized && data?.length) {\n <ion-list [id]=\"uid\" [inset]=\"inset\" [lines]=\"lines\">\n @if (item?.tag) {\n @for(child of items; track trackItemFn($index, child)) {\n <ngx-decaf-component-renderer\n [tag]=\"item.tag\"\n (listenEvent)=\"handleEvent($event)\"\n [globals]='{\n item: child,\n mapper: mapper,\n route: route,\n model: child\n }'>\n </ngx-decaf-component-renderer>\n }\n } @else {\n <ng-content></ng-content>\n }\n </ion-list>\n\n @if (loadMoreData) {\n @if (pages > 0 && type === 'paginated' && !searchValue?.length) {\n <ngx-decaf-pagination\n [totalPages]=\"pages\"\n [current]=\"page\"\n (clickEvent)=\"handlePaginate($event)\"\n />\n\n } @else {\n <ion-infinite-scroll\n [class]=\"searchValue?.length ? 'dcf-hidden' : ''\"\n\n [position]=\"scrollPosition\"\n [threshold]=\"scrollThreshold\"\n (ionInfinite)=\"handleRefresh($event)\">\n <ion-infinite-scroll-content [loadingSpinner]=\"loadingSpinner\" [loadingText]=\"loadingText\" />\n </ion-infinite-scroll>\n }\n }\n} @else {\n @if (refreshing) {\n @for(skl of skeletonData; track $index) {\n <ion-item>\n <ion-thumbnail slot=\"start\">\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n </ion-thumbnail>\n <ion-label>\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n <ion-text class=\"date\" style=\"width: 20%;\"><ion-skeleton-text [animated]=\"true\"></ion-skeleton-text></ion-text>\n </ion-label>\n </ion-item>\n }\n\n } @else {\n @if (!searching) {\n <ngx-decaf-empty-state\n [title]=\"empty.title ? ((locale + '.'+ empty.title) | translate) : ''\"\n [model]=\"model\"\n [route]=\"route\"\n [modelId]=\"modelId\"\n [buttonLink]=\"empty?.link ?? undefined\"\n [borders]=\"borders\"\n [icon]=\"(item?.icon ?? 'folder-open-outline') || empty.icon\"\n className=\"dcf-empty-data\"\n [subtitle]=\"empty.subtitle ? ((locale + '.'+ empty.subtitle) | translate) : ''\" />\n } @else {\n\n <ngx-decaf-empty-state\n icon=\"search-outline\"\n [model]=\"model\"\n [route]=\"route\"\n [modelId]=\"modelId\"\n [borders]=\"borders\"\n [operations]=\"operations\"\n [body]=\"'small'\"\n [translatable]=\"true\"\n [title]=\"locale + '.search.title' | translate\"\n [subtitle]=\"locale + '.search.subtitle' | translate: {'0': parseSearchValue()}\"\n [searchValue]=\"searchValue\"\n />\n }\n }\n}\n\n", styles: ["ion-infinite-scroll{max-height:50px}ion-infinite-scroll:not(.infinite-scroll-loading) ::ng-deep{max-height:1.5rem}ion-infinite-scroll ::ng-deep ion-spinner{--color: var(--dcf-color-primary);padding-top:1rem}@media (max-width: 768px){#end,[slot=end]{display:none!important}}.dcf-grid-actions{padding:var(--dcf-padding-small);padding-bottom:0}@media (max-width: 768px){.dcf-grid-actions .dcf-button-container{width:100%!important}.dcf-grid-actions .dcf-button-container *{width:calc(100% - 5px)!important;display:inline-block;margin-top:0!important;margin-bottom:var(--dcf-margin-xsmall)!important}}.dcf-grid-actions>div:only-child{width:100%}\n"], dependencies: [{ kind: "component", type: IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "mode", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: PaginationComponent, selector: "ngx-decaf-pagination", inputs: ["totalPages", "current"], outputs: ["clickEvent"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonThumbnail, selector: "ion-thumbnail" }, { kind: "component", type: IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "component", type: IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }, { kind: "component", type: SearchbarComponent, selector: "ngx-decaf-searchbar", inputs: ["autocomplete", "autocorrect", "animated", "buttonCancelText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value", "queryKeys", "isVisible", "wrapper", "wrapperColor", "emitEventToWindow"], outputs: ["searchEvent"] }, { kind: "component", type: EmptyStateComponent, selector: "ngx-decaf-empty-state", inputs: ["title", "titleColor", "subtitle", "subtitleColor", "showIcon", "icon", "iconSize", "iconColor", "buttonLink", "buttonText", "buttonFill", "buttonColor", "buttonSize", "searchValue"] }, { kind: "component", type: FilterComponent, selector: "ngx-decaf-filter", inputs: ["indexes", "multiple", "conditions", "sortBy", "disableSort"], outputs: ["filterEvent", "searchEvent"] }, { kind: "component", type: ComponentRendererComponent, selector: "ngx-decaf-component-renderer", inputs: ["tag", "children", "projectable", "parent"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
10824
10844
|
};
|
|
10825
10845
|
ListComponent = __decorate([
|
|
10826
10846
|
Dynamic(),
|
|
@@ -10848,11 +10868,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
10848
10868
|
EmptyStateComponent,
|
|
10849
10869
|
FilterComponent,
|
|
10850
10870
|
ComponentRendererComponent,
|
|
10851
|
-
], host: { '[attr.id]': 'uid' }, template: "\n@if (showRefresher) {\n <ion-refresher slot=\"fixed\" [pullFactor]=\"1\" [pullMin]=\"100\" [pullMax]=\"200\" (ionRefresh)=\"handleRefresh($event)\">\n <ion-refresher-content />\n </ion-refresher>\n}\n\n@if (showSearchbar) {\n <div [hidden]=\"!data?.length && !searching\">\n <div class=\"dcf-grid dcf-grid-collapse dcf-grid-actions\">\n <div class=\"dcf-width-expand@m dcf-width-1-1\">\n @if (model && enableFilter) {\n @if (data?.length || searching) {\n <ngx-decaf-filter\n [model]=\"model\"\n [sortDirection]=\"sortDirection\"\n [disableSort]=\"disableSort\"\n (filterEvent)=\"handleFilter($event)\"\n (searchEvent)=\"handleSearch($event)\"\n />\n }\n } @else {\n <ngx-decaf-searchbar [emitEventToWindow]=\"false\" [debounce]=\"500\" (searchEvent)=\"handleSearch($event)\" />\n }\n </div>\n @if(createButton) {\n <div class=\"dcf-width-auto@m dcf-button-container dcf-width-1-1 dcf-flex-middle dcf-flex dcf-flex-center dcf-flex-right@m\">\n <div>\n <ion-button expand=\"block\" (click)=\"changeOperation(OperationKeys.CREATE)\">Create</ion-button>\n </div>\n </div>\n }\n </div>\n </div>\n}\n@if (initialized && data?.length) {\n <ion-list [id]=\"uid\" [inset]=\"inset\" [lines]=\"lines\">\n @if (item?.tag) {\n @for(child of items; track trackItemFn($index, child)) {\n <ngx-decaf-component-renderer\n [tag]=\"item.tag\"\n (listenEvent)=\"handleEvent($event)\"\n [globals]='{\n item: child,\n mapper: mapper,\n route: route,\n model: child\n }'>\n </ngx-decaf-component-renderer>\n }\n } @else {\n <ng-content></ng-content>\n }\n </ion-list>\n\n @if (loadMoreData) {\n @if (pages > 0 && type === 'paginated' && !searchValue?.length) {\n <ngx-decaf-pagination\n [totalPages]=\"pages\"\n [current]=\"page\"\n (clickEvent)=\"handlePaginate($event)\"\n />\n\n } @else {\n <ion-infinite-scroll\n [class]=\"searchValue?.length ? 'dcf-hidden' : ''\"\n\n [position]=\"scrollPosition\"\n [threshold]=\"scrollThreshold\"\n (ionInfinite)=\"handleRefresh($event)\">\n <ion-infinite-scroll-content [loadingSpinner]=\"loadingSpinner\" [loadingText]=\"loadingText\" />\n </ion-infinite-scroll>\n }\n }\n} @else {\n @if (refreshing) {\n @for(skl of skeletonData; track $index) {\n <ion-item>\n <ion-thumbnail slot=\"start\">\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n </ion-thumbnail>\n <ion-label>\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n <ion-text class=\"date\" style=\"width: 20%;\"><ion-skeleton-text [animated]=\"true\"></ion-skeleton-text></ion-text>\n </ion-label>\n </ion-item>\n }\n\n } @else {\n @if (!searching) {\n <ngx-decaf-empty-state\n [title]=\"empty.title ? ((locale + '.'+ empty.title) | translate) : ''\"\n [model]=\"model\"\n [route]=\"route\"\n [modelId]=\"modelId\"\n [buttonLink]=\"empty?.link ?? undefined\"\n [borders]=\"borders\"\n [icon]=\"(item?.icon ?? 'folder-open-outline') || empty.icon\"\n className=\"dcf-empty-data\"\n [subtitle]=\"empty.subtitle ? ((locale + '.'+ empty.subtitle) | translate) : ''\" />\n } @else {\n\n <ngx-decaf-empty-state\n icon=\"search-outline\"\n [model]=\"model\"\n [route]=\"route\"\n [modelId]=\"modelId\"\n [borders]=\"borders\"\n [operations]=\"operations\"\n [body]=\"'small'\"\n [translatable]=\"true\"\n [title]=\"locale + '.search.title' | translate\"\n [subtitle]=\"locale + '.search.subtitle' | translate: {'0': parseSearchValue()}\"\n [searchValue]=\"searchValue\"\n />\n }\n }\n}\n\n", styles: ["ion-infinite-scroll{max-height:50px}ion-infinite-scroll:not(.infinite-scroll-loading) ::ng-deep{max-height:1.5rem}ion-infinite-scroll ::ng-deep ion-spinner{--color: var(--dcf-color-primary);padding-top:1rem}@media (max-width: 768px){#end,[slot=end]{display:none!important}}.dcf-grid-actions{padding:var(--dcf-padding-small);padding-bottom:0}@media (max-width: 768px){.dcf-grid-actions .dcf-button-container{width:100%!important}.dcf-grid-actions .dcf-button-container *{width:calc(100% - 5px)!important;display:inline-block;margin-top:0!important;margin-bottom:var(--dcf-margin-xsmall)!important}}.dcf-grid-actions>div:only-child{width:100%}\n"] }]
|
|
10871
|
+
], host: { '[attr.id]': 'uid' }, template: "\n@if (showRefresher) {\n <ion-refresher slot=\"fixed\" [pullFactor]=\"1\" [pullMin]=\"100\" [pullMax]=\"200\" (ionRefresh)=\"handleRefresh($event)\">\n <ion-refresher-content />\n </ion-refresher>\n}\n\n@if (showSearchbar) {\n <div [hidden]=\"!data?.length && !searching\">\n <div class=\"dcf-grid dcf-grid-collapse dcf-grid-actions\">\n <div class=\"dcf-width-expand@m dcf-width-1-1\">\n @if (model && enableFilter) {\n @if (data?.length || searching) {\n <ngx-decaf-filter\n [model]=\"model\"\n [indexes]=\"indexes ?? []\"\n [sortDirection]=\"sortDirection\"\n [disableSort]=\"disableSort\"\n (filterEvent)=\"handleFilter($event)\"\n (searchEvent)=\"handleSearch($event)\"\n />\n }\n } @else {\n <ngx-decaf-searchbar [placeholder]=\"searchbarPlaceholder\" [emitEventToWindow]=\"false\" [debounce]=\"500\" (searchEvent)=\"handleSearch($event)\" />\n }\n </div>\n @if(createButton) {\n <div class=\"dcf-width-auto@m dcf-button-container dcf-width-1-1 dcf-flex-middle dcf-flex dcf-flex-center dcf-flex-right@m\">\n <div>\n <ion-button expand=\"block\" (click)=\"changeOperation(OperationKeys.CREATE)\">Create</ion-button>\n </div>\n </div>\n }\n </div>\n </div>\n}\n@if (initialized && data?.length) {\n <ion-list [id]=\"uid\" [inset]=\"inset\" [lines]=\"lines\">\n @if (item?.tag) {\n @for(child of items; track trackItemFn($index, child)) {\n <ngx-decaf-component-renderer\n [tag]=\"item.tag\"\n (listenEvent)=\"handleEvent($event)\"\n [globals]='{\n item: child,\n mapper: mapper,\n route: route,\n model: child\n }'>\n </ngx-decaf-component-renderer>\n }\n } @else {\n <ng-content></ng-content>\n }\n </ion-list>\n\n @if (loadMoreData) {\n @if (pages > 0 && type === 'paginated' && !searchValue?.length) {\n <ngx-decaf-pagination\n [totalPages]=\"pages\"\n [current]=\"page\"\n (clickEvent)=\"handlePaginate($event)\"\n />\n\n } @else {\n <ion-infinite-scroll\n [class]=\"searchValue?.length ? 'dcf-hidden' : ''\"\n\n [position]=\"scrollPosition\"\n [threshold]=\"scrollThreshold\"\n (ionInfinite)=\"handleRefresh($event)\">\n <ion-infinite-scroll-content [loadingSpinner]=\"loadingSpinner\" [loadingText]=\"loadingText\" />\n </ion-infinite-scroll>\n }\n }\n} @else {\n @if (refreshing) {\n @for(skl of skeletonData; track $index) {\n <ion-item>\n <ion-thumbnail slot=\"start\">\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n </ion-thumbnail>\n <ion-label>\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n <ion-text class=\"date\" style=\"width: 20%;\"><ion-skeleton-text [animated]=\"true\"></ion-skeleton-text></ion-text>\n </ion-label>\n </ion-item>\n }\n\n } @else {\n @if (!searching) {\n <ngx-decaf-empty-state\n [title]=\"empty.title ? ((locale + '.'+ empty.title) | translate) : ''\"\n [model]=\"model\"\n [route]=\"route\"\n [modelId]=\"modelId\"\n [buttonLink]=\"empty?.link ?? undefined\"\n [borders]=\"borders\"\n [icon]=\"(item?.icon ?? 'folder-open-outline') || empty.icon\"\n className=\"dcf-empty-data\"\n [subtitle]=\"empty.subtitle ? ((locale + '.'+ empty.subtitle) | translate) : ''\" />\n } @else {\n\n <ngx-decaf-empty-state\n icon=\"search-outline\"\n [model]=\"model\"\n [route]=\"route\"\n [modelId]=\"modelId\"\n [borders]=\"borders\"\n [operations]=\"operations\"\n [body]=\"'small'\"\n [translatable]=\"true\"\n [title]=\"locale + '.search.title' | translate\"\n [subtitle]=\"locale + '.search.subtitle' | translate: {'0': parseSearchValue()}\"\n [searchValue]=\"searchValue\"\n />\n }\n }\n}\n\n", styles: ["ion-infinite-scroll{max-height:50px}ion-infinite-scroll:not(.infinite-scroll-loading) ::ng-deep{max-height:1.5rem}ion-infinite-scroll ::ng-deep ion-spinner{--color: var(--dcf-color-primary);padding-top:1rem}@media (max-width: 768px){#end,[slot=end]{display:none!important}}.dcf-grid-actions{padding:var(--dcf-padding-small);padding-bottom:0}@media (max-width: 768px){.dcf-grid-actions .dcf-button-container{width:100%!important}.dcf-grid-actions .dcf-button-container *{width:calc(100% - 5px)!important;display:inline-block;margin-top:0!important;margin-bottom:var(--dcf-margin-xsmall)!important}}.dcf-grid-actions>div:only-child{width:100%}\n"] }]
|
|
10852
10872
|
}], ctorParameters: () => [], propDecorators: { type: [{
|
|
10853
10873
|
type: Input
|
|
10854
10874
|
}], showSearchbar: [{
|
|
10855
10875
|
type: Input
|
|
10876
|
+
}], searchbarPlaceholder: [{
|
|
10877
|
+
type: Input
|
|
10856
10878
|
}], data: [{
|
|
10857
10879
|
type: Input
|
|
10858
10880
|
}], source: [{
|