@rosoftlab/ionic 1.0.0-alpha-3 → 1.0.0-alpha-5
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/esm2022/lib/components/index.mjs +2 -1
- package/esm2022/lib/components/rsl-ionic-crud.component/rsl-ionic-crud.component.mjs +4 -4
- package/esm2022/lib/components/rsl-ionic-data-table/rsl-ionic-data-table.component.mjs +4 -4
- package/esm2022/lib/components/rsl-ionic-grid/rsl-ionic-grid.component.mjs +4 -4
- package/esm2022/lib/components/rsl-ionic-sm-buttons/ionic-sm-buttons.component.mjs +6 -6
- package/esm2022/lib/ionic-dialog.service.mjs +4 -4
- package/esm2022/lib/rsl-ionic-module.module.mjs +5 -5
- package/esm2022/lib/types/repeat/repeat-section.type.mjs +4 -4
- package/esm2022/lib/wrappers/accordion-wrapper.component.mjs +4 -4
- package/esm2022/lib/wrappers/panel-wrapper.component.mjs +4 -4
- package/esm2022/lib/wrappers/wrappers.module.mjs +8 -5
- package/fesm2022/rosoftlab-ionic.mjs +90 -87
- package/fesm2022/rosoftlab-ionic.mjs.map +1 -1
- package/lib/components/index.d.ts +1 -0
- package/package.json +7 -7
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as i3 from '@angular/common';
|
2
2
|
import { CommonModule } from '@angular/common';
|
3
3
|
import * as i0 from '@angular/core';
|
4
|
-
import { Injectable,
|
4
|
+
import { Injectable, NgModule, Component, ViewChild, Input } from '@angular/core';
|
5
5
|
import * as i1$1 from '@angular/forms';
|
6
6
|
import { ReactiveFormsModule, UntypedFormGroup, UntypedFormControl } from '@angular/forms';
|
7
7
|
import * as i1$2 from '@angular/router';
|
@@ -14,11 +14,12 @@ import { Observable, from } from 'rxjs';
|
|
14
14
|
import * as i4 from '@ionic/angular';
|
15
15
|
import { IonicModule } from '@ionic/angular';
|
16
16
|
import * as i6 from '@ngx-formly/core';
|
17
|
-
import {
|
17
|
+
import { FormlyModule, FORMLY_CONFIG, FieldType, FieldArrayType, FieldWrapper } from '@ngx-formly/core';
|
18
18
|
import { FormlyIonicModule } from '@ngx-formly/ionic';
|
19
19
|
import * as i6$2 from '@swimlane/ngx-datatable';
|
20
20
|
import { NgxDatatableModule, ColumnMode, SelectionType } from '@swimlane/ngx-datatable';
|
21
21
|
import * as i1 from '@rosoftlab/statemachine';
|
22
|
+
import { SmActionService } from '@rosoftlab/statemachine';
|
22
23
|
import { readFileAsync, getValueFromJsonData, GridLayoutFormat } from '@rosoftlab/core';
|
23
24
|
import * as i3$1 from 'ngx-filesaver';
|
24
25
|
import * as XLSX from 'xlsx';
|
@@ -61,71 +62,16 @@ class IonicDialogService {
|
|
61
62
|
});
|
62
63
|
await alert.present();
|
63
64
|
}
|
64
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
65
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: IonicDialogService, deps: [{ token: i4.AlertController }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
66
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: IonicDialogService, providedIn: 'root' }); }
|
66
67
|
}
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: IonicDialogService, decorators: [{
|
68
69
|
type: Injectable,
|
69
70
|
args: [{
|
70
71
|
providedIn: 'root'
|
71
72
|
}]
|
72
73
|
}], ctorParameters: function () { return [{ type: i4.AlertController }]; } });
|
73
74
|
|
74
|
-
class RslIonicSmButtonsComponent extends FieldType {
|
75
|
-
constructor(smActionService, stateService, translate) {
|
76
|
-
super();
|
77
|
-
this.smActionService = smActionService;
|
78
|
-
this.stateService = stateService;
|
79
|
-
this.translate = translate;
|
80
|
-
}
|
81
|
-
ngOnInit() {
|
82
|
-
this.objectType = this.props.attributes['objectType'];
|
83
|
-
this.objectId = this.field.parent.model.id;
|
84
|
-
this.loadCurrentState(this.field.model.currentStateId);
|
85
|
-
this.smActions$ = this.smActionService.getActions(this.objectId, this.objectType);
|
86
|
-
// console.log(this.field)
|
87
|
-
}
|
88
|
-
executeAction(action) {
|
89
|
-
// this.currentState = null
|
90
|
-
// this.smActions$ = null
|
91
|
-
// console.log(action.actionID)
|
92
|
-
this.smActionService.executeAction(this.objectId, this.objectType, action.actionID, "")
|
93
|
-
.subscribe(response => {
|
94
|
-
// console.log(response)
|
95
|
-
if (this.field.props['onStateCahnged'])
|
96
|
-
this.field.props['onStateCahnged']({ model: this.field.parent.model, response });
|
97
|
-
this.model['currentStateId'] = response.currentStateId;
|
98
|
-
this.smActionService.getActions(this.objectId, this.objectType);
|
99
|
-
this.options.resetModel();
|
100
|
-
// this.field.formControl.updateValueAndValidity()
|
101
|
-
this.smActions$ = this.smActionService.getActions(this.objectId, this.objectType);
|
102
|
-
// //this.smActions = []
|
103
|
-
this.loadCurrentState(response.currentStateId);
|
104
|
-
});
|
105
|
-
// console.log(action);
|
106
|
-
}
|
107
|
-
loadCurrentState(stateId) {
|
108
|
-
this.stateService.get(stateId).subscribe(state => this.currentState = state);
|
109
|
-
}
|
110
|
-
getColor(action) {
|
111
|
-
if (action.props) {
|
112
|
-
return action.props["Color"] ? action.props["Color"] : "primary";
|
113
|
-
}
|
114
|
-
return "primary";
|
115
|
-
}
|
116
|
-
getCurrentState() {
|
117
|
-
return this.translate.instant('General.State.CurrentState', { field: this.currentState.name });
|
118
|
-
}
|
119
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: RslIonicSmButtonsComponent, deps: [{ token: i1.SmActionService }, { token: i1.StateService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
120
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: RslIonicSmButtonsComponent, isStandalone: true, selector: "app-ionic-sm-buttons", usesInheritance: true, ngImport: i0, template: "<!-- <ion-input [type]=\"props.type || 'text'\" [formControl]=\"formControl\" [ionFormlyAttributes]=\"field\"></ion-input> -->\n\n<!-- <p>Sync</p>\n<ion-list>\n <ion-button *ngFor=\"let action of smActions\" color=\"{{getColor(action)}}\" (click)=\"executeAction(action)\">\n {{action.buttonTranslationKey |translate}}\n </ion-button>\n</ion-list> -->\n<ion-label *ngIf=\"currentState\">{{ getCurrentState() }}</ion-label>\n<ion-list>\n <ion-button *ngFor=\"let action of smActions$ | async \" color=\"{{getColor(action)}}\" (click)=\"executeAction(action)\">\n {{action.buttonTranslationKey |translate}}\n <!-- - {{action.actionID}} -->\n </ion-button>\n</ion-list>", styles: [""], dependencies: [{ kind: "ngmodule", type: RslIonicModuleModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.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: i4.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i4.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
121
|
-
}
|
122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: RslIonicSmButtonsComponent, decorators: [{
|
123
|
-
type: Component,
|
124
|
-
args: [{ standalone: true, selector: 'app-ionic-sm-buttons', imports: [
|
125
|
-
RslIonicModuleModule
|
126
|
-
], template: "<!-- <ion-input [type]=\"props.type || 'text'\" [formControl]=\"formControl\" [ionFormlyAttributes]=\"field\"></ion-input> -->\n\n<!-- <p>Sync</p>\n<ion-list>\n <ion-button *ngFor=\"let action of smActions\" color=\"{{getColor(action)}}\" (click)=\"executeAction(action)\">\n {{action.buttonTranslationKey |translate}}\n </ion-button>\n</ion-list> -->\n<ion-label *ngIf=\"currentState\">{{ getCurrentState() }}</ion-label>\n<ion-list>\n <ion-button *ngFor=\"let action of smActions$ | async \" color=\"{{getColor(action)}}\" (click)=\"executeAction(action)\">\n {{action.buttonTranslationKey |translate}}\n <!-- - {{action.actionID}} -->\n </ion-button>\n</ion-list>" }]
|
127
|
-
}], ctorParameters: function () { return [{ type: i1.SmActionService }, { type: i1.StateService }, { type: i2.TranslateService }]; } });
|
128
|
-
|
129
75
|
class TranslateExtension {
|
130
76
|
constructor(translate) {
|
131
77
|
this.translate = translate;
|
@@ -182,8 +128,8 @@ const COMMON_MODULES$1 = [
|
|
182
128
|
NgxDatatableModule
|
183
129
|
];
|
184
130
|
class WrappersModule {
|
185
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
186
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.
|
131
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: WrappersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
132
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.10", ngImport: i0, type: WrappersModule, imports: [CommonModule,
|
187
133
|
IonicModule,
|
188
134
|
ReactiveFormsModule,
|
189
135
|
FormlyIonicModule,
|
@@ -193,8 +139,9 @@ class WrappersModule {
|
|
193
139
|
FormlyIonicModule,
|
194
140
|
NgxDatatableModule, FormlyModule,
|
195
141
|
TranslateModule] }); }
|
196
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.
|
142
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: WrappersModule, providers: [
|
197
143
|
{ provide: FORMLY_CONFIG, multi: true, useFactory: registerTranslateExtension, deps: [TranslateService] },
|
144
|
+
SmActionService
|
198
145
|
], imports: [COMMON_MODULES$1, TranslateModule, CommonModule,
|
199
146
|
IonicModule,
|
200
147
|
ReactiveFormsModule,
|
@@ -202,7 +149,7 @@ class WrappersModule {
|
|
202
149
|
NgxDatatableModule, FormlyModule,
|
203
150
|
TranslateModule] }); }
|
204
151
|
}
|
205
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: WrappersModule, decorators: [{
|
206
153
|
type: NgModule,
|
207
154
|
args: [{
|
208
155
|
imports: [
|
@@ -211,6 +158,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
211
158
|
],
|
212
159
|
providers: [
|
213
160
|
{ provide: FORMLY_CONFIG, multi: true, useFactory: registerTranslateExtension, deps: [TranslateService] },
|
161
|
+
SmActionService
|
214
162
|
],
|
215
163
|
exports: [
|
216
164
|
...COMMON_MODULES$1,
|
@@ -220,6 +168,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
220
168
|
}]
|
221
169
|
}] });
|
222
170
|
|
171
|
+
class RslIonicSmButtonsComponent extends FieldType {
|
172
|
+
constructor(smActionService, stateService, translate) {
|
173
|
+
super();
|
174
|
+
this.smActionService = smActionService;
|
175
|
+
this.stateService = stateService;
|
176
|
+
this.translate = translate;
|
177
|
+
}
|
178
|
+
ngOnInit() {
|
179
|
+
this.objectType = this.props.attributes['objectType'];
|
180
|
+
this.objectId = this.field.parent.model.id;
|
181
|
+
this.loadCurrentState(this.field.model.currentStateId);
|
182
|
+
this.smActions$ = this.smActionService.getActions(this.objectId, this.objectType);
|
183
|
+
// console.log(this.field)
|
184
|
+
}
|
185
|
+
executeAction(action) {
|
186
|
+
// this.currentState = null
|
187
|
+
// this.smActions$ = null
|
188
|
+
// console.log(action.actionID)
|
189
|
+
this.smActionService.executeAction(this.objectId, this.objectType, action.actionID, "")
|
190
|
+
.subscribe(response => {
|
191
|
+
// console.log(response)
|
192
|
+
if (this.field.props['onStateCahnged'])
|
193
|
+
this.field.props['onStateCahnged']({ model: this.field.parent.model, response });
|
194
|
+
this.model['currentStateId'] = response.currentStateId;
|
195
|
+
this.smActionService.getActions(this.objectId, this.objectType);
|
196
|
+
this.options.resetModel();
|
197
|
+
// this.field.formControl.updateValueAndValidity()
|
198
|
+
this.smActions$ = this.smActionService.getActions(this.objectId, this.objectType);
|
199
|
+
// //this.smActions = []
|
200
|
+
this.loadCurrentState(response.currentStateId);
|
201
|
+
});
|
202
|
+
// console.log(action);
|
203
|
+
}
|
204
|
+
loadCurrentState(stateId) {
|
205
|
+
this.stateService.get(stateId).subscribe(state => this.currentState = state);
|
206
|
+
}
|
207
|
+
getColor(action) {
|
208
|
+
if (action.props) {
|
209
|
+
return action.props["Color"] ? action.props["Color"] : "primary";
|
210
|
+
}
|
211
|
+
return "primary";
|
212
|
+
}
|
213
|
+
getCurrentState() {
|
214
|
+
return this.translate.instant('General.State.CurrentState', { field: this.currentState.name });
|
215
|
+
}
|
216
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: RslIonicSmButtonsComponent, deps: [{ token: i1.SmActionService }, { token: i1.StateService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
217
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.10", type: RslIonicSmButtonsComponent, isStandalone: true, selector: "app-ionic-sm-buttons", usesInheritance: true, ngImport: i0, template: "<!-- <ion-input [type]=\"props.type || 'text'\" [formControl]=\"formControl\" [ionFormlyAttributes]=\"field\"></ion-input> -->\n\n<!-- <p>Sync</p>\n<ion-list>\n <ion-button *ngFor=\"let action of smActions\" color=\"{{getColor(action)}}\" (click)=\"executeAction(action)\">\n {{action.buttonTranslationKey |translate}}\n </ion-button>\n</ion-list> -->\n<ion-label *ngIf=\"currentState\">{{ getCurrentState() }}</ion-label>\n<ion-list>\n <ion-button *ngFor=\"let action of smActions$ | async \" color=\"{{getColor(action)}}\" (click)=\"executeAction(action)\">\n {{action.buttonTranslationKey |translate}}\n <!-- - {{action.actionID}} -->\n </ion-button>\n</ion-list>", styles: [""], dependencies: [{ kind: "ngmodule", type: WrappersModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.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: i4.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i4.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
218
|
+
}
|
219
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: RslIonicSmButtonsComponent, decorators: [{
|
220
|
+
type: Component,
|
221
|
+
args: [{ standalone: true, selector: 'app-ionic-sm-buttons', imports: [
|
222
|
+
WrappersModule
|
223
|
+
], template: "<!-- <ion-input [type]=\"props.type || 'text'\" [formControl]=\"formControl\" [ionFormlyAttributes]=\"field\"></ion-input> -->\n\n<!-- <p>Sync</p>\n<ion-list>\n <ion-button *ngFor=\"let action of smActions\" color=\"{{getColor(action)}}\" (click)=\"executeAction(action)\">\n {{action.buttonTranslationKey |translate}}\n </ion-button>\n</ion-list> -->\n<ion-label *ngIf=\"currentState\">{{ getCurrentState() }}</ion-label>\n<ion-list>\n <ion-button *ngFor=\"let action of smActions$ | async \" color=\"{{getColor(action)}}\" (click)=\"executeAction(action)\">\n {{action.buttonTranslationKey |translate}}\n <!-- - {{action.actionID}} -->\n </ion-button>\n</ion-list>" }]
|
224
|
+
}], ctorParameters: function () { return [{ type: i1.SmActionService }, { type: i1.StateService }, { type: i2.TranslateService }]; } });
|
225
|
+
|
223
226
|
class RepeatTypeComponent extends FieldArrayType {
|
224
227
|
constructor(dialogService, translate, fileSaverService) {
|
225
228
|
super();
|
@@ -327,10 +330,10 @@ class RepeatTypeComponent extends FieldArrayType {
|
|
327
330
|
const blob = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
328
331
|
this.fileSaverService.save(blob, this.exportDataProp.fileName);
|
329
332
|
}
|
330
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
331
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
333
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: RepeatTypeComponent, deps: [{ token: IonicDialogService }, { token: i2.TranslateService }, { token: i3$1.FileSaverService }], target: i0.ɵɵFactoryTarget.Component }); }
|
334
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.10", type: RepeatTypeComponent, isStandalone: true, selector: "formly-repeat-section", viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ion-header [translucent]=\"true\">\r\n <ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n </ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"search\"></ng-container>\r\n</ion-header>\r\n\r\n<ng-template #header>\r\n <ion-title class=\"ion-text-left\">{{props.label}}</ion-title>\r\n\r\n <ion-button slot=\"end\" (click)=\"exportData()\" fill=\"clear\" [disabled]=\"props.disabled\" *ngIf=\"exportDataProp\">\r\n <ion-icon name=\"cloud-download-outline\"></ion-icon>\r\n </ion-button>\r\n\r\n <ion-button slot=\"end\" (click)=\"importData()\" fill=\"clear\" [disabled]=\"props.disabled\" *ngIf=\"importDataProp\">\r\n <ion-icon name=\"cloud-upload-outline\"></ion-icon>\r\n </ion-button>\r\n <input #fileInput type=\"file\" style=\"display: none\" accept=\".xlsx,.xls,.csv\" (change)=\"handleImportFile($event)\">\r\n\r\n <ion-button slot=\"end\" (click)=\"add()\" fill=\"clear\" [disabled]=\"props.disabled\">\r\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\r\n </ion-button>\r\n</ng-template>\r\n\r\n\r\n<ion-list lines=\"full\">\r\n <ion-item *ngFor=\"let field of field.fieldGroup; let i = index\" class=\"row align-items-baseline\">\r\n <formly-field class=\"formly-ion-list-item\" [field]=\"field\"></formly-field>\r\n <ion-button [disabled]=\"props.disabled\" color=\"danger\" slot=\"end\" (click)='remove(i)'>\r\n <ion-icon slot=\"icon-only\" name=\"trash\"></ion-icon>\r\n </ion-button>\r\n </ion-item>\r\n</ion-list>\r\n\r\n\r\n<ng-template #search>\r\n <ion-toolbar *ngIf=\"showSerach\">\r\n <ion-searchbar [debounce]=\"1000\" (ionChange)=\"handleChange($event)\"></ion-searchbar>\r\n </ion-toolbar>\r\n</ng-template>", styles: [".formly-ion-list-item{display:inline;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: WrappersModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.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: i4.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i4.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i4.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i4.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i4.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "component", type: i6.FormlyField, selector: "formly-field", inputs: ["field"] }] }); }
|
332
335
|
}
|
333
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
336
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: RepeatTypeComponent, decorators: [{
|
334
337
|
type: Component,
|
335
338
|
args: [{ standalone: true, selector: 'formly-repeat-section', imports: [
|
336
339
|
WrappersModule
|
@@ -353,8 +356,8 @@ function fieldMatchValidator(control) {
|
|
353
356
|
}
|
354
357
|
|
355
358
|
class AccordionWrapperComponent extends FieldWrapper {
|
356
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
357
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
359
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: AccordionWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
360
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.10", type: AccordionWrapperComponent, isStandalone: true, selector: "formly-accordion-panel", usesInheritance: true, ngImport: i0, template: `
|
358
361
|
|
359
362
|
<ion-accordion-group [value]="['first']">
|
360
363
|
<ion-accordion value="first">
|
@@ -371,7 +374,7 @@ class AccordionWrapperComponent extends FieldWrapper {
|
|
371
374
|
|
372
375
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: WrappersModule }, { kind: "component", type: i4.IonAccordion, selector: "ion-accordion", inputs: ["disabled", "mode", "readonly", "toggleIcon", "toggleIconSlot", "value"] }, { kind: "component", type: i4.IonAccordionGroup, selector: "ion-accordion-group", inputs: ["animated", "disabled", "expand", "mode", "multiple", "readonly", "value"] }, { kind: "component", type: i4.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i4.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }] }); }
|
373
376
|
}
|
374
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
377
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: AccordionWrapperComponent, decorators: [{
|
375
378
|
type: Component,
|
376
379
|
args: [{
|
377
380
|
standalone: true,
|
@@ -398,8 +401,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
398
401
|
}] });
|
399
402
|
|
400
403
|
class PanelWrapperComponent extends FieldWrapper {
|
401
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
402
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
404
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: PanelWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
405
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.10", type: PanelWrapperComponent, isStandalone: true, selector: "formly-wrapper-panel", usesInheritance: true, ngImport: i0, template: `
|
403
406
|
<ion-card>
|
404
407
|
<ion-card-header>
|
405
408
|
<ion-card-title>{{ props.label}}</ion-card-title>
|
@@ -410,7 +413,7 @@ class PanelWrapperComponent extends FieldWrapper {
|
|
410
413
|
</ion-card>
|
411
414
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: WrappersModule }, { kind: "component", type: i4.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i4.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i4.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i4.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }] }); }
|
412
415
|
}
|
413
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
416
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: PanelWrapperComponent, decorators: [{
|
414
417
|
type: Component,
|
415
418
|
args: [{
|
416
419
|
standalone: true,
|
@@ -437,8 +440,8 @@ const COMMON_MODULES = [
|
|
437
440
|
NgxDatatableModule
|
438
441
|
];
|
439
442
|
class RslIonicModuleModule {
|
440
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
441
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.
|
443
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: RslIonicModuleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
444
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.10", ngImport: i0, type: RslIonicModuleModule, imports: [CommonModule,
|
442
445
|
IonicModule,
|
443
446
|
ReactiveFormsModule,
|
444
447
|
FormlyIonicModule,
|
@@ -448,7 +451,7 @@ class RslIonicModuleModule {
|
|
448
451
|
FormlyIonicModule,
|
449
452
|
NgxDatatableModule, FormlyModule,
|
450
453
|
TranslateModule] }); }
|
451
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.
|
454
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: RslIonicModuleModule, providers: [
|
452
455
|
IonicDialogService,
|
453
456
|
{ provide: FORMLY_CONFIG, multi: true, useFactory: registerTranslateExtension, deps: [TranslateService] },
|
454
457
|
], imports: [COMMON_MODULES, TranslateModule,
|
@@ -472,7 +475,7 @@ class RslIonicModuleModule {
|
|
472
475
|
NgxDatatableModule, FormlyModule,
|
473
476
|
TranslateModule] }); }
|
474
477
|
}
|
475
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
478
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: RslIonicModuleModule, decorators: [{
|
476
479
|
type: NgModule,
|
477
480
|
args: [{
|
478
481
|
imports: [
|
@@ -744,10 +747,10 @@ class GenericIonicCrudComponent {
|
|
744
747
|
}
|
745
748
|
return rvalue;
|
746
749
|
}
|
747
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
748
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
750
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: GenericIonicCrudComponent, deps: [{ token: i1$1.UntypedFormBuilder }, { token: i1$2.Router }, { token: i1$2.ActivatedRoute }, { token: IonicDialogService }, { token: i2.TranslateService }, { token: i3.Location }, { token: i0.Injector }, { token: i6$1.FormlyJsonschema }], target: i0.ɵɵFactoryTarget.Component }); }
|
751
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.10", type: GenericIonicCrudComponent, isStandalone: true, selector: "rslc-ionic-crud", ngImport: i0, template: "<ion-header [translucent]=\"true\">\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-menu-button></ion-menu-button>\n <ion-back-button></ion-back-button>\n </ion-buttons>\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\n </ion-toolbar>\n</ion-header>\n\n<ion-content [fullscreen]=\"true\">\n <ng-container *ngIf=\"!isLoading\">\n <form [formGroup]=\"baseForm\" (ngSubmit)=\"onSubmit(model)\">\n <formly-form [form]=\"baseForm\" [fields]=\"fields\" [model]=\"model\" [options]=\"options\"></formly-form>\n </form>\n </ng-container>\n</ion-content>\n\n<ng-template #header>\n <ion-title class=\"ion-text-center\">{{title |translate}}</ion-title>\n <ion-button *ngIf=\"!isLoading\" slot=\"end\" fill=\"clear\" (click)=\"onSave()\"\n [disabled]=\"baseForm.invalid || !baseForm.dirty\">\n <ion-icon size=\"large\" name=\"save\"></ion-icon>\n </ion-button>\n</ng-template>", styles: [""], dependencies: [{ kind: "ngmodule", type: RslIonicModuleModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { kind: "component", type: i4.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: i4.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i4.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: i4.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i4.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i6.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
749
752
|
}
|
750
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
753
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: GenericIonicCrudComponent, decorators: [{
|
751
754
|
type: Component,
|
752
755
|
args: [{ standalone: true, selector: 'rslc-ionic-crud', imports: [RslIonicModuleModule], template: "<ion-header [translucent]=\"true\">\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-menu-button></ion-menu-button>\n <ion-back-button></ion-back-button>\n </ion-buttons>\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\n </ion-toolbar>\n</ion-header>\n\n<ion-content [fullscreen]=\"true\">\n <ng-container *ngIf=\"!isLoading\">\n <form [formGroup]=\"baseForm\" (ngSubmit)=\"onSubmit(model)\">\n <formly-form [form]=\"baseForm\" [fields]=\"fields\" [model]=\"model\" [options]=\"options\"></formly-form>\n </form>\n </ng-container>\n</ion-content>\n\n<ng-template #header>\n <ion-title class=\"ion-text-center\">{{title |translate}}</ion-title>\n <ion-button *ngIf=\"!isLoading\" slot=\"end\" fill=\"clear\" (click)=\"onSave()\"\n [disabled]=\"baseForm.invalid || !baseForm.dirty\">\n <ion-icon size=\"large\" name=\"save\"></ion-icon>\n </ion-button>\n</ng-template>" }]
|
753
756
|
}], ctorParameters: function () { return [{ type: i1$1.UntypedFormBuilder }, { type: i1$2.Router }, { type: i1$2.ActivatedRoute }, { type: IonicDialogService }, { type: i2.TranslateService }, { type: i3.Location }, { type: i0.Injector }, { type: i6$1.FormlyJsonschema }]; } });
|
@@ -989,10 +992,10 @@ class RslIonicDataTableComponent {
|
|
989
992
|
});
|
990
993
|
return result;
|
991
994
|
}
|
992
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
993
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
995
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: RslIonicDataTableComponent, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }, { token: i2.TranslateService }, { token: i3.Location }, { token: i0.Injector }, { token: i4.NavController }, { token: IonicDialogService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
996
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.10", type: RslIonicDataTableComponent, isStandalone: true, selector: "app-rsl-ionic-data-table", inputs: { showSerach: "showSerach", searchFields: "searchFields", customInclude: "customInclude", defaultSort: "defaultSort", defaultSortDirection: "defaultSortDirection", deletePropertyName: "deletePropertyName", defaultFilter: "defaultFilter", showHeader: "showHeader", deleteDisableRule: "deleteDisableRule", hasAdd: "hasAdd", canDelete: "canDelete", canEdit: "canEdit", model: "model", modelService: "modelService" }, viewQueries: [{ propertyName: "actionsTmpl", first: true, predicate: ["actionsTmpl"], descendants: true, static: true }], ngImport: i0, template: "<ion-header *ngIf=\"showHeader\">\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-menu-button></ion-menu-button>\n <ion-back-button></ion-back-button>\n </ion-buttons>\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\n </ion-toolbar>\n <ng-container [ngTemplateOutlet]=\"search\"></ng-container>\n</ion-header>\n\n<ion-content [fullscreen]=\"true\">\n\n <ion-refresher slot=\"fixed\" (ionRefresh)=\"handleRefresh($event)\">\n <ion-refresher-content></ion-refresher-content>\n </ion-refresher>\n\n <ngx-datatable class=\"material fullscreen rls-server-scrolling\" style=\"top: 115px\" [rows]=\"data\" [columns]=\"columns\"\n [columnMode]=\"ColumnMode.standard\" [headerHeight]=\"headerHeight\" [rowHeight]=\"rowHeight\" [scrollbarV]=\"true\"\n [loadingIndicator]=\"isLoading\" [scrollbarH]=\"true\" (scroll)=\"onScroll($event.offsetY)\"\n >\n </ngx-datatable>\n \n <ng-template #actionsTmpl let-row=\"row\" let-value=\"value\">\n <ion-button fill=\"clear\" *ngIf=\"canEdit\" (click)='editModel(row)'>\n <ion-icon slot=\"icon-only\" name=\"create\" (click)='editModel(row)'></ion-icon>\n </ion-button>\n <ion-button fill=\"clear\" *ngIf=\"deleteEnabled(row)\" (click)='deleteModel(row)'>\n <ion-icon color=\"danger\" slot=\"icon-only\" name=\"trash\" (click)='deleteModel(row)'></ion-icon>\n </ion-button>\n </ng-template>\n\n</ion-content>\n\n<ng-template #header>\n <ion-title class=\"ion-text-center\">{{title}}</ion-title>\n <ion-button slot=\"end\" (click)=\"onAdd()\" fill=\"clear\" *ngIf=\"hasAdd\">\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\n </ion-button>\n</ng-template>\n\n<ng-template #search>\n <ion-toolbar *ngIf=\"showSerach\">\n <ion-searchbar [debounce]=\"1000\" (ionChange)=\"handleChange($event)\"></ion-searchbar>\n </ion-toolbar>\n</ng-template>", styles: [".rls-server-scrolling{height:calc(100vh - 110px)}::ng-deep .progress-linear{position:fixed!important;bottom:0}::ng-deep .actions-cell{padding:5px 0 0 .9rem!important}::ng-deep .align-right{text-align:right!important}\n"], dependencies: [{ kind: "ngmodule", type: RslIonicModuleModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { kind: "component", type: i4.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: i4.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i4.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: i4.IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: i4.IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "component", type: i4.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i4.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i4.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i4.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }, { kind: "component", type: i6$2.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }] }); }
|
994
997
|
}
|
995
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
998
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: RslIonicDataTableComponent, decorators: [{
|
996
999
|
type: Component,
|
997
1000
|
args: [{ standalone: true, selector: 'app-rsl-ionic-data-table', imports: [RslIonicModuleModule], template: "<ion-header *ngIf=\"showHeader\">\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-menu-button></ion-menu-button>\n <ion-back-button></ion-back-button>\n </ion-buttons>\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\n </ion-toolbar>\n <ng-container [ngTemplateOutlet]=\"search\"></ng-container>\n</ion-header>\n\n<ion-content [fullscreen]=\"true\">\n\n <ion-refresher slot=\"fixed\" (ionRefresh)=\"handleRefresh($event)\">\n <ion-refresher-content></ion-refresher-content>\n </ion-refresher>\n\n <ngx-datatable class=\"material fullscreen rls-server-scrolling\" style=\"top: 115px\" [rows]=\"data\" [columns]=\"columns\"\n [columnMode]=\"ColumnMode.standard\" [headerHeight]=\"headerHeight\" [rowHeight]=\"rowHeight\" [scrollbarV]=\"true\"\n [loadingIndicator]=\"isLoading\" [scrollbarH]=\"true\" (scroll)=\"onScroll($event.offsetY)\"\n >\n </ngx-datatable>\n \n <ng-template #actionsTmpl let-row=\"row\" let-value=\"value\">\n <ion-button fill=\"clear\" *ngIf=\"canEdit\" (click)='editModel(row)'>\n <ion-icon slot=\"icon-only\" name=\"create\" (click)='editModel(row)'></ion-icon>\n </ion-button>\n <ion-button fill=\"clear\" *ngIf=\"deleteEnabled(row)\" (click)='deleteModel(row)'>\n <ion-icon color=\"danger\" slot=\"icon-only\" name=\"trash\" (click)='deleteModel(row)'></ion-icon>\n </ion-button>\n </ng-template>\n\n</ion-content>\n\n<ng-template #header>\n <ion-title class=\"ion-text-center\">{{title}}</ion-title>\n <ion-button slot=\"end\" (click)=\"onAdd()\" fill=\"clear\" *ngIf=\"hasAdd\">\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\n </ion-button>\n</ng-template>\n\n<ng-template #search>\n <ion-toolbar *ngIf=\"showSerach\">\n <ion-searchbar [debounce]=\"1000\" (ionChange)=\"handleChange($event)\"></ion-searchbar>\n </ion-toolbar>\n</ng-template>", styles: [".rls-server-scrolling{height:calc(100vh - 110px)}::ng-deep .progress-linear{position:fixed!important;bottom:0}::ng-deep .actions-cell{padding:5px 0 0 .9rem!important}::ng-deep .align-right{text-align:right!important}\n"] }]
|
998
1001
|
}], ctorParameters: function () { return [{ type: i1$2.Router }, { type: i1$2.ActivatedRoute }, { type: i2.TranslateService }, { type: i3.Location }, { type: i0.Injector }, { type: i4.NavController }, { type: IonicDialogService }, { type: i0.ElementRef }]; }, propDecorators: { actionsTmpl: [{
|
@@ -1252,10 +1255,10 @@ class RslIonicGridComponent {
|
|
1252
1255
|
});
|
1253
1256
|
return result;
|
1254
1257
|
}
|
1255
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
1256
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
1258
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: RslIonicGridComponent, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }, { token: i2.TranslateService }, { token: i3.Location }, { token: i0.Injector }, { token: i4.LoadingController }, { token: i4.NavController }, { token: IonicDialogService }, { token: i3.DatePipe }, { token: i3.DecimalPipe }, { token: i3.PercentPipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
1259
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.10", type: RslIonicGridComponent, isStandalone: true, selector: "rsl-ionic-grid", inputs: { showSerach: "showSerach", searchFields: "searchFields", customInclude: "customInclude", defaultSort: "defaultSort", defaultSortDirection: "defaultSortDirection", deletePropertyName: "deletePropertyName", defaultFilter: "defaultFilter", showHeader: "showHeader", deleteDisableRule: "deleteDisableRule", model: "model", modelService: "modelService" }, ngImport: i0, template: "<ion-header *ngIf=\"showHeader\">\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-menu-button></ion-menu-button>\n <ion-back-button></ion-back-button>\n </ion-buttons>\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\n </ion-toolbar>\n <ng-container [ngTemplateOutlet]=\"search\"></ng-container>\n</ion-header>\n\n<ion-content [fullscreen]=\"true\">\n\n <ion-refresher slot=\"fixed\" (ionRefresh)=\"handleRefresh($event)\">\n <ion-refresher-content></ion-refresher-content>\n </ion-refresher>\n\n <ion-list>\n <ng-container *ngFor=\"let item of data\">\n <ion-item-sliding>\n <ng-container [ngTemplateOutlet]=\"listItem\" [ngTemplateOutletContext]=\"{item}\"></ng-container>\n <ion-item-options *ngIf=\"deleteEnabled(item)\" side=\"end\">\n <ion-item-option color=\"danger\">\n <ion-icon slot=\"icon-only\" name=\"trash\" (click)='deleteModel(item)'></ion-icon>\n </ion-item-option>\n </ion-item-options>\n </ion-item-sliding>\n </ng-container>\n </ion-list>\n <ion-infinite-scroll threshold=\"100px\" (ionInfinite)=\"loadData($event)\">\n <ion-infinite-scroll-content loadingSpinner=\"bubbles\" loadingText=\"Loading more data...\">\n </ion-infinite-scroll-content>\n </ion-infinite-scroll>\n\n</ion-content>\n\n<ng-template #header>\n <ion-title class=\"ion-text-center\">{{title |translate}}</ion-title>\n <ion-button slot=\"end\" (click)=\"onAdd()\" fill=\"clear\">\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\n </ion-button>\n</ng-template>\n\n<ng-template #search>\n <ion-toolbar *ngIf=\"showSerach\">\n <ion-searchbar [debounce]=\"1000\" (ionChange)=\"handleChange($event)\"></ion-searchbar>\n </ion-toolbar>\n</ng-template>\n\n<ng-template #listItem let-item='item'>\n <ion-item button (click)='editModel(item)'>\n <ion-label>\n <ng-container *ngFor=\"let row of gridLayout\">\n <h2 *ngIf=\"row.primary\"> {{getCelValue(item,row.key)}} </h2>\n <h3 *ngIf=\"!row.primary\">{{getCelValue(item,row.key)}} </h3>\n </ng-container>\n </ion-label>\n </ion-item>\n</ng-template>", dependencies: [{ kind: "ngmodule", type: RslIonicModuleModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { kind: "component", type: i4.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: i4.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i4.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: i4.IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }, { kind: "component", type: i4.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i4.IonItemOption, selector: "ion-item-option", inputs: ["color", "disabled", "download", "expandable", "href", "mode", "rel", "target", "type"] }, { kind: "component", type: i4.IonItemOptions, selector: "ion-item-options", inputs: ["side"] }, { kind: "component", type: i4.IonItemSliding, selector: "ion-item-sliding", inputs: ["disabled"] }, { kind: "component", type: i4.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i4.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i4.IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: i4.IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: i4.IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "component", type: i4.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i4.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i4.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i4.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
1257
1260
|
}
|
1258
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
1261
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: RslIonicGridComponent, decorators: [{
|
1259
1262
|
type: Component,
|
1260
1263
|
args: [{ standalone: true, selector: 'rsl-ionic-grid', imports: [RslIonicModuleModule], template: "<ion-header *ngIf=\"showHeader\">\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-menu-button></ion-menu-button>\n <ion-back-button></ion-back-button>\n </ion-buttons>\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\n </ion-toolbar>\n <ng-container [ngTemplateOutlet]=\"search\"></ng-container>\n</ion-header>\n\n<ion-content [fullscreen]=\"true\">\n\n <ion-refresher slot=\"fixed\" (ionRefresh)=\"handleRefresh($event)\">\n <ion-refresher-content></ion-refresher-content>\n </ion-refresher>\n\n <ion-list>\n <ng-container *ngFor=\"let item of data\">\n <ion-item-sliding>\n <ng-container [ngTemplateOutlet]=\"listItem\" [ngTemplateOutletContext]=\"{item}\"></ng-container>\n <ion-item-options *ngIf=\"deleteEnabled(item)\" side=\"end\">\n <ion-item-option color=\"danger\">\n <ion-icon slot=\"icon-only\" name=\"trash\" (click)='deleteModel(item)'></ion-icon>\n </ion-item-option>\n </ion-item-options>\n </ion-item-sliding>\n </ng-container>\n </ion-list>\n <ion-infinite-scroll threshold=\"100px\" (ionInfinite)=\"loadData($event)\">\n <ion-infinite-scroll-content loadingSpinner=\"bubbles\" loadingText=\"Loading more data...\">\n </ion-infinite-scroll-content>\n </ion-infinite-scroll>\n\n</ion-content>\n\n<ng-template #header>\n <ion-title class=\"ion-text-center\">{{title |translate}}</ion-title>\n <ion-button slot=\"end\" (click)=\"onAdd()\" fill=\"clear\">\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\n </ion-button>\n</ng-template>\n\n<ng-template #search>\n <ion-toolbar *ngIf=\"showSerach\">\n <ion-searchbar [debounce]=\"1000\" (ionChange)=\"handleChange($event)\"></ion-searchbar>\n </ion-toolbar>\n</ng-template>\n\n<ng-template #listItem let-item='item'>\n <ion-item button (click)='editModel(item)'>\n <ion-label>\n <ng-container *ngFor=\"let row of gridLayout\">\n <h2 *ngIf=\"row.primary\"> {{getCelValue(item,row.key)}} </h2>\n <h3 *ngIf=\"!row.primary\">{{getCelValue(item,row.key)}} </h3>\n </ng-container>\n </ion-label>\n </ion-item>\n</ng-template>" }]
|
1261
1264
|
}], ctorParameters: function () { return [{ type: i1$2.Router }, { type: i1$2.ActivatedRoute }, { type: i2.TranslateService }, { type: i3.Location }, { type: i0.Injector }, { type: i4.LoadingController }, { type: i4.NavController }, { type: IonicDialogService }, { type: i3.DatePipe }, { type: i3.DecimalPipe }, { type: i3.PercentPipe }]; }, propDecorators: { showSerach: [{
|
@@ -1309,5 +1312,5 @@ function IonicListLayout(config) {
|
|
1309
1312
|
* Generated bundle index. Do not edit.
|
1310
1313
|
*/
|
1311
1314
|
|
1312
|
-
export { AccordionWrapperComponent, GenericIonicCrudComponent, IonicDataTableLayout, IonicDialogService, IonicListLayout, PanelWrapperComponent, RepeatTypeComponent, RslIonicDataTableComponent, RslIonicGridComponent, TranslateExtension, fieldMatchValidator, registerTranslateExtension };
|
1315
|
+
export { AccordionWrapperComponent, GenericIonicCrudComponent, IonicDataTableLayout, IonicDialogService, IonicListLayout, PanelWrapperComponent, RepeatTypeComponent, RslIonicDataTableComponent, RslIonicGridComponent, RslIonicSmButtonsComponent, TranslateExtension, fieldMatchValidator, registerTranslateExtension };
|
1313
1316
|
//# sourceMappingURL=rosoftlab-ionic.mjs.map
|