@seniorsistemas/angular-components 17.1.8 → 17.2.0
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/seniorsistemas-angular-components.umd.js +875 -115
- package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
- package/components/file-upload/file-upload.component.d.ts +7 -2
- package/components/file-upload/models/file-upload-permissions.d.ts +6 -0
- package/components/file-upload/models/index.d.ts +1 -0
- package/components/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +28 -0
- package/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.d.ts +2 -0
- package/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +14 -0
- package/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +21 -0
- package/components/tiered-menu/index.d.ts +3 -0
- package/components/tiered-menu/models/index.d.ts +2 -0
- package/components/tiered-menu/models/tiered-menu-item-data.d.ts +7 -0
- package/components/tiered-menu/models/tiered-menu-item-internal-data.d.ts +10 -0
- package/components/tiered-menu/tiered-menu.directive.d.ts +37 -0
- package/components/tiered-menu/tiered-menu.event.service.d.ts +18 -0
- package/components/tiered-menu/tiered-menu.module.d.ts +2 -0
- package/components/tiered-menu/tiered-menu.service.d.ts +10 -0
- package/esm2015/components/file-upload/file-upload.component.js +13 -5
- package/esm2015/components/file-upload/file-upload.module.js +2 -2
- package/esm2015/components/file-upload/models/file-upload-permissions.js +12 -0
- package/esm2015/components/file-upload/models/index.js +2 -1
- package/esm2015/components/tiered-menu/components/tiered-menu/tiered-menu.component.js +219 -0
- package/esm2015/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.js +13 -0
- package/esm2015/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.js +68 -0
- package/esm2015/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.js +131 -0
- package/esm2015/components/tiered-menu/index.js +3 -0
- package/esm2015/components/tiered-menu/models/index.js +1 -0
- package/esm2015/components/tiered-menu/models/tiered-menu-item-data.js +1 -0
- package/esm2015/components/tiered-menu/models/tiered-menu-item-internal-data.js +1 -0
- package/esm2015/components/tiered-menu/tiered-menu.directive.js +212 -0
- package/esm2015/components/tiered-menu/tiered-menu.event.service.js +39 -0
- package/esm2015/components/tiered-menu/tiered-menu.module.js +35 -0
- package/esm2015/components/tiered-menu/tiered-menu.service.js +39 -0
- package/esm2015/components/tooltip/tooltip.directive.js +2 -2
- package/esm2015/public-api.js +2 -1
- package/esm2015/seniorsistemas-angular-components.js +7 -1
- package/esm5/components/file-upload/file-upload.component.js +13 -5
- package/esm5/components/file-upload/file-upload.module.js +2 -2
- package/esm5/components/file-upload/models/file-upload-permissions.js +12 -0
- package/esm5/components/file-upload/models/index.js +2 -1
- package/esm5/components/tiered-menu/components/tiered-menu/tiered-menu.component.js +224 -0
- package/esm5/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.js +16 -0
- package/esm5/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.js +70 -0
- package/esm5/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.js +133 -0
- package/esm5/components/tiered-menu/index.js +3 -0
- package/esm5/components/tiered-menu/models/index.js +1 -0
- package/esm5/components/tiered-menu/models/tiered-menu-item-data.js +1 -0
- package/esm5/components/tiered-menu/models/tiered-menu-item-internal-data.js +1 -0
- package/esm5/components/tiered-menu/tiered-menu.directive.js +216 -0
- package/esm5/components/tiered-menu/tiered-menu.event.service.js +40 -0
- package/esm5/components/tiered-menu/tiered-menu.module.js +38 -0
- package/esm5/components/tiered-menu/tiered-menu.service.js +44 -0
- package/esm5/components/tooltip/tooltip.directive.js +2 -2
- package/esm5/public-api.js +2 -1
- package/esm5/seniorsistemas-angular-components.js +7 -1
- package/fesm2015/seniorsistemas-angular-components.js +840 -113
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +871 -119
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/seniorsistemas-angular-components.d.ts +6 -0
- package/seniorsistemas-angular-components.metadata.json +1 -1
|
@@ -8,7 +8,7 @@ import { RouterModule, NavigationEnd, PRIMARY_OUTLET, ActivatedRoute, Router } f
|
|
|
8
8
|
import { BreadcrumbModule as BreadcrumbModule$1 } from 'primeng/breadcrumb';
|
|
9
9
|
import { Subject, of, from, forkJoin, throwError, ReplaySubject } from 'rxjs';
|
|
10
10
|
import { takeUntil, filter, tap, map, switchMap, catchError, delay, debounceTime, repeat, finalize, take } from 'rxjs/operators';
|
|
11
|
-
import { TieredMenu, TieredMenuModule } from 'primeng/tieredmenu';
|
|
11
|
+
import { TieredMenu, TieredMenuModule as TieredMenuModule$1 } from 'primeng/tieredmenu';
|
|
12
12
|
import { TooltipModule as TooltipModule$1 } from 'primeng/tooltip';
|
|
13
13
|
import { DomHandler } from 'primeng/dom';
|
|
14
14
|
import { Calendar, CalendarModule } from 'primeng/calendar';
|
|
@@ -39,7 +39,7 @@ import { PanelModule as PanelModule$1 } from 'primeng/panel';
|
|
|
39
39
|
import { RadioButtonModule } from 'primeng/radiobutton';
|
|
40
40
|
import { SliderModule } from 'primeng/slider';
|
|
41
41
|
import { ProgressBarModule as ProgressBarModule$1 } from 'primeng/progressbar';
|
|
42
|
-
import { DomSanitizer } from '@angular/platform-browser';
|
|
42
|
+
import { DomSanitizer, BrowserModule } from '@angular/platform-browser';
|
|
43
43
|
import Cropper from 'cropperjs';
|
|
44
44
|
import * as elementResizeDetectorMaker_ from 'element-resize-detector';
|
|
45
45
|
import { FocusTrapFactory, A11yModule } from '@angular/cdk/a11y';
|
|
@@ -509,7 +509,7 @@ let TooltipDirective = class TooltipDirective {
|
|
|
509
509
|
}
|
|
510
510
|
showTooltip() {
|
|
511
511
|
if (this.componentRef !== null) {
|
|
512
|
-
this.componentRef.instance.visible =
|
|
512
|
+
this.componentRef.instance.visible = this.visible;
|
|
513
513
|
window.addEventListener('mousemove', this.boundOnWindowMouseMoveFunction);
|
|
514
514
|
}
|
|
515
515
|
}
|
|
@@ -1029,7 +1029,7 @@ let ButtonModule = class ButtonModule {
|
|
|
1029
1029
|
};
|
|
1030
1030
|
ButtonModule = __decorate([
|
|
1031
1031
|
NgModule({
|
|
1032
|
-
imports: [CommonModule, RouterModule, TieredMenuModule, TooltipModule$1],
|
|
1032
|
+
imports: [CommonModule, RouterModule, TieredMenuModule$1, TooltipModule$1],
|
|
1033
1033
|
declarations: [ButtonComponent],
|
|
1034
1034
|
exports: [ButtonComponent],
|
|
1035
1035
|
})
|
|
@@ -3911,113 +3911,6 @@ EmptyStateModule = __decorate([
|
|
|
3911
3911
|
})
|
|
3912
3912
|
], EmptyStateModule);
|
|
3913
3913
|
|
|
3914
|
-
var ValidateErrors;
|
|
3915
|
-
(function (ValidateErrors) {
|
|
3916
|
-
ValidateErrors["MAX_FILE_SIZE"] = "MAX_FILE_SIZE";
|
|
3917
|
-
ValidateErrors["MAX_FILE_LIMIT"] = "MAX_FILE_LIMIT";
|
|
3918
|
-
ValidateErrors["UNSUPPORTED_EXTENSION"] = "UNSUPPORTED_EXTENSION";
|
|
3919
|
-
})(ValidateErrors || (ValidateErrors = {}));
|
|
3920
|
-
|
|
3921
|
-
const Breakpoints = {
|
|
3922
|
-
SM_MIN: 0,
|
|
3923
|
-
SM_MAX: 767,
|
|
3924
|
-
MD_MIN: 768,
|
|
3925
|
-
MD_MAX: 991,
|
|
3926
|
-
LG_MIN: 992,
|
|
3927
|
-
LG_MAX: 1199,
|
|
3928
|
-
XL_MIN: 1200,
|
|
3929
|
-
XL_MAX: Infinity,
|
|
3930
|
-
};
|
|
3931
|
-
|
|
3932
|
-
class ExportUtils {
|
|
3933
|
-
constructor() {
|
|
3934
|
-
throw new Error("Classe não deve ser instanciada.");
|
|
3935
|
-
}
|
|
3936
|
-
static addClass(element, className) {
|
|
3937
|
-
element.nativeElement.className = `${element.nativeElement.className} ${className}`;
|
|
3938
|
-
}
|
|
3939
|
-
static removeClass(element, className) {
|
|
3940
|
-
if (element.nativeElement.className.includes(className)) {
|
|
3941
|
-
element.nativeElement.className = element.nativeElement.className.replace(className, "");
|
|
3942
|
-
}
|
|
3943
|
-
}
|
|
3944
|
-
static exportCSV(columns = [], data = [], csvSeparator = ";", documentName = "download") {
|
|
3945
|
-
let csv = "\ufeff";
|
|
3946
|
-
columns.filter((column) => column.exportable && column.field).forEach((column, i) => {
|
|
3947
|
-
csv += `"${column.header || column.field}"`;
|
|
3948
|
-
if (i < columns.length - 1)
|
|
3949
|
-
csv += csvSeparator;
|
|
3950
|
-
});
|
|
3951
|
-
data.forEach((record) => {
|
|
3952
|
-
csv += "\n";
|
|
3953
|
-
columns.filter((column) => column.exportable && column.field).forEach((column, i) => {
|
|
3954
|
-
let cellData;
|
|
3955
|
-
if (Array.isArray(column.field)) {
|
|
3956
|
-
const fieldValues = column.field.map((col) => this.resolveFieldData(record, col));
|
|
3957
|
-
cellData = fieldValues
|
|
3958
|
-
.flat()
|
|
3959
|
-
.filter((value) => value !== null && value !== undefined)
|
|
3960
|
-
.join(column.separator);
|
|
3961
|
-
}
|
|
3962
|
-
else {
|
|
3963
|
-
cellData = this.resolveFieldData(record, column.field);
|
|
3964
|
-
}
|
|
3965
|
-
if (cellData != null)
|
|
3966
|
-
cellData = String(cellData).replace(/"/g, `""`);
|
|
3967
|
-
else
|
|
3968
|
-
cellData = "";
|
|
3969
|
-
csv += `"${cellData}"`;
|
|
3970
|
-
if (i < columns.length - 1)
|
|
3971
|
-
csv += csvSeparator;
|
|
3972
|
-
});
|
|
3973
|
-
});
|
|
3974
|
-
const blob = new Blob([csv], {
|
|
3975
|
-
type: "text/csv;charset=utf-8;",
|
|
3976
|
-
});
|
|
3977
|
-
if (window.navigator.msSaveOrOpenBlob)
|
|
3978
|
-
navigator.msSaveOrOpenBlob(blob, documentName + ".csv");
|
|
3979
|
-
else {
|
|
3980
|
-
const link = document.createElement("a");
|
|
3981
|
-
link.style.display = "none";
|
|
3982
|
-
document.body.appendChild(link);
|
|
3983
|
-
if (link.download !== undefined) {
|
|
3984
|
-
link.setAttribute("href", URL.createObjectURL(blob));
|
|
3985
|
-
link.setAttribute("download", documentName + ".csv");
|
|
3986
|
-
link.click();
|
|
3987
|
-
}
|
|
3988
|
-
else {
|
|
3989
|
-
csv = "data:text/csv;charset=utf-8," + csv;
|
|
3990
|
-
window.open(encodeURI(csv));
|
|
3991
|
-
}
|
|
3992
|
-
document.body.removeChild(link);
|
|
3993
|
-
}
|
|
3994
|
-
}
|
|
3995
|
-
static resolveFieldData(data, field) {
|
|
3996
|
-
if (data && field) {
|
|
3997
|
-
if (this.isFunction(field))
|
|
3998
|
-
return field(data);
|
|
3999
|
-
else if (field.indexOf(".") == -1)
|
|
4000
|
-
return data[field];
|
|
4001
|
-
else {
|
|
4002
|
-
const fields = field.split(".");
|
|
4003
|
-
let value = data;
|
|
4004
|
-
for (let i = 0, len = fields.length; i < len; ++i) {
|
|
4005
|
-
if (value == null) {
|
|
4006
|
-
return null;
|
|
4007
|
-
}
|
|
4008
|
-
value = value[fields[i]];
|
|
4009
|
-
}
|
|
4010
|
-
return value;
|
|
4011
|
-
}
|
|
4012
|
-
}
|
|
4013
|
-
else
|
|
4014
|
-
return null;
|
|
4015
|
-
}
|
|
4016
|
-
static isFunction(obj) {
|
|
4017
|
-
return !!(obj && obj.constructor && obj.call && obj.apply);
|
|
4018
|
-
}
|
|
4019
|
-
}
|
|
4020
|
-
|
|
4021
3914
|
/**
|
|
4022
3915
|
* Formats a JSON response to a JS object
|
|
4023
3916
|
* @param response The response to format
|
|
@@ -4213,6 +4106,125 @@ FileUploadService = __decorate([
|
|
|
4213
4106
|
Injectable()
|
|
4214
4107
|
], FileUploadService);
|
|
4215
4108
|
|
|
4109
|
+
const Breakpoints = {
|
|
4110
|
+
SM_MIN: 0,
|
|
4111
|
+
SM_MAX: 767,
|
|
4112
|
+
MD_MIN: 768,
|
|
4113
|
+
MD_MAX: 991,
|
|
4114
|
+
LG_MIN: 992,
|
|
4115
|
+
LG_MAX: 1199,
|
|
4116
|
+
XL_MIN: 1200,
|
|
4117
|
+
XL_MAX: Infinity,
|
|
4118
|
+
};
|
|
4119
|
+
|
|
4120
|
+
class ExportUtils {
|
|
4121
|
+
constructor() {
|
|
4122
|
+
throw new Error("Classe não deve ser instanciada.");
|
|
4123
|
+
}
|
|
4124
|
+
static addClass(element, className) {
|
|
4125
|
+
element.nativeElement.className = `${element.nativeElement.className} ${className}`;
|
|
4126
|
+
}
|
|
4127
|
+
static removeClass(element, className) {
|
|
4128
|
+
if (element.nativeElement.className.includes(className)) {
|
|
4129
|
+
element.nativeElement.className = element.nativeElement.className.replace(className, "");
|
|
4130
|
+
}
|
|
4131
|
+
}
|
|
4132
|
+
static exportCSV(columns = [], data = [], csvSeparator = ";", documentName = "download") {
|
|
4133
|
+
let csv = "\ufeff";
|
|
4134
|
+
columns.filter((column) => column.exportable && column.field).forEach((column, i) => {
|
|
4135
|
+
csv += `"${column.header || column.field}"`;
|
|
4136
|
+
if (i < columns.length - 1)
|
|
4137
|
+
csv += csvSeparator;
|
|
4138
|
+
});
|
|
4139
|
+
data.forEach((record) => {
|
|
4140
|
+
csv += "\n";
|
|
4141
|
+
columns.filter((column) => column.exportable && column.field).forEach((column, i) => {
|
|
4142
|
+
let cellData;
|
|
4143
|
+
if (Array.isArray(column.field)) {
|
|
4144
|
+
const fieldValues = column.field.map((col) => this.resolveFieldData(record, col));
|
|
4145
|
+
cellData = fieldValues
|
|
4146
|
+
.flat()
|
|
4147
|
+
.filter((value) => value !== null && value !== undefined)
|
|
4148
|
+
.join(column.separator);
|
|
4149
|
+
}
|
|
4150
|
+
else {
|
|
4151
|
+
cellData = this.resolveFieldData(record, column.field);
|
|
4152
|
+
}
|
|
4153
|
+
if (cellData != null)
|
|
4154
|
+
cellData = String(cellData).replace(/"/g, `""`);
|
|
4155
|
+
else
|
|
4156
|
+
cellData = "";
|
|
4157
|
+
csv += `"${cellData}"`;
|
|
4158
|
+
if (i < columns.length - 1)
|
|
4159
|
+
csv += csvSeparator;
|
|
4160
|
+
});
|
|
4161
|
+
});
|
|
4162
|
+
const blob = new Blob([csv], {
|
|
4163
|
+
type: "text/csv;charset=utf-8;",
|
|
4164
|
+
});
|
|
4165
|
+
if (window.navigator.msSaveOrOpenBlob)
|
|
4166
|
+
navigator.msSaveOrOpenBlob(blob, documentName + ".csv");
|
|
4167
|
+
else {
|
|
4168
|
+
const link = document.createElement("a");
|
|
4169
|
+
link.style.display = "none";
|
|
4170
|
+
document.body.appendChild(link);
|
|
4171
|
+
if (link.download !== undefined) {
|
|
4172
|
+
link.setAttribute("href", URL.createObjectURL(blob));
|
|
4173
|
+
link.setAttribute("download", documentName + ".csv");
|
|
4174
|
+
link.click();
|
|
4175
|
+
}
|
|
4176
|
+
else {
|
|
4177
|
+
csv = "data:text/csv;charset=utf-8," + csv;
|
|
4178
|
+
window.open(encodeURI(csv));
|
|
4179
|
+
}
|
|
4180
|
+
document.body.removeChild(link);
|
|
4181
|
+
}
|
|
4182
|
+
}
|
|
4183
|
+
static resolveFieldData(data, field) {
|
|
4184
|
+
if (data && field) {
|
|
4185
|
+
if (this.isFunction(field))
|
|
4186
|
+
return field(data);
|
|
4187
|
+
else if (field.indexOf(".") == -1)
|
|
4188
|
+
return data[field];
|
|
4189
|
+
else {
|
|
4190
|
+
const fields = field.split(".");
|
|
4191
|
+
let value = data;
|
|
4192
|
+
for (let i = 0, len = fields.length; i < len; ++i) {
|
|
4193
|
+
if (value == null) {
|
|
4194
|
+
return null;
|
|
4195
|
+
}
|
|
4196
|
+
value = value[fields[i]];
|
|
4197
|
+
}
|
|
4198
|
+
return value;
|
|
4199
|
+
}
|
|
4200
|
+
}
|
|
4201
|
+
else
|
|
4202
|
+
return null;
|
|
4203
|
+
}
|
|
4204
|
+
static isFunction(obj) {
|
|
4205
|
+
return !!(obj && obj.constructor && obj.call && obj.apply);
|
|
4206
|
+
}
|
|
4207
|
+
}
|
|
4208
|
+
|
|
4209
|
+
var ValidateErrors;
|
|
4210
|
+
(function (ValidateErrors) {
|
|
4211
|
+
ValidateErrors["MAX_FILE_SIZE"] = "MAX_FILE_SIZE";
|
|
4212
|
+
ValidateErrors["MAX_FILE_LIMIT"] = "MAX_FILE_LIMIT";
|
|
4213
|
+
ValidateErrors["UNSUPPORTED_EXTENSION"] = "UNSUPPORTED_EXTENSION";
|
|
4214
|
+
})(ValidateErrors || (ValidateErrors = {}));
|
|
4215
|
+
|
|
4216
|
+
var FileUploadPermissions;
|
|
4217
|
+
(function (FileUploadPermissions) {
|
|
4218
|
+
FileUploadPermissions["Add"] = "add";
|
|
4219
|
+
FileUploadPermissions["Read"] = "read";
|
|
4220
|
+
FileUploadPermissions["Remove"] = "remove";
|
|
4221
|
+
})(FileUploadPermissions || (FileUploadPermissions = {}));
|
|
4222
|
+
const ALL_PERMISSIONS = [
|
|
4223
|
+
FileUploadPermissions.Add,
|
|
4224
|
+
FileUploadPermissions.Read,
|
|
4225
|
+
FileUploadPermissions.Remove,
|
|
4226
|
+
];
|
|
4227
|
+
|
|
4216
4228
|
var FileUploadComponent_1;
|
|
4217
4229
|
const moment$3 = moment_;
|
|
4218
4230
|
let FileUploadComponent = FileUploadComponent_1 = class FileUploadComponent {
|
|
@@ -4220,6 +4232,9 @@ let FileUploadComponent = FileUploadComponent_1 = class FileUploadComponent {
|
|
|
4220
4232
|
this.sanitizer = sanitizer;
|
|
4221
4233
|
this.fileUploadService = fileUploadService;
|
|
4222
4234
|
this.translate = translate;
|
|
4235
|
+
this.ADD_PERMISSION = FileUploadPermissions.Add;
|
|
4236
|
+
this.READ_PERMISSION = FileUploadPermissions.Read;
|
|
4237
|
+
this.REMOVE_PERMISSION = FileUploadPermissions.Remove;
|
|
4223
4238
|
this.id = `s-file-upload-${FileUploadComponent_1.nextId++}`;
|
|
4224
4239
|
this.chooseLabel = "Anexar arquivos";
|
|
4225
4240
|
this.removeLabel = "Remover";
|
|
@@ -4229,6 +4244,7 @@ let FileUploadComponent = FileUploadComponent_1 = class FileUploadComponent {
|
|
|
4229
4244
|
this.ariaLabelProgress = "Carregando arquivo";
|
|
4230
4245
|
this.disabled = false;
|
|
4231
4246
|
this.showFileUploadDate = false;
|
|
4247
|
+
this.permissions = ALL_PERMISSIONS;
|
|
4232
4248
|
this.uploadHandler = new EventEmitter();
|
|
4233
4249
|
this.removeFile = new EventEmitter();
|
|
4234
4250
|
this.cancelUpload = new EventEmitter();
|
|
@@ -4437,6 +4453,9 @@ __decorate([
|
|
|
4437
4453
|
__decorate([
|
|
4438
4454
|
Input()
|
|
4439
4455
|
], FileUploadComponent.prototype, "showFileUploadDate", void 0);
|
|
4456
|
+
__decorate([
|
|
4457
|
+
Input()
|
|
4458
|
+
], FileUploadComponent.prototype, "permissions", void 0);
|
|
4440
4459
|
__decorate([
|
|
4441
4460
|
Input()
|
|
4442
4461
|
], FileUploadComponent.prototype, "files", null);
|
|
@@ -4461,7 +4480,7 @@ __decorate([
|
|
|
4461
4480
|
FileUploadComponent = FileUploadComponent_1 = __decorate([
|
|
4462
4481
|
Component({
|
|
4463
4482
|
selector: "s-file-upload",
|
|
4464
|
-
template: "<div\n [id]=\"id\"\n class=\"s-fileupload\">\n <div class=\"s-fileupload-choose\">\n <input\n #inputUpload\n [id]=\"id+'input-upload'\"\n type=\"file\"\n name=\"file\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n (change)=\"onFileSelect($event.dataTransfer\n ? $event.dataTransfer.files\n : $event.target.files)\"> \n <s-button\n [id]=\"id + 'upload-button'\"\n [label]=\"chooseLabel\"\n (onClick)=\"inputUpload.click()\"\n priority=\"primary\"\n [disabled]=\"disabled || !!formGroup?.disabled\"\n [auxiliary]=\"false\">\n </s-button>\n </div>\n\n <section\n *ngIf=\"files.length\" \n [id]=\"id + 'fileupload-list'\"\n class=\"s-fileupload-list\"\n role=\"grid\">\n <ng-container *ngFor=\"let file of files; let i = index\">\n <div\n class=\"s-fileupload-list-file\"\n role=\"row\">\n <div\n [id]=\"id + '-file-' + i + '-name'\"\n class=\"s-fileupload-list-file-name\"\n role=\"gridcell\">\n <ng-container *ngTemplateOutlet=\"file.savedFile || file.progress === 100\n ? descriptionUrl\n : description; context: {\n $implicit: file,\n index: i\n }\">\n </ng-container>\n <span *ngIf=\"modifiedDate\" class=\"s-fileupload-list-file-name-date\">{{ modifiedDate }}</span>\n </div>\n <div\n class=\"s-fileupload-list-file-status\"\n role=\"gridcell\">\n <p-progressBar\n *ngIf=\"file.isUploading && !isSmallDevice\"\n [style]=\"{ 'width': '250px', 'background-color': '#d8d8d8', 'border-radius': '0px', 'height': '14px'}\"\n [value]=\"file.progress\"\n [showValue]=\"false\"\n role=\"alert\"\n [attr.aria-label]=\"ariaLabelProgress\">\n </p-progressBar>\n <span\n *ngIf=\"file.isUploading && isSmallDevice\" \n [id]=\"id + '-file-' + i + '-spin'\"\n class=\"fas fa-circle-notch fa-spin\"\n [attr.aria-label]=\"ariaLabelProgress\">\n </span>\n <span\n *ngIf=\"!file.isUploading && !file.error && file.progress === 100\"\n [id]=\"id + '-file-' + i + '-check'\"\n class=\"fas fa-check\"\n role=\"alert\"\n [attr.aria-label]=\"ariaLabelSuccess || successTooltip\"\n [pTooltip]=\"successTooltip\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [appendTo]=\"'body'\">\n </span>\n <span\n *ngIf=\"file.error?.message\" \n [id]=\"id + '-file-' + i + '-error'\"\n class=\"fas fa-times\"\n role=\"alert\"\n [pTooltip]=\"file.error?.message\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [appendTo]=\"'body'\">\n </span>\n </div>\n <div\n class=\"s-fileupload-list-file-actions\"\n role=\"gridcell\">\n <a\n *ngIf=\"file.isUploading\"\n [id]=\"id + '-file-' + i + '-cancel'\"\n class=\"s-fileupload-list-file-actions-action\"\n (click)=\"onCancelUpload(i)\">\n {{cancelLabel}}\n </a>\n <a\n *ngIf=\"!file.isUploading && !(disabled || !!formGroup?.disabled)\"\n role=\"button\"\n tabindex=\"0\"\n [id]=\"id + '-file-' + i + '-remove'\"\n class=\"s-fileupload-list-file-actions-action\"\n (click)=\"onRemoveFile(file)\"\n [attr.aria-label]=\"ariaLabelRemove || removeLabel\">\n {{removeLabel}}\n </a>\n </div>\n </div>\n </ng-container>\n </section>\n</div>\n\n<ng-template\n #descriptionUrl\n let-file\n let-i = index>\n <a\n [id]=\"id + '-file-' + i + '-name-link'\"\n tabindex=\"0\"\n (click)=\"onDowloadFile(i)\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\">{{file.name}}\n </a>\n <a\n style=\"display: none;\"\n [href]=\"file.objectURL\"\n target=\"_blank\"\n download\n #anchor>\n </a>\n</ng-template>\n\n<ng-template\n #description\n let-file>\n <span\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\">\n {{file.name}}\n </span>\n</ng-template>\n",
|
|
4483
|
+
template: "<div\n [id]=\"id\"\n class=\"s-fileupload\">\n <div class=\"s-fileupload-choose\">\n <input\n #inputUpload\n [id]=\"id+'input-upload'\"\n type=\"file\"\n name=\"file\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n (change)=\"onFileSelect($event.dataTransfer\n ? $event.dataTransfer.files\n : $event.target.files)\"> \n <s-button\n *ngIf=\"permissions.includes(ADD_PERMISSION)\"\n [id]=\"id + 'upload-button'\"\n [label]=\"chooseLabel\"\n (onClick)=\"inputUpload.click()\"\n priority=\"primary\"\n [disabled]=\"disabled || !!formGroup?.disabled\"\n [auxiliary]=\"false\">\n </s-button>\n </div>\n\n <section\n *ngIf=\"files.length\" \n [id]=\"id + 'fileupload-list'\"\n class=\"s-fileupload-list\"\n role=\"grid\">\n <ng-container *ngFor=\"let file of files; let i = index\">\n <div\n class=\"s-fileupload-list-file\"\n role=\"row\">\n <div\n [id]=\"id + '-file-' + i + '-name'\"\n class=\"s-fileupload-list-file-name\"\n role=\"gridcell\">\n <ng-container *ngTemplateOutlet=\"permissions.includes(READ_PERMISSION) && file.savedFile || file.progress === 100\n ? descriptionUrl\n : description; context: {\n $implicit: file,\n index: i\n }\">\n </ng-container>\n <span *ngIf=\"modifiedDate\" class=\"s-fileupload-list-file-name-date\">{{ modifiedDate }}</span>\n </div>\n <div\n class=\"s-fileupload-list-file-status\"\n role=\"gridcell\">\n <p-progressBar\n *ngIf=\"file.isUploading && !isSmallDevice\"\n [style]=\"{ 'width': '250px', 'background-color': '#d8d8d8', 'border-radius': '0px', 'height': '14px'}\"\n [value]=\"file.progress\"\n [showValue]=\"false\"\n role=\"alert\"\n [attr.aria-label]=\"ariaLabelProgress\">\n </p-progressBar>\n <span\n *ngIf=\"file.isUploading && isSmallDevice\" \n [id]=\"id + '-file-' + i + '-spin'\"\n class=\"fas fa-circle-notch fa-spin\"\n [attr.aria-label]=\"ariaLabelProgress\">\n </span>\n <span\n *ngIf=\"!file.isUploading && !file.error && file.progress === 100\"\n [id]=\"id + '-file-' + i + '-check'\"\n class=\"fas fa-check\"\n role=\"alert\"\n [attr.aria-label]=\"ariaLabelSuccess || successTooltip\"\n [pTooltip]=\"successTooltip\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [appendTo]=\"'body'\">\n </span>\n <span\n *ngIf=\"file.error?.message\" \n [id]=\"id + '-file-' + i + '-error'\"\n class=\"fas fa-times\"\n role=\"alert\"\n [pTooltip]=\"file.error?.message\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [appendTo]=\"'body'\">\n </span>\n </div>\n <div\n class=\"s-fileupload-list-file-actions\"\n role=\"gridcell\">\n <a\n *ngIf=\"file.isUploading\"\n [id]=\"id + '-file-' + i + '-cancel'\"\n class=\"s-fileupload-list-file-actions-action\"\n (click)=\"onCancelUpload(i)\">\n {{cancelLabel}}\n </a>\n <a\n *ngIf=\"permissions.includes(REMOVE_PERMISSION) && !file.isUploading && !(disabled || !!formGroup?.disabled)\"\n role=\"button\"\n tabindex=\"0\"\n [id]=\"id + '-file-' + i + '-remove'\"\n class=\"s-fileupload-list-file-actions-action\"\n (click)=\"onRemoveFile(file)\"\n [attr.aria-label]=\"ariaLabelRemove || removeLabel\">\n {{removeLabel}}\n </a>\n </div>\n </div>\n </ng-container>\n </section>\n</div>\n\n<ng-template\n #descriptionUrl\n let-file\n let-i = index>\n <a\n [id]=\"id + '-file-' + i + '-name-link'\"\n tabindex=\"0\"\n (click)=\"onDowloadFile(i)\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\">{{file.name}}\n </a>\n <a\n style=\"display: none;\"\n [href]=\"file.objectURL\"\n target=\"_blank\"\n download\n #anchor>\n </a>\n</ng-template>\n\n<ng-template\n #description\n let-file>\n <span\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabelFileName || file.name\">\n {{file.name}}\n </span>\n</ng-template>\n",
|
|
4465
4484
|
styles: [".s-fileupload .s-fileupload-choose{position:relative;margin:15px 0;width:-webkit-max-content;width:max-content}.s-fileupload input[type=file]{display:none}.s-fileupload-list{border:1px solid #ccc}.s-fileupload-list-file:not(:first-child){border-top:1px solid #ccc}.s-fileupload-list .s-fileupload-list-file{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;padding:15px}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-name{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-item-align:center;align-self:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-name .s-fileupload-list-file-name-date{font-size:.75rem;color:#999}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-name>a{cursor:pointer;text-decoration:none}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-status{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.s-fileupload-list .s-fileupload-list-file .fas.fa-circle-notch{color:#d8d8d8;font-size:12px}.s-fileupload-list .s-fileupload-list-file .fas.fa-check{color:#0c9348;font-size:12px}.s-fileupload-list .s-fileupload-list-file .fas.fa-times{color:#c13018;font-size:12px}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-actions{margin-top:15px;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;width:100%}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-actions a.s-fileupload-list-file-actions-action{text-decoration:none;color:#428bca}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-actions a.s-fileupload-list-file-actions-action :focus,.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-actions a.s-fileupload-list-file-actions-action :visited,.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-actions a.s-fileupload-list-file-actions-action:hover{text-decoration:none}@media (min-width:768px){.s-fileupload-list .s-fileupload-list-file{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-name{width:auto;-ms-flex-positive:2;flex-grow:2}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-status{margin:0 15px}.s-fileupload-list .s-fileupload-list-file .s-fileupload-list-file-actions{margin:0;width:auto}}"]
|
|
4466
4485
|
})
|
|
4467
4486
|
], FileUploadComponent);
|
|
@@ -13185,6 +13204,714 @@ CodeEditorModule = __decorate([
|
|
|
13185
13204
|
})
|
|
13186
13205
|
], CodeEditorModule);
|
|
13187
13206
|
|
|
13207
|
+
let TieredMenuEventService = class TieredMenuEventService {
|
|
13208
|
+
constructor() {
|
|
13209
|
+
this.incrementCurrentItemEvent = new EventEmitter();
|
|
13210
|
+
this.decrementCurrentItemEvent = new EventEmitter();
|
|
13211
|
+
this.closeAllMenusEvent = new EventEmitter();
|
|
13212
|
+
this.selectItemEvent = new EventEmitter();
|
|
13213
|
+
this.openItemMenuEvent = new EventEmitter();
|
|
13214
|
+
this.closeItemMenuEvent = new EventEmitter();
|
|
13215
|
+
this.createMenuEvent = new EventEmitter();
|
|
13216
|
+
}
|
|
13217
|
+
emitIncrementCurrentItemEvent() {
|
|
13218
|
+
this.incrementCurrentItemEvent.emit();
|
|
13219
|
+
}
|
|
13220
|
+
emitDecrementCurrentItemEvent() {
|
|
13221
|
+
this.decrementCurrentItemEvent.emit();
|
|
13222
|
+
}
|
|
13223
|
+
emitCloseAllMenusEvent() {
|
|
13224
|
+
this.closeAllMenusEvent.emit();
|
|
13225
|
+
}
|
|
13226
|
+
emitSelectItemEvent(item) {
|
|
13227
|
+
this.selectItemEvent.emit(item);
|
|
13228
|
+
}
|
|
13229
|
+
emitOpenItemMenuEvent(item) {
|
|
13230
|
+
this.openItemMenuEvent.emit(item);
|
|
13231
|
+
}
|
|
13232
|
+
emitCloseItemMenuEvent(item) {
|
|
13233
|
+
this.closeItemMenuEvent.emit(item);
|
|
13234
|
+
}
|
|
13235
|
+
emitCreateMenuEvent(item) {
|
|
13236
|
+
this.createMenuEvent.emit(item);
|
|
13237
|
+
}
|
|
13238
|
+
};
|
|
13239
|
+
TieredMenuEventService = __decorate([
|
|
13240
|
+
Injectable()
|
|
13241
|
+
], TieredMenuEventService);
|
|
13242
|
+
|
|
13243
|
+
let TieredMenuService = class TieredMenuService {
|
|
13244
|
+
normalizeData(items, parent) {
|
|
13245
|
+
return items.map((i) => {
|
|
13246
|
+
if (i.submenu) {
|
|
13247
|
+
i.submenu = this.normalizeData(i.submenu, i);
|
|
13248
|
+
}
|
|
13249
|
+
i.id = `id-${Math.random().toString(36).substring(2, 9)}-${Date.now().toString(36)}`;
|
|
13250
|
+
i.parent = parent;
|
|
13251
|
+
i.isOpen = false;
|
|
13252
|
+
return i;
|
|
13253
|
+
});
|
|
13254
|
+
}
|
|
13255
|
+
markAllItemsAsClosed(items) {
|
|
13256
|
+
return items.map((item) => {
|
|
13257
|
+
if (item.submenu) {
|
|
13258
|
+
item.submenu = this.markAllItemsAsClosed(item.submenu);
|
|
13259
|
+
}
|
|
13260
|
+
item.isOpen = false;
|
|
13261
|
+
return item;
|
|
13262
|
+
});
|
|
13263
|
+
}
|
|
13264
|
+
searchTheHierarchy(item1, item2) {
|
|
13265
|
+
let itemAux = item2;
|
|
13266
|
+
while (itemAux) {
|
|
13267
|
+
if (itemAux === item1) {
|
|
13268
|
+
return true;
|
|
13269
|
+
}
|
|
13270
|
+
itemAux = itemAux.parent;
|
|
13271
|
+
}
|
|
13272
|
+
return false;
|
|
13273
|
+
}
|
|
13274
|
+
};
|
|
13275
|
+
TieredMenuService = __decorate([
|
|
13276
|
+
Injectable()
|
|
13277
|
+
], TieredMenuService);
|
|
13278
|
+
|
|
13279
|
+
let TieredMenuNestedComponent = class TieredMenuNestedComponent {
|
|
13280
|
+
constructor(tieredMenuService, _tieredMenuEventService) {
|
|
13281
|
+
this.tieredMenuService = tieredMenuService;
|
|
13282
|
+
this._tieredMenuEventService = _tieredMenuEventService;
|
|
13283
|
+
this.top = 0;
|
|
13284
|
+
this.maxHeight = 0;
|
|
13285
|
+
this._unsubscribe$ = new Subject();
|
|
13286
|
+
}
|
|
13287
|
+
ngOnInit() {
|
|
13288
|
+
this.tieredMenuService.currentItems = this.items;
|
|
13289
|
+
this._subscribeEvents();
|
|
13290
|
+
}
|
|
13291
|
+
ngOnDestroy() {
|
|
13292
|
+
this._unsubscribe$.next();
|
|
13293
|
+
this._unsubscribe$.complete();
|
|
13294
|
+
}
|
|
13295
|
+
_incrementCurItem() {
|
|
13296
|
+
if (!this.tieredMenuService.currentItem) {
|
|
13297
|
+
this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];
|
|
13298
|
+
return;
|
|
13299
|
+
}
|
|
13300
|
+
const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) + 1;
|
|
13301
|
+
if (curIndex < this.tieredMenuService.currentItems.length) {
|
|
13302
|
+
this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];
|
|
13303
|
+
}
|
|
13304
|
+
else {
|
|
13305
|
+
this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];
|
|
13306
|
+
}
|
|
13307
|
+
if (this.tieredMenuService.currentItem.divider) {
|
|
13308
|
+
this._incrementCurItem();
|
|
13309
|
+
}
|
|
13310
|
+
}
|
|
13311
|
+
_decrementCurItem() {
|
|
13312
|
+
if (!this.tieredMenuService.currentItem) {
|
|
13313
|
+
this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];
|
|
13314
|
+
return;
|
|
13315
|
+
}
|
|
13316
|
+
const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) - 1;
|
|
13317
|
+
if (curIndex >= 0) {
|
|
13318
|
+
this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];
|
|
13319
|
+
}
|
|
13320
|
+
else {
|
|
13321
|
+
this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[this.tieredMenuService.currentItems.length - 1];
|
|
13322
|
+
}
|
|
13323
|
+
if (this.tieredMenuService.currentItem.divider) {
|
|
13324
|
+
this._decrementCurItem();
|
|
13325
|
+
}
|
|
13326
|
+
}
|
|
13327
|
+
_closeItem(item) {
|
|
13328
|
+
var _a;
|
|
13329
|
+
let itemAux = this._lastOpenItem;
|
|
13330
|
+
while (itemAux && itemAux != item) {
|
|
13331
|
+
itemAux.isOpen = false;
|
|
13332
|
+
itemAux = itemAux.parent;
|
|
13333
|
+
}
|
|
13334
|
+
item.isOpen = false;
|
|
13335
|
+
this.tieredMenuService.currentItem = itemAux !== null && itemAux !== void 0 ? itemAux : this.tieredMenuService.items[0];
|
|
13336
|
+
this.tieredMenuService.currentItems = ((_a = itemAux === null || itemAux === void 0 ? void 0 : itemAux.parent) === null || _a === void 0 ? void 0 : _a.submenu) || this.tieredMenuService.items;
|
|
13337
|
+
}
|
|
13338
|
+
_openItem(item) {
|
|
13339
|
+
if (item === null || item === void 0 ? void 0 : item.submenu) {
|
|
13340
|
+
item.isOpen = true;
|
|
13341
|
+
this.tieredMenuService.currentItems = item.submenu;
|
|
13342
|
+
// Only has focus if there has already been interaction.
|
|
13343
|
+
if (this.tieredMenuService.currentItem) {
|
|
13344
|
+
this.tieredMenuService.currentItem = item.submenu[0];
|
|
13345
|
+
}
|
|
13346
|
+
this._lastOpenItem = item;
|
|
13347
|
+
}
|
|
13348
|
+
}
|
|
13349
|
+
_subscribeEvents() {
|
|
13350
|
+
this._tieredMenuEventService.incrementCurrentItemEvent
|
|
13351
|
+
.pipe(takeUntil(this._unsubscribe$))
|
|
13352
|
+
.subscribe(() => {
|
|
13353
|
+
this._incrementCurItem();
|
|
13354
|
+
});
|
|
13355
|
+
this._tieredMenuEventService.decrementCurrentItemEvent
|
|
13356
|
+
.pipe(takeUntil(this._unsubscribe$))
|
|
13357
|
+
.subscribe(() => {
|
|
13358
|
+
this._decrementCurItem();
|
|
13359
|
+
});
|
|
13360
|
+
this._tieredMenuEventService.selectItemEvent
|
|
13361
|
+
.pipe(takeUntil(this._unsubscribe$))
|
|
13362
|
+
.subscribe((item) => {
|
|
13363
|
+
if (item.command) {
|
|
13364
|
+
item.command();
|
|
13365
|
+
// Close all menus after the item was selected.
|
|
13366
|
+
this._tieredMenuEventService.emitCloseAllMenusEvent();
|
|
13367
|
+
}
|
|
13368
|
+
});
|
|
13369
|
+
this._tieredMenuEventService.openItemMenuEvent
|
|
13370
|
+
.pipe(takeUntil(this._unsubscribe$))
|
|
13371
|
+
.subscribe((item) => {
|
|
13372
|
+
var _a, _b;
|
|
13373
|
+
if (!this.tieredMenuService.currentItems.includes(item)) {
|
|
13374
|
+
let itemAux = this._lastOpenItem;
|
|
13375
|
+
while ((_a = itemAux === null || itemAux === void 0 ? void 0 : itemAux.parent) === null || _a === void 0 ? void 0 : _a.parent) {
|
|
13376
|
+
itemAux = itemAux.parent;
|
|
13377
|
+
}
|
|
13378
|
+
this._tieredMenuEventService.emitCloseItemMenuEvent((_b = itemAux.parent) !== null && _b !== void 0 ? _b : itemAux);
|
|
13379
|
+
}
|
|
13380
|
+
this._lastOpenItem = item;
|
|
13381
|
+
this._openItem(item);
|
|
13382
|
+
});
|
|
13383
|
+
this._tieredMenuEventService.closeItemMenuEvent
|
|
13384
|
+
.pipe(takeUntil(this._unsubscribe$))
|
|
13385
|
+
.subscribe((item) => {
|
|
13386
|
+
if (item) {
|
|
13387
|
+
this._closeItem(item);
|
|
13388
|
+
}
|
|
13389
|
+
});
|
|
13390
|
+
}
|
|
13391
|
+
};
|
|
13392
|
+
TieredMenuNestedComponent.ctorParameters = () => [
|
|
13393
|
+
{ type: TieredMenuService },
|
|
13394
|
+
{ type: TieredMenuEventService }
|
|
13395
|
+
];
|
|
13396
|
+
TieredMenuNestedComponent = __decorate([
|
|
13397
|
+
Component({
|
|
13398
|
+
template: "<div\n class=\"menu menu--nested\"\n [ngStyle]=\"{\n 'top': top + 'px',\n 'max-height': maxHeight + 'px'\n }\">\n <ng-container *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: items }\"></ng-container>\n</div>\n\n<ng-template #itemsTemplate let-items>\n <div *ngFor=\"let item of items\">\n <s-tiered-menu-item\n *ngIf=\"!item.divider\"\n [item]=\"item\"\n [focused]=\"item === tieredMenuService.currentItem\"\n [closeOnClick]=\"true\">\n </s-tiered-menu-item>\n\n <s-tiered-menu-divider *ngIf=\"item.divider\"></s-tiered-menu-divider>\n\n <div *ngIf=\"item.submenu && item.isOpen\">\n <div class=\"submenu\">\n <ng-container *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: item.submenu }\"></ng-container>\n </div>\n </div>\n </div>\n</ng-template>\n",
|
|
13399
|
+
styles: [".menu{background-color:#fff;border:1px solid #ccc;border-radius:6px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:column;flex-direction:column;min-width:176px;padding:4px 0;position:fixed;z-index:9999;overflow:auto}.menu--nested{width:90vw;margin:0 5vw}.menu .submenu{margin-left:24px}"]
|
|
13400
|
+
})
|
|
13401
|
+
], TieredMenuNestedComponent);
|
|
13402
|
+
|
|
13403
|
+
var TieredMenuComponent_1;
|
|
13404
|
+
let TieredMenuComponent = TieredMenuComponent_1 = class TieredMenuComponent {
|
|
13405
|
+
constructor(_appRef, _componentFactoryResolver, _injector, tieredMenuService, _tieredMenuEventService) {
|
|
13406
|
+
this._appRef = _appRef;
|
|
13407
|
+
this._componentFactoryResolver = _componentFactoryResolver;
|
|
13408
|
+
this._injector = _injector;
|
|
13409
|
+
this.tieredMenuService = tieredMenuService;
|
|
13410
|
+
this._tieredMenuEventService = _tieredMenuEventService;
|
|
13411
|
+
this.top = 0;
|
|
13412
|
+
this.left = 0;
|
|
13413
|
+
this.menuTriggerEvent = "hover";
|
|
13414
|
+
this._componentRef = null;
|
|
13415
|
+
this._unsubscribe$ = new Subject();
|
|
13416
|
+
this.destroyRequest = new EventEmitter();
|
|
13417
|
+
}
|
|
13418
|
+
ngOnInit() {
|
|
13419
|
+
this.tieredMenuService.currentItems = this.items;
|
|
13420
|
+
this._subscribeEvents();
|
|
13421
|
+
}
|
|
13422
|
+
ngOnDestroy() {
|
|
13423
|
+
this._unsubscribe$.next();
|
|
13424
|
+
this._unsubscribe$.complete();
|
|
13425
|
+
}
|
|
13426
|
+
_incrementCurItem() {
|
|
13427
|
+
if (!this.tieredMenuService.currentItem) {
|
|
13428
|
+
this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];
|
|
13429
|
+
return;
|
|
13430
|
+
}
|
|
13431
|
+
else if (!this.items.includes(this.tieredMenuService.currentItem)) {
|
|
13432
|
+
// Checking if it is the current menu.
|
|
13433
|
+
return;
|
|
13434
|
+
}
|
|
13435
|
+
const currentIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) + 1;
|
|
13436
|
+
if (currentIndex < this.tieredMenuService.currentItems.length) {
|
|
13437
|
+
this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[currentIndex];
|
|
13438
|
+
}
|
|
13439
|
+
else {
|
|
13440
|
+
this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];
|
|
13441
|
+
}
|
|
13442
|
+
if (this.tieredMenuService.currentItem.divider) {
|
|
13443
|
+
this._incrementCurItem();
|
|
13444
|
+
}
|
|
13445
|
+
}
|
|
13446
|
+
_decrementCurItem() {
|
|
13447
|
+
if (!this.tieredMenuService.currentItem) {
|
|
13448
|
+
this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];
|
|
13449
|
+
return;
|
|
13450
|
+
// Checking if it is the current menu.
|
|
13451
|
+
}
|
|
13452
|
+
else if (!this.items.includes(this.tieredMenuService.currentItem)) {
|
|
13453
|
+
return;
|
|
13454
|
+
}
|
|
13455
|
+
const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) - 1;
|
|
13456
|
+
if (curIndex >= 0) {
|
|
13457
|
+
this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];
|
|
13458
|
+
}
|
|
13459
|
+
else {
|
|
13460
|
+
this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[this.tieredMenuService.currentItems.length - 1];
|
|
13461
|
+
}
|
|
13462
|
+
if (this.tieredMenuService.currentItem.divider) {
|
|
13463
|
+
this._decrementCurItem();
|
|
13464
|
+
}
|
|
13465
|
+
}
|
|
13466
|
+
_createMenu(items, position) {
|
|
13467
|
+
if (!this._componentRef && items) {
|
|
13468
|
+
const componentFactory = this._componentFactoryResolver.resolveComponentFactory(TieredMenuComponent_1);
|
|
13469
|
+
this._componentRef = componentFactory.create(this._injector);
|
|
13470
|
+
this._appRef.attachView(this._componentRef.hostView);
|
|
13471
|
+
const domElem = this._componentRef.hostView.rootNodes[0];
|
|
13472
|
+
document.body.appendChild(domElem);
|
|
13473
|
+
// Setting the menu items.
|
|
13474
|
+
this._componentRef.instance.items = items;
|
|
13475
|
+
// Subscribe menu events.
|
|
13476
|
+
this._componentRef.instance.destroyRequest
|
|
13477
|
+
.pipe(takeUntil(this._unsubscribe$))
|
|
13478
|
+
.subscribe((propagate) => {
|
|
13479
|
+
this._destroy(propagate);
|
|
13480
|
+
});
|
|
13481
|
+
this._menuDivElement = domElem.querySelector(".menu");
|
|
13482
|
+
this._setMenuPosition(position);
|
|
13483
|
+
}
|
|
13484
|
+
}
|
|
13485
|
+
_destroy(propagate = true) {
|
|
13486
|
+
if (this._componentRef !== null) {
|
|
13487
|
+
this._appRef.detachView(this._componentRef.hostView);
|
|
13488
|
+
this._componentRef.destroy();
|
|
13489
|
+
this._componentRef = null;
|
|
13490
|
+
this._menuDivElement = null;
|
|
13491
|
+
}
|
|
13492
|
+
if (propagate) {
|
|
13493
|
+
this.destroyRequest.emit();
|
|
13494
|
+
}
|
|
13495
|
+
}
|
|
13496
|
+
_setMenuPosition(position) {
|
|
13497
|
+
var _a;
|
|
13498
|
+
if (this._componentRef !== null) {
|
|
13499
|
+
const { top, right, bottom, left } = position;
|
|
13500
|
+
// I need to calculate the height of the component because the internal elements have not been created yet.
|
|
13501
|
+
const menuHeight = ((_a = this.items) === null || _a === void 0 ? void 0 : _a.length) * 40;
|
|
13502
|
+
const menuWidth = this._menuDivElement.getBoundingClientRect().width;
|
|
13503
|
+
const rightFreeSpace = document.body.clientWidth - right;
|
|
13504
|
+
const bottomFreeSpace = document.body.clientHeight - bottom;
|
|
13505
|
+
if (rightFreeSpace > menuWidth) {
|
|
13506
|
+
this._componentRef.instance.left = right;
|
|
13507
|
+
}
|
|
13508
|
+
else {
|
|
13509
|
+
this._componentRef.instance.left = left - menuWidth;
|
|
13510
|
+
}
|
|
13511
|
+
if (bottomFreeSpace <= menuHeight) {
|
|
13512
|
+
this._componentRef.instance.top = top - menuHeight;
|
|
13513
|
+
}
|
|
13514
|
+
else {
|
|
13515
|
+
this._componentRef.instance.top = top;
|
|
13516
|
+
}
|
|
13517
|
+
}
|
|
13518
|
+
}
|
|
13519
|
+
_subscribeEvents() {
|
|
13520
|
+
// Increment current item event.
|
|
13521
|
+
this._tieredMenuEventService.incrementCurrentItemEvent
|
|
13522
|
+
.pipe(takeUntil(this._unsubscribe$))
|
|
13523
|
+
.subscribe(() => {
|
|
13524
|
+
this._incrementCurItem();
|
|
13525
|
+
});
|
|
13526
|
+
// Decrement current item event.
|
|
13527
|
+
this._tieredMenuEventService.decrementCurrentItemEvent
|
|
13528
|
+
.pipe(takeUntil(this._unsubscribe$))
|
|
13529
|
+
.subscribe(() => {
|
|
13530
|
+
this._decrementCurItem();
|
|
13531
|
+
});
|
|
13532
|
+
// Select item event.
|
|
13533
|
+
this._tieredMenuEventService.selectItemEvent
|
|
13534
|
+
.pipe(takeUntil(this._unsubscribe$))
|
|
13535
|
+
.subscribe((item) => {
|
|
13536
|
+
if (item.submenu) {
|
|
13537
|
+
this._tieredMenuEventService.emitOpenItemMenuEvent(item);
|
|
13538
|
+
}
|
|
13539
|
+
else if (item.command) {
|
|
13540
|
+
this._tieredMenuEventService.emitCloseAllMenusEvent();
|
|
13541
|
+
item.command();
|
|
13542
|
+
}
|
|
13543
|
+
});
|
|
13544
|
+
// Close all menus event.
|
|
13545
|
+
this._tieredMenuEventService.closeAllMenusEvent
|
|
13546
|
+
.pipe(takeUntil(this._unsubscribe$))
|
|
13547
|
+
.subscribe(() => {
|
|
13548
|
+
this._destroy();
|
|
13549
|
+
this.tieredMenuService.currentItem = null;
|
|
13550
|
+
this.tieredMenuService.currentItems = this.tieredMenuService.items;
|
|
13551
|
+
});
|
|
13552
|
+
// Open item menu event.
|
|
13553
|
+
this._tieredMenuEventService.openItemMenuEvent
|
|
13554
|
+
.pipe(takeUntil(this._unsubscribe$))
|
|
13555
|
+
.subscribe((item) => {
|
|
13556
|
+
item.isOpen = false;
|
|
13557
|
+
if (this.tieredMenuService.currentItem) {
|
|
13558
|
+
if (this.tieredMenuService.currentItem.parent === item) {
|
|
13559
|
+
return;
|
|
13560
|
+
}
|
|
13561
|
+
if (!this.tieredMenuService.searchTheHierarchy(this.tieredMenuService.currentItem.parent, item)) {
|
|
13562
|
+
let itemAux = this.tieredMenuService.currentItem;
|
|
13563
|
+
while (itemAux.parent !== item.parent) {
|
|
13564
|
+
this._tieredMenuEventService.emitCloseItemMenuEvent(itemAux);
|
|
13565
|
+
itemAux = itemAux.parent;
|
|
13566
|
+
}
|
|
13567
|
+
}
|
|
13568
|
+
}
|
|
13569
|
+
if (item.submenu) {
|
|
13570
|
+
if (!item.isOpen) {
|
|
13571
|
+
const { top, right, left, bottom } = document
|
|
13572
|
+
.querySelector(`#${item.id}`)
|
|
13573
|
+
.getBoundingClientRect();
|
|
13574
|
+
const position = { top, right, left, bottom };
|
|
13575
|
+
if (this.items.includes(item)) {
|
|
13576
|
+
this._createMenu(item.submenu, position);
|
|
13577
|
+
this.tieredMenuService.currentItems = item.submenu;
|
|
13578
|
+
this.tieredMenuService.currentItem = item.submenu[0];
|
|
13579
|
+
}
|
|
13580
|
+
}
|
|
13581
|
+
}
|
|
13582
|
+
});
|
|
13583
|
+
// Close item menu event.
|
|
13584
|
+
this._tieredMenuEventService.closeItemMenuEvent
|
|
13585
|
+
.pipe(takeUntil(this._unsubscribe$))
|
|
13586
|
+
.subscribe((item) => {
|
|
13587
|
+
var _a, _b;
|
|
13588
|
+
if (this.items.includes(item)) {
|
|
13589
|
+
item.isOpen = false;
|
|
13590
|
+
this.tieredMenuService.currentItems = ((_b = (_a = item === null || item === void 0 ? void 0 : item.parent) === null || _a === void 0 ? void 0 : _a.parent) === null || _b === void 0 ? void 0 : _b.submenu) || this.tieredMenuService.items;
|
|
13591
|
+
this.tieredMenuService.currentItem = item.parent;
|
|
13592
|
+
this.destroyRequest.emit(false);
|
|
13593
|
+
}
|
|
13594
|
+
});
|
|
13595
|
+
}
|
|
13596
|
+
};
|
|
13597
|
+
TieredMenuComponent.ctorParameters = () => [
|
|
13598
|
+
{ type: ApplicationRef },
|
|
13599
|
+
{ type: ComponentFactoryResolver },
|
|
13600
|
+
{ type: Injector },
|
|
13601
|
+
{ type: TieredMenuService },
|
|
13602
|
+
{ type: TieredMenuEventService }
|
|
13603
|
+
];
|
|
13604
|
+
__decorate([
|
|
13605
|
+
Output()
|
|
13606
|
+
], TieredMenuComponent.prototype, "destroyRequest", void 0);
|
|
13607
|
+
TieredMenuComponent = TieredMenuComponent_1 = __decorate([
|
|
13608
|
+
Component({
|
|
13609
|
+
selector: "s-tiered-menu",
|
|
13610
|
+
template: "<div class=\"menu\" [ngStyle]=\"{\n 'left': left + 'px',\n 'top': top + 'px'\n }\">\n\n <div *ngFor=\"let item of items\">\n <s-tiered-menu-item\n *ngIf=\"!item.divider\"\n [item]=\"item\"\n [focused]=\"item === tieredMenuService.currentItem\"\n triggerEvent=\"hover\"\n [closeOnClick]=\"false\">\n </s-tiered-menu-item>\n <s-tiered-menu-divider *ngIf=\"item.divider\"></s-tiered-menu-divider>\n </div>\n</div>",
|
|
13611
|
+
styles: [".menu{background-color:#fff;border:1px solid #ccc;border-radius:6px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:column;flex-direction:column;min-width:176px;padding:4px 0;position:fixed;z-index:9999}"]
|
|
13612
|
+
})
|
|
13613
|
+
], TieredMenuComponent);
|
|
13614
|
+
|
|
13615
|
+
let TieredMenuDirective = class TieredMenuDirective {
|
|
13616
|
+
constructor(_elementRef, _appRef, _componentFactoryResolver, _injector, _tieredMenuEventService, _tieredMenuService) {
|
|
13617
|
+
this._elementRef = _elementRef;
|
|
13618
|
+
this._appRef = _appRef;
|
|
13619
|
+
this._componentFactoryResolver = _componentFactoryResolver;
|
|
13620
|
+
this._injector = _injector;
|
|
13621
|
+
this._tieredMenuEventService = _tieredMenuEventService;
|
|
13622
|
+
this._tieredMenuService = _tieredMenuService;
|
|
13623
|
+
this._componentRef = null;
|
|
13624
|
+
this._isNested = false;
|
|
13625
|
+
this._isOpen = false;
|
|
13626
|
+
this._unsubscribe$ = new Subject();
|
|
13627
|
+
this.alwaysOpen = false;
|
|
13628
|
+
this.triggerEvent = "click";
|
|
13629
|
+
}
|
|
13630
|
+
ngOnInit() {
|
|
13631
|
+
this._tieredMenuService.items = this._tieredMenuService.normalizeData(this.items);
|
|
13632
|
+
this._tieredMenuService.currentItems = this._tieredMenuService.items;
|
|
13633
|
+
this._tieredMenuService.currentItem = this._tieredMenuService.items[0];
|
|
13634
|
+
this._subscribeEvents();
|
|
13635
|
+
}
|
|
13636
|
+
ngAfterViewInit() {
|
|
13637
|
+
// setTimeout to create the menu after creating the elements.
|
|
13638
|
+
if (this.alwaysOpen) {
|
|
13639
|
+
setTimeout(() => {
|
|
13640
|
+
this._createMenu();
|
|
13641
|
+
}, 0);
|
|
13642
|
+
}
|
|
13643
|
+
}
|
|
13644
|
+
ngOnDestroy() {
|
|
13645
|
+
this._unsubscribe$.next();
|
|
13646
|
+
this._unsubscribe$.complete();
|
|
13647
|
+
this._destroy();
|
|
13648
|
+
}
|
|
13649
|
+
onResize() {
|
|
13650
|
+
if (!this.alwaysOpen) {
|
|
13651
|
+
this._tieredMenuEventService.emitCloseAllMenusEvent();
|
|
13652
|
+
}
|
|
13653
|
+
}
|
|
13654
|
+
onKeydownHandler(event) {
|
|
13655
|
+
if (!this._isOpen)
|
|
13656
|
+
return;
|
|
13657
|
+
switch (event.key) {
|
|
13658
|
+
case "Escape":
|
|
13659
|
+
this._tieredMenuEventService.emitCloseAllMenusEvent();
|
|
13660
|
+
break;
|
|
13661
|
+
case " ":
|
|
13662
|
+
case "Enter":
|
|
13663
|
+
this._tieredMenuEventService.emitSelectItemEvent(this._tieredMenuService.currentItem);
|
|
13664
|
+
break;
|
|
13665
|
+
case "ArrowLeft":
|
|
13666
|
+
// When nested I need a reference to the current item's parent item, otherwise just the current item.
|
|
13667
|
+
this._tieredMenuEventService.emitCloseItemMenuEvent(this._isNested ? this._tieredMenuService.currentItem.parent : this._tieredMenuService.currentItem);
|
|
13668
|
+
break;
|
|
13669
|
+
case "ArrowRight":
|
|
13670
|
+
this._tieredMenuEventService.emitOpenItemMenuEvent(this._tieredMenuService.currentItem);
|
|
13671
|
+
break;
|
|
13672
|
+
case "ArrowUp":
|
|
13673
|
+
this._tieredMenuEventService.emitDecrementCurrentItemEvent();
|
|
13674
|
+
break;
|
|
13675
|
+
case "ArrowDown":
|
|
13676
|
+
this._tieredMenuEventService.emitIncrementCurrentItemEvent();
|
|
13677
|
+
break;
|
|
13678
|
+
}
|
|
13679
|
+
}
|
|
13680
|
+
onClick(event) {
|
|
13681
|
+
if (this.triggerEvent === "click" && this.items && this.items && !this._isOpen) {
|
|
13682
|
+
this._lastActiveElement = document.activeElement;
|
|
13683
|
+
this._createMenu();
|
|
13684
|
+
event.preventDefault();
|
|
13685
|
+
event.stopPropagation();
|
|
13686
|
+
}
|
|
13687
|
+
}
|
|
13688
|
+
onDocumentClick(event) {
|
|
13689
|
+
// Closing menu when clicked outside.
|
|
13690
|
+
const target = event.target;
|
|
13691
|
+
const clickedInside = target.closest("s-tiered-menu-item") || target.closest("s-tiered-menu-divider");
|
|
13692
|
+
if (!clickedInside) {
|
|
13693
|
+
this._tieredMenuEventService.emitCloseAllMenusEvent();
|
|
13694
|
+
}
|
|
13695
|
+
}
|
|
13696
|
+
_createMenu() {
|
|
13697
|
+
var _a;
|
|
13698
|
+
if (!this._componentRef && this.items) {
|
|
13699
|
+
(_a = this._lastActiveElement) === null || _a === void 0 ? void 0 : _a.blur();
|
|
13700
|
+
this._isOpen = true;
|
|
13701
|
+
this._isNested = document.body.clientWidth < 600;
|
|
13702
|
+
this._isNested ? this._createNestedMenu() : this._createTieredMenu();
|
|
13703
|
+
}
|
|
13704
|
+
}
|
|
13705
|
+
_createTieredMenu() {
|
|
13706
|
+
if (!this._componentRef && this.items) {
|
|
13707
|
+
const componentFactory = this._componentFactoryResolver.resolveComponentFactory(TieredMenuComponent);
|
|
13708
|
+
this._componentRef = componentFactory.create(this._injector);
|
|
13709
|
+
this._appRef.attachView(this._componentRef.hostView);
|
|
13710
|
+
const domElem = this._componentRef.hostView.rootNodes[0];
|
|
13711
|
+
document.body.appendChild(domElem);
|
|
13712
|
+
this._setMenuComponentProperties();
|
|
13713
|
+
this._componentRef.instance.destroyRequest
|
|
13714
|
+
.pipe(takeUntil(this._unsubscribe$))
|
|
13715
|
+
.subscribe(() => {
|
|
13716
|
+
this._destroy();
|
|
13717
|
+
});
|
|
13718
|
+
this._menuDivElement = domElem.querySelector(".menu");
|
|
13719
|
+
this._setMenuPosition();
|
|
13720
|
+
}
|
|
13721
|
+
}
|
|
13722
|
+
_createNestedMenu() {
|
|
13723
|
+
if (!this._componentRef && this.items) {
|
|
13724
|
+
const componentFactory = this._componentFactoryResolver.resolveComponentFactory(TieredMenuNestedComponent);
|
|
13725
|
+
this._componentRef = componentFactory.create(this._injector);
|
|
13726
|
+
this._appRef.attachView(this._componentRef.hostView);
|
|
13727
|
+
const domElem = this._componentRef.hostView.rootNodes[0];
|
|
13728
|
+
document.body.appendChild(domElem);
|
|
13729
|
+
this._setMenuComponentProperties();
|
|
13730
|
+
this._menuDivElement = domElem.querySelector(".menu");
|
|
13731
|
+
this._setMenuPosition();
|
|
13732
|
+
}
|
|
13733
|
+
}
|
|
13734
|
+
_destroy() {
|
|
13735
|
+
var _a;
|
|
13736
|
+
if (this._componentRef !== null && !this.alwaysOpen) {
|
|
13737
|
+
this._isOpen = false;
|
|
13738
|
+
window.clearTimeout(this._showTimeout);
|
|
13739
|
+
this._appRef.detachView(this._componentRef.hostView);
|
|
13740
|
+
this._componentRef.destroy();
|
|
13741
|
+
this._componentRef = null;
|
|
13742
|
+
this._menuDivElement = null;
|
|
13743
|
+
(_a = this._lastActiveElement) === null || _a === void 0 ? void 0 : _a.focus();
|
|
13744
|
+
this._tieredMenuService.currentItems = this._tieredMenuService.items;
|
|
13745
|
+
this._tieredMenuService.currentItem = this._tieredMenuService.items[0];
|
|
13746
|
+
}
|
|
13747
|
+
}
|
|
13748
|
+
_setMenuPosition() {
|
|
13749
|
+
if (this._componentRef !== null) {
|
|
13750
|
+
const { right, bottom, left } = this._elementRef.nativeElement.getBoundingClientRect();
|
|
13751
|
+
const menuWidth = this._menuDivElement.getBoundingClientRect().width;
|
|
13752
|
+
const rightFreeSpace = document.body.clientWidth - right;
|
|
13753
|
+
const topPosition = bottom + 2;
|
|
13754
|
+
this._componentRef.instance.top = topPosition;
|
|
13755
|
+
if (!this._isNested) {
|
|
13756
|
+
if (rightFreeSpace > menuWidth) {
|
|
13757
|
+
this._componentRef.instance.left = left;
|
|
13758
|
+
}
|
|
13759
|
+
else {
|
|
13760
|
+
this._componentRef.instance.left = left - menuWidth;
|
|
13761
|
+
}
|
|
13762
|
+
}
|
|
13763
|
+
else {
|
|
13764
|
+
// setting the maximum menu size to ensure its content is always visible. 10px margin.
|
|
13765
|
+
this._componentRef.instance.maxHeight = window.innerHeight - topPosition - 10;
|
|
13766
|
+
}
|
|
13767
|
+
}
|
|
13768
|
+
}
|
|
13769
|
+
_setMenuComponentProperties() {
|
|
13770
|
+
if (this._componentRef != null) {
|
|
13771
|
+
this._componentRef.instance.items = this.items;
|
|
13772
|
+
}
|
|
13773
|
+
}
|
|
13774
|
+
_subscribeEvents() {
|
|
13775
|
+
this._tieredMenuEventService.closeAllMenusEvent
|
|
13776
|
+
.pipe(takeUntil(this._unsubscribe$))
|
|
13777
|
+
.subscribe(() => {
|
|
13778
|
+
this.items = this._tieredMenuService.markAllItemsAsClosed(this.items);
|
|
13779
|
+
this._destroy();
|
|
13780
|
+
});
|
|
13781
|
+
}
|
|
13782
|
+
};
|
|
13783
|
+
TieredMenuDirective.ctorParameters = () => [
|
|
13784
|
+
{ type: ElementRef },
|
|
13785
|
+
{ type: ApplicationRef },
|
|
13786
|
+
{ type: ComponentFactoryResolver },
|
|
13787
|
+
{ type: Injector },
|
|
13788
|
+
{ type: TieredMenuEventService },
|
|
13789
|
+
{ type: TieredMenuService }
|
|
13790
|
+
];
|
|
13791
|
+
__decorate([
|
|
13792
|
+
Input()
|
|
13793
|
+
], TieredMenuDirective.prototype, "items", void 0);
|
|
13794
|
+
__decorate([
|
|
13795
|
+
Input()
|
|
13796
|
+
], TieredMenuDirective.prototype, "alwaysOpen", void 0);
|
|
13797
|
+
__decorate([
|
|
13798
|
+
Input()
|
|
13799
|
+
], TieredMenuDirective.prototype, "triggerEvent", void 0);
|
|
13800
|
+
__decorate([
|
|
13801
|
+
HostListener("window:resize")
|
|
13802
|
+
], TieredMenuDirective.prototype, "onResize", null);
|
|
13803
|
+
__decorate([
|
|
13804
|
+
HostListener("document:keydown", ["$event"])
|
|
13805
|
+
], TieredMenuDirective.prototype, "onKeydownHandler", null);
|
|
13806
|
+
__decorate([
|
|
13807
|
+
HostListener("click", ["$event"])
|
|
13808
|
+
], TieredMenuDirective.prototype, "onClick", null);
|
|
13809
|
+
__decorate([
|
|
13810
|
+
HostListener("document:click", ["$event"])
|
|
13811
|
+
], TieredMenuDirective.prototype, "onDocumentClick", null);
|
|
13812
|
+
TieredMenuDirective = __decorate([
|
|
13813
|
+
Directive({
|
|
13814
|
+
selector: "[sTieredMenu]",
|
|
13815
|
+
})
|
|
13816
|
+
], TieredMenuDirective);
|
|
13817
|
+
|
|
13818
|
+
let TieredMenuItemComponent = class TieredMenuItemComponent {
|
|
13819
|
+
constructor(_tieredMenuEventService) {
|
|
13820
|
+
this._tieredMenuEventService = _tieredMenuEventService;
|
|
13821
|
+
this.focused = false;
|
|
13822
|
+
this.triggerEvent = "click";
|
|
13823
|
+
this.closeOnClick = false;
|
|
13824
|
+
}
|
|
13825
|
+
onClick() {
|
|
13826
|
+
if (this.item.submenu) {
|
|
13827
|
+
if (!this.item.isOpen) {
|
|
13828
|
+
this._tieredMenuEventService.emitOpenItemMenuEvent(this.item);
|
|
13829
|
+
}
|
|
13830
|
+
else if (this.closeOnClick) {
|
|
13831
|
+
this._tieredMenuEventService.emitCloseItemMenuEvent(this.item);
|
|
13832
|
+
}
|
|
13833
|
+
}
|
|
13834
|
+
else {
|
|
13835
|
+
this._tieredMenuEventService.emitSelectItemEvent(this.item);
|
|
13836
|
+
}
|
|
13837
|
+
}
|
|
13838
|
+
onMouseEnter() {
|
|
13839
|
+
if (this.triggerEvent === "hover" && !this.item.isOpen) {
|
|
13840
|
+
this._showTimeout = window.setTimeout(() => {
|
|
13841
|
+
this._tieredMenuEventService.emitOpenItemMenuEvent(this.item);
|
|
13842
|
+
}, 300);
|
|
13843
|
+
}
|
|
13844
|
+
}
|
|
13845
|
+
onMouseLeave() {
|
|
13846
|
+
window.clearTimeout(this._showTimeout);
|
|
13847
|
+
}
|
|
13848
|
+
};
|
|
13849
|
+
TieredMenuItemComponent.ctorParameters = () => [
|
|
13850
|
+
{ type: TieredMenuEventService }
|
|
13851
|
+
];
|
|
13852
|
+
__decorate([
|
|
13853
|
+
Input()
|
|
13854
|
+
], TieredMenuItemComponent.prototype, "item", void 0);
|
|
13855
|
+
__decorate([
|
|
13856
|
+
Input()
|
|
13857
|
+
], TieredMenuItemComponent.prototype, "focused", void 0);
|
|
13858
|
+
__decorate([
|
|
13859
|
+
Input()
|
|
13860
|
+
], TieredMenuItemComponent.prototype, "triggerEvent", void 0);
|
|
13861
|
+
__decorate([
|
|
13862
|
+
Input()
|
|
13863
|
+
], TieredMenuItemComponent.prototype, "closeOnClick", void 0);
|
|
13864
|
+
__decorate([
|
|
13865
|
+
HostListener("click"),
|
|
13866
|
+
HostListener("touchend")
|
|
13867
|
+
], TieredMenuItemComponent.prototype, "onClick", null);
|
|
13868
|
+
__decorate([
|
|
13869
|
+
HostListener("mouseenter")
|
|
13870
|
+
], TieredMenuItemComponent.prototype, "onMouseEnter", null);
|
|
13871
|
+
__decorate([
|
|
13872
|
+
HostListener("mouseleave")
|
|
13873
|
+
], TieredMenuItemComponent.prototype, "onMouseLeave", null);
|
|
13874
|
+
TieredMenuItemComponent = __decorate([
|
|
13875
|
+
Component({
|
|
13876
|
+
selector: "s-tiered-menu-item",
|
|
13877
|
+
template: "<div\n [id]=\"item.id\"\n class=\"tiered-menu-item\"\n [ngClass]=\"{\n 'tiered-menu-item--open': item.isOpen,\n 'tiered-menu-item--focused': focused\n }\">\n <div class=\"tiered-menu-item-content\">\n <span class=\"icon\" [ngClass]=\"item.iconClass\"></span>\n <span class=\"label\">{{ item.label }}</span>\n </div>\n <span\n *ngIf=\"item.submenu\"\n class=\"submenu-icon\"\n [ngClass]=\"{\n 'fas': true,\n 'fa-chevron-left': item.isOpen,\n 'fa-chevron-right': !item.isOpen\n }\">\n </span>\n</div>",
|
|
13878
|
+
styles: [".tiered-menu-item{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding:8px 16px;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.tiered-menu-item .tiered-menu-item-content .label{margin:0 12px}.tiered-menu-item:hover{background-color:#e9e6e6}.tiered-menu-item--focused{background-color:#ccc!important}.tiered-menu-item--open{background-color:#e4e2e2}"]
|
|
13879
|
+
})
|
|
13880
|
+
], TieredMenuItemComponent);
|
|
13881
|
+
|
|
13882
|
+
let TieredMenuDividerComponent = class TieredMenuDividerComponent {
|
|
13883
|
+
};
|
|
13884
|
+
TieredMenuDividerComponent = __decorate([
|
|
13885
|
+
Component({
|
|
13886
|
+
selector: "s-tiered-menu-divider",
|
|
13887
|
+
template: "<div class=\"divider\"></div>",
|
|
13888
|
+
styles: [".divider{margin:2px 0;height:1px;background-color:#ccc}"]
|
|
13889
|
+
})
|
|
13890
|
+
], TieredMenuDividerComponent);
|
|
13891
|
+
|
|
13892
|
+
let TieredMenuModule = class TieredMenuModule {
|
|
13893
|
+
};
|
|
13894
|
+
TieredMenuModule = __decorate([
|
|
13895
|
+
NgModule({
|
|
13896
|
+
imports: [
|
|
13897
|
+
CommonModule,
|
|
13898
|
+
BrowserModule,
|
|
13899
|
+
],
|
|
13900
|
+
declarations: [
|
|
13901
|
+
TieredMenuDirective,
|
|
13902
|
+
TieredMenuComponent,
|
|
13903
|
+
TieredMenuNestedComponent,
|
|
13904
|
+
TieredMenuItemComponent,
|
|
13905
|
+
TieredMenuDividerComponent,
|
|
13906
|
+
],
|
|
13907
|
+
exports: [TieredMenuDirective],
|
|
13908
|
+
providers: [
|
|
13909
|
+
TieredMenuEventService,
|
|
13910
|
+
TieredMenuService,
|
|
13911
|
+
],
|
|
13912
|
+
})
|
|
13913
|
+
], TieredMenuModule);
|
|
13914
|
+
|
|
13188
13915
|
let WorkspaceSwitchComponent = class WorkspaceSwitchComponent {
|
|
13189
13916
|
constructor(eRef) {
|
|
13190
13917
|
this.eRef = eRef;
|
|
@@ -13807,5 +14534,5 @@ const fallback = {
|
|
|
13807
14534
|
* Generated bundle index. Do not edit.
|
|
13808
14535
|
*/
|
|
13809
14536
|
|
|
13810
|
-
export { AccordionComponent, AccordionModule, AccordionPanelComponent, AngularComponentsModule, AutocompleteField, BadgeColors, BadgeComponent, BadgeModule, BaseFieldComponent, BignumberField, BignumberInputDirective, BignumberInputModule, BooleanField, BooleanOptionsLabel, BreadcrumbComponent, BreadcrumbModule, Breakpoints, ButtonComponent, ButtonModule, ButtonPriority, ButtonSize, CalendarField, CalendarLocaleOptions, CalendarMaskDirective, CalendarMaskModule, ChipsField, CodeEditorModule, CollapseLinkComponent, CollapseLinkModule, ControlErrorsComponent, ControlErrorsModule, CountryPhonePickerComponent, CountryPhonePickerModule, CurrencyField, CustomFieldsComponent, CustomFieldsModule, CustomFieldsService, DEFAULT_CALENDAR_LOCALE_OPTIONS, DEFAULT_LOCALE_OPTIONS, DEFAULT_NUMBER_LOCALE_OPTIONS, DebounceUtils, DoubleClickDirective, DynamicConfig, DynamicFormComponent, DynamicFormModule, DynamicType, EditableOverlayDirective, EditableOverlayModule, EmptyStateComponent, EmptyStateModule, EnumBadgeColors, EnumColumnFieldType, EnumSeverity, ExportUtils, Field, FieldType, Fieldset, FileUploadComponent, FileUploadModule, FileValidation, FormField, GanttComponent, GanttModule, GlobalSearchComponent, GlobalSearchDropdownItemComponent, GlobalSearchModule, GlobalSearchSizeEnum, HostProjectConfigsInjectionToken, ImageCropperComponent, ImageCropperModule, ImageCropperService, InfoSignDirective, InfoSignModule, Languages, LoadingStateComponent, LoadingStateDirective, LoadingStateModule, LocaleModule, LocaleOptions, LocaleService, LocalizedCurrencyPipe, LocalizedCurrencyPipeOptions, LocalizedDateImpurePipe, LocalizedDatePipe, LocalizedNumberInputDirective, LocalizedNumberInputModule, LocalizedNumberPipe, LocalizedTimeImpurePipe, LocalizedTimePipe, LongPressDirective, LookupComponent, LookupField, MaskFormatterModule, MaskFormatterPipe, MouseEventsModule, NavigationDirective, NumberAlignmentOption, NumberField, NumberInputDirective, NumberInputModule, NumberLocaleOptions, ObjectCardComponent, ObjectCardFieldComponent, ObjectCardMainComponent, ObjectCardModule, Option, Ordination, PanelComponent, PanelModule, PasswordField, PasswordStrengthComponent, PasswordStrengthDirective, PasswordStrengthModule, PasswordStrengthPositions, PasswordStrengths, ProductHeaderComponent, ProductHeaderModule, ProfilePicturePickerComponent, ProfilePicturePickerModule, ProgressBarColors, ProgressBarComponent, ProgressBarModule, RadioButtonField, RatingScaleComponent, RatingScaleModule, RationButtonOption, RowTogllerDirective, Section, SelectField, SelectOption, SidebarComponent, SidebarModule, SlidePanelComponent, SlidePanelModule, SplitButtonComponent, SplitButtonModule, SplitButtonType, StatsCardComponent, StatsCardModule, StepState, StepsComponent, StepsModule, Structure, SwitchComponent, SwitchModule, TableFrozenPositionDirective, TableHeaderCheckboxComponent, TableHeaderCheckboxModule, TableModule, TaxCalculationLanguageConfigs, TextAreaField, TextField, Themes, ThumbnailComponent, ThumbnailModule, ThumbnailSize, TileComponent, TileModule, TimelineComponent, TimelineItem, TimelineItemSeverity, TimelineItemSize, TimelineModule, TokenListComponent, TokenListModule, TooltipModule, TooltipPosition, ValidateErrors, ViewMode, WorkspaceSwitchComponent, WorkspaceSwitchModule, countries, fallback, TooltipComponent as ɵa, TooltipDirective as ɵb, SelectFieldComponent as ɵba, TextAreaFieldComponent as ɵbb, TextFieldComponent as ɵbc, BooleanSwitchFieldComponent as ɵbd, PasswordFieldComponent as ɵbe, SliderFieldComponent as ɵbf, DecimalField as ɵbh, SideTableComponent as ɵbi, StructureModule as ɵbj, HeaderComponent as ɵbk, FooterComponent as ɵbl, NumberLocaleOptions as ɵbm, ThumbnailService as ɵbn, BorderButtonModule as ɵbo, BorderButtonComponent as ɵbp, TimelineItemModule as ɵbq, TimelineIconItemComponent as ɵbr, HorizontalTimelineModule as ɵbs, HorizontalTimelineComponent as ɵbt, VerticalTimelineModule as ɵbu, VerticalTimelineComponent as ɵbv, RangeLineComponent as ɵbw, CollapseOptionComponent as ɵbx, CollapsedItemsComponent as ɵby, VerticalItemsComponent as ɵbz, CountryPhonePickerService as ɵc, InfiniteScrollModule as ɵca, InfiniteScrollDirective as ɵcb, CustomTranslationsModule as ɵcc, CodeEditorComponent as ɵcd, CoreFacade as ɵce, CodeMirror6Core as ɵcf, LocalizedCurrencyImpurePipe as ɵd, LocalizedBignumberPipe as ɵe, LocalizedBignumberImpurePipe as ɵf, EmptyStateGoBackComponent as ɵg, FileUploadService as ɵh, InfoSignComponent as ɵi, TableColumnsComponent as ɵj, TablePagingComponent as ɵk, AutocompleteFieldComponent as ɵl, BooleanFieldComponent as ɵm, CalendarFieldComponent as ɵn, ChipsFieldComponent as ɵo, CurrencyFieldComponent as ɵp, DynamicFieldComponent as ɵq, DynamicFormDirective as ɵr, FieldsetComponent as ɵs, FileUploadComponent$1 as ɵt, LookupFieldComponent as ɵu, NumberFieldComponent as ɵv, BignumberFieldComponent as ɵw, RadioButtonComponent as ɵx, RowComponent as ɵy, SectionComponent as ɵz };
|
|
14537
|
+
export { AccordionComponent, AccordionModule, AccordionPanelComponent, AngularComponentsModule, AutocompleteField, BadgeColors, BadgeComponent, BadgeModule, BaseFieldComponent, BignumberField, BignumberInputDirective, BignumberInputModule, BooleanField, BooleanOptionsLabel, BreadcrumbComponent, BreadcrumbModule, Breakpoints, ButtonComponent, ButtonModule, ButtonPriority, ButtonSize, CalendarField, CalendarLocaleOptions, CalendarMaskDirective, CalendarMaskModule, ChipsField, CodeEditorModule, CollapseLinkComponent, CollapseLinkModule, ControlErrorsComponent, ControlErrorsModule, CountryPhonePickerComponent, CountryPhonePickerModule, CurrencyField, CustomFieldsComponent, CustomFieldsModule, CustomFieldsService, DEFAULT_CALENDAR_LOCALE_OPTIONS, DEFAULT_LOCALE_OPTIONS, DEFAULT_NUMBER_LOCALE_OPTIONS, DebounceUtils, DoubleClickDirective, DynamicConfig, DynamicFormComponent, DynamicFormModule, DynamicType, EditableOverlayDirective, EditableOverlayModule, EmptyStateComponent, EmptyStateModule, EnumBadgeColors, EnumColumnFieldType, EnumSeverity, ExportUtils, Field, FieldType, Fieldset, FileUploadComponent, FileUploadModule, FileValidation, FormField, GanttComponent, GanttModule, GlobalSearchComponent, GlobalSearchDropdownItemComponent, GlobalSearchModule, GlobalSearchSizeEnum, HostProjectConfigsInjectionToken, ImageCropperComponent, ImageCropperModule, ImageCropperService, InfoSignDirective, InfoSignModule, Languages, LoadingStateComponent, LoadingStateDirective, LoadingStateModule, LocaleModule, LocaleOptions, LocaleService, LocalizedCurrencyPipe, LocalizedCurrencyPipeOptions, LocalizedDateImpurePipe, LocalizedDatePipe, LocalizedNumberInputDirective, LocalizedNumberInputModule, LocalizedNumberPipe, LocalizedTimeImpurePipe, LocalizedTimePipe, LongPressDirective, LookupComponent, LookupField, MaskFormatterModule, MaskFormatterPipe, MouseEventsModule, NavigationDirective, NumberAlignmentOption, NumberField, NumberInputDirective, NumberInputModule, NumberLocaleOptions, ObjectCardComponent, ObjectCardFieldComponent, ObjectCardMainComponent, ObjectCardModule, Option, Ordination, PanelComponent, PanelModule, PasswordField, PasswordStrengthComponent, PasswordStrengthDirective, PasswordStrengthModule, PasswordStrengthPositions, PasswordStrengths, ProductHeaderComponent, ProductHeaderModule, ProfilePicturePickerComponent, ProfilePicturePickerModule, ProgressBarColors, ProgressBarComponent, ProgressBarModule, RadioButtonField, RatingScaleComponent, RatingScaleModule, RationButtonOption, RowTogllerDirective, Section, SelectField, SelectOption, SidebarComponent, SidebarModule, SlidePanelComponent, SlidePanelModule, SplitButtonComponent, SplitButtonModule, SplitButtonType, StatsCardComponent, StatsCardModule, StepState, StepsComponent, StepsModule, Structure, SwitchComponent, SwitchModule, TableFrozenPositionDirective, TableHeaderCheckboxComponent, TableHeaderCheckboxModule, TableModule, TaxCalculationLanguageConfigs, TextAreaField, TextField, Themes, ThumbnailComponent, ThumbnailModule, ThumbnailSize, TieredMenuDirective, TieredMenuModule, TileComponent, TileModule, TimelineComponent, TimelineItem, TimelineItemSeverity, TimelineItemSize, TimelineModule, TokenListComponent, TokenListModule, TooltipModule, TooltipPosition, ValidateErrors, ViewMode, WorkspaceSwitchComponent, WorkspaceSwitchModule, countries, fallback, TooltipComponent as ɵa, TooltipDirective as ɵb, SelectFieldComponent as ɵba, TextAreaFieldComponent as ɵbb, TextFieldComponent as ɵbc, BooleanSwitchFieldComponent as ɵbd, PasswordFieldComponent as ɵbe, SliderFieldComponent as ɵbf, DecimalField as ɵbh, SideTableComponent as ɵbi, StructureModule as ɵbj, HeaderComponent as ɵbk, FooterComponent as ɵbl, NumberLocaleOptions as ɵbm, ThumbnailService as ɵbn, BorderButtonModule as ɵbo, BorderButtonComponent as ɵbp, TimelineItemModule as ɵbq, TimelineIconItemComponent as ɵbr, HorizontalTimelineModule as ɵbs, HorizontalTimelineComponent as ɵbt, VerticalTimelineModule as ɵbu, VerticalTimelineComponent as ɵbv, RangeLineComponent as ɵbw, CollapseOptionComponent as ɵbx, CollapsedItemsComponent as ɵby, VerticalItemsComponent as ɵbz, CountryPhonePickerService as ɵc, InfiniteScrollModule as ɵca, InfiniteScrollDirective as ɵcb, CustomTranslationsModule as ɵcc, CodeEditorComponent as ɵcd, CoreFacade as ɵce, CodeMirror6Core as ɵcf, TieredMenuEventService as ɵcg, TieredMenuService as ɵch, TieredMenuComponent as ɵci, TieredMenuNestedComponent as ɵcj, TieredMenuItemComponent as ɵck, TieredMenuDividerComponent as ɵcl, LocalizedCurrencyImpurePipe as ɵd, LocalizedBignumberPipe as ɵe, LocalizedBignumberImpurePipe as ɵf, EmptyStateGoBackComponent as ɵg, FileUploadService as ɵh, InfoSignComponent as ɵi, TableColumnsComponent as ɵj, TablePagingComponent as ɵk, AutocompleteFieldComponent as ɵl, BooleanFieldComponent as ɵm, CalendarFieldComponent as ɵn, ChipsFieldComponent as ɵo, CurrencyFieldComponent as ɵp, DynamicFieldComponent as ɵq, DynamicFormDirective as ɵr, FieldsetComponent as ɵs, FileUploadComponent$1 as ɵt, LookupFieldComponent as ɵu, NumberFieldComponent as ɵv, BignumberFieldComponent as ɵw, RadioButtonComponent as ɵx, RowComponent as ɵy, SectionComponent as ɵz };
|
|
13811
14538
|
//# sourceMappingURL=seniorsistemas-angular-components.js.map
|