@indice/ng-components 0.2.173-beta.45 → 0.2.173-beta.46

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 (76) hide show
  1. package/esm2020/lib/controls/advanced-search/advanced-search.component.mjs +8 -8
  2. package/esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs +3 -3
  3. package/esm2020/lib/controls/breadcrumb/breadcrumb.component.mjs +3 -3
  4. package/esm2020/lib/controls/collapsible-panel/collapsible-panel.component.mjs +3 -3
  5. package/esm2020/lib/controls/combobox/combobox.component.mjs +3 -3
  6. package/esm2020/lib/controls/content-tile/content-tile-header/content-tile-header.component.mjs +4 -4
  7. package/esm2020/lib/controls/content-tile/content-tile-item/content-tile-item.component.mjs +4 -4
  8. package/esm2020/lib/controls/content-tile/content-tile.component.mjs +3 -3
  9. package/esm2020/lib/controls/date-picker/date-picker.component.mjs +3 -3
  10. package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +3 -3
  11. package/esm2020/lib/controls/kpi-tile/kpi-tile.component.mjs +3 -3
  12. package/esm2020/lib/controls/language-selection/language-selection.component.mjs +3 -3
  13. package/esm2020/lib/controls/list-view/list-column.component.mjs +3 -3
  14. package/esm2020/lib/controls/list-view/list-details-section.component.mjs +3 -3
  15. package/esm2020/lib/controls/list-view/list-tile.component.mjs +3 -3
  16. package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +3 -3
  17. package/esm2020/lib/controls/list-view/list-view.component.mjs +3 -3
  18. package/esm2020/lib/controls/nav-links-list/nav-links-list.component.mjs +3 -3
  19. package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +3 -3
  20. package/esm2020/lib/controls/pager/pager.component.mjs +3 -3
  21. package/esm2020/lib/controls/progress-bar/progress-bar.component.mjs +5 -5
  22. package/esm2020/lib/controls/side-pane/side-pane.component.mjs +3 -3
  23. package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +3 -3
  24. package/esm2020/lib/controls/stats-grid/stats-grid.component.mjs +5 -5
  25. package/esm2020/lib/controls/stepper/lib-step-info.directive.mjs +3 -3
  26. package/esm2020/lib/controls/stepper/lib-step-label.directive.mjs +3 -3
  27. package/esm2020/lib/controls/stepper/lib-step.component.mjs +3 -3
  28. package/esm2020/lib/controls/stepper/lib-stepper.component.mjs +3 -3
  29. package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +3 -3
  30. package/esm2020/lib/controls/tabs/lib-tab-label.directive.mjs +3 -3
  31. package/esm2020/lib/controls/tabs/lib-tab.component.mjs +3 -3
  32. package/esm2020/lib/controls/toaster/toaster-container.component.mjs +3 -3
  33. package/esm2020/lib/controls/toaster/toaster.component.mjs +3 -3
  34. package/esm2020/lib/controls/toggle/toggle.component.mjs +3 -3
  35. package/esm2020/lib/controls/toggle-button/toggle-button.component.mjs +6 -6
  36. package/esm2020/lib/controls/toggle-buttons-list/toggle-buttons-list.component.mjs +5 -5
  37. package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +3 -3
  38. package/esm2020/lib/directives/click-outside.directive.mjs +3 -3
  39. package/esm2020/lib/directives/dynamic-component-host.directive.mjs +3 -3
  40. package/esm2020/lib/helpers/base-list.component.mjs +3 -3
  41. package/esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs +3 -3
  42. package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +3 -3
  43. package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +3 -3
  44. package/esm2020/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +3 -3
  45. package/esm2020/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.mjs +3 -3
  46. package/esm2020/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +3 -3
  47. package/esm2020/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.mjs +3 -3
  48. package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +3 -3
  49. package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +3 -3
  50. package/esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +3 -3
  51. package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +3 -3
  52. package/esm2020/lib/ng-components.module.mjs +4 -4
  53. package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +3 -3
  54. package/esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs +3 -3
  55. package/esm2020/lib/pages/auth/logged-out/logged-out.component.mjs +3 -3
  56. package/esm2020/lib/pages/http-status/error/error.component.mjs +3 -3
  57. package/esm2020/lib/pages/http-status/page-not-found/page-not-found.component.mjs +3 -3
  58. package/esm2020/lib/pages/http-status/unauthorized/unauthorized.component.mjs +3 -3
  59. package/esm2020/lib/pipes/address.pipe.mjs +3 -3
  60. package/esm2020/lib/pipes/duration-format.pipe.mjs +3 -3
  61. package/esm2020/lib/pipes/short-number.pipe.mjs +3 -3
  62. package/esm2020/lib/services/breadcrumb.service.mjs +3 -3
  63. package/esm2020/lib/services/component-loader/component-loader.factory.mjs +3 -3
  64. package/esm2020/lib/services/modal-service/modal-backdrop-component.mjs +3 -3
  65. package/esm2020/lib/services/modal-service/modal-container-component.mjs +3 -3
  66. package/esm2020/lib/services/modal-service/modal-options.class.mjs +3 -3
  67. package/esm2020/lib/services/modal-service/modal-service.mjs +3 -3
  68. package/esm2020/lib/services/modal-service/modal.class.mjs +3 -3
  69. package/esm2020/lib/services/toaster.service.mjs +3 -3
  70. package/esm2020/lib/services/user-settings.service.mjs +3 -3
  71. package/esm2020/lib/services/utilities.service.mjs +3 -3
  72. package/fesm2015/indice-ng-components.mjs +222 -222
  73. package/fesm2015/indice-ng-components.mjs.map +1 -1
  74. package/fesm2020/indice-ng-components.mjs +222 -222
  75. package/fesm2020/indice-ng-components.mjs.map +1 -1
  76. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { FilterClause, QueryParameters, Operators, OperatorOptions } from './models';
2
+ import { FilterClause, Operators, OperatorOptions } from './models';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  import * as i2 from "@angular/forms";
@@ -77,15 +77,15 @@ export class AdvancedSearchComponent {
77
77
  if (this.selectedField.dataType === 'daterange') {
78
78
  if (!this.selectedField.multiTerm) {
79
79
  this.filters = this.filters.filter((f) => {
80
- return f.member !== QueryParameters.FILTER_FROM && f.member !== QueryParameters.FILTER_TO;
80
+ return f.dataType !== 'datetime';
81
81
  });
82
82
  }
83
83
  if (this.fieldValueDateFrom) {
84
- const filterClauseFrom = new FilterClause(QueryParameters.FILTER_FROM, this.fieldValueDateFrom, Operators.GREATER_THAN_EQUAL.value, 'datetime', this.searchOptions);
84
+ const filterClauseFrom = new FilterClause(this.selectedField.field, this.fieldValueDateFrom, Operators.GREATER_THAN_EQUAL.value, 'datetime', this.searchOptions);
85
85
  this.filters.push(filterClauseFrom);
86
86
  }
87
87
  if (this.fieldValueDateTo) {
88
- const filterClauseTo = new FilterClause(QueryParameters.FILTER_TO, this.fieldValueDateTo, Operators.LESS_THAN_EQUAL.value, 'datetime', this.searchOptions);
88
+ const filterClauseTo = new FilterClause(this.selectedField.field, this.fieldValueDateTo, Operators.LESS_THAN_EQUAL.value, 'datetime', this.searchOptions);
89
89
  this.filters.push(filterClauseTo);
90
90
  }
91
91
  }
@@ -137,9 +137,9 @@ export class AdvancedSearchComponent {
137
137
  this.advancedSearchChanged.emit(this.filters);
138
138
  }
139
139
  }
