@sumaris-net/ngx-components 0.27.16 → 0.27.20
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 +42 -4
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/esm2015/src/app/core/core.module.js +5 -2
- package/esm2015/src/app/core/form/editor.class.js +3 -2
- package/esm2015/src/app/core/icon/icon.component.js +29 -0
- package/esm2015/src/app/core/menu/menu.component.js +2 -2
- package/esm2015/src/app/core/menu/menu.model.js +1 -1
- package/esm2015/src/app/shared/colors.utils.js +2 -0
- package/esm2015/src/app/shared/types.js +1 -1
- package/esm2015/src/app/shared/validator/validators.js +3 -2
- package/esm2015/sumaris-net.ngx-components.js +2 -1
- package/fesm2015/sumaris-net.ngx-components.js +37 -5
- 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 -2
- package/src/app/core/icon/icon.component.d.ts +9 -0
- package/src/app/core/menu/menu.model.d.ts +0 -2
- package/src/app/shared/colors.utils.d.ts +3 -0
- package/src/app/shared/types.d.ts +1 -0
- package/src/app/shared/validator/validators.d.ts +1 -0
- package/src/assets/i18n/fr.json +2 -2
- package/sumaris-net.ngx-components.d.ts +1 -0
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -3124,7 +3124,8 @@
|
|
|
3124
3124
|
latitude: 'ERROR.FIELD_NOT_VALID_LATITUDE',
|
|
3125
3125
|
longitude: 'ERROR.FIELD_NOT_VALID_LONGITUDE',
|
|
3126
3126
|
pattern: 'ERROR.FIELD_NOT_VALID_PATTERN',
|
|
3127
|
-
unique: 'ERROR.FIELD_NOT_UNIQUE'
|
|
3127
|
+
unique: 'ERROR.FIELD_NOT_UNIQUE',
|
|
3128
|
+
entity: 'ERROR.FIELD_INVALID'
|
|
3128
3129
|
};
|
|
3129
3130
|
// @dynamic
|
|
3130
3131
|
var SharedFormGroupValidators = /** @class */ (function () {
|
|
@@ -22363,7 +22364,7 @@
|
|
|
22363
22364
|
MenuComponent.decorators = [
|
|
22364
22365
|
{ type: i0.Component, args: [{
|
|
22365
22366
|
selector: 'app-menu',
|
|
22366
|
-
template: "<ion-split-pane #splitPane contentId=\"menu-content\" (swiperight)=\"onSwipeRight($event)\">\n\n <ion-menu id=\"menu\" menuId=\"left\" contentId=\"menu-content\">\n <ion-header>\n\n <
|
|
22367
|
+
template: "<ion-split-pane #splitPane contentId=\"menu-content\" (swiperight)=\"onSwipeRight($event)\">\n\n <ion-menu id=\"menu\" menuId=\"left\" contentId=\"menu-content\">\n <ion-header>\n\n <ion-toolbar @fadeInAnimation *ngIf=\"isLogin; else notLogin\" class=\"ion-toolbar-top\">\n <ion-grid>\n <ion-row>\n <ion-col size=\"4\">\n <button type=\"button\" mat-flat-button\n class=\"user-avatar\" [class.primary]=\"!accountAvatar\"\n [style.background-image]=\"'url('+(accountAvatar||'./assets/img/person.png')+')'\"\n [routerLink]=\"['/account']\"\n routerDirection=\"root\"\n routerLinkActive=\"ion-color-primary\"\n (click)=\"menuClose()\">\n </button>\n </ion-col>\n <ion-col size=\"8\" class=\"user-logo\">\n <img *ngIf=\"logo\" src=\"{{logo}}\" [title]=\"'APP_NAME'|translate: {appName: appName}\" width=\"108px;\"/>\n <span *ngIf=\"!logo\" width=\"108px;\">{{appName}}</span>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-no-padding\">\n\n <button mat-button type=\"button\"\n [routerLink]=\"['/account']\"\n routerDirection=\"root\"\n routerLinkActive=\"ion-color-primary\"\n (click)=\"menuClose()\">\n <ion-label color=\"primary\" class=\"ion-text-wrap ion-text-start\">\n <h3 class=\"no-margin username\">\n <b>{{accountName}}</b>\n </h3>\n <h4>{{accountEmail}}</h4>\n </ion-label>\n </button>\n\n </ion-row>\n </ion-grid>\n\n </ion-toolbar>\n\n <!-- User not logged -->\n <ng-template #notLogin>\n <mat-toolbar class=\"ion-padding\" @fadeInAnimation\n style=\"height: unset; display: block; margin: auto; text-align: center;\">\n <img *ngIf=\"logo\" src=\"{{logo}}\" [title]=\"'APP_NAME'|translate: {appName: appName}\" width=\"150px;\">\n <span *ngIf=\"!logo\" style=\"width: 150px\">{{appName}}</span>\n </mat-toolbar>\n </ng-template>\n </ion-header>\n\n <ion-content [class.has-user-header]=\"isLogin\">\n\n <ion-list lines=\"none\">\n <ion-menu-toggle auto-hide=\"false\"\n [class.flex-spacer]=\"item.cssClass == 'flex-spacer'\"\n *ngFor=\"let item of $items | async\">\n\n <!-- link -->\n <ion-item *ngIf=\"!loading && item.path\"\n @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}} text-1x\"\n tappable\n [routerLink]=\"item.path\"\n routerDirection=\"root\"\n routerLinkActive=\"selected\"\n [routerLinkActiveOptions]=\"{exact: (item.path === '/')}\">\n <ion-icon slot=\"start\" *ngIf=\"item.icon\" [name]=\"item.icon\"></ion-icon>\n <mat-icon slot=\"start\" *ngIf=\"item.matIcon\">{{item.matIcon}}</mat-icon>\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item>\n\n <!-- action -->\n <ion-item *ngIf=\"!loading && item.action\"\n @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}} text-1x\"\n tappable\n (click)=\"doAction(item.action, $event)\">\n <ion-icon slot=\"start\" *ngIf=\"item.icon\" [name]=\"item.icon\"></ion-icon>\n <mat-icon slot=\"start\" *ngIf=\"item.matIcon\">{{item.matIcon}}</mat-icon>\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item>\n\n <!-- divider -->\n <ion-item-divider @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}}\"\n *ngIf=\"!loading && !item.path && !item.action\">\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item-divider>\n\n </ion-menu-toggle>\n </ion-list>\n </ion-content>\n\n <ion-footer class=\"hidden-xs hidden-sm\">\n <ion-toolbar>\n\n <ion-buttons slot=\"start\">\n <ion-button mat-icon-button color=\"accent\" (click)=\"openAboutModal($event)\">\n <mat-icon slot=\"icon-only\">help_outline</mat-icon>\n </ion-button>\n </ion-buttons>\n\n <ion-title (click)=\"openAboutModal($event)\" color=\"medium\">\n {{'MENU.FOOTER_VERSION_ABOUT'| translate: {version: appVersion} }}\n </ion-title>\n\n <ion-buttons slot=\"end\">\n <button mat-icon-button color=\"accent\" (click)=\"toggleSplitPane($event)\"\n class=\"hidden-xs hidden-sm hidden-md\"\n [title]=\"(splitPaneOpened ? 'COMMON.BTN_HIDE_MENU' : 'COMMON.BTN_SHOW_MENU') |translate\">\n <mat-icon><span>{{splitPaneOpened ? '«' : '»'}}</span></mat-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n </ion-footer>\n\n </ion-menu>\n\n <ng-content></ng-content>\n\n</ion-split-pane>\n",
|
|
22367
22368
|
animations: [fadeInAnimation],
|
|
22368
22369
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
22369
22370
|
styles: ["ion-menu{--ion-item-background:transparent;--ion-item-divider-background:transparent;--ion-item-icon-color:var(--ion-color-primary-tint);--ion-item-text-color:var(--ion-color-primary-tint);--ion-item-background-selected:var(--ion-color-secondary100);--ion-item-text-color-selected:var(--ion-color-primary);--ion-item-icon-color-selected:var(--ion-color-primary);--ion-item-text-color-disable:var(--ion-color-medium);--ion-item-icon-color-disable:var(--ion-color-medium)}ion-menu ion-header ion-text{color:var(--ion-color-primary)}ion-menu ion-header .user-avatar{background-size:cover;background-repeat:no-repeat;background-position:50%;background-color:var(--ion-color-secondary);border:1px solid var(--ion-color-primary);overflow:hidden!important;font-size:var(--avatar-size,60px)!important;line-height:var(--avatar-size,60px);height:var(--avatar-size,60px)!important;width:var(--avatar-size,60px)!important;border-radius:50%;display:inline-block}ion-menu ion-header .user-logo{text-align:right}ion-menu ion-header .user-logo img{max-width:120px;max-height:var(--avatar-size,60px);width:auto}ion-menu ion-header .username{padding-top:0;margin-top:0;margin-bottom:0;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}ion-menu ion-header button[mat-button]{padding:0;text-align:start!important;width:100%}ion-menu .scroll-content{margin-top:79px!important}ion-menu .has-user-header .scroll-content{margin-top:188px!important}ion-menu ion-content.has-profile-header{--offset-top:188px}ion-menu ion-content.no-profile-header{--offset-top:79px}ion-menu ion-content ion-list{min-height:100%;display:flex;flex-direction:column;justify-content:flex-start}ion-menu ion-content ion-list ion-menu-toggle.flex-spacer{flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-end}ion-menu ion-content ion-list ion-item.primary{--ion-item-icon-color:var(--ion-color-primary-tint);--ion-item-text-color:var(--ion-color-primary-tint)}ion-menu ion-content ion-list ion-item.secondary{--ion-item-icon-color:var(--ion-color-secondary-tint);--ion-item-text-color:var(--ion-color-secondary-tint)}ion-menu ion-content ion-list ion-item.tertiary{--ion-item-icon-color:var(--ion-color-tertiary-tint);--ion-item-text-color:var(--ion-color-tertiary-tint)}ion-menu ion-content ion-list ion-item.danger{--ion-item-icon-color:var(--ion-color-danger-tint);--ion-item-text-color:var(--ion-color-danger-tint)}ion-menu ion-content ion-list ion-item.medium{--ion-item-icon-color:var(--ion-color-medium-shade);--ion-item-text-color:var(--ion-color-medium-shade)}ion-menu ion-content ion-list ion-item.dark{--ion-item-icon-color:var(--ion-color-dark-tint);--ion-item-text-color:var(--ion-color-dark-tint)}ion-menu ion-content ion-list ion-item ion-icon,ion-menu ion-content ion-list ion-item mat-icon{color:var(--ion-item-icon-color)!important;fill:currentColor;stroke:currentColor}ion-menu ion-content ion-list ion-item ion-label,ion-menu ion-content ion-list ion-item ion-text{color:var(--ion-item-text-color)!important}ion-menu ion-content ion-list ion-item.selected{background-color:var(--ion-item-background-selected)!important;--color-hover:var(--ion-item-background-selected)!important}ion-menu ion-content ion-list ion-item.selected ion-icon,ion-menu ion-content ion-list ion-item.selected mat-icon{color:var(--ion-item-icon-color-selected)!important;fill:currentColor;stroke:currentColor}ion-menu ion-content ion-list ion-item.selected ion-label,ion-menu ion-content ion-list ion-item.selected ion-text{color:var(--ion-item-text-color-selected)!important}ion-menu ion-content ion-list ion-item.selected:hover{--color-hover:var(--ion-item-background-selected)!important;--ion-item-icon-color-selected:var(--ion-item-icon-color)!important;--ion-item-text-color-selected:var(--ion-item-text-color)!important}ion-menu ion-footer{display:block!important}ion-menu ion-footer ion-toolbar ion-title{cursor:pointer;font-size:12pt;font-weight:400;text-align:center;padding:0 8px}ion-menu ion-footer ion-toolbar ion-button{--width:40px}@media screen and (max-width:767px){ion-menu ion-footer{display:none!important;visibility:hidden!important}}@media screen and (min-width:768px){ion-menu ion-scroll{overflow-y:auto!important}ion-menu .user-avatar{font-size:var(--avatar-size,80px)!important;line-height:var(--avatar-size,80px);height:var(--avatar-size,80px)!important;width:var(--avatar-size,80px)!important}ion-menu .user-logo img{max-height:var(--avatar-size,80px)}}"]
|
|
@@ -22488,6 +22489,39 @@
|
|
|
22488
22489
|
forward: [{ type: i0.Output }]
|
|
22489
22490
|
};
|
|
22490
22491
|
|
|
22492
|
+
var AppIconComponent = /** @class */ (function () {
|
|
22493
|
+
function AppIconComponent() {
|
|
22494
|
+
this.icon = null;
|
|
22495
|
+
this.matIcon = null;
|
|
22496
|
+
this.matSvgIcon = null;
|
|
22497
|
+
this.color = null;
|
|
22498
|
+
}
|
|
22499
|
+
Object.defineProperty(AppIconComponent.prototype, "ref", {
|
|
22500
|
+
set: function (value) {
|
|
22501
|
+
this.icon = value.icon;
|
|
22502
|
+
this.matIcon = value.matIcon;
|
|
22503
|
+
this.matSvgIcon = value.matSvgIcon;
|
|
22504
|
+
},
|
|
22505
|
+
enumerable: false,
|
|
22506
|
+
configurable: true
|
|
22507
|
+
});
|
|
22508
|
+
;
|
|
22509
|
+
return AppIconComponent;
|
|
22510
|
+
}());
|
|
22511
|
+
AppIconComponent.decorators = [
|
|
22512
|
+
{ type: i0.Component, args: [{
|
|
22513
|
+
selector: 'app-icon',
|
|
22514
|
+
template: "<ion-icon *ngIf=\"icon; else matIconTemplate\" slot=\"icon-only\"\n [color]=\"color\"\n [name]=\"icon\"\n></ion-icon>\n<ng-template #matIconTemplate>\n <mat-icon [svgIcon]=\"matSvgIcon\"\n [style.color]=\"'var(--ion-color-'+color+')'\">{{matIcon}}</mat-icon>\n</ng-template>\n\n"
|
|
22515
|
+
},] }
|
|
22516
|
+
];
|
|
22517
|
+
AppIconComponent.propDecorators = {
|
|
22518
|
+
icon: [{ type: i0.Input }],
|
|
22519
|
+
matIcon: [{ type: i0.Input }],
|
|
22520
|
+
matSvgIcon: [{ type: i0.Input }],
|
|
22521
|
+
color: [{ type: i0.Input }],
|
|
22522
|
+
ref: [{ type: i0.Input }]
|
|
22523
|
+
};
|
|
22524
|
+
|
|
22491
22525
|
var CoreModule = /** @class */ (function () {
|
|
22492
22526
|
function CoreModule() {
|
|
22493
22527
|
}
|
|
@@ -22540,7 +22574,8 @@
|
|
|
22540
22574
|
EntityMetadataComponent,
|
|
22541
22575
|
FormButtonsBarComponent,
|
|
22542
22576
|
AppPropertiesForm,
|
|
22543
|
-
AppListForm
|
|
22577
|
+
AppListForm,
|
|
22578
|
+
AppIconComponent
|
|
22544
22579
|
],
|
|
22545
22580
|
exports: [
|
|
22546
22581
|
SharedModule,
|
|
@@ -22566,6 +22601,7 @@
|
|
|
22566
22601
|
AppListForm,
|
|
22567
22602
|
AppInstallUpgradeCard,
|
|
22568
22603
|
DepartmentToStringPipe,
|
|
22604
|
+
AppIconComponent
|
|
22569
22605
|
]
|
|
22570
22606
|
},] }
|
|
22571
22607
|
];
|
|
@@ -25916,7 +25952,8 @@
|
|
|
25916
25952
|
value = 0;
|
|
25917
25953
|
}
|
|
25918
25954
|
else if (value > this.tabCount - 1) {
|
|
25919
|
-
value
|
|
25955
|
+
console.warn("[tab-editor] Invalid tab index " + value + ". Max value is " + (this.tabCount - 1));
|
|
25956
|
+
value = this._selectedTabIndex;
|
|
25920
25957
|
}
|
|
25921
25958
|
this._selectedTabIndex = value;
|
|
25922
25959
|
this.selectedTabIndexChange.next(value);
|
|
@@ -28345,6 +28382,7 @@
|
|
|
28345
28382
|
exports["ɵi"] = RegisterModal;
|
|
28346
28383
|
exports["ɵj"] = UserSettingsValidatorService;
|
|
28347
28384
|
exports["ɵk"] = LocalSettingsValidatorService;
|
|
28385
|
+
exports["ɵl"] = AppIconComponent;
|
|
28348
28386
|
|
|
28349
28387
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
28350
28388
|
|