@enigmatry/entry-components 1.15.1-preview.3 → 1.15.1-preview.31

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 (187) hide show
  1. package/README.md +2 -1
  2. package/assets/fonts/Montserrat/Montserrat-bold.eot +0 -0
  3. package/assets/fonts/Montserrat/Montserrat-bold.ttf +0 -0
  4. package/assets/fonts/Montserrat/Montserrat-bold.woff +0 -0
  5. package/assets/fonts/Montserrat/Montserrat-bold.woff2 +0 -0
  6. package/assets/fonts/OpenSans/OpenSans-bold.eot +0 -0
  7. package/assets/fonts/OpenSans/OpenSans-bold.ttf +0 -0
  8. package/assets/fonts/OpenSans/OpenSans-bold.woff +0 -0
  9. package/assets/fonts/OpenSans/OpenSans-bold.woff2 +0 -0
  10. package/assets/fonts/OpenSans/OpenSans-normal.eot +0 -0
  11. package/assets/fonts/OpenSans/OpenSans-normal.ttf +0 -0
  12. package/assets/fonts/OpenSans/OpenSans-normal.woff +0 -0
  13. package/assets/fonts/OpenSans/OpenSans-normal.woff2 +0 -0
  14. package/assets/fonts/Roboto/Roboto-bold.woff2 +0 -0
  15. package/assets/fonts/Roboto/Roboto-normal.woff2 +0 -0
  16. package/button/README.md +47 -0
  17. package/button/entry-button-config.d.ts +26 -0
  18. package/button/entry-button.directive.d.ts +18 -0
  19. package/button/entry-button.module.d.ts +9 -0
  20. package/{header → button}/index.d.ts +1 -1
  21. package/button/public-api.d.ts +3 -0
  22. package/dialog/README.md +2 -2
  23. package/dialog/entry-dialog-buttons-alignment.type.d.ts +1 -1
  24. package/dialog/entry-dialog-config.model.d.ts +1 -1
  25. package/dialog/entry-dialog.module.d.ts +4 -1
  26. package/esm2020/{header/enigmatry-entry-components-header.mjs → button/enigmatry-entry-components-button.mjs} +1 -1
  27. package/esm2020/button/entry-button-config.mjs +22 -0
  28. package/esm2020/button/entry-button.directive.mjs +56 -0
  29. package/esm2020/button/entry-button.module.mjs +28 -0
  30. package/esm2020/button/public-api.mjs +4 -0
  31. package/esm2020/dialog/dialogs/entry-dialog.component.mjs +8 -5
  32. package/esm2020/dialog/entry-dialog-buttons-alignment.type.mjs +1 -1
  33. package/esm2020/dialog/entry-dialog-config.model.mjs +3 -3
  34. package/esm2020/dialog/entry-dialog.module.mjs +16 -4
  35. package/esm2020/file-input/enigmatry-entry-components-file-input.mjs +5 -0
  36. package/esm2020/file-input/entry-file-input.component.mjs +197 -0
  37. package/esm2020/file-input/entry-file-input.module.mjs +40 -0
  38. package/esm2020/file-input/public-api.mjs +3 -0
  39. package/esm2020/permissions/enigmatry-entry-components-permissions.mjs +5 -0
  40. package/esm2020/permissions/permission-type.mjs +2 -0
  41. package/esm2020/permissions/permission.directive.mjs +35 -0
  42. package/esm2020/permissions/permission.guard.mjs +14 -0
  43. package/esm2020/permissions/permission.module.mjs +29 -0
  44. package/esm2020/permissions/permission.pipe.mjs +20 -0
  45. package/esm2020/permissions/permission.service.mjs +3 -0
  46. package/esm2020/permissions/public-api.mjs +6 -0
  47. package/esm2020/public-api.mjs +4 -3
  48. package/esm2020/search-filter/entry-search-filter.component.mjs +8 -6
  49. package/esm2020/search-filter/entry-search-filter.module.mjs +12 -4
  50. package/esm2020/search-filter/search-filter-input/search-filter-input.component.mjs +9 -4
  51. package/esm2020/validation/entry-form-errors.component.mjs +7 -3
  52. package/fesm2015/enigmatry-entry-components-button.mjs +110 -0
  53. package/fesm2015/enigmatry-entry-components-button.mjs.map +1 -0
  54. package/fesm2015/enigmatry-entry-components-dialog.mjs +22 -7
  55. package/fesm2015/enigmatry-entry-components-dialog.mjs.map +1 -1
  56. package/fesm2015/enigmatry-entry-components-file-input.mjs +237 -0
  57. package/fesm2015/enigmatry-entry-components-file-input.mjs.map +1 -0
  58. package/fesm2015/enigmatry-entry-components-permissions.mjs +98 -0
  59. package/fesm2015/enigmatry-entry-components-permissions.mjs.map +1 -0
  60. package/fesm2015/enigmatry-entry-components-search-filter.mjs +24 -9
  61. package/fesm2015/enigmatry-entry-components-search-filter.mjs.map +1 -1
  62. package/fesm2015/enigmatry-entry-components-validation.mjs +6 -2
  63. package/fesm2015/enigmatry-entry-components-validation.mjs.map +1 -1
  64. package/fesm2015/enigmatry-entry-components.mjs +3 -2
  65. package/fesm2015/enigmatry-entry-components.mjs.map +1 -1
  66. package/fesm2020/enigmatry-entry-components-button.mjs +107 -0
  67. package/fesm2020/enigmatry-entry-components-button.mjs.map +1 -0
  68. package/fesm2020/enigmatry-entry-components-dialog.mjs +22 -7
  69. package/fesm2020/enigmatry-entry-components-dialog.mjs.map +1 -1
  70. package/fesm2020/enigmatry-entry-components-file-input.mjs +240 -0
  71. package/fesm2020/enigmatry-entry-components-file-input.mjs.map +1 -0
  72. package/fesm2020/enigmatry-entry-components-permissions.mjs +97 -0
  73. package/fesm2020/enigmatry-entry-components-permissions.mjs.map +1 -0
  74. package/fesm2020/enigmatry-entry-components-search-filter.mjs +24 -9
  75. package/fesm2020/enigmatry-entry-components-search-filter.mjs.map +1 -1
  76. package/fesm2020/enigmatry-entry-components-validation.mjs +6 -2
  77. package/fesm2020/enigmatry-entry-components-validation.mjs.map +1 -1
  78. package/fesm2020/enigmatry-entry-components.mjs +3 -2
  79. package/fesm2020/enigmatry-entry-components.mjs.map +1 -1
  80. package/file-input/README.md +71 -0
  81. package/file-input/entry-file-input.component.d.ts +74 -0
  82. package/file-input/entry-file-input.module.d.ts +12 -0
  83. package/{toolbar → file-input}/index.d.ts +1 -1
  84. package/file-input/public-api.d.ts +2 -0
  85. package/package.json +24 -16
  86. package/permissions/README.md +68 -0
  87. package/permissions/index.d.ts +5 -0
  88. package/permissions/permission-type.d.ts +3 -0
  89. package/permissions/permission.directive.d.ts +11 -0
  90. package/permissions/permission.guard.d.ts +2 -0
  91. package/permissions/permission.module.d.ts +9 -0
  92. package/permissions/permission.pipe.d.ts +11 -0
  93. package/permissions/permission.service.d.ts +4 -0
  94. package/permissions/public-api.d.ts +5 -0
  95. package/public-api.d.ts +3 -2
  96. package/search-filter/entry-search-filter.module.d.ts +4 -2
  97. package/search-filter/search-filter-input/search-filter-input.component.d.ts +4 -2
  98. package/styles/_generator.scss +20 -0
  99. package/styles/modules/_default-theme.scss +63 -0
  100. package/styles/modules/components/buttons/_generator.scss +8 -0
  101. package/styles/modules/components/dialogs/_generator.scss +16 -0
  102. package/styles/modules/components/forms/_generator.scss +15 -0
  103. package/styles/modules/components/search-filter/_generator.scss +15 -0
  104. package/styles/modules/components/tables/_cells.scss +19 -0
  105. package/styles/modules/components/tables/_generator.scss +7 -0
  106. package/styles/modules/components/tables/_no-result.scss +10 -0
  107. package/styles/modules/components/tables/_rows.scss +23 -0
  108. package/styles/modules/components/tables/_sorting.scss +11 -0
  109. package/styles/modules/components/tables/_table-body.scss +11 -0
  110. package/styles/modules/typography/_fonts.scss +46 -68
  111. package/styles/modules/vendors/angular-material/_generator.scss +46 -0
  112. package/styles/modules/vendors/angular-material/_palette-generator.scss +32 -0
  113. package/styles/modules/vendors/angular-material/_typography-generator.scss +101 -0
  114. package/styles/partials/core/components/_index.scss +4 -0
  115. package/styles/partials/core/components/dialogs/_general.scss +23 -0
  116. package/styles/partials/core/components/forms/_general.scss +28 -0
  117. package/styles/partials/core/components/search-filter/_general.scss +9 -0
  118. package/styles/partials/core/components/tables/_general.scss +17 -0
  119. package/styles/partials/generator-test.scss +29 -0
  120. package/styles/partials/theming.scss +1 -0
  121. package/dialog/styles/modules/_generator.scss +0 -11
  122. package/dialog/styles/modules/components/dialogs/_general.scss +0 -11
  123. package/dialog/styles/modules/components/dialogs/footers/_general.scss +0 -26
  124. package/dialog/styles/modules/components/dialogs/headers/_general.scss +0 -16
  125. package/dialog/styles/modules/theming/_default-theming.scss +0 -29
  126. package/dialog/styles/partials/core/_index.scss +0 -3
  127. package/dialog/styles/partials/core/components/_index.scss +0 -1
  128. package/dialog/styles/partials/core/components/dialogs/_general.scss +0 -78
  129. package/dialog/styles/partials/core/components/dialogs/_index.scss +0 -1
  130. package/dialog/styles/partials/core/elements/_general.scss +0 -10
  131. package/dialog/styles/partials/core/elements/_index.scss +0 -1
  132. package/dialog/styles/partials/core/layouts/_alignments.scss +0 -13
  133. package/dialog/styles/partials/core/layouts/_index.scss +0 -1
  134. package/dialog/styles/partials/main.scss +0 -1
  135. package/esm2020/header/entry-header.component.mjs +0 -13
  136. package/esm2020/header/entry-header.module.mjs +0 -24
  137. package/esm2020/header/public-api.mjs +0 -3
  138. package/esm2020/toolbar/enigmatry-entry-components-toolbar.mjs +0 -5
  139. package/esm2020/toolbar/entry-toolbar.component.mjs +0 -43
  140. package/esm2020/toolbar/entry-toolbar.module.mjs +0 -24
  141. package/esm2020/toolbar/public-api.mjs +0 -3
  142. package/fesm2015/enigmatry-entry-components-header.mjs +0 -41
  143. package/fesm2015/enigmatry-entry-components-header.mjs.map +0 -1
  144. package/fesm2015/enigmatry-entry-components-toolbar.mjs +0 -71
  145. package/fesm2015/enigmatry-entry-components-toolbar.mjs.map +0 -1
  146. package/fesm2020/enigmatry-entry-components-header.mjs +0 -41
  147. package/fesm2020/enigmatry-entry-components-header.mjs.map +0 -1
  148. package/fesm2020/enigmatry-entry-components-toolbar.mjs +0 -71
  149. package/fesm2020/enigmatry-entry-components-toolbar.mjs.map +0 -1
  150. package/header/README.md +0 -41
  151. package/header/entry-header.component.d.ts +0 -6
  152. package/header/entry-header.module.d.ts +0 -8
  153. package/header/public-api.d.ts +0 -2
  154. package/header/styles/modules/_generator.scss +0 -13
  155. package/header/styles/modules/components/buttons/_general.scss +0 -26
  156. package/header/styles/modules/components/headers/_general.scss +0 -13
  157. package/header/styles/modules/theming/_default-theming.scss +0 -21
  158. package/header/styles/partials/core/_index.scss +0 -3
  159. package/header/styles/partials/core/components/_index.scss +0 -2
  160. package/header/styles/partials/core/components/buttons/_general.scss +0 -42
  161. package/header/styles/partials/core/components/buttons/_index.scss +0 -1
  162. package/header/styles/partials/core/components/headers/_general.scss +0 -9
  163. package/header/styles/partials/core/components/headers/_index.scss +0 -1
  164. package/header/styles/partials/core/elements/_index.scss +0 -1
  165. package/header/styles/partials/core/elements/headings.scss +0 -3
  166. package/header/styles/partials/core/layouts/_alignment.scss +0 -6
  167. package/header/styles/partials/core/layouts/_index.scss +0 -1
  168. package/header/styles/partials/main.scss +0 -1
  169. package/styles/_generate.scss +0 -15
  170. package/styles/modules/_breakpoints.scss +0 -37
  171. package/styles/modules/_generate.scss +0 -5
  172. package/styles/modules/_variables.scss +0 -22
  173. package/styles/modules/states/_hover.scss +0 -27
  174. package/styles/modules/theming/_default-theming.scss +0 -9
  175. package/styles/modules/typography/_generate.scss +0 -7
  176. package/toolbar/README.md +0 -39
  177. package/toolbar/entry-toolbar.component.d.ts +0 -28
  178. package/toolbar/entry-toolbar.module.d.ts +0 -8
  179. package/toolbar/public-api.d.ts +0 -2
  180. package/toolbar/styles/modules/_generate.scss +0 -10
  181. package/toolbar/styles/modules/components/toolbar/_general.scss +0 -34
  182. package/toolbar/styles/modules/theming/_default-theming.scss +0 -8
  183. package/toolbar/styles/partials/core/_index.scss +0 -1
  184. package/toolbar/styles/partials/core/components/_index.scss +0 -1
  185. package/toolbar/styles/partials/core/components/toolbar/_general.scss +0 -100
  186. package/toolbar/styles/partials/core/components/toolbar/_index.scss +0 -1
  187. package/toolbar/styles/partials/main.scss +0 -1