140
- AdvancedSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AdvancedSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
141
- AdvancedSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: AdvancedSearchComponent, selector: "lib-advanced-search", inputs: { searchOptions: ["search-options", "searchOptions"], operatorsDisabled: ["operators-disabled", "operatorsDisabled"], filters: "filters" }, outputs: { advancedSearchChanged: "advancedSearchChanged" }, ngImport: i0, template: "<div class=\"advanced-search-container\">\r\n <div class=\"advanced-search-filter\">\r\n <!--SEARCH FIELDS-->\r\n <div class=\"advanced-search-filter-field-container\">\r\n <label class=\"advanced-search-filter-field-label\"\r\n for=\"selectedField\">\r\n \u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7 \u03B1\u03BD\u03AC:\r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptions\"\r\n (selectedChanged)=\"selectedFieldChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <!--SEARCH FIELDS OPERATOR MENU-->\r\n <div *ngIf=\"!operatorsDisabled && selectedField\"\r\n class=\"advanced-search-filter-operator-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array' || selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-operator-label\"\r\n for=\"selectedOperator\">\r\n &nbsp;\r\n </label>\r\n <lib-drop-down-menu [options]=\"operatorMenuOptions\"\r\n [selected]=\"selectedOperator\"\r\n (selectedChanged)=\"selectedOperatorChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n </div>\r\n <!--SEARCH FIELDS INPUT-->\r\n <div *ngIf=\"selectedField\"\r\n class=\"advanced-search-filter-value-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n &nbsp;\r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptionsDictionary[selectedField.field]\"\r\n [selected]=\"fieldValue\"\r\n (selectedChanged)=\"selectedFieldValueChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n &nbsp;\r\n </label>\r\n <input (keyup.enter)=\"search()\"\r\n [(ngModel)]=\"fieldValue\"\r\n name=\"fieldValue\"\r\n type=\"text\"\r\n placeholder=\"\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7\"\r\n maxlength=\"300\"\r\n class=\"advanced-search-filter-value-input\">\r\n </div>\r\n <ng-container *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <div>\r\n <span class=\"advanced-search-filter-value-input-daterange-from\">\r\n \u0391\u03C0\u03CC:\r\n </span>\r\n <lib-date-picker [maxDate]=\"fieldValueDateTo\"\r\n [(ngModel)]=\"fieldValueDateFrom\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <span class=\"advanced-search-filter-value-input-daterange-to\">\r\n \u0388\u03C9\u03C2:\r\n </span>\r\n <lib-date-picker [minDate]=\"fieldValueDateFrom\"\r\n [(ngModel)]=\"fieldValueDateTo\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"selectedField\">\r\n <!--DO SEARCH-->\r\n <button type=\"button\"\r\n [ngClass]=\"{'opacity-50 cursor-not-allowed': isDateValueUnpicked() && isFieldAndOperatorUnpicked()}\"\r\n [disabled]=\"isDateValueUnpicked() && isFieldAndOperatorUnpicked()\"\r\n (click)=\"search()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Search'\"></i>\r\n </button>\r\n <!--CLEAR-->\r\n <button type=\"button\"\r\n (click)=\"clear()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Cancel'\"></i>\r\n </button>\r\n </ng-container>\r\n </div>\r\n <!--FILTER CHIPS-->\r\n <!-- This example requires Tailwind CSS v2.0+ -->\r\n <ng-container *ngFor=\"let filter of filters; let i = index\">\r\n <span *ngIf=\"filter && filter.member\"\r\n class=\"advanced-search-chips\">\r\n {{ filter.uiName }} {{ filter.uiOperator }} '{{ filter.uiValue }}'\r\n <button (click)=\"removeFilter(i)\"\r\n type=\"button\"\r\n class=\"advanced-search-chips-remove-filter\">\r\n <span class=\"sr-only\">Remove large option</span>\r\n <svg class=\"h-2 w-2\"\r\n stroke=\"currentColor\"\r\n fill=\"none\"\r\n viewBox=\"0 0 8 8\">\r\n <path stroke-linecap=\"round\"\r\n stroke-width=\"1.5\"\r\n d=\"M1 1l6 6m0-6L1 7\" />\r\n </svg>\r\n </button>\r\n </span>\r\n </ng-container>\r\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.DatepickerComponent, selector: "lib-date-picker", inputs: ["readonly", "disabled", "inline", "display-format", "placeholder", "value", "minDate", "maxDate"], outputs: ["valueChange"] }, { kind: "component", type: i4.DropDownMenuComponent, selector: "lib-drop-down-menu", inputs: ["options", "selected", "multiple", "placeholder", "show-icons"], outputs: ["selectedChange", "selectedChanged"] }] });
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AdvancedSearchComponent, decorators: [{
140
+ AdvancedSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AdvancedSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
141
+ AdvancedSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: AdvancedSearchComponent, selector: "lib-advanced-search", inputs: { searchOptions: ["search-options", "searchOptions"], operatorsDisabled: ["operators-disabled", "operatorsDisabled"], filters: "filters" }, outputs: { advancedSearchChanged: "advancedSearchChanged" }, ngImport: i0, template: "<div class=\"advanced-search-container\">\r\n <div class=\"advanced-search-filter\">\r\n <!--SEARCH FIELDS-->\r\n <div class=\"advanced-search-filter-field-container\">\r\n <label class=\"advanced-search-filter-field-label\"\r\n for=\"selectedField\">\r\n \u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7 \u03B1\u03BD\u03AC:\r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptions\"\r\n (selectedChanged)=\"selectedFieldChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <!--SEARCH FIELDS OPERATOR MENU-->\r\n <div *ngIf=\"!operatorsDisabled && selectedField\"\r\n class=\"advanced-search-filter-operator-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array' || selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-operator-label\"\r\n for=\"selectedOperator\">\r\n &nbsp;\r\n </label>\r\n <lib-drop-down-menu [options]=\"operatorMenuOptions\"\r\n [selected]=\"selectedOperator\"\r\n (selectedChanged)=\"selectedOperatorChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n </div>\r\n <!--SEARCH FIELDS INPUT-->\r\n <div *ngIf=\"selectedField\"\r\n class=\"advanced-search-filter-value-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n &nbsp;\r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptionsDictionary[selectedField.field]\"\r\n [selected]=\"fieldValue\"\r\n (selectedChanged)=\"selectedFieldValueChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n &nbsp;\r\n </label>\r\n <input (keyup.enter)=\"search()\"\r\n [(ngModel)]=\"fieldValue\"\r\n name=\"fieldValue\"\r\n type=\"text\"\r\n placeholder=\"\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7\"\r\n maxlength=\"300\"\r\n class=\"advanced-search-filter-value-input\">\r\n </div>\r\n <ng-container *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <div>\r\n <span class=\"advanced-search-filter-value-input-daterange-from\">\r\n \u0391\u03C0\u03CC:\r\n </span>\r\n <lib-date-picker [maxDate]=\"fieldValueDateTo\"\r\n [(ngModel)]=\"fieldValueDateFrom\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <span class=\"advanced-search-filter-value-input-daterange-to\">\r\n \u0388\u03C9\u03C2:\r\n </span>\r\n <lib-date-picker [minDate]=\"fieldValueDateFrom\"\r\n [(ngModel)]=\"fieldValueDateTo\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"selectedField\">\r\n <!--DO SEARCH-->\r\n <button type=\"button\"\r\n [ngClass]=\"{'opacity-50 cursor-not-allowed': isDateValueUnpicked() && isFieldAndOperatorUnpicked()}\"\r\n [disabled]=\"isDateValueUnpicked() && isFieldAndOperatorUnpicked()\"\r\n (click)=\"search()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Search'\"></i>\r\n </button>\r\n <!--CLEAR-->\r\n <button type=\"button\"\r\n (click)=\"clear()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Cancel'\"></i>\r\n </button>\r\n </ng-container>\r\n </div>\r\n <!--FILTER CHIPS-->\r\n <!-- This example requires Tailwind CSS v2.0+ -->\r\n <ng-container *ngFor=\"let filter of filters; let i = index\">\r\n <span *ngIf=\"filter && filter.member\"\r\n class=\"advanced-search-chips\">\r\n {{ filter.uiName }} {{ filter.uiOperator }} '{{ filter.uiValue }}'\r\n <button (click)=\"removeFilter(i)\"\r\n type=\"button\"\r\n class=\"advanced-search-chips-remove-filter\">\r\n <span class=\"sr-only\">Remove large option</span>\r\n <svg class=\"h-2 w-2\"\r\n stroke=\"currentColor\"\r\n fill=\"none\"\r\n viewBox=\"0 0 8 8\">\r\n <path stroke-linecap=\"round\"\r\n stroke-width=\"1.5\"\r\n d=\"M1 1l6 6m0-6L1 7\" />\r\n </svg>\r\n </button>\r\n </span>\r\n </ng-container>\r\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.DatepickerComponent, selector: "lib-date-picker", inputs: ["readonly", "disabled", "inline", "display-format", "placeholder", "value", "minDate", "maxDate"], outputs: ["valueChange"] }, { kind: "component", type: i4.DropDownMenuComponent, selector: "lib-drop-down-menu", inputs: ["options", "selected", "multiple", "placeholder", "show-icons"], outputs: ["selectedChange", "selectedChanged"] }] });
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AdvancedSearchComponent, decorators: [{
143
143
  type: Component,
144
144
  args: [{ selector: 'lib-advanced-search', template: "<div class=\"advanced-search-container\">\r\n <div class=\"advanced-search-filter\">\r\n <!--SEARCH FIELDS-->\r\n <div class=\"advanced-search-filter-field-container\">\r\n <label class=\"advanced-search-filter-field-label\"\r\n for=\"selectedField\">\r\n \u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7 \u03B1\u03BD\u03AC:\r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptions\"\r\n (selectedChanged)=\"selectedFieldChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <!--SEARCH FIELDS OPERATOR MENU-->\r\n <div *ngIf=\"!operatorsDisabled && selectedField\"\r\n class=\"advanced-search-filter-operator-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array' || selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-operator-label\"\r\n for=\"selectedOperator\">\r\n &nbsp;\r\n </label>\r\n <lib-drop-down-menu [options]=\"operatorMenuOptions\"\r\n [selected]=\"selectedOperator\"\r\n (selectedChanged)=\"selectedOperatorChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n </div>\r\n <!--SEARCH FIELDS INPUT-->\r\n <div *ngIf=\"selectedField\"\r\n class=\"advanced-search-filter-value-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n &nbsp;\r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptionsDictionary[selectedField.field]\"\r\n [selected]=\"fieldValue\"\r\n (selectedChanged)=\"selectedFieldValueChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n &nbsp;\r\n </label>\r\n <input (keyup.enter)=\"search()\"\r\n [(ngModel)]=\"fieldValue\"\r\n name=\"fieldValue\"\r\n type=\"text\"\r\n placeholder=\"\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7\"\r\n maxlength=\"300\"\r\n class=\"advanced-search-filter-value-input\">\r\n </div>\r\n <ng-container *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <div>\r\n <span class=\"advanced-search-filter-value-input-daterange-from\">\r\n \u0391\u03C0\u03CC:\r\n </span>\r\n <lib-date-picker [maxDate]=\"fieldValueDateTo\"\r\n [(ngModel)]=\"fieldValueDateFrom\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <span class=\"advanced-search-filter-value-input-daterange-to\">\r\n \u0388\u03C9\u03C2:\r\n </span>\r\n <lib-date-picker [minDate]=\"fieldValueDateFrom\"\r\n [(ngModel)]=\"fieldValueDateTo\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"selectedField\">\r\n <!--DO SEARCH-->\r\n <button type=\"button\"\r\n [ngClass]=\"{'opacity-50 cursor-not-allowed': isDateValueUnpicked() && isFieldAndOperatorUnpicked()}\"\r\n [disabled]=\"isDateValueUnpicked() && isFieldAndOperatorUnpicked()\"\r\n (click)=\"search()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Search'\"></i>\r\n </button>\r\n <!--CLEAR-->\r\n <button type=\"button\"\r\n (click)=\"clear()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Cancel'\"></i>\r\n </button>\r\n </ng-container>\r\n </div>\r\n <!--FILTER CHIPS-->\r\n <!-- This example requires Tailwind CSS v2.0+ -->\r\n <ng-container *ngFor=\"let filter of filters; let i = index\">\r\n <span *ngIf=\"filter && filter.member\"\r\n class=\"advanced-search-chips\">\r\n {{ filter.uiName }} {{ filter.uiOperator }} '{{ filter.uiValue }}'\r\n <button (click)=\"removeFilter(i)\"\r\n type=\"button\"\r\n class=\"advanced-search-chips-remove-filter\">\r\n <span class=\"sr-only\">Remove large option</span>\r\n <svg class=\"h-2 w-2\"\r\n stroke=\"currentColor\"\r\n fill=\"none\"\r\n viewBox=\"0 0 8 8\">\r\n <path stroke-linecap=\"round\"\r\n stroke-width=\"1.5\"\r\n d=\"M1 1l6 6m0-6L1 7\" />\r\n </svg>\r\n </button>\r\n </span>\r\n </ng-container>\r\n</div>" }]
145
145
  }], ctorParameters: function () { return []; }, propDecorators: { advancedSearchChanged: [{
@@ -153,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImpor
153
153
  }], filters: [{
154
154
  type: Input
155
155
  }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9hZHZhbmNlZC1zZWFyY2gvYWR2YW5jZWQtc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9hZHZhbmNlZC1zZWFyY2gvYWR2YW5jZWQtc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFnQixZQUFZLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7OztBQU1uRyxNQUFNLE9BQU8sdUJBQXVCO0lBZ0JsQztRQWZVLDBCQUFxQixHQUFpQyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUMxRSxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFDL0Isc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ3ZELFlBQU8sR0FBbUIsRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQUMvQix3QkFBbUIsR0FBaUIsRUFBRSxDQUFDO1FBQ3ZDLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ2xDLGNBQVMsR0FBb0MsRUFBRSxDQUFDO1FBTWhELDBCQUFxQixHQUFvQyxFQUFFLENBQUM7SUFFbkQsQ0FBQztJQUVWLFFBQVE7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNwQixJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUk7Z0JB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QUFJLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxDQUFDO0lBQ3RGLENBQUM7SUFFTSwwQkFBMEI7UUFDL0IsZ0dBQWdHO1FBQ2hHLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDekksQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7UUFDbEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDOztvSEFqSlUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNFFDUnBDLHM1S0F3R007MkZEaEdPLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxxQkFBcUI7MEVBSXJCLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFDa0IsYUFBYTtzQkFBckMsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBQ00saUJBQWlCO3NCQUE3QyxLQUFLO3VCQUFDLG9CQUFvQjtnQkFDbEIsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZW51T3B0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBTZWFyY2hPcHRpb24sIEZpbHRlckNsYXVzZSwgUXVlcnlQYXJhbWV0ZXJzLCBPcGVyYXRvcnMsIE9wZXJhdG9yT3B0aW9ucyB9IGZyb20gJy4vbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFkdmFuY2VkLXNlYXJjaCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkdmFuY2VkLXNlYXJjaC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAT3V0cHV0KCkgYWR2YW5jZWRTZWFyY2hDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8RmlsdGVyQ2xhdXNlW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWx0ZXJDbGF1c2VbXT4oKTtcclxuICBASW5wdXQoJ3NlYXJjaC1vcHRpb25zJykgc2VhcmNoT3B0aW9uczogU2VhcmNoT3B0aW9uW10gPSBbXTtcclxuICBASW5wdXQoJ29wZXJhdG9ycy1kaXNhYmxlZCcpIG9wZXJhdG9yc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZmlsdGVyczogRmlsdGVyQ2xhdXNlW10gPSBbXTtcclxuICBwdWJsaWMgbWVudU9wdGlvbnM6IE1lbnVPcHRpb25bXSA9IFtdO1xyXG4gIHB1YmxpYyBvcGVyYXRvck1lbnVPcHRpb25zOiBNZW51T3B0aW9uW10gPSBbXTtcclxuICBwdWJsaWMgb3BlcmF0b3JPcHRpb25zID0gT3BlcmF0b3JPcHRpb25zO1xyXG4gIHB1YmxpYyBvcGVyYXRvcnM6IHsgW2tleTogc3RyaW5nXTogTWVudU9wdGlvbltdIH0gPSB7fTtcclxuICBwdWJsaWMgc2VsZWN0ZWRPcGVyYXRvcj86IHN0cmluZztcclxuICBwdWJsaWMgc2VsZWN0ZWRGaWVsZD86IFNlYXJjaE9wdGlvbjtcclxuICBwdWJsaWMgZmllbGRWYWx1ZT86IHN0cmluZztcclxuICBwdWJsaWMgZmllbGRWYWx1ZURhdGVGcm9tOiBhbnk7XHJcbiAgcHVibGljIGZpZWxkVmFsdWVEYXRlVG86IGFueTtcclxuICBwdWJsaWMgbWVudU9wdGlvbnNEaWN0aW9uYXJ5OiB7IFtrZXk6IHN0cmluZ106IE1lbnVPcHRpb25bXSB9ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoT3B0aW9ucy5mb3JFYWNoKChzZWFyY2hPcHRpb24pID0+IHtcclxuICAgICAgdGhpcy5tZW51T3B0aW9ucy5wdXNoKHtcclxuICAgICAgICB0ZXh0OiBzZWFyY2hPcHRpb24ubmFtZSxcclxuICAgICAgICB2YWx1ZTogc2VhcmNoT3B0aW9uLmZpZWxkLFxyXG4gICAgICAgIGRhdGE6IHNlYXJjaE9wdGlvbi5kYXRhVHlwZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogc2VhcmNoT3B0aW9uLnBsYWNlaG9sZGVyLFxyXG4gICAgICAgIGljb246IHVuZGVmaW5lZFxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHNlYXJjaE9wdGlvbi5kYXRhVHlwZSA9PT0gJ2FycmF5Jykge1xyXG4gICAgICAgIGxldCBtZW51T3B0czogTWVudU9wdGlvbltdID0gW107XHJcbiAgICAgICAgc2VhcmNoT3B0aW9uLm9wdGlvbnM/LmZvckVhY2goKHNlbGVjdElucHV0T3B0aW9uKSA9PiB7XHJcbiAgICAgICAgICBtZW51T3B0cy5wdXNoKHtcclxuICAgICAgICAgICAgdGV4dDogc2VsZWN0SW5wdXRPcHRpb24ubGFiZWwsXHJcbiAgICAgICAgICAgIHZhbHVlOiBzZWxlY3RJbnB1dE9wdGlvbi52YWx1ZSxcclxuICAgICAgICAgICAgZGF0YTogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc2VsZWN0SW5wdXRPcHRpb24uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIGljb246IHVuZGVmaW5lZFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICB0aGlzLm1lbnVPcHRpb25zRGljdGlvbmFyeVtzZWFyY2hPcHRpb24uZmllbGRdID0gbWVudU9wdHM7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdGVkRmllbGRDaGFuZ2VkKGZpZWxkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWVsZCA9IHRoaXMuc2VhcmNoT3B0aW9ucy5maW5kKChzZWFyY2hPcHRpb24pID0+IHNlYXJjaE9wdGlvbi5maWVsZCA9PT0gZmllbGQpO1xyXG4gICAgdGhpcy5zZWxlY3RlZE9wZXJhdG9yID0gdW5kZWZpbmVkO1xyXG4gICAgLy8gU2luY2Ugd2UgaGF2ZSBzcGVjaWFsIFVJIGhhbmRsaW5nIGZvciB0aGUgZGF0ZXJhbmdlLCB3ZSBkb24ndCBuZWVkIHRvIGZpbGwgdGhlIG9wZXJhdG9yTWVudU9wdGlvbnMgaW4gdGhhdCBjYXNlLlxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRGaWVsZD8uZGF0YVR5cGUgIT0gJ2RhdGVyYW5nZScpIHtcclxuICAgICAgbGV0IG9wZXJhdG9yTWVudU9wdHM6IE1lbnVPcHRpb25bXSA9IFtdO1xyXG4gICAgICAvLyBiYXNlZCBvbiB0aGUgZGF0YSB0eXBlIHRoYXQgd2UgYXJlIGZpbHRlcmluZywgZmlsbCB0aGUgb3BlcmF0b3IgZHJvcGRvd24gd2l0aCB0aGUgY29ycmVjdCBvcGVyYXRvcnMuIFRoZSBkZWZhdWx0IGlzIHRoZSBzdHJpbmcgd2l0aCBlcXVhbHMvbm90LWVxdWFscy9jb250YWluc1xyXG4gICAgICB0aGlzLm9wZXJhdG9yT3B0aW9uc1t0aGlzLnNlbGVjdGVkRmllbGQ/LmRhdGFUeXBlID8/ICdzdHJpbmcnXS5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgIG9wZXJhdG9yTWVudU9wdHMucHVzaCh7XHJcbiAgICAgICAgICB0ZXh0OiB4LmRlc2NyaXB0aW9uID8/IHgubGFiZWwsXHJcbiAgICAgICAgICB2YWx1ZTogeC52YWx1ZSxcclxuICAgICAgICAgIGRhdGE6IHVuZGVmaW5lZCxcclxuICAgICAgICAgIGRlc2NyaXB0aW9uOiB4LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgaWNvbjogdW5kZWZpbmVkXHJcbiAgICAgICAgfSlcclxuICAgICAgfSlcclxuICAgICAgdGhpcy5vcGVyYXRvck1lbnVPcHRpb25zID0gb3BlcmF0b3JNZW51T3B0cztcclxuICAgICAgLy8gUHJlc2VsZWN0IHRoZSBmaXJzdCBvcHRpb24gZnJvbSB0aGUgb3BlcmF0b3JzIG1lbnUgc28gdGhlcmUgd2lsbCBhbHdheXMgYmUgYSBkZWZhdWx0IHZhbHVlLCB3aGljaCBpcyB0aGUgJ2VxdWFscycgb3BlcmF0b3IgZm9yIGFsbCBkYXRhIHR5cGVzIGZvciBub3cuXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcGVyYXRvciA9IHRoaXMub3BlcmF0b3JNZW51T3B0aW9uc1swXS52YWx1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuZmllbGRWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZE9wZXJhdG9yQ2hhbmdlZChvcGVyYXRvcjogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkT3BlcmF0b3IgPSBvcGVyYXRvcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZEZpZWxkVmFsdWVDaGFuZ2VkKGZpZWxkVmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5maWVsZFZhbHVlID0gZmllbGRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWFyY2goKSB7XHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRGaWVsZCB8fCAhdGhpcy5zZWxlY3RlZEZpZWxkLmRhdGFUeXBlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIHRoZSBmaWx0ZXIgaXMgb2YgdHlwZSAnZGF0ZXJhbmdlJ1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRGaWVsZC5kYXRhVHlwZSA9PT0gJ2RhdGVyYW5nZScpIHtcclxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkRmllbGQubXVsdGlUZXJtKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJzID0gdGhpcy5maWx0ZXJzLmZpbHRlcigoZikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGYubWVtYmVyICE9PSBRdWVyeVBhcmFtZXRlcnMuRklMVEVSX0ZST00gJiYgZi5tZW1iZXIgIT09IFF1ZXJ5UGFyYW1ldGVycy5GSUxURVJfVE87XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZmllbGRWYWx1ZURhdGVGcm9tKSB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyQ2xhdXNlRnJvbSA9IG5ldyBGaWx0ZXJDbGF1c2UoUXVlcnlQYXJhbWV0ZXJzLkZJTFRFUl9GUk9NLCB0aGlzLmZpZWxkVmFsdWVEYXRlRnJvbSwgT3BlcmF0b3JzLkdSRUFURVJfVEhBTl9FUVVBTC52YWx1ZSBhcyBGaWx0ZXJDbGF1c2UuT3AsICdkYXRldGltZScsIHRoaXMuc2VhcmNoT3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJzLnB1c2goZmlsdGVyQ2xhdXNlRnJvbSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmZpZWxkVmFsdWVEYXRlVG8pIHtcclxuICAgICAgICBjb25zdCBmaWx0ZXJDbGF1c2VUbyA9IG5ldyBGaWx0ZXJDbGF1c2UoUXVlcnlQYXJhbWV0ZXJzLkZJTFRFUl9UTywgdGhpcy5maWVsZFZhbHVlRGF0ZVRvLCBPcGVyYXRvcnMuTEVTU19USEFOX0VRVUFMLnZhbHVlIGFzIEZpbHRlckNsYXVzZS5PcCwgJ2RhdGV0aW1lJywgdGhpcy5zZWFyY2hPcHRpb25zKTtcclxuICAgICAgICB0aGlzLmZpbHRlcnMucHVzaChmaWx0ZXJDbGF1c2VUbyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIHRoZSBmaWx0ZXIgaXNuJ3Qgb2YgdHlwZSAnZGF0ZXJhbmdlJyAoZXZlcnl0aGluZyBlbHNlKVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmZpZWxkVmFsdWUgPT09IHVuZGVmaW5lZCkgeyAvLyBoYW5kbGUgZW1wdHkgZmllbGQgdmFsdWVcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgLy8gaWYgbm8gb3BlcmF0b3Igd2FzIHByb3ZpZGVkLCBpdCBmYWxscyBiYWNrIHRvIHRoZSBkZWZhdWx0ICdlcXVhbHMnIG9wZXJhdG9yXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcGVyYXRvciA9IHRoaXMuc2VsZWN0ZWRPcGVyYXRvciA/PyBPcGVyYXRvcnMuRVFVQUxTLnZhbHVlO1xyXG4gICAgICAvLyBjcmVhdGUgdGhlIGZpbHRlckNsYXVzZVxyXG4gICAgICBjb25zdCBmaWx0ZXJDbGF1c2UgPSBuZXcgRmlsdGVyQ2xhdXNlKHRoaXMuc2VsZWN0ZWRGaWVsZC5maWVsZCwgdGhpcy5maWVsZFZhbHVlLCB0aGlzLnNlbGVjdGVkT3BlcmF0b3IgYXMgRmlsdGVyQ2xhdXNlLk9wLCB0aGlzLnNlbGVjdGVkRmllbGQuZGF0YVR5cGUsIHRoaXMuc2VhcmNoT3B0aW9ucyk7XHJcbiAgICAgIGlmICghdGhpcy5zZWxlY3RlZEZpZWxkLm11bHRpVGVybSkgeyAvLyBtdWx0aVRlcm0gbWVhbnMgdGhhdCB3ZSBjYW4gaGF2ZSBtdWx0aXBsZSBmaWx0ZXIgdmFsdWVzIG9mIHRoZSBTQU1FIGZpbHRlciBjbGF1c2UgKGVnIFwiZmlsdGVyIGNhc2UgdHlwZXMgdGhhdCBhcmUgUGhvbmUgT1IgQWRkcmVzc1wiKVxyXG4gICAgICAgIHRoaXMuZmlsdGVycyA9IHRoaXMuZmlsdGVycy5maWx0ZXIoKGYpID0+IHtcclxuICAgICAgICAgIHJldHVybiBmLm1lbWJlciAhPT0gdGhpcy5zZWxlY3RlZEZpZWxkIS5maWVsZDtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHsgLy8gc2VsZWN0ZWRGaWVsZCBpcyBtdWx0aVRlcm06IGp1c3QgY2hlY2tpbmcgaWYgd2UgYWxyZWFkeSBoYXZlIHRoZSBuZXdseSBzZWxlY3RlZCBmaWx0ZXJDbGF1c2UgaW4gZmlsdGVyc1xyXG4gICAgICAgIGNvbnN0IGlzRHVwbGljYXRlID0gdGhpcy5maWx0ZXJzLnNvbWUoZiA9PiBmLnRvU3RyaW5nKCkgPT09IGZpbHRlckNsYXVzZS50b1N0cmluZygpKTtcclxuICAgICAgICBpZiAoaXNEdXBsaWNhdGUpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZmlsdGVycy5wdXNoKGZpbHRlckNsYXVzZSk7XHJcbiAgICAgIHRoaXMuZmllbGRWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHRoaXMuYWR2YW5jZWRTZWFyY2hDaGFuZ2VkLmVtaXQodGhpcy5maWx0ZXJzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVGaWx0ZXIoaW5kZXg6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuZmlsdGVycyAmJiB0aGlzLmZpbHRlcnMubGVuZ3RoID49IGluZGV4KSB7XHJcbiAgICAgIHRoaXMuZmlsdGVycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB0aGlzLmFkdmFuY2VkU2VhcmNoQ2hhbmdlZC5lbWl0KHRoaXMuZmlsdGVycyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNEYXRlVmFsdWVVbnBpY2tlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmZpZWxkVmFsdWVEYXRlRnJvbSA9PT0gdW5kZWZpbmVkICYmIHRoaXMuZmllbGRWYWx1ZURhdGVUbyA9PT0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzRmllbGRBbmRPcGVyYXRvclVucGlja2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgLy8gaWYgdGhlIG9wZXJhdG9ycyBhcmUgZW5hYmxlZCB3ZSBuZWVkIHRvIGNoZWNrIGZvciBib3RoIHRoZSBmaWVsZCB2YWx1ZSBhbmQgdGhlIG9wZXJhdG9yIHZhbHVlXHJcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRvcnNEaXNhYmxlZCA/IHRoaXMuZmllbGRWYWx1ZSA9PT0gdW5kZWZpbmVkIDogKHRoaXMuZmllbGRWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuc2VsZWN0ZWRPcGVyYXRvciA9PT0gdW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhcigpIHtcclxuICAgIHRoaXMuZmllbGRWYWx1ZURhdGVGcm9tID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5maWVsZFZhbHVlRGF0ZVRvID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpZWxkID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5maWVsZFZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zZWxlY3RlZE9wZXJhdG9yID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5maWx0ZXJzID0gW107XHJcbiAgICB0aGlzLmFkdmFuY2VkU2VhcmNoQ2hhbmdlZC5lbWl0KHRoaXMuZmlsdGVycyk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1maWx0ZXJcIj5cclxuICAgICAgICA8IS0tU0VBUkNIIEZJRUxEUy0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtZmlsdGVyLWZpZWxkLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtZmlsdGVyLWZpZWxkLWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgIGZvcj1cInNlbGVjdGVkRmllbGRcIj5cclxuICAgICAgICAgICAgICAgIM6Rzr3Osc62zq7PhM63z4POtyDOsc69zqw6XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxsaWItZHJvcC1kb3duLW1lbnUgW29wdGlvbnNdPVwibWVudU9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZWQpPVwic2VsZWN0ZWRGaWVsZENoYW5nZWQoJGV2ZW50KVwiPjwvbGliLWRyb3AtZG93bi1tZW51PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1TRUFSQ0ggRklFTERTIE9QRVJBVE9SIE1FTlUtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIW9wZXJhdG9yc0Rpc2FibGVkICYmIHNlbGVjdGVkRmllbGRcIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtZmlsdGVyLW9wZXJhdG9yLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRGaWVsZC5kYXRhVHlwZSA9PT0gJ2FycmF5JyB8fCBzZWxlY3RlZEZpZWxkLmRhdGFUeXBlID09PSAnc3RyaW5nJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWZpbHRlci1vcGVyYXRvci1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwic2VsZWN0ZWRPcGVyYXRvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxsaWItZHJvcC1kb3duLW1lbnUgW29wdGlvbnNdPVwib3BlcmF0b3JNZW51T3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZE9wZXJhdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlZCk9XCJzZWxlY3RlZE9wZXJhdG9yQ2hhbmdlZCgkZXZlbnQpXCI+PC9saWItZHJvcC1kb3duLW1lbnU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1TRUFSQ0ggRklFTERTIElOUFVULS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkRmllbGRcIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtZmlsdGVyLXZhbHVlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRGaWVsZC5kYXRhVHlwZSA9PT0gJ2FycmF5J1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWZpbHRlci12YWx1ZS1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmllbGRWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxsaWItZHJvcC1kb3duLW1lbnUgW29wdGlvbnNdPVwibWVudU9wdGlvbnNEaWN0aW9uYXJ5W3NlbGVjdGVkRmllbGQuZmllbGRdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cImZpZWxkVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2VkKT1cInNlbGVjdGVkRmllbGRWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiPjwvbGliLWRyb3AtZG93bi1tZW51PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkRmllbGQuZGF0YVR5cGUgPT09ICdzdHJpbmcnXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtZmlsdGVyLXZhbHVlLWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJmaWVsZFZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IChrZXl1cC5lbnRlcik9XCJzZWFyY2goKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWVsZFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZmllbGRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwizpHOvc6xzrbOrs+EzrfPg863XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWZpbHRlci12YWx1ZS1pbnB1dFwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkRmllbGQuZGF0YVR5cGUgPT09ICdkYXRlcmFuZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWZpbHRlci12YWx1ZS1pbnB1dC1kYXRlcmFuZ2UtZnJvbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICDOkc+Az4w6XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItZGF0ZS1waWNrZXIgW21heERhdGVdPVwiZmllbGRWYWx1ZURhdGVUb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpZWxkVmFsdWVEYXRlRnJvbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJzAxLzAxLzIwMjInXCI+PC9saWItZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZEZpZWxkLmRhdGFUeXBlID09PSAnZGF0ZXJhbmdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWZpbHRlci12YWx1ZS1pbnB1dC1kYXRlcmFuZ2UtdG9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgzojPic+COlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLWRhdGUtcGlja2VyIFttaW5EYXRlXT1cImZpZWxkVmFsdWVEYXRlRnJvbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpZWxkVmFsdWVEYXRlVG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIicwMS8wMS8yMDIyJ1wiPjwvbGliLWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZEZpZWxkXCI+XHJcbiAgICAgICAgICAgIDwhLS1ETyBTRUFSQ0gtLT5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J29wYWNpdHktNTAgY3Vyc29yLW5vdC1hbGxvd2VkJzogaXNEYXRlVmFsdWVVbnBpY2tlZCgpICYmIGlzRmllbGRBbmRPcGVyYXRvclVucGlja2VkKCl9XCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEYXRlVmFsdWVVbnBpY2tlZCgpICYmIGlzRmllbGRBbmRPcGVyYXRvclVucGlja2VkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWFyY2goKVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIidtcy1JY29uIG1zLUljb24tLVNlYXJjaCdcIj48L2k+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8IS0tQ0xFQVItLT5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXIoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIidtcy1JY29uIG1zLUljb24tLUNhbmNlbCdcIj48L2k+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tRklMVEVSIENISVBTLS0+XHJcbiAgICA8IS0tIFRoaXMgZXhhbXBsZSByZXF1aXJlcyBUYWlsd2luZCBDU1MgdjIuMCsgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgZmlsdGVyczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZmlsdGVyICYmIGZpbHRlci5tZW1iZXJcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWNoaXBzXCI+XHJcbiAgICAgICAgICAgIHt7IGZpbHRlci51aU5hbWUgfX0ge3sgZmlsdGVyLnVpT3BlcmF0b3IgfX0gJ3t7IGZpbHRlci51aVZhbHVlIH19J1xyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJyZW1vdmVGaWx0ZXIoaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWNoaXBzLXJlbW92ZS1maWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPlJlbW92ZSBsYXJnZSBvcHRpb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiaC0yIHctMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCA4IDhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMSAxbDYgNm0wLTZMMSA3XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+Il19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9hZHZhbmNlZC1zZWFyY2gvYWR2YW5jZWQtc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9hZHZhbmNlZC1zZWFyY2gvYWR2YW5jZWQtc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFnQixZQUFZLEVBQW1CLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7OztBQU1uRyxNQUFNLE9BQU8sdUJBQXVCO0lBZ0JsQztRQWZVLDBCQUFxQixHQUFpQyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUMxRSxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFDL0Isc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ3ZELFlBQU8sR0FBbUIsRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQUMvQix3QkFBbUIsR0FBaUIsRUFBRSxDQUFDO1FBQ3ZDLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ2xDLGNBQVMsR0FBb0MsRUFBRSxDQUFDO1FBTWhELDBCQUFxQixHQUFvQyxFQUFFLENBQUM7SUFFbkQsQ0FBQztJQUVWLFFBQVE7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNwQixJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUk7Z0JBQ3ZCLEtBQUss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QUM7SUFFTSwwQkFBMEI7UUFDL0IsZ0dBQWdHO1FBQ2hHLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDekksQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7UUFDbEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDOztvSEFqSlUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNFFDUnBDLHM1S0F3R007MkZEaEdPLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxxQkFBcUI7MEVBSXJCLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFDa0IsYUFBYTtzQkFBckMsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBQ00saUJBQWlCO3NCQUE3QyxLQUFLO3VCQUFDLG9CQUFvQjtnQkFDbEIsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZW51T3B0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBTZWFyY2hPcHRpb24sIEZpbHRlckNsYXVzZSwgUXVlcnlQYXJhbWV0ZXJzLCBPcGVyYXRvcnMsIE9wZXJhdG9yT3B0aW9ucyB9IGZyb20gJy4vbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFkdmFuY2VkLXNlYXJjaCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkdmFuY2VkLXNlYXJjaC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAT3V0cHV0KCkgYWR2YW5jZWRTZWFyY2hDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8RmlsdGVyQ2xhdXNlW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWx0ZXJDbGF1c2VbXT4oKTtcclxuICBASW5wdXQoJ3NlYXJjaC1vcHRpb25zJykgc2VhcmNoT3B0aW9uczogU2VhcmNoT3B0aW9uW10gPSBbXTtcclxuICBASW5wdXQoJ29wZXJhdG9ycy1kaXNhYmxlZCcpIG9wZXJhdG9yc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZmlsdGVyczogRmlsdGVyQ2xhdXNlW10gPSBbXTtcclxuICBwdWJsaWMgbWVudU9wdGlvbnM6IE1lbnVPcHRpb25bXSA9IFtdO1xyXG4gIHB1YmxpYyBvcGVyYXRvck1lbnVPcHRpb25zOiBNZW51T3B0aW9uW10gPSBbXTtcclxuICBwdWJsaWMgb3BlcmF0b3JPcHRpb25zID0gT3BlcmF0b3JPcHRpb25zO1xyXG4gIHB1YmxpYyBvcGVyYXRvcnM6IHsgW2tleTogc3RyaW5nXTogTWVudU9wdGlvbltdIH0gPSB7fTtcclxuICBwdWJsaWMgc2VsZWN0ZWRPcGVyYXRvcj86IHN0cmluZztcclxuICBwdWJsaWMgc2VsZWN0ZWRGaWVsZD86IFNlYXJjaE9wdGlvbjtcclxuICBwdWJsaWMgZmllbGRWYWx1ZT86IHN0cmluZztcclxuICBwdWJsaWMgZmllbGRWYWx1ZURhdGVGcm9tOiBhbnk7XHJcbiAgcHVibGljIGZpZWxkVmFsdWVEYXRlVG86IGFueTtcclxuICBwdWJsaWMgbWVudU9wdGlvbnNEaWN0aW9uYXJ5OiB7IFtrZXk6IHN0cmluZ106IE1lbnVPcHRpb25bXSB9ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoT3B0aW9ucy5mb3JFYWNoKChzZWFyY2hPcHRpb24pID0+IHtcclxuICAgICAgdGhpcy5tZW51T3B0aW9ucy5wdXNoKHtcclxuICAgICAgICB0ZXh0OiBzZWFyY2hPcHRpb24ubmFtZSxcclxuICAgICAgICB2YWx1ZTogc2VhcmNoT3B0aW9uLmZpZWxkLFxyXG4gICAgICAgIGRhdGE6IHNlYXJjaE9wdGlvbi5kYXRhVHlwZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogc2VhcmNoT3B0aW9uLnBsYWNlaG9sZGVyLFxyXG4gICAgICAgIGljb246IHVuZGVmaW5lZFxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHNlYXJjaE9wdGlvbi5kYXRhVHlwZSA9PT0gJ2FycmF5Jykge1xyXG4gICAgICAgIGxldCBtZW51T3B0czogTWVudU9wdGlvbltdID0gW107XHJcbiAgICAgICAgc2VhcmNoT3B0aW9uLm9wdGlvbnM/LmZvckVhY2goKHNlbGVjdElucHV0T3B0aW9uKSA9PiB7XHJcbiAgICAgICAgICBtZW51T3B0cy5wdXNoKHtcclxuICAgICAgICAgICAgdGV4dDogc2VsZWN0SW5wdXRPcHRpb24ubGFiZWwsXHJcbiAgICAgICAgICAgIHZhbHVlOiBzZWxlY3RJbnB1dE9wdGlvbi52YWx1ZSxcclxuICAgICAgICAgICAgZGF0YTogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc2VsZWN0SW5wdXRPcHRpb24uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIGljb246IHVuZGVmaW5lZFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICB0aGlzLm1lbnVPcHRpb25zRGljdGlvbmFyeVtzZWFyY2hPcHRpb24uZmllbGRdID0gbWVudU9wdHM7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdGVkRmllbGRDaGFuZ2VkKGZpZWxkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWVsZCA9IHRoaXMuc2VhcmNoT3B0aW9ucy5maW5kKChzZWFyY2hPcHRpb24pID0+IHNlYXJjaE9wdGlvbi5maWVsZCA9PT0gZmllbGQpO1xyXG4gICAgdGhpcy5zZWxlY3RlZE9wZXJhdG9yID0gdW5kZWZpbmVkO1xyXG4gICAgLy8gU2luY2Ugd2UgaGF2ZSBzcGVjaWFsIFVJIGhhbmRsaW5nIGZvciB0aGUgZGF0ZXJhbmdlLCB3ZSBkb24ndCBuZWVkIHRvIGZpbGwgdGhlIG9wZXJhdG9yTWVudU9wdGlvbnMgaW4gdGhhdCBjYXNlLlxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRGaWVsZD8uZGF0YVR5cGUgIT0gJ2RhdGVyYW5nZScpIHtcclxuICAgICAgbGV0IG9wZXJhdG9yTWVudU9wdHM6IE1lbnVPcHRpb25bXSA9IFtdO1xyXG4gICAgICAvLyBiYXNlZCBvbiB0aGUgZGF0YSB0eXBlIHRoYXQgd2UgYXJlIGZpbHRlcmluZywgZmlsbCB0aGUgb3BlcmF0b3IgZHJvcGRvd24gd2l0aCB0aGUgY29ycmVjdCBvcGVyYXRvcnMuIFRoZSBkZWZhdWx0IGlzIHRoZSBzdHJpbmcgd2l0aCBlcXVhbHMvbm90LWVxdWFscy9jb250YWluc1xyXG4gICAgICB0aGlzLm9wZXJhdG9yT3B0aW9uc1t0aGlzLnNlbGVjdGVkRmllbGQ/LmRhdGFUeXBlID8/ICdzdHJpbmcnXS5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgIG9wZXJhdG9yTWVudU9wdHMucHVzaCh7XHJcbiAgICAgICAgICB0ZXh0OiB4LmRlc2NyaXB0aW9uID8/IHgubGFiZWwsXHJcbiAgICAgICAgICB2YWx1ZTogeC52YWx1ZSxcclxuICAgICAgICAgIGRhdGE6IHVuZGVmaW5lZCxcclxuICAgICAgICAgIGRlc2NyaXB0aW9uOiB4LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgaWNvbjogdW5kZWZpbmVkXHJcbiAgICAgICAgfSlcclxuICAgICAgfSlcclxuICAgICAgdGhpcy5vcGVyYXRvck1lbnVPcHRpb25zID0gb3BlcmF0b3JNZW51T3B0cztcclxuICAgICAgLy8gUHJlc2VsZWN0IHRoZSBmaXJzdCBvcHRpb24gZnJvbSB0aGUgb3BlcmF0b3JzIG1lbnUgc28gdGhlcmUgd2lsbCBhbHdheXMgYmUgYSBkZWZhdWx0IHZhbHVlLCB3aGljaCBpcyB0aGUgJ2VxdWFscycgb3BlcmF0b3IgZm9yIGFsbCBkYXRhIHR5cGVzIGZvciBub3cuXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcGVyYXRvciA9IHRoaXMub3BlcmF0b3JNZW51T3B0aW9uc1swXS52YWx1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuZmllbGRWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZE9wZXJhdG9yQ2hhbmdlZChvcGVyYXRvcjogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkT3BlcmF0b3IgPSBvcGVyYXRvcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZEZpZWxkVmFsdWVDaGFuZ2VkKGZpZWxkVmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5maWVsZFZhbHVlID0gZmllbGRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWFyY2goKSB7XHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRGaWVsZCB8fCAhdGhpcy5zZWxlY3RlZEZpZWxkLmRhdGFUeXBlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIHRoZSBmaWx0ZXIgaXMgb2YgdHlwZSAnZGF0ZXJhbmdlJ1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRGaWVsZC5kYXRhVHlwZSA9PT0gJ2RhdGVyYW5nZScpIHtcclxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkRmllbGQubXVsdGlUZXJtKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJzID0gdGhpcy5maWx0ZXJzLmZpbHRlcigoZikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGYuZGF0YVR5cGUgIT09ICdkYXRldGltZSc7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZmllbGRWYWx1ZURhdGVGcm9tKSB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyQ2xhdXNlRnJvbSA9IG5ldyBGaWx0ZXJDbGF1c2UodGhpcy5zZWxlY3RlZEZpZWxkLmZpZWxkLCB0aGlzLmZpZWxkVmFsdWVEYXRlRnJvbSwgT3BlcmF0b3JzLkdSRUFURVJfVEhBTl9FUVVBTC52YWx1ZSBhcyBGaWx0ZXJDbGF1c2UuT3AsICdkYXRldGltZScsIHRoaXMuc2VhcmNoT3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJzLnB1c2goZmlsdGVyQ2xhdXNlRnJvbSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmZpZWxkVmFsdWVEYXRlVG8pIHtcclxuICAgICAgICBjb25zdCBmaWx0ZXJDbGF1c2VUbyA9IG5ldyBGaWx0ZXJDbGF1c2UodGhpcy5zZWxlY3RlZEZpZWxkLmZpZWxkLCB0aGlzLmZpZWxkVmFsdWVEYXRlVG8sIE9wZXJhdG9ycy5MRVNTX1RIQU5fRVFVQUwudmFsdWUgYXMgRmlsdGVyQ2xhdXNlLk9wLCAnZGF0ZXRpbWUnLCB0aGlzLnNlYXJjaE9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuZmlsdGVycy5wdXNoKGZpbHRlckNsYXVzZVRvKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gdGhlIGZpbHRlciBpc24ndCBvZiB0eXBlICdkYXRlcmFuZ2UnIChldmVyeXRoaW5nIGVsc2UpXHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuZmllbGRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7IC8vIGhhbmRsZSBlbXB0eSBmaWVsZCB2YWx1ZVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICAvLyBpZiBubyBvcGVyYXRvciB3YXMgcHJvdmlkZWQsIGl0IGZhbGxzIGJhY2sgdG8gdGhlIGRlZmF1bHQgJ2VxdWFscycgb3BlcmF0b3JcclxuICAgICAgdGhpcy5zZWxlY3RlZE9wZXJhdG9yID0gdGhpcy5zZWxlY3RlZE9wZXJhdG9yID8/IE9wZXJhdG9ycy5FUVVBTFMudmFsdWU7XHJcbiAgICAgIC8vIGNyZWF0ZSB0aGUgZmlsdGVyQ2xhdXNlXHJcbiAgICAgIGNvbnN0IGZpbHRlckNsYXVzZSA9IG5ldyBGaWx0ZXJDbGF1c2UodGhpcy5zZWxlY3RlZEZpZWxkLmZpZWxkLCB0aGlzLmZpZWxkVmFsdWUsIHRoaXMuc2VsZWN0ZWRPcGVyYXRvciBhcyBGaWx0ZXJDbGF1c2UuT3AsIHRoaXMuc2VsZWN0ZWRGaWVsZC5kYXRhVHlwZSwgdGhpcy5zZWFyY2hPcHRpb25zKTtcclxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkRmllbGQubXVsdGlUZXJtKSB7IC8vIG11bHRpVGVybSBtZWFucyB0aGF0IHdlIGNhbiBoYXZlIG11bHRpcGxlIGZpbHRlciB2YWx1ZXMgb2YgdGhlIFNBTUUgZmlsdGVyIGNsYXVzZSAoZWcgXCJmaWx0ZXIgY2FzZSB0eXBlcyB0aGF0IGFyZSBQaG9uZSBPUiBBZGRyZXNzXCIpXHJcbiAgICAgICAgdGhpcy5maWx0ZXJzID0gdGhpcy5maWx0ZXJzLmZpbHRlcigoZikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGYubWVtYmVyICE9PSB0aGlzLnNlbGVjdGVkRmllbGQhLmZpZWxkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgeyAvLyBzZWxlY3RlZEZpZWxkIGlzIG11bHRpVGVybToganVzdCBjaGVja2luZyBpZiB3ZSBhbHJlYWR5IGhhdmUgdGhlIG5ld2x5IHNlbGVjdGVkIGZpbHRlckNsYXVzZSBpbiBmaWx0ZXJzXHJcbiAgICAgICAgY29uc3QgaXNEdXBsaWNhdGUgPSB0aGlzLmZpbHRlcnMuc29tZShmID0+IGYudG9TdHJpbmcoKSA9PT0gZmlsdGVyQ2xhdXNlLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIGlmIChpc0R1cGxpY2F0ZSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5maWx0ZXJzLnB1c2goZmlsdGVyQ2xhdXNlKTtcclxuICAgICAgdGhpcy5maWVsZFZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hZHZhbmNlZFNlYXJjaENoYW5nZWQuZW1pdCh0aGlzLmZpbHRlcnMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbW92ZUZpbHRlcihpbmRleDogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJzICYmIHRoaXMuZmlsdGVycy5sZW5ndGggPj0gaW5kZXgpIHtcclxuICAgICAgdGhpcy5maWx0ZXJzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIHRoaXMuYWR2YW5jZWRTZWFyY2hDaGFuZ2VkLmVtaXQodGhpcy5maWx0ZXJzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0RhdGVWYWx1ZVVucGlja2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZmllbGRWYWx1ZURhdGVGcm9tID09PSB1bmRlZmluZWQgJiYgdGhpcy5maWVsZFZhbHVlRGF0ZVRvID09PSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNGaWVsZEFuZE9wZXJhdG9yVW5waWNrZWQoKTogYm9vbGVhbiB7XHJcbiAgICAvLyBpZiB0aGUgb3BlcmF0b3JzIGFyZSBlbmFibGVkIHdlIG5lZWQgdG8gY2hlY2sgZm9yIGJvdGggdGhlIGZpZWxkIHZhbHVlIGFuZCB0aGUgb3BlcmF0b3IgdmFsdWVcclxuICAgIHJldHVybiB0aGlzLm9wZXJhdG9yc0Rpc2FibGVkID8gdGhpcy5maWVsZFZhbHVlID09PSB1bmRlZmluZWQgOiAodGhpcy5maWVsZFZhbHVlID09PSB1bmRlZmluZWQgfHwgdGhpcy5zZWxlY3RlZE9wZXJhdG9yID09PSB1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyKCkge1xyXG4gICAgdGhpcy5maWVsZFZhbHVlRGF0ZUZyb20gPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmZpZWxkVmFsdWVEYXRlVG8gPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkRmllbGQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmZpZWxkVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkT3BlcmF0b3IgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmZpbHRlcnMgPSBbXTtcclxuICAgIHRoaXMuYWR2YW5jZWRTZWFyY2hDaGFuZ2VkLmVtaXQodGhpcy5maWx0ZXJzKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWZpbHRlclwiPlxyXG4gICAgICAgIDwhLS1TRUFSQ0ggRklFTERTLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1maWx0ZXItZmllbGQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1maWx0ZXItZmllbGQtbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgZm9yPVwic2VsZWN0ZWRGaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgzpHOvc6xzrbOrs+EzrfPg863IM6xzr3OrDpcclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPGxpYi1kcm9wLWRvd24tbWVudSBbb3B0aW9uc109XCJtZW51T3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlZCk9XCJzZWxlY3RlZEZpZWxkQ2hhbmdlZCgkZXZlbnQpXCI+PC9saWItZHJvcC1kb3duLW1lbnU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLVNFQVJDSCBGSUVMRFMgT1BFUkFUT1IgTUVOVS0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhb3BlcmF0b3JzRGlzYWJsZWQgJiYgc2VsZWN0ZWRGaWVsZFwiXHJcbiAgICAgICAgICAgICBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1maWx0ZXItb3BlcmF0b3ItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZEZpZWxkLmRhdGFUeXBlID09PSAnYXJyYXknIHx8IHNlbGVjdGVkRmllbGQuZGF0YVR5cGUgPT09ICdzdHJpbmcnXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtZmlsdGVyLW9wZXJhdG9yLWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJzZWxlY3RlZE9wZXJhdG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGxpYi1kcm9wLWRvd24tbWVudSBbb3B0aW9uc109XCJvcGVyYXRvck1lbnVPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkT3BlcmF0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2VkKT1cInNlbGVjdGVkT3BlcmF0b3JDaGFuZ2VkKCRldmVudClcIj48L2xpYi1kcm9wLWRvd24tbWVudT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLVNFQVJDSCBGSUVMRFMgSU5QVVQtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRGaWVsZFwiXHJcbiAgICAgICAgICAgICBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1maWx0ZXItdmFsdWUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZEZpZWxkLmRhdGFUeXBlID09PSAnYXJyYXknXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtZmlsdGVyLXZhbHVlLWxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJmaWVsZFZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGxpYi1kcm9wLWRvd24tbWVudSBbb3B0aW9uc109XCJtZW51T3B0aW9uc0RpY3Rpb25hcnlbc2VsZWN0ZWRGaWVsZC5maWVsZF1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiZmllbGRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZWQpPVwic2VsZWN0ZWRGaWVsZFZhbHVlQ2hhbmdlZCgkZXZlbnQpXCI+PC9saWItZHJvcC1kb3duLW1lbnU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRGaWVsZC5kYXRhVHlwZSA9PT0gJ3N0cmluZydcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1maWx0ZXItdmFsdWUtbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImZpZWxkVmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAmbmJzcDtcclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgKGtleXVwLmVudGVyKT1cInNlYXJjaCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpZWxkVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmaWVsZFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLOkc69zrHOts6uz4TOt8+DzrdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjMwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtZmlsdGVyLXZhbHVlLWlucHV0XCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRGaWVsZC5kYXRhVHlwZSA9PT0gJ2RhdGVyYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtZmlsdGVyLXZhbHVlLWlucHV0LWRhdGVyYW5nZS1mcm9tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIM6Rz4DPjDpcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1kYXRlLXBpY2tlciBbbWF4RGF0ZV09XCJmaWVsZFZhbHVlRGF0ZVRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmllbGRWYWx1ZURhdGVGcm9tXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInMDEvMDEvMjAyMidcIj48L2xpYi1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkRmllbGQuZGF0YVR5cGUgPT09ICdkYXRlcmFuZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtZmlsdGVyLXZhbHVlLWlucHV0LWRhdGVyYW5nZS10b1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICDOiM+Jz4I6XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItZGF0ZS1waWNrZXIgW21pbkRhdGVdPVwiZmllbGRWYWx1ZURhdGVGcm9tXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmllbGRWYWx1ZURhdGVUb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJzAxLzAxLzIwMjInXCI+PC9saWItZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkRmllbGRcIj5cclxuICAgICAgICAgICAgPCEtLURPIFNFQVJDSC0tPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnb3BhY2l0eS01MCBjdXJzb3Itbm90LWFsbG93ZWQnOiBpc0RhdGVWYWx1ZVVucGlja2VkKCkgJiYgaXNGaWVsZEFuZE9wZXJhdG9yVW5waWNrZWQoKX1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0RhdGVWYWx1ZVVucGlja2VkKCkgJiYgaXNGaWVsZEFuZE9wZXJhdG9yVW5waWNrZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlYXJjaCgpXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ21zLUljb24gbXMtSWNvbi0tU2VhcmNoJ1wiPjwvaT5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwhLS1DTEVBUi0tPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhcigpXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ21zLUljb24gbXMtSWNvbi0tQ2FuY2VsJ1wiPjwvaT5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS1GSUxURVIgQ0hJUFMtLT5cclxuICAgIDwhLS0gVGhpcyBleGFtcGxlIHJlcXVpcmVzIFRhaWx3aW5kIENTUyB2Mi4wKyAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBmaWx0ZXJzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJmaWx0ZXIgJiYgZmlsdGVyLm1lbWJlclwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtY2hpcHNcIj5cclxuICAgICAgICAgICAge3sgZmlsdGVyLnVpTmFtZSB9fSB7eyBmaWx0ZXIudWlPcGVyYXRvciB9fSAne3sgZmlsdGVyLnVpVmFsdWUgfX0nXHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInJlbW92ZUZpbHRlcihpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtY2hpcHMtcmVtb3ZlLWZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+UmVtb3ZlIGxhcmdlIG9wdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJoLTIgdy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDggOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xIDFsNiA2bTAtNkwxIDdcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj4iXX0=
@@ -35,9 +35,9 @@ export class AvatarInitialsComponent {
35
35
  }
36
36
  }
37
37
  }
38
- AvatarInitialsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AvatarInitialsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
- AvatarInitialsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: AvatarInitialsComponent, selector: "lib-avatar-initials", inputs: { name: "name", large: "large" }, ngImport: i0, template: "<div [ngClass]=\"large ? 'avatar-container-large': 'avatar-container'\">\r\n <span [ngClass]=\"large ? 'avatar-text-large': 'avatar-text'\">{{ initials }}</span>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AvatarInitialsComponent, decorators: [{
38
+ AvatarInitialsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AvatarInitialsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
+ AvatarInitialsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: AvatarInitialsComponent, selector: "lib-avatar-initials", inputs: { name: "name", large: "large" }, ngImport: i0, template: "<div [ngClass]=\"large ? 'avatar-container-large': 'avatar-container'\">\r\n <span [ngClass]=\"large ? 'avatar-text-large': 'avatar-text'\">{{ initials }}</span>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AvatarInitialsComponent, decorators: [{
41
41
  type: Component,
42
42
  args: [{ selector: 'lib-avatar-initials', template: "<div [ngClass]=\"large ? 'avatar-container-large': 'avatar-container'\">\r\n <span [ngClass]=\"large ? 'avatar-text-large': 'avatar-text'\">{{ initials }}</span>\r\n</div>\r\n" }]
43
43
  }], ctorParameters: function () { return []; }, propDecorators: { name: [{
@@ -17,9 +17,9 @@ export class BreadcrumbComponent {
17
17
  });
18
18
  }
19
19
  }
