@yoozsoft/yoozsoft-ng 3.1.4 → 4.0.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.
Files changed (152) hide show
  1. package/README.md +11 -4
  2. package/assets/js/UTIF.js-master/LICENSE +21 -0
  3. package/assets/js/UTIF.js-master/README.md +72 -0
  4. package/assets/js/UTIF.js-master/UTIF.js +1763 -0
  5. package/assets/js/UTIF.js-master/package-lock.json +13 -0
  6. package/assets/styles/ys-layout.scss +21 -47
  7. package/assets/styles/ys-preloader.scss +12 -12
  8. package/datepicker/src/models/date-time-format.d.ts +0 -1
  9. package/datepicker/src/ys-datepicker/ys-datepicker.component.d.ts +7 -1
  10. package/directives/src/password-match/ys-password-match.directive.d.ts +1 -1
  11. package/fesm2022/yoozsoft-yoozsoft-ng-datepicker.mjs +172 -162
  12. package/fesm2022/yoozsoft-yoozsoft-ng-datepicker.mjs.map +1 -1
  13. package/fesm2022/yoozsoft-yoozsoft-ng-directives.mjs +6 -10
  14. package/fesm2022/yoozsoft-yoozsoft-ng-directives.mjs.map +1 -1
  15. package/fesm2022/yoozsoft-yoozsoft-ng-file-upload.mjs +145 -0
  16. package/fesm2022/yoozsoft-yoozsoft-ng-file-upload.mjs.map +1 -0
  17. package/fesm2022/yoozsoft-yoozsoft-ng-footer.mjs +8 -15
  18. package/fesm2022/yoozsoft-yoozsoft-ng-footer.mjs.map +1 -1
  19. package/fesm2022/yoozsoft-yoozsoft-ng-loading.mjs +16 -9
  20. package/fesm2022/yoozsoft-yoozsoft-ng-loading.mjs.map +1 -1
  21. package/fesm2022/yoozsoft-yoozsoft-ng-navbar.mjs +36 -31
  22. package/fesm2022/yoozsoft-yoozsoft-ng-navbar.mjs.map +1 -1
  23. package/fesm2022/yoozsoft-yoozsoft-ng-overlay.mjs +6 -8
  24. package/fesm2022/yoozsoft-yoozsoft-ng-overlay.mjs.map +1 -1
  25. package/fesm2022/yoozsoft-yoozsoft-ng-password-strength.mjs +90 -62
  26. package/fesm2022/yoozsoft-yoozsoft-ng-password-strength.mjs.map +1 -1
  27. package/fesm2022/yoozsoft-yoozsoft-ng-progress.mjs +17 -17
  28. package/fesm2022/yoozsoft-yoozsoft-ng-progress.mjs.map +1 -1
  29. package/fesm2022/yoozsoft-yoozsoft-ng-select.mjs +64 -23
  30. package/fesm2022/yoozsoft-yoozsoft-ng-select.mjs.map +1 -1
  31. package/fesm2022/yoozsoft-yoozsoft-ng-sidebar.mjs +50 -57
  32. package/fesm2022/yoozsoft-yoozsoft-ng-sidebar.mjs.map +1 -1
  33. package/fesm2022/yoozsoft-yoozsoft-ng-tiff-viewer.mjs +150 -0
  34. package/fesm2022/yoozsoft-yoozsoft-ng-tiff-viewer.mjs.map +1 -0
  35. package/fesm2022/yoozsoft-yoozsoft-ng-toast.mjs +106 -0
  36. package/fesm2022/yoozsoft-yoozsoft-ng-toast.mjs.map +1 -0
  37. package/{toasts → file-upload}/index.d.ts +1 -1
  38. package/file-upload/public-api.d.ts +1 -0
  39. package/file-upload/src/ys-file-upload/ys-file-upload.component.d.ts +51 -0
  40. package/loading/src/ys-loading-mask/ys-loading-mask.component.d.ts +5 -2
  41. package/navbar/src/models/navbar-brand.d.ts +2 -0
  42. package/navbar/src/models/navbar-item.d.ts +1 -0
  43. package/navbar/src/ys-navbar/ys-navbar.component.d.ts +13 -12
  44. package/overlay/src/ys-overlay/ys-overlay.component.d.ts +1 -1
  45. package/package.json +26 -46
  46. package/password-strength/public-api.d.ts +1 -0
  47. package/password-strength/src/directives/index.d.ts +1 -0
  48. package/password-strength/src/directives/ys-password-strength.directive.d.ts +18 -0
  49. package/password-strength/src/models/strength-validation-feedback.d.ts +2 -0
  50. package/password-strength/src/ys-password-strength/ys-password-strength.component.d.ts +4 -5
  51. package/select/src/ys-select/ys-select.component.d.ts +14 -4
  52. package/sidebar/src/models/index.d.ts +0 -1
  53. package/sidebar/src/models/sidebar-item-active.d.ts +1 -0
  54. package/sidebar/src/services/sidebar.service.d.ts +7 -10
  55. package/sidebar/src/ys-sidebar/ys-sidebar.component.d.ts +13 -15
  56. package/tiff-viewer/index.d.ts +5 -0
  57. package/tiff-viewer/public-api.d.ts +1 -0
  58. package/tiff-viewer/src/ys-tiff-viewer/ys-tiff-viewer.component.d.ts +48 -0
  59. package/{layout → toast}/index.d.ts +1 -1
  60. package/toast/public-api.d.ts +3 -0
  61. package/{toasts/src/ys-toasts/ys-toasts.component.d.ts → toast/src/ys-toast/ys-toast.component.d.ts} +4 -4
  62. package/assets/images/user.jpg +0 -0
  63. package/assets/styles/ys-layout-pin.scss +0 -153
  64. package/esm2022/datepicker/public-api.mjs +0 -12
  65. package/esm2022/datepicker/src/models/date-range.mjs +0 -2
  66. package/esm2022/datepicker/src/models/date-time-format.mjs +0 -4
  67. package/esm2022/datepicker/src/models/index.mjs +0 -4
  68. package/esm2022/datepicker/src/models/jalali-date.mjs +0 -74
  69. package/esm2022/datepicker/src/services/index.mjs +0 -3
  70. package/esm2022/datepicker/src/services/ys-date-parser-formatter.service.mjs +0 -32
  71. package/esm2022/datepicker/src/services/ys-datepicker-i18n.service.mjs +0 -66
  72. package/esm2022/datepicker/src/ys-datepicker/ys-datepicker.component.mjs +0 -108
  73. package/esm2022/datepicker/src/ys-datepicker-persian/ys-datepicker-persian.component.mjs +0 -127
  74. package/esm2022/datepicker/src/ys-datepicker-popup/ys-datepicker-popup.component.mjs +0 -130
  75. package/esm2022/datepicker/src/ys-datepicker-popup-persian/ys-datepicker-popup-persian.component.mjs +0 -136
  76. package/esm2022/datepicker/src/ys-datepicker-range-popup/ys-datepicker-range-popup.component.mjs +0 -157
  77. package/esm2022/datepicker/src/ys-datepicker-range-popup-persian/ys-datepicker-range-popup-persian.component.mjs +0 -167
  78. package/esm2022/datepicker/yoozsoft-yoozsoft-ng-datepicker.mjs +0 -5
  79. package/esm2022/directives/public-api.mjs +0 -6
  80. package/esm2022/directives/src/password-match/ys-password-match.directive.mjs +0 -49
  81. package/esm2022/directives/yoozsoft-yoozsoft-ng-directives.mjs +0 -5
  82. package/esm2022/footer/public-api.mjs +0 -6
  83. package/esm2022/footer/src/models/footer-brand.mjs +0 -2
  84. package/esm2022/footer/src/models/index.mjs +0 -3
  85. package/esm2022/footer/src/models/social-network.mjs +0 -2
  86. package/esm2022/footer/src/ys-footer/ys-footer.component.mjs +0 -32
  87. package/esm2022/footer/yoozsoft-yoozsoft-ng-footer.mjs +0 -5
  88. package/esm2022/layout/public-api.mjs +0 -5
  89. package/esm2022/layout/src/ys-layout/ys-layout.component.mjs +0 -72
  90. package/esm2022/layout/yoozsoft-yoozsoft-ng-layout.mjs +0 -5
  91. package/esm2022/loading/public-api.mjs +0 -5
  92. package/esm2022/loading/src/ys-loading-mask/ys-loading-mask.component.mjs +0 -20
  93. package/esm2022/loading/yoozsoft-yoozsoft-ng-loading.mjs +0 -5
  94. package/esm2022/navbar/public-api.mjs +0 -6
  95. package/esm2022/navbar/src/models/index.mjs +0 -3
  96. package/esm2022/navbar/src/models/navbar-brand.mjs +0 -2
  97. package/esm2022/navbar/src/models/navbar-item.mjs +0 -2
  98. package/esm2022/navbar/src/ys-navbar/ys-navbar.component.mjs +0 -86
  99. package/esm2022/navbar/yoozsoft-yoozsoft-ng-navbar.mjs +0 -5
  100. package/esm2022/overlay/public-api.mjs +0 -5
  101. package/esm2022/overlay/src/ys-overlay/ys-overlay.component.mjs +0 -20
  102. package/esm2022/overlay/yoozsoft-yoozsoft-ng-overlay.mjs +0 -5
  103. package/esm2022/password-strength/public-api.mjs +0 -6
  104. package/esm2022/password-strength/src/models/index.mjs +0 -5
  105. package/esm2022/password-strength/src/models/regx.mjs +0 -7
  106. package/esm2022/password-strength/src/models/strength-validation-control.mjs +0 -2
  107. package/esm2022/password-strength/src/models/strength-validation-feedback.mjs +0 -25
  108. package/esm2022/password-strength/src/models/strength-validation-option.mjs +0 -25
  109. package/esm2022/password-strength/src/ys-password-strength/ys-password-strength.component.mjs +0 -69
  110. package/esm2022/password-strength/yoozsoft-yoozsoft-ng-password-strength.mjs +0 -5
  111. package/esm2022/progress/public-api.mjs +0 -6
  112. package/esm2022/progress/src/services/index.mjs +0 -2
  113. package/esm2022/progress/src/services/progress.service.mjs +0 -18
  114. package/esm2022/progress/src/ys-progress/ys-progress.component.mjs +0 -32
  115. package/esm2022/progress/yoozsoft-yoozsoft-ng-progress.mjs +0 -5
  116. package/esm2022/public-api.mjs +0 -5
  117. package/esm2022/select/public-api.mjs +0 -5
  118. package/esm2022/select/src/ys-select/ys-select.component.mjs +0 -63
  119. package/esm2022/select/yoozsoft-yoozsoft-ng-select.mjs +0 -5
  120. package/esm2022/sidebar/public-api.mjs +0 -8
  121. package/esm2022/sidebar/src/models/index.mjs +0 -6
  122. package/esm2022/sidebar/src/models/sidebar-item-active.mjs +0 -2
  123. package/esm2022/sidebar/src/models/sidebar-item.mjs +0 -2
  124. package/esm2022/sidebar/src/models/sidebar-state.mjs +0 -2
  125. package/esm2022/sidebar/src/models/user-image.mjs +0 -2
  126. package/esm2022/sidebar/src/models/user-profile.mjs +0 -2
  127. package/esm2022/sidebar/src/services/index.mjs +0 -2
  128. package/esm2022/sidebar/src/services/sidebar.service.mjs +0 -39
  129. package/esm2022/sidebar/src/ys-sidebar/ys-sidebar.component.mjs +0 -68
  130. package/esm2022/sidebar/yoozsoft-yoozsoft-ng-sidebar.mjs +0 -5
  131. package/esm2022/toasts/public-api.mjs +0 -7
  132. package/esm2022/toasts/src/models/index.mjs +0 -3
  133. package/esm2022/toasts/src/models/toast-info.mjs +0 -2
  134. package/esm2022/toasts/src/models/toast-type.mjs +0 -8
  135. package/esm2022/toasts/src/services/index.mjs +0 -2
  136. package/esm2022/toasts/src/services/toast.service.mjs +0 -44
  137. package/esm2022/toasts/src/ys-toasts/ys-toasts.component.mjs +0 -53
  138. package/esm2022/toasts/yoozsoft-yoozsoft-ng-toasts.mjs +0 -5
  139. package/esm2022/yoozsoft-yoozsoft-ng.mjs +0 -5
  140. package/fesm2022/yoozsoft-yoozsoft-ng-layout.mjs +0 -83
  141. package/fesm2022/yoozsoft-yoozsoft-ng-layout.mjs.map +0 -1
  142. package/fesm2022/yoozsoft-yoozsoft-ng-toasts.mjs +0 -111
  143. package/fesm2022/yoozsoft-yoozsoft-ng-toasts.mjs.map +0 -1
  144. package/layout/public-api.d.ts +0 -1
  145. package/layout/src/ys-layout/ys-layout.component.d.ts +0 -24
  146. package/sidebar/src/models/sidebar-state.d.ts +0 -4
  147. package/toasts/public-api.d.ts +0 -3
  148. /package/{toasts → toast}/src/models/index.d.ts +0 -0
  149. /package/{toasts → toast}/src/models/toast-info.d.ts +0 -0
  150. /package/{toasts → toast}/src/models/toast-type.d.ts +0 -0
  151. /package/{toasts → toast}/src/services/index.d.ts +0 -0
  152. /package/{toasts → toast}/src/services/toast.service.d.ts +0 -0
