@sumaris-net/ngx-components 1.22.11-rc16 → 1.22.11-rc17
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 +125 -103
- 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/public_api.js +3 -2
- package/esm2015/src/app/core/services/account.service.js +2 -2
- package/esm2015/src/app/shared/file/file.service.js +18 -18
- package/esm2015/src/app/shared/file/images.utils.js +166 -0
- package/esm2015/sumaris-net.ngx-components.js +14 -15
- package/fesm2015/sumaris-net.ngx-components.js +91 -69
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +2 -1
- package/src/app/shared/file/file.service.d.ts +5 -5
- package/src/app/shared/file/images.utils.d.ts +19 -0
- package/sumaris-net.ngx-components.d.ts +13 -14
- package/sumaris-net.ngx-components.metadata.json +1 -1
- package/esm2015/src/app/shared/file/base64-image-reader.js +0 -141
- package/src/app/shared/file/base64-image-reader.d.ts +0 -18
|
@@ -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('@angular/animations'), 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/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('@angular/cdk/text-field'), require('@e-is/ngx-material-table'), require('@angular/cdk/collections'), require('ngx-jdenticon'), require('tweetnacl-util'), require('scrypt-async'), require('hammerjs'), require('moment-timezone')) :
|
|
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', '@angular/animations', '@ngx-translate/core', '@ionic/angular', 'moment', '@angular/material-moment-adapter', '@ionic-native/keyboard/ngx', 'angular2-text-mask', 'ngx-material-timepicker', '@angular/material/datepicker', '@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', '@angular/cdk/text-field', '@e-is/ngx-material-table', '@angular/cdk/collections', 'ngx-jdenticon', 'tweetnacl-util', 'scrypt-async', 'hammerjs', 'moment-timezone'], 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.ng.animations, 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.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['ionic-native'].downloader.ngx, global['ionic-native']['status-bar'].ngx.index, global['ionic-native'].keyboard.ngx.index, global['ionic-native']['in-app-browser'].ngx.index, global['ionic-native'].downloader.ngx.index, global.ng.cdk.textField, global['e-is']['ngx-material-table'], global.ng.cdk.collections, global['ngx-jdenticon'], null, null, null, global['moment-timezone']));
|
|
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, animations, i1$2, i1$5, momentImported, i1$1, ngx, angular2TextMask, ngxMaterialTimepicker, datepicker, 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, textField, ngxMaterialTable, collections, ngxJdenticon, tweetnaclUtil, scryptAsync, hammerjs, momentTZImported) { 'use strict';
|
|
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('@angular/animations'), 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/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('rxjs/internal/operators'), 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('@angular/cdk/text-field'), require('@e-is/ngx-material-table'), require('@angular/cdk/collections'), require('ngx-jdenticon'), require('tweetnacl-util'), require('scrypt-async'), require('hammerjs'), require('moment-timezone')) :
|
|
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', '@angular/animations', '@ngx-translate/core', '@ionic/angular', 'moment', '@angular/material-moment-adapter', '@ionic-native/keyboard/ngx', 'angular2-text-mask', 'ngx-material-timepicker', '@angular/material/datepicker', '@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', 'rxjs/internal/operators', '@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', '@angular/cdk/text-field', '@e-is/ngx-material-table', '@angular/cdk/collections', 'ngx-jdenticon', 'tweetnacl-util', 'scrypt-async', 'hammerjs', 'moment-timezone'], 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.ng.animations, 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.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.rxjs['internal/operators'], 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['ionic-native'].downloader.ngx, global['ionic-native']['status-bar'].ngx.index, global['ionic-native'].keyboard.ngx.index, global['ionic-native']['in-app-browser'].ngx.index, global['ionic-native'].downloader.ngx.index, global.ng.cdk.textField, global['e-is']['ngx-material-table'], global.ng.cdk.collections, global['ngx-jdenticon'], null, null, null, global['moment-timezone']));
|
|
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, animations, i1$2, i1$5, momentImported, i1$1, ngx, angular2TextMask, ngxMaterialTimepicker, datepicker, divider, tooltip, chips, i3, i1$6, i2$1, ngxColorPicker, ngx$2, ngx$3, ngx$1, i2$2, i3$1, i4, uuidv4Imported, operators$1, 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, textField, ngxMaterialTable, collections, ngxJdenticon, tweetnaclUtil, scryptAsync, hammerjs, momentTZImported) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -10553,44 +10553,97 @@
|
|
|
10553
10553
|
},] }
|
|
10554
10554
|
];
|
|
10555
10555
|
|
|
10556
|
+
var UploadFile = /** @class */ (function (_super) {
|
|
10557
|
+
__extends(UploadFile, _super);
|
|
10558
|
+
function UploadFile() {
|
|
10559
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
10560
|
+
}
|
|
10561
|
+
return UploadFile;
|
|
10562
|
+
}(File));
|
|
10563
|
+
var FileResponse = /** @class */ (function () {
|
|
10564
|
+
function FileResponse(init) {
|
|
10565
|
+
this.type = i2$1.HttpEventType.Response;
|
|
10566
|
+
this.body = isNotNil(init === null || init === void 0 ? void 0 : init.body) ? init.body : null;
|
|
10567
|
+
this.status = (init === null || init === void 0 ? void 0 : init.status) || 0;
|
|
10568
|
+
this.statusText = (init === null || init === void 0 ? void 0 : init.statusText) || 'OK';
|
|
10569
|
+
}
|
|
10570
|
+
return FileResponse;
|
|
10571
|
+
}());
|
|
10572
|
+
function isProgressEvent(event) {
|
|
10573
|
+
return event && (event.type === i2$1.HttpEventType.UploadProgress
|
|
10574
|
+
|| event.type === i2$1.HttpEventType.DownloadProgress);
|
|
10575
|
+
}
|
|
10576
|
+
function isResponseEvent(event) {
|
|
10577
|
+
return event && event.type === i2$1.HttpEventType.Response;
|
|
10578
|
+
}
|
|
10579
|
+
|
|
10556
10580
|
var IMAGE_DEFAULTS = {
|
|
10557
10581
|
MAX_HEIGHT: 480,
|
|
10558
10582
|
MAX_WIDTH: 640,
|
|
10559
10583
|
THUMB_MAX_HEIGHT: 200,
|
|
10560
10584
|
THUMB_MAX_WIDTH: 200
|
|
10561
10585
|
};
|
|
10562
|
-
|
|
10563
|
-
|
|
10586
|
+
// @dynamic
|
|
10587
|
+
var ImagesUtils = /** @class */ (function () {
|
|
10588
|
+
function ImagesUtils() {
|
|
10564
10589
|
}
|
|
10565
|
-
|
|
10566
|
-
|
|
10567
|
-
|
|
10568
|
-
|
|
10569
|
-
|
|
10570
|
-
|
|
10571
|
-
|
|
10572
|
-
|
|
10573
|
-
|
|
10574
|
-
|
|
10575
|
-
|
|
10576
|
-
|
|
10577
|
-
|
|
10578
|
-
|
|
10579
|
-
|
|
10580
|
-
|
|
10581
|
-
|
|
10582
|
-
}
|
|
10583
|
-
|
|
10590
|
+
ImagesUtils.readAsDataURL = function (file, opts) {
|
|
10591
|
+
var _this = this;
|
|
10592
|
+
var $progress = new rxjs.Subject();
|
|
10593
|
+
var reader = new FileReader();
|
|
10594
|
+
// Listen progress
|
|
10595
|
+
reader.onprogress = function (e) {
|
|
10596
|
+
var total = e.total || 1;
|
|
10597
|
+
var loaded = e.total || 0;
|
|
10598
|
+
if (loaded < total)
|
|
10599
|
+
$progress.next({ type: i2$1.HttpEventType.UploadProgress, loaded: loaded, total: total });
|
|
10600
|
+
};
|
|
10601
|
+
// Listen end
|
|
10602
|
+
reader.onloadend = function (e) {
|
|
10603
|
+
var body = reader.result;
|
|
10604
|
+
if (typeof body === 'string') {
|
|
10605
|
+
$progress.next(new FileResponse({ body: body }));
|
|
10606
|
+
$progress.complete();
|
|
10607
|
+
}
|
|
10608
|
+
else {
|
|
10609
|
+
console.error("[image-utils] Cannot read file '" + file.name + "' as text");
|
|
10610
|
+
$progress.error("Cannot read file as text");
|
|
10611
|
+
}
|
|
10612
|
+
};
|
|
10613
|
+
// Listen error
|
|
10614
|
+
reader.onerror = function (event) {
|
|
10615
|
+
console.error('[image-utils] Error while reading file:', event);
|
|
10616
|
+
$progress.error(event);
|
|
10617
|
+
};
|
|
10618
|
+
// Start reading the file
|
|
10619
|
+
reader.readAsDataURL(file);
|
|
10620
|
+
// Resize image, if need
|
|
10621
|
+
if (opts) {
|
|
10622
|
+
return $progress.pipe(operators$1.mergeMap(function (event) { return __awaiter(_this, void 0, void 0, function () {
|
|
10623
|
+
var body;
|
|
10624
|
+
return __generator(this, function (_a) {
|
|
10625
|
+
switch (_a.label) {
|
|
10626
|
+
case 0:
|
|
10627
|
+
if (!(event instanceof FileResponse)) return [3 /*break*/, 2];
|
|
10628
|
+
return [4 /*yield*/, ImagesUtils.resizeBase64(event.body, opts)];
|
|
10629
|
+
case 1:
|
|
10630
|
+
body = _a.sent();
|
|
10631
|
+
return [2 /*return*/, new FileResponse({ body: body })];
|
|
10632
|
+
case 2: return [2 /*return*/, event];
|
|
10633
|
+
}
|
|
10634
|
+
});
|
|
10635
|
+
}); }));
|
|
10636
|
+
}
|
|
10637
|
+
return $progress.asObservable();
|
|
10584
10638
|
};
|
|
10585
|
-
|
|
10639
|
+
ImagesUtils.readAndResizeFromUrl = function (fileUrl, opts) {
|
|
10586
10640
|
return __awaiter(this, void 0, void 0, function () {
|
|
10587
10641
|
var img, err_1;
|
|
10588
|
-
var _this = this;
|
|
10589
10642
|
return __generator(this, function (_a) {
|
|
10590
10643
|
switch (_a.label) {
|
|
10591
10644
|
case 0:
|
|
10592
|
-
if (isNilOrBlank(
|
|
10593
|
-
throw new Error('Illegal argument: missing
|
|
10645
|
+
if (isNilOrBlank(fileUrl))
|
|
10646
|
+
throw new Error('Illegal argument: missing fileUrl');
|
|
10594
10647
|
img = document.createElement('img');
|
|
10595
10648
|
// Need to avoid CORS error
|
|
10596
10649
|
// (see https://stackoverflow.com/questions/22710627/tainted-canvases-may-not-be-exported)
|
|
@@ -10599,14 +10652,14 @@
|
|
|
10599
10652
|
case 1:
|
|
10600
10653
|
_a.trys.push([1, 3, 4, 5]);
|
|
10601
10654
|
return [4 /*yield*/, new Promise(function (resolve, reject) {
|
|
10602
|
-
img.addEventListener('load',
|
|
10655
|
+
img.addEventListener('load', ImagesUtils.createImageOnLoadResizeFn(resolve, reject, opts), false);
|
|
10603
10656
|
img.addEventListener('error', reject);
|
|
10604
|
-
img.src =
|
|
10657
|
+
img.src = fileUrl;
|
|
10605
10658
|
})];
|
|
10606
10659
|
case 2: return [2 /*return*/, _a.sent()];
|
|
10607
10660
|
case 3:
|
|
10608
10661
|
err_1 = _a.sent();
|
|
10609
|
-
throw new Error("Failed to load and resize image {" +
|
|
10662
|
+
throw new Error("Failed to load and resize image {" + fileUrl + "}");
|
|
10610
10663
|
case 4:
|
|
10611
10664
|
img.remove();
|
|
10612
10665
|
return [7 /*endfinally*/];
|
|
@@ -10615,15 +10668,12 @@
|
|
|
10615
10668
|
});
|
|
10616
10669
|
});
|
|
10617
10670
|
};
|
|
10618
|
-
|
|
10671
|
+
ImagesUtils.resizeBase64 = function (dataUrl, opts) {
|
|
10619
10672
|
return __awaiter(this, void 0, void 0, function () {
|
|
10620
10673
|
var img;
|
|
10621
|
-
var _this = this;
|
|
10622
10674
|
return __generator(this, function (_a) {
|
|
10623
10675
|
switch (_a.label) {
|
|
10624
10676
|
case 0:
|
|
10625
|
-
if (!file)
|
|
10626
|
-
throw new Error('Illegal argument: missing file');
|
|
10627
10677
|
img = document.createElement('img');
|
|
10628
10678
|
// Need to avoid CORS error
|
|
10629
10679
|
// (see https://stackoverflow.com/questions/22710627/tainted-canvases-may-not-be-exported)
|
|
@@ -10632,13 +10682,9 @@
|
|
|
10632
10682
|
case 1:
|
|
10633
10683
|
_a.trys.push([1, , 3, 4]);
|
|
10634
10684
|
return [4 /*yield*/, new Promise(function (resolve, reject) {
|
|
10635
|
-
|
|
10636
|
-
|
|
10637
|
-
|
|
10638
|
-
img.onload = _this.createImageOnLoadResizeFn(resolve, reject, opts);
|
|
10639
|
-
img.src = reader.result;
|
|
10640
|
-
}, false);
|
|
10641
|
-
reader.readAsDataURL(file);
|
|
10685
|
+
img.addEventListener('load', ImagesUtils.createImageOnLoadResizeFn(resolve, reject, opts), false);
|
|
10686
|
+
img.addEventListener('error', reject);
|
|
10687
|
+
img.src = dataUrl;
|
|
10642
10688
|
})];
|
|
10643
10689
|
case 2: return [2 /*return*/, _a.sent()];
|
|
10644
10690
|
case 3:
|
|
@@ -10649,8 +10695,7 @@
|
|
|
10649
10695
|
});
|
|
10650
10696
|
});
|
|
10651
10697
|
};
|
|
10652
|
-
|
|
10653
|
-
Base64ImageReader.prototype.createImageOnLoadResizeFn = function (resolve, reject, opts) {
|
|
10698
|
+
ImagesUtils.createImageOnLoadResizeFn = function (resolve, reject, opts) {
|
|
10654
10699
|
return function (event) {
|
|
10655
10700
|
var maxWidth = (opts && opts.thumbnail ? IMAGE_DEFAULTS.THUMB_MAX_WIDTH : (opts && opts.maxWidth || IMAGE_DEFAULTS.MAX_WIDTH));
|
|
10656
10701
|
var maxHeight = (opts && opts.thumbnail ? IMAGE_DEFAULTS.THUMB_MAX_HEIGHT : (opts && opts.maxHeight || IMAGE_DEFAULTS.MAX_HEIGHT));
|
|
@@ -10716,7 +10761,7 @@
|
|
|
10716
10761
|
}
|
|
10717
10762
|
};
|
|
10718
10763
|
};
|
|
10719
|
-
return
|
|
10764
|
+
return ImagesUtils;
|
|
10720
10765
|
}());
|
|
10721
10766
|
|
|
10722
10767
|
var uuidv4 = uuidv4Imported__namespace;
|
|
@@ -10751,28 +10796,28 @@
|
|
|
10751
10796
|
var jobsFactories = (sources || []).map(function (source) { return function () { return _this.getImage(source, Object.assign({}, opts)); }; });
|
|
10752
10797
|
return chainPromises(jobsFactories);
|
|
10753
10798
|
};
|
|
10754
|
-
FileService.prototype.getImage = function (
|
|
10799
|
+
FileService.prototype.getImage = function (fileUrl, opts) {
|
|
10755
10800
|
return __awaiter(this, void 0, void 0, function () {
|
|
10756
|
-
var
|
|
10801
|
+
var outputType, debug, now, lastSlashIndex, fileName, targetFilePath, blob, err_1, dataUrl;
|
|
10757
10802
|
return __generator(this, function (_a) {
|
|
10758
10803
|
switch (_a.label) {
|
|
10759
10804
|
case 0:
|
|
10760
|
-
|
|
10805
|
+
outputType = opts && opts.outputType || (this.canUseFileSystem ? 'fileUrl' : 'dataUrl');
|
|
10761
10806
|
debug = this._debug /*&& (!opts || !opts.fileTransfer)*/;
|
|
10762
10807
|
now = debug && Date.now();
|
|
10763
10808
|
if (debug)
|
|
10764
|
-
console.debug("[file] Fetching image {" +
|
|
10765
|
-
lastSlashIndex =
|
|
10809
|
+
console.debug("[file] Fetching image {" + fileUrl + "} into " + outputType + "...");
|
|
10810
|
+
lastSlashIndex = fileUrl.lastIndexOf('/');
|
|
10766
10811
|
if (lastSlashIndex === -1)
|
|
10767
|
-
throw new Error('Invalid URL: ' +
|
|
10768
|
-
fileName = lastSlashIndex < (
|
|
10769
|
-
if (!(
|
|
10770
|
-
console.warn("WARN: [file]
|
|
10812
|
+
throw new Error('Invalid URL: ' + fileUrl);
|
|
10813
|
+
fileName = lastSlashIndex < (fileUrl.length - 1) && fileUrl.substring(lastSlashIndex + 1) || uuidv4();
|
|
10814
|
+
if (!(outputType === 'fileUrl' && this.canUseFileSystem)) return [3 /*break*/, 4];
|
|
10815
|
+
console.warn("WARN: [file] Downloading image {" + fileUrl + "} in local filesystem...");
|
|
10771
10816
|
targetFilePath = this._imageDirectory + fileName;
|
|
10772
10817
|
_a.label = 1;
|
|
10773
10818
|
case 1:
|
|
10774
10819
|
_a.trys.push([1, 3, , 4]);
|
|
10775
|
-
return [4 /*yield*/, firstNotNilPromise(this.http.get(
|
|
10820
|
+
return [4 /*yield*/, firstNotNilPromise(this.http.get(fileUrl, {
|
|
10776
10821
|
observe: 'body',
|
|
10777
10822
|
responseType: 'blob',
|
|
10778
10823
|
reportProgress: false
|
|
@@ -10784,25 +10829,25 @@
|
|
|
10784
10829
|
//const fileTransfer = (opts && opts.fileTransfer) || this.transfer.create();
|
|
10785
10830
|
//await fileTransfer.download(source, targetFilePath);
|
|
10786
10831
|
if (debug)
|
|
10787
|
-
console.debug("[file] Fetching image {" +
|
|
10832
|
+
console.debug("[file] Fetching image {" + fileUrl + "} into " + outputType + " [OK] in " + (Date.now() - now) + "ms");
|
|
10788
10833
|
return [2 /*return*/, targetFilePath];
|
|
10789
10834
|
case 3:
|
|
10790
10835
|
err_1 = _a.sent();
|
|
10791
|
-
console.error("[file] Error while download " +
|
|
10836
|
+
console.error("[file] Error while download " + fileUrl + ": " + (err_1 && err_1.message || err_1));
|
|
10792
10837
|
// Continue (fallback to data Url)
|
|
10793
|
-
|
|
10838
|
+
outputType = 'dataUrl';
|
|
10794
10839
|
return [3 /*break*/, 4];
|
|
10795
10840
|
case 4:
|
|
10796
|
-
if (!(
|
|
10797
|
-
return [4 /*yield*/,
|
|
10841
|
+
if (!(outputType === 'dataUrl')) return [3 /*break*/, 6];
|
|
10842
|
+
return [4 /*yield*/, ImagesUtils.readAndResizeFromUrl(fileUrl, opts)];
|
|
10798
10843
|
case 5:
|
|
10799
10844
|
dataUrl = _a.sent();
|
|
10800
10845
|
if (debug)
|
|
10801
|
-
console.debug("[file] Fetching image {" +
|
|
10846
|
+
console.debug("[file] Fetching image {" + fileUrl + "} into " + outputType + " [OK] in " + (Date.now() - now) + "ms");
|
|
10802
10847
|
return [2 /*return*/, dataUrl];
|
|
10803
10848
|
case 6:
|
|
10804
10849
|
// Keep original URL
|
|
10805
|
-
return [2 /*return*/,
|
|
10850
|
+
return [2 /*return*/, fileUrl];
|
|
10806
10851
|
}
|
|
10807
10852
|
});
|
|
10808
10853
|
});
|
|
@@ -17184,7 +17229,7 @@
|
|
|
17184
17229
|
if (!(hasAvatarUrl && this.network.online)) return [3 /*break*/, 2];
|
|
17185
17230
|
return [4 /*yield*/, this.file.getImage(json.avatar, {
|
|
17186
17231
|
thumbnail: true,
|
|
17187
|
-
|
|
17232
|
+
outputType: 'dataUrl'
|
|
17188
17233
|
})
|
|
17189
17234
|
.then(function (dataUrl) {
|
|
17190
17235
|
if (dataUrl && _this._debug)
|
|
@@ -18159,30 +18204,6 @@
|
|
|
18159
18204
|
]; };
|
|
18160
18205
|
var templateObject_1$1, templateObject_2$1, templateObject_3$1, templateObject_4$1, templateObject_5$1;
|
|
18161
18206
|
|
|
18162
|
-
var UploadFile = /** @class */ (function (_super) {
|
|
18163
|
-
__extends(UploadFile, _super);
|
|
18164
|
-
function UploadFile() {
|
|
18165
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
18166
|
-
}
|
|
18167
|
-
return UploadFile;
|
|
18168
|
-
}(File));
|
|
18169
|
-
var FileResponse = /** @class */ (function () {
|
|
18170
|
-
function FileResponse(init) {
|
|
18171
|
-
this.type = i2$1.HttpEventType.Response;
|
|
18172
|
-
this.body = isNotNil(init === null || init === void 0 ? void 0 : init.body) ? init.body : null;
|
|
18173
|
-
this.status = (init === null || init === void 0 ? void 0 : init.status) || 0;
|
|
18174
|
-
this.statusText = (init === null || init === void 0 ? void 0 : init.statusText) || 'OK';
|
|
18175
|
-
}
|
|
18176
|
-
return FileResponse;
|
|
18177
|
-
}());
|
|
18178
|
-
function isProgressEvent(event) {
|
|
18179
|
-
return event && (event.type === i2$1.HttpEventType.UploadProgress
|
|
18180
|
-
|| event.type === i2$1.HttpEventType.DownloadProgress);
|
|
18181
|
-
}
|
|
18182
|
-
function isResponseEvent(event) {
|
|
18183
|
-
return event && event.type === i2$1.HttpEventType.Response;
|
|
18184
|
-
}
|
|
18185
|
-
|
|
18186
18207
|
var UploadFilePopover = /** @class */ (function () {
|
|
18187
18208
|
function UploadFilePopover(popoverController, translate, cd) {
|
|
18188
18209
|
this.popoverController = popoverController;
|
|
@@ -34737,7 +34758,6 @@
|
|
|
34737
34758
|
exports.AutocompleteTestPage = AutocompleteTestPage;
|
|
34738
34759
|
exports.AutofocusDirective = AutofocusDirective;
|
|
34739
34760
|
exports.Base58 = Base58;
|
|
34740
|
-
exports.Base64ImageReader = Base64ImageReader;
|
|
34741
34761
|
exports.BaseEntityService = BaseEntityService;
|
|
34742
34762
|
exports.BaseGraphqlService = BaseGraphqlService;
|
|
34743
34763
|
exports.BaseGraphqlServiceOptions = BaseGraphqlServiceOptions;
|
|
@@ -34791,6 +34811,7 @@
|
|
|
34791
34811
|
exports.FileResponse = FileResponse;
|
|
34792
34812
|
exports.FileService = FileService;
|
|
34793
34813
|
exports.FileSizePipe = FileSizePipe;
|
|
34814
|
+
exports.FilesUtils = FilesUtils;
|
|
34794
34815
|
exports.FormArrayHelper = FormArrayHelper;
|
|
34795
34816
|
exports.FormButtonsBarComponent = FormButtonsBarComponent;
|
|
34796
34817
|
exports.FormButtonsBarToken = FormButtonsBarToken;
|
|
@@ -34811,6 +34832,7 @@
|
|
|
34811
34832
|
exports.Hotkeys = Hotkeys;
|
|
34812
34833
|
exports.HotkeysDialogComponent = HotkeysDialogComponent;
|
|
34813
34834
|
exports.IMAGE_DEFAULTS = IMAGE_DEFAULTS;
|
|
34835
|
+
exports.ImagesUtils = ImagesUtils;
|
|
34814
34836
|
exports.InMemoryEntitiesService = InMemoryEntitiesService;
|
|
34815
34837
|
exports.IsLoginAccountPipe = IsLoginAccountPipe;
|
|
34816
34838
|
exports.IsNilOrBlankPipe = IsNilOrBlankPipe;
|
|
@@ -34867,6 +34889,7 @@
|
|
|
34867
34889
|
exports.MessageService = MessageService;
|
|
34868
34890
|
exports.MessageTypeList = MessageTypeList;
|
|
34869
34891
|
exports.MessageTypes = MessageTypes;
|
|
34892
|
+
exports.MimeTypes = MimeTypes;
|
|
34870
34893
|
exports.ModalToolbarComponent = ModalToolbarComponent;
|
|
34871
34894
|
exports.NetworkService = NetworkService;
|
|
34872
34895
|
exports.NgInitDirective = NgInitDirective;
|
|
@@ -35121,20 +35144,19 @@
|
|
|
35121
35144
|
exports.ɵa = CustomReuseStrategy;
|
|
35122
35145
|
exports.ɵb = MatNumpadDomService;
|
|
35123
35146
|
exports.ɵc = isFocusableElement;
|
|
35124
|
-
exports.ɵd =
|
|
35125
|
-
exports.ɵe =
|
|
35126
|
-
exports.ɵf =
|
|
35127
|
-
exports.ɵg =
|
|
35128
|
-
exports.ɵh =
|
|
35129
|
-
exports.ɵi =
|
|
35130
|
-
exports.ɵj =
|
|
35131
|
-
exports.ɵk =
|
|
35132
|
-
exports.ɵl =
|
|
35133
|
-
exports.ɵm =
|
|
35134
|
-
exports.ɵn =
|
|
35135
|
-
exports.ɵo =
|
|
35136
|
-
exports.ɵp =
|
|
35137
|
-
exports.ɵq = ToastTestingPage;
|
|
35147
|
+
exports.ɵd = RegisterForm;
|
|
35148
|
+
exports.ɵe = AccountValidatorService;
|
|
35149
|
+
exports.ɵf = RegisterModal;
|
|
35150
|
+
exports.ɵg = UserSettingsValidatorService;
|
|
35151
|
+
exports.ɵh = LocalSettingsValidatorService;
|
|
35152
|
+
exports.ɵi = AppUpdateOfflineModeCard;
|
|
35153
|
+
exports.ɵj = UserEventNotificationList;
|
|
35154
|
+
exports.ɵk = JobProgressionList;
|
|
35155
|
+
exports.ɵl = DateTestPage;
|
|
35156
|
+
exports.ɵm = NumpadTestPage;
|
|
35157
|
+
exports.ɵn = MatBadgeIconTestPage;
|
|
35158
|
+
exports.ɵo = ToastTestingModule;
|
|
35159
|
+
exports.ɵp = ToastTestingPage;
|
|
35138
35160
|
|
|
35139
35161
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
35140
35162
|
|