@@ -12,14 +12,19 @@ import * as i7 from "../search-filter-config.model";
12
12
  export class EntrySearchFilterInputComponent {
13
13
  constructor(config) {
14
14
  this.config = config;
15
- this.controlType = ControlType;
15
+ }
16
+ get textSearchFilter() {
17
+ return this.searchFilter.controlType === ControlType.text && this.searchFilter;
18
+ }
19
+ get selectSearchFilter() {
20
+ return this.searchFilter.controlType === ControlType.select && this.searchFilter;
16
21
  }
17
22
  }
18
23
  EntrySearchFilterInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntrySearchFilterInputComponent, deps: [{ token: ENTRY_SEARCH_FILTER_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
19
- EntrySearchFilterInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EntrySearchFilterInputComponent, selector: "entry-search-filter-input", inputs: { searchFilter: "searchFilter", form: "form" }, ngImport: i0, template: "<mat-form-field [formGroup]=\"form\">\n <mat-label [attr.for]=\"searchFilter.key\">{{searchFilter.label}}</mat-label>\n\n <div [ngSwitch]=\"searchFilter.controlType\">\n\n <input *ngSwitchCase=\"controlType.text\"\n [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\"\n [type]=\"searchFilter.type\" matInput [placeholder]=\"searchFilter.placeholder\" [maxlength]=\"searchFilter.maxLength\">\n\n <mat-select *ngSwitchCase=\"controlType.select\"\n [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\" [multiple]=\"searchFilter.multiSelect\">\n <mat-option *ngIf=\"!searchFilter.multiSelect\" [value]=\"undefined\">\n {{config.noneSelectedOptionText}}\n </mat-option>\n <div *ngIf=\"searchFilter.options$ !== undefined; else fixedSelectValues\">\n <mat-option *ngFor=\"let option of searchFilter.options$ | async\" [value]=\"option.key\">{{option.label}}</mat-option>\n </div>\n <ng-template #fixedSelectValues>\n <mat-option *ngFor=\"let option of searchFilter.options\" [value]=\"option.key\">{{option.label}}</mat-option>\n </ng-template>\n </mat-select>\n\n </div>\n</mat-form-field>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24
+ EntrySearchFilterInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EntrySearchFilterInputComponent, selector: "entry-search-filter-input", inputs: { searchFilter: "searchFilter", form: "form" }, ngImport: i0, template: "<mat-form-field [formGroup]=\"form\" subscriptSizing=\"dynamic\">\n <mat-label [attr.for]=\"searchFilter.key\">{{searchFilter.label}}</mat-label>\n\n <ng-container *ngIf=\"textSearchFilter as searchFilter\">\n <input [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\" [type]=\"searchFilter.type\" matInput\n [placeholder]=\"searchFilter.placeholder\" [maxlength]=\"searchFilter.maxLength\">\n </ng-container>\n\n <ng-container *ngIf=\"selectSearchFilter as searchFilter\">\n <mat-select [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\" [multiple]=\"searchFilter.multiSelect\">\n <mat-option *ngIf=\"!searchFilter.multiSelect\" [value]=\"undefined\">\n {{config.noneSelectedOptionText}}\n </mat-option>\n <div *ngIf=\"searchFilter.options$ !== undefined; else fixedSelectValues\">\n <mat-option *ngFor=\"let option of searchFilter.options$ | async\"\n [value]=\"option.key\">{{option.label}}</mat-option>\n </div>\n <ng-template #fixedSelectValues>\n <mat-option *ngFor=\"let option of searchFilter.options\" [value]=\"option.key\">{{option.label}}</mat-option>\n </ng-template>\n </mat-select>\n </ng-container>\n\n</mat-form-field>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
20
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntrySearchFilterInputComponent, decorators: [{
21
26
  type: Component,
22
- args: [{ selector: 'entry-search-filter-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field [formGroup]=\"form\">\n <mat-label [attr.for]=\"searchFilter.key\">{{searchFilter.label}}</mat-label>\n\n <div [ngSwitch]=\"searchFilter.controlType\">\n\n <input *ngSwitchCase=\"controlType.text\"\n [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\"\n [type]=\"searchFilter.type\" matInput [placeholder]=\"searchFilter.placeholder\" [maxlength]=\"searchFilter.maxLength\">\n\n <mat-select *ngSwitchCase=\"controlType.select\"\n [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\" [multiple]=\"searchFilter.multiSelect\">\n <mat-option *ngIf=\"!searchFilter.multiSelect\" [value]=\"undefined\">\n {{config.noneSelectedOptionText}}\n </mat-option>\n <div *ngIf=\"searchFilter.options$ !== undefined; else fixedSelectValues\">\n <mat-option *ngFor=\"let option of searchFilter.options$ | async\" [value]=\"option.key\">{{option.label}}</mat-option>\n </div>\n <ng-template #fixedSelectValues>\n <mat-option *ngFor=\"let option of searchFilter.options\" [value]=\"option.key\">{{option.label}}</mat-option>\n </ng-template>\n </mat-select>\n\n </div>\n</mat-form-field>" }]
27
+ args: [{ selector: 'entry-search-filter-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field [formGroup]=\"form\" subscriptSizing=\"dynamic\">\n <mat-label [attr.for]=\"searchFilter.key\">{{searchFilter.label}}</mat-label>\n\n <ng-container *ngIf=\"textSearchFilter as searchFilter\">\n <input [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\" [type]=\"searchFilter.type\" matInput\n [placeholder]=\"searchFilter.placeholder\" [maxlength]=\"searchFilter.maxLength\">\n </ng-container>\n\n <ng-container *ngIf=\"selectSearchFilter as searchFilter\">\n <mat-select [formControlName]=\"searchFilter.key\" [id]=\"searchFilter.key\" [multiple]=\"searchFilter.multiSelect\">\n <mat-option *ngIf=\"!searchFilter.multiSelect\" [value]=\"undefined\">\n {{config.noneSelectedOptionText}}\n </mat-option>\n <div *ngIf=\"searchFilter.options$ !== undefined; else fixedSelectValues\">\n <mat-option *ngFor=\"let option of searchFilter.options$ | async\"\n [value]=\"option.key\">{{option.label}}</mat-option>\n </div>\n <ng-template #fixedSelectValues>\n <mat-option *ngFor=\"let option of searchFilter.options\" [value]=\"option.key\">{{option.label}}</mat-option>\n </ng-template>\n </mat-select>\n </ng-container>\n\n</mat-form-field>" }]
23
28
  }], ctorParameters: function () { return [{ type: i7.EntrySearchFilterConfig, decorators: [{
24
29
  type: Inject,
25
30
  args: [ENTRY_SEARCH_FILTER_CONFIG]
@@ -28,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
28
33
  }], form: [{
29
34
  type: Input
30
35
  }] } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvc2VhcmNoLWZpbHRlci9zZWFyY2gtZmlsdGVyLWlucHV0L3NlYXJjaC1maWx0ZXItaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9lbnRyeS1jb21wb25lbnRzL3NlYXJjaC1maWx0ZXIvc2VhcmNoLWZpbHRlci1pbnB1dC9zZWFyY2gtZmlsdGVyLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDBCQUEwQixFQUEyQixNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7QUFRcEcsTUFBTSxPQUFPLCtCQUErQjtJQVExQyxZQUF1RCxNQUErQjtRQUEvQixXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQUZ0RixnQkFBVyxHQUFHLFdBQVcsQ0FBQztJQUVnRSxDQUFDOzs0SEFSaEYsK0JBQStCLGtCQVF0QiwwQkFBMEI7Z0hBUm5DLCtCQUErQix5SENYNUMscXFDQXVCaUI7MkZEWkosK0JBQStCO2tCQUwzQyxTQUFTOytCQUNFLDJCQUEyQixtQkFFcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBVWxDLE1BQU07MkJBQUMsMEJBQTBCOzRDQU5yQyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb250cm9sVHlwZSB9IGZyb20gJy4vY29udHJvbC10eXBlLm1vZGVsJztcbmltcG9ydCB7IEVOVFJZX1NFQVJDSF9GSUxURVJfQ09ORklHLCBFbnRyeVNlYXJjaEZpbHRlckNvbmZpZyB9IGZyb20gJy4uL3NlYXJjaC1maWx0ZXItY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IFNlYXJjaEZpbHRlckJhc2UgfSBmcm9tICcuL3NlYXJjaC1maWx0ZXItYmFzZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VudHJ5LXNlYXJjaC1maWx0ZXItaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWZpbHRlci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEVudHJ5U2VhcmNoRmlsdGVySW5wdXRDb21wb25lbnQ8VD4ge1xuICAvKiogQ29uZmlndXJhdGlvbiBvZiB0aGUgc2VhcmNoIGZpbHRlcnMgaW5wdXRzIHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIHNlYXJjaC1maWx0ZXIgY29tcG9uZW50LiAqL1xuICBASW5wdXQoKSBzZWFyY2hGaWx0ZXI6IFNlYXJjaEZpbHRlckJhc2U8VD47XG4gIC8qKiBGb3JtIGdyb3VwIHRvIHdoaWNoIHRoZSBzZWFyY2gtZmlsdGVyIGlucHV0IGNvbXBvbmVudCB3aWxsIGJlIGFkZGVkLiAqL1xuICBASW5wdXQoKSBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIGNvbnRyb2xUeXBlID0gQ29udHJvbFR5cGU7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChFTlRSWV9TRUFSQ0hfRklMVEVSX0NPTkZJRykgcHVibGljIGNvbmZpZzogRW50cnlTZWFyY2hGaWx0ZXJDb25maWcpIHsgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICA8bWF0LWxhYmVsIFthdHRyLmZvcl09XCJzZWFyY2hGaWx0ZXIua2V5XCI+e3tzZWFyY2hGaWx0ZXIubGFiZWx9fTwvbWF0LWxhYmVsPlxuXG4gIDxkaXYgW25nU3dpdGNoXT1cInNlYXJjaEZpbHRlci5jb250cm9sVHlwZVwiPlxuXG4gICAgPGlucHV0ICpuZ1N3aXRjaENhc2U9XCJjb250cm9sVHlwZS50ZXh0XCJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwic2VhcmNoRmlsdGVyLmtleVwiIFtpZF09XCJzZWFyY2hGaWx0ZXIua2V5XCJcbiAgICAgIFt0eXBlXT1cInNlYXJjaEZpbHRlci50eXBlXCIgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cInNlYXJjaEZpbHRlci5wbGFjZWhvbGRlclwiIFttYXhsZW5ndGhdPVwic2VhcmNoRmlsdGVyLm1heExlbmd0aFwiPlxuXG4gICAgPG1hdC1zZWxlY3QgKm5nU3dpdGNoQ2FzZT1cImNvbnRyb2xUeXBlLnNlbGVjdFwiXG4gICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInNlYXJjaEZpbHRlci5rZXlcIiBbaWRdPVwic2VhcmNoRmlsdGVyLmtleVwiIFttdWx0aXBsZV09XCJzZWFyY2hGaWx0ZXIubXVsdGlTZWxlY3RcIj5cbiAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiIXNlYXJjaEZpbHRlci5tdWx0aVNlbGVjdFwiIFt2YWx1ZV09XCJ1bmRlZmluZWRcIj5cbiAgICAgICAge3tjb25maWcubm9uZVNlbGVjdGVkT3B0aW9uVGV4dH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoRmlsdGVyLm9wdGlvbnMkICE9PSB1bmRlZmluZWQ7IGVsc2UgZml4ZWRTZWxlY3RWYWx1ZXNcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzZWFyY2hGaWx0ZXIub3B0aW9ucyQgfCBhc3luY1wiIFt2YWx1ZV09XCJvcHRpb24ua2V5XCI+e3tvcHRpb24ubGFiZWx9fTwvbWF0LW9wdGlvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNmaXhlZFNlbGVjdFZhbHVlcz5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzZWFyY2hGaWx0ZXIub3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb24ua2V5XCI+e3tvcHRpb24ubGFiZWx9fTwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9tYXQtc2VsZWN0PlxuXG4gIDwvZGl2PlxuPC9tYXQtZm9ybS1maWVsZD4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvc2VhcmNoLWZpbHRlci9zZWFyY2gtZmlsdGVyLWlucHV0L3NlYXJjaC1maWx0ZXItaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9lbnRyeS1jb21wb25lbnRzL3NlYXJjaC1maWx0ZXIvc2VhcmNoLWZpbHRlci1pbnB1dC9zZWFyY2gtZmlsdGVyLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDBCQUEwQixFQUEyQixNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7QUFVcEcsTUFBTSxPQUFPLCtCQUErQjtJQU0xQyxZQUF1RCxNQUErQjtRQUEvQixXQUFNLEdBQU4sTUFBTSxDQUF5QjtJQUFJLENBQUM7SUFFM0YsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFnQyxDQUFDO0lBQ3JHLENBQUM7SUFDRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFlBQXFDLENBQUM7SUFDNUcsQ0FBQzs7NEhBYlUsK0JBQStCLGtCQU10QiwwQkFBMEI7Z0hBTm5DLCtCQUErQix5SENiNUMsMnRDQXVCaUI7MkZEVkosK0JBQStCO2tCQUwzQyxTQUFTOytCQUNFLDJCQUEyQixtQkFFcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBUWxDLE1BQU07MkJBQUMsMEJBQTBCOzRDQUpyQyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb250cm9sVHlwZSB9IGZyb20gJy4vY29udHJvbC10eXBlLm1vZGVsJztcbmltcG9ydCB7IEVOVFJZX1NFQVJDSF9GSUxURVJfQ09ORklHLCBFbnRyeVNlYXJjaEZpbHRlckNvbmZpZyB9IGZyb20gJy4uL3NlYXJjaC1maWx0ZXItY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IFNlYXJjaEZpbHRlckJhc2UgfSBmcm9tICcuL3NlYXJjaC1maWx0ZXItYmFzZS5tb2RlbCc7XG5pbXBvcnQgeyBTZWxlY3RTZWFyY2hGaWx0ZXIgfSBmcm9tICcuL2lucHV0cy9zZWxlY3Qtc2VhcmNoLWZpbHRlci5tb2RlbCc7XG5pbXBvcnQgeyBUZXh0U2VhcmNoRmlsdGVyIH0gZnJvbSAnLi9pbnB1dHMvdGV4dC1zZWFyY2gtZmlsdGVyLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW50cnktc2VhcmNoLWZpbHRlci1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtZmlsdGVyLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRW50cnlTZWFyY2hGaWx0ZXJJbnB1dENvbXBvbmVudDxUPiB7XG4gIC8qKiBDb25maWd1cmF0aW9uIG9mIHRoZSBzZWFyY2ggZmlsdGVycyBpbnB1dHMgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgc2VhcmNoLWZpbHRlciBjb21wb25lbnQuICovXG4gIEBJbnB1dCgpIHNlYXJjaEZpbHRlcjogU2VhcmNoRmlsdGVyQmFzZTxUPjtcbiAgLyoqIEZvcm0gZ3JvdXAgdG8gd2hpY2ggdGhlIHNlYXJjaC1maWx0ZXIgaW5wdXQgY29tcG9uZW50IHdpbGwgYmUgYWRkZWQuICovXG4gIEBJbnB1dCgpIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChFTlRSWV9TRUFSQ0hfRklMVEVSX0NPTkZJRykgcHVibGljIGNvbmZpZzogRW50cnlTZWFyY2hGaWx0ZXJDb25maWcpIHsgfVxuXG4gIGdldCB0ZXh0U2VhcmNoRmlsdGVyKCk6IFRleHRTZWFyY2hGaWx0ZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaEZpbHRlci5jb250cm9sVHlwZSA9PT0gQ29udHJvbFR5cGUudGV4dCAmJiB0aGlzLnNlYXJjaEZpbHRlciBhcyBUZXh0U2VhcmNoRmlsdGVyO1xuICB9XG4gIGdldCBzZWxlY3RTZWFyY2hGaWx0ZXIoKTogU2VsZWN0U2VhcmNoRmlsdGVyPFQ+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hGaWx0ZXIuY29udHJvbFR5cGUgPT09IENvbnRyb2xUeXBlLnNlbGVjdCAmJiB0aGlzLnNlYXJjaEZpbHRlciBhcyBTZWxlY3RTZWFyY2hGaWx0ZXI8VD47XG4gIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBbZm9ybUdyb3VwXT1cImZvcm1cIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gIDxtYXQtbGFiZWwgW2F0dHIuZm9yXT1cInNlYXJjaEZpbHRlci5rZXlcIj57e3NlYXJjaEZpbHRlci5sYWJlbH19PC9tYXQtbGFiZWw+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRleHRTZWFyY2hGaWx0ZXIgYXMgc2VhcmNoRmlsdGVyXCI+XG4gICAgPGlucHV0IFtmb3JtQ29udHJvbE5hbWVdPVwic2VhcmNoRmlsdGVyLmtleVwiIFtpZF09XCJzZWFyY2hGaWx0ZXIua2V5XCIgW3R5cGVdPVwic2VhcmNoRmlsdGVyLnR5cGVcIiBtYXRJbnB1dFxuICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaEZpbHRlci5wbGFjZWhvbGRlclwiIFttYXhsZW5ndGhdPVwic2VhcmNoRmlsdGVyLm1heExlbmd0aFwiPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0U2VhcmNoRmlsdGVyIGFzIHNlYXJjaEZpbHRlclwiPlxuICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwic2VhcmNoRmlsdGVyLmtleVwiIFtpZF09XCJzZWFyY2hGaWx0ZXIua2V5XCIgW211bHRpcGxlXT1cInNlYXJjaEZpbHRlci5tdWx0aVNlbGVjdFwiPlxuICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCIhc2VhcmNoRmlsdGVyLm11bHRpU2VsZWN0XCIgW3ZhbHVlXT1cInVuZGVmaW5lZFwiPlxuICAgICAgICB7e2NvbmZpZy5ub25lU2VsZWN0ZWRPcHRpb25UZXh0fX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hGaWx0ZXIub3B0aW9ucyQgIT09IHVuZGVmaW5lZDsgZWxzZSBmaXhlZFNlbGVjdFZhbHVlc1wiPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHNlYXJjaEZpbHRlci5vcHRpb25zJCB8IGFzeW5jXCJcbiAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLmtleVwiPnt7b3B0aW9uLmxhYmVsfX08L21hdC1vcHRpb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZml4ZWRTZWxlY3RWYWx1ZXM+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2VhcmNoRmlsdGVyLm9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uLmtleVwiPnt7b3B0aW9uLmxhYmVsfX08L21hdC1vcHRpb24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbWF0LXNlbGVjdD5cbiAgPC9uZy1jb250YWluZXI+XG5cbjwvbWF0LWZvcm0tZmllbGQ+Il19
@@ -17,7 +17,9 @@ export class EntryFormErrorsComponent {
17
17
  EntryFormErrorsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryFormErrorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
18
  EntryFormErrorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EntryFormErrorsComponent, selector: "entry-form-errors", inputs: { form: "form" }, ngImport: i0, template: `
19
19
  <div *ngIf="form.errors">
20
- <mat-error *ngFor="let error of form.errors.general">{{error}}</mat-error>
20
+ <mat-error *ngFor="let error of form.errors.general">
21
+ <span class="mat-body-2">{{error}}</span>
22
+ </mat-error>
21
23
  </div>
22
24
  `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }], changeDetection: i0.ChangeDetectionStrategy.Default });
23
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryFormErrorsComponent, decorators: [{
@@ -26,7 +28,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
26
28
  selector: 'entry-form-errors',
27
29
  template: `
28
30
  <div *ngIf="form.errors">
29
- <mat-error *ngFor="let error of form.errors.general">{{error}}</mat-error>
31
+ <mat-error *ngFor="let error of form.errors.general">
32
+ <span class="mat-body-2">{{error}}</span>
33
+ </mat-error>
30
34
  </div>
31
35
  `,
32
36
  changeDetection: ChangeDetectionStrategy.Default
@@ -34,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
34
38
  }], propDecorators: { form: [{
35
39
  type: Input
36
40
  }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktZm9ybS1lcnJvcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9lbnRyeS1jb21wb25lbnRzL3ZhbGlkYXRpb24vZW50cnktZm9ybS1lcnJvcnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBRzFFOzs7Ozs7Ozs7R0FTRztBQVVILE1BQU0sT0FBTyx3QkFBd0I7O3FIQUF4Qix3QkFBd0I7eUdBQXhCLHdCQUF3QixtRkFQekI7Ozs7R0FJVDsyRkFHVSx3QkFBd0I7a0JBVHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFOzs7O0dBSVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE9BQU87aUJBQ2pEOzhCQUdVLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHVzZWQgdG8gZGlzcGxheSBnZW5lcmljIChmb3JtIGxldmVsKSBzZXJ2ZXIgc2lkZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxuICogVGhlIG1lc3NhZ2VzIGFyZSBkaXNwbGF5ZWQgYXMgYSBsaXN0LCBlYWNoIG1lc3NhZ2UgaW4gYSBuZXcgcm93LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8ZW50cnktZm9ybS1lcnJvcnMgW2Zvcm1dPVwibXlGb3JtXCI+XG4gKiA8L2VudHJ5LWZvcm0tZXJyb3JzPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VudHJ5LWZvcm0tZXJyb3JzJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2ICpuZ0lmPVwiZm9ybS5lcnJvcnNcIj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IGVycm9yIG9mIGZvcm0uZXJyb3JzLmdlbmVyYWxcIj57e2Vycm9yfX08L21hdC1lcnJvcj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0XG59KVxuZXhwb3J0IGNsYXNzIEVudHJ5Rm9ybUVycm9yc0NvbXBvbmVudCB7XG4gIC8qKiBBIGZvcm0gZ3JvdXAgZm9yIHdoaWNoIHRoZSB2YWxpZGF0aW9uIGVycm9ycyBhcmUgYmVpbmcgZGlzcGxheWVkLiAqL1xuICBASW5wdXQoKSBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xufVxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktZm9ybS1lcnJvcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9lbnRyeS1jb21wb25lbnRzL3ZhbGlkYXRpb24vZW50cnktZm9ybS1lcnJvcnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBRzFFOzs7Ozs7Ozs7R0FTRztBQVlILE1BQU0sT0FBTyx3QkFBd0I7O3FIQUF4Qix3QkFBd0I7eUdBQXhCLHdCQUF3QixtRkFUekI7Ozs7OztHQU1UOzJGQUdVLHdCQUF3QjtrQkFYcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUU7Ozs7OztHQU1UO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxPQUFPO2lCQUNqRDs4QkFHVSxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCB1c2VkIHRvIGRpc3BsYXkgZ2VuZXJpYyAoZm9ybSBsZXZlbCkgc2VydmVyIHNpZGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cbiAqIFRoZSBtZXNzYWdlcyBhcmUgZGlzcGxheWVkIGFzIGEgbGlzdCwgZWFjaCBtZXNzYWdlIGluIGEgbmV3IHJvdy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGVudHJ5LWZvcm0tZXJyb3JzIFtmb3JtXT1cIm15Rm9ybVwiPlxuICogPC9lbnRyeS1mb3JtLWVycm9ycz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbnRyeS1mb3JtLWVycm9ycycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiAqbmdJZj1cImZvcm0uZXJyb3JzXCI+XG4gICAgICA8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBlcnJvciBvZiBmb3JtLmVycm9ycy5nZW5lcmFsXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWJvZHktMlwiPnt7ZXJyb3J9fTwvc3Bhbj5cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHRcbn0pXG5leHBvcnQgY2xhc3MgRW50cnlGb3JtRXJyb3JzQ29tcG9uZW50IHtcbiAgLyoqIEEgZm9ybSBncm91cCBmb3Igd2hpY2ggdGhlIHZhbGlkYXRpb24gZXJyb3JzIGFyZSBiZWluZyBkaXNwbGF5ZWQuICovXG4gIEBJbnB1dCgpIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG59XG4iXX0=
@@ -0,0 +1,110 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, Directive, Inject, Optional, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/material/button';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { CommonModule } from '@angular/common';
6
+
7
+ /**
8
+ * Used to provide button configuration on module or application level.
9
+ */
10
+ class EntryButtonConfig {
11
+ constructor(config = {}) {
12
+ var _a, _b;
13
+ this.submit = (_a = config.submit) !== null && _a !== void 0 ? _a : { type: 'flat', color: 'primary' };
14
+ this.cancel = (_b = config.cancel) !== null && _b !== void 0 ? _b : { type: 'basic', color: 'accent' };
15
+ }
16
+ }
17
+ /**
18
+ * Entry button config injection token. Can be used to provide custom button configuration.
19
+ *
20
+ * Defaults:
21
+ * - submit: type: 'flat', color: 'primary'
22
+ * - cancel: type: 'basic', color: 'accent'
23
+ */
24
+ const ENTRY_BUTTON_CONFIG = new InjectionToken('EntryButtonConfig', {
25
+ providedIn: 'root',
26
+ factory: () => new EntryButtonConfig()
27
+ });
28
+
29
+ class EntryButtonDirective {
30
+ constructor(_elementRef, _config, _matButton, _matAnchor) {
31
+ this._elementRef = _elementRef;
32
+ this._config = _config;
33
+ this._matButton = _matButton;
34
+ this._matAnchor = _matAnchor;
35
+ this.matClasses = {
36
+ basic: ['mdc-button', 'mat-mdc-button'],
37
+ raised: ['mdc-button', 'mdc-button--raised', 'mat-mdc-raised-button'],
38
+ stroked: ['mdc-button', 'mdc-button--outlined', 'mat-mdc-outlined-button'],
39
+ flat: ['mdc-button', 'mdc-button--unelevated', 'mat-mdc-unelevated-button']
40
+ };
41
+ }
42
+ ngOnInit() {
43
+ const entryButtonType = this.getEntryType();
44
+ const buttonConfig = this._config[entryButtonType];
45
+ const entryClasses = ['entry-button', `entry-${entryButtonType}-button`];
46
+ const matClasses = this.matClasses[buttonConfig.type];
47
+ this._elementRef.nativeElement.classList.add(...entryClasses, ...matClasses);
48
+ const color = buttonConfig.color;
49
+ if (color) {
50
+ if (this._matButton) {
51
+ this._matButton.color = color;
52
+ }
53
+ if (this._matAnchor) {
54
+ this._matAnchor.color = color;
55
+ }
56
+ }
57
+ }
58
+ getEntryType() {
59
+ return this._elementRef.nativeElement.hasAttribute('entry-submit-button')
60
+ ? 'submit' : 'cancel';
61
+ }
62
+ }
63
+ EntryButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryButtonDirective, deps: [{ token: i0.ElementRef }, { token: ENTRY_BUTTON_CONFIG }, { token: i1.MatButton, optional: true }, { token: i1.MatAnchor, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
64
+ EntryButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: EntryButtonDirective, selector: "[mat-button][entry-submit-button],[mat-button][entry-cancel-button]", ngImport: i0 });
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryButtonDirective, decorators: [{
66
+ type: Directive,
67
+ args: [{
68
+ // eslint-disable-next-line @angular-eslint/directive-selector
69
+ selector: `[mat-button][entry-submit-button],[mat-button][entry-cancel-button]`
70
+ }]
71
+ }], ctorParameters: function () {
72
+ return [{ type: i0.ElementRef }, { type: EntryButtonConfig, decorators: [{
73
+ type: Inject,
74
+ args: [ENTRY_BUTTON_CONFIG]
75
+ }] }, { type: i1.MatButton, decorators: [{
76
+ type: Optional
77
+ }] }, { type: i1.MatAnchor, decorators: [{
78
+ type: Optional
79
+ }] }];
80
+ } });
81
+
82
+ class EntryButtonModule {
83
+ }
84
+ EntryButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
85
+ EntryButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: EntryButtonModule, declarations: [EntryButtonDirective], imports: [CommonModule,
86
+ MatButtonModule], exports: [EntryButtonDirective] });
87
+ EntryButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryButtonModule, imports: [CommonModule,
88
+ MatButtonModule] });
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryButtonModule, decorators: [{
90
+ type: NgModule,
91
+ args: [{
92
+ declarations: [
93
+ EntryButtonDirective
94
+ ],
95
+ imports: [
96
+ CommonModule,
97
+ MatButtonModule
98
+ ],
99
+ exports: [
100
+ EntryButtonDirective
101
+ ]
102
+ }]
103
+ }] });
104
+
105
+ /**
106
+ * Generated bundle index. Do not edit.
107
+ */
108
+
109
+ export { ENTRY_BUTTON_CONFIG, EntryButtonConfig, EntryButtonDirective, EntryButtonModule };
110
+ //# sourceMappingURL=enigmatry-entry-components-button.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enigmatry-entry-components-button.mjs","sources":["../../../../libs/entry-components/button/entry-button-config.ts","../../../../libs/entry-components/button/entry-button.directive.ts","../../../../libs/entry-components/button/entry-button.module.ts","../../../../libs/entry-components/button/enigmatry-entry-components-button.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\n\r\n/** Possible mat button variants */\r\nexport declare type MatButtonVariants = 'basic' | 'flat' | 'raised' | 'stroked';\r\n\r\n//** MatButtonConfig containing type and color */\r\nexport interface MatButtonConfig {\r\n type: MatButtonVariants;\r\n color?: ThemePalette;\r\n}\r\n\r\n/**\r\n * Used to provide button configuration on module or application level.\r\n */\r\nexport class EntryButtonConfig {\r\n /** Submit button configuration */\r\n submit: MatButtonConfig;\r\n /** Cancel button configuration */\r\n cancel: MatButtonConfig;\r\n\r\n constructor(config: Partial<EntryButtonConfig> = {}) {\r\n this.submit = config.submit ?? { type: 'flat', color: 'primary' };\r\n this.cancel = config.cancel ?? { type: 'basic', color: 'accent' };\r\n }\r\n}\r\n\r\n/**\r\n * Entry button config injection token. Can be used to provide custom button configuration.\r\n *\r\n * Defaults:\r\n * - submit: type: 'flat', color: 'primary'\r\n * - cancel: type: 'basic', color: 'accent'\r\n */\r\nexport const ENTRY_BUTTON_CONFIG = new InjectionToken<EntryButtonConfig>('EntryButtonConfig',\r\n {\r\n providedIn: 'root',\r\n factory: () => new EntryButtonConfig()\r\n }\r\n);\r\n","import { Directive, ElementRef, Inject, OnInit, Optional } from '@angular/core';\nimport { MatButton, MatAnchor } from '@angular/material/button';\nimport { ThemePalette } from '@angular/material/core';\nimport { ENTRY_BUTTON_CONFIG, EntryButtonConfig, MatButtonConfig } from './entry-button-config';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: `[mat-button][entry-submit-button],[mat-button][entry-cancel-button]`\n})\nexport class EntryButtonDirective implements OnInit {\n\n matClasses: { [key: string]: string[] } = {\n basic: ['mdc-button', 'mat-mdc-button'],\n raised: ['mdc-button', 'mdc-button--raised', 'mat-mdc-raised-button'],\n stroked: ['mdc-button', 'mdc-button--outlined', 'mat-mdc-outlined-button'],\n flat: ['mdc-button', 'mdc-button--unelevated', 'mat-mdc-unelevated-button']\n };\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n @Inject(ENTRY_BUTTON_CONFIG) private _config: EntryButtonConfig,\n @Optional() private _matButton?: MatButton,\n @Optional() private _matAnchor?: MatAnchor) {\n }\n\n ngOnInit(): void {\n const entryButtonType = this.getEntryType();\n const buttonConfig: MatButtonConfig = this._config[entryButtonType];\n\n const entryClasses: string[] = ['entry-button', `entry-${entryButtonType}-button`];\n const matClasses = this.matClasses[buttonConfig.type];\n\n this._elementRef.nativeElement.classList.add(...entryClasses, ...matClasses);\n\n const color: ThemePalette = buttonConfig.color;\n if (color) {\n if (this._matButton) { this._matButton.color = color; }\n if (this._matAnchor) { this._matAnchor.color = color; }\n }\n }\n\n private getEntryType(): string {\n return this._elementRef.nativeElement.hasAttribute('entry-submit-button')\n ? 'submit' : 'cancel';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EntryButtonDirective } from './entry-button.directive';\nimport { MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n declarations: [\n EntryButtonDirective\n ],\n imports: [\n CommonModule,\n MatButtonModule\n ],\n exports: [\n EntryButtonDirective\n ]\n})\nexport class EntryButtonModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -5,6 +5,12 @@ import * as i1 from '@angular/material/dialog';
5
5
  import { MAT_DIALOG_DATA, MatDialogConfig, MatDialogModule } from '@angular/material/dialog';