@@ -0,0 +1,145 @@
1
+ import { NgIf, NgFor, NgClass } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { EventEmitter, Component, Input, Output } from '@angular/core';
4
+
5
+ class YsFileUploadComponent {
6
+ fileList;
7
+ files = [];
8
+ selectedFile;
9
+ multiple = false;
10
+ accept = '*/*';
11
+ /**Label of upload button */
12
+ uploadLabel = 'Choose File';
13
+ /**Style class of upload button */
14
+ uploadStyleClass;
15
+ /**Icon class of upload button */
16
+ uploadIconClass = 'fa fa-paperclip';
17
+ /**Icon of remove item button */
18
+ removeIconClass = 'fa fa-times';
19
+ /**Files display style */
20
+ isHorizontal = false;
21
+ /**Display remove button */
22
+ isRemove = true;
23
+ /**Message displayed before choosen file */
24
+ message = "No file chosen";
25
+ /**Value of progress element */
26
+ progressValue;
27
+ /**Max value of progress element */
28
+ progressValueMax = 100;
29
+ /**Display cancel upload button */
30
+ isCancel = false;
31
+ /**Event to get choosed files */
32
+ choosed = new EventEmitter();
33
+ /**Event of selected file */
34
+ selected = new EventEmitter();
35
+ /**Event of cancel upload button */
36
+ cancel = new EventEmitter();
37
+ /**Disable elements */
38
+ disabled = false;
39
+ onChange = () => { };
40
+ onTouched = () => { };
41
+ constructor() { }
42
+ writeValue(obj) {
43
+ if (!obj) {
44
+ this.files = [];
45
+ return;
46
+ }
47
+ this.files = obj;
48
+ }
49
+ registerOnChange(fn) {
50
+ this.onChange = fn;
51
+ }
52
+ registerOnTouched(fn) {
53
+ this.onTouched = fn;
54
+ }
55
+ setDisabledState(isDisabled) {
56
+ this.disabled = isDisabled;
57
+ }
58
+ onChoosedFiles(event) {
59
+ this.fileList = event.target.files;
60
+ if (this.fileList?.length) {
61
+ if (!this.multiple) {
62
+ this.files = [];
63
+ }
64
+ for (let i = 0; i < this.fileList.length; i++) {
65
+ const file = this.fileList.item(i);
66
+ this.files.push(file);
67
+ }
68
+ this.files.sort((a, b) => a.name > b.name ? -1 : 1);
69
+ }
70
+ else {
71
+ this.files = [];
72
+ }
73
+ this.onChange(this.files);
74
+ this.onTouched(this.files);
75
+ this.choosed.emit(this.files);
76
+ event.target.value = null;
77
+ }
78
+ removeFile(file) {
79
+ const index = this.files.indexOf(file);
80
+ this.files.splice(index, 1);
81
+ this.onChange(this.files);
82
+ this.onTouched(this.files);
83
+ this.choosed.emit(this.files);
84
+ if (this.selectedFile == file) {
85
+ this.selectedFile = undefined;
86
+ this.selected.emit(undefined);
87
+ }
88
+ }
89
+ onSelectFile(file) {
90
+ this.selectedFile = file;
91
+ this.selected.emit(this.selectedFile);
92
+ }
93
+ cancelUpload() {
94
+ this.cancel.emit();
95
+ }
96
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsFileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
97
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.3", type: YsFileUploadComponent, isStandalone: true, selector: "ys-file-upload", inputs: { multiple: "multiple", accept: "accept", uploadLabel: "uploadLabel", uploadStyleClass: "uploadStyleClass", uploadIconClass: "uploadIconClass", removeIconClass: "removeIconClass", isHorizontal: "isHorizontal", isRemove: "isRemove", message: "message", progressValue: "progressValue", progressValueMax: "progressValueMax", isCancel: "isCancel", disabled: "disabled" }, outputs: { choosed: "choosed", selected: "selected", cancel: "cancel" }, ngImport: i0, template: "<input class=\"form-control d-none file-upload\" type=\"file\" id=\"ysFileUpload\" #ysFileUpload [multiple]=\"multiple\"\r\n [accept]=\"accept\" [disabled]=\"disabled\" (change)=\"onChoosedFiles($event)\">\r\n\r\n<div class=\"file-upload\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <button class=\"btn btn-primary btn-upload {{uploadStyleClass}}\" (click)=\"ysFileUpload.click()\"\r\n [disabled]=\"disabled\">\r\n <i [ngClass]=\"uploadIconClass\"></i>\r\n <span class=\"ms-2\" *ngIf=\"uploadLabel\">{{uploadLabel}}</span>\r\n </button>\r\n\r\n <span class=\"ms-2\">{{files.length ? '' : message}}</span>\r\n\r\n <ul *ngIf=\"files.length\" class=\"file-upload-list list-group mt-2\"\r\n [ngClass]=\"{'list-group-horizontal': isHorizontal}\">\r\n <a class=\"file-upload-item list-group-item d-flex align-items-center\" role=\"button\"\r\n *ngFor=\"let file of files\" (click)=\"onSelectFile(file)\"\r\n [ngClass]=\"{'active': file == selectedFile, 'disabled': disabled}\">\r\n <span class=\"me-2\">{{file.name}}</span>\r\n <button *ngIf=\"isRemove\" class=\"btn btn-outline-danger btn-sm ms-auto\" type=\"button\"\r\n id=\"removeFileButton\" (click)=\"removeFile(file); $event.stopPropagation();\"\r\n [disabled]=\"disabled\">\r\n <i [ngClass]=\"removeIconClass\"></i>\r\n </button>\r\n </a>\r\n </ul>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"progress mt-2\" style=\"height: 20px;\" *ngIf=\"progressValue\">\r\n <div class=\"progress-bar\" role=\"progressbar\" [style.width.%]=\"progressValue\" [attr.aria-valuenow]=\"progressValue\"\r\n aria-valuemin=\"0\" [attr.aria-valuemax]=\"progressValueMax\"></div>\r\n\r\n <button *ngIf=\"isCancel && progressValue < progressValueMax\" class=\"btn btn-danger btn-sm btn-upload-cancel d-flex\"\r\n (click)=\"cancelUpload()\">\r\n <i class=\"fa fa-times\" (click)=\"cancelUpload()\"></i>\r\n </button>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
98
+ }
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsFileUploadComponent, decorators: [{
100
+ type: Component,
101
+ args: [{ selector: 'ys-file-upload', imports: [NgIf, NgFor, NgClass], template: "<input class=\"form-control d-none file-upload\" type=\"file\" id=\"ysFileUpload\" #ysFileUpload [multiple]=\"multiple\"\r\n [accept]=\"accept\" [disabled]=\"disabled\" (change)=\"onChoosedFiles($event)\">\r\n\r\n<div class=\"file-upload\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <button class=\"btn btn-primary btn-upload {{uploadStyleClass}}\" (click)=\"ysFileUpload.click()\"\r\n [disabled]=\"disabled\">\r\n <i [ngClass]=\"uploadIconClass\"></i>\r\n <span class=\"ms-2\" *ngIf=\"uploadLabel\">{{uploadLabel}}</span>\r\n </button>\r\n\r\n <span class=\"ms-2\">{{files.length ? '' : message}}</span>\r\n\r\n <ul *ngIf=\"files.length\" class=\"file-upload-list list-group mt-2\"\r\n [ngClass]=\"{'list-group-horizontal': isHorizontal}\">\r\n <a class=\"file-upload-item list-group-item d-flex align-items-center\" role=\"button\"\r\n *ngFor=\"let file of files\" (click)=\"onSelectFile(file)\"\r\n [ngClass]=\"{'active': file == selectedFile, 'disabled': disabled}\">\r\n <span class=\"me-2\">{{file.name}}</span>\r\n <button *ngIf=\"isRemove\" class=\"btn btn-outline-danger btn-sm ms-auto\" type=\"button\"\r\n id=\"removeFileButton\" (click)=\"removeFile(file); $event.stopPropagation();\"\r\n [disabled]=\"disabled\">\r\n <i [ngClass]=\"removeIconClass\"></i>\r\n </button>\r\n </a>\r\n </ul>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"progress mt-2\" style=\"height: 20px;\" *ngIf=\"progressValue\">\r\n <div class=\"progress-bar\" role=\"progressbar\" [style.width.%]=\"progressValue\" [attr.aria-valuenow]=\"progressValue\"\r\n aria-valuemin=\"0\" [attr.aria-valuemax]=\"progressValueMax\"></div>\r\n\r\n <button *ngIf=\"isCancel && progressValue < progressValueMax\" class=\"btn btn-danger btn-sm btn-upload-cancel d-flex\"\r\n (click)=\"cancelUpload()\">\r\n <i class=\"fa fa-times\" (click)=\"cancelUpload()\"></i>\r\n </button>\r\n</div>" }]
102
+ }], ctorParameters: () => [], propDecorators: { multiple: [{
103
+ type: Input
104
+ }], accept: [{
105
+ type: Input
106
+ }], uploadLabel: [{
107
+ type: Input
108
+ }], uploadStyleClass: [{
109
+ type: Input
110
+ }], uploadIconClass: [{
111
+ type: Input
112
+ }], removeIconClass: [{
113
+ type: Input
114
+ }], isHorizontal: [{
115
+ type: Input
116
+ }], isRemove: [{
117
+ type: Input
118
+ }], message: [{
119
+ type: Input
120
+ }], progressValue: [{
121
+ type: Input
122
+ }], progressValueMax: [{
123
+ type: Input
124
+ }], isCancel: [{
125
+ type: Input
126
+ }], choosed: [{
127
+ type: Output
128
+ }], selected: [{
129
+ type: Output
130
+ }], cancel: [{
131
+ type: Output
132
+ }], disabled: [{
133
+ type: Input
134
+ }] } });
135
+
136
+ /*
137
+ * Public API Surface of ys-select
138
+ */
139
+
140
+ /**
141
+ * Generated bundle index. Do not edit.
142
+ */
143
+
144
+ export { YsFileUploadComponent };
145
+ //# sourceMappingURL=yoozsoft-yoozsoft-ng-file-upload.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yoozsoft-yoozsoft-ng-file-upload.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/file-upload/src/ys-file-upload/ys-file-upload.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/file-upload/src/ys-file-upload/ys-file-upload.component.html","../../../../projects/yoozsoft/yoozsoft-ng/file-upload/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/file-upload/yoozsoft-yoozsoft-ng-file-upload.ts"],"sourcesContent":["import { NgClass, NgFor, NgIf } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ys-file-upload',\r\n imports: [NgIf, NgFor, NgClass],\r\n templateUrl: './ys-file-upload.component.html',\r\n styleUrl: './ys-file-upload.component.scss'\r\n})\r\nexport class YsFileUploadComponent implements ControlValueAccessor {\r\n\r\n private fileList?: FileList;\r\n files: File[] = [];\r\n selectedFile?: File;\r\n\r\n @Input() multiple: boolean = false;\r\n @Input() accept: string = '*/*';\r\n /**Label of upload button */\r\n @Input() uploadLabel?: string = 'Choose File';\r\n /**Style class of upload button */\r\n @Input() uploadStyleClass?: string;\r\n /**Icon class of upload button */\r\n @Input() uploadIconClass: string = 'fa fa-paperclip';\r\n /**Icon of remove item button */\r\n @Input() removeIconClass: string = 'fa fa-times';\r\n /**Files display style */\r\n @Input() isHorizontal: boolean = false;\r\n /**Display remove button */\r\n @Input() isRemove: boolean = true;\r\n\r\n /**Message displayed before choosen file */\r\n @Input() message: string = \"No file chosen\";\r\n\r\n /**Value of progress element */\r\n @Input() progressValue?: number;\r\n /**Max value of progress element */\r\n @Input() progressValueMax: number = 100;\r\n /**Display cancel upload button */\r\n @Input() isCancel: boolean = false;\r\n\r\n /**Event to get choosed files */\r\n @Output() choosed: EventEmitter<File[]> = new EventEmitter();\r\n /**Event of selected file */\r\n @Output() selected: EventEmitter<File | undefined> = new EventEmitter();\r\n /**Event of cancel upload button */\r\n @Output() cancel: EventEmitter<void> = new EventEmitter();\r\n\r\n /**Disable elements */\r\n @Input() disabled: boolean = false;\r\n onChange: any = () => { }\r\n onTouched: any = () => { }\r\n\r\n constructor() { }\r\n\r\n writeValue(obj: any): void {\r\n if (!obj) {\r\n this.files = [];\r\n return;\r\n }\r\n\r\n this.files = obj;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onChoosedFiles(event: any) {\r\n this.fileList = event.target.files;\r\n\r\n if (this.fileList?.length) {\r\n\r\n if (!this.multiple) {\r\n this.files = [];\r\n }\r\n\r\n for (let i = 0; i < this.fileList.length; i++) {\r\n const file: File = this.fileList.item(i)!;\r\n this.files.push(file);\r\n }\r\n\r\n this.files.sort((a, b) => a.name > b.name ? -1 : 1);\r\n\r\n } else {\r\n this.files = [];\r\n }\r\n\r\n this.onChange(this.files);\r\n this.onTouched(this.files);\r\n\r\n this.choosed.emit(this.files);\r\n\r\n event.target.value = null;\r\n\r\n }\r\n\r\n removeFile(file: File) {\r\n const index = this.files.indexOf(file);\r\n this.files.splice(index, 1);\r\n\r\n this.onChange(this.files);\r\n this.onTouched(this.files);\r\n\r\n this.choosed.emit(this.files);\r\n\r\n if (this.selectedFile == file) {\r\n this.selectedFile = undefined;\r\n this.selected.emit(undefined);\r\n }\r\n }\r\n\r\n onSelectFile(file: File) {\r\n this.selectedFile = file;\r\n this.selected.emit(this.selectedFile);\r\n }\r\n\r\n cancelUpload() {\r\n this.cancel.emit();\r\n }\r\n\r\n}\r\n","<input class=\"form-control d-none file-upload\" type=\"file\" id=\"ysFileUpload\" #ysFileUpload [multiple]=\"multiple\"\r\n [accept]=\"accept\" [disabled]=\"disabled\" (change)=\"onChoosedFiles($event)\">\r\n\r\n<div class=\"file-upload\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <button class=\"btn btn-primary btn-upload {{uploadStyleClass}}\" (click)=\"ysFileUpload.click()\"\r\n [disabled]=\"disabled\">\r\n <i [ngClass]=\"uploadIconClass\"></i>\r\n <span class=\"ms-2\" *ngIf=\"uploadLabel\">{{uploadLabel}}</span>\r\n </button>\r\n\r\n <span class=\"ms-2\">{{files.length ? '' : message}}</span>\r\n\r\n <ul *ngIf=\"files.length\" class=\"file-upload-list list-group mt-2\"\r\n [ngClass]=\"{'list-group-horizontal': isHorizontal}\">\r\n <a class=\"file-upload-item list-group-item d-flex align-items-center\" role=\"button\"\r\n *ngFor=\"let file of files\" (click)=\"onSelectFile(file)\"\r\n [ngClass]=\"{'active': file == selectedFile, 'disabled': disabled}\">\r\n <span class=\"me-2\">{{file.name}}</span>\r\n <button *ngIf=\"isRemove\" class=\"btn btn-outline-danger btn-sm ms-auto\" type=\"button\"\r\n id=\"removeFileButton\" (click)=\"removeFile(file); $event.stopPropagation();\"\r\n [disabled]=\"disabled\">\r\n <i [ngClass]=\"removeIconClass\"></i>\r\n </button>\r\n </a>\r\n </ul>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"progress mt-2\" style=\"height: 20px;\" *ngIf=\"progressValue\">\r\n <div class=\"progress-bar\" role=\"progressbar\" [style.width.%]=\"progressValue\" [attr.aria-valuenow]=\"progressValue\"\r\n aria-valuemin=\"0\" [attr.aria-valuemax]=\"progressValueMax\"></div>\r\n\r\n <button *ngIf=\"isCancel && progressValue < progressValueMax\" class=\"btn btn-danger btn-sm btn-upload-cancel d-flex\"\r\n (click)=\"cancelUpload()\">\r\n <i class=\"fa fa-times\" (click)=\"cancelUpload()\"></i>\r\n </button>\r\n</div>","/*\r\n * Public API Surface of ys-select\r\n */\r\n\r\nexport * from './src/ys-file-upload/ys-file-upload.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAUa,qBAAqB,CAAA;AAExB,IAAA,QAAQ;IAChB,KAAK,GAAW,EAAE;AAClB,IAAA,YAAY;IAEH,QAAQ,GAAY,KAAK;IACzB,MAAM,GAAW,KAAK;;IAEtB,WAAW,GAAY,aAAa;;AAEpC,IAAA,gBAAgB;;IAEhB,eAAe,GAAW,iBAAiB;;IAE3C,eAAe,GAAW,aAAa;;IAEvC,YAAY,GAAY,KAAK;;IAE7B,QAAQ,GAAY,IAAI;;IAGxB,OAAO,GAAW,gBAAgB;;AAGlC,IAAA,aAAa;;IAEb,gBAAgB,GAAW,GAAG;;IAE9B,QAAQ,GAAY,KAAK;;AAGxB,IAAA,OAAO,GAAyB,IAAI,YAAY,EAAE;;AAElD,IAAA,QAAQ,GAAmC,IAAI,YAAY,EAAE;;AAE7D,IAAA,MAAM,GAAuB,IAAI,YAAY,EAAE;;IAGhD,QAAQ,GAAY,KAAK;AAClC,IAAA,QAAQ,GAAQ,MAAK,GAAI;AACzB,IAAA,SAAS,GAAQ,MAAK,GAAI;AAE1B,IAAA,WAAA,GAAA;AAEA,IAAA,UAAU,CAAC,GAAQ,EAAA;QACjB,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE;YACf;;AAGF,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG;;AAElB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAEpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAErB,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,cAAc,CAAC,KAAU,EAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;AAElC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;AAEzB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,gBAAA,IAAI,CAAC,KAAK,GAAG,EAAE;;AAGjB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,MAAM,IAAI,GAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAE;AACzC,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGvB,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;;aAE9C;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE;;AAGjB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAE1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAE7B,QAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;;AAI3B,IAAA,UAAU,CAAC,IAAU,EAAA;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAE3B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAE1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAE7B,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;AAC7B,YAAA,IAAI,CAAC,YAAY,GAAG,SAAS;AAC7B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;;;AAIjC,IAAA,YAAY,CAAC,IAAU,EAAA;AACrB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;;IAGvC,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;;uGAjHT,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,2gBCVlC,+rEAwCM,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDlCM,IAAI,EAAE,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,KAAK,mHAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAInB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,WACjB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,+rEAAA,EAAA;wDAUtB,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBAEQ,WAAW,EAAA,CAAA;sBAAnB;gBAEQ,gBAAgB,EAAA,CAAA;sBAAxB;gBAEQ,eAAe,EAAA,CAAA;sBAAvB;gBAEQ,eAAe,EAAA,CAAA;sBAAvB;gBAEQ,YAAY,EAAA,CAAA;sBAApB;gBAEQ,QAAQ,EAAA,CAAA;sBAAhB;gBAGQ,OAAO,EAAA,CAAA;sBAAf;gBAGQ,aAAa,EAAA,CAAA;sBAArB;gBAEQ,gBAAgB,EAAA,CAAA;sBAAxB;gBAEQ,QAAQ,EAAA,CAAA;sBAAhB;gBAGS,OAAO,EAAA,CAAA;sBAAhB;gBAES,QAAQ,EAAA,CAAA;sBAAjB;gBAES,MAAM,EAAA,CAAA;sBAAf;gBAGQ,QAAQ,EAAA,CAAA;sBAAhB;;;AEjDH;;AAEG;;ACFH;;AAEG;;;;"}
@@ -4,23 +4,16 @@ import { Component, Input } from '@angular/core';
4
4
  import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';