20
- BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i1.BreadcrumbService }], target: i0.ɵɵFactoryTarget.Component });
21
- BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: BreadcrumbComponent, selector: "lib-breadcrumb", ngImport: i0, template: "<nav class=\"bg-white border-b border-gray-200 flex\"\r\n aria-label=\"Breadcrumb\">\r\n <ol role=\"list\"\r\n class=\"w-full mx-auto px-4 flex space-x-4 sm:px-6 lg:px-8\">\r\n <li class=\"flex\"\r\n *ngFor=\"let item of breadcrumb; let i = index\">\r\n <div class=\"flex items-center\">\r\n <ng-container *ngTemplateOutlet=\"i === 0 ? homeTemplate : linkTemplate; context: { value: item }\"></ng-container>\r\n </div>\r\n </li>\r\n </ol>\r\n</nav>\r\n<ng-template let-value=\"value\"\r\n #homeTemplate>\r\n <a [routerLink]=\"value.urlSegments\"\r\n [title]=\"value.title\"\r\n class=\"text-gray-400 hover:text-gray-500\">\r\n <svg class=\"flex-shrink-0 h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path d=\"M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z\" />\r\n </svg>\r\n <span class=\"sr-only\">{{ value.title }}</span>\r\n </a>\r\n</ng-template>\r\n<ng-template let-value=\"value\"\r\n #linkTemplate>\r\n <svg class=\"flex-shrink-0 w-6 h-full text-gray-200\"\r\n viewBox=\"0 0 24 44\"\r\n preserveAspectRatio=\"none\"\r\n fill=\"currentColor\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n aria-hidden=\"true\">\r\n <path d=\"M.293 0l22 22-22 22h1.414l22-22-22-22H.293z\" />\r\n </svg>\r\n <a [routerLink]=\"value.urlSegments\"\r\n class=\"ml-4 text-sm font-medium text-gray-500 hover:text-gray-700\">\r\n {{ value.title }}\r\n </a>\r\n</ng-template>", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }] });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BreadcrumbComponent, decorators: [{
20
+ BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i1.BreadcrumbService }], target: i0.ɵɵFactoryTarget.Component });
21
+ BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: BreadcrumbComponent, selector: "lib-breadcrumb", ngImport: i0, template: "<nav class=\"bg-white border-b border-gray-200 flex\"\r\n aria-label=\"Breadcrumb\">\r\n <ol role=\"list\"\r\n class=\"w-full mx-auto px-4 flex space-x-4 sm:px-6 lg:px-8\">\r\n <li class=\"flex\"\r\n *ngFor=\"let item of breadcrumb; let i = index\">\r\n <div class=\"flex items-center\">\r\n <ng-container *ngTemplateOutlet=\"i === 0 ? homeTemplate : linkTemplate; context: { value: item }\"></ng-container>\r\n </div>\r\n </li>\r\n </ol>\r\n</nav>\r\n<ng-template let-value=\"value\"\r\n #homeTemplate>\r\n <a [routerLink]=\"value.urlSegments\"\r\n [title]=\"value.title\"\r\n class=\"text-gray-400 hover:text-gray-500\">\r\n <svg class=\"flex-shrink-0 h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path d=\"M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z\" />\r\n </svg>\r\n <span class=\"sr-only\">{{ value.title }}</span>\r\n </a>\r\n</ng-template>\r\n<ng-template let-value=\"value\"\r\n #linkTemplate>\r\n <svg class=\"flex-shrink-0 w-6 h-full text-gray-200\"\r\n viewBox=\"0 0 24 44\"\r\n preserveAspectRatio=\"none\"\r\n fill=\"currentColor\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n aria-hidden=\"true\">\r\n <path d=\"M.293 0l22 22-22 22h1.414l22-22-22-22H.293z\" />\r\n </svg>\r\n <a [routerLink]=\"value.urlSegments\"\r\n class=\"ml-4 text-sm font-medium text-gray-500 hover:text-gray-700\">\r\n {{ value.title }}\r\n </a>\r\n</ng-template>", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }] });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: BreadcrumbComponent, decorators: [{
23
23
  type: Component,
24
24
  args: [{ selector: 'lib-breadcrumb', template: "<nav class=\"bg-white border-b border-gray-200 flex\"\r\n aria-label=\"Breadcrumb\">\r\n <ol role=\"list\"\r\n class=\"w-full mx-auto px-4 flex space-x-4 sm:px-6 lg:px-8\">\r\n <li class=\"flex\"\r\n *ngFor=\"let item of breadcrumb; let i = index\">\r\n <div class=\"flex items-center\">\r\n <ng-container *ngTemplateOutlet=\"i === 0 ? homeTemplate : linkTemplate; context: { value: item }\"></ng-container>\r\n </div>\r\n </li>\r\n </ol>\r\n</nav>\r\n<ng-template let-value=\"value\"\r\n #homeTemplate>\r\n <a [routerLink]=\"value.urlSegments\"\r\n [title]=\"value.title\"\r\n class=\"text-gray-400 hover:text-gray-500\">\r\n <svg class=\"flex-shrink-0 h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path d=\"M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z\" />\r\n </svg>\r\n <span class=\"sr-only\">{{ value.title }}</span>\r\n </a>\r\n</ng-template>\r\n<ng-template let-value=\"value\"\r\n #linkTemplate>\r\n <svg class=\"flex-shrink-0 w-6 h-full text-gray-200\"\r\n viewBox=\"0 0 24 44\"\r\n preserveAspectRatio=\"none\"\r\n fill=\"currentColor\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n aria-hidden=\"true\">\r\n <path d=\"M.293 0l22 22-22 22h1.414l22-22-22-22H.293z\" />\r\n </svg>\r\n <a [routerLink]=\"value.urlSegments\"\r\n class=\"ml-4 text-sm font-medium text-gray-500 hover:text-gray-700\">\r\n {{ value.title }}\r\n </a>\r\n</ng-template>" }]
25
25
  }], ctorParameters: function () { return [{ type: i1.BreadcrumbService }]; } });