6
6
  import * as i2 from '@angular/common';
7
7
  import { CommonModule } from '@angular/common';
8
+ import * as i3 from '@angular/material/icon';
9
+ import { MatIconModule } from '@angular/material/icon';
10
+ import * as i4 from '@angular/material/button';
11
+ import { MatButtonModule } from '@angular/material/button';
12
+ import * as i5 from '@enigmatry/entry-components/button';
13
+ import { EntryButtonModule } from '@enigmatry/entry-components/button';
8
14
  import { take } from 'rxjs/operators';
9
15
 
10
16
  /**
@@ -15,7 +21,7 @@ class EntryDialogConfig {
15
21
  var _a, _b, _c, _d, _e;
16
22
  this.confirmButtonText = (_a = config.confirmButtonText) !== null && _a !== void 0 ? _a : 'Ok';
17
23
  this.cancelButtonText = (_b = config.cancelButtonText) !== null && _b !== void 0 ? _b : 'Cancel';
18
- this.buttonsAlignment = (_c = config.buttonsAlignment) !== null && _c !== void 0 ? _c : 'align-right';
24
+ this.buttonsAlignment = (_c = config.buttonsAlignment) !== null && _c !== void 0 ? _c : 'end';
19
25
  this.hideClose = (_d = config.hideClose) !== null && _d !== void 0 ? _d : true;
20
26
  this.disableClose = (_e = config.disableClose) !== null && _e !== void 0 ? _e : false;
21
27
  }
@@ -27,7 +33,7 @@ class EntryDialogConfig {
27
33
  * Defaults:
28
34
  * - confirmButtonText: 'Ok'
29
35
  * - cancelButtonText: 'Cancel'
30
- * - buttonsAlignment: 'align-right'
36
+ * - buttonsAlignment: 'end'
31
37
  * - hideClose: true
32
38
  * - disableClose: false
33
39
  */