5
5
 
6
6
  class YsFooterComponent {
7
- constructor() {
8
- this.styleClass = null;
9
- this.brand = null;
10
- this.copyright = null;
11
- this.socialNetworks = [];
12
- }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: YsFooterComponent, isStandalone: true, selector: "ys-footer", inputs: { styleClass: "styleClass", brand: "brand", copyright: "copyright", socialNetworks: "socialNetworks" }, ngImport: i0, template: "<footer class=\"d-flex justify-content-between align-items-center py-3 my-4 border-top\" [ngClass]=\"styleClass\">\r\n <div *ngIf=\"brand || copyright\" class=\"d-flex align-items-center\">\r\n <a *ngIf=\"brand\" href=\"{{brand.href}}\" class=\"px-2 text-muted text-decoration-none\">\r\n <img src=\"{{brand.src}}\" alt=\"{{brand.alt}}\" width=\"30\" height=\"24\" class=\"d-inline-block align-text-top\">\r\n </a>\r\n <span *ngIf=\"copyright\" class=\"text-muted\">{{copyright}}</span>\r\n </div>\r\n\r\n <ul *ngIf=\"socialNetworks.length > 0\" class=\"nav d-flex justify-content-end\">\r\n <li class=\"px-2\" *ngFor=\"let item of socialNetworks\">\r\n <a class=\"text-muted social-icon\" href=\"{{item.href}}\" [ngbTooltip]=\"item.tooltip\">\r\n <em class=\"{{item.iconClass}}\"></em>\r\n </a>\r\n </li>\r\n </ul>\r\n</footer>", styles: [".social-icon:hover{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1))!important}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }] }); }
7
+ styleClass = null;
8
+ brand = null;
9
+ copyright = null;
10
+ socialNetworks = [];
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.3", type: YsFooterComponent, isStandalone: true, selector: "ys-footer", inputs: { styleClass: "styleClass", brand: "brand", copyright: "copyright", socialNetworks: "socialNetworks" }, ngImport: i0, template: "<footer class=\"d-flex justify-content-between align-items-center py-3 my-4 border-top\" [ngClass]=\"styleClass\">\r\n <div *ngIf=\"brand || copyright\" class=\"d-flex align-items-center\">\r\n <a *ngIf=\"brand\" href=\"{{brand.href}}\" class=\"px-2 text-muted text-decoration-none\">\r\n <img src=\"{{brand.src}}\" alt=\"{{brand.alt}}\" class=\"brand-logo d-inline-block align-text-top\">\r\n </a>\r\n <span *ngIf=\"copyright\" class=\"text-muted\">{{copyright}}</span>\r\n </div>\r\n\r\n <ul *ngIf=\"socialNetworks.length\" class=\"nav d-flex justify-content-end\">\r\n <li class=\"px-2\" *ngFor=\"let item of socialNetworks\">\r\n <a class=\"text-muted social-icon\" href=\"{{item.href}}\" [ngbTooltip]=\"item.tooltip\">\r\n <em class=\"{{item.iconClass}}\"></em>\r\n </a>\r\n </li>\r\n </ul>\r\n</footer>", styles: [".social-icon:hover{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1))!important}.brand-logo{width:30px;height:30px}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }] });
15
13
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsFooterComponent, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsFooterComponent, decorators: [{
17
15
  type: Component,
18
- args: [{ selector: 'ys-footer', standalone: true, imports: [
19
- NgFor,
20
- NgIf,
21
- NgClass,
22
- NgbTooltip
23
- ], template: "<footer class=\"d-flex justify-content-between align-items-center py-3 my-4 border-top\" [ngClass]=\"styleClass\">\r\n <div *ngIf=\"brand || copyright\" class=\"d-flex align-items-center\">\r\n <a *ngIf=\"brand\" href=\"{{brand.href}}\" class=\"px-2 text-muted text-decoration-none\">\r\n <img src=\"{{brand.src}}\" alt=\"{{brand.alt}}\" width=\"30\" height=\"24\" class=\"d-inline-block align-text-top\">\r\n </a>\r\n <span *ngIf=\"copyright\" class=\"text-muted\">{{copyright}}</span>\r\n </div>\r\n\r\n <ul *ngIf=\"socialNetworks.length > 0\" class=\"nav d-flex justify-content-end\">\r\n <li class=\"px-2\" *ngFor=\"let item of socialNetworks\">\r\n <a class=\"text-muted social-icon\" href=\"{{item.href}}\" [ngbTooltip]=\"item.tooltip\">\r\n <em class=\"{{item.iconClass}}\"></em>\r\n </a>\r\n </li>\r\n </ul>\r\n</footer>", styles: [".social-icon:hover{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1))!important}\n"] }]
16
+ args: [{ selector: 'ys-footer', imports: [NgFor, NgIf, NgClass, NgbTooltip], template: "<footer class=\"d-flex justify-content-between align-items-center py-3 my-4 border-top\" [ngClass]=\"styleClass\">\r\n <div *ngIf=\"brand || copyright\" class=\"d-flex align-items-center\">\r\n <a *ngIf=\"brand\" href=\"{{brand.href}}\" class=\"px-2 text-muted text-decoration-none\">\r\n <img src=\"{{brand.src}}\" alt=\"{{brand.alt}}\" class=\"brand-logo d-inline-block align-text-top\">\r\n </a>\r\n <span *ngIf=\"copyright\" class=\"text-muted\">{{copyright}}</span>\r\n </div>\r\n\r\n <ul *ngIf=\"socialNetworks.length\" class=\"nav d-flex justify-content-end\">\r\n <li class=\"px-2\" *ngFor=\"let item of socialNetworks\">\r\n <a class=\"text-muted social-icon\" href=\"{{item.href}}\" [ngbTooltip]=\"item.tooltip\">\r\n <em class=\"{{item.iconClass}}\"></em>\r\n </a>\r\n </li>\r\n </ul>\r\n</footer>", styles: [".social-icon:hover{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1))!important}.brand-logo{width:30px;height:30px}\n"] }]
24
17
  }], propDecorators: { styleClass: [{
25
18
  type: Input
26
19
  }], brand: [{
@@ -1 +1 @@
1
- {"version":3,"file":"yoozsoft-yoozsoft-ng-footer.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/footer/src/ys-footer/ys-footer.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/footer/src/ys-footer/ys-footer.component.html","../../../../projects/yoozsoft/yoozsoft-ng/footer/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/footer/yoozsoft-yoozsoft-ng-footer.ts"],"sourcesContent":["import { NgClass, NgFor, NgIf } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\r\nimport { FooterBrand, SocialNetwork } from '../models';\r\n\r\n@Component({\r\n selector: 'ys-footer',\r\n standalone: true,\r\n imports: [\r\n NgFor,\r\n NgIf,\r\n NgClass,\r\n NgbTooltip\r\n ],\r\n templateUrl: './ys-footer.component.html',\r\n styleUrls: ['./ys-footer.component.scss']\r\n})\r\nexport class YsFooterComponent {\r\n\r\n @Input() styleClass: string | null = null;\r\n @Input() brand: FooterBrand | null = null;\r\n @Input() copyright: string | null = null;\r\n @Input() socialNetworks: SocialNetwork[] = [];\r\n\r\n}\r\n","<footer class=\"d-flex justify-content-between align-items-center py-3 my-4 border-top\" [ngClass]=\"styleClass\">\r\n <div *ngIf=\"brand || copyright\" class=\"d-flex align-items-center\">\r\n <a *ngIf=\"brand\" href=\"{{brand.href}}\" class=\"px-2 text-muted text-decoration-none\">\r\n <img src=\"{{brand.src}}\" alt=\"{{brand.alt}}\" width=\"30\" height=\"24\" class=\"d-inline-block align-text-top\">\r\n </a>\r\n <span *ngIf=\"copyright\" class=\"text-muted\">{{copyright}}</span>\r\n </div>\r\n\r\n <ul *ngIf=\"socialNetworks.length > 0\" class=\"nav d-flex justify-content-end\">\r\n <li class=\"px-2\" *ngFor=\"let item of socialNetworks\">\r\n <a class=\"text-muted social-icon\" href=\"{{item.href}}\" [ngbTooltip]=\"item.tooltip\">\r\n <em class=\"{{item.iconClass}}\"></em>\r\n </a>\r\n </li>\r\n </ul>\r\n</footer>","/*\r\n * Public API Surface of ys-footer\r\n */\r\n\r\nexport * from './src/models';\r\nexport * from './src/ys-footer/ys-footer.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAiBa,iBAAiB,CAAA;AAZ9B,IAAA,WAAA,GAAA;QAcW,IAAU,CAAA,UAAA,GAAkB,IAAI,CAAC;QACjC,IAAK,CAAA,KAAA,GAAuB,IAAI,CAAC;QACjC,IAAS,CAAA,SAAA,GAAkB,IAAI,CAAC;QAChC,IAAc,CAAA,cAAA,GAAoB,EAAE,CAAC;AAE/C,KAAA;8GAPY,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjB9B,65BAeS,EDNL,MAAA,EAAA,CAAA,gGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,KAAK,mHACL,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACJ,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAKD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,SAAS;+BACE,WAAW,EAAA,UAAA,EACT,IAAI,EACP,OAAA,EAAA;wBACP,KAAK;wBACL,IAAI;wBACJ,OAAO;wBACP,UAAU;AACX,qBAAA,EAAA,QAAA,EAAA,65BAAA,EAAA,MAAA,EAAA,CAAA,gGAAA,CAAA,EAAA,CAAA;8BAMQ,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;AEtBR;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"yoozsoft-yoozsoft-ng-footer.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/footer/src/ys-footer/ys-footer.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/footer/src/ys-footer/ys-footer.component.html","../../../../projects/yoozsoft/yoozsoft-ng/footer/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/footer/yoozsoft-yoozsoft-ng-footer.ts"],"sourcesContent":["import { NgClass, NgFor, NgIf } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\r\nimport { FooterBrand, SocialNetwork } from '../models';\r\n\r\n@Component({\r\n selector: 'ys-footer',\r\n imports: [NgFor, NgIf, NgClass, NgbTooltip],\r\n templateUrl: './ys-footer.component.html',\r\n styleUrl: './ys-footer.component.scss'\r\n})\r\nexport class YsFooterComponent {\r\n\r\n @Input() styleClass: string | null = null;\r\n @Input() brand: FooterBrand | null = null;\r\n @Input() copyright: string | null = null;\r\n @Input() socialNetworks: SocialNetwork[] = [];\r\n\r\n}\r\n","<footer class=\"d-flex justify-content-between align-items-center py-3 my-4 border-top\" [ngClass]=\"styleClass\">\r\n <div *ngIf=\"brand || copyright\" class=\"d-flex align-items-center\">\r\n <a *ngIf=\"brand\" href=\"{{brand.href}}\" class=\"px-2 text-muted text-decoration-none\">\r\n <img src=\"{{brand.src}}\" alt=\"{{brand.alt}}\" class=\"brand-logo d-inline-block align-text-top\">\r\n </a>\r\n <span *ngIf=\"copyright\" class=\"text-muted\">{{copyright}}</span>\r\n </div>\r\n\r\n <ul *ngIf=\"socialNetworks.length\" class=\"nav d-flex justify-content-end\">\r\n <li class=\"px-2\" *ngFor=\"let item of socialNetworks\">\r\n <a class=\"text-muted social-icon\" href=\"{{item.href}}\" [ngbTooltip]=\"item.tooltip\">\r\n <em class=\"{{item.iconClass}}\"></em>\r\n </a>\r\n </li>\r\n </ul>\r\n</footer>","/*\r\n * Public API Surface of ys-footer\r\n */\r\n\r\nexport * from './src/models';\r\nexport * from './src/ys-footer/ys-footer.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAWa,iBAAiB,CAAA;IAEnB,UAAU,GAAkB,IAAI;IAChC,KAAK,GAAuB,IAAI;IAChC,SAAS,GAAkB,IAAI;IAC/B,cAAc,GAAoB,EAAE;uGALlC,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECX9B,y4BAeS,EDRG,MAAA,EAAA,CAAA,mIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,KAAK,mHAAE,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAI/B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;+BACE,WAAW,EAAA,OAAA,EACZ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAAA,QAAA,EAAA,y4BAAA,EAAA,MAAA,EAAA,CAAA,mIAAA,CAAA,EAAA;8BAMlC,UAAU,EAAA,CAAA;sBAAlB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;;;AEhBH;;AAEG;;ACFH;;AAEG;;;;"}
@@ -3,19 +3,26 @@ import * as i0 from '@angular/core';
3
3
  import { Component, Input } from '@angular/core';
4
4
 
5
5
  class YsLoadingMaskComponent {
6
- constructor() {
7
- this.loading = false;
8
- this.styleClass = null;
9
- }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsLoadingMaskComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: YsLoadingMaskComponent, isStandalone: true, selector: "ys-loading-mask", inputs: { loading: "loading", styleClass: "styleClass" }, ngImport: i0, template: "<div *ngIf=\"loading\" class=\"loading-mask bg-secondary\" [ngClass]=\"styleClass\">\r\n</div>\r\n<div *ngIf=\"loading\" class=\"loading-content spinner-border text-secondary\" role=\"status\">\r\n <span class=\"sr-only\">Loading...</span>\r\n</div>", styles: [".loading-mask{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.2;z-index:1001}.loading-content{position:absolute;top:50%;left:50%;z-index:1002}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
6
+ loading = false;
7
+ message = 'Loading ...';
8
+ backgroundStyleclass = null;
9
+ spinnerStyleclass = null;
10
+ messageStyleclass = null;
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsLoadingMaskComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.3", type: YsLoadingMaskComponent, isStandalone: true, selector: "ys-loading-mask", inputs: { loading: "loading", message: "message", backgroundStyleclass: "backgroundStyleclass", spinnerStyleclass: "spinnerStyleclass", messageStyleclass: "messageStyleclass" }, ngImport: i0, template: "<div *ngIf=\"loading\"\r\n class=\"loading-wrapper d-flex flex-column align-items-center justify-content-center h-100 w-100 position-absolute\">\r\n <div class=\"loading-mask bg-secondary position-absolute h-100 w-100\" [ngClass]=\"backgroundStyleclass\">\r\n </div>\r\n <div class=\"loading-content d-flex flex-column align-items-center justify-content-center\">\r\n <div class=\"loading-spinner spinner-border text-primary\" [ngClass]=\"spinnerStyleclass\" role=\"status\"></div>\r\n <strong *ngIf=\"message\" class=\"badge bg-primary mt-4 p-3\" [ngClass]=\"messageStyleclass\">\r\n {{message}}\r\n </strong>\r\n </div>\r\n</div>", styles: [".loading-wrapper{top:0;left:0;z-index:1001}.loading-wrapper .loading-mask{opacity:.3}.loading-wrapper .loading-content{z-index:1}.loading-wrapper .loading-content .loading-spinner{width:3rem;height:3rem}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
12
13
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsLoadingMaskComponent, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsLoadingMaskComponent, decorators: [{
14
15
  type: Component,
15
- args: [{ selector: 'ys-loading-mask', standalone: true, imports: [NgIf, NgClass], template: "<div *ngIf=\"loading\" class=\"loading-mask bg-secondary\" [ngClass]=\"styleClass\">\r\n</div>\r\n<div *ngIf=\"loading\" class=\"loading-content spinner-border text-secondary\" role=\"status\">\r\n <span class=\"sr-only\">Loading...</span>\r\n</div>", styles: [".loading-mask{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.2;z-index:1001}.loading-content{position:absolute;top:50%;left:50%;z-index:1002}\n"] }]
16
+ args: [{ selector: 'ys-loading-mask', imports: [NgIf, NgClass], template: "<div *ngIf=\"loading\"\r\n class=\"loading-wrapper d-flex flex-column align-items-center justify-content-center h-100 w-100 position-absolute\">\r\n <div class=\"loading-mask bg-secondary position-absolute h-100 w-100\" [ngClass]=\"backgroundStyleclass\">\r\n </div>\r\n <div class=\"loading-content d-flex flex-column align-items-center justify-content-center\">\r\n <div class=\"loading-spinner spinner-border text-primary\" [ngClass]=\"spinnerStyleclass\" role=\"status\"></div>\r\n <strong *ngIf=\"message\" class=\"badge bg-primary mt-4 p-3\" [ngClass]=\"messageStyleclass\">\r\n {{message}}\r\n </strong>\r\n </div>\r\n</div>", styles: [".loading-wrapper{top:0;left:0;z-index:1001}.loading-wrapper .loading-mask{opacity:.3}.loading-wrapper .loading-content{z-index:1}.loading-wrapper .loading-content .loading-spinner{width:3rem;height:3rem}\n"] }]
16
17
  }], propDecorators: { loading: [{
17
18
  type: Input
18
- }], styleClass: [{
19
+ }], message: [{
20
+ type: Input
21
+ }], backgroundStyleclass: [{
22
+ type: Input
23
+ }], spinnerStyleclass: [{
24
+ type: Input
25
+ }], messageStyleclass: [{
19
26
  type: Input
20
27
  }] } });
21
28
 
@@ -1 +1 @@
1
- {"version":3,"file":"yoozsoft-yoozsoft-ng-loading.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/loading/src/ys-loading-mask/ys-loading-mask.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/loading/src/ys-loading-mask/ys-loading-mask.component.html","../../../../projects/yoozsoft/yoozsoft-ng/loading/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/loading/yoozsoft-yoozsoft-ng-loading.ts"],"sourcesContent":["import { NgClass, NgIf } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ys-loading-mask',\r\n standalone: true,\r\n imports: [NgIf, NgClass],\r\n templateUrl: './ys-loading-mask.component.html',\r\n styleUrls: ['./ys-loading-mask.component.scss']\r\n})\r\nexport class YsLoadingMaskComponent {\r\n @Input() loading: boolean = false;\r\n @Input() styleClass: string | null = null;\r\n}\r\n","<div *ngIf=\"loading\" class=\"loading-mask bg-secondary\" [ngClass]=\"styleClass\">\r\n</div>\r\n<div *ngIf=\"loading\" class=\"loading-content spinner-border text-secondary\" role=\"status\">\r\n <span class=\"sr-only\">Loading...</span>\r\n</div>","/*\r\n * Public API Surface of ys-loading-mask\r\n */\r\n\r\nexport * from './src/ys-loading-mask/ys-loading-mask.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAUa,sBAAsB,CAAA;AAPnC,IAAA,WAAA,GAAA;QAQW,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAU,CAAA,UAAA,GAAkB,IAAI,CAAC;AAC3C,KAAA;8GAHY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,ECVnC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,8PAIM,EDEM,MAAA,EAAA,CAAA,iKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIZ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,cACf,IAAI,EAAA,OAAA,EACP,CAAC,IAAI,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,8PAAA,EAAA,MAAA,EAAA,CAAA,iKAAA,CAAA,EAAA,CAAA;8BAKf,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;AEZR;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"yoozsoft-yoozsoft-ng-loading.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/loading/src/ys-loading-mask/ys-loading-mask.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/loading/src/ys-loading-mask/ys-loading-mask.component.html","../../../../projects/yoozsoft/yoozsoft-ng/loading/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/loading/yoozsoft-yoozsoft-ng-loading.ts"],"sourcesContent":["import { NgClass, NgIf } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ys-loading-mask',\r\n imports: [NgIf, NgClass],\r\n templateUrl: './ys-loading-mask.component.html',\r\n styleUrl: './ys-loading-mask.component.scss'\r\n})\r\nexport class YsLoadingMaskComponent {\r\n\r\n @Input() loading: boolean = false;\r\n @Input() message: string | null = 'Loading ...';\r\n @Input() backgroundStyleclass: string | null = null;\r\n @Input() spinnerStyleclass: string | null = null;\r\n @Input() messageStyleclass: string | null = null;\r\n\r\n}\r\n","<div *ngIf=\"loading\"\r\n class=\"loading-wrapper d-flex flex-column align-items-center justify-content-center h-100 w-100 position-absolute\">\r\n <div class=\"loading-mask bg-secondary position-absolute h-100 w-100\" [ngClass]=\"backgroundStyleclass\">\r\n </div>\r\n <div class=\"loading-content d-flex flex-column align-items-center justify-content-center\">\r\n <div class=\"loading-spinner spinner-border text-primary\" [ngClass]=\"spinnerStyleclass\" role=\"status\"></div>\r\n <strong *ngIf=\"message\" class=\"badge bg-primary mt-4 p-3\" [ngClass]=\"messageStyleclass\">\r\n {{message}}\r\n </strong>\r\n </div>\r\n</div>","/*\r\n * Public API Surface of ys-loading-mask\r\n */\r\n\r\nexport * from './src/ys-loading-mask/ys-loading-mask.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MASa,sBAAsB,CAAA;IAExB,OAAO,GAAY,KAAK;IACxB,OAAO,GAAkB,aAAa;IACtC,oBAAoB,GAAkB,IAAI;IAC1C,iBAAiB,GAAkB,IAAI;IACvC,iBAAiB,GAAkB,IAAI;uGANrC,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,ECTnC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wqBAUM,EDLM,MAAA,EAAA,CAAA,+MAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIZ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAClB,OAAA,EAAA,CAAC,IAAI,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,wqBAAA,EAAA,MAAA,EAAA,CAAA,+MAAA,CAAA,EAAA;8BAMf,OAAO,EAAA,CAAA;sBAAf;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,oBAAoB,EAAA,CAAA;sBAA5B;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;;;AEfH;;AAEG;;ACFH;;AAEG;;;;"}
@@ -8,43 +8,48 @@ import * as i2 from '@ng-bootstrap/ng-bootstrap';
8
8
  import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
9
9
 
10
10
  class YsNavbarComponent {
11
+ formBuilder;
12
+ searchForm;
13
+ id = 'mainNavbar';
14
+ theme = 'dark';
15
+ styleClass;
16
+ brand = null;
17
+ items = [];
18
+ endItems = [];
19
+ isSearch = false;
20
+ searchLabel = 'Search';
21
+ searchIconClass;
22
+ searchPlaceholder = 'Search';
23
+ isSidebarToggler = false;
24
+ isSidebarToggled = true;
25
+ sidebarTogglerIconClass = "fa-solid fa-angle-right";
26
+ toggleSidebar = new EventEmitter();
27
+ search = new EventEmitter();
11
28
  constructor(formBuilder) {
12
29
  this.formBuilder = formBuilder;
13
- this.id = 'navbar01';
14
- this.theme = 'dark';
15
- this.styleClass = 'navbar-expand-lg bg-primary';
16
- this.items = [];
17
- this.sideItems = [];
18
- this.search = false;
19
- this.searchLabel = 'Search';
20
- this.searchPlaceholder = 'Search';
21
- this.brand = null;
22
- this.sidebarToggler = false;
23
- this.sidebarToggled = false;
24
- // @Input() sidebarPinnerIconClass: string = "fa-solid fa-angle-left";
25
- this.sidebarTogglerIconClass = "fa-solid fa-angle-right";
26
- this.toggleSidebar = new EventEmitter();
27
- this.onSearch = new EventEmitter();
28
30
  this.searchForm = this.formBuilder.group({
29
31
  searchValue: ['']
30
32
  });
31
33
  }
34
+ ngOnInit() {
35
+ // this.toggleSidebar.emit(this.isSidebarToggled);
36
+ }
32
37
  onToggleSidebar() {
33
- this.sidebarToggled = !this.sidebarToggled;
34
- this.toggleSidebar.emit(this.sidebarToggled);
38
+ this.isSidebarToggled = !this.isSidebarToggled;
39
+ this.toggleSidebar.emit(this.isSidebarToggled);
35
40
  }
36
41
  submitSearch() {
37
- this.onSearch.emit(this.searchForm.get('searchValue')?.value);
42
+ this.search.emit(this.searchForm.get('searchValue')?.value);
38
43
  }
39
44
  isDropdown(item) {
40
- return item.items?.length > 0;
45
+ return item.items?.length;
41
46
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsNavbarComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: YsNavbarComponent, isStandalone: true, selector: "ys-navbar", inputs: { id: "id", theme: "theme", styleClass: "styleClass", items: "items", sideItems: "sideItems", search: "search", searchLabel: "searchLabel", searchIconClass: "searchIconClass", searchPlaceholder: "searchPlaceholder", brand: "brand", sidebarToggler: "sidebarToggler", sidebarToggled: "sidebarToggled", sidebarTogglerIconClass: "sidebarTogglerIconClass" }, outputs: { toggleSidebar: "toggleSidebar", onSearch: "onSearch" }, ngImport: i0, template: "<nav class=\"navbar\" [ngClass]=\"styleClass\" [attr.data-bs-theme]=\"theme\">\r\n <div class=\"container-fluid\">\r\n <button *ngIf=\"sidebarToggler\" class=\"sidebar-toggler me-2\" type=\"button\" (click)=\"onToggleSidebar()\">\r\n <i class=\"{{sidebarTogglerIconClass}} sidebar-toggler-icon p-1\" [ngClass]=\"{'toggled': sidebarToggled}\"></i>\r\n </button>\r\n\r\n <a class=\"navbar-brand\" [ngClass]=\"{'me-auto': items.length <= 0}\" href=\"{{brand?.href}}\">\r\n <img *ngIf=\"brand?.src\" src=\"{{brand?.src}}\" alt=\"{{brand?.alt}}\" width=\"30\" height=\"24\">\r\n {{brand?.label}}\r\n </a>\r\n <button *ngIf=\"items.length > 0 || sideItems.length > 0 || search\" class=\"navbar-toggler ms-auto\" type=\"button\"\r\n data-bs-toggle=\"collapse\" [attr.data-bs-target]=\"'#' + id\" [attr.aria-controls]=\"id\" aria-expanded=\"false\"\r\n aria-label=\"Toggle navigation\">\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n\r\n <div class=\"collapse navbar-collapse\" [id]=\"id\">\r\n\r\n <ul *ngIf=\"items.length > 0\" class=\"navbar-nav me-auto\">\r\n <ng-container *ngFor=\"let navItem of items\">\r\n <li *ngIf=\"!isDropdown(navItem)\" class=\"nav-item\">\r\n <a class=\"nav-link\" [routerLink]=\"navItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n ngbTooltip=\"{{navItem.tooltipLabel}}\">\r\n <i *ngIf=\"navItem.iconClass\" class=\"pe-2 {{navItem.iconClass}}\"></i>\r\n {{navItem.label}}\r\n <span class=\"visually-hidden\">(current)</span>\r\n </a>\r\n </li>\r\n\r\n <li *ngIf=\"isDropdown(navItem)\" class=\"nav-item dropdown\">\r\n <a class=\"nav-link dropdown-toggle\" ngbTooltip=\"{{navItem.tooltipLabel}}\" data-bs-toggle=\"dropdown\"\r\n role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n <i *ngIf=\"navItem.iconClass\" class=\"pe-2 {{navItem.iconClass}}\"></i>\r\n <span *ngIf=\"navItem.label\">{{navItem.label}}</span>\r\n </a>\r\n <div class=\"dropdown-menu px-2\">\r\n <ng-container *ngFor=\"let navSubItem of navItem.items\">\r\n\r\n <a *ngIf=\"!navSubItem.isDivider\" class=\"dropdown-item rounded\" [routerLink]=\"navSubItem.routerLink\"\r\n [routerLinkActive]=\"['active']\" ngbTooltip=\"{{navSubItem.tooltipLabel}}\">\r\n <i *ngIf=\"navSubItem.iconClass\" class=\"me-2 {{navSubItem.iconClass}}\"></i>\r\n <span *ngIf=\"navSubItem.label\">{{navSubItem.label}}</span>\r\n </a>\r\n\r\n <div *ngIf=\"navSubItem.isDivider\" class=\"dropdown-divider\"></div>\r\n\r\n </ng-container>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n\r\n <ul *ngIf=\"sideItems.length > 0\" class=\"navbar-nav flex-row ms-auto nav-side\" [ngClass]=\"{'me-md-2': search}\">\r\n <ng-container *ngFor=\"let sideItem of sideItems\">\r\n\r\n <li *ngIf=\"!isDropdown(sideItem)\" class=\"nav-item\">\r\n <a class=\"nav-link\" [routerLink]=\"sideItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n (click)=\"sideItem.onClick && sideItem.onClick($event)\" role=\"button\"\r\n ngbTooltip=\"{{sideItem.tooltipLabel}}\">\r\n <i *ngIf=\"sideItem.iconClass\" class=\"pe-2 {{sideItem.iconClass}}\"></i>\r\n <span *ngIf=\"sideItem.label\">{{sideItem.label}}</span>\r\n </a>\r\n </li>\r\n\r\n <li *ngIf=\"isDropdown(sideItem)\" class=\"nav-item dropdown\">\r\n <a class=\"nav-link dropdown-toggle\" ngbTooltip=\"{{sideItem.tooltipLabel}}\" data-bs-toggle=\"dropdown\"\r\n data-bs-display=\"static\" aria-expanded=\"false\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n <i *ngIf=\"sideItem.iconClass\" class=\"pe-2 {{sideItem.iconClass}}\"></i>\r\n <span *ngIf=\"sideItem.label\">{{sideItem.label}}</span>\r\n </a>\r\n <div class=\"dropdown-menu px-2 dropdown-menu-end\">\r\n <ng-container *ngFor=\"let sideItemSubItem of sideItem.items\">\r\n\r\n <a *ngIf=\"!sideItemSubItem.isDivider\" class=\"dropdown-item text-center rounded\"\r\n [routerLink]=\"sideItemSubItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n (click)=\"sideItemSubItem.onClick && sideItemSubItem.onClick($event)\" role=\"button\"\r\n ngbTooltip=\"{{sideItemSubItem.tooltipLabel}}\">\r\n <i *ngIf=\"sideItemSubItem.iconClass\" class=\"me-2 {{sideItemSubItem.iconClass}}\"></i>\r\n <span *ngIf=\"sideItemSubItem.label\">{{sideItemSubItem.label}}</span>\r\n </a>\r\n\r\n <div *ngIf=\"sideItemSubItem.isDivider\" class=\"dropdown-divider\"></div>\r\n\r\n </ng-container>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <form *ngIf=\"search\" class=\"d-flex mt-2 mt-md-0\" [ngClass]=\"{'ms-auto': sideItems.length <= 0}\"\r\n [formGroup]=\"searchForm\" (submit)=\"submitSearch()\">\r\n <input class=\"form-control me-sm-2\" type=\"search\" placeholder=\"{{searchPlaceholder}}\"\r\n formControlName=\"searchValue\">\r\n <button class=\"btn btn-secondary my-2 my-sm-0\" type=\"submit\">\r\n <i *ngIf=\"searchIconClass\" class=\"{{searchIconClass}}\"></i>\r\n <span *ngIf=\"searchLabel\">{{searchLabel}}</span>\r\n </button>\r\n </form>\r\n </div>\r\n </div>\r\n</nav>", styles: [".sidebar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}.sidebar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.sidebar-toggler-icon.toggled{-webkit-transform:scaleX(-1);transform:scaleX(-1)}@media (max-width: 768px){.nav-side .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}}::ng-deep html[dir=rtl] .sidebar-toggler-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}::ng-deep html[dir=rtl] .sidebar-toggler-icon.toggled{-webkit-transform:scaleX(1);transform:scaleX(1)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: NgbTooltipModule }, { kind: "directive", type: i2.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }] }); }
47
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsNavbarComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
48
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.3", type: YsNavbarComponent, isStandalone: true, selector: "ys-navbar", inputs: { id: "id", theme: "theme", styleClass: "styleClass", brand: "brand", items: "items", endItems: "endItems", isSearch: "isSearch", searchLabel: "searchLabel", searchIconClass: "searchIconClass", searchPlaceholder: "searchPlaceholder", isSidebarToggler: "isSidebarToggler", isSidebarToggled: "isSidebarToggled", sidebarTogglerIconClass: "sidebarTogglerIconClass" }, outputs: { toggleSidebar: "toggleSidebar", search: "search" }, ngImport: i0, template: "<nav class=\"navbar navbar-expand-lg bg-primary\" [ngClass]=\"styleClass\" [attr.data-bs-theme]=\"theme\">\r\n <div class=\"container-fluid\">\r\n\r\n <button *ngIf=\"isSidebarToggler\" class=\"sidebar-toggler me-2\" type=\"button\" (click)=\"onToggleSidebar()\"\r\n aria-expanded=\"false\" aria-label=\"Toggle sidebar\" [ngClass]=\"{'toggled': isSidebarToggled}\">\r\n <i class=\"{{sidebarTogglerIconClass}} sidebar-toggler-icon p-1\"></i>\r\n </button>\r\n\r\n <a class=\"navbar-brand\" [ngClass]=\"{'me-auto': !items.length}\" href=\"{{brand?.href}}\">\r\n <img *ngIf=\"brand?.src\" src=\"{{brand?.src}}\" alt=\"{{brand?.alt}}\" width=\"{{brand?.width}}\"\r\n height=\"{{brand?.height}}\">\r\n {{brand?.label}}\r\n </a>\r\n\r\n <button *ngIf=\"items.length || endItems.length || search\" class=\"navbar-toggler ms-auto\" type=\"button\"\r\n data-bs-toggle=\"collapse\" [attr.data-bs-target]=\"'#' + id\" [attr.aria-controls]=\"id\" aria-expanded=\"false\"\r\n aria-label=\"Toggle navigation\">\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n\r\n <div class=\"collapse navbar-collapse\" [id]=\"id\">\r\n\r\n <ul *ngIf=\"items.length\" class=\"navbar-nav me-auto\" [ngClass]=\"{'mb-2': isSearch}\">\r\n <ng-container *ngFor=\"let navItem of items\">\r\n\r\n <li *ngIf=\"!isDropdown(navItem)\" class=\"nav-item\">\r\n <a class=\"nav-link\" [ngClass]=\"{'disabled': navItem.disabled}\"\r\n (click)=\"navItem.onClick && navItem.onClick($event)\" [attr.aria-disabled]=\"navItem.disabled\"\r\n [routerLink]=\"navItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n ngbTooltip=\"{{navItem.tooltipLabel}}\" aria-current=\"page\">\r\n\r\n <i *ngIf=\"navItem.iconClass\" class=\"pe-2 {{navItem.iconClass}}\"></i>\r\n\r\n {{navItem.label}}\r\n\r\n </a>\r\n </li>\r\n\r\n <li *ngIf=\"isDropdown(navItem)\" class=\"nav-item dropdown\">\r\n <a class=\"nav-link dropdown-toggle\" [ngClass]=\"{'disabled': navItem.disabled}\"\r\n [attr.aria-disabled]=\"navItem.disabled\" ngbTooltip=\"{{navItem.tooltipLabel}}\"\r\n data-bs-toggle=\"dropdown\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n\r\n <i *ngIf=\"navItem.iconClass\" class=\"pe-2 {{navItem.iconClass}}\"></i>\r\n\r\n <span *ngIf=\"navItem.label\">{{navItem.label}}</span>\r\n\r\n </a>\r\n <ul class=\"dropdown-menu px-2\">\r\n <li *ngFor=\"let navSubItem of navItem.items\">\r\n\r\n <a *ngIf=\"!navSubItem.isDivider\" class=\"dropdown-item rounded\"\r\n (click)=\"navSubItem.onClick && navSubItem.onClick($event)\"\r\n [ngClass]=\"{'disabled': navSubItem.disabled}\"\r\n [attr.aria-disabled]=\"navItem.disabled\" [routerLink]=\"navSubItem.routerLink\"\r\n [routerLinkActive]=\"['active']\" ngbTooltip=\"{{navSubItem.tooltipLabel}}\">\r\n\r\n <i *ngIf=\"navSubItem.iconClass\" class=\"me-2 {{navSubItem.iconClass}}\"></i>\r\n\r\n <span *ngIf=\"navSubItem.label\">{{navSubItem.label}}</span>\r\n\r\n </a>\r\n\r\n <hr *ngIf=\"navSubItem.isDivider\" class=\"dropdown-divider\">\r\n\r\n </li>\r\n </ul>\r\n </li>\r\n\r\n </ng-container>\r\n\r\n </ul>\r\n\r\n <ul *ngIf=\"endItems.length > 0\" class=\"navbar-nav flex-row ms-auto nav-end me-2\" [ngClass]=\"{'nav-end-me-0': search}\">\r\n <ng-container *ngFor=\"let endItem of endItems\">\r\n\r\n <li *ngIf=\"!isDropdown(endItem)\" class=\"nav-item\">\r\n <a class=\"nav-link\" [routerLink]=\"endItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n (click)=\"endItem.onClick && endItem.onClick($event)\" role=\"button\"\r\n ngbTooltip=\"{{endItem.tooltipLabel}}\">\r\n <i *ngIf=\"endItem.iconClass\" class=\"pe-2 {{endItem.iconClass}}\"></i>\r\n <span *ngIf=\"endItem.label\">{{endItem.label}}</span>\r\n </a>\r\n </li>\r\n\r\n <li *ngIf=\"isDropdown(endItem)\" class=\"nav-item dropdown\">\r\n <a class=\"nav-link dropdown-toggle\" ngbTooltip=\"{{endItem.tooltipLabel}}\"\r\n data-bs-toggle=\"dropdown\" data-bs-display=\"static\" aria-expanded=\"false\" role=\"button\"\r\n aria-haspopup=\"true\" aria-expanded=\"false\">\r\n <i *ngIf=\"endItem.iconClass\" class=\"pe-2 {{endItem.iconClass}}\"></i>\r\n <span *ngIf=\"endItem.label\">{{endItem.label}}</span>\r\n </a>\r\n <div class=\"dropdown-menu px-2 dropdown-menu-end\">\r\n <ng-container *ngFor=\"let endItemSubItem of endItem.items\">\r\n\r\n <a *ngIf=\"!endItemSubItem.isDivider\" class=\"dropdown-item text-center rounded\"\r\n [routerLink]=\"endItemSubItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n (click)=\"endItemSubItem.onClick && endItemSubItem.onClick($event)\" role=\"button\"\r\n ngbTooltip=\"{{endItemSubItem.tooltipLabel}}\">\r\n <i *ngIf=\"endItemSubItem.iconClass\" class=\"me-2 {{endItemSubItem.iconClass}}\"></i>\r\n <span *ngIf=\"endItemSubItem.label\">{{endItemSubItem.label}}</span>\r\n </a>\r\n\r\n <div *ngIf=\"endItemSubItem.isDivider\" class=\"dropdown-divider\"></div>\r\n\r\n </ng-container>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n\r\n <form *ngIf=\"isSearch\" class=\"search-form d-flex\" role=\"search\" [ngClass]=\"{'ms-auto': !endItems.length}\"\r\n [formGroup]=\"searchForm\" (submit)=\"submitSearch()\">\r\n <input name=\"searchValue\" id=\"searchValue\" formControlName=\"searchValue\" class=\"form-control me-2\" type=\"search\"\r\n placeholder=\"{{searchPlaceholder}}\" aria-label=\"Search\">\r\n <button name=\"submitBtn\" class=\"btn btn-outline-success\" type=\"submit\">\r\n <i *ngIf=\"searchIconClass\" class=\"{{searchIconClass}}\"></i>\r\n <span *ngIf=\"searchLabel\">{{searchLabel}}</span>\r\n </button>\r\n </form>\r\n\r\n <!-- <form *ngIf=\"search\" class=\"d-flex mt-2 mt-md-0\" [ngClass]=\"{'ms-auto': endItems.length <= 0}\"\r\n [formGroup]=\"searchForm\" (submit)=\"submitSearch()\">\r\n <input class=\"form-control me-sm-2\" type=\"search\" placeholder=\"{{searchPlaceholder}}\"\r\n formControlName=\"searchValue\">\r\n <button class=\"btn btn-secondary my-2 my-sm-0\" type=\"submit\">\r\n <i *ngIf=\"searchIconClass\" class=\"{{searchIconClass}}\"></i>\r\n <span *ngIf=\"searchLabel\">{{searchLabel}}</span>\r\n </button>\r\n </form> -->\r\n </div>\r\n </div>\r\n</nav>", styles: [".sidebar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}.sidebar-toggler.toggled .sidebar-toggler-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}@media (prefers-reduced-motion: reduce){.sidebar-toggler{transition:none}}.sidebar-toggler:hover{text-decoration:none}.sidebar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.sidebar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}::ng-deep html[dir=rtl] .sidebar-toggler{-webkit-transform:scaleX(-1);transform:scaleX(-1)}::ng-deep html[dir=rtl] .sidebar-toggler.toggled .sidebar-toggler-icon{-webkit-transform:scaleX(1);transform:scaleX(1)}::ng-deep html[dir=rtl] .nav-end .nav-link{padding-left:var(--bs-navbar-nav-link-padding-x);padding-right:0!important}::ng-deep html[dir=rtl] .nav-end.nav-end-me-0{margin-left:0!important}@media (max-width: 576px){.navbar-expand-sm .search-form{margin-top:.5rem!important}.navbar-expand-sm .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .nav-end.nav-end-me-0{margin-right:0!important}}@media (max-width: 768px){.navbar-expand-md .search-form{margin-top:.5rem!important}.navbar-expand-md .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .nav-end.nav-end-me-0{margin-right:0!important}}@media (max-width: 992px){.navbar-expand-lg .search-form{margin-top:.5rem!important}.navbar-expand-lg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .nav-end.nav-end-me-0{margin-right:0!important}}@media (max-width: 1200px){.navbar-expand-xlg .search-form{margin-top:.5rem!important}.navbar-expand-xlg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xlg .nav-end.nav-end-me-0{margin-right:0!important}}@media (max-width: 1400px){.navbar-expand-xxlg .search-form{margin-top:.5rem!important}.navbar-expand-xxlg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxlg .nav-end.nav-end-me-0{margin-right:0!important}}@media (min-width: 576px){.navbar-expand-sm .navbar-nav{margin-bottom:0!important}}@media (min-width: 768px){.navbar-expand-md .navbar-nav{margin-bottom:0!important}}@media (min-width: 992px){.navbar-expand-lg .navbar-nav{margin-bottom:0!important}}@media (min-width: 1200px){.navbar-expand-xlg .navbar-nav{margin-bottom:0!important}}@media (min-width: 1400px){.navbar-expand-xxlg .navbar-nav{margin-bottom:0!important}}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: NgbTooltipModule }, { kind: "directive", type: i2.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }] });
44
49
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsNavbarComponent, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: YsNavbarComponent, decorators: [{
46
51
  type: Component,
47
- args: [{ selector: 'ys-navbar', standalone: true, imports: [
52
+ args: [{ selector: 'ys-navbar', imports: [
48
53
  NgIf,
49
54
  NgFor,
50
55
  NgClass,
@@ -52,18 +57,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
52
57
  RouterLinkActive,
53
58
  ReactiveFormsModule,
54
59
  NgbTooltipModule
55
- ], template: "<nav class=\"navbar\" [ngClass]=\"styleClass\" [attr.data-bs-theme]=\"theme\">\r\n <div class=\"container-fluid\">\r\n <button *ngIf=\"sidebarToggler\" class=\"sidebar-toggler me-2\" type=\"button\" (click)=\"onToggleSidebar()\">\r\n <i class=\"{{sidebarTogglerIconClass}} sidebar-toggler-icon p-1\" [ngClass]=\"{'toggled': sidebarToggled}\"></i>\r\n </button>\r\n\r\n <a class=\"navbar-brand\" [ngClass]=\"{'me-auto': items.length <= 0}\" href=\"{{brand?.href}}\">\r\n <img *ngIf=\"brand?.src\" src=\"{{brand?.src}}\" alt=\"{{brand?.alt}}\" width=\"30\" height=\"24\">\r\n {{brand?.label}}\r\n </a>\r\n <button *ngIf=\"items.length > 0 || sideItems.length > 0 || search\" class=\"navbar-toggler ms-auto\" type=\"button\"\r\n data-bs-toggle=\"collapse\" [attr.data-bs-target]=\"'#' + id\" [attr.aria-controls]=\"id\" aria-expanded=\"false\"\r\n aria-label=\"Toggle navigation\">\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n\r\n <div class=\"collapse navbar-collapse\" [id]=\"id\">\r\n\r\n <ul *ngIf=\"items.length > 0\" class=\"navbar-nav me-auto\">\r\n <ng-container *ngFor=\"let navItem of items\">\r\n <li *ngIf=\"!isDropdown(navItem)\" class=\"nav-item\">\r\n <a class=\"nav-link\" [routerLink]=\"navItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n ngbTooltip=\"{{navItem.tooltipLabel}}\">\r\n <i *ngIf=\"navItem.iconClass\" class=\"pe-2 {{navItem.iconClass}}\"></i>\r\n {{navItem.label}}\r\n <span class=\"visually-hidden\">(current)</span>\r\n </a>\r\n </li>\r\n\r\n <li *ngIf=\"isDropdown(navItem)\" class=\"nav-item dropdown\">\r\n <a class=\"nav-link dropdown-toggle\" ngbTooltip=\"{{navItem.tooltipLabel}}\" data-bs-toggle=\"dropdown\"\r\n role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n <i *ngIf=\"navItem.iconClass\" class=\"pe-2 {{navItem.iconClass}}\"></i>\r\n <span *ngIf=\"navItem.label\">{{navItem.label}}</span>\r\n </a>\r\n <div class=\"dropdown-menu px-2\">\r\n <ng-container *ngFor=\"let navSubItem of navItem.items\">\r\n\r\n <a *ngIf=\"!navSubItem.isDivider\" class=\"dropdown-item rounded\" [routerLink]=\"navSubItem.routerLink\"\r\n [routerLinkActive]=\"['active']\" ngbTooltip=\"{{navSubItem.tooltipLabel}}\">\r\n <i *ngIf=\"navSubItem.iconClass\" class=\"me-2 {{navSubItem.iconClass}}\"></i>\r\n <span *ngIf=\"navSubItem.label\">{{navSubItem.label}}</span>\r\n </a>\r\n\r\n <div *ngIf=\"navSubItem.isDivider\" class=\"dropdown-divider\"></div>\r\n\r\n </ng-container>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n\r\n <ul *ngIf=\"sideItems.length > 0\" class=\"navbar-nav flex-row ms-auto nav-side\" [ngClass]=\"{'me-md-2': search}\">\r\n <ng-container *ngFor=\"let sideItem of sideItems\">\r\n\r\n <li *ngIf=\"!isDropdown(sideItem)\" class=\"nav-item\">\r\n <a class=\"nav-link\" [routerLink]=\"sideItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n (click)=\"sideItem.onClick && sideItem.onClick($event)\" role=\"button\"\r\n ngbTooltip=\"{{sideItem.tooltipLabel}}\">\r\n <i *ngIf=\"sideItem.iconClass\" class=\"pe-2 {{sideItem.iconClass}}\"></i>\r\n <span *ngIf=\"sideItem.label\">{{sideItem.label}}</span>\r\n </a>\r\n </li>\r\n\r\n <li *ngIf=\"isDropdown(sideItem)\" class=\"nav-item dropdown\">\r\n <a class=\"nav-link dropdown-toggle\" ngbTooltip=\"{{sideItem.tooltipLabel}}\" data-bs-toggle=\"dropdown\"\r\n data-bs-display=\"static\" aria-expanded=\"false\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n <i *ngIf=\"sideItem.iconClass\" class=\"pe-2 {{sideItem.iconClass}}\"></i>\r\n <span *ngIf=\"sideItem.label\">{{sideItem.label}}</span>\r\n </a>\r\n <div class=\"dropdown-menu px-2 dropdown-menu-end\">\r\n <ng-container *ngFor=\"let sideItemSubItem of sideItem.items\">\r\n\r\n <a *ngIf=\"!sideItemSubItem.isDivider\" class=\"dropdown-item text-center rounded\"\r\n [routerLink]=\"sideItemSubItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n (click)=\"sideItemSubItem.onClick && sideItemSubItem.onClick($event)\" role=\"button\"\r\n ngbTooltip=\"{{sideItemSubItem.tooltipLabel}}\">\r\n <i *ngIf=\"sideItemSubItem.iconClass\" class=\"me-2 {{sideItemSubItem.iconClass}}\"></i>\r\n <span *ngIf=\"sideItemSubItem.label\">{{sideItemSubItem.label}}</span>\r\n </a>\r\n\r\n <div *ngIf=\"sideItemSubItem.isDivider\" class=\"dropdown-divider\"></div>\r\n\r\n </ng-container>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <form *ngIf=\"search\" class=\"d-flex mt-2 mt-md-0\" [ngClass]=\"{'ms-auto': sideItems.length <= 0}\"\r\n [formGroup]=\"searchForm\" (submit)=\"submitSearch()\">\r\n <input class=\"form-control me-sm-2\" type=\"search\" placeholder=\"{{searchPlaceholder}}\"\r\n formControlName=\"searchValue\">\r\n <button class=\"btn btn-secondary my-2 my-sm-0\" type=\"submit\">\r\n <i *ngIf=\"searchIconClass\" class=\"{{searchIconClass}}\"></i>\r\n <span *ngIf=\"searchLabel\">{{searchLabel}}</span>\r\n </button>\r\n </form>\r\n </div>\r\n </div>\r\n</nav>", styles: [".sidebar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}.sidebar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.sidebar-toggler-icon.toggled{-webkit-transform:scaleX(-1);transform:scaleX(-1)}@media (max-width: 768px){.nav-side .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}}::ng-deep html[dir=rtl] .sidebar-toggler-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}::ng-deep html[dir=rtl] .sidebar-toggler-icon.toggled{-webkit-transform:scaleX(1);transform:scaleX(1)}\n"] }]
60
+ ], template: "<nav class=\"navbar navbar-expand-lg bg-primary\" [ngClass]=\"styleClass\" [attr.data-bs-theme]=\"theme\">\r\n <div class=\"container-fluid\">\r\n\r\n <button *ngIf=\"isSidebarToggler\" class=\"sidebar-toggler me-2\" type=\"button\" (click)=\"onToggleSidebar()\"\r\n aria-expanded=\"false\" aria-label=\"Toggle sidebar\" [ngClass]=\"{'toggled': isSidebarToggled}\">\r\n <i class=\"{{sidebarTogglerIconClass}} sidebar-toggler-icon p-1\"></i>\r\n </button>\r\n\r\n <a class=\"navbar-brand\" [ngClass]=\"{'me-auto': !items.length}\" href=\"{{brand?.href}}\">\r\n <img *ngIf=\"brand?.src\" src=\"{{brand?.src}}\" alt=\"{{brand?.alt}}\" width=\"{{brand?.width}}\"\r\n height=\"{{brand?.height}}\">\r\n {{brand?.label}}\r\n </a>\r\n\r\n <button *ngIf=\"items.length || endItems.length || search\" class=\"navbar-toggler ms-auto\" type=\"button\"\r\n data-bs-toggle=\"collapse\" [attr.data-bs-target]=\"'#' + id\" [attr.aria-controls]=\"id\" aria-expanded=\"false\"\r\n aria-label=\"Toggle navigation\">\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n\r\n <div class=\"collapse navbar-collapse\" [id]=\"id\">\r\n\r\n <ul *ngIf=\"items.length\" class=\"navbar-nav me-auto\" [ngClass]=\"{'mb-2': isSearch}\">\r\n <ng-container *ngFor=\"let navItem of items\">\r\n\r\n <li *ngIf=\"!isDropdown(navItem)\" class=\"nav-item\">\r\n <a class=\"nav-link\" [ngClass]=\"{'disabled': navItem.disabled}\"\r\n (click)=\"navItem.onClick && navItem.onClick($event)\" [attr.aria-disabled]=\"navItem.disabled\"\r\n [routerLink]=\"navItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n ngbTooltip=\"{{navItem.tooltipLabel}}\" aria-current=\"page\">\r\n\r\n <i *ngIf=\"navItem.iconClass\" class=\"pe-2 {{navItem.iconClass}}\"></i>\r\n\r\n {{navItem.label}}\r\n\r\n </a>\r\n </li>\r\n\r\n <li *ngIf=\"isDropdown(navItem)\" class=\"nav-item dropdown\">\r\n <a class=\"nav-link dropdown-toggle\" [ngClass]=\"{'disabled': navItem.disabled}\"\r\n [attr.aria-disabled]=\"navItem.disabled\" ngbTooltip=\"{{navItem.tooltipLabel}}\"\r\n data-bs-toggle=\"dropdown\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n\r\n <i *ngIf=\"navItem.iconClass\" class=\"pe-2 {{navItem.iconClass}}\"></i>\r\n\r\n <span *ngIf=\"navItem.label\">{{navItem.label}}</span>\r\n\r\n </a>\r\n <ul class=\"dropdown-menu px-2\">\r\n <li *ngFor=\"let navSubItem of navItem.items\">\r\n\r\n <a *ngIf=\"!navSubItem.isDivider\" class=\"dropdown-item rounded\"\r\n (click)=\"navSubItem.onClick && navSubItem.onClick($event)\"\r\n [ngClass]=\"{'disabled': navSubItem.disabled}\"\r\n [attr.aria-disabled]=\"navItem.disabled\" [routerLink]=\"navSubItem.routerLink\"\r\n [routerLinkActive]=\"['active']\" ngbTooltip=\"{{navSubItem.tooltipLabel}}\">\r\n\r\n <i *ngIf=\"navSubItem.iconClass\" class=\"me-2 {{navSubItem.iconClass}}\"></i>\r\n\r\n <span *ngIf=\"navSubItem.label\">{{navSubItem.label}}</span>\r\n\r\n </a>\r\n\r\n <hr *ngIf=\"navSubItem.isDivider\" class=\"dropdown-divider\">\r\n\r\n </li>\r\n </ul>\r\n </li>\r\n\r\n </ng-container>\r\n\r\n </ul>\r\n\r\n <ul *ngIf=\"endItems.length > 0\" class=\"navbar-nav flex-row ms-auto nav-end me-2\" [ngClass]=\"{'nav-end-me-0': search}\">\r\n <ng-container *ngFor=\"let endItem of endItems\">\r\n\r\n <li *ngIf=\"!isDropdown(endItem)\" class=\"nav-item\">\r\n <a class=\"nav-link\" [routerLink]=\"endItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n (click)=\"endItem.onClick && endItem.onClick($event)\" role=\"button\"\r\n ngbTooltip=\"{{endItem.tooltipLabel}}\">\r\n <i *ngIf=\"endItem.iconClass\" class=\"pe-2 {{endItem.iconClass}}\"></i>\r\n <span *ngIf=\"endItem.label\">{{endItem.label}}</span>\r\n </a>\r\n </li>\r\n\r\n <li *ngIf=\"isDropdown(endItem)\" class=\"nav-item dropdown\">\r\n <a class=\"nav-link dropdown-toggle\" ngbTooltip=\"{{endItem.tooltipLabel}}\"\r\n data-bs-toggle=\"dropdown\" data-bs-display=\"static\" aria-expanded=\"false\" role=\"button\"\r\n aria-haspopup=\"true\" aria-expanded=\"false\">\r\n <i *ngIf=\"endItem.iconClass\" class=\"pe-2 {{endItem.iconClass}}\"></i>\r\n <span *ngIf=\"endItem.label\">{{endItem.label}}</span>\r\n </a>\r\n <div class=\"dropdown-menu px-2 dropdown-menu-end\">\r\n <ng-container *ngFor=\"let endItemSubItem of endItem.items\">\r\n\r\n <a *ngIf=\"!endItemSubItem.isDivider\" class=\"dropdown-item text-center rounded\"\r\n [routerLink]=\"endItemSubItem.routerLink\" [routerLinkActive]=\"['active']\"\r\n (click)=\"endItemSubItem.onClick && endItemSubItem.onClick($event)\" role=\"button\"\r\n ngbTooltip=\"{{endItemSubItem.tooltipLabel}}\">\r\n <i *ngIf=\"endItemSubItem.iconClass\" class=\"me-2 {{endItemSubItem.iconClass}}\"></i>\r\n <span *ngIf=\"endItemSubItem.label\">{{endItemSubItem.label}}</span>\r\n </a>\r\n\r\n <div *ngIf=\"endItemSubItem.isDivider\" class=\"dropdown-divider\"></div>\r\n\r\n </ng-container>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n\r\n <form *ngIf=\"isSearch\" class=\"search-form d-flex\" role=\"search\" [ngClass]=\"{'ms-auto': !endItems.length}\"\r\n [formGroup]=\"searchForm\" (submit)=\"submitSearch()\">\r\n <input name=\"searchValue\" id=\"searchValue\" formControlName=\"searchValue\" class=\"form-control me-2\" type=\"search\"\r\n placeholder=\"{{searchPlaceholder}}\" aria-label=\"Search\">\r\n <button name=\"submitBtn\" class=\"btn btn-outline-success\" type=\"submit\">\r\n <i *ngIf=\"searchIconClass\" class=\"{{searchIconClass}}\"></i>\r\n <span *ngIf=\"searchLabel\">{{searchLabel}}</span>\r\n </button>\r\n </form>\r\n\r\n <!-- <form *ngIf=\"search\" class=\"d-flex mt-2 mt-md-0\" [ngClass]=\"{'ms-auto': endItems.length <= 0}\"\r\n [formGroup]=\"searchForm\" (submit)=\"submitSearch()\">\r\n <input class=\"form-control me-sm-2\" type=\"search\" placeholder=\"{{searchPlaceholder}}\"\r\n formControlName=\"searchValue\">\r\n <button class=\"btn btn-secondary my-2 my-sm-0\" type=\"submit\">\r\n <i *ngIf=\"searchIconClass\" class=\"{{searchIconClass}}\"></i>\r\n <span *ngIf=\"searchLabel\">{{searchLabel}}</span>\r\n </button>\r\n </form> -->\r\n </div>\r\n </div>\r\n</nav>", styles: [".sidebar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}.sidebar-toggler.toggled .sidebar-toggler-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}@media (prefers-reduced-motion: reduce){.sidebar-toggler{transition:none}}.sidebar-toggler:hover{text-decoration:none}.sidebar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.sidebar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}::ng-deep html[dir=rtl] .sidebar-toggler{-webkit-transform:scaleX(-1);transform:scaleX(-1)}::ng-deep html[dir=rtl] .sidebar-toggler.toggled .sidebar-toggler-icon{-webkit-transform:scaleX(1);transform:scaleX(1)}::ng-deep html[dir=rtl] .nav-end .nav-link{padding-left:var(--bs-navbar-nav-link-padding-x);padding-right:0!important}::ng-deep html[dir=rtl] .nav-end.nav-end-me-0{margin-left:0!important}@media (max-width: 576px){.navbar-expand-sm .search-form{margin-top:.5rem!important}.navbar-expand-sm .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .nav-end.nav-end-me-0{margin-right:0!important}}@media (max-width: 768px){.navbar-expand-md .search-form{margin-top:.5rem!important}.navbar-expand-md .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .nav-end.nav-end-me-0{margin-right:0!important}}@media (max-width: 992px){.navbar-expand-lg .search-form{margin-top:.5rem!important}.navbar-expand-lg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .nav-end.nav-end-me-0{margin-right:0!important}}@media (max-width: 1200px){.navbar-expand-xlg .search-form{margin-top:.5rem!important}.navbar-expand-xlg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xlg .nav-end.nav-end-me-0{margin-right:0!important}}@media (max-width: 1400px){.navbar-expand-xxlg .search-form{margin-top:.5rem!important}.navbar-expand-xxlg .nav-end .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxlg .nav-end.nav-end-me-0{margin-right:0!important}}@media (min-width: 576px){.navbar-expand-sm .navbar-nav{margin-bottom:0!important}}@media (min-width: 768px){.navbar-expand-md .navbar-nav{margin-bottom:0!important}}@media (min-width: 992px){.navbar-expand-lg .navbar-nav{margin-bottom:0!important}}@media (min-width: 1200px){.navbar-expand-xlg .navbar-nav{margin-bottom:0!important}}@media (min-width: 1400px){.navbar-expand-xxlg .navbar-nav{margin-bottom:0!important}}\n"] }]
56
61
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { id: [{
57
62
  type: Input
58
63
  }], theme: [{
59
64
  type: Input
60
65
  }], styleClass: [{
61
66
  type: Input
67
+ }], brand: [{
68
+ type: Input
62
69
  }], items: [{
63
70
  type: Input
64
- }], sideItems: [{
71
+ }], endItems: [{
65
72
  type: Input
66
- }], search: [{
73
+ }], isSearch: [{
67
74
  type: Input
68
75
  }], searchLabel: [{
69
76
  type: Input
@@ -71,17 +78,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
71
78
  type: Input
72
79
  }], searchPlaceholder: [{
73
80
  type: Input
74
- }], brand: [{
75
- type: Input
76
- }], sidebarToggler: [{
81
+ }], isSidebarToggler: [{
77
82
  type: Input
78
- }], sidebarToggled: [{
83
+ }], isSidebarToggled: [{
79
84
  type: Input
80
85
  }], sidebarTogglerIconClass: [{
81
86
  type: Input
82
87
  }], toggleSidebar: [{
83
88
  type: Output
84
- }], onSearch: [{
89
+ }], search: [{
85
90
  type: Output
86
91
  }] } });
87
92