@@ -9,9 +9,9 @@ export class CollapsiblePanelComponent {
9
9
  ngOnInit() {
10
10
  }
11
11
  }
12
- CollapsiblePanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CollapsiblePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
- CollapsiblePanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: CollapsiblePanelComponent, selector: "lib-collapsible-panel", inputs: { title: "title" }, ngImport: i0, template: "<div class=\"collapsible-panel-container\">\r\n <div class=\"collapsible-panel-container-shadow\">\r\n <div class=\"collapsible-panel-container-inner\">\r\n <button type=\"button\" class=\"collapsible-panel-button\" (click)=\"visible = !visible\">\r\n <div class=\"collapsible-panel-button-content-container\">\r\n <span>{{ title }} </span>\r\n <span class=\"ico-plus\"></span>\r\n </div>\r\n </button>\r\n <div class=\"collapsible-panel-content-container\" *ngIf=\"visible\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CollapsiblePanelComponent, decorators: [{
12
+ CollapsiblePanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: CollapsiblePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
+ CollapsiblePanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: CollapsiblePanelComponent, selector: "lib-collapsible-panel", inputs: { title: "title" }, ngImport: i0, template: "<div class=\"collapsible-panel-container\">\r\n <div class=\"collapsible-panel-container-shadow\">\r\n <div class=\"collapsible-panel-container-inner\">\r\n <button type=\"button\" class=\"collapsible-panel-button\" (click)=\"visible = !visible\">\r\n <div class=\"collapsible-panel-button-content-container\">\r\n <span>{{ title }} </span>\r\n <span class=\"ico-plus\"></span>\r\n </div>\r\n </button>\r\n <div class=\"collapsible-panel-content-container\" *ngIf=\"visible\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: CollapsiblePanelComponent, decorators: [{
15
15
  type: Component,
