@sumaris-net/ngx-components 0.27.22 → 0.28.2
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 +119 -42
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +2 -2
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/esm2015/src/app/core/form/editor.class.js +10 -2
- package/esm2015/src/app/core/form/entity-editor.class.js +15 -7
- package/esm2015/src/app/core/form/form.class.js +3 -1
- package/esm2015/src/app/shared/dates.js +2 -2
- package/esm2015/src/app/shared/functions.js +55 -1
- package/esm2015/src/app/shared/pipes/translate-context.pipe.js +8 -12
- package/esm2015/src/app/shared/services/translate-context.service.js +3 -6
- package/fesm2015/sumaris-net.ngx-components.js +88 -20
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/core/form/editor.class.d.ts +2 -0
- package/src/app/shared/functions.d.ts +14 -0
- package/src/app/shared/services/translate-context.service.d.ts +0 -1
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/cdk/table'), require('@angular/cdk/a11y'), require('@angular/cdk/overlay'), require('@angular/cdk/scrolling'), require('@angular/material/core'), require('@angular/material/table'), require('@angular/material/sort'), require('@angular/material/paginator'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/checkbox'), require('@angular/material/expansion'), require('@angular/material/toolbar'), require('@angular/material/icon'), require('@angular/material/button'), require('@angular/material/menu'), require('@angular/material/select'), require('@angular/material/card'), require('@angular/material/tabs'), require('@angular/material/stepper'), require('@angular/material/list'), require('@angular/material/button-toggle'), require('@angular/material/progress-spinner'), require('@angular/material/progress-bar'), require('@angular/material/radio'), require('@angular/material/badge'), require('@angular/material/slide-toggle'), require('@angular/material/dialog'), require('@angular/material/autocomplete'), require('@angular/forms'), require('rxjs'), require('rxjs/operators'), require('@ngx-translate/core'), require('@ionic/angular'), require('moment'), require('@angular/material-moment-adapter'), require('@
|
|
3
|
-
typeof define === 'function' && define.amd ? define('@sumaris-net/ngx-components', ['exports', '@angular/core', '@angular/common', '@angular/cdk/table', '@angular/cdk/a11y', '@angular/cdk/overlay', '@angular/cdk/scrolling', '@angular/material/core', '@angular/material/table', '@angular/material/sort', '@angular/material/paginator', '@angular/material/form-field', '@angular/material/input', '@angular/material/checkbox', '@angular/material/expansion', '@angular/material/toolbar', '@angular/material/icon', '@angular/material/button', '@angular/material/menu', '@angular/material/select', '@angular/material/card', '@angular/material/tabs', '@angular/material/stepper', '@angular/material/list', '@angular/material/button-toggle', '@angular/material/progress-spinner', '@angular/material/progress-bar', '@angular/material/radio', '@angular/material/badge', '@angular/material/slide-toggle', '@angular/material/dialog', '@angular/material/autocomplete', '@angular/forms', 'rxjs', 'rxjs/operators', '@ngx-translate/core', '@ionic/angular', 'moment', '@angular/material-moment-adapter', '@
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["sumaris-net"] = global["sumaris-net"] || {}, global["sumaris-net"]["ngx-components"] = {}), global.ng.core, global.ng.common, global.ng.cdk.table, global.ng.cdk.a11y, global.ng.cdk.overlay, global.ng.cdk.scrolling, global.ng.material.core, global.ng.material.table, global.ng.material.sort, global.ng.material.paginator, global.ng.material.formField, global.ng.material.input, global.ng.material.checkbox, global.ng.material.expansion, global.ng.material.toolbar, global.ng.material.icon, global.ng.material.button, global.ng.material.menu, global.ng.material.select, global.ng.material.card, global.ng.material.tabs, global.ng.material.stepper, global.ng.material.list, global.ng.material.buttonToggle, global.ng.material.progressSpinner, global.ng.material.progressBar, global.ng.material.radio, global.ng.material.badge, global.ng.material.slideToggle, global.ng.material.dialog, global.ng.material.autocomplete, global.ng.forms, global.rxjs, global.rxjs.operators, global["ngx-translate"].core, global.ionic.angular, global.moment, global.ng.materialMomentAdapter, global
|
|
5
|
-
})(this, (function (exports, i0, i1$4, table$1, a11y, overlay, scrolling, i1$3, table, sort$1, paginator, formField, input, checkbox, expansion, toolbar, icon, button, menu, select, card, tabs, stepper, list, buttonToggle, progressSpinner, progressBar, radio, badge, slideToggle, i2, autocomplete, i1, rxjs, operators, i1$2, i1$5, momentImported, i1$1,
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/cdk/table'), require('@angular/cdk/a11y'), require('@angular/cdk/overlay'), require('@angular/cdk/scrolling'), require('@angular/material/core'), require('@angular/material/table'), require('@angular/material/sort'), require('@angular/material/paginator'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/checkbox'), require('@angular/material/expansion'), require('@angular/material/toolbar'), require('@angular/material/icon'), require('@angular/material/button'), require('@angular/material/menu'), require('@angular/material/select'), require('@angular/material/card'), require('@angular/material/tabs'), require('@angular/material/stepper'), require('@angular/material/list'), require('@angular/material/button-toggle'), require('@angular/material/progress-spinner'), require('@angular/material/progress-bar'), require('@angular/material/radio'), require('@angular/material/badge'), require('@angular/material/slide-toggle'), require('@angular/material/dialog'), require('@angular/material/autocomplete'), require('@angular/forms'), require('rxjs'), require('rxjs/operators'), require('@ngx-translate/core'), require('@ionic/angular'), require('moment'), require('@angular/material-moment-adapter'), require('@ionic-native/keyboard/ngx'), require('angular2-text-mask'), require('ngx-material-timepicker'), require('@angular/material/datepicker'), require('@angular/animations'), require('@angular/material/divider'), require('@angular/material/tooltip'), require('@angular/material/chips'), require('@angular/router'), require('@angular/platform-browser'), require('@angular/common/http'), require('ngx-color-picker'), require('@ionic-native/native-audio/ngx'), require('@ionic-native/vibration/ngx'), require('@ionic-native/audio-management/ngx'), require('@ionic-native/native-audio/ngx/index'), require('@ionic-native/vibration/ngx/index'), require('@ionic-native/audio-management/ngx/index'), require('uuid/v4'), require('@angular/cdk/drag-drop'), require('ngx-markdown'), require('tweetnacl'), require('@ionic/storage'), require('zone.js/dist/zone-error'), require('@ionic-native/splash-screen/ngx'), require('@ionic-native/network/ngx'), require('ionic-cache'), require('ionic-cache/dist/cache.service'), require('@ionic-native/network/ngx/index'), require('@ionic-native/splash-screen/ngx/index'), require('@ionic-native/status-bar/ngx'), require('@angular/cdk/platform'), require('@ionic-native/in-app-browser/ngx'), require('@apollo/client/core'), require('apollo-angular'), require('@apollo/client/link/ws'), require('@apollo/client/utilities'), require('@apollo/client/link/retry'), require('apollo-link-queue'), require('apollo-link-serialize'), require('apollo-link-logger'), require('apollo-angular/http'), require('apollo3-cache-persist'), require('@ionic-native/downloader/ngx'), require('@ionic-native/status-bar/ngx/index'), require('@ionic-native/keyboard/ngx/index'), require('@ionic-native/in-app-browser/ngx/index'), require('@ionic-native/downloader/ngx/index'), require('@e-is/ngx-material-table'), require('@angular/cdk/collections'), require('ngx-jdenticon'), require('tweetnacl-util'), require('scrypt-async'), require('hammerjs')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define('@sumaris-net/ngx-components', ['exports', '@angular/core', '@angular/common', '@angular/cdk/table', '@angular/cdk/a11y', '@angular/cdk/overlay', '@angular/cdk/scrolling', '@angular/material/core', '@angular/material/table', '@angular/material/sort', '@angular/material/paginator', '@angular/material/form-field', '@angular/material/input', '@angular/material/checkbox', '@angular/material/expansion', '@angular/material/toolbar', '@angular/material/icon', '@angular/material/button', '@angular/material/menu', '@angular/material/select', '@angular/material/card', '@angular/material/tabs', '@angular/material/stepper', '@angular/material/list', '@angular/material/button-toggle', '@angular/material/progress-spinner', '@angular/material/progress-bar', '@angular/material/radio', '@angular/material/badge', '@angular/material/slide-toggle', '@angular/material/dialog', '@angular/material/autocomplete', '@angular/forms', 'rxjs', 'rxjs/operators', '@ngx-translate/core', '@ionic/angular', 'moment', '@angular/material-moment-adapter', '@ionic-native/keyboard/ngx', 'angular2-text-mask', 'ngx-material-timepicker', '@angular/material/datepicker', '@angular/animations', '@angular/material/divider', '@angular/material/tooltip', '@angular/material/chips', '@angular/router', '@angular/platform-browser', '@angular/common/http', 'ngx-color-picker', '@ionic-native/native-audio/ngx', '@ionic-native/vibration/ngx', '@ionic-native/audio-management/ngx', '@ionic-native/native-audio/ngx/index', '@ionic-native/vibration/ngx/index', '@ionic-native/audio-management/ngx/index', 'uuid/v4', '@angular/cdk/drag-drop', 'ngx-markdown', 'tweetnacl', '@ionic/storage', 'zone.js/dist/zone-error', '@ionic-native/splash-screen/ngx', '@ionic-native/network/ngx', 'ionic-cache', 'ionic-cache/dist/cache.service', '@ionic-native/network/ngx/index', '@ionic-native/splash-screen/ngx/index', '@ionic-native/status-bar/ngx', '@angular/cdk/platform', '@ionic-native/in-app-browser/ngx', '@apollo/client/core', 'apollo-angular', '@apollo/client/link/ws', '@apollo/client/utilities', '@apollo/client/link/retry', 'apollo-link-queue', 'apollo-link-serialize', 'apollo-link-logger', 'apollo-angular/http', 'apollo3-cache-persist', '@ionic-native/downloader/ngx', '@ionic-native/status-bar/ngx/index', '@ionic-native/keyboard/ngx/index', '@ionic-native/in-app-browser/ngx/index', '@ionic-native/downloader/ngx/index', '@e-is/ngx-material-table', '@angular/cdk/collections', 'ngx-jdenticon', 'tweetnacl-util', 'scrypt-async', 'hammerjs'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["sumaris-net"] = global["sumaris-net"] || {}, global["sumaris-net"]["ngx-components"] = {}), global.ng.core, global.ng.common, global.ng.cdk.table, global.ng.cdk.a11y, global.ng.cdk.overlay, global.ng.cdk.scrolling, global.ng.material.core, global.ng.material.table, global.ng.material.sort, global.ng.material.paginator, global.ng.material.formField, global.ng.material.input, global.ng.material.checkbox, global.ng.material.expansion, global.ng.material.toolbar, global.ng.material.icon, global.ng.material.button, global.ng.material.menu, global.ng.material.select, global.ng.material.card, global.ng.material.tabs, global.ng.material.stepper, global.ng.material.list, global.ng.material.buttonToggle, global.ng.material.progressSpinner, global.ng.material.progressBar, global.ng.material.radio, global.ng.material.badge, global.ng.material.slideToggle, global.ng.material.dialog, global.ng.material.autocomplete, global.ng.forms, global.rxjs, global.rxjs.operators, global["ngx-translate"].core, global.ionic.angular, global.moment, global.ng.materialMomentAdapter, global["ionic-native"].keyboard.ngx, global["angular2-text-mask"], global["ngx-material-timepicker"], global.ng.material.datepicker, global.ng.animations, global.ng.material.divider, global.ng.material.tooltip, global.ng.material.chips, global.ng.router, global.ng.platformBrowser, global.ng.common.http, global["ngx-color-picker"], global["ionic-native"]["native-audio"].ngx, global["ionic-native"].vibration.ngx, global["ionic-native"]["audio-management"].ngx, global["ionic-native"]["native-audio"].ngx.index, global["ionic-native"].vibration.ngx.index, global["ionic-native"]["audio-management"].ngx.index, global.uuid.v4, global.ng.cdk.dragDrop, global["ngx-markdown"], global.tweetnacl, global.ionic.storage, null, global["ionic-native"]["splash-screen"].ngx, global["ionic-native"].network.ngx, global["ionic-cache"], global["ionic-cache/dist/cache"].service, global["ionic-native"].network.ngx.index, global["ionic-native"]["splash-screen"].ngx.index, global["ionic-native"]["status-bar"].ngx, global.ng.cdk.platform, global["ionic-native"]["in-app-browser"].ngx, global.apollo.client.core, global["apollo-angular"], global.apollo.client.link.ws, global.apollo.client.utilities, global.apollo.client.link.retry, global["apollo-link-queue"], global["apollo-link-serialize"], global["apollo-link-logger"], global["apollo-angular"].http, global["apollo3-cache-persist"], global.ngx$6, global["ionic-native"]["status-bar"].ngx.index, global["ionic-native"].keyboard.ngx.index, global["ionic-native"]["in-app-browser"].ngx.index, global.i18, global["e-is"]["ngx-material-table"], global.ng.cdk.collections, global["ngx-jdenticon"]));
|
|
5
|
+
})(this, (function (exports, i0, i1$4, table$1, a11y, overlay, scrolling, i1$3, table, sort$1, paginator, formField, input, checkbox, expansion, toolbar, icon, button, menu, select, card, tabs, stepper, list, buttonToggle, progressSpinner, progressBar, radio, badge, slideToggle, i2, autocomplete, i1, rxjs, operators, i1$2, i1$5, momentImported, i1$1, ngx, angular2TextMask, ngxMaterialTimepicker, datepicker, animations, divider, tooltip, chips, i3, i1$6, i2$1, ngxColorPicker, ngx$2, ngx$3, ngx$1, i2$2, i3$1, i4, uuidv4Imported, dragDrop, ngxMarkdown, tweetnacl, i3$2, zoneError, ngx$5, ngx$4, ionicCache, i6, i9, i10, ngx$7, i2$4, ngx$8, core, i2$3, ws, utilities, retry, QueueLink, SerializingLink, loggerLink, i3$3, apollo3CachePersist, ngx$6, i14, i15, i17, i18, ngxMaterialTable, collections, ngxJdenticon) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -731,6 +731,60 @@
|
|
|
731
731
|
return res;
|
|
732
732
|
}, {});
|
|
733
733
|
}
|
|
734
|
+
/**
|
|
735
|
+
* Determines if two objects or two values are equivalent.
|
|
736
|
+
*
|
|
737
|
+
* Two objects or values are considered equivalent if at least one of the following is true:
|
|
738
|
+
*
|
|
739
|
+
* * Both objects or values pass `===` comparison.
|
|
740
|
+
* * Both objects or values are of the same type and all of their properties are equal by
|
|
741
|
+
* comparing them with `equals`.
|
|
742
|
+
*
|
|
743
|
+
* @param o1 Object or value to compare.
|
|
744
|
+
* @param o2 Object or value to compare.
|
|
745
|
+
* @returns true if arguments are equal.
|
|
746
|
+
*/
|
|
747
|
+
function equals(o1, o2) {
|
|
748
|
+
if (o1 === o2)
|
|
749
|
+
return true;
|
|
750
|
+
if (o1 === null || o2 === null)
|
|
751
|
+
return false;
|
|
752
|
+
if (o1 !== o1 && o2 !== o2)
|
|
753
|
+
return true; // NaN === NaN
|
|
754
|
+
var t1 = typeof o1, t2 = typeof o2, length, key, keySet;
|
|
755
|
+
if (t1 == t2 && t1 == 'object') {
|
|
756
|
+
if (Array.isArray(o1)) {
|
|
757
|
+
if (!Array.isArray(o2))
|
|
758
|
+
return false;
|
|
759
|
+
if ((length = o1.length) == o2.length) {
|
|
760
|
+
for (key = 0; key < length; key++) {
|
|
761
|
+
if (!equals(o1[key], o2[key]))
|
|
762
|
+
return false;
|
|
763
|
+
}
|
|
764
|
+
return true;
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
else {
|
|
768
|
+
if (Array.isArray(o2)) {
|
|
769
|
+
return false;
|
|
770
|
+
}
|
|
771
|
+
keySet = Object.create(null);
|
|
772
|
+
for (key in o1) {
|
|
773
|
+
if (!equals(o1[key], o2[key])) {
|
|
774
|
+
return false;
|
|
775
|
+
}
|
|
776
|
+
keySet[key] = true;
|
|
777
|
+
}
|
|
778
|
+
for (key in o2) {
|
|
779
|
+
if (!(key in keySet) && typeof o2[key] !== 'undefined') {
|
|
780
|
+
return false;
|
|
781
|
+
}
|
|
782
|
+
}
|
|
783
|
+
return true;
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
return false;
|
|
787
|
+
}
|
|
734
788
|
var Beans = /** @class */ (function () {
|
|
735
789
|
function Beans() {
|
|
736
790
|
}
|
|
@@ -2427,7 +2481,7 @@
|
|
|
2427
2481
|
return date1 && date2 && date1.isSameOrBefore(date2) ? date1 : date2;
|
|
2428
2482
|
};
|
|
2429
2483
|
DateUtils.max = function (date1, date2) {
|
|
2430
|
-
return date1
|
|
2484
|
+
return !date1 ? date2 : (!date2 || date1.isSameOrAfter(date2) ? date1 : date2);
|
|
2431
2485
|
};
|
|
2432
2486
|
return DateUtils;
|
|
2433
2487
|
}());
|
|
@@ -2797,12 +2851,10 @@
|
|
|
2797
2851
|
function TranslateContextService(translate) {
|
|
2798
2852
|
this.translate = translate;
|
|
2799
2853
|
}
|
|
2800
|
-
TranslateContextService.prototype.getParsedResult = function (translations, key, interpolateParams) {
|
|
2801
|
-
};
|
|
2802
2854
|
TranslateContextService.prototype.get = function (key, context, interpolateParams) {
|
|
2803
2855
|
var _this = this;
|
|
2804
2856
|
// No context: do a normal translate
|
|
2805
|
-
if (!
|
|
2857
|
+
if (!isNil(context))
|
|
2806
2858
|
return this.translate.get(key, interpolateParams);
|
|
2807
2859
|
// Compute a contextual i18n key, using the context as suffix
|
|
2808
2860
|
var contextKey = this.contextualKey(key, context);
|
|
@@ -2865,11 +2917,12 @@
|
|
|
2865
2917
|
if (!query || !query.length) {
|
|
2866
2918
|
return query;
|
|
2867
2919
|
}
|
|
2868
|
-
var suffix =
|
|
2920
|
+
var suffix = params && params.length ? params[0] : '';
|
|
2921
|
+
params = suffix && params.slice(1);
|
|
2869
2922
|
// if we ask another time for the same key, return the last value
|
|
2870
|
-
if (
|
|
2871
|
-
&&
|
|
2872
|
-
&&
|
|
2923
|
+
if (equalsOrNil(query, this.lastKey)
|
|
2924
|
+
&& equals(suffix, this.lastSuffix)
|
|
2925
|
+
&& equals(params, this.lastParams)) {
|
|
2873
2926
|
return this.value;
|
|
2874
2927
|
}
|
|
2875
2928
|
// store the query, in case it changes
|
|
@@ -2884,12 +2937,11 @@
|
|
|
2884
2937
|
};
|
|
2885
2938
|
return TranslateContextPipe;
|
|
2886
2939
|
}());
|
|
2887
|
-
TranslateContextPipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function TranslateContextPipe_Factory() { return new TranslateContextPipe(i0__namespace.ɵɵinject(TranslateContextService), i0__namespace.ɵɵinject(i0__namespace.ChangeDetectorRef)); }, token: TranslateContextPipe, providedIn: "root" });
|
|
2888
2940
|
TranslateContextPipe.decorators = [
|
|
2941
|
+
{ type: i0.Injectable },
|
|
2889
2942
|
{ type: i0.Pipe, args: [{
|
|
2890
2943
|
name: 'translateContext'
|
|
2891
|
-
},] }
|
|
2892
|
-
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
2944
|
+
},] }
|
|
2893
2945
|
];
|
|
2894
2946
|
TranslateContextPipe.ctorParameters = function () { return [
|
|
2895
2947
|
{ type: TranslateContextService },
|
|
@@ -2905,12 +2957,11 @@
|
|
|
2905
2957
|
};
|
|
2906
2958
|
return TranslatablePipe;
|
|
2907
2959
|
}());
|
|
2908
|
-
TranslatablePipe.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function TranslatablePipe_Factory() { return new TranslatablePipe(); }, token: TranslatablePipe, providedIn: "root" });
|
|
2909
2960
|
TranslatablePipe.decorators = [
|
|
2910
2961
|
{ type: i0.Pipe, args: [{
|
|
2911
2962
|
name: 'translatable'
|
|
2912
2963
|
},] },
|
|
2913
|
-
{ type: i0.Injectable
|
|
2964
|
+
{ type: i0.Injectable }
|
|
2914
2965
|
];
|
|
2915
2966
|
|
|
2916
2967
|
var PropertyGetPipe = /** @class */ (function () {
|
|
@@ -19245,6 +19296,8 @@
|
|
|
19245
19296
|
console.debug('[form] Updating form (using entity)', data);
|
|
19246
19297
|
// Convert object to json, then apply it to form (e.g. convert 'undefined' into 'null')
|
|
19247
19298
|
AppFormUtils.copyEntity2Form(data, this.form, Object.assign({ emitEvent: false, onlySelf: true }, opts));
|
|
19299
|
+
if (this._loading)
|
|
19300
|
+
this.markAsLoaded(Object.assign({ emitEvent: false, onlySelf: true }, opts));
|
|
19248
19301
|
if (!opts || opts.emitEvent !== true)
|
|
19249
19302
|
this.markForCheck();
|
|
19250
19303
|
};
|
|
@@ -25465,6 +25518,13 @@
|
|
|
25465
25518
|
enumerable: false,
|
|
25466
25519
|
configurable: true
|
|
25467
25520
|
});
|
|
25521
|
+
Object.defineProperty(AppEditor.prototype, "forms", {
|
|
25522
|
+
get: function () {
|
|
25523
|
+
return this._children && this._children.filter(function (c) { return c instanceof AppForm; });
|
|
25524
|
+
},
|
|
25525
|
+
enumerable: false,
|
|
25526
|
+
configurable: true
|
|
25527
|
+
});
|
|
25468
25528
|
Object.defineProperty(AppEditor.prototype, "dirty", {
|
|
25469
25529
|
get: function () {
|
|
25470
25530
|
var _a;
|
|
@@ -25623,10 +25683,15 @@
|
|
|
25623
25683
|
}
|
|
25624
25684
|
};
|
|
25625
25685
|
AppEditor.prototype.markAsLoaded = function (opts) {
|
|
25686
|
+
var _a;
|
|
25626
25687
|
if (this._loading) {
|
|
25627
25688
|
this._loading = false;
|
|
25628
|
-
if (!opts || opts.emitEvent !== false)
|
|
25689
|
+
if (!opts || opts.emitEvent !== false) {
|
|
25690
|
+
// Emit to children forms
|
|
25691
|
+
// Tables should be changed by parent
|
|
25692
|
+
(_a = this.forms) === null || _a === void 0 ? void 0 : _a.forEach(function (c) { return c.markAsLoaded(opts); });
|
|
25629
25693
|
this.markForCheck();
|
|
25694
|
+
}
|
|
25630
25695
|
}
|
|
25631
25696
|
};
|
|
25632
25697
|
AppEditor.prototype.markAsReady = function (opts) {
|
|
@@ -26247,49 +26312,60 @@
|
|
|
26247
26312
|
*/
|
|
26248
26313
|
AppEntityEditor.prototype.load = function (id, opts) {
|
|
26249
26314
|
return __awaiter(this, void 0, void 0, function () {
|
|
26250
|
-
var data, data,
|
|
26315
|
+
var data, err_1, data, err_2;
|
|
26251
26316
|
return __generator(this, function (_b) {
|
|
26252
26317
|
switch (_b.label) {
|
|
26253
26318
|
case 0:
|
|
26254
26319
|
if (!this.dataService)
|
|
26255
26320
|
throw new Error('Cannot load data: missing \'dataService\'!');
|
|
26256
26321
|
this.error = null;
|
|
26257
|
-
if (!isNil(id)) return [3 /*break*/,
|
|
26322
|
+
if (!isNil(id)) return [3 /*break*/, 7];
|
|
26323
|
+
_b.label = 1;
|
|
26324
|
+
case 1:
|
|
26325
|
+
_b.trys.push([1, 4, 5, 6]);
|
|
26258
26326
|
data = new this.dataType();
|
|
26259
26327
|
this._usageMode = this.computeUsageMode(data);
|
|
26260
26328
|
return [4 /*yield*/, this.onNewEntity(data, opts)];
|
|
26261
|
-
case
|
|
26329
|
+
case 2:
|
|
26262
26330
|
_b.sent();
|
|
26263
26331
|
return [4 /*yield*/, this.updateView(data, Object.assign({ openTabIndex: 0 }, opts))];
|
|
26264
|
-
case
|
|
26332
|
+
case 3:
|
|
26265
26333
|
_b.sent();
|
|
26334
|
+
return [3 /*break*/, 6];
|
|
26335
|
+
case 4:
|
|
26336
|
+
err_1 = _b.sent();
|
|
26337
|
+
this.setError(err_1);
|
|
26338
|
+
this.selectedTabIndex = 0;
|
|
26339
|
+
return [3 /*break*/, 6];
|
|
26340
|
+
case 5:
|
|
26266
26341
|
this.markAsLoaded();
|
|
26267
|
-
return [
|
|
26268
|
-
case 3
|
|
26269
|
-
|
|
26342
|
+
return [7 /*endfinally*/];
|
|
26343
|
+
case 6: return [3 /*break*/, 13];
|
|
26344
|
+
case 7:
|
|
26345
|
+
_b.trys.push([7, 11, 12, 13]);
|
|
26270
26346
|
return [4 /*yield*/, this.dataService.load(id, opts)];
|
|
26271
|
-
case
|
|
26347
|
+
case 8:
|
|
26272
26348
|
data = _b.sent();
|
|
26273
26349
|
if (!data)
|
|
26274
26350
|
throw { code: ErrorCodes$2.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
26275
26351
|
this._usageMode = this.computeUsageMode(data);
|
|
26276
26352
|
return [4 /*yield*/, this.onEntityLoaded(data, opts)];
|
|
26277
|
-
case
|
|
26353
|
+
case 9:
|
|
26278
26354
|
_b.sent();
|
|
26279
26355
|
return [4 /*yield*/, this.updateView(data, opts)];
|
|
26280
|
-
case
|
|
26356
|
+
case 10:
|
|
26281
26357
|
_b.sent();
|
|
26282
26358
|
this.startListenRemoteChanges();
|
|
26283
|
-
return [3 /*break*/,
|
|
26284
|
-
case
|
|
26285
|
-
|
|
26286
|
-
this.setError(
|
|
26359
|
+
return [3 /*break*/, 13];
|
|
26360
|
+
case 11:
|
|
26361
|
+
err_2 = _b.sent();
|
|
26362
|
+
this.setError(err_2);
|
|
26287
26363
|
this.selectedTabIndex = 0;
|
|
26288
|
-
return [3 /*break*/,
|
|
26289
|
-
case
|
|
26364
|
+
return [3 /*break*/, 13];
|
|
26365
|
+
case 12:
|
|
26290
26366
|
this.markAsLoaded();
|
|
26291
26367
|
return [7 /*endfinally*/];
|
|
26292
|
-
case
|
|
26368
|
+
case 13: return [2 /*return*/];
|
|
26293
26369
|
}
|
|
26294
26370
|
});
|
|
26295
26371
|
});
|
|
@@ -26464,7 +26540,7 @@
|
|
|
26464
26540
|
*/
|
|
26465
26541
|
AppEntityEditor.prototype.save = function (event, opts) {
|
|
26466
26542
|
return __awaiter(this, void 0, void 0, function () {
|
|
26467
|
-
var data, updatedData,
|
|
26543
|
+
var data, updatedData, err_3;
|
|
26468
26544
|
return __generator(this, function (_b) {
|
|
26469
26545
|
switch (_b.label) {
|
|
26470
26546
|
case 0:
|
|
@@ -26517,15 +26593,15 @@
|
|
|
26517
26593
|
this.submitted = false;
|
|
26518
26594
|
return [2 /*return*/, true];
|
|
26519
26595
|
case 7:
|
|
26520
|
-
|
|
26596
|
+
err_3 = _b.sent();
|
|
26521
26597
|
this.submitted = true;
|
|
26522
|
-
this.setError(
|
|
26598
|
+
this.setError(err_3);
|
|
26523
26599
|
this.selectedTabIndex = 0;
|
|
26524
26600
|
this.scrollToTop(); // Scroll to top (to show error)
|
|
26525
26601
|
this.markAsDirty();
|
|
26526
26602
|
this.enable();
|
|
26527
26603
|
// Concurrent change on pod
|
|
26528
|
-
if (
|
|
26604
|
+
if (err_3.code === ServerErrorCodes.BAD_UPDATE_DATE && isNotNil(this.data.id)) {
|
|
26529
26605
|
// Call a data reload (in background), to update the GraphQL cache, and allow to cancel changes
|
|
26530
26606
|
this.dataService.load(this.data.id, { fetchPolicy: 'network-only' }).then(function () {
|
|
26531
26607
|
console.debug('[data-editor] Data cache reloaded. User can reload page');
|
|
@@ -26578,7 +26654,7 @@
|
|
|
26578
26654
|
};
|
|
26579
26655
|
AppEntityEditor.prototype.delete = function (event) {
|
|
26580
26656
|
return __awaiter(this, void 0, void 0, function () {
|
|
26581
|
-
var confirmation, data, isNew,
|
|
26657
|
+
var confirmation, data, isNew, err_4;
|
|
26582
26658
|
var _this = this;
|
|
26583
26659
|
return __generator(this, function (_b) {
|
|
26584
26660
|
switch (_b.label) {
|
|
@@ -26613,9 +26689,9 @@
|
|
|
26613
26689
|
this.removePageHistory();
|
|
26614
26690
|
return [3 /*break*/, 8];
|
|
26615
26691
|
case 7:
|
|
26616
|
-
|
|
26692
|
+
err_4 = _b.sent();
|
|
26617
26693
|
this.submitted = true;
|
|
26618
|
-
this.setError(
|
|
26694
|
+
this.setError(err_4);
|
|
26619
26695
|
this.selectedTabIndex = 0;
|
|
26620
26696
|
this.markAsSaved();
|
|
26621
26697
|
this.enable();
|
|
@@ -28289,6 +28365,7 @@
|
|
|
28289
28365
|
exports.disableControls = disableControls;
|
|
28290
28366
|
exports.emitPromiseEvent = emitPromiseEvent;
|
|
28291
28367
|
exports.entityToString = entityToString;
|
|
28368
|
+
exports.equals = equals;
|
|
28292
28369
|
exports.equalsOrNil = equalsOrNil;
|
|
28293
28370
|
exports.fadeInAnimation = fadeInAnimation;
|
|
28294
28371
|
exports.fadeInOutAnimation = fadeInOutAnimation;
|