@@ -75,10 +81,10 @@ class EntryDialogComponent {
75
81
  }
76
82
  }
77
83
  EntryDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: ENTRY_DIALOG_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
78
- EntryDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EntryDialogComponent, selector: "entry-dialog", inputs: { title: "title", buttonsAlignment: "buttonsAlignment", confirmButtonText: "confirmButtonText", cancelButtonText: "cancelButtonText", hideButtons: "hideButtons", hideCancel: "hideCancel", hideClose: "hideClose", disableConfirm: "disableConfirm", buttonsTemplate: "buttonsTemplate", confirm: "confirm", cancel: "cancel" }, ngImport: i0, template: "<div class=\"entry-dialog dialog-form\">\n <div class=\"dialog-header\">\n <h1 class=\"title\">{{ title }}</h1>\n\n <button *ngIf=\"!hideClose\" type=\"button\" class=\"close-button\" (click)=\"cancel()\">\n <span class=\"icon-close icon\"></span>\n </button>\n </div>\n\n <mat-dialog-content class=\"dialog-content\" [ngClass]=\"{'with-actions': !hideButtons}\">\n <ng-content></ng-content>\n </mat-dialog-content>\n\n <ng-template [ngIf]=\"buttonsTemplate\" [ngIfElse]=\"defaultButtonsTemplate\">\n <ng-template [ngTemplateOutlet]=\"buttonsTemplate\"></ng-template>\n </ng-template>\n\n <ng-template #defaultButtonsTemplate>\n <div *ngIf=\"!hideButtons\" class=\"dialog-footer {{ buttonsAlignment }}\">\n <button\n cdkFocusInitial\n type=\"button\"\n class=\"button-confirm\"\n cdkFocusInitial\n (click)=\"onSubmit()\">{{confirmButtonText}}</button>\n <button\n *ngIf=\"!hideCancel\"\n type=\"button\"\n class=\"button-cancel\"\n (click)=\"cancel()\">{{cancelButtonText}}</button>\n </div>\n </ng-template>\n</div>", styles: [".align-center{margin:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] });
84
+ EntryDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EntryDialogComponent, selector: "entry-dialog", inputs: { title: "title", buttonsAlignment: "buttonsAlignment", confirmButtonText: "confirmButtonText", cancelButtonText: "cancelButtonText", hideButtons: "hideButtons", hideCancel: "hideCancel", hideClose: "hideClose", disableConfirm: "disableConfirm", buttonsTemplate: "buttonsTemplate", confirm: "confirm", cancel: "cancel" }, ngImport: i0, template: "<div class=\"entry-dialog\">\n <div class=\"dialog-header\">\n <h1 class=\"title\" [ngClass]=\"{'without-close-icon': hideClose === true}\" mat-dialog-title>{{ title }}</h1>\n <button mat-icon-button *ngIf=\"!hideClose\" type=\"button\" class=\"close-button\" (click)=\"cancel()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n\n <mat-dialog-content class=\"dialog-content\" [ngClass]=\"{'with-actions': !hideButtons}\">\n <ng-content></ng-content>\n </mat-dialog-content>\n\n <mat-dialog-actions class=\"dialog-actions\" [align]=\"buttonsAlignment\" *ngIf=\"!hideButtons\">\n <ng-container *ngIf=\"buttonsTemplate; then buttonsTemplate; else defaultButtonsTemplate\">\n </ng-container>\n </mat-dialog-actions>\n \n <ng-template #defaultButtonsTemplate>\n <button cdkFocusInitial mat-button entry-submit-button (click)=\"onSubmit()\">\n <span>{{confirmButtonText}}</span>\n </button>\n <button *ngIf=\"!hideCancel\" mat-button entry-cancel-button (click)=\"cancel()\">\n <span>{{cancelButtonText}}</span>\n </button>\n </ng-template>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.EntryButtonDirective, selector: "[mat-button][entry-submit-button],[mat-button][entry-cancel-button]" }] });
79
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryDialogComponent, decorators: [{
80
86
  type: Component,
81
- args: [{ selector: 'entry-dialog', template: "<div class=\"entry-dialog dialog-form\">\n <div class=\"dialog-header\">\n <h1 class=\"title\">{{ title }}</h1>\n\n <button *ngIf=\"!hideClose\" type=\"button\" class=\"close-button\" (click)=\"cancel()\">\n <span class=\"icon-close icon\"></span>\n </button>\n </div>\n\n <mat-dialog-content class=\"dialog-content\" [ngClass]=\"{'with-actions': !hideButtons}\">\n <ng-content></ng-content>\n </mat-dialog-content>\n\n <ng-template [ngIf]=\"buttonsTemplate\" [ngIfElse]=\"defaultButtonsTemplate\">\n <ng-template [ngTemplateOutlet]=\"buttonsTemplate\"></ng-template>\n </ng-template>\n\n <ng-template #defaultButtonsTemplate>\n <div *ngIf=\"!hideButtons\" class=\"dialog-footer {{ buttonsAlignment }}\">\n <button\n cdkFocusInitial\n type=\"button\"\n class=\"button-confirm\"\n cdkFocusInitial\n (click)=\"onSubmit()\">{{confirmButtonText}}</button>\n <button\n *ngIf=\"!hideCancel\"\n type=\"button\"\n class=\"button-cancel\"\n (click)=\"cancel()\">{{cancelButtonText}}</button>\n </div>\n </ng-template>\n</div>", styles: [".align-center{margin:auto}\n"] }]
87
+ args: [{ selector: 'entry-dialog', template: "<div class=\"entry-dialog\">\n <div class=\"dialog-header\">\n <h1 class=\"title\" [ngClass]=\"{'without-close-icon': hideClose === true}\" mat-dialog-title>{{ title }}</h1>\n <button mat-icon-button *ngIf=\"!hideClose\" type=\"button\" class=\"close-button\" (click)=\"cancel()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n\n <mat-dialog-content class=\"dialog-content\" [ngClass]=\"{'with-actions': !hideButtons}\">\n <ng-content></ng-content>\n </mat-dialog-content>\n\n <mat-dialog-actions class=\"dialog-actions\" [align]=\"buttonsAlignment\" *ngIf=\"!hideButtons\">\n <ng-container *ngIf=\"buttonsTemplate; then buttonsTemplate; else defaultButtonsTemplate\">\n </ng-container>\n </mat-dialog-actions>\n \n <ng-template #defaultButtonsTemplate>\n <button cdkFocusInitial mat-button entry-submit-button (click)=\"onSubmit()\">\n <span>{{confirmButtonText}}</span>\n </button>\n <button *ngIf=\"!hideCancel\" mat-button entry-cancel-button (click)=\"cancel()\">\n <span>{{cancelButtonText}}</span>\n </button>\n </ng-template>\n</div>" }]
82
88
  }], ctorParameters: function () {
83
89
  return [{ type: i1.MatDialogRef }, { type: EntryDialogConfig, decorators: [{
84
90
  type: Inject,
@@ -228,11 +234,17 @@ EntryDialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versio
228
234
  EntryDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: EntryDialogModule, declarations: [EntryDialogComponent,
229
235
  EntryAlertDialogComponent,
230
236
  EntryConfirmDialogComponent], imports: [CommonModule,
231
- MatDialogModule], exports: [EntryDialogComponent,
237
+ MatDialogModule,
238
+ MatIconModule,
239
+ MatButtonModule,
240
+ EntryButtonModule], exports: [EntryDialogComponent,
232
241
  EntryAlertDialogComponent,
233
242
  EntryConfirmDialogComponent] });
234
243
  EntryDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryDialogModule, providers: [EntryDialogService], imports: [CommonModule,
235
- MatDialogModule] });
244
+ MatDialogModule,
245
+ MatIconModule,
246
+ MatButtonModule,
247
+ EntryButtonModule] });
236
248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryDialogModule, decorators: [{
237
249
  type: NgModule,
238
250
  args: [{
@@ -243,7 +255,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
243
255
  ],
244
256
  imports: [
245
257
  CommonModule,
246
- MatDialogModule
258
+ MatDialogModule,
259
+ MatIconModule,
260
+ MatButtonModule,
261
+ EntryButtonModule
247
262
  ],
248
263
  exports: [
249
264
  EntryDialogComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"enigmatry-entry-components-dialog.mjs","sources":["../../../../libs/entry-components/dialog/entry-dialog-config.model.ts","../../../../libs/entry-components/dialog/dialogs/entry-dialog.component.ts","../../../../libs/entry-components/dialog/dialogs/entry-dialog.component.html","../../../../libs/entry-components/dialog/dialogs/alert/entry-alert-dialog.component.ts","../../../../libs/entry-components/dialog/dialogs/alert/entry-alert-dialog.component.html","../../../../libs/entry-components/dialog/dialogs/confirm/entry-confirm-dialog.component.ts","../../../../libs/entry-components/dialog/dialogs/confirm/entry-confirm-dialog.component.html","../../../../libs/entry-components/dialog/entry-dialog.service.ts","../../../../libs/entry-components/dialog/entry-dialog.module.ts","../../../../libs/entry-components/dialog/enigmatry-entry-components-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { EntryDialogButtonsAlignment } from './entry-dialog-buttons-alignment.type';\n\n/**\n * Used to provide default configurations on module level.\n */\nexport class EntryDialogConfig {\n /** Confirm button label (default 'Ok') */\n confirmButtonText: string;\n /** Cancel button label (default 'Cancel') */\n cancelButtonText: string;\n /** Dialog buttons horizontal alignment (default 'align-right') */\n buttonsAlignment: EntryDialogButtonsAlignment;\n /** Determines if close button is visible (default is true) */\n hideClose: boolean;\n /** Disable closing dialog when pressing escape or clicking on backdrop (default false) */\n disableClose: boolean;\n\n constructor(config: Partial<EntryDialogConfig> = {}) {\n this.confirmButtonText = config.confirmButtonText ?? 'Ok';\n this.cancelButtonText = config.cancelButtonText ?? 'Cancel';\n this.buttonsAlignment = config.buttonsAlignment ?? 'align-right';\n this.hideClose = config.hideClose ?? true;\n this.disableClose = config.disableClose ?? false;\n }\n}\n\n/**\n * Entry dialog injection token of EntryDialogConfig type containing dialog default configurations.\n * Can be updated with custom configuration.\n *\n * Defaults:\n * - confirmButtonText: 'Ok'\n * - cancelButtonText: 'Cancel'\n * - buttonsAlignment: 'align-right'\n * - hideClose: true\n * - disableClose: false\n */\nexport const ENTRY_DIALOG_CONFIG = new InjectionToken<EntryDialogConfig>(\n 'EntryDialogConfig',\n {\n providedIn: 'root',\n factory: () => new EntryDialogConfig()\n }\n);\n","import { Component, Inject, Input, TemplateRef } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { Observable, of } from 'rxjs';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../entry-dialog-config.model';\nimport { EntryDialogButtonsAlignment } from '../entry-dialog-buttons-alignment.type';\n\n/**\n * Base Entry dialog component. Must be extended when building custom dialogs.\n *\n * @example\n * ```html\n * <entry-dialog title=\"TITLE\"><p>Dialog content</p></entry-dialog>\n * ```\n */\n@Component({\n selector: 'entry-dialog',\n templateUrl: './entry-dialog.component.html',\n styleUrls: ['./entry-dialog.component.scss']\n})\nexport class EntryDialogComponent {\n /** Dialog header title */\n @Input() title: string;\n /** Dialog buttons horizontal alignment */\n @Input() buttonsAlignment: EntryDialogButtonsAlignment = this.config.buttonsAlignment;\n /** Confirm button label */\n @Input() confirmButtonText = this.config.confirmButtonText;\n /** Cancel button label */\n @Input() cancelButtonText = this.config.cancelButtonText;\n /** Show or hide dialog buttons */\n @Input() hideButtons: boolean;\n /** Show or hide dialog cancel button */\n @Input() hideCancel: boolean;\n /** Show or hide dialog close button */\n @Input() hideClose: boolean = this.config.hideClose;\n /** Enable or disable dialog confirm button */\n @Input() disableConfirm: boolean;\n /** Provide custom buttons template */\n @Input() buttonsTemplate: TemplateRef<any> | null | undefined;\n\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) protected readonly config: EntryDialogConfig) { }\n\n @Input() confirm: () => Observable<unknown> = () => of(true);\n @Input() cancel = () => this.close(false);\n\n // @HostListener('keydown.esc')\n // onEsc = () => {\n // if (!this.disableClose) {\n // this.cancel();\n // }\n // };\n\n onSubmit = () =>\n this.confirm().subscribe({\n next: closeDialog => {\n if (closeDialog) {\n this.close(closeDialog);\n }\n }\n });\n\n close = (value: unknown = true) => this.mdDialogRef.close(value);\n}\n","<div class=\"entry-dialog dialog-form\">\n <div class=\"dialog-header\">\n <h1 class=\"title\">{{ title }}</h1>\n\n <button *ngIf=\"!hideClose\" type=\"button\" class=\"close-button\" (click)=\"cancel()\">\n <span class=\"icon-close icon\"></span>\n </button>\n </div>\n\n <mat-dialog-content class=\"dialog-content\" [ngClass]=\"{'with-actions': !hideButtons}\">\n <ng-content></ng-content>\n </mat-dialog-content>\n\n <ng-template [ngIf]=\"buttonsTemplate\" [ngIfElse]=\"defaultButtonsTemplate\">\n <ng-template [ngTemplateOutlet]=\"buttonsTemplate\"></ng-template>\n </ng-template>\n\n <ng-template #defaultButtonsTemplate>\n <div *ngIf=\"!hideButtons\" class=\"dialog-footer {{ buttonsAlignment }}\">\n <button\n cdkFocusInitial\n type=\"button\"\n class=\"button-confirm\"\n cdkFocusInitial\n (click)=\"onSubmit()\">{{confirmButtonText}}</button>\n <button\n *ngIf=\"!hideCancel\"\n type=\"button\"\n class=\"button-cancel\"\n (click)=\"cancel()\">{{cancelButtonText}}</button>\n </div>\n </ng-template>\n</div>","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { IEntryAlertDialogData } from './entry-alert-dialog-data.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\n\n@Component({\n selector: 'entry-alert-dialog',\n templateUrl: './entry-alert-dialog.component.html',\n styleUrls: ['./entry-alert-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryAlertDialogComponent extends EntryDialogComponent {\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) public readonly config: EntryDialogConfig,\n @Inject(MAT_DIALOG_DATA) public data: IEntryAlertDialogData) {\n super(mdDialogRef, config);\n }\n}\n","<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\"\n [hideCancel]=\"true\">\n <p>{{data.message}}</p>\n</entry-dialog>","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { IEntryConfirmDialogData } from './entry-confirm-dialog-data.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\n\n@Component({\n selector: 'entry-confirm-dialog',\n templateUrl: './entry-confirm-dialog.component.html',\n styleUrls: ['./entry-confirm-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryConfirmDialogComponent extends EntryDialogComponent {\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) public readonly config: EntryDialogConfig,\n @Inject(MAT_DIALOG_DATA) readonly data: IEntryConfirmDialogData) {\n super(mdDialogRef, config);\n }\n}\n","<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [cancelButtonText]=\"data.cancelText ?? config.cancelButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\">\n <p>{{data.message}}</p>\n</entry-dialog>","import { Inject, Injectable, Type } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { EntryDialogComponent } from './dialogs/entry-dialog.component';\nimport { take } from 'rxjs/operators';\nimport { IEntryAlertDialogData } from './dialogs/alert/entry-alert-dialog-data.interface';\nimport { EntryAlertDialogComponent } from './dialogs/alert/entry-alert-dialog.component';\nimport { Observable } from 'rxjs';\nimport { EntryConfirmDialogComponent } from './dialogs/confirm/entry-confirm-dialog.component';\nimport { IEntryConfirmDialogData } from './dialogs/confirm/entry-confirm-dialog-data.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from './entry-dialog-config.model';\n\n/**\n * Used to open built-in and custom entry dialogs.\n */\n@Injectable()\nexport class EntryDialogService {\n constructor(\n @Inject(ENTRY_DIALOG_CONFIG) protected readonly config: EntryDialogConfig,\n private readonly matDialog: MatDialog) { }\n\n /**\n * Opens alert dialog.\n *\n * @param data - Contains title, message and optional confirm button text\n * @returns `true` if confirmed, `undefined` if closed by clicking on backdrop or pressing escape\n */\n openAlert = (data: Partial<IEntryAlertDialogData>): Observable<true | undefined> => {\n data.disableClose = data.disableClose === undefined ? this.config.disableClose : data.disableClose;\n return this.open(EntryAlertDialogComponent, data, data.disableClose);\n };\n\n /**\n * Opens confirm dialog.\n *\n * @param data - Contains title, message and optional confirm/cancel buttons text\n * @returns `true` if confirmed, `false` if canceled or closed, `undefined` if closed by clicking on backdrop or pressing escape\n */\n openConfirm = (data: Partial<IEntryConfirmDialogData>): Observable<boolean | undefined> => {\n data.disableClose = data.disableClose === undefined ? this.config.disableClose : data.disableClose;\n return this.open(EntryConfirmDialogComponent, data, data.disableClose);\n };\n\n /**\n * Opens dialog with custom component.\n *\n * @param component - Dialog custom component implementation\n * @param data - Optional parameter used to supply component with input parameters\n * @param disableClose - Optional parameter that disable closing dialog when pressing escape or clicking on backdrop\n * @param cssClass - Optional parameter used to set custom class to Material overlay pane\n * @returns Any result custom implementation provides\n */\n open = (\n component: Type<EntryDialogComponent>,\n data: unknown = undefined,\n disableClose: boolean | undefined = undefined,\n cssClass: string = ''): Observable<any> => {\n const configuration = new MatDialogConfig<unknown>();\n configuration.data = data;\n configuration.disableClose = disableClose === undefined\n ? this.config.disableClose\n : disableClose;\n this.setPanelClassFor(configuration, cssClass);\n\n return this.matDialog\n .open(component, configuration)\n .afterClosed()\n .pipe(take(1));\n };\n\n /**\n * Closes all opened dialogs.\n */\n closeAll = (): void => this.matDialog.closeAll();\n\n private setPanelClassFor = <T>(configuration: MatDialogConfig<T>, cssClass: string) => {\n configuration.panelClass = ['dialog-container', cssClass];\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { EntryAlertDialogComponent } from './dialogs/alert/entry-alert-dialog.component';\nimport { EntryConfirmDialogComponent } from './dialogs/confirm/entry-confirm-dialog.component';\nimport { EntryDialogComponent } from './dialogs/entry-dialog.component';\nimport { EntryDialogService } from './entry-dialog.service';\n\n@NgModule({\n declarations: [\n EntryDialogComponent,\n EntryAlertDialogComponent,\n EntryConfirmDialogComponent\n ],\n imports: [\n CommonModule,\n MatDialogModule\n ],\n exports: [\n EntryDialogComponent,\n EntryAlertDialogComponent,\n EntryConfirmDialogComponent\n ],\n providers: [EntryDialogService]\n})\nexport class EntryDialogModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.EntryDialogComponent"],"mappings":"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"}
1
+ {"version":3,"file":"enigmatry-entry-components-dialog.mjs","sources":["../../../../libs/entry-components/dialog/entry-dialog-config.model.ts","../../../../libs/entry-components/dialog/dialogs/entry-dialog.component.ts","../../../../libs/entry-components/dialog/dialogs/entry-dialog.component.html","../../../../libs/entry-components/dialog/dialogs/alert/entry-alert-dialog.component.ts","../../../../libs/entry-components/dialog/dialogs/alert/entry-alert-dialog.component.html","../../../../libs/entry-components/dialog/dialogs/confirm/entry-confirm-dialog.component.ts","../../../../libs/entry-components/dialog/dialogs/confirm/entry-confirm-dialog.component.html","../../../../libs/entry-components/dialog/entry-dialog.service.ts","../../../../libs/entry-components/dialog/entry-dialog.module.ts","../../../../libs/entry-components/dialog/enigmatry-entry-components-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { EntryDialogButtonsAlignment } from './entry-dialog-buttons-alignment.type';\n\n/**\n * Used to provide default configurations on module level.\n */\nexport class EntryDialogConfig {\n /** Confirm button label (default 'Ok') */\n confirmButtonText: string;\n /** Cancel button label (default 'Cancel') */\n cancelButtonText: string;\n /** Dialog buttons horizontal alignment (default 'align-right') */\n buttonsAlignment: EntryDialogButtonsAlignment;\n /** Determines if close button is visible (default is true) */\n hideClose: boolean;\n /** Disable closing dialog when pressing escape or clicking on backdrop (default false) */\n disableClose: boolean;\n\n constructor(config: Partial<EntryDialogConfig> = {}) {\n this.confirmButtonText = config.confirmButtonText ?? 'Ok';\n this.cancelButtonText = config.cancelButtonText ?? 'Cancel';\n this.buttonsAlignment = config.buttonsAlignment ?? 'end';\n this.hideClose = config.hideClose ?? true;\n this.disableClose = config.disableClose ?? false;\n }\n}\n\n/**\n * Entry dialog injection token of EntryDialogConfig type containing dialog default configurations.\n * Can be updated with custom configuration.\n *\n * Defaults:\n * - confirmButtonText: 'Ok'\n * - cancelButtonText: 'Cancel'\n * - buttonsAlignment: 'end'\n * - hideClose: true\n * - disableClose: false\n */\nexport const ENTRY_DIALOG_CONFIG = new InjectionToken<EntryDialogConfig>(\n 'EntryDialogConfig',\n {\n providedIn: 'root',\n factory: () => new EntryDialogConfig()\n }\n);\n","import { Component, Inject, Input, TemplateRef } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { Observable, of } from 'rxjs';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../entry-dialog-config.model';\nimport { EntryDialogButtonsAlignment } from '../entry-dialog-buttons-alignment.type';\n\n/**\n * Base Entry dialog component. Must be extended when building custom dialogs.\n *\n * @example\n * ```html\n * <entry-dialog title=\"TITLE\"><p>Dialog content</p></entry-dialog>\n * ```\n */\n@Component({\n selector: 'entry-dialog',\n templateUrl: './entry-dialog.component.html',\n styleUrls: ['./entry-dialog.component.scss']\n})\nexport class EntryDialogComponent {\n /** Dialog header title */\n @Input() title: string;\n /** Dialog buttons horizontal alignment */\n @Input() buttonsAlignment: EntryDialogButtonsAlignment = this.config.buttonsAlignment;\n /** Confirm button label */\n @Input() confirmButtonText = this.config.confirmButtonText;\n /** Cancel button label */\n @Input() cancelButtonText = this.config.cancelButtonText;\n /** Show or hide dialog buttons */\n @Input() hideButtons: boolean;\n /** Show or hide dialog cancel button */\n @Input() hideCancel: boolean;\n /** Show or hide dialog close button */\n @Input() hideClose: boolean = this.config.hideClose;\n /** Enable or disable dialog confirm button */\n @Input() disableConfirm: boolean;\n /** Provide custom buttons template */\n @Input() buttonsTemplate: TemplateRef<any> | null | undefined;\n\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) protected readonly config: EntryDialogConfig) { }\n\n @Input() confirm: () => Observable<unknown> = () => of(true);\n @Input() cancel = () => this.close(false);\n\n // @HostListener('keydown.esc')\n // onEsc = () => {\n // if (!this.disableClose) {\n // this.cancel();\n // }\n // };\n\n onSubmit = () =>\n this.confirm().subscribe({\n next: closeDialog => {\n if (closeDialog) {\n this.close(closeDialog);\n }\n }\n });\n\n close = (value: unknown = true) => this.mdDialogRef.close(value);\n}\n","<div class=\"entry-dialog\">\n <div class=\"dialog-header\">\n <h1 class=\"title\" [ngClass]=\"{'without-close-icon': hideClose === true}\" mat-dialog-title>{{ title }}</h1>\n <button mat-icon-button *ngIf=\"!hideClose\" type=\"button\" class=\"close-button\" (click)=\"cancel()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n\n <mat-dialog-content class=\"dialog-content\" [ngClass]=\"{'with-actions': !hideButtons}\">\n <ng-content></ng-content>\n </mat-dialog-content>\n\n <mat-dialog-actions class=\"dialog-actions\" [align]=\"buttonsAlignment\" *ngIf=\"!hideButtons\">\n <ng-container *ngIf=\"buttonsTemplate; then buttonsTemplate; else defaultButtonsTemplate\">\n </ng-container>\n </mat-dialog-actions>\n \n <ng-template #defaultButtonsTemplate>\n <button cdkFocusInitial mat-button entry-submit-button (click)=\"onSubmit()\">\n <span>{{confirmButtonText}}</span>\n </button>\n <button *ngIf=\"!hideCancel\" mat-button entry-cancel-button (click)=\"cancel()\">\n <span>{{cancelButtonText}}</span>\n </button>\n </ng-template>\n</div>","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { IEntryAlertDialogData } from './entry-alert-dialog-data.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\n\n@Component({\n selector: 'entry-alert-dialog',\n templateUrl: './entry-alert-dialog.component.html',\n styleUrls: ['./entry-alert-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryAlertDialogComponent extends EntryDialogComponent {\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) public readonly config: EntryDialogConfig,\n @Inject(MAT_DIALOG_DATA) public data: IEntryAlertDialogData) {\n super(mdDialogRef, config);\n }\n}\n","<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\"\n [hideCancel]=\"true\">\n <p>{{data.message}}</p>\n</entry-dialog>","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { IEntryConfirmDialogData } from './entry-confirm-dialog-data.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\n\n@Component({\n selector: 'entry-confirm-dialog',\n templateUrl: './entry-confirm-dialog.component.html',\n styleUrls: ['./entry-confirm-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryConfirmDialogComponent extends EntryDialogComponent {\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) public readonly config: EntryDialogConfig,\n @Inject(MAT_DIALOG_DATA) readonly data: IEntryConfirmDialogData) {\n super(mdDialogRef, config);\n }\n}\n","<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [cancelButtonText]=\"data.cancelText ?? config.cancelButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\">\n <p>{{data.message}}</p>\n</entry-dialog>","import { Inject, Injectable, Type } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { EntryDialogComponent } from './dialogs/entry-dialog.component';\nimport { take } from 'rxjs/operators';\nimport { IEntryAlertDialogData } from './dialogs/alert/entry-alert-dialog-data.interface';\nimport { EntryAlertDialogComponent } from './dialogs/alert/entry-alert-dialog.component';\nimport { Observable } from 'rxjs';\nimport { EntryConfirmDialogComponent } from './dialogs/confirm/entry-confirm-dialog.component';\nimport { IEntryConfirmDialogData } from './dialogs/confirm/entry-confirm-dialog-data.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from './entry-dialog-config.model';\n\n/**\n * Used to open built-in and custom entry dialogs.\n */\n@Injectable()\nexport class EntryDialogService {\n constructor(\n @Inject(ENTRY_DIALOG_CONFIG) protected readonly config: EntryDialogConfig,\n private readonly matDialog: MatDialog) { }\n\n /**\n * Opens alert dialog.\n *\n * @param data - Contains title, message and optional confirm button text\n * @returns `true` if confirmed, `undefined` if closed by clicking on backdrop or pressing escape\n */\n openAlert = (data: Partial<IEntryAlertDialogData>): Observable<true | undefined> => {\n data.disableClose = data.disableClose === undefined ? this.config.disableClose : data.disableClose;\n return this.open(EntryAlertDialogComponent, data, data.disableClose);\n };\n\n /**\n * Opens confirm dialog.\n *\n * @param data - Contains title, message and optional confirm/cancel buttons text\n * @returns `true` if confirmed, `false` if canceled or closed, `undefined` if closed by clicking on backdrop or pressing escape\n */\n openConfirm = (data: Partial<IEntryConfirmDialogData>): Observable<boolean | undefined> => {\n data.disableClose = data.disableClose === undefined ? this.config.disableClose : data.disableClose;\n return this.open(EntryConfirmDialogComponent, data, data.disableClose);\n };\n\n /**\n * Opens dialog with custom component.\n *\n * @param component - Dialog custom component implementation\n * @param data - Optional parameter used to supply component with input parameters\n * @param disableClose - Optional parameter that disable closing dialog when pressing escape or clicking on backdrop\n * @param cssClass - Optional parameter used to set custom class to Material overlay pane\n * @returns Any result custom implementation provides\n */\n open = (\n component: Type<EntryDialogComponent>,\n data: unknown = undefined,\n disableClose: boolean | undefined = undefined,\n cssClass: string = ''): Observable<any> => {\n const configuration = new MatDialogConfig<unknown>();\n configuration.data = data;\n configuration.disableClose = disableClose === undefined\n ? this.config.disableClose\n : disableClose;\n this.setPanelClassFor(configuration, cssClass);\n\n return this.matDialog\n .open(component, configuration)\n .afterClosed()\n .pipe(take(1));\n };\n\n /**\n * Closes all opened dialogs.\n */\n closeAll = (): void => this.matDialog.closeAll();\n\n private setPanelClassFor = <T>(configuration: MatDialogConfig<T>, cssClass: string) => {\n configuration.panelClass = ['dialog-container', cssClass];\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { EntryAlertDialogComponent } from './dialogs/alert/entry-alert-dialog.component';\nimport { EntryConfirmDialogComponent } from './dialogs/confirm/entry-confirm-dialog.component';\nimport { EntryDialogComponent } from './dialogs/entry-dialog.component';\nimport { EntryButtonModule } from '@enigmatry/entry-components/button';\nimport { EntryDialogService } from './entry-dialog.service';\n\n@NgModule({\n declarations: [\n EntryDialogComponent,\n EntryAlertDialogComponent,\n EntryConfirmDialogComponent\n ],\n imports: [\n CommonModule,\n MatDialogModule,\n MatIconModule,\n MatButtonModule,\n EntryButtonModule\n ],\n exports: [\n EntryDialogComponent,\n EntryAlertDialogComponent,\n EntryConfirmDialogComponent\n ],\n providers: [EntryDialogService]\n})\nexport class EntryDialogModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.EntryDialogComponent"],"mappings":"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"}