16
16
  args: [{ selector: 'lib-collapsible-panel', template: "<div class=\"collapsible-panel-container\">\r\n <div class=\"collapsible-panel-container-shadow\">\r\n <div class=\"collapsible-panel-container-inner\">\r\n <button type=\"button\" class=\"collapsible-panel-button\" (click)=\"visible = !visible\">\r\n <div class=\"collapsible-panel-button-content-container\">\r\n <span>{{ title }} </span>\r\n <span class=\"ico-plus\"></span>\r\n </div>\r\n </button>\r\n <div class=\"collapsible-panel-content-container\" *ngIf=\"visible\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
17
17
  }], ctorParameters: function () { return []; }, propDecorators: { title: [{
@@ -83,9 +83,9 @@ export class ComboboxComponent {
83
83
  this.onSearch.emit(searchTerm);
84
84
  }
85
85
  }
86
- ComboboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ComboboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
87
- ComboboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: ComboboxComponent, selector: "lib-combobox", inputs: { id: "id", placeholder: "placeholder", items: "items", itemTemplate: "itemTemplate", selectedItemsFilter: "selectedItemsFilter", selectedItemTemplate: "selectedItemTemplate", noResultsTemplate: "noResultsTemplate", busy: "busy", multiple: "multiple", debounceMs: "debounceMs" }, outputs: { onSearch: "onSearch", onItemSelected: "onItemSelected" }, ngImport: i0, template: "<div class=\"combobox-wrapper\">\r\n <form autocomplete=\"off\"\r\n [id]=\"id + '-form'\">\r\n <input [id]=\"id\"\r\n type=\"text\"\r\n (click)=\"onInputClick()\"\r\n (clickOutside)=\"onInputClickOutside()\"\r\n (keyup)=\"onInputKeyUp($event)\"\r\n class=\"combobox-input\"\r\n role=\"combobox\"\r\n aria-controls=\"options\"\r\n aria-expanded=\"false\"\r\n autocomplete=\"off\"\r\n list=\"autocomplete\"\r\n [value]=\"value || ''\"\r\n [placeholder]=\"placeholder || ''\">\r\n </form>\r\n <div class=\"combobox-icons\">\r\n <svg *ngIf=\"!busy\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"h-6 w-6 text-gray-400\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" />\r\n </svg>\r\n <svg *ngIf=\"busy\"\r\n class=\"animate-spin h-6 w-6 text-gray-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\">\r\n <circle class=\"opacity-25\"\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"10\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"4\">\r\n </circle>\r\n <path class=\"opacity-75\"\r\n fill=\"currentColor\"\r\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\r\n </svg>\r\n </div>\r\n <ul [id]=\"id + '-results'\"\r\n *ngIf=\"showResults && items.length > 0\"\r\n class=\"combobox-results\"\r\n role=\"listbox\">\r\n <li *ngFor=\"let item of items; let i = index;\"\r\n [id]=\"'option-'+ i\"\r\n (click)=\"onListItemSelected(item)\"\r\n role=\"option\"\r\n tabindex=\"-1\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n </ng-container>\r\n </li>\r\n </ul>\r\n <div class=\"combobox-results\"\r\n *ngIf=\"noResultsTemplate && items.length === 0 && !busy\">\r\n <ng-container [ngTemplateOutlet]=\"noResultsTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: searchTerm }\">\r\n </ng-container>\r\n </div>\r\n</div>\r\n<ul *ngIf=\"selectedItems.length > 0\"\r\n role=\"list\"\r\n class=\"grid grid-cols-1\">\r\n <li *ngFor=\"let item of selectedItems; let i = index;\"\r\n class=\"mt-3\">\r\n <ng-container [ngTemplateOutlet]=\"selectedItemTemplate || defaultSelectedItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n </ng-container>\r\n </li>\r\n</ul>\r\n<ng-template #defaultItemTemplate\r\n let-item>\r\n <span class=\"combobox-default-item-template\">{{ item }}</span>\r\n</ng-template>\r\n<ng-template #defaultSelectedItemTemplate\r\n let-item>\r\n <div class=\"grid grid-cols-1\">\r\n <div class=\"combobox-selected-item-wrapper\">\r\n <div class=\"flex-1 min-w-0\">\r\n <div class=\"focus:outline-none\">\r\n <span class=\"absolute\"\r\n aria-hidden=\"true\">\r\n </span>\r\n <p class=\"text-sm font-medium text-gray-900\">{{ item }}</p>\r\n </div>\r\n </div>\r\n <div class=\"ml-4 flex-shrink-0 flex\">\r\n <button type=\"button\"\r\n (click)=\"removeItem(item)\"\r\n class=\"combobox-selected-item-remove-btn\">\r\n <span class=\"sr-only\">Close</span>\r\n <svg class=\"h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>", 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.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }] });
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ComboboxComponent, decorators: [{
86
+ ComboboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ComboboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
87
+ ComboboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ComboboxComponent, selector: "lib-combobox", inputs: { id: "id", placeholder: "placeholder", items: "items", itemTemplate: "itemTemplate", selectedItemsFilter: "selectedItemsFilter", selectedItemTemplate: "selectedItemTemplate", noResultsTemplate: "noResultsTemplate", busy: "busy", multiple: "multiple", debounceMs: "debounceMs" }, outputs: { onSearch: "onSearch", onItemSelected: "onItemSelected" }, ngImport: i0, template: "<div class=\"combobox-wrapper\">\r\n <form autocomplete=\"off\"\r\n [id]=\"id + '-form'\">\r\n <input [id]=\"id\"\r\n type=\"text\"\r\n (click)=\"onInputClick()\"\r\n (clickOutside)=\"onInputClickOutside()\"\r\n (keyup)=\"onInputKeyUp($event)\"\r\n class=\"combobox-input\"\r\n role=\"combobox\"\r\n aria-controls=\"options\"\r\n aria-expanded=\"false\"\r\n autocomplete=\"off\"\r\n list=\"autocomplete\"\r\n [value]=\"value || ''\"\r\n [placeholder]=\"placeholder || ''\">\r\n </form>\r\n <div class=\"combobox-icons\">\r\n <svg *ngIf=\"!busy\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"h-6 w-6 text-gray-400\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" />\r\n </svg>\r\n <svg *ngIf=\"busy\"\r\n class=\"animate-spin h-6 w-6 text-gray-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\">\r\n <circle class=\"opacity-25\"\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"10\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"4\">\r\n </circle>\r\n <path class=\"opacity-75\"\r\n fill=\"currentColor\"\r\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\r\n </svg>\r\n </div>\r\n <ul [id]=\"id + '-results'\"\r\n *ngIf=\"showResults && items.length > 0\"\r\n class=\"combobox-results\"\r\n role=\"listbox\">\r\n <li *ngFor=\"let item of items; let i = index;\"\r\n [id]=\"'option-'+ i\"\r\n (click)=\"onListItemSelected(item)\"\r\n role=\"option\"\r\n tabindex=\"-1\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n </ng-container>\r\n </li>\r\n </ul>\r\n <div class=\"combobox-results\"\r\n *ngIf=\"noResultsTemplate && items.length === 0 && !busy\">\r\n <ng-container [ngTemplateOutlet]=\"noResultsTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: searchTerm }\">\r\n </ng-container>\r\n </div>\r\n</div>\r\n<ul *ngIf=\"selectedItems.length > 0\"\r\n role=\"list\"\r\n class=\"grid grid-cols-1\">\r\n <li *ngFor=\"let item of selectedItems; let i = index;\"\r\n class=\"mt-3\">\r\n <ng-container [ngTemplateOutlet]=\"selectedItemTemplate || defaultSelectedItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n </ng-container>\r\n </li>\r\n</ul>\r\n<ng-template #defaultItemTemplate\r\n let-item>\r\n <span class=\"combobox-default-item-template\">{{ item }}</span>\r\n</ng-template>\r\n<ng-template #defaultSelectedItemTemplate\r\n let-item>\r\n <div class=\"grid grid-cols-1\">\r\n <div class=\"combobox-selected-item-wrapper\">\r\n <div class=\"flex-1 min-w-0\">\r\n <div class=\"focus:outline-none\">\r\n <span class=\"absolute\"\r\n aria-hidden=\"true\">\r\n </span>\r\n <p class=\"text-sm font-medium text-gray-900\">{{ item }}</p>\r\n </div>\r\n </div>\r\n <div class=\"ml-4 flex-shrink-0 flex\">\r\n <button type=\"button\"\r\n (click)=\"removeItem(item)\"\r\n class=\"combobox-selected-item-remove-btn\">\r\n <span class=\"sr-only\">Close</span>\r\n <svg class=\"h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>", 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.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }] });
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ComboboxComponent, decorators: [{
89
89
  type: Component,
90
90
  args: [{ selector: 'lib-combobox', template: "<div class=\"combobox-wrapper\">\r\n <form autocomplete=\"off\"\r\n [id]=\"id + '-form'\">\r\n <input [id]=\"id\"\r\n type=\"text\"\r\n (click)=\"onInputClick()\"\r\n (clickOutside)=\"onInputClickOutside()\"\r\n (keyup)=\"onInputKeyUp($event)\"\r\n class=\"combobox-input\"\r\n role=\"combobox\"\r\n aria-controls=\"options\"\r\n aria-expanded=\"false\"\r\n autocomplete=\"off\"\r\n list=\"autocomplete\"\r\n [value]=\"value || ''\"\r\n [placeholder]=\"placeholder || ''\">\r\n </form>\r\n <div class=\"combobox-icons\">\r\n <svg *ngIf=\"!busy\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"h-6 w-6 text-gray-400\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" />\r\n </svg>\r\n <svg *ngIf=\"busy\"\r\n class=\"animate-spin h-6 w-6 text-gray-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\">\r\n <circle class=\"opacity-25\"\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"10\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"4\">\r\n </circle>\r\n <path class=\"opacity-75\"\r\n fill=\"currentColor\"\r\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\r\n </svg>\r\n </div>\r\n <ul [id]=\"id + '-results'\"\r\n *ngIf=\"showResults && items.length > 0\"\r\n class=\"combobox-results\"\r\n role=\"listbox\">\r\n <li *ngFor=\"let item of items; let i = index;\"\r\n [id]=\"'option-'+ i\"\r\n (click)=\"onListItemSelected(item)\"\r\n role=\"option\"\r\n tabindex=\"-1\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n </ng-container>\r\n </li>\r\n </ul>\r\n <div class=\"combobox-results\"\r\n *ngIf=\"noResultsTemplate && items.length === 0 && !busy\">\r\n <ng-container [ngTemplateOutlet]=\"noResultsTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: searchTerm }\">\r\n </ng-container>\r\n </div>\r\n</div>\r\n<ul *ngIf=\"selectedItems.length > 0\"\r\n role=\"list\"\r\n class=\"grid grid-cols-1\">\r\n <li *ngFor=\"let item of selectedItems; let i = index;\"\r\n class=\"mt-3\">\r\n <ng-container [ngTemplateOutlet]=\"selectedItemTemplate || defaultSelectedItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n </ng-container>\r\n </li>\r\n</ul>\r\n<ng-template #defaultItemTemplate\r\n let-item>\r\n <span class=\"combobox-default-item-template\">{{ item }}</span>\r\n</ng-template>\r\n<ng-template #defaultSelectedItemTemplate\r\n let-item>\r\n <div class=\"grid grid-cols-1\">\r\n <div class=\"combobox-selected-item-wrapper\">\r\n <div class=\"flex-1 min-w-0\">\r\n <div class=\"focus:outline-none\">\r\n <span class=\"absolute\"\r\n aria-hidden=\"true\">\r\n </span>\r\n <p class=\"text-sm font-medium text-gray-900\">{{ item }}</p>\r\n </div>\r\n </div>\r\n <div class=\"ml-4 flex-shrink-0 flex\">\r\n <button type=\"button\"\r\n (click)=\"removeItem(item)\"\r\n class=\"combobox-selected-item-remove-btn\">\r\n <span class=\"sr-only\">Close</span>\r\n <svg class=\"h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>" }]
91
91
  }], ctorParameters: function () { return []; }, propDecorators: { id: [{
@@ -5,13 +5,13 @@ export class ContentTileHeaderComponent {
5
5
  this.template = undefined;
6
6
  }
7
7
  }
8
- ContentTileHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ContentTileHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
- ContentTileHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: ContentTileHeaderComponent, selector: "lib-content-tile-header", queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ContentTileHeaderComponent, decorators: [{
8
+ ContentTileHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ContentTileHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ ContentTileHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ContentTileHeaderComponent, selector: "lib-content-tile-header", queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ContentTileHeaderComponent, decorators: [{
11
11
  type: Component,
12
12
  args: [{ selector: 'lib-content-tile-header', template: '<ng-content></ng-content>' }]
13
13
  }], ctorParameters: function () { return []; }, propDecorators: { template: [{
14
14
  type: ContentChild,
15
15
  args: [TemplateRef]
16
16
  }] } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC10aWxlLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvY29udGVudC10aWxlL2NvbnRlbnQtdGlsZS1oZWFkZXIvY29udGVudC10aWxlLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdyRSxNQUFNLE9BQU8sMEJBQTBCO0lBRXJDO1FBRDJCLGFBQVEsR0FBb0IsU0FBUyxDQUFDO0lBQ2pELENBQUM7O3VIQUZOLDBCQUEwQjsyR0FBMUIsMEJBQTBCLHFHQUN2QixXQUFXLGdEQUZnQywyQkFBMkI7MkZBQ3pFLDBCQUEwQjtrQkFEdEMsU0FBUzttQkFBQyxFQUFDLFFBQVEsRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsMkJBQTJCLEVBQUM7MEVBRTFELFFBQVE7c0JBQWxDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtzZWxlY3RvcjogJ2xpYi1jb250ZW50LXRpbGUtaGVhZGVyJywgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+J30pXG5leHBvcnQgY2xhc3MgQ29udGVudFRpbGVIZWFkZXJDb21wb25lbnQge1xuICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmKSB0ZW1wbGF0ZTogYW55IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBjb25zdHJ1Y3RvcigpIHsgfVxufVxuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC10aWxlLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvY29udGVudC10aWxlL2NvbnRlbnQtdGlsZS1oZWFkZXIvY29udGVudC10aWxlLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdyRSxNQUFNLE9BQU8sMEJBQTBCO0lBRXJDO1FBRDJCLGFBQVEsR0FBb0IsU0FBUyxDQUFDO0lBQ2pELENBQUM7O3VIQUZOLDBCQUEwQjsyR0FBMUIsMEJBQTBCLHFHQUN2QixXQUFXLGdEQUZnQywyQkFBMkI7MkZBQ3pFLDBCQUEwQjtrQkFEdEMsU0FBUzttQkFBQyxFQUFDLFFBQVEsRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsMkJBQTJCLEVBQUM7MEVBRTFELFFBQVE7c0JBQWxDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7c2VsZWN0b3I6ICdsaWItY29udGVudC10aWxlLWhlYWRlcicsIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pid9KVxyXG5leHBvcnQgY2xhc3MgQ29udGVudFRpbGVIZWFkZXJDb21wb25lbnQge1xyXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlOiBhbnkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG4iXX0=
@@ -5,9 +5,9 @@ export class ContentTileItemComponent {
5
5
  this.template = undefined;
6
6
  }
7
7
  }
8
- ContentTileItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ContentTileItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
- ContentTileItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: ContentTileItemComponent, selector: "lib-content-tile-item", inputs: { title: "title" }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ContentTileItemComponent, decorators: [{
8
+ ContentTileItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ContentTileItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ ContentTileItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ContentTileItemComponent, selector: "lib-content-tile-item", inputs: { title: "title" }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ContentTileItemComponent, decorators: [{
11
11
  type: Component,
12
12
  args: [{ selector: 'lib-content-tile-item', template: '<ng-content></ng-content>' }]
13
13
  }], ctorParameters: function () { return []; }, propDecorators: { title: [{
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImpor
16
16
  type: ContentChild,
17
17
  args: [TemplateRef]
18
18
  }] } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC10aWxlLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2NvbnRlbnQtdGlsZS9jb250ZW50LXRpbGUtaXRlbS9jb250ZW50LXRpbGUtaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJcEYsTUFBTSxPQUFPLHdCQUF3QjtJQUduQztRQUQyQixhQUFRLEdBQW9CLFNBQVMsQ0FBQztJQUNqRCxDQUFDOztxSEFITix3QkFBd0I7eUdBQXhCLHdCQUF3QiwrSEFFckIsV0FBVyxnREFIK0IsMkJBQTJCOzJGQUN4RSx3QkFBd0I7a0JBRHBDLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsdUJBQXVCLEVBQUcsUUFBUSxFQUFFLDJCQUEyQixFQUFDOzBFQUUzRSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ3FCLFFBQVE7c0JBQWxDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udGVudFRpbGVIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb250ZW50LXRpbGUtaGVhZGVyL2NvbnRlbnQtdGlsZS1oZWFkZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7c2VsZWN0b3I6ICdsaWItY29udGVudC10aWxlLWl0ZW0nLCAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+J30pXG5leHBvcnQgY2xhc3MgQ29udGVudFRpbGVJdGVtQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGU6IGFueSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC10aWxlLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2NvbnRlbnQtdGlsZS9jb250ZW50LXRpbGUtaXRlbS9jb250ZW50LXRpbGUtaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJcEYsTUFBTSxPQUFPLHdCQUF3QjtJQUduQztRQUQyQixhQUFRLEdBQW9CLFNBQVMsQ0FBQztJQUNqRCxDQUFDOztxSEFITix3QkFBd0I7eUdBQXhCLHdCQUF3QiwrSEFFckIsV0FBVyxnREFIK0IsMkJBQTJCOzJGQUN4RSx3QkFBd0I7a0JBRHBDLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsdUJBQXVCLEVBQUcsUUFBUSxFQUFFLDJCQUEyQixFQUFDOzBFQUUzRSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ3FCLFFBQVE7c0JBQWxDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250ZW50VGlsZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbnRlbnQtdGlsZS1oZWFkZXIvY29udGVudC10aWxlLWhlYWRlci5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7c2VsZWN0b3I6ICdsaWItY29udGVudC10aWxlLWl0ZW0nLCAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+J30pXHJcbmV4cG9ydCBjbGFzcyBDb250ZW50VGlsZUl0ZW1Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGU6IGFueSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG59XHJcbiJdfQ==
@@ -33,9 +33,9 @@ export class ContentTileComponent {
33
33
  return false;
34
34
  }
35
35
  }
36
- ContentTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ContentTileComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
37
- ContentTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: ContentTileComponent, selector: "lib-content-tile", inputs: { title: "title", busy: "busy", showAction: ["show-action", "showAction"], showFooter: ["show-footer", "showFooter"], actionText: ["action-text", "actionText"] }, outputs: { tileAction: "tile-action" }, queries: [{ propertyName: "header", first: true, predicate: ContentTileHeaderComponent, descendants: true }, { propertyName: "items", predicate: ContentTileItemComponent, read: ContentTileItemComponent }], ngImport: i0, template: "<div class=\"card\" [class.card-deck-busy]=\"busy\">\r\n <div class=\"card-body\">\r\n <div class=\"kpi-tile-title-container flex align-top\">\r\n <a *ngIf=\"!header\" href=\"#\"\r\n class=\"kpi-tile-action flex-1\" (click)=\"emitTileAction($event)\">{{(this.itemTemplates[selectedIndex].title || title) || '-'}}</a>\r\n <ng-container *ngIf=\"header && header.template\">\r\n <div class=\"flex-1\">\r\n <ng-template [ngTemplateOutlet]=\"header.template\"></ng-template>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"showAction\" class=\"float-right align-top\">\r\n <a href=\"#\" class=\"kpi-tile-action text-xs\" (click)=\"emitTileAction($event)\">{{actionText}}</a>\r\n </div>\r\n </div>\r\n <div class=\"flex items-center\" *ngIf=\"itemTemplates\">\r\n <ng-template [ngTemplateOutlet]=\"itemTemplates[selectedIndex].template\"></ng-template>\r\n </div>\r\n <div class=\"tile-card-footer opacity-25 hover:opacity-75\" *ngIf=\"itemTemplates && itemTemplates.length>1\">\r\n <nav class=\"flex items-center justify-between px-4 sm:px-0\">\r\n <div class=\"flex w-0 flex-1\"></div>\r\n <div class=\"flex items-center justify-between px-2\">\r\n <ng-container *ngFor=\"let item of itemTemplates; index as i\">\r\n <button type=\"button\"\r\n title=\"details\"\r\n (click)=\"selectedIndex=i\"\r\n [disabled]=\"selectedIndex===i\"\r\n class=\"tile-card-item-btn\"\r\n [class.tile-card-item-btn-available]=\"selectedIndex!==i\"\r\n [class.tile-card-item-btn-selected]=\"selectedIndex===i\">\r\n </button>\r\n </ng-container>\r\n </div>\r\n <div class=\"flex w-0 flex-1 justify-end\"></div>\r\n </nav>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ContentTileComponent, decorators: [{
36
+ ContentTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ContentTileComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
37
+ ContentTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ContentTileComponent, selector: "lib-content-tile", inputs: { title: "title", busy: "busy", showAction: ["show-action", "showAction"], showFooter: ["show-footer", "showFooter"], actionText: ["action-text", "actionText"] }, outputs: { tileAction: "tile-action" }, queries: [{ propertyName: "header", first: true, predicate: ContentTileHeaderComponent, descendants: true }, { propertyName: "items", predicate: ContentTileItemComponent, read: ContentTileItemComponent }], ngImport: i0, template: "<div class=\"card\" [class.card-deck-busy]=\"busy\">\r\n <div class=\"card-body\">\r\n <div class=\"kpi-tile-title-container flex align-top\">\r\n <a *ngIf=\"!header\" href=\"#\"\r\n class=\"kpi-tile-action flex-1\" (click)=\"emitTileAction($event)\">{{(this.itemTemplates[selectedIndex].title || title) || '-'}}</a>\r\n <ng-container *ngIf=\"header && header.template\">\r\n <div class=\"flex-1\">\r\n <ng-template [ngTemplateOutlet]=\"header.template\"></ng-template>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"showAction\" class=\"float-right align-top\">\r\n <a href=\"#\" class=\"kpi-tile-action text-xs\" (click)=\"emitTileAction($event)\">{{actionText}}</a>\r\n </div>\r\n </div>\r\n <div class=\"flex items-center\" *ngIf=\"itemTemplates\">\r\n <ng-template [ngTemplateOutlet]=\"itemTemplates[selectedIndex].template\"></ng-template>\r\n </div>\r\n <div class=\"tile-card-footer opacity-25 hover:opacity-75\" *ngIf=\"itemTemplates && itemTemplates.length>1\">\r\n <nav class=\"flex items-center justify-between px-4 sm:px-0\">\r\n <div class=\"flex w-0 flex-1\"></div>\r\n <div class=\"flex items-center justify-between px-2\">\r\n <ng-container *ngFor=\"let item of itemTemplates; index as i\">\r\n <button type=\"button\"\r\n title=\"details\"\r\n (click)=\"selectedIndex=i\"\r\n [disabled]=\"selectedIndex===i\"\r\n class=\"tile-card-item-btn\"\r\n [class.tile-card-item-btn-available]=\"selectedIndex!==i\"\r\n [class.tile-card-item-btn-selected]=\"selectedIndex===i\">\r\n </button>\r\n </ng-container>\r\n </div>\r\n <div class=\"flex w-0 flex-1 justify-end\"></div>\r\n </nav>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ContentTileComponent, decorators: [{
39
39
  type: Component,
40
40
  args: [{ selector: 'lib-content-tile', template: "<div class=\"card\" [class.card-deck-busy]=\"busy\">\r\n <div class=\"card-body\">\r\n <div class=\"kpi-tile-title-container flex align-top\">\r\n <a *ngIf=\"!header\" href=\"#\"\r\n class=\"kpi-tile-action flex-1\" (click)=\"emitTileAction($event)\">{{(this.itemTemplates[selectedIndex].title || title) || '-'}}</a>\r\n <ng-container *ngIf=\"header && header.template\">\r\n <div class=\"flex-1\">\r\n <ng-template [ngTemplateOutlet]=\"header.template\"></ng-template>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"showAction\" class=\"float-right align-top\">\r\n <a href=\"#\" class=\"kpi-tile-action text-xs\" (click)=\"emitTileAction($event)\">{{actionText}}</a>\r\n </div>\r\n </div>\r\n <div class=\"flex items-center\" *ngIf=\"itemTemplates\">\r\n <ng-template [ngTemplateOutlet]=\"itemTemplates[selectedIndex].template\"></ng-template>\r\n </div>\r\n <div class=\"tile-card-footer opacity-25 hover:opacity-75\" *ngIf=\"itemTemplates && itemTemplates.length>1\">\r\n <nav class=\"flex items-center justify-between px-4 sm:px-0\">\r\n <div class=\"flex w-0 flex-1\"></div>\r\n <div class=\"flex items-center justify-between px-2\">\r\n <ng-container *ngFor=\"let item of itemTemplates; index as i\">\r\n <button type=\"button\"\r\n title=\"details\"\r\n (click)=\"selectedIndex=i\"\r\n [disabled]=\"selectedIndex===i\"\r\n class=\"tile-card-item-btn\"\r\n [class.tile-card-item-btn-available]=\"selectedIndex!==i\"\r\n [class.tile-card-item-btn-selected]=\"selectedIndex===i\">\r\n </button>\r\n </ng-container>\r\n </div>\r\n <div class=\"flex w-0 flex-1 justify-end\"></div>\r\n </nav>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
41
41
  }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { title: [{
@@ -246,15 +246,15 @@ export class DatepickerComponent {
246
246
  return outOfRange;
247
247
  }
248
248
  }
249
- DatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DatepickerComponent, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
250
- DatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: DatepickerComponent, selector: "lib-date-picker", inputs: { readonly: "readonly", disabled: "disabled", inline: "inline", displayFormat: ["display-format", "displayFormat"], placeholder: "placeholder", value: "value", minDate: "minDate", maxDate: "maxDate" }, outputs: { valueChange: "valueChange" }, providers: [
249
+ DatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DatepickerComponent, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
250
+ DatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: DatepickerComponent, selector: "lib-date-picker", inputs: { readonly: "readonly", disabled: "disabled", inline: "inline", displayFormat: ["display-format", "displayFormat"], placeholder: "placeholder", value: "value", minDate: "minDate", maxDate: "maxDate" }, outputs: { valueChange: "valueChange" }, providers: [
251
251
  {
252
252
  provide: NG_VALUE_ACCESSOR,
253
253
  useExisting: forwardRef(() => DatepickerComponent),
254
254
  multi: true
255
255
  }
256
256
  ], viewQueries: [{ propertyName: "dateInput", first: true, predicate: ["dateInput"], descendants: true }], ngImport: i0, template: "<div class=\"flex\"\r\n [ngClass]=\"{'relative': !inline}\"\r\n (clickOutside)=\"closeCalendar()\">\r\n\r\n <input type=\"text\"\r\n *ngIf=\"!inline\"\r\n #dateInput\r\n [readonly]=\"readonly\"\r\n name=\"dateInput\"\r\n (blur)=\"onBlur($event)\"\r\n id=\"dateInput\"\r\n (focus)=\"showCalendar = false\"\r\n [value]=\"value | date: displayFormat\"\r\n class=\"detapicker-input\"\r\n [ngClass]=\"{'cursor-not-allowed': disabled}\"\r\n [placeholder]=\"disabled ? '' : placeholder\">\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!inline\"\r\n class=\"datepicker-button\"\r\n [disabled]=\"disabled\"\r\n (click)=\"openCalendar()\"\r\n [ngClass]=\"{'cursor-not-allowed': disabled}\">\r\n <i class=\"ms-Icon ms-Icon--DateTime2\"></i>\r\n </button>\r\n\r\n <div *ngIf=\"showCalendar || inline\"\r\n [ngClass]=\"{'absolute': !inline}\"\r\n class=\"datepicker-background\"\r\n style=\"height:18rem;min-width:16rem;\"\r\n name=\"calendar\">\r\n <div class=\"datepicker-btn-wrapper\">\r\n <div>\r\n <button type=\"button\"\r\n (click)=\"openYears()\">\r\n <span class=\"datepicker-selected-month\">\r\n {{monthNames[month]}}\r\n </span>\r\n <span class=\"datepicker-selected-year\">\r\n {{year}}</span>\r\n </button>\r\n </div>\r\n <div *ngIf=\"!showYears; else showYearsPickerTmpl\">\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"previousMonth();\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 19l-7-7 7-7\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"nextMonth()\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <ng-template #showYearsPickerTmpl>\r\n <div>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"previousYear();\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 19l-7-7 7-7\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"nextYear()\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"datepicker-wrapper\"\r\n *ngIf=\"!showYears; else showCalYearsTmpl\">\r\n <div *ngFor=\"let day of dayNames\"\r\n class=\"datepicker-day-name\"\r\n style=\"width: 14.28%\">{{day}}</div>\r\n </div>\r\n\r\n <ng-template #showCalYearsTmpl>\r\n <div class=\"datepicker-content-wrapper\">\r\n <div *ngFor=\"let year of showCalendarYears\"\r\n style=\"width: 18.28%\"\r\n class=\"px-1 mb-1\">\r\n <div (click)=\"selectYearValue(year)\"\r\n class=\"datepicker-year\"\r\n [class]=\"year.selected ? 'selected' : 'not-selected'\">\r\n {{year.year}}</div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"datepicker-content-wrapper\"\r\n *ngIf=\"!showYears\">\r\n <div *ngFor=\"let blankday of blankDays\"\r\n style=\"width: 14.28%\"\r\n class=\"datepicker-blank-days\">{{blankday}}</div>\r\n <div *ngFor=\"let date of calendarDates;\"\r\n style=\"width: 14.28%\"\r\n class=\"px-1 mb-1\">\r\n <div (click)=\"selectDateValue(date)\"\r\n class=\"datepicker-days\"\r\n [ngClass]=\"{'out-of-range': outOfRangeDate(date),'selected': date.selected, 'not-selected':!date.selected }\">\r\n {{date.day}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
257
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DatepickerComponent, decorators: [{
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DatepickerComponent, decorators: [{
258
258
  type: Component,
259
259
  args: [{ selector: 'lib-date-picker', providers: [
260
260
  {
@@ -47,9 +47,9 @@ export class DropDownMenuComponent {
47
47
  this.selectedChanged.emit(option.value);
48
48
  }
49
49
  }
50
- DropDownMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DropDownMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
- DropDownMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: DropDownMenuComponent, selector: "lib-drop-down-menu", inputs: { options: "options", selectedValue: ["selected", "selectedValue"], multiple: "multiple", placeholder: "placeholder", showIcons: ["show-icons", "showIcons"] }, outputs: { selectedChange: "selectedChange", selectedChanged: "selectedChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"dropdown-container\" (clickOutside)=\"onClickOutside($event)\">\r\n <button\r\n type=\"button\"\r\n (click)=\"expanded = !expanded\"\r\n class=\"dropdown-button\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded=\"true\"\r\n aria-labelledby=\"listbox-label\">\r\n <span class=\"dropdown-selected-text\">\r\n <i *ngIf=\"selectedOption?.icon && showIcons\" \r\n [class]=\"selectedOption?.icon\" \r\n [class.mr-2]=\"selectedOption?.icon\"></i>{{ selectedOption?.text || placeholder }}\r\n </span>\r\n <span class=\"dropdown-button-icon\">\r\n <!-- Heroicon name: solid/selector -->\r\n <svg class=\"dropdown-arrow\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </button>\r\n <ul\r\n *ngIf=\"expanded && options && options.length > 0\"\r\n class=\"dropdown-ul\"\r\n tabindex=\"-1\"\r\n role=\"listbox\"\r\n aria-labelledby=\"listbox-label\"\r\n aria-activedescendant=\"listbox-option-3\"\r\n >\r\n <ng-container *ngFor=\"let option of options\">\r\n <li\r\n [class]=\"isSelected(option) ? 'dropdown-li-selected' : 'dropdown-li'\"\r\n (click)=\"selectOption(option)\"\r\n id=\"listbox-option-0\"\r\n role=\"option\"\r\n >\r\n <span [class]=\"isSelected(option) ? 'dropdown-li-selected-text' : 'dropdown-li-text'\">\r\n <i *ngIf=\"option.icon && showIcons\" [class]=\"option.icon\" [class.mr-2]=\"option.icon\"></i>{{ option.text }}\r\n </span>\r\n <span *ngIf=\"isSelected(option)\" class=\"dropdown-li-selected-indicator-container\">\r\n <!-- Heroicon name: solid/check -->\r\n <svg\r\n class=\"dropdown-li-selected-indicator\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n", 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.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }] });
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DropDownMenuComponent, decorators: [{
50
+ DropDownMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DropDownMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
+ DropDownMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: DropDownMenuComponent, selector: "lib-drop-down-menu", inputs: { options: "options", selectedValue: ["selected", "selectedValue"], multiple: "multiple", placeholder: "placeholder", showIcons: ["show-icons", "showIcons"] }, outputs: { selectedChange: "selectedChange", selectedChanged: "selectedChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"dropdown-container\" (clickOutside)=\"onClickOutside($event)\">\r\n <button\r\n type=\"button\"\r\n (click)=\"expanded = !expanded\"\r\n class=\"dropdown-button\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded=\"true\"\r\n aria-labelledby=\"listbox-label\">\r\n <span class=\"dropdown-selected-text\">\r\n <i *ngIf=\"selectedOption?.icon && showIcons\" \r\n [class]=\"selectedOption?.icon\" \r\n [class.mr-2]=\"selectedOption?.icon\"></i>{{ selectedOption?.text || placeholder }}\r\n </span>\r\n <span class=\"dropdown-button-icon\">\r\n <!-- Heroicon name: solid/selector -->\r\n <svg class=\"dropdown-arrow\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </button>\r\n <ul\r\n *ngIf=\"expanded && options && options.length > 0\"\r\n class=\"dropdown-ul\"\r\n tabindex=\"-1\"\r\n role=\"listbox\"\r\n aria-labelledby=\"listbox-label\"\r\n aria-activedescendant=\"listbox-option-3\"\r\n >\r\n <ng-container *ngFor=\"let option of options\">\r\n <li\r\n [class]=\"isSelected(option) ? 'dropdown-li-selected' : 'dropdown-li'\"\r\n (click)=\"selectOption(option)\"\r\n id=\"listbox-option-0\"\r\n role=\"option\"\r\n >\r\n <span [class]=\"isSelected(option) ? 'dropdown-li-selected-text' : 'dropdown-li-text'\">\r\n <i *ngIf=\"option.icon && showIcons\" [class]=\"option.icon\" [class.mr-2]=\"option.icon\"></i>{{ option.text }}\r\n </span>\r\n <span *ngIf=\"isSelected(option)\" class=\"dropdown-li-selected-indicator-container\">\r\n <!-- Heroicon name: solid/check -->\r\n <svg\r\n class=\"dropdown-li-selected-indicator\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n", 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.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }] });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DropDownMenuComponent, decorators: [{
53
53
  type: Component,
54
54
  args: [{ selector: 'lib-drop-down-menu', template: "<div class=\"dropdown-container\" (clickOutside)=\"onClickOutside($event)\">\r\n <button\r\n type=\"button\"\r\n (click)=\"expanded = !expanded\"\r\n class=\"dropdown-button\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded=\"true\"\r\n aria-labelledby=\"listbox-label\">\r\n <span class=\"dropdown-selected-text\">\r\n <i *ngIf=\"selectedOption?.icon && showIcons\" \r\n [class]=\"selectedOption?.icon\" \r\n [class.mr-2]=\"selectedOption?.icon\"></i>{{ selectedOption?.text || placeholder }}\r\n </span>\r\n <span class=\"dropdown-button-icon\">\r\n <!-- Heroicon name: solid/selector -->\r\n <svg class=\"dropdown-arrow\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </button>\r\n <ul\r\n *ngIf=\"expanded && options && options.length > 0\"\r\n class=\"dropdown-ul\"\r\n tabindex=\"-1\"\r\n role=\"listbox\"\r\n aria-labelledby=\"listbox-label\"\r\n aria-activedescendant=\"listbox-option-3\"\r\n >\r\n <ng-container *ngFor=\"let option of options\">\r\n <li\r\n [class]=\"isSelected(option) ? 'dropdown-li-selected' : 'dropdown-li'\"\r\n (click)=\"selectOption(option)\"\r\n id=\"listbox-option-0\"\r\n role=\"option\"\r\n >\r\n <span [class]=\"isSelected(option) ? 'dropdown-li-selected-text' : 'dropdown-li-text'\">\r\n <i *ngIf=\"option.icon && showIcons\" [class]=\"option.icon\" [class.mr-2]=\"option.icon\"></i>{{ option.text }}\r\n </span>\r\n <span *ngIf=\"isSelected(option)\" class=\"dropdown-li-selected-indicator-container\">\r\n <!-- Heroicon name: solid/check -->\r\n <svg\r\n class=\"dropdown-li-selected-indicator\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n" }]
55
55
  }], ctorParameters: function () { return []; }, propDecorators: { options: [{
@@ -20,9 +20,9 @@ export class KpiTileComponent {
20
20
  return false;
21
21
  }
22
22
  }
23
- KpiTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: KpiTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
- KpiTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: KpiTileComponent, selector: "lib-kpi-tile", inputs: { title: "title", busy: "busy", kpi: "kpi", hideBtn: "hideBtn", actionText: ["action-text", "actionText"] }, outputs: { tileAction: "tile-action" }, ngImport: i0, template: "<div class=\"card\" [ngClass]=\"{'card-deck-busy' : busy }\">\r\n <div class=\"card-body\">\r\n <div class=\"kpi-tile-title-container\">\r\n <a href=\"#\" class=\"kpi-tile-action\" (click)=\"emitTileAction($event)\">{{title || '-'}}</a>\r\n </div>\r\n <div class=\"grid grid-cols-2 grid-flow-row gap-2 items-center\">\r\n <p class=\"kpi-tile-value\">{{kpi || '-'}}</p>\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"card-footer\">\r\n <div class=\"text-xs\">\r\n <a href=\"#\" class=\"kpi-tile-action\" [ngClass]=\"{'invisible': hideBtn}\" (click)=\"emitTileAction($event)\">{{actionText}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: KpiTileComponent, decorators: [{
23
+ KpiTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: KpiTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
+ KpiTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: KpiTileComponent, selector: "lib-kpi-tile", inputs: { title: "title", busy: "busy", kpi: "kpi", hideBtn: "hideBtn", actionText: ["action-text", "actionText"] }, outputs: { tileAction: "tile-action" }, ngImport: i0, template: "<div class=\"card\" [ngClass]=\"{'card-deck-busy' : busy }\">\r\n <div class=\"card-body\">\r\n <div class=\"kpi-tile-title-container\">\r\n <a href=\"#\" class=\"kpi-tile-action\" (click)=\"emitTileAction($event)\">{{title || '-'}}</a>\r\n </div>\r\n <div class=\"grid grid-cols-2 grid-flow-row gap-2 items-center\">\r\n <p class=\"kpi-tile-value\">{{kpi || '-'}}</p>\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"card-footer\">\r\n <div class=\"text-xs\">\r\n <a href=\"#\" class=\"kpi-tile-action\" [ngClass]=\"{'invisible': hideBtn}\" (click)=\"emitTileAction($event)\">{{actionText}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: KpiTileComponent, decorators: [{
26
26
  type: Component,
27
27
  args: [{ selector: 'lib-kpi-tile', template: "<div class=\"card\" [ngClass]=\"{'card-deck-busy' : busy }\">\r\n <div class=\"card-body\">\r\n <div class=\"kpi-tile-title-container\">\r\n <a href=\"#\" class=\"kpi-tile-action\" (click)=\"emitTileAction($event)\">{{title || '-'}}</a>\r\n </div>\r\n <div class=\"grid grid-cols-2 grid-flow-row gap-2 items-center\">\r\n <p class=\"kpi-tile-value\">{{kpi || '-'}}</p>\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"card-footer\">\r\n <div class=\"text-xs\">\r\n <a href=\"#\" class=\"kpi-tile-action\" [ngClass]=\"{'invisible': hideBtn}\" (click)=\"emitTileAction($event)\">{{actionText}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
28
28
  }], ctorParameters: function () { return []; }, propDecorators: { title: [{
@@ -19,9 +19,9 @@ export class LanguageSelectionComponent {
19
19
  this.menuExpanded = false;
20
20
  }
21
21
  }
22
- LanguageSelectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: LanguageSelectionComponent, deps: [{ token: APP_LANGUAGES }], target: i0.ɵɵFactoryTarget.Component });
23
- LanguageSelectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: LanguageSelectionComponent, selector: "lib-language-selection", ngImport: i0, template: "<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\r\n <button class=\"langs-button\" (click)=\"menuExpanded = !menuExpanded\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--Globe\"></i>\r\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\r\n <span *ngIf=\"lang.value === langsService?.selected\">{{lang.text}}</span>\r\n </ng-container>\r\n </button>\r\n\r\n <div\r\n [class]=\"menuExpanded ? 'langs-menu-expanded':'langs-menu-collapsed'\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\r\n <div class=\"py-1\" role=\"none\">\r\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\r\n <a (click)=\"selectLang(lang)\" *ngIf=\"lang.value != langsService?.selected\" class=\"nav-link-profile\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--GlobeFavorite\"></i>\r\n {{lang.description}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", 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.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: LanguageSelectionComponent, decorators: [{
22
+ LanguageSelectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LanguageSelectionComponent, deps: [{ token: APP_LANGUAGES }], target: i0.ɵɵFactoryTarget.Component });
23
+ LanguageSelectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: LanguageSelectionComponent, selector: "lib-language-selection", ngImport: i0, template: "<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\r\n <button class=\"langs-button\" (click)=\"menuExpanded = !menuExpanded\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--Globe\"></i>\r\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\r\n <span *ngIf=\"lang.value === langsService?.selected\">{{lang.text}}</span>\r\n </ng-container>\r\n </button>\r\n\r\n <div\r\n [class]=\"menuExpanded ? 'langs-menu-expanded':'langs-menu-collapsed'\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\r\n <div class=\"py-1\" role=\"none\">\r\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\r\n <a (click)=\"selectLang(lang)\" *ngIf=\"lang.value != langsService?.selected\" class=\"nav-link-profile\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--GlobeFavorite\"></i>\r\n {{lang.description}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", 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.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LanguageSelectionComponent, decorators: [{
25
25
  type: Component,
26
26
  args: [{ selector: 'lib-language-selection', template: "<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\r\n <button class=\"langs-button\" (click)=\"menuExpanded = !menuExpanded\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--Globe\"></i>\r\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\r\n <span *ngIf=\"lang.value === langsService?.selected\">{{lang.text}}</span>\r\n </ng-container>\r\n </button>\r\n\r\n <div\r\n [class]=\"menuExpanded ? 'langs-menu-expanded':'langs-menu-collapsed'\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\r\n <div class=\"py-1\" role=\"none\">\r\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\r\n <a (click)=\"selectLang(lang)\" *ngIf=\"lang.value != langsService?.selected\" class=\"nav-link-profile\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--GlobeFavorite\"></i>\r\n {{lang.description}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
27
27
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{