@sumaris-net/ngx-components 1.6.7 → 1.6.12
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 -117
- 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 -3
- package/esm2015/src/app/core/auth/form/form-auth.js +2 -2
- package/esm2015/src/app/core/services/model/filter.model.js +1 -1
- package/esm2015/src/app/core/services/model/referential.model.js +1 -1
- package/esm2015/src/app/core/table/table.class.js +8 -8
- package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +25 -22
- package/esm2015/src/app/shared/material/boolean/material.boolean.js +3 -4
- package/esm2015/src/app/shared/material/chips/material.chips.js +21 -9
- package/esm2015/src/app/shared/material/datetime/material.date.js +41 -41
- package/esm2015/src/app/shared/material/datetime/material.datetime.js +29 -29
- package/esm2015/src/app/shared/pipes/translate-context.pipe.js +3 -5
- package/fesm2015/sumaris-net.ngx-components.js +123 -111
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +2 -2
- package/src/app/core/services/model/filter.model.d.ts +1 -1
- package/src/app/core/services/model/referential.model.d.ts +3 -3
- package/src/app/core/table/table.class.d.ts +4 -4
- package/src/app/shared/material/boolean/material.boolean.d.ts +0 -1
- package/src/app/shared/material/datetime/material.date.d.ts +6 -6
- package/src/app/shared/material/datetime/material.datetime.d.ts +9 -9
- package/src/app/shared/pipes/translate-context.pipe.d.ts +1 -1
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
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
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
|
|
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["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["e-is"]["ngx-material-table"], global.ng.cdk.collections, global["ngx-jdenticon"]));
|
|
5
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 }; }
|
|
@@ -1528,9 +1528,10 @@
|
|
|
1528
1528
|
// Filter if not enough character
|
|
1529
1529
|
operators.filter(function (value) { return value.length >= _this.suggestLengthThreshold; }),
|
|
1530
1530
|
// Wait a debounce time
|
|
1531
|
-
operators.debounceTime(this.debounceTime)
|
|
1531
|
+
operators.debounceTime(this.debounceTime)
|
|
1532
1532
|
// DEBUG
|
|
1533
|
-
|
|
1533
|
+
//,tap((value) => this.debug && console.debug(this.logPrefix + ' Search text changes:', value))
|
|
1534
|
+
),
|
|
1534
1535
|
// Object set: use it (no distinctUntilChanged() pipe need)
|
|
1535
1536
|
this.formControl.valueChanges
|
|
1536
1537
|
.pipe(operators.startWith(this.formControl.value), operators.filter(function (value) { return (_this.searchable && isNotNil(value) && typeof value === 'object'); }), operators.tap(function (value) {
|
|
@@ -1546,35 +1547,38 @@
|
|
|
1546
1547
|
_this.matInputText.nativeElement.value = _this.displayValue;
|
|
1547
1548
|
}
|
|
1548
1549
|
}
|
|
1549
|
-
})
|
|
1550
|
+
})
|
|
1550
1551
|
// DEBUG
|
|
1551
|
-
|
|
1552
|
+
//,tap(value => this.debug && console.debug(this.logPrefix + ' Received an object value: ', value))
|
|
1553
|
+
),
|
|
1552
1554
|
// On dropdown button click (no distinctUntilChanged(), nor debounceTime)
|
|
1553
1555
|
this.dropButtonClick
|
|
1554
1556
|
.pipe(operators.filter(function (event) { return _this.searchable && _this.enabled && (!event || !event.defaultPrevented); }), operators.map(function (_) { return _this.showAllOnFocus ? '*' : _this.formControl.value; }),
|
|
1555
|
-
// Make enough characters
|
|
1557
|
+
// Make sure there is enough characters
|
|
1556
1558
|
operators.filter(thresholdFilterFn)),
|
|
1557
1559
|
// Merge some observables, with a common distinctUntilChanged() pipe, and NO debounceTime
|
|
1558
1560
|
rxjs.merge(
|
|
1559
1561
|
// Focus or click => Load all
|
|
1560
1562
|
rxjs.merge(this.focused, this.clicked)
|
|
1561
|
-
.pipe(operators.filter(function (_) { return _this.enabled && _this.searchable; }), operators.map(function (_) { return _this.showAllOnFocus ? '*' : _this.formControl.value; })
|
|
1562
|
-
// DEBUG
|
|
1563
|
-
operators.tap(function (value) { return _this.debug && console.debug(_this.logPrefix + ' Received focused or clicked event: ', value); })), rxjs.merge(this.$inputItems, this._$filter)
|
|
1564
|
-
.pipe(operators.filter(function (_) { return _this.searchable && _this.enabled; }), operators.map(function (_) { return _this.formControl.value; }),
|
|
1563
|
+
.pipe(operators.filter(function (_) { return _this.enabled && _this.searchable; }), operators.map(function (_) { return _this.showAllOnFocus ? '*' : _this.formControl.value; })
|
|
1565
1564
|
// DEBUG
|
|
1566
|
-
|
|
1565
|
+
//,tap(value => this.debug && console.debug(this.logPrefix + ' Received focused or clicked event: ', value))
|
|
1566
|
+
), rxjs.merge(this.$inputItems, this._$filter)
|
|
1567
|
+
.pipe(operators.filter(function (_) { return _this.searchable && _this.enabled; }), operators.map(function (_) { return _this.formControl.value; })))
|
|
1567
1568
|
.pipe(
|
|
1568
1569
|
// Make sure there is enough characters
|
|
1569
1570
|
operators.filter(thresholdFilterFn),
|
|
1570
1571
|
// Distinguish changes
|
|
1571
1572
|
// - do NOT filter if loading, to force update after a blur event
|
|
1572
|
-
operators.distinctUntilChanged(function (v1, v2) { return !_this.loading && (v1 === v2 || _this.equals(v1, v2)); })
|
|
1573
|
+
operators.distinctUntilChanged(function (v1, v2) { return !_this.loading && (v1 === v2 || _this.equals(v1, v2)); })
|
|
1574
|
+
// DEBUG
|
|
1575
|
+
//,tap(value => this.debug && console.debug(this.logPrefix + ' Received update event: ', value))
|
|
1576
|
+
))
|
|
1573
1577
|
.pipe(
|
|
1574
1578
|
// Suggest values
|
|
1575
1579
|
operators.mergeMap(function (value) { return _this.suggest(value, _this.filter); }),
|
|
1576
1580
|
// DEBUG
|
|
1577
|
-
|
|
1581
|
+
//tap(items => this.debug && console.debug(this.logPrefix + ' Received from suggest: ', items)),
|
|
1578
1582
|
// Store implicit value (will use it onBlur if not other value selected)
|
|
1579
1583
|
operators.tap(function (items) { return _this.updateImplicitValue(items); }));
|
|
1580
1584
|
// Fetch more events
|
|
@@ -1607,9 +1611,10 @@
|
|
|
1607
1611
|
this._subscription.add(this.blurred
|
|
1608
1612
|
.pipe(
|
|
1609
1613
|
// Skip if not searchable
|
|
1610
|
-
operators.filter(function (_) { return _this.searchable; }), operators.map(function (_) { return _this.formControl.value; })
|
|
1614
|
+
operators.filter(function (_) { return _this.searchable; }), operators.map(function (_) { return _this.formControl.value; })
|
|
1611
1615
|
// DEBUG
|
|
1612
|
-
|
|
1616
|
+
//,tap(value => this.debug && console.debug(this.logPrefix + ' Received blurred event: ', value)),
|
|
1617
|
+
)
|
|
1613
1618
|
.subscribe(function (value) {
|
|
1614
1619
|
// When leave component without object, use implicit value if :
|
|
1615
1620
|
// - an explicit value
|
|
@@ -1695,7 +1700,7 @@
|
|
|
1695
1700
|
};
|
|
1696
1701
|
MatAutocompleteField.prototype.writeValue = function (value) {
|
|
1697
1702
|
// DEBUG
|
|
1698
|
-
// console.debug(this.logPrefix + ' Writing value: ', value);
|
|
1703
|
+
// if (this.debug) console.debug(this.logPrefix + ' Writing value: ', value);
|
|
1699
1704
|
if (value !== this.formControl.value) {
|
|
1700
1705
|
this.formControl.patchValue(value, { emitEvent: false });
|
|
1701
1706
|
this._onChangeCallback(value);
|
|
@@ -1733,18 +1738,16 @@
|
|
|
1733
1738
|
event.stopPropagation();
|
|
1734
1739
|
event.returnValue = false;
|
|
1735
1740
|
// DEBUG
|
|
1736
|
-
if (this.debug)
|
|
1737
|
-
console.debug(this.logPrefix + ' Cancelling focus event');
|
|
1741
|
+
//if (this.debug) console.debug(this.logPrefix + ' Cancelling focus event');
|
|
1738
1742
|
return false;
|
|
1739
1743
|
}
|
|
1740
|
-
|
|
1741
|
-
|
|
1744
|
+
// DEBUG
|
|
1745
|
+
//if (this.debug) console.debug(this.logPrefix + ' Select input content');
|
|
1742
1746
|
var hasContent = true; // selectInputContent(event);
|
|
1743
1747
|
// If combo is empty, or if has content but should force to show panel on focus
|
|
1744
1748
|
if (!hasContent || this.showPanelOnFocus || this.showAllOnFocus) {
|
|
1745
1749
|
// DEBUG
|
|
1746
|
-
if (this.debug)
|
|
1747
|
-
console.debug(this.logPrefix + ' Emit focus event');
|
|
1750
|
+
//if (this.debug) console.debug(this.logPrefix + ' Emit focus event');
|
|
1748
1751
|
this.focused.emit();
|
|
1749
1752
|
return true;
|
|
1750
1753
|
}
|
|
@@ -3049,16 +3052,10 @@
|
|
|
3049
3052
|
function TranslateContextPipe(translate) {
|
|
3050
3053
|
this.translate = translate;
|
|
3051
3054
|
}
|
|
3052
|
-
TranslateContextPipe.prototype.transform = function (query) {
|
|
3053
|
-
var params = [];
|
|
3054
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
3055
|
-
params[_i - 1] = arguments[_i];
|
|
3056
|
-
}
|
|
3055
|
+
TranslateContextPipe.prototype.transform = function (query, context, interpolateParams) {
|
|
3057
3056
|
if (!query || !query.length)
|
|
3058
3057
|
return query;
|
|
3059
|
-
|
|
3060
|
-
params = suffix && params.slice(1);
|
|
3061
|
-
return this.translate.instant(query, suffix, params);
|
|
3058
|
+
return this.translate.instant(query, context, interpolateParams);
|
|
3062
3059
|
};
|
|
3063
3060
|
return TranslateContextPipe;
|
|
3064
3061
|
}());
|
|
@@ -5188,44 +5185,6 @@
|
|
|
5188
5185
|
this.markForCheck();
|
|
5189
5186
|
this._onChangeCallback(dateStr);
|
|
5190
5187
|
};
|
|
5191
|
-
MatDate.prototype.updatePattern = function (pattern) {
|
|
5192
|
-
pattern = pattern !== 'COMMON.DATE_PATTERN' ? pattern : 'L';
|
|
5193
|
-
if (this.displayPattern !== pattern) {
|
|
5194
|
-
this.displayPattern = pattern;
|
|
5195
|
-
this.dayPattern = pattern;
|
|
5196
|
-
this.markForCheck();
|
|
5197
|
-
}
|
|
5198
|
-
};
|
|
5199
|
-
MatDate.prototype.onFormChange = function (dayValue) {
|
|
5200
|
-
if (this.writing)
|
|
5201
|
-
return; // Skip if call by self
|
|
5202
|
-
this.writing = true;
|
|
5203
|
-
// Make to remove placeholder chars
|
|
5204
|
-
while (dayValue && dayValue.indexOf(this.placeholderChar) !== -1) {
|
|
5205
|
-
dayValue = dayValue.replace(this.placeholderChar, '');
|
|
5206
|
-
}
|
|
5207
|
-
var date;
|
|
5208
|
-
// Parse day string
|
|
5209
|
-
date = dayValue && this.dateAdapter.parse(dayValue, this.dayPattern) || null;
|
|
5210
|
-
// Reset time
|
|
5211
|
-
date = date && date.utc(true).hour(0).minute(0).seconds(0).millisecond(0);
|
|
5212
|
-
// update date picker
|
|
5213
|
-
this._value = date && this.dateAdapter.parse(date.clone(), DATE_ISO_PATTERN);
|
|
5214
|
-
// Get the model value
|
|
5215
|
-
var dateStr = date && date.isValid() && this.dateAdapter.format(date, DATE_ISO_PATTERN).replace('+00:00', 'Z') || date;
|
|
5216
|
-
//console.debug("[mat-date-time] Setting date: ", dateStr);
|
|
5217
|
-
this.formControl.patchValue(dateStr, { emitEvent: false });
|
|
5218
|
-
//this.formControl.updateValueAndValidity();
|
|
5219
|
-
this.writing = false;
|
|
5220
|
-
this.markForCheck();
|
|
5221
|
-
this._onChangeCallback(dateStr);
|
|
5222
|
-
};
|
|
5223
|
-
MatDate.prototype.checkIfTouched = function () {
|
|
5224
|
-
if (this.dayControl.touched) {
|
|
5225
|
-
this.markForCheck();
|
|
5226
|
-
this._onTouchedCallback();
|
|
5227
|
-
}
|
|
5228
|
-
};
|
|
5229
5188
|
MatDate.prototype.openDatePickerIfMobile = function (event, datePicker) {
|
|
5230
5189
|
return __awaiter(this, void 0, void 0, function () {
|
|
5231
5190
|
return __generator(this, function (_a) {
|
|
@@ -5275,7 +5234,45 @@
|
|
|
5275
5234
|
}
|
|
5276
5235
|
});
|
|
5277
5236
|
};
|
|
5278
|
-
/* --
|
|
5237
|
+
/* -- private method -- */
|
|
5238
|
+
MatDate.prototype.updatePattern = function (pattern) {
|
|
5239
|
+
pattern = pattern !== 'COMMON.DATE_PATTERN' ? pattern : 'L';
|
|
5240
|
+
if (this.displayPattern !== pattern) {
|
|
5241
|
+
this.displayPattern = pattern;
|
|
5242
|
+
this.dayPattern = pattern;
|
|
5243
|
+
this.markForCheck();
|
|
5244
|
+
}
|
|
5245
|
+
};
|
|
5246
|
+
MatDate.prototype.onFormChange = function (dayValue) {
|
|
5247
|
+
if (this.writing)
|
|
5248
|
+
return; // Skip if call by self
|
|
5249
|
+
this.writing = true;
|
|
5250
|
+
// Make to remove placeholder chars
|
|
5251
|
+
while (dayValue && dayValue.indexOf(this.placeholderChar) !== -1) {
|
|
5252
|
+
dayValue = dayValue.replace(this.placeholderChar, '');
|
|
5253
|
+
}
|
|
5254
|
+
var date;
|
|
5255
|
+
// Parse day string
|
|
5256
|
+
date = dayValue && this.dateAdapter.parse(dayValue, this.dayPattern) || null;
|
|
5257
|
+
// Reset time
|
|
5258
|
+
date = date && date.utc(true).hour(0).minute(0).seconds(0).millisecond(0);
|
|
5259
|
+
// update date picker
|
|
5260
|
+
this._value = date && this.dateAdapter.parse(date.clone(), DATE_ISO_PATTERN);
|
|
5261
|
+
// Get the model value
|
|
5262
|
+
var dateStr = date && date.isValid() && this.dateAdapter.format(date, DATE_ISO_PATTERN).replace('+00:00', 'Z') || date;
|
|
5263
|
+
//console.debug("[mat-date-time] Setting date: ", dateStr);
|
|
5264
|
+
this.formControl.patchValue(dateStr, { emitEvent: false });
|
|
5265
|
+
//this.formControl.updateValueAndValidity();
|
|
5266
|
+
this.writing = false;
|
|
5267
|
+
this.markForCheck();
|
|
5268
|
+
this._onChangeCallback(dateStr);
|
|
5269
|
+
};
|
|
5270
|
+
MatDate.prototype.checkIfTouched = function () {
|
|
5271
|
+
if (this.dayControl.touched) {
|
|
5272
|
+
this.markForCheck();
|
|
5273
|
+
this._onTouchedCallback();
|
|
5274
|
+
}
|
|
5275
|
+
};
|
|
5279
5276
|
MatDate.prototype.waitKeyboardHide = function (waitKeyboardDelay) {
|
|
5280
5277
|
return __awaiter(this, void 0, void 0, function () {
|
|
5281
5278
|
return __generator(this, function (_a) {
|
|
@@ -5426,7 +5423,7 @@
|
|
|
5426
5423
|
MatDateTime.prototype.ngOnInit = function () {
|
|
5427
5424
|
var _this = this;
|
|
5428
5425
|
this.mobile = isNil(this.mobile) ? this.platform.is('mobile') : this.mobile;
|
|
5429
|
-
this.
|
|
5426
|
+
this.keyboardHideDelay = this.mobile && KEYBOARD_HIDE_DELAY_MS || 0;
|
|
5430
5427
|
this.formControl = this.formControl || this.formControlName && this.formGroupDir && this.formGroupDir.form.get(this.formControlName);
|
|
5431
5428
|
if (!this.formControl)
|
|
5432
5429
|
throw new Error('Missing mandatory attribute \'formControl\' or \'formControlName\' in <mat-date-time-field>.');
|
|
@@ -5550,10 +5547,6 @@
|
|
|
5550
5547
|
this.disabling = false;
|
|
5551
5548
|
this.markForCheck();
|
|
5552
5549
|
};
|
|
5553
|
-
MatDateTime.prototype.updatePattern = function (patterns) {
|
|
5554
|
-
this.displayPattern = (patterns['COMMON.DATE_TIME_PATTERN'] !== 'COMMON.DATE_TIME_PATTERN' ? patterns['COMMON.DATE_TIME_PATTERN'] : 'L LT');
|
|
5555
|
-
this.dayPattern = (patterns['COMMON.DATE_PATTERN'] !== 'COMMON.DATE_PATTERN' ? patterns['COMMON.DATE_PATTERN'] : 'L');
|
|
5556
|
-
};
|
|
5557
5550
|
MatDateTime.prototype.onDatePickerChange = function (event) {
|
|
5558
5551
|
// Make sure event is valid
|
|
5559
5552
|
if (!event || (event.value !== null && !momentImported.isMoment(event.value))) {
|
|
@@ -5594,7 +5587,7 @@
|
|
|
5594
5587
|
return [2 /*return*/];
|
|
5595
5588
|
this.preventEvent(event);
|
|
5596
5589
|
// Make sure the keyboard is closed
|
|
5597
|
-
return [4 /*yield*/, this.
|
|
5590
|
+
return [4 /*yield*/, this.waitKeyboardHide(false)];
|
|
5598
5591
|
case 1:
|
|
5599
5592
|
// Make sure the keyboard is closed
|
|
5600
5593
|
_a.sent();
|
|
@@ -5624,7 +5617,7 @@
|
|
|
5624
5617
|
return [2 /*return*/];
|
|
5625
5618
|
this.preventEvent(event);
|
|
5626
5619
|
// Make sure the keyboard is closed
|
|
5627
|
-
return [4 /*yield*/, this.
|
|
5620
|
+
return [4 /*yield*/, this.waitKeyboardHide(true)];
|
|
5628
5621
|
case 1:
|
|
5629
5622
|
// Make sure the keyboard is closed
|
|
5630
5623
|
_a.sent();
|
|
@@ -5649,12 +5642,6 @@
|
|
|
5649
5642
|
event.stopPropagation();
|
|
5650
5643
|
event.returnValue = false;
|
|
5651
5644
|
};
|
|
5652
|
-
MatDateTime.prototype.checkIfTouched = function () {
|
|
5653
|
-
if (this.dateFormControl.touched || this.timeFormControl.touched) {
|
|
5654
|
-
this._onTouchedCallback();
|
|
5655
|
-
this.markForCheck();
|
|
5656
|
-
}
|
|
5657
|
-
};
|
|
5658
5645
|
MatDateTime.prototype.focus = function () {
|
|
5659
5646
|
var _this = this;
|
|
5660
5647
|
if (!this.matInputs.length)
|
|
@@ -5671,26 +5658,24 @@
|
|
|
5671
5658
|
this.markAsTouched();
|
|
5672
5659
|
this.markAsDirty();
|
|
5673
5660
|
};
|
|
5674
|
-
/* --
|
|
5675
|
-
MatDateTime.prototype.
|
|
5676
|
-
|
|
5677
|
-
|
|
5678
|
-
|
|
5679
|
-
|
|
5680
|
-
|
|
5681
|
-
|
|
5682
|
-
this.
|
|
5683
|
-
// Check if need to update controls
|
|
5684
|
-
this.checkIfTouched();
|
|
5661
|
+
/* -- private method -- */
|
|
5662
|
+
MatDateTime.prototype.updatePattern = function (patterns) {
|
|
5663
|
+
this.displayPattern = (patterns['COMMON.DATE_TIME_PATTERN'] !== 'COMMON.DATE_TIME_PATTERN' ? patterns['COMMON.DATE_TIME_PATTERN'] : 'L LT');
|
|
5664
|
+
this.dayPattern = (patterns['COMMON.DATE_PATTERN'] !== 'COMMON.DATE_PATTERN' ? patterns['COMMON.DATE_PATTERN'] : 'L');
|
|
5665
|
+
};
|
|
5666
|
+
MatDateTime.prototype.checkIfTouched = function () {
|
|
5667
|
+
if (this.dateFormControl.touched || this.timeFormControl.touched) {
|
|
5668
|
+
this._onTouchedCallback();
|
|
5669
|
+
this.markForCheck();
|
|
5685
5670
|
}
|
|
5686
5671
|
};
|
|
5687
|
-
MatDateTime.prototype.
|
|
5672
|
+
MatDateTime.prototype.waitKeyboardHide = function (waitKeyboardDelay) {
|
|
5688
5673
|
return __awaiter(this, void 0, void 0, function () {
|
|
5689
5674
|
return __generator(this, function (_a) {
|
|
5690
5675
|
switch (_a.label) {
|
|
5691
5676
|
case 0:
|
|
5692
|
-
if (!this.keyboard.isVisible)
|
|
5693
|
-
return [2 /*return*/]; // ok, already hidden
|
|
5677
|
+
if (!this.keyboard || !this.keyboard.isVisible)
|
|
5678
|
+
return [2 /*return*/]; // ok, already hidden (or not accessible)
|
|
5694
5679
|
// Force keyboard to be hide
|
|
5695
5680
|
this.keyboard.hide();
|
|
5696
5681
|
// Wait hide occur
|
|
@@ -5698,8 +5683,8 @@
|
|
|
5698
5683
|
case 1:
|
|
5699
5684
|
// Wait hide occur
|
|
5700
5685
|
_a.sent();
|
|
5701
|
-
if (!(this.
|
|
5702
|
-
return [4 /*yield*/, sleep(this.
|
|
5686
|
+
if (!(this.keyboardHideDelay > 0 && waitKeyboardDelay)) return [3 /*break*/, 3];
|
|
5687
|
+
return [4 /*yield*/, sleep(this.keyboardHideDelay)];
|
|
5703
5688
|
case 2:
|
|
5704
5689
|
_a.sent();
|
|
5705
5690
|
_a.label = 3;
|
|
@@ -5708,6 +5693,18 @@
|
|
|
5708
5693
|
});
|
|
5709
5694
|
});
|
|
5710
5695
|
};
|
|
5696
|
+
MatDateTime.prototype.emitChange = function (value) {
|
|
5697
|
+
// Get the model value
|
|
5698
|
+
var dateStr = toDateISOString(value) || null;
|
|
5699
|
+
if (this.formControl.value !== dateStr) {
|
|
5700
|
+
// DEBUG
|
|
5701
|
+
//console.debug('[matèdate-time] Emit new value: ' + dateStr);
|
|
5702
|
+
// Changes comes from inside function: use the callback
|
|
5703
|
+
this._onChangeCallback(dateStr);
|
|
5704
|
+
// Check if need to update controls
|
|
5705
|
+
this.checkIfTouched();
|
|
5706
|
+
}
|
|
5707
|
+
};
|
|
5711
5708
|
MatDateTime.prototype.updateTabIndex = function () {
|
|
5712
5709
|
var _this = this;
|
|
5713
5710
|
if (isNil(this._tabindex) || this._tabindex === -1)
|
|
@@ -6605,7 +6602,7 @@
|
|
|
6605
6602
|
MatBooleanField.decorators = [
|
|
6606
6603
|
{ type: i0.Component, args: [{
|
|
6607
6604
|
selector: 'mat-boolean-field',
|
|
6608
|
-
template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput hidden type=\"text\" readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{(formControl.value == null && 'COMMON.EMPTY_OPTION' || (formControl.value === true && yesLabel) || noLabel) | translate }}</ion-text>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n</mat-form-field>\n\n<ng-template #writable>\n <ng-container [ngSwitch]=\"style\">\n\n <!-- Radio -->\n <mat-form-field *ngSwitchCase=\"'radio'\"\n [floatLabel]=\"showRadio && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-radio {{classList}}\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n <span [hidden]=\"showRadio\">({{yesLabel|translate}}/{{'COMMON.NO'|translate}})</span>\n </mat-label>\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput #fakeInput type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <!-- radio button -->\n <mat-radio-group [hidden]=\"!showRadio\"\n [formControl]=\"formControl\"\n (change)=\"onRadioValueChanged($event)\">\n <mat-radio-button #yesButton [value]=\"true\">\n <span>{{yesLabel|translate}}</span>\n </mat-radio-button> \n <mat-radio-button #noButton [value]=\"false\">\n <span>{{noLabel|translate}}</span>\n </mat-radio-button>\n </mat-radio-group>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n </mat-form-field>\n\n <!-- Checkbox -->\n <mat-form-field *ngSwitchCase=\"'checkbox'\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-checkbox {{classList}}\">\n <mat-label *ngIf=\"placeholder && !showRadio\">\n {{placeholder}}\n </mat-label>\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput #matInput\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <ion-label> </ion-label>\n\n <!-- checkbox, when compact -->\n <mat-checkbox #checkboxButton\n [formControl]=\"formControl\"\n (change)=\"onCheckboxValueChanged($event)\"\n [indeterminate]=\"value===undefined\"\n [hidden]=\"!showRadio\"\n [tabindex]=\"tabindex\">\n </mat-checkbox>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n </mat-form-field>\n\n <!-- Buttons -->\n <mat-form-field *ngSwitchCase=\"'button'\"\n [floatLabel]=\"floatLabel === 'never' ? 'never' : 'always'\"\n class=\"mat-boolean-field mat-boolean-field-button {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput type=\"text\" hidden\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"required\">\n <div class=\"mat-form-field-buttons\"\n [style.--buttons-col-count]=\"buttonsColCount\"\n *ngIf=\"!formControl.disabled; else disabledLabel\">\n <!-- yes -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex\"\n (click)=\"writeValue(true, $event)\"\n (keyup.enter)=\"writeValue(true, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === true) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && yesIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{yesLabel|translate}}\n </ion-button>\n\n <!-- No button -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex !== undefined ? (_tabindex + 1) : undefined\"\n (click)=\"writeValue(false, $event)\"\n (keyup.enter)=\"writeValue(false, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === false) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && noIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{noLabel|translate}}\n </ion-button>\n </div>\n <ng-template #disabledLabel>\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ng-template>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n </mat-form-field>\n </ng-container>\n\n
|
|
6605
|
+
template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput hidden type=\"text\" readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{(formControl.value == null && 'COMMON.EMPTY_OPTION' || (formControl.value === true && yesLabel) || noLabel) | translate }}</ion-text>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n</mat-form-field>\n\n<ng-template #writable>\n <ng-container [ngSwitch]=\"style\">\n\n <!-- Radio -->\n <mat-form-field *ngSwitchCase=\"'radio'\"\n [floatLabel]=\"showRadio && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-radio {{classList}}\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n <span [hidden]=\"showRadio\">({{yesLabel|translate}}/{{'COMMON.NO'|translate}})</span>\n </mat-label>\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput #fakeInput type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <!-- radio button -->\n <mat-radio-group [hidden]=\"!showRadio\"\n [formControl]=\"formControl\"\n (change)=\"onRadioValueChanged($event)\">\n <mat-radio-button #yesButton [value]=\"true\">\n <span>{{yesLabel|translate}}</span>\n </mat-radio-button> \n <mat-radio-button #noButton [value]=\"false\">\n <span>{{noLabel|translate}}</span>\n </mat-radio-button>\n </mat-radio-group>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n </mat-form-field>\n\n <!-- Checkbox -->\n <mat-form-field *ngSwitchCase=\"'checkbox'\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-checkbox {{classList}}\">\n <mat-label *ngIf=\"placeholder && !showRadio\">\n {{placeholder}}\n </mat-label>\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput #matInput\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <ion-label> </ion-label>\n\n <!-- checkbox, when compact -->\n <mat-checkbox #checkboxButton\n [formControl]=\"formControl\"\n (change)=\"onCheckboxValueChanged($event)\"\n [indeterminate]=\"value===undefined\"\n [hidden]=\"!showRadio\"\n [tabindex]=\"tabindex\">\n </mat-checkbox>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n </mat-form-field>\n\n <!-- Buttons -->\n <mat-form-field *ngSwitchCase=\"'button'\"\n [floatLabel]=\"floatLabel === 'never' ? 'never' : 'always'\"\n class=\"mat-boolean-field mat-boolean-field-button {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput type=\"text\" hidden\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"required\">\n <div class=\"mat-form-field-buttons\"\n [style.--buttons-col-count]=\"buttonsColCount\"\n *ngIf=\"!formControl.disabled; else disabledLabel\">\n <!-- yes -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex\"\n (click)=\"writeValue(true, $event)\"\n (keyup.enter)=\"writeValue(true, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === true) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && yesIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{yesLabel|translate}}\n </ion-button>\n\n <!-- No button -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex !== undefined ? (_tabindex + 1) : undefined\"\n (click)=\"writeValue(false, $event)\"\n (keyup.enter)=\"writeValue(false, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === false) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && noIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{noLabel|translate}}\n </ion-button>\n </div>\n <ng-template #disabledLabel>\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ng-template>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n </mat-form-field>\n </ng-container>\n\n</ng-template>\n\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n<ng-template #matSuffixTemplate>\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n",
|
|
6609
6606
|
providers: [
|
|
6610
6607
|
DEFAULT_VALUE_ACCESSOR$1
|
|
6611
6608
|
],
|
|
@@ -6643,8 +6640,7 @@
|
|
|
6643
6640
|
yesButton: [{ type: i0.ViewChild, args: ['yesButton',] }],
|
|
6644
6641
|
noButton: [{ type: i0.ViewChild, args: ['noButton',] }],
|
|
6645
6642
|
checkboxButton: [{ type: i0.ViewChild, args: ['checkboxButton',] }],
|
|
6646
|
-
fakeInput: [{ type: i0.ViewChild, args: ['fakeInput',] }]
|
|
6647
|
-
suffixDiv: [{ type: i0.ViewChild, args: ['suffix', { static: false },] }]
|
|
6643
|
+
fakeInput: [{ type: i0.ViewChild, args: ['fakeInput',] }]
|
|
6648
6644
|
};
|
|
6649
6645
|
|
|
6650
6646
|
var SharedMatBooleanModule = /** @class */ (function () {
|
|
@@ -7882,7 +7878,7 @@
|
|
|
7882
7878
|
// Wait a debounce time
|
|
7883
7879
|
operators.debounceTime(this.debounceTime)
|
|
7884
7880
|
// DEBUG
|
|
7885
|
-
|
|
7881
|
+
//,tap((value) => this.debug && console.debug(this.logPrefix + ' Search text changes:', value))
|
|
7886
7882
|
),
|
|
7887
7883
|
// Object set: use it (no distinctUntilChanged() pipe need)
|
|
7888
7884
|
this.inputControl.valueChanges
|
|
@@ -7898,18 +7894,25 @@
|
|
|
7898
7894
|
rxjs.merge(
|
|
7899
7895
|
// Focus or click => Load all
|
|
7900
7896
|
rxjs.merge(this.focused, this.clicked)
|
|
7901
|
-
.pipe(operators.filter(function (_) { return _this.enabled; }), operators.map(function (_) { return _this.showAllOnFocus ? '*' : _this.inputControl.value; })
|
|
7897
|
+
.pipe(operators.filter(function (_) { return _this.enabled; }), operators.map(function (_) { return _this.showAllOnFocus ? '*' : _this.inputControl.value; })
|
|
7898
|
+
// DEBUG
|
|
7899
|
+
//,tap(value => this.debug && console.debug(this.logPrefix + ' Received focused or clicked event: ', value))
|
|
7900
|
+
), rxjs.merge(this.$inputItems, this._$filter)
|
|
7902
7901
|
.pipe(operators.filter(function (_) { return _this.enabled; }), operators.map(function (_) { return _this.inputControl.value; })))
|
|
7903
7902
|
.pipe(
|
|
7904
7903
|
// Make sure there is enough characters
|
|
7905
7904
|
operators.filter(thresholdFilterFn),
|
|
7906
7905
|
// Distinguish changes
|
|
7907
|
-
|
|
7906
|
+
// - do NOT filter if loading, to force update after a blur event
|
|
7907
|
+
operators.distinctUntilChanged(function (v1, v2) { return !_this.loading && (v1 === v2 || _this.equals(v1, v2)); })
|
|
7908
|
+
// DEBUG
|
|
7909
|
+
//,tap(value => this.debug && console.debug(this.logPrefix + ' Received update event: ', value))
|
|
7910
|
+
))
|
|
7908
7911
|
.pipe(
|
|
7909
7912
|
// Suggest values
|
|
7910
7913
|
operators.mergeMap(function (value) { return _this.suggest(value, _this.filter); }),
|
|
7911
7914
|
// DEBUG
|
|
7912
|
-
//tap(items => console.debug(this.logPrefix + ' Received from suggest: ', items)),
|
|
7915
|
+
//tap(items => this.debug && console.debug(this.logPrefix + ' Received from suggest: ', items)),
|
|
7913
7916
|
// Store implicit value (will use it onBlur if not other value selected)
|
|
7914
7917
|
operators.tap(function (items) { return _this.updateImplicitValue(items); }));
|
|
7915
7918
|
// Fetch more events
|
|
@@ -7930,7 +7933,10 @@
|
|
|
7930
7933
|
.subscribe(function (items) { return _this.$filteredItems.next(items); }));
|
|
7931
7934
|
// Applying implicit value, on blur
|
|
7932
7935
|
this._subscription.add(this.blurred
|
|
7933
|
-
.pipe(operators.map(function (_) { return _this.formControl.value; })
|
|
7936
|
+
.pipe(operators.map(function (_) { return _this.formControl.value; })
|
|
7937
|
+
// DEBUG
|
|
7938
|
+
//,tap(value => this.debug && console.debug(this.logPrefix + ' Received blurred event: ', value)),
|
|
7939
|
+
)
|
|
7934
7940
|
.subscribe(function (value) {
|
|
7935
7941
|
// When leave component without object, use implicit value if :
|
|
7936
7942
|
// - an explicit value
|
|
@@ -8042,6 +8048,8 @@
|
|
|
8042
8048
|
this._reload$.next(value || '*');
|
|
8043
8049
|
};
|
|
8044
8050
|
MatChipsField.prototype.writeValue = function (value) {
|
|
8051
|
+
// DEBUG
|
|
8052
|
+
// if (this.debug) console.debug(this.logPrefix + ' Writing value: ', value);
|
|
8045
8053
|
if (value && !Array.isArray(value)) {
|
|
8046
8054
|
value = [value];
|
|
8047
8055
|
}
|
|
@@ -8312,9 +8320,9 @@
|
|
|
8312
8320
|
showLoadingSpinner: [{ type: i0.Input }],
|
|
8313
8321
|
chipColor: [{ type: i0.Input }],
|
|
8314
8322
|
debug: [{ type: i0.Input }],
|
|
8315
|
-
clicked: [{ type: i0.Output }],
|
|
8316
|
-
blurred: [{ type: i0.Output }],
|
|
8317
|
-
focused: [{ type: i0.Output }],
|
|
8323
|
+
clicked: [{ type: i0.Output, args: ['click',] }],
|
|
8324
|
+
blurred: [{ type: i0.Output, args: ['blur',] }],
|
|
8325
|
+
focused: [{ type: i0.Output, args: ['focus',] }],
|
|
8318
8326
|
dropButtonClick: [{ type: i0.Output }],
|
|
8319
8327
|
keydownEscape: [{ type: i0.Output, args: ['keydown.escape',] }],
|
|
8320
8328
|
keyupEnter: [{ type: i0.Output, args: ['keyup.enter',] }],
|
|
@@ -20107,7 +20115,7 @@
|
|
|
20107
20115
|
_this.form.get('username').setValidators(i1.Validators.required);
|
|
20108
20116
|
}
|
|
20109
20117
|
// Enable/disable registration link
|
|
20110
|
-
_this.canRegister = config.
|
|
20118
|
+
_this.canRegister = config.getPropertyAsBoolean(CORE_CONFIG_OPTIONS.REGISTRATION_ENABLE);
|
|
20111
20119
|
_this.markForCheck();
|
|
20112
20120
|
}));
|
|
20113
20121
|
// For DEV only
|
|
@@ -24724,13 +24732,6 @@
|
|
|
24724
24732
|
AppTable.prototype.markAsLoaded = function (opts) {
|
|
24725
24733
|
this.setLoading(false, opts);
|
|
24726
24734
|
};
|
|
24727
|
-
AppTable.prototype.markRowAsDirty = function (row, opts) {
|
|
24728
|
-
var _a;
|
|
24729
|
-
row = row || this.editedRow;
|
|
24730
|
-
if (row)
|
|
24731
|
-
(_a = row.validator) === null || _a === void 0 ? void 0 : _a.markAsDirty(opts);
|
|
24732
|
-
this.markAsDirty(opts);
|
|
24733
|
-
};
|
|
24734
24735
|
AppTable.prototype.markAsReady = function (opts) {
|
|
24735
24736
|
if (this.readySubject.value !== true) {
|
|
24736
24737
|
this.readySubject.next(true);
|
|
@@ -26083,6 +26084,13 @@
|
|
|
26083
26084
|
AppTable.prototype.equals = function (d1, d2) {
|
|
26084
26085
|
return EntityUtils.equals(d1, d2, 'id');
|
|
26085
26086
|
};
|
|
26087
|
+
AppTable.prototype.markRowAsDirty = function (row, opts) {
|
|
26088
|
+
var _a;
|
|
26089
|
+
row = row || this.editedRow;
|
|
26090
|
+
if (row)
|
|
26091
|
+
(_a = row.validator) === null || _a === void 0 ? void 0 : _a.markAsDirty(opts);
|
|
26092
|
+
this.markAsDirty(opts);
|
|
26093
|
+
};
|
|
26086
26094
|
/* -- private method -- */
|
|
26087
26095
|
AppTable.prototype.setLoading = function (value, opts) {
|
|
26088
26096
|
if (this.loadingSubject.value !== value) {
|