@sumaris-net/ngx-components 1.19.3 → 1.20.0-rc3
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/bundles/sumaris-net.ngx-components.umd.js +420 -245
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/doc/changelog.md +4 -0
- package/esm2015/src/app/admin/users/list/users.js +5 -1
- package/esm2015/src/app/core/core.module.js +3 -1
- package/esm2015/src/app/core/services/model/entity.model.js +5 -1
- package/esm2015/src/app/core/table/entities-table-datasource.class.js +193 -131
- package/esm2015/src/app/core/table/memory-table.class.js +3 -3
- package/esm2015/src/app/core/table/table.class.js +95 -91
- package/esm2015/src/app/shared/validator/validators.js +2 -2
- package/fesm2015/sumaris-net.ngx-components.js +294 -220
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +2 -2
- package/src/app/core/services/model/entity.model.d.ts +1 -0
- package/src/app/core/table/entities-table-datasource.class.d.ts +25 -28
- package/src/app/core/table/table.class.d.ts +2 -2
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -2908,7 +2908,7 @@ const moment$2 = momentImported;
|
|
|
2908
2908
|
// @dynamic
|
|
2909
2909
|
class SharedValidators {
|
|
2910
2910
|
static getDoubleRegexp(maxDecimals) {
|
|
2911
|
-
if (isNil(maxDecimals))
|
|
2911
|
+
if (isNil(maxDecimals) || maxDecimals === -1)
|
|
2912
2912
|
return this._REGEXP_CACHE.DOUBLE_BY_MAX_DECIMALS.NO_LIMIT;
|
|
2913
2913
|
if (maxDecimals < 0)
|
|
2914
2914
|
throw new Error(`Invalid maxDecimals value: ${maxDecimals}`);
|
|
@@ -9730,6 +9730,10 @@ class EntityUtils {
|
|
|
9730
9730
|
return isNotNil(obj.__typename) && (typeof obj.fromObject === 'function') && (typeof obj.asObject === 'function');
|
|
9731
9731
|
}
|
|
9732
9732
|
// Check that the object has a NOT nil attribute (ID by default)
|
|
9733
|
+
static isNotEntity(obj) {
|
|
9734
|
+
return isNil(obj.__typename) || (typeof obj.fromObject !== 'function') || (typeof obj.asObject !== 'function');
|
|
9735
|
+
}
|
|
9736
|
+
// Check that the object has a NOT nil attribute (ID by default)
|
|
9733
9737
|
static isNotEmpty(obj, checkedAttribute) {
|
|
9734
9738
|
return !!obj && obj[checkedAttribute] !== null && obj[checkedAttribute] !== undefined;
|
|
9735
9739
|
}
|
|
@@ -20974,6 +20978,7 @@ CoreModule.decorators = [
|
|
|
20974
20978
|
CacheModule,
|
|
20975
20979
|
IonicStorageModule,
|
|
20976
20980
|
NgxJdenticonModule,
|
|
20981
|
+
TranslateModule.forChild(),
|
|
20977
20982
|
// Sub modules
|
|
20978
20983
|
AppGraphQLModule,
|
|
20979
20984
|
AppMenuModule
|
|
@@ -21562,8 +21567,6 @@ class AppTableUtils {
|
|
|
21562
21567
|
}
|
|
21563
21568
|
}
|
|
21564
21569
|
|
|
21565
|
-
class AppTableDataSourceOptions {
|
|
21566
|
-
}
|
|
21567
21570
|
// @dynamic
|
|
21568
21571
|
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
21569
21572
|
class EntitiesTableDataSource extends TableDataSource {
|
|
@@ -21572,34 +21575,27 @@ class EntitiesTableDataSource extends TableDataSource {
|
|
|
21572
21575
|
*
|
|
21573
21576
|
* @param dataService A service to load and save data
|
|
21574
21577
|
* @param dataType Type of data contained by the Table. If not specified, then `data` with at least one element must be specified.
|
|
21575
|
-
* @param environment
|
|
21576
21578
|
* @param validatorService Service that create instances of the FormGroup used to validate row fields.
|
|
21577
21579
|
* @param config Additional configuration for table.
|
|
21578
21580
|
*/
|
|
21579
21581
|
constructor(dataType, dataService, validatorService, config) {
|
|
21580
|
-
super([], dataType, validatorService, config);
|
|
21582
|
+
super([], dataType, validatorService, Object.assign({ dataServiceOptions: {}, debug: config && config.suppressErrors === false, keepOriginalDataAfterConfirm: false }, config));
|
|
21581
21583
|
this.dataService = dataService;
|
|
21582
21584
|
this._creating = false;
|
|
21583
21585
|
this._saving = false;
|
|
21584
|
-
this._useValidator = false;
|
|
21585
21586
|
this._stopWatching$ = new Subject();
|
|
21586
21587
|
this._editingRowCount = 0;
|
|
21587
21588
|
this._fetchMoreFn = null;
|
|
21588
21589
|
this.loadingSubject = new BehaviorSubject(undefined);
|
|
21589
|
-
this._options = Object.assign({ dataServiceOptions: {}, debug: config && config.suppressErrors === false, keepOriginalDataAfterConfirm: false }, config);
|
|
21590
|
-
this._useValidator = isNotNil(validatorService);
|
|
21591
21590
|
this._logTypeName = removeEnd((new dataType()).__typename || 'UnknownVO', 'VO');
|
|
21592
21591
|
// For DEV ONLY
|
|
21593
|
-
this._debug = this.
|
|
21592
|
+
this._debug = this.config.debug === true;
|
|
21594
21593
|
}
|
|
21595
21594
|
get serviceOptions() {
|
|
21596
|
-
return this.
|
|
21595
|
+
return this.config.dataServiceOptions;
|
|
21597
21596
|
}
|
|
21598
21597
|
set serviceOptions(value) {
|
|
21599
|
-
this.
|
|
21600
|
-
}
|
|
21601
|
-
get options() {
|
|
21602
|
-
return this._options;
|
|
21598
|
+
this.config.dataServiceOptions = value;
|
|
21603
21599
|
}
|
|
21604
21600
|
get loaded() {
|
|
21605
21601
|
return this.loadingSubject.value === false; // Should be false when undefined (initial state)
|
|
@@ -21607,12 +21603,11 @@ class EntitiesTableDataSource extends TableDataSource {
|
|
|
21607
21603
|
get loading() {
|
|
21608
21604
|
return this.loadingSubject.value !== false; // Should be true when undefined (initial state)
|
|
21609
21605
|
}
|
|
21610
|
-
|
|
21606
|
+
disconnect(collectionViewer) {
|
|
21607
|
+
super.disconnect(collectionViewer);
|
|
21611
21608
|
this._stopWatching$.next();
|
|
21612
21609
|
this._stopWatching$.complete();
|
|
21613
|
-
this._stopWatching$.unsubscribe();
|
|
21614
21610
|
this.loadingSubject.complete();
|
|
21615
|
-
this.loadingSubject.unsubscribe();
|
|
21616
21611
|
}
|
|
21617
21612
|
watchAll(offset, size, sortBy, sortDirection, filter) {
|
|
21618
21613
|
this._stopWatching$.next();
|
|
@@ -21656,27 +21651,26 @@ class EntitiesTableDataSource extends TableDataSource {
|
|
|
21656
21651
|
// Get all rows
|
|
21657
21652
|
const rows = yield this.getRows();
|
|
21658
21653
|
// Finish editing all rows
|
|
21659
|
-
const
|
|
21654
|
+
const confirmed = yield this.confirmRows(rows);
|
|
21660
21655
|
// Cannot finish some rows: error
|
|
21661
|
-
if (
|
|
21656
|
+
if (!confirmed) {
|
|
21662
21657
|
// log errors
|
|
21663
21658
|
if (this._debug)
|
|
21664
|
-
|
|
21659
|
+
this.getEditingRows(rows).forEach(row => AppTableUtils.logRowErrors(row, `[table-datasource] ${this._logTypeName} row #${row.id}`));
|
|
21665
21660
|
// Stop with an error
|
|
21666
21661
|
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
21667
21662
|
}
|
|
21668
21663
|
this._editingRowCount = 0;
|
|
21669
21664
|
let data;
|
|
21670
21665
|
let dataToSave;
|
|
21671
|
-
if (this.
|
|
21666
|
+
if (!!this.validatorService) {
|
|
21672
21667
|
dataToSave = [];
|
|
21673
21668
|
data = rows.map(row => {
|
|
21674
|
-
const
|
|
21675
|
-
currentData.fromObject(row.currentData);
|
|
21669
|
+
const entity = this.toEntity(row.currentData);
|
|
21676
21670
|
// Filter to keep only dirty row
|
|
21677
21671
|
if (onlyDirtyRows && row.validator.dirty)
|
|
21678
|
-
dataToSave.push(
|
|
21679
|
-
return
|
|
21672
|
+
dataToSave.push(entity);
|
|
21673
|
+
return entity;
|
|
21680
21674
|
});
|
|
21681
21675
|
if (!onlyDirtyRows)
|
|
21682
21676
|
dataToSave = data;
|
|
@@ -21713,25 +21707,33 @@ class EntitiesTableDataSource extends TableDataSource {
|
|
|
21713
21707
|
}
|
|
21714
21708
|
});
|
|
21715
21709
|
}
|
|
21716
|
-
|
|
21717
|
-
if (
|
|
21718
|
-
|
|
21719
|
-
|
|
21720
|
-
if (!opts || opts.emitEvent !== false) {
|
|
21721
|
-
this.markAsLoaded();
|
|
21710
|
+
getDataFromRows(rows, options = { originalData: false, toEntity: false }) {
|
|
21711
|
+
if (options.toEntity) {
|
|
21712
|
+
return super.getDataFromRows(rows, options)
|
|
21713
|
+
.map(data => this.toEntity(data));
|
|
21722
21714
|
}
|
|
21715
|
+
return super.getDataFromRows(rows, options);
|
|
21723
21716
|
}
|
|
21724
|
-
|
|
21725
|
-
|
|
21726
|
-
|
|
21727
|
-
|
|
21728
|
-
|
|
21729
|
-
|
|
21730
|
-
return
|
|
21717
|
+
toEntity(data) {
|
|
21718
|
+
if (EntityUtils.isNotEntity(data)) {
|
|
21719
|
+
const entity = new this.dataConstructor();
|
|
21720
|
+
entity.fromObject(data);
|
|
21721
|
+
return entity;
|
|
21722
|
+
}
|
|
21723
|
+
return data;
|
|
21731
21724
|
}
|
|
21732
|
-
|
|
21733
|
-
|
|
21734
|
-
|
|
21725
|
+
updateDatasource(data, opts = { emitEvent: true }) {
|
|
21726
|
+
const _super = Object.create(null, {
|
|
21727
|
+
updateDatasource: { get: () => super.updateDatasource }
|
|
21728
|
+
});
|
|
21729
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21730
|
+
if (this._debug)
|
|
21731
|
+
console.debug(`[table-datasource] Updating datasource with data:`, data);
|
|
21732
|
+
yield _super.updateDatasource.call(this, data, opts);
|
|
21733
|
+
if (opts.emitEvent) {
|
|
21734
|
+
this.markAsLoaded();
|
|
21735
|
+
}
|
|
21736
|
+
});
|
|
21735
21737
|
}
|
|
21736
21738
|
waitIdle(debounceTimeMs) {
|
|
21737
21739
|
return firstFalsePromise(this.loadingSubject
|
|
@@ -21740,34 +21742,60 @@ class EntitiesTableDataSource extends TableDataSource {
|
|
|
21740
21742
|
));
|
|
21741
21743
|
}
|
|
21742
21744
|
confirmCreate(row) {
|
|
21743
|
-
|
|
21744
|
-
|
|
21745
|
-
|
|
21746
|
-
|
|
21747
|
-
|
|
21748
|
-
|
|
21749
|
-
|
|
21745
|
+
const _super = Object.create(null, {
|
|
21746
|
+
confirmCreate: { get: () => super.confirmCreate }
|
|
21747
|
+
});
|
|
21748
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21749
|
+
if (!(yield _super.confirmCreate.call(this, row)))
|
|
21750
|
+
return false;
|
|
21751
|
+
if (row.editing && row.validator) {
|
|
21752
|
+
console.warn('[table-datasource] Row still has {editing: true} after confirmCreate()! Force editing to false');
|
|
21753
|
+
row.validator.disable({ onlySelf: true, emitEvent: false });
|
|
21754
|
+
}
|
|
21755
|
+
return true;
|
|
21756
|
+
});
|
|
21750
21757
|
}
|
|
21751
21758
|
confirmEdit(row) {
|
|
21752
|
-
|
|
21753
|
-
|
|
21754
|
-
|
|
21755
|
-
|
|
21756
|
-
|
|
21757
|
-
|
|
21758
|
-
|
|
21759
|
+
const _super = Object.create(null, {
|
|
21760
|
+
confirmEdit: { get: () => super.confirmEdit }
|
|
21761
|
+
});
|
|
21762
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21763
|
+
if (!(yield _super.confirmEdit.call(this, row)))
|
|
21764
|
+
return false;
|
|
21765
|
+
if (row.editing && row.validator) {
|
|
21766
|
+
console.warn('[table-datasource] Row still has {editing: true} after confirmCreate()! Force editing to false');
|
|
21767
|
+
row.validator.disable({ onlySelf: true, emitEvent: false });
|
|
21768
|
+
}
|
|
21769
|
+
return true;
|
|
21770
|
+
});
|
|
21759
21771
|
}
|
|
21760
21772
|
startEdit(row) {
|
|
21761
|
-
|
|
21762
|
-
|
|
21763
|
-
|
|
21764
|
-
this
|
|
21773
|
+
const _super = Object.create(null, {
|
|
21774
|
+
startEdit: { get: () => super.startEdit }
|
|
21775
|
+
});
|
|
21776
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21777
|
+
if (row.editing)
|
|
21778
|
+
return; // Already editing
|
|
21779
|
+
if (this._debug)
|
|
21780
|
+
console.debug('[table-datasource] Start to edit row', row);
|
|
21781
|
+
const done = yield _super.startEdit.call(this, row);
|
|
21782
|
+
if (done)
|
|
21783
|
+
this._editingRowCount++;
|
|
21784
|
+
return done;
|
|
21785
|
+
});
|
|
21765
21786
|
}
|
|
21766
|
-
|
|
21767
|
-
|
|
21768
|
-
|
|
21769
|
-
|
|
21770
|
-
this
|
|
21787
|
+
cancel(row) {
|
|
21788
|
+
const _super = Object.create(null, {
|
|
21789
|
+
cancel: { get: () => super.cancel }
|
|
21790
|
+
});
|
|
21791
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21792
|
+
if (this._debug)
|
|
21793
|
+
console.debug('[table-datasource] Cancelling row', row);
|
|
21794
|
+
const done = yield _super.cancel.call(this, row);
|
|
21795
|
+
if (done)
|
|
21796
|
+
this._editingRowCount--;
|
|
21797
|
+
return done;
|
|
21798
|
+
});
|
|
21771
21799
|
}
|
|
21772
21800
|
handleError(error, message) {
|
|
21773
21801
|
const errorMsg = error && error.message || error;
|
|
@@ -21782,59 +21810,77 @@ class EntitiesTableDataSource extends TableDataSource {
|
|
|
21782
21810
|
throw error;
|
|
21783
21811
|
}
|
|
21784
21812
|
delete(id) {
|
|
21785
|
-
|
|
21786
|
-
|
|
21787
|
-
|
|
21788
|
-
|
|
21789
|
-
|
|
21790
|
-
|
|
21791
|
-
|
|
21792
|
-
|
|
21793
|
-
|
|
21794
|
-
|
|
21795
|
-
|
|
21796
|
-
|
|
21797
|
-
|
|
21798
|
-
|
|
21799
|
-
|
|
21813
|
+
const _super = Object.create(null, {
|
|
21814
|
+
delete: { get: () => super.delete }
|
|
21815
|
+
});
|
|
21816
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21817
|
+
// If new row: not need to propagate to the dataService
|
|
21818
|
+
if (id === -1) {
|
|
21819
|
+
return _super.delete.call(this, id);
|
|
21820
|
+
}
|
|
21821
|
+
const row = this.getRow(id);
|
|
21822
|
+
if (!row) {
|
|
21823
|
+
console.error(`[table-datasource] Row to delete with id=${id} not found`);
|
|
21824
|
+
return;
|
|
21825
|
+
}
|
|
21826
|
+
this.markAsLoading();
|
|
21827
|
+
try {
|
|
21828
|
+
yield this.dataService.deleteAll([row.currentData], this.serviceOptions);
|
|
21829
|
+
// Make sure row has been deleted (because GrapQHl cache remove can failed)
|
|
21830
|
+
yield sleep(300);
|
|
21800
21831
|
const present = this.getRow(id) === row;
|
|
21801
|
-
if (present)
|
|
21802
|
-
|
|
21803
|
-
|
|
21804
|
-
|
|
21832
|
+
if (present) {
|
|
21833
|
+
console.warn('[table-datasource] Force deletion of 1 row (Is service applying deletion to observable ?)');
|
|
21834
|
+
yield _super.delete.call(this, id);
|
|
21835
|
+
}
|
|
21836
|
+
}
|
|
21837
|
+
catch (err) {
|
|
21838
|
+
this.handleErrorPromise(err);
|
|
21839
|
+
}
|
|
21840
|
+
finally {
|
|
21841
|
+
this.markAsLoaded();
|
|
21842
|
+
}
|
|
21805
21843
|
});
|
|
21806
21844
|
}
|
|
21807
21845
|
deleteAll(rows) {
|
|
21808
|
-
|
|
21809
|
-
|
|
21810
|
-
|
|
21811
|
-
|
|
21812
|
-
|
|
21813
|
-
|
|
21814
|
-
|
|
21815
|
-
|
|
21816
|
-
|
|
21817
|
-
|
|
21818
|
-
|
|
21819
|
-
|
|
21820
|
-
|
|
21821
|
-
|
|
21822
|
-
|
|
21823
|
-
const
|
|
21824
|
-
|
|
21825
|
-
|
|
21826
|
-
|
|
21827
|
-
|
|
21828
|
-
|
|
21829
|
-
|
|
21846
|
+
const _super = Object.create(null, {
|
|
21847
|
+
delete: { get: () => super.delete }
|
|
21848
|
+
});
|
|
21849
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21850
|
+
this.markAsLoading();
|
|
21851
|
+
const data = this.getDataFromRows(rows);
|
|
21852
|
+
const rowsById = rows.reduce((res, row) => {
|
|
21853
|
+
res[row.id] = row;
|
|
21854
|
+
return res;
|
|
21855
|
+
}, {});
|
|
21856
|
+
const self = this;
|
|
21857
|
+
try {
|
|
21858
|
+
yield this.dataService.deleteAll(data, this.serviceOptions);
|
|
21859
|
+
// Workaround, to be sure all rows has been deleted
|
|
21860
|
+
// Sometimes, the service miss deletion, or GrapQHl cache remove failed
|
|
21861
|
+
const rowNotDeleted = Object.getOwnPropertyNames(rowsById).reduce((res, id) => {
|
|
21862
|
+
const row = rowsById[id];
|
|
21863
|
+
const present = self.getRow(+id) === row;
|
|
21864
|
+
return present ? res.concat(row) : res;
|
|
21865
|
+
}, []).sort((a, b) => a.id > b.id ? -1 : 1);
|
|
21866
|
+
// Apply missing deletion
|
|
21867
|
+
if (isNotEmptyArray(rowNotDeleted)) {
|
|
21868
|
+
console.warn(`[table-datasource] Force deletion of ${rowNotDeleted.length} rows (Is service applying deletion to observable ?)`);
|
|
21869
|
+
yield Promise.all(rowNotDeleted.map(r => _super.delete.call(this, r.id)));
|
|
21870
|
+
}
|
|
21871
|
+
}
|
|
21872
|
+
catch (err) {
|
|
21873
|
+
this.handleErrorPromise(err);
|
|
21874
|
+
}
|
|
21875
|
+
finally {
|
|
21876
|
+
this.markAsLoaded();
|
|
21830
21877
|
}
|
|
21831
|
-
this.loadingSubject.next(false);
|
|
21832
21878
|
});
|
|
21833
21879
|
}
|
|
21834
21880
|
getRows() {
|
|
21835
|
-
return
|
|
21881
|
+
return this.rowsSubject.toPromise();
|
|
21836
21882
|
}
|
|
21837
|
-
|
|
21883
|
+
createNew(insertAt) {
|
|
21838
21884
|
const _super = Object.create(null, {
|
|
21839
21885
|
createNew: { get: () => super.createNew }
|
|
21840
21886
|
});
|
|
@@ -21842,22 +21888,39 @@ class EntitiesTableDataSource extends TableDataSource {
|
|
|
21842
21888
|
if (this._creating)
|
|
21843
21889
|
return; // Avoid multiple call (should never occur)
|
|
21844
21890
|
this._creating = true;
|
|
21845
|
-
_super.createNew.call(this, insertAt);
|
|
21846
|
-
|
|
21847
|
-
|
|
21848
|
-
|
|
21849
|
-
|
|
21850
|
-
|
|
21851
|
-
|
|
21852
|
-
|
|
21853
|
-
|
|
21854
|
-
catch (err) {
|
|
21855
|
-
console.error(err && err.message || err, err);
|
|
21856
|
-
}
|
|
21891
|
+
const done = yield _super.createNew.call(this, insertAt);
|
|
21892
|
+
if (done && this.config.onRowCreated) {
|
|
21893
|
+
const row = this.getRow(-1);
|
|
21894
|
+
try {
|
|
21895
|
+
yield this.config.onRowCreated(row);
|
|
21896
|
+
}
|
|
21897
|
+
catch (err) {
|
|
21898
|
+
console.error(err && err.message || err, err);
|
|
21899
|
+
// Continue
|
|
21857
21900
|
}
|
|
21858
21901
|
}
|
|
21859
|
-
|
|
21902
|
+
if (done)
|
|
21903
|
+
this._editingRowCount++;
|
|
21860
21904
|
this._creating = false;
|
|
21905
|
+
return done;
|
|
21906
|
+
});
|
|
21907
|
+
}
|
|
21908
|
+
createRowValidator() {
|
|
21909
|
+
const _super = Object.create(null, {
|
|
21910
|
+
createRowValidator: { get: () => super.createRowValidator }
|
|
21911
|
+
});
|
|
21912
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21913
|
+
const validator = yield _super.createRowValidator.call(this);
|
|
21914
|
+
if (validator && this.config.onRowValidator) {
|
|
21915
|
+
try {
|
|
21916
|
+
yield this.config.onRowValidator(validator);
|
|
21917
|
+
}
|
|
21918
|
+
catch (err) {
|
|
21919
|
+
console.error(err && err.message || err, err);
|
|
21920
|
+
// Continue
|
|
21921
|
+
}
|
|
21922
|
+
}
|
|
21923
|
+
return validator;
|
|
21861
21924
|
});
|
|
21862
21925
|
}
|
|
21863
21926
|
getData() {
|
|
@@ -21872,21 +21935,24 @@ class EntitiesTableDataSource extends TableDataSource {
|
|
|
21872
21935
|
});
|
|
21873
21936
|
return __awaiter(this, void 0, void 0, function* () {
|
|
21874
21937
|
if (!this._fetchMoreFn)
|
|
21875
|
-
return false;
|
|
21938
|
+
return false;
|
|
21876
21939
|
if (this._editingRowCount > 0) {
|
|
21877
21940
|
console.warn('Cannot fetch more because still editing row');
|
|
21878
21941
|
return;
|
|
21879
21942
|
}
|
|
21943
|
+
// Forget the fetchMore function, to avoid multiple call
|
|
21944
|
+
const fetchMoreFn = this._fetchMoreFn;
|
|
21945
|
+
this._fetchMoreFn = null;
|
|
21880
21946
|
// Fetch next page
|
|
21881
|
-
|
|
21882
|
-
const res = yield this._fetchMoreFn();
|
|
21947
|
+
const res = yield fetchMoreFn();
|
|
21883
21948
|
// Skip if empty (no more data)
|
|
21884
21949
|
if (isNotEmptyArray(res === null || res === void 0 ? void 0 : res.data))
|
|
21885
21950
|
return false;
|
|
21886
21951
|
// Update the data source
|
|
21952
|
+
// TODO review this, to keep existing rows, instead of creating new TableElement + validator !
|
|
21887
21953
|
const existingData = yield this.getData();
|
|
21888
|
-
_super.updateDatasource.call(this, existingData.concat(...res.data), opts);
|
|
21889
|
-
//
|
|
21954
|
+
yield _super.updateDatasource.call(this, existingData.concat(...res.data), opts);
|
|
21955
|
+
// Store next fetchMore function
|
|
21890
21956
|
this._fetchMoreFn = res.fetchMore;
|
|
21891
21957
|
return true;
|
|
21892
21958
|
});
|
|
@@ -21909,8 +21975,8 @@ EntitiesTableDataSource.decorators = [
|
|
|
21909
21975
|
EntitiesTableDataSource.ctorParameters = () => [
|
|
21910
21976
|
{ type: Function },
|
|
21911
21977
|
{ type: undefined },
|
|
21912
|
-
{ type:
|
|
21913
|
-
{ type:
|
|
21978
|
+
{ type: undefined },
|
|
21979
|
+
{ type: undefined }
|
|
21914
21980
|
];
|
|
21915
21981
|
|
|
21916
21982
|
const SETTINGS_DISPLAY_COLUMNS = 'displayColumns';
|
|
@@ -22302,7 +22368,6 @@ class AppTable {
|
|
|
22302
22368
|
}
|
|
22303
22369
|
}
|
|
22304
22370
|
ngOnDestroy() {
|
|
22305
|
-
var _a;
|
|
22306
22371
|
this._subscription.unsubscribe();
|
|
22307
22372
|
// Unsubscribe column value changes
|
|
22308
22373
|
Object.keys(this._cellValueChangesDefs).forEach(col => this.stopCellValueChanges(col, true));
|
|
@@ -22327,7 +22392,6 @@ class AppTable {
|
|
|
22327
22392
|
this.onError.unsubscribe();
|
|
22328
22393
|
this._destroy$.next();
|
|
22329
22394
|
this._destroy$.unsubscribe();
|
|
22330
|
-
(_a = this._dataSource) === null || _a === void 0 ? void 0 : _a.ngOnDestroy();
|
|
22331
22395
|
}
|
|
22332
22396
|
updateView(res, opts) {
|
|
22333
22397
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -22369,7 +22433,7 @@ class AppTable {
|
|
|
22369
22433
|
this._dataSourceLoadingSubscription.unsubscribe();
|
|
22370
22434
|
this._subscription.remove(this._dataSourceLoadingSubscription);
|
|
22371
22435
|
}
|
|
22372
|
-
(_a = this._dataSource) === null || _a === void 0 ? void 0 : _a.
|
|
22436
|
+
(_a = this._dataSource) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
22373
22437
|
this._dataSource = null;
|
|
22374
22438
|
}
|
|
22375
22439
|
addColumnDef(column) {
|
|
@@ -22424,13 +22488,15 @@ class AppTable {
|
|
|
22424
22488
|
return true;
|
|
22425
22489
|
}
|
|
22426
22490
|
confirmAndForward(event, row) {
|
|
22427
|
-
|
|
22428
|
-
|
|
22429
|
-
|
|
22430
|
-
|
|
22431
|
-
|
|
22432
|
-
|
|
22433
|
-
|
|
22491
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22492
|
+
row = row || this.editedRow;
|
|
22493
|
+
const done = yield this.confirmEditCreate(event, row);
|
|
22494
|
+
if (done) {
|
|
22495
|
+
// Edit next row
|
|
22496
|
+
this.editRowById(event, row.id + 1, { focusColumn: this.firstUserColumn });
|
|
22497
|
+
}
|
|
22498
|
+
return done;
|
|
22499
|
+
});
|
|
22434
22500
|
}
|
|
22435
22501
|
editRowById(event, id, opts) {
|
|
22436
22502
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -22454,48 +22520,44 @@ class AppTable {
|
|
|
22454
22520
|
*/
|
|
22455
22521
|
confirmEditCreate(event, row) {
|
|
22456
22522
|
var _a;
|
|
22457
|
-
|
|
22458
|
-
|
|
22459
|
-
|
|
22460
|
-
|
|
22461
|
-
|
|
22462
|
-
|
|
22463
|
-
|
|
22464
|
-
|
|
22465
|
-
|
|
22466
|
-
|
|
22467
|
-
this.editedRow
|
|
22468
|
-
|
|
22469
|
-
|
|
22470
|
-
|
|
22471
|
-
|
|
22472
|
-
|
|
22473
|
-
|
|
22474
|
-
|
|
22475
|
-
|
|
22476
|
-
|
|
22477
|
-
|
|
22478
|
-
|
|
22479
|
-
|
|
22480
|
-
|
|
22481
|
-
|
|
22482
|
-
|
|
22483
|
-
|
|
22484
|
-
|
|
22485
|
-
|
|
22486
|
-
|
|
22487
|
-
|
|
22488
|
-
|
|
22489
|
-
|
|
22490
|
-
|
|
22491
|
-
|
|
22492
|
-
// Compute row error, and propagate to table's error
|
|
22493
|
-
if (this.propagateRowError) {
|
|
22494
|
-
const error = this.getRowError(row);
|
|
22495
|
-
this.setError(error);
|
|
22523
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22524
|
+
row = row || this.editedRow;
|
|
22525
|
+
if (!row || !row.editing)
|
|
22526
|
+
return true; // no row to confirm
|
|
22527
|
+
// Stop event
|
|
22528
|
+
event === null || event === void 0 ? void 0 : event.stopPropagation();
|
|
22529
|
+
// Confirmation edition or creation
|
|
22530
|
+
const done = yield row.confirmEditCreate();
|
|
22531
|
+
if (done) {
|
|
22532
|
+
// If edit finished, forget edited row
|
|
22533
|
+
if (row === this.editedRow) {
|
|
22534
|
+
this.editedRow = undefined;
|
|
22535
|
+
}
|
|
22536
|
+
// Mark table as dirty (if row is dirty)
|
|
22537
|
+
if ((_a = row.validator) === null || _a === void 0 ? void 0 : _a.dirty) {
|
|
22538
|
+
this.markAsDirty({ emitEvent: false /* because of resetError() */ });
|
|
22539
|
+
}
|
|
22540
|
+
// Clear error
|
|
22541
|
+
this.resetError();
|
|
22542
|
+
// Emit the confirm event
|
|
22543
|
+
this.onConfirmEditCreateRow.next(row);
|
|
22544
|
+
}
|
|
22545
|
+
else if (row.validator) {
|
|
22546
|
+
// NOT confirmed = row has error
|
|
22547
|
+
if (this.debug) {
|
|
22548
|
+
console.warn('[table] Cannot confirm row, because invalid');
|
|
22549
|
+
AppFormUtils.logFormErrors(row.validator, '[table] ');
|
|
22550
|
+
}
|
|
22551
|
+
// fix: mark all controls as touched to show errors
|
|
22552
|
+
row.validator.markAllAsTouched();
|
|
22553
|
+
// Compute row error, and propagate to table's error
|
|
22554
|
+
if (this.propagateRowError) {
|
|
22555
|
+
const error = this.getRowError(row);
|
|
22556
|
+
this.setError(error);
|
|
22557
|
+
}
|
|
22496
22558
|
}
|
|
22497
|
-
|
|
22498
|
-
|
|
22559
|
+
return done;
|
|
22560
|
+
});
|
|
22499
22561
|
}
|
|
22500
22562
|
cancelOrDelete(event, row, opts) {
|
|
22501
22563
|
// Delete new row
|
|
@@ -22540,6 +22602,7 @@ class AppTable {
|
|
|
22540
22602
|
// Keep edited row id (should be done BEFORE confirmEditCreate() )
|
|
22541
22603
|
this.previouslyEditedRowId = opts.keepEditing ? ((((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined) || ((_b = this.singleSelectedRow) === null || _b === void 0 ? void 0 : _b.id)) : undefined;
|
|
22542
22604
|
const previouslyEditedData = opts.keepEditing ? (isNotNil(this.previouslyEditedRowId) && ((_c = this.editedRow) === null || _c === void 0 ? void 0 : _c.currentData) || ((_d = this.singleSelectedRow) === null || _d === void 0 ? void 0 : _d.currentData)) : undefined;
|
|
22605
|
+
// TODO: remove this, has it redundant with dataSource.confirmAllRows() called in dataSource.save()
|
|
22543
22606
|
if (!this.confirmEditCreate()) {
|
|
22544
22607
|
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
22545
22608
|
}
|
|
@@ -23194,7 +23257,9 @@ class AppTable {
|
|
|
23194
23257
|
addRowToTable(insertAt) {
|
|
23195
23258
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23196
23259
|
this.focusFirstColumn = true;
|
|
23197
|
-
yield this._dataSource.
|
|
23260
|
+
const done = yield this._dataSource.createNew(insertAt);
|
|
23261
|
+
if (!done)
|
|
23262
|
+
return undefined;
|
|
23198
23263
|
this.editedRow = this._dataSource.getRow(-1);
|
|
23199
23264
|
// Emit start editing event
|
|
23200
23265
|
this.onStartEditingRow.emit(this.editedRow);
|
|
@@ -23325,59 +23390,64 @@ class AppTable {
|
|
|
23325
23390
|
}
|
|
23326
23391
|
}
|
|
23327
23392
|
deleteNewRow(event, row) {
|
|
23328
|
-
|
|
23329
|
-
|
|
23330
|
-
|
|
23331
|
-
|
|
23332
|
-
|
|
23333
|
-
|
|
23334
|
-
|
|
23335
|
-
|
|
23336
|
-
|
|
23337
|
-
|
|
23393
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23394
|
+
if (row.id !== -1)
|
|
23395
|
+
throw new Error('Row must have id = -1');
|
|
23396
|
+
event === null || event === void 0 ? void 0 : event.stopPropagation();
|
|
23397
|
+
this.selection.clear();
|
|
23398
|
+
this.editedRow = undefined; // unselect row
|
|
23399
|
+
const done = yield this._dataSource.cancelOrDelete(row);
|
|
23400
|
+
if (done) {
|
|
23401
|
+
this.onCancelOrDeleteRow.next(row);
|
|
23402
|
+
this.resetError();
|
|
23403
|
+
this.totalRowCount--;
|
|
23404
|
+
this.visibleRowCount--;
|
|
23405
|
+
}
|
|
23406
|
+
return done;
|
|
23407
|
+
});
|
|
23338
23408
|
}
|
|
23339
23409
|
deleteExistingRow(event, row, opts) {
|
|
23340
23410
|
// Make sure row will be cancelled, and NOT deleted
|
|
23341
23411
|
if (row.id === -1)
|
|
23342
23412
|
throw new Error('Row must have an id');
|
|
23343
23413
|
if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
|
|
23344
|
-
return
|
|
23414
|
+
return Promise.resolve(false); // SKip
|
|
23345
23415
|
event === null || event === void 0 ? void 0 : event.preventDefault();
|
|
23346
|
-
this.deleteRow(null, row, opts);
|
|
23416
|
+
return this.deleteRow(null, row, opts);
|
|
23347
23417
|
}
|
|
23348
23418
|
cancelExistingRow(event, row, opts) {
|
|
23349
23419
|
var _a;
|
|
23350
|
-
|
|
23351
|
-
|
|
23352
|
-
|
|
23353
|
-
|
|
23354
|
-
|
|
23355
|
-
|
|
23356
|
-
|
|
23357
|
-
|
|
23358
|
-
.
|
|
23359
|
-
// If confirmed
|
|
23360
|
-
if (confirm)
|
|
23361
|
-
|
|
23362
|
-
}
|
|
23363
|
-
|
|
23364
|
-
|
|
23365
|
-
|
|
23366
|
-
|
|
23367
|
-
|
|
23368
|
-
|
|
23369
|
-
|
|
23370
|
-
|
|
23371
|
-
|
|
23372
|
-
|
|
23373
|
-
|
|
23374
|
-
}
|
|
23420
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23421
|
+
// Make sure row will be cancelled, and NOT deleted
|
|
23422
|
+
if (row.id === -1 || !row.editing)
|
|
23423
|
+
throw new Error('Row cannot be canceling, but only deleting');
|
|
23424
|
+
const confirmed = (!opts || opts.interactive !== false);
|
|
23425
|
+
// Ask user confirmation, if cancel
|
|
23426
|
+
if (!confirmed && ((_a = row.validator) === null || _a === void 0 ? void 0 : _a.dirty) && (this.confirmBeforeCancel || this.onBeforeCancelRows.observers.length > 0)) {
|
|
23427
|
+
event.stopPropagation();
|
|
23428
|
+
const confirm = yield this.canCancelRows([row], opts);
|
|
23429
|
+
// If not confirmed: stop
|
|
23430
|
+
if (!confirm)
|
|
23431
|
+
return false;
|
|
23432
|
+
}
|
|
23433
|
+
const keepEditing = row.editing && (!opts || opts.keepEditing !== false);
|
|
23434
|
+
this.editedRow = undefined; // unselect row
|
|
23435
|
+
this._dataSource.cancelOrDelete(row);
|
|
23436
|
+
this.onCancelOrDeleteRow.next(row);
|
|
23437
|
+
// Mark row as pristine
|
|
23438
|
+
this.checkIfRowPristine(row);
|
|
23439
|
+
// Restore editing state
|
|
23440
|
+
if (keepEditing) {
|
|
23441
|
+
this.editRow(undefined, row);
|
|
23442
|
+
}
|
|
23443
|
+
return true;
|
|
23444
|
+
});
|
|
23375
23445
|
}
|
|
23376
23446
|
checkIfRowPristine(row, opts) {
|
|
23377
23447
|
var _a, _b;
|
|
23378
23448
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23379
23449
|
// Mark row as pristine
|
|
23380
|
-
const markRowAsPristine = ((_a = this.dataSource) === null || _a === void 0 ? void 0 : _a.
|
|
23450
|
+
const markRowAsPristine = ((_a = this.dataSource) === null || _a === void 0 ? void 0 : _a.config.keepOriginalDataAfterConfirm) === true;
|
|
23381
23451
|
if (markRowAsPristine) {
|
|
23382
23452
|
(_b = row.validator) === null || _b === void 0 ? void 0 : _b.markAsPristine();
|
|
23383
23453
|
// Check if table is now pristine
|
|
@@ -24786,7 +24856,7 @@ AppInMemoryTable.ctorParameters = () => [
|
|
|
24786
24856
|
{ type: Function },
|
|
24787
24857
|
{ type: InMemoryEntitiesService },
|
|
24788
24858
|
{ type: ValidatorService },
|
|
24789
|
-
{ type:
|
|
24859
|
+
{ type: undefined },
|
|
24790
24860
|
{ type: undefined }
|
|
24791
24861
|
];
|
|
24792
24862
|
AppInMemoryTable.propDecorators = {
|
|
@@ -25962,7 +26032,11 @@ class UsersPage extends AppTable {
|
|
|
25962
26032
|
switch (authTokenType) {
|
|
25963
26033
|
case "basic":
|
|
25964
26034
|
this.setShowColumn('pubkey', false, { emitEvent: false });
|
|
26035
|
+
this.setShowColumn('username', true, { emitEvent: false });
|
|
26036
|
+
this.setShowColumn('usernameExtranet', true, { emitEvent: false });
|
|
26037
|
+
break;
|
|
25965
26038
|
case "basic-and-token":
|
|
26039
|
+
this.setShowColumn('pubkey', true, { emitEvent: false });
|
|
25966
26040
|
this.setShowColumn('username', true, { emitEvent: false });
|
|
25967
26041
|
this.setShowColumn('usernameExtranet', true, { emitEvent: false });
|
|
25968
26042
|
break;
|
|
@@ -27493,5 +27567,5 @@ CoreTestingModule.decorators = [
|
|
|
27493
27567
|
* Generated bundle index. Do not edit.
|
|
27494
27568
|
*/
|
|
27495
27569
|
|
|
27496
|
-
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AndroidOsEnvironment, AnimationState, AppEditor, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable,
|
|
27570
|
+
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AndroidOsEnvironment, AnimationState, AppEditor, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DragAndDropDirective, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, Fragments$1 as Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBadgeIconDirective, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuService, Message, MessageFilter, MessageForm, MessageModal, MessageService, MessageTypeList, MessageTypes, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedAsyncValidators, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBadgeIconModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedValidators, SocialErrorCodes, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrIncludesPipe, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UserEvent, UserEventFilter, UserEventFragments, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equals, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isAndroid, isBlankString, isControlHasInput, isCordova, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilBoolean, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isProgressEvent, isResponseEvent, isTouchUi, isWindows, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForTrue, waitIdle, waitWhilePending, ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, isFocusableElement as ɵc, RegisterForm as ɵd, AccountValidatorService as ɵe, RegisterModal as ɵf, UserSettingsValidatorService as ɵg, LocalSettingsValidatorService as ɵh, AppIconComponent as ɵi, DateTestPage as ɵj, NumpadTestPage as ɵk, MatBadgeIconTestPage as ɵl, ToastTestingModule as ɵm, ToastTestingPage as ɵn };
|
|
27497
27571
|
//# sourceMappingURL=sumaris-net.ngx-components.js.map
|