ngx-sfc-components 0.0.18 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +1 -1
  2. package/esm2020/lib/components/avatar/avatar.component.mjs +14 -20
  3. package/esm2020/lib/components/avatar/models/avatar-data.model.mjs +1 -1
  4. package/esm2020/lib/components/avatar/models/avatar-image.model.mjs +3 -2
  5. package/esm2020/lib/components/avatar/parts/badge/avatar-badge.component.mjs +17 -8
  6. package/esm2020/lib/components/avatar/parts/badge/avatar-badge.constants.mjs +3 -3
  7. package/esm2020/lib/components/avatar/parts/badge/avatar-badge.model.mjs +2 -0
  8. package/esm2020/lib/components/carousel/carousel.component.mjs +2 -2
  9. package/esm2020/lib/components/index.mjs +3 -2
  10. package/esm2020/lib/components/menu/dropdown/dropdown-menu.component.mjs +21 -6
  11. package/esm2020/lib/components/menu/dropdown/parts/item/dropdown-menu-item.component.mjs +2 -2
  12. package/esm2020/lib/components/menu/dropdown/parts/item/dropdown-menu-item.model.mjs +1 -1
  13. package/esm2020/lib/components/menu/navigation/navigation-menu.component.mjs +2 -2
  14. package/esm2020/lib/components/menu/navigation/parts/item/navigation-menu-item.component.mjs +2 -2
  15. package/esm2020/lib/components/menu/side/parts/header/side-menu-header.component.mjs +2 -2
  16. package/esm2020/lib/components/menu/side/parts/item/content/side-menu-item-content.component.mjs +2 -2
  17. package/esm2020/lib/components/menu/side/parts/title/side-menu-title.component.mjs +2 -2
  18. package/esm2020/lib/components/no-export-index.mjs +3 -1
  19. package/esm2020/lib/components/progress/circle/progress-circle.component.mjs +2 -2
  20. package/esm2020/lib/components/progress/line/progress-line.component.mjs +2 -2
  21. package/esm2020/lib/components/progress/semi-circle/progress-semi-circle.component.mjs +2 -2
  22. package/esm2020/lib/components/stars/stars.component.mjs +2 -2
  23. package/esm2020/lib/components/table/models/table.model.mjs +1 -1
  24. package/esm2020/lib/components/table/parts/columns/default/default-table-column.component.mjs +3 -3
  25. package/esm2020/lib/components/table/parts/columns/selectable/selectable-table-column.component.mjs +11 -4
  26. package/esm2020/lib/components/table/parts/columns/selectable/selectable-table-column.constants.mjs +5 -0
  27. package/esm2020/lib/components/table/parts/columns/sorting/sorting-column.component.mjs +69 -0
  28. package/esm2020/lib/components/table/parts/columns/sorting/sorting-column.constants.mjs +6 -0
  29. package/esm2020/lib/components/table/parts/columns/sorting/sorting-column.model.mjs +2 -0
  30. package/esm2020/lib/components/table/parts/columns/table-column.model.mjs +1 -1
  31. package/esm2020/lib/components/table/parts/content/base-default-table-content.component.mjs +16 -18
  32. package/esm2020/lib/components/table/parts/content/cards/default/default-table-card.component.mjs +3 -3
  33. package/esm2020/lib/components/table/parts/content/rows/default/default-table-row.component.mjs +4 -7
  34. package/esm2020/lib/components/table/parts/content/rows/expanded/expanded-table-row.component.mjs +3 -4
  35. package/esm2020/lib/components/table/parts/content/rows/expanded/expanded-table-row.model.mjs +1 -1
  36. package/esm2020/lib/components/table/parts/toggle/columns-toggle.component.mjs +15 -10
  37. package/esm2020/lib/components/table/parts/toggle/columns-toggle.constants.mjs +3 -10
  38. package/esm2020/lib/components/table/parts/toggle/service/columns-toggle.service.mjs +10 -20
  39. package/esm2020/lib/components/table/service/select/table-select.service.mjs +14 -1
  40. package/esm2020/lib/components/table/table.component.mjs +198 -140
  41. package/esm2020/lib/components/table/table.constants.mjs +5 -6
  42. package/esm2020/lib/components/tabs/models/tab.model.mjs +1 -1
  43. package/esm2020/lib/components/tabs/parts/labels/tab-label-content-base.component.mjs +6 -2
  44. package/esm2020/lib/components/tabs/parts/labels/tab-label-icon/tab-label-icon.component.mjs +3 -8
  45. package/esm2020/lib/components/tabs/parts/labels/tab-label-line/tab-label-line.component.mjs +16 -7
  46. package/esm2020/lib/components/tabs/tabs.component.mjs +2 -2
  47. package/esm2020/lib/components/tags/parts/tag/tag.component.mjs +2 -2
  48. package/esm2020/lib/components/tags/tags.component.mjs +3 -3
  49. package/esm2020/lib/components/timeline/parts/item/timeline-item.component.mjs +2 -2
  50. package/esm2020/lib/components/timeline/parts/item/timeline-item.model.mjs +1 -1
  51. package/esm2020/lib/ngx-sfc-components.module.mjs +5 -5
  52. package/fesm2015/ngx-sfc-components.mjs +439 -285
  53. package/fesm2015/ngx-sfc-components.mjs.map +1 -1
  54. package/fesm2020/ngx-sfc-components.mjs +438 -283
  55. package/fesm2020/ngx-sfc-components.mjs.map +1 -1
  56. package/lib/components/avatar/avatar.component.d.ts +8 -7
  57. package/lib/components/avatar/models/avatar-data.model.d.ts +5 -4
  58. package/lib/components/avatar/models/avatar-image.model.d.ts +2 -1
  59. package/lib/components/avatar/parts/badge/avatar-badge.component.d.ts +3 -3
  60. package/lib/components/avatar/parts/badge/avatar-badge.model.d.ts +14 -0
  61. package/lib/components/index.d.ts +6 -4
  62. package/lib/components/menu/dropdown/dropdown-menu.component.d.ts +5 -2
  63. package/lib/components/menu/dropdown/parts/item/dropdown-menu-item.model.d.ts +2 -2
  64. package/lib/components/no-export-index.d.ts +2 -0
  65. package/lib/components/table/models/table.model.d.ts +2 -5
  66. package/lib/components/table/parts/columns/default/default-table-column.component.d.ts +2 -2
  67. package/lib/components/table/parts/columns/selectable/selectable-table-column.component.d.ts +3 -0
  68. package/lib/components/table/parts/columns/selectable/selectable-table-column.constants.d.ts +4 -0
  69. package/lib/components/table/parts/columns/sorting/sorting-column.component.d.ts +21 -0
  70. package/lib/components/table/parts/columns/sorting/sorting-column.constants.d.ts +4 -0
  71. package/lib/components/table/parts/columns/sorting/sorting-column.model.d.ts +12 -0
  72. package/lib/components/table/parts/columns/table-column.model.d.ts +8 -5
  73. package/lib/components/table/parts/content/base-default-table-content.component.d.ts +10 -9
  74. package/lib/components/table/parts/content/rows/default/default-table-row.component.d.ts +0 -3
  75. package/lib/components/table/parts/content/rows/expanded/expanded-table-row.model.d.ts +2 -3
  76. package/lib/components/table/parts/toggle/columns-toggle.component.d.ts +3 -1
  77. package/lib/components/table/parts/toggle/columns-toggle.constants.d.ts +2 -8
  78. package/lib/components/table/parts/toggle/service/columns-toggle.service.d.ts +2 -8
  79. package/lib/components/table/service/select/table-select.service.d.ts +2 -0
  80. package/lib/components/table/table.component.d.ts +57 -32
  81. package/lib/components/table/table.constants.d.ts +8 -9
  82. package/lib/components/tabs/models/tab.model.d.ts +1 -0
  83. package/lib/components/tabs/parts/labels/tab-label-content-base.component.d.ts +1 -0
  84. package/lib/components/tabs/parts/labels/tab-label-icon/tab-label-icon.component.d.ts +1 -3
  85. package/lib/components/tabs/parts/labels/tab-label-line/tab-label-line.component.d.ts +4 -1
  86. package/lib/components/timeline/parts/item/timeline-item.model.d.ts +2 -2
  87. package/lib/ngx-sfc-components.module.d.ts +11 -10
  88. package/package.json +2 -2
  89. package/esm2020/lib/components/table/models/table-pagination.model.mjs +0 -2
  90. package/lib/components/table/models/table-pagination.model.d.ts +0 -5
@@ -1,14 +1,14 @@
1
1
  import * as i1 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Component, Input, ContentChildren, Directive, HostBinding, EventEmitter, Output, HostListener, Inject, QueryList, ViewChild, Injectable, ViewChildren, NgModule } from '@angular/core';
4
+ import { Component, Input, ContentChildren, Directive, HostBinding, EventEmitter, Output, HostListener, Inject, ViewChild, Injectable, ViewChildren, NgModule } from '@angular/core';
5
5
  import { Chart, Title, Tooltip, Filler, Legend, LineController, LineElement, PointElement, LinearScale, CategoryScale, BarController, BarElement, DoughnutController, ArcElement, RadarController, RadialLinearScale, PieController, PolarAreaController, BubbleController, ScatterController, TimeSeriesScale } from 'chart.js';
6
- import * as i1$1 from 'ngx-sfc-common';
7
- import { isDefined, firstOrDefault, CommonConstants, TemplateReferenceDirective, UIClass, getCalcValue, UIConstants, any, Position, isNullOrEmptyString, MediaLimits, WINDOW, getCssLikeValue, ButtonType, replaceRgbOpacity, Theme, mergeDeep, SortingDirection, all, hasItemBy, sortByPath, PaginationService, SortingService, ResizeService, isNumeric, DOCUMENT, NgxSfcCommonModule } from 'ngx-sfc-common';
8
- import { Subject, BehaviorSubject, startWith, combineLatest, map, filter, distinctUntilChanged, tap, shareReplay, merge, fromEvent, of, switchMap, first, from, skip, take, toArray, delay } from 'rxjs';
6
+ import * as i3 from 'ngx-sfc-common';
7
+ import { isDefined, firstOrDefault, CommonConstants, TemplateReferenceDirective, UIClass, isNullOrEmptyString, getCalcValue, UIConstants, any, Position, MediaLimits, WINDOW, getCssLikeValue, ButtonType, replaceRgbOpacity, Theme, mergeDeep, removeItem, addItem, CheckmarkType, SortingDirection, LoadContainerType, PaginationConstants, LoadContainerLoadType, generateGuid, all, hasItem, SortingService, ResizeService, isNumeric, DOCUMENT, NgxSfcCommonModule } from 'ngx-sfc-common';
8
+ import { Subject, BehaviorSubject, startWith, combineLatest, map, filter, distinctUntilChanged, fromEvent, tap, merge, of, switchMap, first, from, skip, take, toArray, delay } from 'rxjs';
9
+ import { faCircle, faAngleUp, faAngleDown, faArrowRight, faArrowLeft, faPauseCircle, faPlayCircle, faEye, faEyeSlash, faChevronUp, faChevronDown, faTableList, faBorderAll } from '@fortawesome/free-solid-svg-icons';
9
10
  import * as i2 from '@fortawesome/angular-fontawesome';
10
11
  import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
11
- import { faCircle, faAngleUp, faAngleDown, faArrowRight, faArrowLeft, faPauseCircle, faPlayCircle, faTableList, faBorderAll, faEyeSlash, faEye } from '@fortawesome/free-solid-svg-icons';
12
12
  import { trigger, transition, style, animate, state } from '@angular/animations';
13
13
 
14
14
  class TabService {
@@ -71,10 +71,10 @@ class TabsComponent {
71
71
  }
72
72
  }
73
73
  TabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabsComponent, deps: [{ token: TabService }], target: i0.ɵɵFactoryTarget.Component });
74
- TabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TabsComponent, selector: "sfc-tabs", inputs: { tabs: "tabs", label: "label", slider: "slider", body: "body" }, providers: [TabService], queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], ngImport: i0, template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div class=\"tabs-container\">\r\n <div class=\"tabs\">\r\n <div class=\"tab\" [style.width.%]=\"vm.tabWidth\" *ngFor=\"let tab of vm.tabs; index as index\"\r\n (click)=\"selectTab(tab, index)\">\r\n\r\n <sfc-template-content [referenceContent]=\"label\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Label\" [defaultContent]=\"defaultLabel\" [contextData]=\"tab\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultLabel>{{ tab.label }}</ng-template>\r\n </div>\r\n </div>\r\n\r\n <sfc-template-content [referenceContent]=\"slider\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Slider\" [contextData]=\"vm.sliderContextData\"></sfc-template-content>\r\n\r\n </div>\r\n\r\n <div class=\"body-container\">\r\n <ng-container *ngIf=\"vm.selectedTab\">\r\n\r\n <sfc-template-content [referenceContent]=\"body\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Body\" [contextData]=\"vm.selectedTab.data\">\r\n </sfc-template-content>\r\n\r\n </ng-container>\r\n </div>\r\n</div>", styles: [":host{width:100%}:host .container .tabs{display:flex;flex-wrap:wrap}:host .container .tabs .tab{text-align:center}:host .container .tabs .tab,:host-context(.sfc-default-theme) :host .container .tabs .tab{color:#545e61}:host-context(.sfc-dark-theme) :host .container .tabs .tab{color:#fff}:host .container .body-container{margin-top:.6em}:host .container .body-container,:host-context(.sfc-default-theme) :host .container .body-container{color:#545e61}:host-context(.sfc-dark-theme) :host .container .body-container{color:#fff}\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: "component", type: i1$1.TemplateContentComponent, selector: "sfc-template-content", inputs: ["contextData", "referenceContent", "templateType", "templatesContent", "defaultContent"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
74
+ TabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TabsComponent, selector: "sfc-tabs", inputs: { tabs: "tabs", label: "label", slider: "slider", body: "body" }, providers: [TabService], queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], ngImport: i0, template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div class=\"tabs-container\">\r\n <div class=\"tabs\">\r\n <div class=\"tab\" [style.width.%]=\"vm.tabWidth\" *ngFor=\"let tab of vm.tabs; index as index\"\r\n (click)=\"selectTab(tab, index)\">\r\n\r\n <sfc-template-content [referenceContent]=\"label\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Label\" [defaultContent]=\"defaultLabel\" [contextData]=\"tab\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultLabel>{{ tab.label }}</ng-template>\r\n </div>\r\n </div>\r\n\r\n <sfc-template-content [referenceContent]=\"slider\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Slider\" [contextData]=\"vm.sliderContextData\"></sfc-template-content>\r\n\r\n </div>\r\n\r\n <div class=\"body-container\">\r\n <ng-container *ngIf=\"vm.selectedTab\">\r\n\r\n <sfc-template-content [referenceContent]=\"body\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Body\" [contextData]=\"vm.selectedTab.data\">\r\n </sfc-template-content>\r\n\r\n </ng-container>\r\n </div>\r\n</div>", styles: [":host{width:100%}:host .container .tabs{display:flex;flex-wrap:wrap}:host .container .tabs .tab{transition:color .5s ease;text-align:center}:host .container .tabs .tab,:host-context(.sfc-default-theme) :host .container .tabs .tab{color:#545e61}:host-context(.sfc-dark-theme) :host .container .tabs .tab{color:#fff}:host .container .body-container{transition:color .5s ease;margin-top:.6em}:host .container .body-container,:host-context(.sfc-default-theme) :host .container .body-container{color:#545e61}:host-context(.sfc-dark-theme) :host .container .body-container{color:#fff}\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: "component", type: i3.TemplateContentComponent, selector: "sfc-template-content", inputs: ["contextData", "referenceContent", "templateType", "templatesContent", "defaultContent"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
75
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabsComponent, decorators: [{
76
76
  type: Component,
77
- args: [{ selector: 'sfc-tabs', providers: [TabService], template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div class=\"tabs-container\">\r\n <div class=\"tabs\">\r\n <div class=\"tab\" [style.width.%]=\"vm.tabWidth\" *ngFor=\"let tab of vm.tabs; index as index\"\r\n (click)=\"selectTab(tab, index)\">\r\n\r\n <sfc-template-content [referenceContent]=\"label\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Label\" [defaultContent]=\"defaultLabel\" [contextData]=\"tab\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultLabel>{{ tab.label }}</ng-template>\r\n </div>\r\n </div>\r\n\r\n <sfc-template-content [referenceContent]=\"slider\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Slider\" [contextData]=\"vm.sliderContextData\"></sfc-template-content>\r\n\r\n </div>\r\n\r\n <div class=\"body-container\">\r\n <ng-container *ngIf=\"vm.selectedTab\">\r\n\r\n <sfc-template-content [referenceContent]=\"body\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Body\" [contextData]=\"vm.selectedTab.data\">\r\n </sfc-template-content>\r\n\r\n </ng-container>\r\n </div>\r\n</div>", styles: [":host{width:100%}:host .container .tabs{display:flex;flex-wrap:wrap}:host .container .tabs .tab{text-align:center}:host .container .tabs .tab,:host-context(.sfc-default-theme) :host .container .tabs .tab{color:#545e61}:host-context(.sfc-dark-theme) :host .container .tabs .tab{color:#fff}:host .container .body-container{margin-top:.6em}:host .container .body-container,:host-context(.sfc-default-theme) :host .container .body-container{color:#545e61}:host-context(.sfc-dark-theme) :host .container .body-container{color:#fff}\n"] }]
77
+ args: [{ selector: 'sfc-tabs', providers: [TabService], template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div class=\"tabs-container\">\r\n <div class=\"tabs\">\r\n <div class=\"tab\" [style.width.%]=\"vm.tabWidth\" *ngFor=\"let tab of vm.tabs; index as index\"\r\n (click)=\"selectTab(tab, index)\">\r\n\r\n <sfc-template-content [referenceContent]=\"label\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Label\" [defaultContent]=\"defaultLabel\" [contextData]=\"tab\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultLabel>{{ tab.label }}</ng-template>\r\n </div>\r\n </div>\r\n\r\n <sfc-template-content [referenceContent]=\"slider\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Slider\" [contextData]=\"vm.sliderContextData\"></sfc-template-content>\r\n\r\n </div>\r\n\r\n <div class=\"body-container\">\r\n <ng-container *ngIf=\"vm.selectedTab\">\r\n\r\n <sfc-template-content [referenceContent]=\"body\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Body\" [contextData]=\"vm.selectedTab.data\">\r\n </sfc-template-content>\r\n\r\n </ng-container>\r\n </div>\r\n</div>", styles: [":host{width:100%}:host .container .tabs{display:flex;flex-wrap:wrap}:host .container .tabs .tab{transition:color .5s ease;text-align:center}:host .container .tabs .tab,:host-context(.sfc-default-theme) :host .container .tabs .tab{color:#545e61}:host-context(.sfc-dark-theme) :host .container .tabs .tab{color:#fff}:host .container .body-container{transition:color .5s ease;margin-top:.6em}:host .container .body-container,:host-context(.sfc-default-theme) :host .container .body-container{color:#545e61}:host-context(.sfc-dark-theme) :host .container .body-container{color:#fff}\n"] }]
78
78
  }], ctorParameters: function () { return [{ type: TabService }]; }, propDecorators: { tabs: [{
79
79
  type: Input
80
80
  }], label: [{
@@ -93,6 +93,9 @@ class TabLabelContentBase {
93
93
  this.disabled = false;
94
94
  this.selected = false;
95
95
  }
96
+ get tabIcon() {
97
+ return isDefined(this.icon) ? this.icon : faCircle;
98
+ }
96
99
  }
97
100
  TabLabelContentBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabLabelContentBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
98
101
  TabLabelContentBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: TabLabelContentBase, inputs: { label: "label", icon: "icon", disabled: "disabled", selected: "selected" }, host: { properties: { "class.disabled": "this.disabled", "class.selected": "this.selected" } }, ngImport: i0 });
@@ -115,24 +118,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
115
118
  }] } });
116
119
 
117
120
  class TabLabelLineComponent extends TabLabelContentBase {
121
+ constructor() {
122
+ super(...arguments);
123
+ this.image = null;
124
+ }
125
+ get tabLineIcon() {
126
+ return isNullOrEmptyString(this.image) ? this.tabIcon : null;
127
+ }
118
128
  }
119
129
  TabLabelLineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabLabelLineComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
120
- TabLabelLineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TabLabelLineComponent, selector: "sfc-tab-label-line", usesInheritance: true, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <fa-icon *ngIf=\"icon\" [icon]=\"icon\"></fa-icon>\r\n <span>{{label}}</span>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>", styles: [":host{width:100%;cursor:pointer;font-weight:700;-webkit-user-select:none;user-select:none}:host,:host-context(.sfc-default-theme) :host{color:#545e61}:host-context(.sfc-dark-theme) :host{color:#fff}:host.disabled{cursor:default;pointer-events:none}:host.disabled,:host-context(.sfc-default-theme) :host.disabled{color:#bdbdbd}:host-context(.sfc-dark-theme) :host.disabled{color:#656d78}:host.selected:not(.disabled),:host:hover:not(.disabled){color:#ffce54}:host .container{width:100%;display:flex;justify-content:center;align-items:center;transition:color .2s ease;border-bottom:1px solid #e6e9ed}:host .container .content{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;text-align:center;padding:1.25em 0}:host .container .content fa-icon{margin-right:.18em}@media (max-width: 430px){:host .container .content fa-icon{display:none}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
130
+ TabLabelLineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TabLabelLineComponent, selector: "sfc-tab-label-line", inputs: { image: "image" }, usesInheritance: true, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon [icon]=\"tabLineIcon\" [imageSrc]=\"image\"></sfc-icon>\r\n <span>{{label}}</span>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>", styles: [":host{width:100%;cursor:pointer;transition:color .5s ease;font-weight:700;-webkit-user-select:none;user-select:none}:host,:host-context(.sfc-default-theme) :host{color:#545e61}:host-context(.sfc-dark-theme) :host{color:#fff}:host.disabled{transition:color .5s ease;cursor:default;pointer-events:none}:host.disabled,:host-context(.sfc-default-theme) :host.disabled{color:#bdbdbd}:host-context(.sfc-dark-theme) :host.disabled{color:#656d78}:host.selected:not(.disabled),:host:hover:not(.disabled){color:#ffce54}:host .container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;transition:color .2s ease;border-bottom:1px solid #e6e9ed}:host .container .content{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;text-align:center;padding:1.25em 0;overflow:hidden}:host .container .content span{text-overflow:ellipsis;overflow:hidden}:host .container .content sfc-icon{display:none}@media (max-width: 425px){:host{padding-bottom:.6em}:host .container .content{padding:.8em;border-radius:.3em;text-overflow:initial}:host .container .content sfc-icon{display:block}:host .container .content span{display:none}}\n"], dependencies: [{ kind: "component", type: i3.IconComponent, selector: "sfc-icon", inputs: ["icon", "imageSrc"] }] });
121
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabLabelLineComponent, decorators: [{
122
132
  type: Component,
123
- args: [{ selector: 'sfc-tab-label-line', template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <fa-icon *ngIf=\"icon\" [icon]=\"icon\"></fa-icon>\r\n <span>{{label}}</span>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>", styles: [":host{width:100%;cursor:pointer;font-weight:700;-webkit-user-select:none;user-select:none}:host,:host-context(.sfc-default-theme) :host{color:#545e61}:host-context(.sfc-dark-theme) :host{color:#fff}:host.disabled{cursor:default;pointer-events:none}:host.disabled,:host-context(.sfc-default-theme) :host.disabled{color:#bdbdbd}:host-context(.sfc-dark-theme) :host.disabled{color:#656d78}:host.selected:not(.disabled),:host:hover:not(.disabled){color:#ffce54}:host .container{width:100%;display:flex;justify-content:center;align-items:center;transition:color .2s ease;border-bottom:1px solid #e6e9ed}:host .container .content{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;text-align:center;padding:1.25em 0}:host .container .content fa-icon{margin-right:.18em}@media (max-width: 430px){:host .container .content fa-icon{display:none}}\n"] }]
124
- }] });
133
+ args: [{ selector: 'sfc-tab-label-line', template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon [icon]=\"tabLineIcon\" [imageSrc]=\"image\"></sfc-icon>\r\n <span>{{label}}</span>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>", styles: [":host{width:100%;cursor:pointer;transition:color .5s ease;font-weight:700;-webkit-user-select:none;user-select:none}:host,:host-context(.sfc-default-theme) :host{color:#545e61}:host-context(.sfc-dark-theme) :host{color:#fff}:host.disabled{transition:color .5s ease;cursor:default;pointer-events:none}:host.disabled,:host-context(.sfc-default-theme) :host.disabled{color:#bdbdbd}:host-context(.sfc-dark-theme) :host.disabled{color:#656d78}:host.selected:not(.disabled),:host:hover:not(.disabled){color:#ffce54}:host .container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;transition:color .2s ease;border-bottom:1px solid #e6e9ed}:host .container .content{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;text-align:center;padding:1.25em 0;overflow:hidden}:host .container .content span{text-overflow:ellipsis;overflow:hidden}:host .container .content sfc-icon{display:none}@media (max-width: 425px){:host{padding-bottom:.6em}:host .container .content{padding:.8em;border-radius:.3em;text-overflow:initial}:host .container .content sfc-icon{display:block}:host .container .content span{display:none}}\n"] }]
134
+ }], propDecorators: { image: [{
135
+ type: Input
136
+ }] } });
125
137
 
126
138
  class TabLabelIconComponent extends TabLabelContentBase {
127
- get tabIcon() {
128
- return isDefined(this.icon) ? this.icon : faCircle;
129
- }
130
139
  }
131
140
  TabLabelIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabLabelIconComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
132
- TabLabelIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TabLabelIconComponent, selector: "sfc-tab-label-icon", usesInheritance: true, ngImport: i0, template: "<div class=\"container\">\r\n <fa-icon [icon]=\"tabIcon\"></fa-icon>\r\n <span>{{label}}</span>\r\n</div>", styles: [":host{width:100%;cursor:pointer;font-weight:700;-webkit-user-select:none;user-select:none;padding-bottom:1.25em;display:inline-block;transition:all .2s ease-in-out}:host,:host-context(.sfc-default-theme) :host{color:#545e61}:host-context(.sfc-dark-theme) :host{color:#fff}:host.selected:not(.disabled),:host:hover:not(.disabled){color:#ffce54}:host.disabled{cursor:default;pointer-events:none}:host.disabled,:host-context(.sfc-default-theme) :host.disabled{color:#bdbdbd}:host-context(.sfc-dark-theme) :host.disabled{color:#656d78}:host .container{display:inline-flex;align-items:center;flex-flow:column wrap;justify-content:center;text-align:center;overflow:hidden;text-overflow:ellipsis}:host .container fa-icon{height:1.2em;margin-bottom:.2em}:host .container span{font-size:.8em}@media (max-width: 430px){:host{padding-bottom:.6em}:host .container{padding:.8em;border-radius:.3em;text-overflow:initial}:host .container fa-icon{height:auto;margin-bottom:0}:host .container span{display:none}:host.selected .container,:host-context(.sfc-default-theme) :host.selected .container{background:#e6e9ed}:host-context(.sfc-dark-theme) :host.selected .container{background:#f5f7fa}}\n"], dependencies: [{ kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
141
+ TabLabelIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TabLabelIconComponent, selector: "sfc-tab-label-icon", usesInheritance: true, ngImport: i0, template: "<div class=\"container\">\r\n <fa-icon [icon]=\"tabIcon\"></fa-icon>\r\n <span>{{label}}</span>\r\n <ng-content></ng-content>\r\n</div>", styles: [":host{width:100%;cursor:pointer;transition:color .5s ease;font-weight:700;-webkit-user-select:none;user-select:none;padding-bottom:1.25em;display:inline-block;transition:all .2s ease-in-out}:host,:host-context(.sfc-default-theme) :host{color:#545e61}:host-context(.sfc-dark-theme) :host{color:#fff}:host.selected:not(.disabled),:host:hover:not(.disabled){color:#ffce54}:host.disabled{transition:color .5s ease;cursor:default;pointer-events:none}:host.disabled,:host-context(.sfc-default-theme) :host.disabled{color:#bdbdbd}:host-context(.sfc-dark-theme) :host.disabled{color:#656d78}:host .container{display:inline-flex;align-items:center;flex-flow:column wrap;justify-content:center;text-align:center;overflow:hidden;text-overflow:ellipsis}:host .container fa-icon{height:1.2em;margin-bottom:.2em}:host .container span{font-size:.8em}@media (max-width: 425px){:host{padding-bottom:.6em}:host .container{padding:.8em;border-radius:.3em;text-overflow:initial}:host .container fa-icon{height:auto;margin-bottom:0}:host .container span{display:none}:host.selected .container{transition:background .5s ease}:host.selected .container,:host-context(.sfc-default-theme) :host.selected .container{background:#e6e9ed}:host-context(.sfc-dark-theme) :host.selected .container{background:#f5f7fa}}\n"], dependencies: [{ kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
133
142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabLabelIconComponent, decorators: [{
134
143
  type: Component,
135
- args: [{ selector: 'sfc-tab-label-icon', template: "<div class=\"container\">\r\n <fa-icon [icon]=\"tabIcon\"></fa-icon>\r\n <span>{{label}}</span>\r\n</div>", styles: [":host{width:100%;cursor:pointer;font-weight:700;-webkit-user-select:none;user-select:none;padding-bottom:1.25em;display:inline-block;transition:all .2s ease-in-out}:host,:host-context(.sfc-default-theme) :host{color:#545e61}:host-context(.sfc-dark-theme) :host{color:#fff}:host.selected:not(.disabled),:host:hover:not(.disabled){color:#ffce54}:host.disabled{cursor:default;pointer-events:none}:host.disabled,:host-context(.sfc-default-theme) :host.disabled{color:#bdbdbd}:host-context(.sfc-dark-theme) :host.disabled{color:#656d78}:host .container{display:inline-flex;align-items:center;flex-flow:column wrap;justify-content:center;text-align:center;overflow:hidden;text-overflow:ellipsis}:host .container fa-icon{height:1.2em;margin-bottom:.2em}:host .container span{font-size:.8em}@media (max-width: 430px){:host{padding-bottom:.6em}:host .container{padding:.8em;border-radius:.3em;text-overflow:initial}:host .container fa-icon{height:auto;margin-bottom:0}:host .container span{display:none}:host.selected .container,:host-context(.sfc-default-theme) :host.selected .container{background:#e6e9ed}:host-context(.sfc-dark-theme) :host.selected .container{background:#f5f7fa}}\n"] }]
144
+ args: [{ selector: 'sfc-tab-label-icon', template: "<div class=\"container\">\r\n <fa-icon [icon]=\"tabIcon\"></fa-icon>\r\n <span>{{label}}</span>\r\n <ng-content></ng-content>\r\n</div>", styles: [":host{width:100%;cursor:pointer;transition:color .5s ease;font-weight:700;-webkit-user-select:none;user-select:none;padding-bottom:1.25em;display:inline-block;transition:all .2s ease-in-out}:host,:host-context(.sfc-default-theme) :host{color:#545e61}:host-context(.sfc-dark-theme) :host{color:#fff}:host.selected:not(.disabled),:host:hover:not(.disabled){color:#ffce54}:host.disabled{transition:color .5s ease;cursor:default;pointer-events:none}:host.disabled,:host-context(.sfc-default-theme) :host.disabled{color:#bdbdbd}:host-context(.sfc-dark-theme) :host.disabled{color:#656d78}:host .container{display:inline-flex;align-items:center;flex-flow:column wrap;justify-content:center;text-align:center;overflow:hidden;text-overflow:ellipsis}:host .container fa-icon{height:1.2em;margin-bottom:.2em}:host .container span{font-size:.8em}@media (max-width: 425px){:host{padding-bottom:.6em}:host .container{padding:.8em;border-radius:.3em;text-overflow:initial}:host .container fa-icon{height:auto;margin-bottom:0}:host .container span{display:none}:host.selected .container{transition:background .5s ease}:host.selected .container,:host-context(.sfc-default-theme) :host.selected .container{background:#e6e9ed}:host-context(.sfc-dark-theme) :host.selected .container{background:#f5f7fa}}\n"] }]
136
145
  }] });
137
146
 
138
147
  class TabSliderBase {
@@ -199,10 +208,10 @@ class SideMenuHeaderComponent {
199
208
  }
200
209
  }
201
210
  SideMenuHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SideMenuHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
202
- SideMenuHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SideMenuHeaderComponent, selector: "sfc-side-menu-header", inputs: { label: "label", open: "open" }, outputs: { toggle: "toggle" }, host: { properties: { "class.open": "this.open" } }, ngImport: i0, template: "<li>\r\n <span>{{label}}</span>\r\n <sfc-hamburger [open]=\"open\" (click)=\"toggle.emit()\"></sfc-hamburger>\r\n</li>", styles: [":host li{display:flex;align-items:center;justify-content:center;padding:1.25em}:host li span{display:none;text-transform:uppercase;font-weight:700;font-size:.8em;-webkit-user-select:none;user-select:none}:host li span,:host-context(.sfc-default-theme) :host li span{color:#545e61}:host-context(.sfc-dark-theme) :host li span{color:#fff}:host.open li{justify-content:space-between}:host.open li span{display:block}\n"], dependencies: [{ kind: "component", type: i1$1.HamburgerComponent, selector: "sfc-hamburger" }] });
211
+ SideMenuHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SideMenuHeaderComponent, selector: "sfc-side-menu-header", inputs: { label: "label", open: "open" }, outputs: { toggle: "toggle" }, host: { properties: { "class.open": "this.open" } }, ngImport: i0, template: "<li>\r\n <span>{{label}}</span>\r\n <sfc-hamburger [open]=\"open\" (click)=\"toggle.emit()\"></sfc-hamburger>\r\n</li>", styles: [":host li{display:flex;align-items:center;justify-content:center;padding:1.25em}:host li span{display:none;transition:color .5s ease;text-transform:uppercase;font-weight:700;font-size:.8em;-webkit-user-select:none;user-select:none}:host li span,:host-context(.sfc-default-theme) :host li span{color:#545e61}:host-context(.sfc-dark-theme) :host li span{color:#fff}:host.open li{justify-content:space-between}:host.open li span{display:block}\n"], dependencies: [{ kind: "component", type: i3.HamburgerComponent, selector: "sfc-hamburger" }] });
203
212
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SideMenuHeaderComponent, decorators: [{
204
213
  type: Component,
205
- args: [{ selector: 'sfc-side-menu-header', template: "<li>\r\n <span>{{label}}</span>\r\n <sfc-hamburger [open]=\"open\" (click)=\"toggle.emit()\"></sfc-hamburger>\r\n</li>", styles: [":host li{display:flex;align-items:center;justify-content:center;padding:1.25em}:host li span{display:none;text-transform:uppercase;font-weight:700;font-size:.8em;-webkit-user-select:none;user-select:none}:host li span,:host-context(.sfc-default-theme) :host li span{color:#545e61}:host-context(.sfc-dark-theme) :host li span{color:#fff}:host.open li{justify-content:space-between}:host.open li span{display:block}\n"] }]
214
+ args: [{ selector: 'sfc-side-menu-header', template: "<li>\r\n <span>{{label}}</span>\r\n <sfc-hamburger [open]=\"open\" (click)=\"toggle.emit()\"></sfc-hamburger>\r\n</li>", styles: [":host li{display:flex;align-items:center;justify-content:center;padding:1.25em}:host li span{display:none;transition:color .5s ease;text-transform:uppercase;font-weight:700;font-size:.8em;-webkit-user-select:none;user-select:none}:host li span,:host-context(.sfc-default-theme) :host li span{color:#545e61}:host-context(.sfc-dark-theme) :host li span{color:#fff}:host.open li{justify-content:space-between}:host.open li span{display:block}\n"] }]
206
215
  }], propDecorators: { label: [{
207
216
  type: Input
208
217
  }], open: [{
@@ -238,10 +247,10 @@ class SideMenuItemContentComponent {
238
247
  }
239
248
  }
240
249
  SideMenuItemContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SideMenuItemContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
241
- SideMenuItemContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SideMenuItemContentComponent, selector: "sfc-side-menu-item-content", inputs: { item: "item", active: "active", open: "open", openParent: "openParent", hasChildren: "hasChildren" }, outputs: { selectItem: "selectItem" }, host: { listeners: { "click": "onClick()" }, properties: { "class.active": "this.active", "class.open": "this.open" } }, ngImport: i0, template: "<li>\r\n <div class=\"item-container\">\r\n <div class=\"item\">\r\n <a>\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\"></fa-icon>\r\n </a>\r\n </div>\r\n <span class=\"label\">{{item.label}}</span>\r\n </div>\r\n\r\n <div *ngIf=\"hasChildren\" class=\"expand-container\">\r\n <fa-icon [icon]=\"expandIcon\"></fa-icon>\r\n </div>\r\n</li>", styles: [":host li{display:inline-flex;align-items:center;padding:0 1.25em 0 1.5em;cursor:pointer;width:calc(100% - 2.75em);justify-content:space-between}:host li,:host-context(.sfc-default-theme) :host li{color:#545e61}:host-context(.sfc-dark-theme) :host li{color:#fff}:host li .expand-container{visibility:hidden;opacity:0;transition:color .5s ease;width:0}:host li .expand-container>fa-icon{font-weight:700}:host li .item-container{display:inline-flex;align-items:center}:host li .item-container .item{width:2em;height:1.9em;display:flex;justify-content:center;border-radius:.7em;align-items:center}:host li .item-container .item a{border-radius:.45em;display:flex;align-items:center;justify-content:center;font-size:1.3em;padding:.3em;transition:background-color .5s ease,color .5s ease,margin-right .3s ease-in-out}:host li .item-container .item a>fa-icon{font-size:1em}:host li .item-container .label{font-weight:700;font-size:.9em;visibility:hidden;opacity:0;transition:color .5s,visibility .3s,opacity .5s ease-in-out;-webkit-user-select:none;user-select:none;width:0}:host.active li,:host:hover li{color:#fff}:host.active li .item-container .item a,:host:hover li .item-container .item a{background-color:#ffce54;box-shadow:0 .3em 1em #2bbbad1a}:host.active li .item-container .label,:host:hover li .item-container .label{color:#ffce54}:host.active li .expand-container,:host:hover li .expand-container{color:#ffce54}:host.open li .item-container .item a{margin-right:1em}:host.open li .item-container .label{visibility:visible;opacity:1;width:auto}:host.open li .expand-container{width:auto;visibility:visible;opacity:1}:host :host-context(.children) li{margin:.2em 0}:host :host-context(.children) li .item-container .item a{padding:.3em;border-radius:.35em}:host :host-context(.children) li .item-container .item a>fa-icon{font-size:.5em}:host :host-context(.children) li .item-container .label{font-size:.8em}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
250
+ SideMenuItemContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SideMenuItemContentComponent, selector: "sfc-side-menu-item-content", inputs: { item: "item", active: "active", open: "open", openParent: "openParent", hasChildren: "hasChildren" }, outputs: { selectItem: "selectItem" }, host: { listeners: { "click": "onClick()" }, properties: { "class.active": "this.active", "class.open": "this.open" } }, ngImport: i0, template: "<li>\r\n <div class=\"item-container\">\r\n <div class=\"item\">\r\n <a>\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\"></fa-icon>\r\n </a>\r\n </div>\r\n <span class=\"label\">{{item.label}}</span>\r\n </div>\r\n\r\n <div *ngIf=\"hasChildren\" class=\"expand-container\">\r\n <fa-icon [icon]=\"expandIcon\"></fa-icon>\r\n </div>\r\n</li>", styles: [":host li{display:inline-flex;align-items:center;padding:0 1.25em 0 1.5em;cursor:pointer;width:calc(100% - 2.75em);justify-content:space-between;transition:color .5s ease}:host li,:host-context(.sfc-default-theme) :host li{color:#545e61}:host-context(.sfc-dark-theme) :host li{color:#fff}:host li .expand-container{visibility:hidden;opacity:0;transition:color .5s ease;width:0}:host li .expand-container>fa-icon{font-weight:700}:host li .item-container{display:inline-flex;align-items:center}:host li .item-container .item{width:2em;height:1.9em;display:flex;justify-content:center;border-radius:.7em;align-items:center}:host li .item-container .item a{border-radius:.45em;display:flex;align-items:center;justify-content:center;font-size:1.3em;padding:.3em;transition:background-color .5s ease,color .5s ease,margin-right .3s ease-in-out}:host li .item-container .item a>fa-icon{font-size:1em}:host li .item-container .label{font-weight:700;font-size:.9em;visibility:hidden;opacity:0;transition:color .5s,visibility .3s,opacity .5s ease-in-out;-webkit-user-select:none;user-select:none;width:0}:host.active li,:host:hover li{color:#fff}:host.active li .item-container .item a,:host:hover li .item-container .item a{background-color:#ffce54;box-shadow:0 .3em 1em #2bbbad1a}:host.active li .item-container .label,:host:hover li .item-container .label{color:#ffce54}:host.active li .expand-container,:host:hover li .expand-container{color:#ffce54}:host.open li .item-container .item a{margin-right:1em}:host.open li .item-container .label{visibility:visible;opacity:1;width:auto}:host.open li .expand-container{width:auto;visibility:visible;opacity:1}:host :host-context(.children) li{margin:.2em 0}:host :host-context(.children) li .item-container .item a{padding:.3em;border-radius:.35em}:host :host-context(.children) li .item-container .item a>fa-icon{font-size:.5em}:host :host-context(.children) li .item-container .label{font-size:.8em}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
242
251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SideMenuItemContentComponent, decorators: [{
243
252
  type: Component,
244
- args: [{ selector: 'sfc-side-menu-item-content', template: "<li>\r\n <div class=\"item-container\">\r\n <div class=\"item\">\r\n <a>\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\"></fa-icon>\r\n </a>\r\n </div>\r\n <span class=\"label\">{{item.label}}</span>\r\n </div>\r\n\r\n <div *ngIf=\"hasChildren\" class=\"expand-container\">\r\n <fa-icon [icon]=\"expandIcon\"></fa-icon>\r\n </div>\r\n</li>", styles: [":host li{display:inline-flex;align-items:center;padding:0 1.25em 0 1.5em;cursor:pointer;width:calc(100% - 2.75em);justify-content:space-between}:host li,:host-context(.sfc-default-theme) :host li{color:#545e61}:host-context(.sfc-dark-theme) :host li{color:#fff}:host li .expand-container{visibility:hidden;opacity:0;transition:color .5s ease;width:0}:host li .expand-container>fa-icon{font-weight:700}:host li .item-container{display:inline-flex;align-items:center}:host li .item-container .item{width:2em;height:1.9em;display:flex;justify-content:center;border-radius:.7em;align-items:center}:host li .item-container .item a{border-radius:.45em;display:flex;align-items:center;justify-content:center;font-size:1.3em;padding:.3em;transition:background-color .5s ease,color .5s ease,margin-right .3s ease-in-out}:host li .item-container .item a>fa-icon{font-size:1em}:host li .item-container .label{font-weight:700;font-size:.9em;visibility:hidden;opacity:0;transition:color .5s,visibility .3s,opacity .5s ease-in-out;-webkit-user-select:none;user-select:none;width:0}:host.active li,:host:hover li{color:#fff}:host.active li .item-container .item a,:host:hover li .item-container .item a{background-color:#ffce54;box-shadow:0 .3em 1em #2bbbad1a}:host.active li .item-container .label,:host:hover li .item-container .label{color:#ffce54}:host.active li .expand-container,:host:hover li .expand-container{color:#ffce54}:host.open li .item-container .item a{margin-right:1em}:host.open li .item-container .label{visibility:visible;opacity:1;width:auto}:host.open li .expand-container{width:auto;visibility:visible;opacity:1}:host :host-context(.children) li{margin:.2em 0}:host :host-context(.children) li .item-container .item a{padding:.3em;border-radius:.35em}:host :host-context(.children) li .item-container .item a>fa-icon{font-size:.5em}:host :host-context(.children) li .item-container .label{font-size:.8em}\n"] }]
253
+ args: [{ selector: 'sfc-side-menu-item-content', template: "<li>\r\n <div class=\"item-container\">\r\n <div class=\"item\">\r\n <a>\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\"></fa-icon>\r\n </a>\r\n </div>\r\n <span class=\"label\">{{item.label}}</span>\r\n </div>\r\n\r\n <div *ngIf=\"hasChildren\" class=\"expand-container\">\r\n <fa-icon [icon]=\"expandIcon\"></fa-icon>\r\n </div>\r\n</li>", styles: [":host li{display:inline-flex;align-items:center;padding:0 1.25em 0 1.5em;cursor:pointer;width:calc(100% - 2.75em);justify-content:space-between;transition:color .5s ease}:host li,:host-context(.sfc-default-theme) :host li{color:#545e61}:host-context(.sfc-dark-theme) :host li{color:#fff}:host li .expand-container{visibility:hidden;opacity:0;transition:color .5s ease;width:0}:host li .expand-container>fa-icon{font-weight:700}:host li .item-container{display:inline-flex;align-items:center}:host li .item-container .item{width:2em;height:1.9em;display:flex;justify-content:center;border-radius:.7em;align-items:center}:host li .item-container .item a{border-radius:.45em;display:flex;align-items:center;justify-content:center;font-size:1.3em;padding:.3em;transition:background-color .5s ease,color .5s ease,margin-right .3s ease-in-out}:host li .item-container .item a>fa-icon{font-size:1em}:host li .item-container .label{font-weight:700;font-size:.9em;visibility:hidden;opacity:0;transition:color .5s,visibility .3s,opacity .5s ease-in-out;-webkit-user-select:none;user-select:none;width:0}:host.active li,:host:hover li{color:#fff}:host.active li .item-container .item a,:host:hover li .item-container .item a{background-color:#ffce54;box-shadow:0 .3em 1em #2bbbad1a}:host.active li .item-container .label,:host:hover li .item-container .label{color:#ffce54}:host.active li .expand-container,:host:hover li .expand-container{color:#ffce54}:host.open li .item-container .item a{margin-right:1em}:host.open li .item-container .label{visibility:visible;opacity:1;width:auto}:host.open li .expand-container{width:auto;visibility:visible;opacity:1}:host :host-context(.children) li{margin:.2em 0}:host :host-context(.children) li .item-container .item a{padding:.3em;border-radius:.35em}:host :host-context(.children) li .item-container .item a>fa-icon{font-size:.5em}:host :host-context(.children) li .item-container .label{font-size:.8em}\n"] }]
245
254
  }], propDecorators: { item: [{
246
255
  type: Input
247
256
  }], active: [{
@@ -346,10 +355,10 @@ class SideMenuTitleComponent {
346
355
  }
347
356
  }
348
357
  SideMenuTitleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SideMenuTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
349
- SideMenuTitleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SideMenuTitleComponent, selector: "sfc-side-menu-title", inputs: { label: "label", open: "open" }, host: { properties: { "class.open": "this.open" } }, ngImport: i0, template: "<sfc-delimeter></sfc-delimeter>\r\n<li><span>{{label}}</span></li>", styles: [":host li{text-transform:uppercase;font-weight:700;font-size:.65em;padding:1.25em 0;transform:translate(7%);display:inline-block;transition:transform .5s ease-in-out}:host li,:host-context(.sfc-default-theme) :host li{color:#545e61}:host-context(.sfc-dark-theme) :host li{color:#fff}:host.open li{transform:translate(30%)}\n"], dependencies: [{ kind: "component", type: i1$1.DelimeterComponent, selector: "sfc-delimeter", inputs: ["label", "direction"] }] });
358
+ SideMenuTitleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SideMenuTitleComponent, selector: "sfc-side-menu-title", inputs: { label: "label", open: "open" }, host: { properties: { "class.open": "this.open" } }, ngImport: i0, template: "<sfc-delimeter></sfc-delimeter>\r\n<li><span>{{label}}</span></li>", styles: [":host li{transition:color .5s ease;text-transform:uppercase;font-weight:700;font-size:.65em;padding:1.25em 0;transform:translate(7%);display:inline-block;transition:transform .5s ease-in-out}:host li,:host-context(.sfc-default-theme) :host li{color:#545e61}:host-context(.sfc-dark-theme) :host li{color:#fff}:host.open li{transform:translate(30%)}\n"], dependencies: [{ kind: "component", type: i3.DelimeterComponent, selector: "sfc-delimeter", inputs: ["label", "direction"] }] });
350
359
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SideMenuTitleComponent, decorators: [{
351
360
  type: Component,
352
- args: [{ selector: 'sfc-side-menu-title', template: "<sfc-delimeter></sfc-delimeter>\r\n<li><span>{{label}}</span></li>", styles: [":host li{text-transform:uppercase;font-weight:700;font-size:.65em;padding:1.25em 0;transform:translate(7%);display:inline-block;transition:transform .5s ease-in-out}:host li,:host-context(.sfc-default-theme) :host li{color:#545e61}:host-context(.sfc-dark-theme) :host li{color:#fff}:host.open li{transform:translate(30%)}\n"] }]
361
+ args: [{ selector: 'sfc-side-menu-title', template: "<sfc-delimeter></sfc-delimeter>\r\n<li><span>{{label}}</span></li>", styles: [":host li{transition:color .5s ease;text-transform:uppercase;font-weight:700;font-size:.65em;padding:1.25em 0;transform:translate(7%);display:inline-block;transition:transform .5s ease-in-out}:host li,:host-context(.sfc-default-theme) :host li{color:#545e61}:host-context(.sfc-dark-theme) :host li{color:#fff}:host.open li{transform:translate(30%)}\n"] }]
353
362
  }], propDecorators: { label: [{
354
363
  type: Input
355
364
  }], open: [{
@@ -409,10 +418,10 @@ class DropdownMenuItemComponent {
409
418
  }
410
419
  }
411
420
  DropdownMenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
412
- DropdownMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DropdownMenuItemComponent, selector: "sfc-dropdown-menu-item", inputs: { item: "item" }, host: { listeners: { "click": "click()" }, properties: { "class.active": "this._active" } }, ngImport: i0, template: "<li>\r\n <sfc-icon [icon]=\"item.icon\" [imageSrc]=\"item.image\"></sfc-icon>\r\n <a>{{item.label}}</a>\r\n</li>\r\n\r\n<sfc-delimeter *ngIf=\"item.delimeter\"></sfc-delimeter>", styles: [":host{display:flex;flex-direction:column;padding:.1em 0}:host li{color:#545e61;display:flex;align-items:center;flex-wrap:wrap;padding:.4em;border:.0063em solid transparent;border-radius:.31em;font-weight:700;font-size:.8em;-webkit-user-select:none;user-select:none;transition:color .5s ease,border-color .5s ease,background .5s ease}:host li:hover,:host li:focus-within{background:#f5f7fa;border-color:#f5f7fa;color:#2bbbad;cursor:pointer;outline:none}:host li sfc-icon{padding-right:.625em;width:10%}:host ::ng-deep sfc-delimeter,:host-context(.sfc-default-theme) :host ::ng-deep sfc-delimeter{background:linear-gradient(to right,rgba(0,0,0,0) 0%,rgba(0,0,0,.3) 17%,rgba(0,0,0,.3) 83%,rgba(0,0,0,0) 100%)}:host-context(.sfc-dark-theme) :host ::ng-deep sfc-delimeter{background:linear-gradient(to right,rgba(0,0,0,0) 0%,rgba(0,0,0,.3) 17%,rgba(0,0,0,.3) 83%,rgba(0,0,0,0) 100%)}:host.active li{background:#e6e9ed;border-color:#e6e9ed;color:#2bbbad}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1$1.DelimeterComponent, selector: "sfc-delimeter", inputs: ["label", "direction"] }, { kind: "component", type: i1$1.IconComponent, selector: "sfc-icon", inputs: ["icon", "imageSrc"] }] });
421
+ DropdownMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DropdownMenuItemComponent, selector: "sfc-dropdown-menu-item", inputs: { item: "item" }, host: { listeners: { "click": "click()" }, properties: { "class.active": "this._active" } }, ngImport: i0, template: "<li>\r\n <sfc-icon [icon]=\"item.icon\" [imageSrc]=\"item.image\"></sfc-icon>\r\n <a>{{item.label}}</a>\r\n</li>\r\n\r\n<sfc-delimeter *ngIf=\"item.delimeter\"></sfc-delimeter>", styles: [":host{display:flex;flex-direction:column;padding:.1em 0}:host li{color:#545e61;display:flex;align-items:center;flex-wrap:wrap;padding:.4em;border:.0063em solid transparent;border-radius:.31em;font-weight:700;font-size:.8em;-webkit-user-select:none;user-select:none;transition:color .5s ease,border-color .5s ease,background .5s ease}:host li:hover,:host li:focus-within{background:#f5f7fa;border-color:#f5f7fa;color:#2bbbad;cursor:pointer;outline:none}:host li sfc-icon{padding-right:.625em;width:10%}:host sfc-delimeter{transition:background .5s ease}:host sfc-delimeter,:host-context(.sfc-default-theme) :host sfc-delimeter{background:linear-gradient(to right,rgba(0,0,0,0) 0%,rgba(0,0,0,.3) 17%,rgba(0,0,0,.3) 83%,rgba(0,0,0,0) 100%)}:host-context(.sfc-dark-theme) :host sfc-delimeter{background:linear-gradient(to right,rgba(0,0,0,0) 0%,rgba(0,0,0,.3) 17%,rgba(0,0,0,.3) 83%,rgba(0,0,0,0) 100%)}:host.active li{background:#e6e9ed;border-color:#e6e9ed;color:#2bbbad}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DelimeterComponent, selector: "sfc-delimeter", inputs: ["label", "direction"] }, { kind: "component", type: i3.IconComponent, selector: "sfc-icon", inputs: ["icon", "imageSrc"] }] });
413
422
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownMenuItemComponent, decorators: [{
414
423
  type: Component,
415
- args: [{ selector: 'sfc-dropdown-menu-item', template: "<li>\r\n <sfc-icon [icon]=\"item.icon\" [imageSrc]=\"item.image\"></sfc-icon>\r\n <a>{{item.label}}</a>\r\n</li>\r\n\r\n<sfc-delimeter *ngIf=\"item.delimeter\"></sfc-delimeter>", styles: [":host{display:flex;flex-direction:column;padding:.1em 0}:host li{color:#545e61;display:flex;align-items:center;flex-wrap:wrap;padding:.4em;border:.0063em solid transparent;border-radius:.31em;font-weight:700;font-size:.8em;-webkit-user-select:none;user-select:none;transition:color .5s ease,border-color .5s ease,background .5s ease}:host li:hover,:host li:focus-within{background:#f5f7fa;border-color:#f5f7fa;color:#2bbbad;cursor:pointer;outline:none}:host li sfc-icon{padding-right:.625em;width:10%}:host ::ng-deep sfc-delimeter,:host-context(.sfc-default-theme) :host ::ng-deep sfc-delimeter{background:linear-gradient(to right,rgba(0,0,0,0) 0%,rgba(0,0,0,.3) 17%,rgba(0,0,0,.3) 83%,rgba(0,0,0,0) 100%)}:host-context(.sfc-dark-theme) :host ::ng-deep sfc-delimeter{background:linear-gradient(to right,rgba(0,0,0,0) 0%,rgba(0,0,0,.3) 17%,rgba(0,0,0,.3) 83%,rgba(0,0,0,0) 100%)}:host.active li{background:#e6e9ed;border-color:#e6e9ed;color:#2bbbad}\n"] }]
424
+ args: [{ selector: 'sfc-dropdown-menu-item', template: "<li>\r\n <sfc-icon [icon]=\"item.icon\" [imageSrc]=\"item.image\"></sfc-icon>\r\n <a>{{item.label}}</a>\r\n</li>\r\n\r\n<sfc-delimeter *ngIf=\"item.delimeter\"></sfc-delimeter>", styles: [":host{display:flex;flex-direction:column;padding:.1em 0}:host li{color:#545e61;display:flex;align-items:center;flex-wrap:wrap;padding:.4em;border:.0063em solid transparent;border-radius:.31em;font-weight:700;font-size:.8em;-webkit-user-select:none;user-select:none;transition:color .5s ease,border-color .5s ease,background .5s ease}:host li:hover,:host li:focus-within{background:#f5f7fa;border-color:#f5f7fa;color:#2bbbad;cursor:pointer;outline:none}:host li sfc-icon{padding-right:.625em;width:10%}:host sfc-delimeter{transition:background .5s ease}:host sfc-delimeter,:host-context(.sfc-default-theme) :host sfc-delimeter{background:linear-gradient(to right,rgba(0,0,0,0) 0%,rgba(0,0,0,.3) 17%,rgba(0,0,0,.3) 83%,rgba(0,0,0,0) 100%)}:host-context(.sfc-dark-theme) :host sfc-delimeter{background:linear-gradient(to right,rgba(0,0,0,0) 0%,rgba(0,0,0,.3) 17%,rgba(0,0,0,.3) 83%,rgba(0,0,0,0) 100%)}:host.active li{background:#e6e9ed;border-color:#e6e9ed;color:#2bbbad}\n"] }]
416
425
  }], propDecorators: { item: [{
417
426
  type: Input
418
427
  }], _active: [{
@@ -432,6 +441,7 @@ class DropdownMenuComponent {
432
441
  this.hideOnClick = true;
433
442
  this.hideOnClickOutside = true;
434
443
  this.bordered = false;
444
+ this.filled = false;
435
445
  this.position = [Position.Left];
436
446
  this.open = false;
437
447
  this.autoResize = true;
@@ -456,21 +466,30 @@ class DropdownMenuComponent {
456
466
  ngOnDestroy() {
457
467
  this._resizeSubscription?.unsubscribe();
458
468
  }
459
- onClick(item) {
469
+ onClick(item, event) {
470
+ this.preventPropagation(event);
460
471
  if (this.hideOnClick)
461
472
  this.open = false;
462
473
  this.items.forEach(item => item.active = false);
463
474
  item.active = true;
464
475
  this.selected.emit(item);
465
476
  }
477
+ toggle(event) {
478
+ this.preventPropagation(event);
479
+ this.open = !this.open;
480
+ }
466
481
  onClickOutside(event) {
467
482
  if (event.value && this.open) {
468
483
  this.open = false;
469
484
  }
470
485
  }
486
+ preventPropagation(event) {
487
+ event.preventDefault();
488
+ event.stopPropagation();
489
+ }
471
490
  }
472
- DropdownMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownMenuComponent, deps: [{ token: i1$1.ResizeService }, { token: WINDOW }], target: i0.ɵɵFactoryTarget.Component });
473
- DropdownMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DropdownMenuComponent, selector: "sfc-dropdown-menu", inputs: { items: "items", icon: "icon", defaultDots: "defaultDots", label: "label", hideOnClick: "hideOnClick", hideOnClickOutside: "hideOnClickOutside", bordered: "bordered", position: "position", open: "open", autoResize: "autoResize" }, outputs: { selected: "selected" }, host: { properties: { "class.bordered": "this.bordered", "class": "this.position", "class.open": "this.open" } }, ngImport: i0, template: "<ul [sfcClickOutside]=\"hideOnClickOutside\" (action)=\"onClickOutside($event)\">\r\n <li>\r\n <div class=\"container\" (click)=\"open = !open\">\r\n <span *ngIf=\"label\">{{label}}</span>\r\n <fa-icon *ngIf=\"icon\" [icon]=\"icon\"></fa-icon>\r\n <sfc-dots *ngIf=\"showDots\" [open]=\"open\"></sfc-dots>\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <ul *ngIf=\"items.length\" [@openClose]=\"open\" class=\"dropdown-container\">\r\n <sfc-dropdown-menu-item *ngFor=\"let item of items\" [item]=\"item\" (click)=\"onClick(item)\">\r\n </sfc-dropdown-menu-item>\r\n </ul>\r\n </li>\r\n</ul>", styles: [":host{display:inline-flex}:host ul{list-style:none;margin:0;padding-left:0}:host ul li{position:relative}:host ul li .container{display:flex;justify-content:center;align-items:center;cursor:pointer;transition:all .5s ease;padding:.3em}:host ul li .container,:host-context(.sfc-default-theme) :host ul li .container{color:#545e61}:host-context(.sfc-dark-theme) :host ul li .container{color:#fff}:host ul li .container span,:host ul li .container fa-icon{font-size:.8em;font-weight:700}:host ul li .container span~fa-icon{margin-left:.3em}:host ul li .container:hover{color:#ffce54}:host ul li .dropdown-container{flex-direction:column;width:max-content;background:#fff;position:absolute;right:0;transition:opacity .5s ease;margin-top:1em;display:none;padding:.6em;border:.0063em solid #f5f7fa;border-radius:.1875em;box-shadow:0 .125em .625em;z-index:9999}:host ul li .dropdown-container,:host-context(.sfc-default-theme) :host ul li .dropdown-container{color:#e6e9ed}:host-context(.sfc-dark-theme) :host ul li .dropdown-container{color:#656d78}:host.open ul li .dropdown-container{display:flex}:host.bordered ul li .container{border:.15em solid;border-radius:.3em}:host.bordered ul li .container,:host-context(.sfc-default-theme) :host.bordered ul li .container{border-color:#545e61}:host-context(.sfc-dark-theme) :host.bordered ul li .container{border-color:#fff}:host.bordered ul li .container:hover{border-color:#ffce54}:host.bordered ul li .container:hover ::ng-deep sfc-dots .dot{background:#ffce54}:host.top ul li .dropdown-container{bottom:0;margin-bottom:2.18em;margin-top:0}:host.center ul li .dropdown-container{left:50%;transform:translate(-50%)}:host.left ul li .dropdown-container{right:0}:host.right ul li .dropdown-container{left:0}\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: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: i1$1.ClickOutsideDirective, selector: "[sfcClickOutside]", inputs: ["sfcClickOutside"], outputs: ["action"] }, { kind: "component", type: i1$1.DotsComponent, selector: "sfc-dots", inputs: ["open", "direction"] }, { kind: "component", type: DropdownMenuItemComponent, selector: "sfc-dropdown-menu-item", inputs: ["item"] }], animations: [
491
+ DropdownMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownMenuComponent, deps: [{ token: i3.ResizeService }, { token: WINDOW }], target: i0.ɵɵFactoryTarget.Component });
492
+ DropdownMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DropdownMenuComponent, selector: "sfc-dropdown-menu", inputs: { items: "items", icon: "icon", defaultDots: "defaultDots", label: "label", hideOnClick: "hideOnClick", hideOnClickOutside: "hideOnClickOutside", bordered: "bordered", filled: "filled", position: "position", open: "open", autoResize: "autoResize" }, outputs: { selected: "selected" }, host: { properties: { "class.bordered": "this.bordered", "class.filled": "this.filled", "class": "this.position", "class.open": "this.open" } }, ngImport: i0, template: "<ul [sfcClickOutside]=\"hideOnClickOutside\" (action)=\"onClickOutside($event)\">\r\n <li>\r\n <div class=\"container\" (click)=\"toggle($event)\">\r\n <span *ngIf=\"label\">{{label}}</span>\r\n <fa-icon *ngIf=\"icon\" [icon]=\"icon\"></fa-icon>\r\n <sfc-dots *ngIf=\"showDots\" [open]=\"open\"></sfc-dots>\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <ul *ngIf=\"items.length\" [@openClose]=\"open\" class=\"dropdown-container\">\r\n <sfc-dropdown-menu-item *ngFor=\"let item of items\" [item]=\"item\" (click)=\"onClick(item, $event)\">\r\n </sfc-dropdown-menu-item>\r\n </ul>\r\n </li>\r\n</ul>", styles: [":host{display:inline-flex}:host ul{list-style:none;margin:0;padding-left:0}:host ul li{position:relative}:host ul li .container{display:flex;justify-content:center;align-items:center;cursor:pointer;transition:color .5s ease,background .5s ease;transition:color .5s ease;padding:.3em}:host ul li .container,:host-context(.sfc-default-theme) :host ul li .container{color:#545e61}:host-context(.sfc-dark-theme) :host ul li .container{color:#fff}:host ul li .container span,:host ul li .container fa-icon{font-size:.8em;font-weight:700}:host ul li .container span~fa-icon{margin-left:.3em}:host ul li .container:hover{color:#ffce54}:host ul li .dropdown-container{flex-direction:column;width:max-content;background:#fff;transition:color .5s ease;position:absolute;right:0;transition:opacity .5s ease;margin-top:1em;display:none;padding:.6em;border:.0063em solid #f5f7fa;border-radius:.1875em;box-shadow:0 .125em .625em;z-index:9999}:host ul li .dropdown-container,:host-context(.sfc-default-theme) :host ul li .dropdown-container{color:#e6e9ed}:host-context(.sfc-dark-theme) :host ul li .dropdown-container{color:#656d78}:host.open ul li .dropdown-container{display:flex}:host.bordered ul li .container{width:1.3em;height:1.3em;border:.1em solid;transition:border-color .5s ease;border-radius:.3em;padding:0}:host.bordered ul li .container,:host-context(.sfc-default-theme) :host.bordered ul li .container{border-color:#545e61}:host-context(.sfc-dark-theme) :host.bordered ul li .container{border-color:#fff}:host.bordered ul li .container:hover{border-color:#ffce54}:host.bordered ul li .container:hover ::ng-deep sfc-dots .dot{background:#ffce54}:host.filled ul li .container{width:1.3em;height:1.3em;border:.1em solid transparent;border-radius:1.3em;padding:0}:host.filled ul li .container:hover{background:#ffce54}:host.filled ul li .container:hover sfc-dots ::ng-deep>.dot{background:#fff!important}:host.top ul li .dropdown-container{bottom:0;margin-bottom:2.18em;margin-top:0}:host.center ul li .dropdown-container{left:50%;transform:translate(-50%)}:host.left ul li .dropdown-container{right:0}:host.right ul li .dropdown-container{left:0}\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: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: i3.ClickOutsideDirective, selector: "[sfcClickOutside]", inputs: ["sfcClickOutside"], outputs: ["action"] }, { kind: "component", type: i3.DotsComponent, selector: "sfc-dots", inputs: ["open", "direction"] }, { kind: "component", type: DropdownMenuItemComponent, selector: "sfc-dropdown-menu-item", inputs: ["item"] }], animations: [
474
493
  trigger('openClose', [
475
494
  state('true', style({
476
495
  opacity: 1
@@ -479,7 +498,7 @@ DropdownMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
479
498
  opacity: 0,
480
499
  })),
481
500
  transition('true <=> false', [
482
- animate('0.5s')
501
+ animate('0.1s')
483
502
  ])
484
503
  ])
485
504
  ] });
@@ -494,11 +513,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
494
513
  opacity: 0,
495
514
  })),
496
515
  transition('true <=> false', [
497
- animate('0.5s')
516
+ animate('0.1s')
498
517
  ])
499
518
  ])
500
- ], template: "<ul [sfcClickOutside]=\"hideOnClickOutside\" (action)=\"onClickOutside($event)\">\r\n <li>\r\n <div class=\"container\" (click)=\"open = !open\">\r\n <span *ngIf=\"label\">{{label}}</span>\r\n <fa-icon *ngIf=\"icon\" [icon]=\"icon\"></fa-icon>\r\n <sfc-dots *ngIf=\"showDots\" [open]=\"open\"></sfc-dots>\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <ul *ngIf=\"items.length\" [@openClose]=\"open\" class=\"dropdown-container\">\r\n <sfc-dropdown-menu-item *ngFor=\"let item of items\" [item]=\"item\" (click)=\"onClick(item)\">\r\n </sfc-dropdown-menu-item>\r\n </ul>\r\n </li>\r\n</ul>", styles: [":host{display:inline-flex}:host ul{list-style:none;margin:0;padding-left:0}:host ul li{position:relative}:host ul li .container{display:flex;justify-content:center;align-items:center;cursor:pointer;transition:all .5s ease;padding:.3em}:host ul li .container,:host-context(.sfc-default-theme) :host ul li .container{color:#545e61}:host-context(.sfc-dark-theme) :host ul li .container{color:#fff}:host ul li .container span,:host ul li .container fa-icon{font-size:.8em;font-weight:700}:host ul li .container span~fa-icon{margin-left:.3em}:host ul li .container:hover{color:#ffce54}:host ul li .dropdown-container{flex-direction:column;width:max-content;background:#fff;position:absolute;right:0;transition:opacity .5s ease;margin-top:1em;display:none;padding:.6em;border:.0063em solid #f5f7fa;border-radius:.1875em;box-shadow:0 .125em .625em;z-index:9999}:host ul li .dropdown-container,:host-context(.sfc-default-theme) :host ul li .dropdown-container{color:#e6e9ed}:host-context(.sfc-dark-theme) :host ul li .dropdown-container{color:#656d78}:host.open ul li .dropdown-container{display:flex}:host.bordered ul li .container{border:.15em solid;border-radius:.3em}:host.bordered ul li .container,:host-context(.sfc-default-theme) :host.bordered ul li .container{border-color:#545e61}:host-context(.sfc-dark-theme) :host.bordered ul li .container{border-color:#fff}:host.bordered ul li .container:hover{border-color:#ffce54}:host.bordered ul li .container:hover ::ng-deep sfc-dots .dot{background:#ffce54}:host.top ul li .dropdown-container{bottom:0;margin-bottom:2.18em;margin-top:0}:host.center ul li .dropdown-container{left:50%;transform:translate(-50%)}:host.left ul li .dropdown-container{right:0}:host.right ul li .dropdown-container{left:0}\n"] }]
501
- }], ctorParameters: function () { return [{ type: i1$1.ResizeService }, { type: Window, decorators: [{
519
+ ], template: "<ul [sfcClickOutside]=\"hideOnClickOutside\" (action)=\"onClickOutside($event)\">\r\n <li>\r\n <div class=\"container\" (click)=\"toggle($event)\">\r\n <span *ngIf=\"label\">{{label}}</span>\r\n <fa-icon *ngIf=\"icon\" [icon]=\"icon\"></fa-icon>\r\n <sfc-dots *ngIf=\"showDots\" [open]=\"open\"></sfc-dots>\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <ul *ngIf=\"items.length\" [@openClose]=\"open\" class=\"dropdown-container\">\r\n <sfc-dropdown-menu-item *ngFor=\"let item of items\" [item]=\"item\" (click)=\"onClick(item, $event)\">\r\n </sfc-dropdown-menu-item>\r\n </ul>\r\n </li>\r\n</ul>", styles: [":host{display:inline-flex}:host ul{list-style:none;margin:0;padding-left:0}:host ul li{position:relative}:host ul li .container{display:flex;justify-content:center;align-items:center;cursor:pointer;transition:color .5s ease,background .5s ease;transition:color .5s ease;padding:.3em}:host ul li .container,:host-context(.sfc-default-theme) :host ul li .container{color:#545e61}:host-context(.sfc-dark-theme) :host ul li .container{color:#fff}:host ul li .container span,:host ul li .container fa-icon{font-size:.8em;font-weight:700}:host ul li .container span~fa-icon{margin-left:.3em}:host ul li .container:hover{color:#ffce54}:host ul li .dropdown-container{flex-direction:column;width:max-content;background:#fff;transition:color .5s ease;position:absolute;right:0;transition:opacity .5s ease;margin-top:1em;display:none;padding:.6em;border:.0063em solid #f5f7fa;border-radius:.1875em;box-shadow:0 .125em .625em;z-index:9999}:host ul li .dropdown-container,:host-context(.sfc-default-theme) :host ul li .dropdown-container{color:#e6e9ed}:host-context(.sfc-dark-theme) :host ul li .dropdown-container{color:#656d78}:host.open ul li .dropdown-container{display:flex}:host.bordered ul li .container{width:1.3em;height:1.3em;border:.1em solid;transition:border-color .5s ease;border-radius:.3em;padding:0}:host.bordered ul li .container,:host-context(.sfc-default-theme) :host.bordered ul li .container{border-color:#545e61}:host-context(.sfc-dark-theme) :host.bordered ul li .container{border-color:#fff}:host.bordered ul li .container:hover{border-color:#ffce54}:host.bordered ul li .container:hover ::ng-deep sfc-dots .dot{background:#ffce54}:host.filled ul li .container{width:1.3em;height:1.3em;border:.1em solid transparent;border-radius:1.3em;padding:0}:host.filled ul li .container:hover{background:#ffce54}:host.filled ul li .container:hover sfc-dots ::ng-deep>.dot{background:#fff!important}:host.top ul li .dropdown-container{bottom:0;margin-bottom:2.18em;margin-top:0}:host.center ul li .dropdown-container{left:50%;transform:translate(-50%)}:host.left ul li .dropdown-container{right:0}:host.right ul li .dropdown-container{left:0}\n"] }]
520
+ }], ctorParameters: function () { return [{ type: i3.ResizeService }, { type: Window, decorators: [{
502
521
  type: Inject,
503
522
  args: [WINDOW]
504
523
  }] }]; }, propDecorators: { items: [{
@@ -518,6 +537,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
518
537
  }, {
519
538
  type: HostBinding,
520
539
  args: ['class.' + UIClass.Bordered]
540
+ }], filled: [{
541
+ type: Input
542
+ }, {
543
+ type: HostBinding,
544
+ args: ['class.' + UIClass.Filled]
521
545
  }], position: [{
522
546
  type: Input
523
547
  }, {
@@ -547,10 +571,10 @@ class NavigationMenuItemComponent {
547
571
  }
548
572
  }
549
573
  NavigationMenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NavigationMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
550
- NavigationMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NavigationMenuItemComponent, selector: "sfc-navigation-menu-item", inputs: { item: "item" }, host: { listeners: { "click": "click()" }, properties: { "class.active": "this.active" } }, ngImport: i0, template: "<div class=\"container\">\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\"></fa-icon>\r\n <span>{{item.label}}</span>\r\n</div>", styles: [":host{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;transition:color .2s ease-in-out}:host,:host-context(.sfc-default-theme) :host{color:#545e61}:host-context(.sfc-dark-theme) :host{color:#fff}:host .container{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:1em .3em;margin:.625em;width:100%;border-radius:.625em;transition:background .2s ease-in-out}:host .container fa-icon{font-size:1.5em}:host .container span{font-size:1em;font-weight:700;margin-top:.625em;text-align:center}:host:hover,:host.active{color:#fff}:host:hover .container,:host.active .container{background:#ffce54}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
574
+ NavigationMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NavigationMenuItemComponent, selector: "sfc-navigation-menu-item", inputs: { item: "item" }, host: { listeners: { "click": "click()" }, properties: { "class.active": "this.active" } }, ngImport: i0, template: "<div class=\"container\">\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\"></fa-icon>\r\n <span>{{item.label}}</span>\r\n</div>", styles: [":host{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;transition:color .5s ease;transition:color .2s ease-in-out}:host,:host-context(.sfc-default-theme) :host{color:#545e61}:host-context(.sfc-dark-theme) :host{color:#fff}:host .container{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:1em .3em;margin:.625em;width:100%;border-radius:.625em;transition:background .2s ease-in-out}:host .container fa-icon{font-size:1.5em}:host .container span{font-size:1em;font-weight:700;margin-top:.625em;text-align:center}:host:hover,:host.active{color:#fff}:host:hover .container,:host.active .container{background:#ffce54}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
551
575
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NavigationMenuItemComponent, decorators: [{
552
576
  type: Component,
553
- args: [{ selector: 'sfc-navigation-menu-item', template: "<div class=\"container\">\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\"></fa-icon>\r\n <span>{{item.label}}</span>\r\n</div>", styles: [":host{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;transition:color .2s ease-in-out}:host,:host-context(.sfc-default-theme) :host{color:#545e61}:host-context(.sfc-dark-theme) :host{color:#fff}:host .container{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:1em .3em;margin:.625em;width:100%;border-radius:.625em;transition:background .2s ease-in-out}:host .container fa-icon{font-size:1.5em}:host .container span{font-size:1em;font-weight:700;margin-top:.625em;text-align:center}:host:hover,:host.active{color:#fff}:host:hover .container,:host.active .container{background:#ffce54}\n"] }]
577
+ args: [{ selector: 'sfc-navigation-menu-item', template: "<div class=\"container\">\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\"></fa-icon>\r\n <span>{{item.label}}</span>\r\n</div>", styles: [":host{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;transition:color .5s ease;transition:color .2s ease-in-out}:host,:host-context(.sfc-default-theme) :host{color:#545e61}:host-context(.sfc-dark-theme) :host{color:#fff}:host .container{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:1em .3em;margin:.625em;width:100%;border-radius:.625em;transition:background .2s ease-in-out}:host .container fa-icon{font-size:1.5em}:host .container span{font-size:1em;font-weight:700;margin-top:.625em;text-align:center}:host:hover,:host.active{color:#fff}:host:hover .container,:host.active .container{background:#ffce54}\n"] }]
554
578
  }], propDecorators: { item: [{
555
579
  type: Input
556
580
  }], active: [{
@@ -573,10 +597,10 @@ class NavigationMenuComponent {
573
597
  }
574
598
  }
575
599
  NavigationMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NavigationMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
576
- NavigationMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NavigationMenuComponent, selector: "sfc-navigation-menu", inputs: { items: "items" }, outputs: { selected: "selected" }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"items\">\r\n <sfc-navigation-menu-item *ngFor=\"let item of items\" [item]=\"item\" (click)=\"onClick(item)\">\r\n </sfc-navigation-menu-item>\r\n </div>\r\n</div>", styles: [":host .container,:host-context(.sfc-default-theme) :host .container{background:#f5f7fa}:host-context(.sfc-dark-theme) :host .container{background:#1b1d1f}:host .container .items{display:flex;flex-wrap:wrap;padding:.625em}:host .container .items sfc-navigation-menu-item{flex:50%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: NavigationMenuItemComponent, selector: "sfc-navigation-menu-item", inputs: ["item"] }] });
600
+ NavigationMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NavigationMenuComponent, selector: "sfc-navigation-menu", inputs: { items: "items" }, outputs: { selected: "selected" }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"items\">\r\n <sfc-navigation-menu-item *ngFor=\"let item of items\" [item]=\"item\" (click)=\"onClick(item)\">\r\n </sfc-navigation-menu-item>\r\n </div>\r\n</div>", styles: [":host .container{transition:background .5s ease}:host .container,:host-context(.sfc-default-theme) :host .container{background:#f5f7fa}:host-context(.sfc-dark-theme) :host .container{background:#1b1d1f}:host .container .items{display:flex;flex-wrap:wrap;padding:.625em}:host .container .items sfc-navigation-menu-item{flex:50%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: NavigationMenuItemComponent, selector: "sfc-navigation-menu-item", inputs: ["item"] }] });
577
601
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NavigationMenuComponent, decorators: [{
578
602
  type: Component,
579
- args: [{ selector: 'sfc-navigation-menu', template: "<div class=\"container\">\r\n <div class=\"items\">\r\n <sfc-navigation-menu-item *ngFor=\"let item of items\" [item]=\"item\" (click)=\"onClick(item)\">\r\n </sfc-navigation-menu-item>\r\n </div>\r\n</div>", styles: [":host .container,:host-context(.sfc-default-theme) :host .container{background:#f5f7fa}:host-context(.sfc-dark-theme) :host .container{background:#1b1d1f}:host .container .items{display:flex;flex-wrap:wrap;padding:.625em}:host .container .items sfc-navigation-menu-item{flex:50%}\n"] }]
603
+ args: [{ selector: 'sfc-navigation-menu', template: "<div class=\"container\">\r\n <div class=\"items\">\r\n <sfc-navigation-menu-item *ngFor=\"let item of items\" [item]=\"item\" (click)=\"onClick(item)\">\r\n </sfc-navigation-menu-item>\r\n </div>\r\n</div>", styles: [":host .container{transition:background .5s ease}:host .container,:host-context(.sfc-default-theme) :host .container{background:#f5f7fa}:host-context(.sfc-dark-theme) :host .container{background:#1b1d1f}:host .container .items{display:flex;flex-wrap:wrap;padding:.625em}:host .container .items sfc-navigation-menu-item{flex:50%}\n"] }]
580
604
  }], propDecorators: { items: [{
581
605
  type: Input
582
606
  }], selected: [{
@@ -620,10 +644,10 @@ class StarsComponent {
620
644
  }
621
645
  }
622
646
  StarsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: StarsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
623
- StarsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: StarsComponent, selector: "sfc-stars", inputs: { value: "value", count: "count" }, ngImport: i0, template: "<div class=\"container\">\r\n <button *ngFor=\"let star of stars; let i = index;\" [ngClass]=\"getStarType(i)\"></button>\r\n</div>", styles: [":host .container button{width:1.8em;height:1.8em;font-size:1em;background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat;cursor:pointer;border:0;outline:none;transition:transform .25s,background .25s ease}:host .container button:hover{transform:scale(1.1)}:host .container button.none{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}:host .container button.s25{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22gold%22%20d%3D%22M196.208 415.2v-224.8l-139.504 20.272 100.944 98.384-23.84 138.928z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat,url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}:host .container button.half{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22gold%22%20d%3D%22M258.672 64l-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6v-318.4z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat,url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}:host .container button.s75{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22gold%22%20d%3D%22M321.616 190.496l-0.656-0.096-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 63.024 33.136z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat,url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}:host .container button.full{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22gold%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
647
+ StarsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: StarsComponent, selector: "sfc-stars", inputs: { value: "value", count: "count" }, ngImport: i0, template: "<div class=\"container\">\r\n <button *ngFor=\"let star of stars; let i = index;\" [ngClass]=\"getStarType(i)\"></button>\r\n</div>", styles: [":host{display:inline-block}:host .container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}:host .container button{width:1.8em;height:1.8em;font-size:1em;background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat;cursor:pointer;border:0;outline:none;transition:transform .5s,background .5s ease}:host .container button:hover{transform:scale(1.1)}:host .container button.none{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}:host .container button.s25{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22gold%22%20d%3D%22M196.208 415.2v-224.8l-139.504 20.272 100.944 98.384-23.84 138.928z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat,url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}:host .container button.half{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22gold%22%20d%3D%22M258.672 64l-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6v-318.4z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat,url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}:host .container button.s75{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22gold%22%20d%3D%22M321.616 190.496l-0.656-0.096-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 63.024 33.136z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat,url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}:host .container button.full{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22gold%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
624
648
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: StarsComponent, decorators: [{
625
649
  type: Component,
626
- args: [{ selector: 'sfc-stars', template: "<div class=\"container\">\r\n <button *ngFor=\"let star of stars; let i = index;\" [ngClass]=\"getStarType(i)\"></button>\r\n</div>", styles: [":host .container button{width:1.8em;height:1.8em;font-size:1em;background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat;cursor:pointer;border:0;outline:none;transition:transform .25s,background .25s ease}:host .container button:hover{transform:scale(1.1)}:host .container button.none{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}:host .container button.s25{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22gold%22%20d%3D%22M196.208 415.2v-224.8l-139.504 20.272 100.944 98.384-23.84 138.928z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat,url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}:host .container button.half{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22gold%22%20d%3D%22M258.672 64l-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6v-318.4z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat,url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}:host .container button.s75{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22gold%22%20d%3D%22M321.616 190.496l-0.656-0.096-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 63.024 33.136z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat,url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}:host .container button.full{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22gold%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}\n"] }]
650
+ args: [{ selector: 'sfc-stars', template: "<div class=\"container\">\r\n <button *ngFor=\"let star of stars; let i = index;\" [ngClass]=\"getStarType(i)\"></button>\r\n</div>", styles: [":host{display:inline-block}:host .container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}:host .container button{width:1.8em;height:1.8em;font-size:1em;background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat;cursor:pointer;border:0;outline:none;transition:transform .5s,background .5s ease}:host .container button:hover{transform:scale(1.1)}:host .container button.none{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}:host .container button.s25{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22gold%22%20d%3D%22M196.208 415.2v-224.8l-139.504 20.272 100.944 98.384-23.84 138.928z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat,url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}:host .container button.half{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22gold%22%20d%3D%22M258.672 64l-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6v-318.4z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat,url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}:host .container button.s75{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22gold%22%20d%3D%22M321.616 190.496l-0.656-0.096-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 63.024 33.136z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat,url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23ddd%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}:host .container button.full{background:url(\"data:image/svg+xml;utf8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22gold%22%20d%3D%22M457.888 210.672l-139.504-20.272-62.384-126.4-62.384 126.4-139.504 20.272 100.944 98.384-23.84 138.928 124.768-65.6 124.768 65.6-23.84-138.928c0 0 100.944-98.384 100.944-98.384z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\") center/cover no-repeat}\n"] }]
627
651
  }], propDecorators: { value: [{
628
652
  type: Input
629
653
  }], count: [{
@@ -648,7 +672,8 @@ class AvatarImageModel {
648
672
  this.Circumference = Math.round(this.NormalizedRadius * 2 * Math.PI);
649
673
  this.Height = this.Width = this.radius * 2;
650
674
  this.ImageRadius = this.NormalizedRadius - (this.NormalizedRadius * 0.15);
651
- this.ImageId = Math.random() + (this.image?.split(/(\\|\/)/g).pop() || CommonConstants.EMPTY_STRING);
675
+ this.ImageId = image instanceof File ? '' : Math.random() + (this.image?.split(/(\\|\/)/g).pop() || CommonConstants.EMPTY_STRING);
676
+ this.Stroke = stroke;
652
677
  }
653
678
  }
654
679
 
@@ -666,12 +691,12 @@ var AvatarBadgePosition;
666
691
 
667
692
  class AvatarBadgeConstants {
668
693
  }
669
- AvatarBadgeConstants.SIZE_MULTIPLIER = 0.3;
670
- AvatarBadgeConstants.TEXT_SIZE_MULTIPLIER = 0.25;
694
+ AvatarBadgeConstants.SIZE_MULTIPLIER = 0.375;
695
+ AvatarBadgeConstants.TEXT_SIZE_MULTIPLIER = 0.2;
671
696
 
672
697
  class AvatarBadgeComponent {
673
698
  constructor() {
674
- this.position = AvatarBadgePosition.Right;
699
+ this.model = { position: AvatarBadgePosition.Bottom };
675
700
  this.radius = AvatarConstants.DEFAULT_RADIUS;
676
701
  this.normalizedRadius = AvatarConstants.DEFAULT_RADIUS;
677
702
  this.stroke = AvatarConstants.DEFAULT_STROKE;
@@ -682,7 +707,7 @@ class AvatarBadgeComponent {
682
707
  ...{
683
708
  height: badgeSize,
684
709
  width: badgeSize,
685
- background: this.background,
710
+ background: this.model.background || this.background,
686
711
  fontSize: getCssLikeValue(this.radius * AvatarBadgeConstants.TEXT_SIZE_MULTIPLIER)
687
712
  },
688
713
  ...this.positionStyle
@@ -690,7 +715,7 @@ class AvatarBadgeComponent {
690
715
  }
691
716
  get positionStyle() {
692
717
  const halfNormilizedSizePart = this.normalizedRadius * AvatarBadgeConstants.SIZE_MULTIPLIER / 2, halfNormilizedSizePartPx = getCssLikeValue(halfNormilizedSizePart), strokedHalfNormilizedSizePartPx = `-${getCssLikeValue(Math.abs(halfNormilizedSizePart - this.stroke))}`, strokePx = getCssLikeValue(this.stroke), positionPart = `calc(50${UIConstants.CSS_PERCENTAGE} - ${getCssLikeValue((this.sizePart / 2))}`, positionBottomPart = `calc(25${UIConstants.CSS_PERCENTAGE} - ${halfNormilizedSizePartPx}`, positionTopPart = `calc(75${UIConstants.CSS_PERCENTAGE} - ${halfNormilizedSizePartPx}`;
693
- switch (this.position) {
718
+ switch (this.model.position) {
694
719
  case AvatarBadgePosition.Top:
695
720
  return {
696
721
  right: positionPart,
@@ -738,13 +763,19 @@ class AvatarBadgeComponent {
738
763
  }
739
764
  }
740
765
  AvatarBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AvatarBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
741
- AvatarBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AvatarBadgeComponent, selector: "sfc-avatar-badge", inputs: { position: "position", background: "background" }, host: { properties: { "style": "this.styles" } }, ngImport: i0, template: "<span class=\"container\">\r\n <ng-content></ng-content>\r\n</span>", styles: [":host{display:flex;position:absolute;flex-wrap:wrap;align-items:center;justify-content:center;font-weight:700;box-shadow:0 0 0 2px #fff;-webkit-user-select:none;user-select:none;border-radius:50%;color:#fff}\n"] });
766
+ AvatarBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AvatarBadgeComponent, selector: "sfc-avatar-badge", inputs: { background: "background", model: "model", radius: "radius", normalizedRadius: "normalizedRadius", stroke: "stroke" }, host: { properties: { "style": "this.styles" } }, ngImport: i0, template: "<span class=\"container\">\r\n <ng-template #content>\r\n <span *ngIf=\"model.label\" class=\"label\">{{model.label}}</span>\r\n <fa-icon *ngIf=\"model.icon\" [icon]=\"model.icon\"></fa-icon>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"model.tooltip?.value\">\r\n <span class=\"tooltip\" [sfc-tooltip]=\"model.tooltip?.value\" [tooltipPosition]=\"model.tooltip?.position!\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!model.tooltip?.value\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </ng-container>\r\n</span>", styles: [":host{display:flex;position:absolute;flex-wrap:wrap;align-items:center;justify-content:center;font-weight:700;box-shadow:0 0 0 2px #fff;-webkit-user-select:none;user-select:none;border-radius:50%;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "component", type: i3.TooltipComponent, selector: "[sfc-tooltip]", inputs: ["sfc-tooltip", "tooltipType", "tooltipPosition", "tooltipShow", "resize"] }] });
742
767
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AvatarBadgeComponent, decorators: [{
743
768
  type: Component,
744
- args: [{ selector: 'sfc-avatar-badge', template: "<span class=\"container\">\r\n <ng-content></ng-content>\r\n</span>", styles: [":host{display:flex;position:absolute;flex-wrap:wrap;align-items:center;justify-content:center;font-weight:700;box-shadow:0 0 0 2px #fff;-webkit-user-select:none;user-select:none;border-radius:50%;color:#fff}\n"] }]
745
- }], propDecorators: { position: [{
769
+ args: [{ selector: 'sfc-avatar-badge', template: "<span class=\"container\">\r\n <ng-template #content>\r\n <span *ngIf=\"model.label\" class=\"label\">{{model.label}}</span>\r\n <fa-icon *ngIf=\"model.icon\" [icon]=\"model.icon\"></fa-icon>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"model.tooltip?.value\">\r\n <span class=\"tooltip\" [sfc-tooltip]=\"model.tooltip?.value\" [tooltipPosition]=\"model.tooltip?.position!\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!model.tooltip?.value\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </ng-container>\r\n</span>", styles: [":host{display:flex;position:absolute;flex-wrap:wrap;align-items:center;justify-content:center;font-weight:700;box-shadow:0 0 0 2px #fff;-webkit-user-select:none;user-select:none;border-radius:50%;color:#fff}\n"] }]
770
+ }], propDecorators: { background: [{
746
771
  type: Input
747
- }], background: [{
772
+ }], model: [{
773
+ type: Input
774
+ }], radius: [{
775
+ type: Input
776
+ }], normalizedRadius: [{
777
+ type: Input
778
+ }], stroke: [{
748
779
  type: Input
749
780
  }], styles: [{
750
781
  type: HostBinding,
@@ -778,35 +809,31 @@ class AvatarComponent {
778
809
  /**
779
810
  * Progress colors model
780
811
  */
781
- this.progressModel = this.PROGRESS_MODEL_DEFAULT;
812
+ this._progressModel = this.PROGRESS_MODEL_DEFAULT;
782
813
  this.data = this.DATA_MODEL_DEFAULT;
783
814
  this.stars = false;
784
815
  this.starsValue = 0;
785
- this.badges = new QueryList();
816
+ this.badges = [];
817
+ }
818
+ get progressModel() {
819
+ return this._progressModel;
820
+ }
821
+ set progressModel(value) {
822
+ this._progressModel = { ...this.PROGRESS_MODEL_DEFAULT, ...value };
786
823
  }
787
824
  ngOnInit() {
788
825
  this.imageModel = new AvatarImageModel(this.radius, this.stroke, this.data.image);
789
- this.progressModel = { ...this.PROGRESS_MODEL_DEFAULT, ...this.progressModel };
790
826
  this.data = { ...this.DATA_MODEL_DEFAULT, ...this.data };
791
827
  }
792
- ngAfterContentInit() {
793
- this.badges.forEach(badge => {
794
- badge.radius = this.radius;
795
- badge.normalizedRadius = this.imageModel.NormalizedRadius;
796
- badge.stroke = this.stroke;
797
- if (isNullOrEmptyString(badge.background))
798
- badge.background = this.progressModel.filledColor;
799
- });
800
- }
801
828
  get strokeDashOffset() {
802
829
  return Math.round(this.imageModel.Circumference - (this.progress / 100 * this.imageModel.Circumference));
803
830
  }
804
831
  }
805
832
  AvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
806
- AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AvatarComponent, selector: "sfc-avatar", inputs: { radius: "radius", stroke: "stroke", progress: "progress", progressModel: "progressModel", data: "data", stars: "stars", starsValue: "starsValue" }, queries: [{ propertyName: "badges", predicate: AvatarBadgeComponent, read: AvatarBadgeComponent }], ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"avatar-image-container\">\r\n <div class=\"avatar\" (mouseenter)=\"stroke = stroke * STROKE_HOVER_VALUE\"\r\n (mouseleave)=\"stroke = stroke / STROKE_HOVER_VALUE\">\r\n\r\n <div class=\"avatar-image\">\r\n <svg [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\">\r\n <defs>\r\n <pattern id=\"{{imageModel.ImageId}}\" patternUnits=\"userSpaceOnUse\"\r\n [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\">\r\n <image [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\"\r\n [attr.xlink:href]=\"data.image\" preserveAspectRatio=\"xMidYMid slice\"></image>\r\n </pattern>\r\n </defs>\r\n <circle class=\"progress\" [attr.stroke]=\"progressModel.color\" [attr.stroke-width]=\"stroke\"\r\n fill=\"transparent\" [attr.r]=\"imageModel.NormalizedRadius\" [attr.cx]=\"radius\"\r\n [attr.cy]=\"radius\" />\r\n <circle class=\"progress\" [attr.stroke]=\"progressModel.filledColor\"\r\n [attr.stroke-dasharray]=\"imageModel.Circumference + ' ' + imageModel.Circumference\"\r\n [ngStyle]=\"{'stroke-dashoffset':strokeDashOffset}\" [attr.stroke-width]=\"stroke\"\r\n fill=\"transparent\" [attr.r]=\"imageModel.NormalizedRadius\" [attr.cx]=\"radius\"\r\n [attr.cy]=\"radius\" />\r\n\r\n <circle [attr.cx]=\"radius\" [attr.cy]=\"radius\" [attr.r]=\"imageModel.ImageRadius\"\r\n attr.fill=\"url('#{{imageModel.ImageId}}')\" />\r\n </svg>\r\n </div>\r\n\r\n <ng-content></ng-content>\r\n\r\n </div>\r\n\r\n <sfc-stars *ngIf=\"stars\" [value]=\"starsValue\"></sfc-stars>\r\n </div>\r\n\r\n <div class=\"avatar-data-container\">\r\n <div class=\"fullname\" [style.fontSize.px]=\"radius / FULLNAME_PART_VALUE\">\r\n <span>{{data.firstName}} {{data.lastName}}</span>\r\n </div>\r\n <div class=\"title\" [style.fontSize.px]=\"radius / TITLE_PART_VALUE\">\r\n <span>{{data.title}}</span>\r\n </div>\r\n </div>\r\n</div>", styles: [":host .container .avatar-image-container{display:flex;justify-content:center;flex-direction:column;align-items:center}:host .container .avatar-image-container .avatar{position:relative;margin-bottom:.5em}:host .container .avatar-image-container .avatar .avatar-image{display:flex;overflow:hidden;align-items:center;justify-content:center}:host .container .avatar-image-container .avatar .avatar-image circle{transform-origin:50% 50%;transition:stroke-dashoffset .35s,stroke-width .3s}:host .container .avatar-image-container .avatar .avatar-image circle.progress{transform:rotate(-90deg)}:host .container .avatar-data-container{display:flex;flex-direction:column;align-items:center;font-size:1em;font-weight:700;-webkit-user-select:none;user-select:none}:host .container .avatar-data-container .fullname,:host-context(.sfc-default-theme) :host .container .avatar-data-container .fullname{color:#545e61}:host-context(.sfc-dark-theme) :host .container .avatar-data-container .fullname{color:#f5f7fa}:host .container .avatar-data-container .title{color:#aab2bd}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: StarsComponent, selector: "sfc-stars", inputs: ["value", "count"] }] });
833
+ AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AvatarComponent, selector: "sfc-avatar", inputs: { radius: "radius", stroke: "stroke", progress: "progress", progressModel: "progressModel", data: "data", stars: "stars", starsValue: "starsValue", badges: "badges" }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"avatar-image-container\">\r\n <div class=\"avatar\" (mouseenter)=\"stroke = imageModel.Stroke * STROKE_HOVER_VALUE\"\r\n (mouseleave)=\"stroke = imageModel.Stroke\">\r\n\r\n <div class=\"avatar-image\">\r\n <svg [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\">\r\n <defs>\r\n <pattern id=\"{{imageModel.ImageId}}\" patternUnits=\"userSpaceOnUse\"\r\n [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\">\r\n <image [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\"\r\n [attr.xlink:href]=\"data.image\" preserveAspectRatio=\"xMidYMid slice\"></image>\r\n </pattern>\r\n </defs>\r\n <circle class=\"progress\" [attr.stroke]=\"progressModel.color\" [attr.stroke-width]=\"stroke\"\r\n fill=\"transparent\" [attr.r]=\"imageModel.NormalizedRadius\" [attr.cx]=\"radius\"\r\n [attr.cy]=\"radius\" />\r\n <circle class=\"progress\" [attr.stroke]=\"progressModel.filledColor\"\r\n [attr.stroke-dasharray]=\"imageModel.Circumference + ' ' + imageModel.Circumference\"\r\n [ngStyle]=\"{'stroke-dashoffset':strokeDashOffset}\" [attr.stroke-width]=\"stroke\"\r\n fill=\"transparent\" [attr.r]=\"imageModel.NormalizedRadius\" [attr.cx]=\"radius\"\r\n [attr.cy]=\"radius\" />\r\n\r\n <circle [attr.cx]=\"radius\" [attr.cy]=\"radius\" [attr.r]=\"imageModel.ImageRadius\"\r\n attr.fill=\"url('#{{imageModel.ImageId}}')\" />\r\n </svg>\r\n </div>\r\n\r\n <sfc-avatar-badge *ngFor=\"let badge of badges\" [model]=\"badge\" [radius]=\"radius\"\r\n [stroke]=\"imageModel.Stroke\" [normalizedRadius]=\"imageModel.NormalizedRadius\"\r\n [background]=\"progressModel.filledColor\">\r\n </sfc-avatar-badge>\r\n\r\n </div>\r\n\r\n <sfc-stars *ngIf=\"stars\" [value]=\"starsValue\"></sfc-stars>\r\n </div>\r\n\r\n <div class=\"avatar-data-container\">\r\n <div class=\"fullname\" [style.fontSize.px]=\"radius / FULLNAME_PART_VALUE\">\r\n <span>{{data.firstName}} {{data.lastName}}</span>\r\n </div>\r\n <div class=\"title\" [style.fontSize.px]=\"radius / TITLE_PART_VALUE\">\r\n <span>{{data.title}}</span>\r\n </div>\r\n </div>\r\n</div>", styles: [":host .container .avatar-image-container{display:flex;align-items:center;justify-content:center;flex-direction:column}:host .container .avatar-image-container .avatar{position:relative}:host .container .avatar-image-container .avatar .avatar-image{display:flex;align-items:center;justify-content:center;overflow:hidden}:host .container .avatar-image-container .avatar .avatar-image circle{transform-origin:50% 50%;transition:stroke-dashoffset .35s,stroke-width .3s}:host .container .avatar-image-container .avatar .avatar-image circle.progress{transform:rotate(-90deg)}:host .container .avatar-image-container sfc-stars{margin-top:.5em}:host .container .avatar-data-container{display:flex;flex-direction:column;align-items:center;font-size:1em;font-weight:700;-webkit-user-select:none;user-select:none}:host .container .avatar-data-container .fullname{transition:color .5s ease}:host .container .avatar-data-container .fullname,:host-context(.sfc-default-theme) :host .container .avatar-data-container .fullname{color:#545e61}:host-context(.sfc-dark-theme) :host .container .avatar-data-container .fullname{color:#f5f7fa}:host .container .avatar-data-container .title{color:#aab2bd}:host .container .avatar-data-container .fullname,:host .container .avatar-data-container .title{transition:color .5s ease}\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: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: StarsComponent, selector: "sfc-stars", inputs: ["value", "count"] }, { kind: "component", type: AvatarBadgeComponent, selector: "sfc-avatar-badge", inputs: ["background", "model", "radius", "normalizedRadius", "stroke"] }] });
807
834
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AvatarComponent, decorators: [{
808
835
  type: Component,
809
- args: [{ selector: 'sfc-avatar', template: "<div class=\"container\">\r\n <div class=\"avatar-image-container\">\r\n <div class=\"avatar\" (mouseenter)=\"stroke = stroke * STROKE_HOVER_VALUE\"\r\n (mouseleave)=\"stroke = stroke / STROKE_HOVER_VALUE\">\r\n\r\n <div class=\"avatar-image\">\r\n <svg [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\">\r\n <defs>\r\n <pattern id=\"{{imageModel.ImageId}}\" patternUnits=\"userSpaceOnUse\"\r\n [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\">\r\n <image [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\"\r\n [attr.xlink:href]=\"data.image\" preserveAspectRatio=\"xMidYMid slice\"></image>\r\n </pattern>\r\n </defs>\r\n <circle class=\"progress\" [attr.stroke]=\"progressModel.color\" [attr.stroke-width]=\"stroke\"\r\n fill=\"transparent\" [attr.r]=\"imageModel.NormalizedRadius\" [attr.cx]=\"radius\"\r\n [attr.cy]=\"radius\" />\r\n <circle class=\"progress\" [attr.stroke]=\"progressModel.filledColor\"\r\n [attr.stroke-dasharray]=\"imageModel.Circumference + ' ' + imageModel.Circumference\"\r\n [ngStyle]=\"{'stroke-dashoffset':strokeDashOffset}\" [attr.stroke-width]=\"stroke\"\r\n fill=\"transparent\" [attr.r]=\"imageModel.NormalizedRadius\" [attr.cx]=\"radius\"\r\n [attr.cy]=\"radius\" />\r\n\r\n <circle [attr.cx]=\"radius\" [attr.cy]=\"radius\" [attr.r]=\"imageModel.ImageRadius\"\r\n attr.fill=\"url('#{{imageModel.ImageId}}')\" />\r\n </svg>\r\n </div>\r\n\r\n <ng-content></ng-content>\r\n\r\n </div>\r\n\r\n <sfc-stars *ngIf=\"stars\" [value]=\"starsValue\"></sfc-stars>\r\n </div>\r\n\r\n <div class=\"avatar-data-container\">\r\n <div class=\"fullname\" [style.fontSize.px]=\"radius / FULLNAME_PART_VALUE\">\r\n <span>{{data.firstName}} {{data.lastName}}</span>\r\n </div>\r\n <div class=\"title\" [style.fontSize.px]=\"radius / TITLE_PART_VALUE\">\r\n <span>{{data.title}}</span>\r\n </div>\r\n </div>\r\n</div>", styles: [":host .container .avatar-image-container{display:flex;justify-content:center;flex-direction:column;align-items:center}:host .container .avatar-image-container .avatar{position:relative;margin-bottom:.5em}:host .container .avatar-image-container .avatar .avatar-image{display:flex;overflow:hidden;align-items:center;justify-content:center}:host .container .avatar-image-container .avatar .avatar-image circle{transform-origin:50% 50%;transition:stroke-dashoffset .35s,stroke-width .3s}:host .container .avatar-image-container .avatar .avatar-image circle.progress{transform:rotate(-90deg)}:host .container .avatar-data-container{display:flex;flex-direction:column;align-items:center;font-size:1em;font-weight:700;-webkit-user-select:none;user-select:none}:host .container .avatar-data-container .fullname,:host-context(.sfc-default-theme) :host .container .avatar-data-container .fullname{color:#545e61}:host-context(.sfc-dark-theme) :host .container .avatar-data-container .fullname{color:#f5f7fa}:host .container .avatar-data-container .title{color:#aab2bd}\n"] }]
836
+ args: [{ selector: 'sfc-avatar', template: "<div class=\"container\">\r\n <div class=\"avatar-image-container\">\r\n <div class=\"avatar\" (mouseenter)=\"stroke = imageModel.Stroke * STROKE_HOVER_VALUE\"\r\n (mouseleave)=\"stroke = imageModel.Stroke\">\r\n\r\n <div class=\"avatar-image\">\r\n <svg [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\">\r\n <defs>\r\n <pattern id=\"{{imageModel.ImageId}}\" patternUnits=\"userSpaceOnUse\"\r\n [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\">\r\n <image [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\"\r\n [attr.xlink:href]=\"data.image\" preserveAspectRatio=\"xMidYMid slice\"></image>\r\n </pattern>\r\n </defs>\r\n <circle class=\"progress\" [attr.stroke]=\"progressModel.color\" [attr.stroke-width]=\"stroke\"\r\n fill=\"transparent\" [attr.r]=\"imageModel.NormalizedRadius\" [attr.cx]=\"radius\"\r\n [attr.cy]=\"radius\" />\r\n <circle class=\"progress\" [attr.stroke]=\"progressModel.filledColor\"\r\n [attr.stroke-dasharray]=\"imageModel.Circumference + ' ' + imageModel.Circumference\"\r\n [ngStyle]=\"{'stroke-dashoffset':strokeDashOffset}\" [attr.stroke-width]=\"stroke\"\r\n fill=\"transparent\" [attr.r]=\"imageModel.NormalizedRadius\" [attr.cx]=\"radius\"\r\n [attr.cy]=\"radius\" />\r\n\r\n <circle [attr.cx]=\"radius\" [attr.cy]=\"radius\" [attr.r]=\"imageModel.ImageRadius\"\r\n attr.fill=\"url('#{{imageModel.ImageId}}')\" />\r\n </svg>\r\n </div>\r\n\r\n <sfc-avatar-badge *ngFor=\"let badge of badges\" [model]=\"badge\" [radius]=\"radius\"\r\n [stroke]=\"imageModel.Stroke\" [normalizedRadius]=\"imageModel.NormalizedRadius\"\r\n [background]=\"progressModel.filledColor\">\r\n </sfc-avatar-badge>\r\n\r\n </div>\r\n\r\n <sfc-stars *ngIf=\"stars\" [value]=\"starsValue\"></sfc-stars>\r\n </div>\r\n\r\n <div class=\"avatar-data-container\">\r\n <div class=\"fullname\" [style.fontSize.px]=\"radius / FULLNAME_PART_VALUE\">\r\n <span>{{data.firstName}} {{data.lastName}}</span>\r\n </div>\r\n <div class=\"title\" [style.fontSize.px]=\"radius / TITLE_PART_VALUE\">\r\n <span>{{data.title}}</span>\r\n </div>\r\n </div>\r\n</div>", styles: [":host .container .avatar-image-container{display:flex;align-items:center;justify-content:center;flex-direction:column}:host .container .avatar-image-container .avatar{position:relative}:host .container .avatar-image-container .avatar .avatar-image{display:flex;align-items:center;justify-content:center;overflow:hidden}:host .container .avatar-image-container .avatar .avatar-image circle{transform-origin:50% 50%;transition:stroke-dashoffset .35s,stroke-width .3s}:host .container .avatar-image-container .avatar .avatar-image circle.progress{transform:rotate(-90deg)}:host .container .avatar-image-container sfc-stars{margin-top:.5em}:host .container .avatar-data-container{display:flex;flex-direction:column;align-items:center;font-size:1em;font-weight:700;-webkit-user-select:none;user-select:none}:host .container .avatar-data-container .fullname{transition:color .5s ease}:host .container .avatar-data-container .fullname,:host-context(.sfc-default-theme) :host .container .avatar-data-container .fullname{color:#545e61}:host-context(.sfc-dark-theme) :host .container .avatar-data-container .fullname{color:#f5f7fa}:host .container .avatar-data-container .title{color:#aab2bd}:host .container .avatar-data-container .fullname,:host .container .avatar-data-container .title{transition:color .5s ease}\n"] }]
810
837
  }], propDecorators: { radius: [{
811
838
  type: Input
812
839
  }], stroke: [{
@@ -822,8 +849,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
822
849
  }], starsValue: [{
823
850
  type: Input
824
851
  }], badges: [{
825
- type: ContentChildren,
826
- args: [AvatarBadgeComponent, { read: AvatarBadgeComponent }]
852
+ type: Input
827
853
  }] } });
828
854
 
829
855
  var ProgressColor;
@@ -941,10 +967,10 @@ class ProgressLineComponent extends ProgressBaseComponent {
941
967
  }
942
968
  }
943
969
  ProgressLineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ProgressLineComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
944
- ProgressLineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ProgressLineComponent, selector: "sfc-progress-line", inputs: { total: "total", labelStart: "labelStart", labelEnd: "labelEnd", labelSuffix: "labelSuffix", hideEnd: "hideEnd" }, usesInheritance: true, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"labels\">\r\n <span>{{labelStart}}</span>\r\n <span *ngIf=\"!hideEnd\">{{label}}</span>\r\n </div>\r\n <div class=\"progress-bar\" [style.background]=\"background\">\r\n <div class=\"progress\" [ngStyle]=\"progressStyles\"></div>\r\n </div>\r\n</div>", styles: [":host{width:100%}:host .container .progress-bar{border-radius:.5em;background:#e6e9ed}:host .container .progress-bar .progress{height:.4em;border-radius:.5em;background-image:linear-gradient(to bottom,rgba(255,255,255,.3),rgba(255,255,255,.05));transition:.4s linear;transition-property:width,background-color}:host .container .labels{display:flex;justify-content:space-between;margin-bottom:.3em;font-weight:700;-webkit-user-select:none;user-select:none;font-size:.8em}:host .container .labels,:host-context(.sfc-default-theme) :host .container .labels{color:#545e61}:host-context(.sfc-dark-theme) :host .container .labels{color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
970
+ ProgressLineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ProgressLineComponent, selector: "sfc-progress-line", inputs: { total: "total", labelStart: "labelStart", labelEnd: "labelEnd", labelSuffix: "labelSuffix", hideEnd: "hideEnd" }, usesInheritance: true, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"labels\">\r\n <span>{{labelStart}}</span>\r\n <span *ngIf=\"!hideEnd\">{{label}}</span>\r\n </div>\r\n <div class=\"progress-bar\" [style.background]=\"background\">\r\n <div class=\"progress\" [ngStyle]=\"progressStyles\"></div>\r\n </div>\r\n</div>", styles: [":host{width:100%}:host .container .progress-bar{border-radius:.5em;background:#e6e9ed}:host .container .progress-bar .progress{height:.4em;border-radius:.5em;background-image:linear-gradient(to bottom,rgba(255,255,255,.3),rgba(255,255,255,.05));transition:.4s linear;transition-property:width,background-color}:host .container .labels{display:flex;justify-content:space-between;margin-bottom:.3em;transition:color .5s ease;font-weight:700;-webkit-user-select:none;user-select:none;font-size:.8em}:host .container .labels,:host-context(.sfc-default-theme) :host .container .labels{color:#545e61}:host-context(.sfc-dark-theme) :host .container .labels{color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
945
971
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ProgressLineComponent, decorators: [{
946
972
  type: Component,
947
- args: [{ selector: 'sfc-progress-line', template: "<div class=\"container\">\r\n <div class=\"labels\">\r\n <span>{{labelStart}}</span>\r\n <span *ngIf=\"!hideEnd\">{{label}}</span>\r\n </div>\r\n <div class=\"progress-bar\" [style.background]=\"background\">\r\n <div class=\"progress\" [ngStyle]=\"progressStyles\"></div>\r\n </div>\r\n</div>", styles: [":host{width:100%}:host .container .progress-bar{border-radius:.5em;background:#e6e9ed}:host .container .progress-bar .progress{height:.4em;border-radius:.5em;background-image:linear-gradient(to bottom,rgba(255,255,255,.3),rgba(255,255,255,.05));transition:.4s linear;transition-property:width,background-color}:host .container .labels{display:flex;justify-content:space-between;margin-bottom:.3em;font-weight:700;-webkit-user-select:none;user-select:none;font-size:.8em}:host .container .labels,:host-context(.sfc-default-theme) :host .container .labels{color:#545e61}:host-context(.sfc-dark-theme) :host .container .labels{color:#fff}\n"] }]
973
+ args: [{ selector: 'sfc-progress-line', template: "<div class=\"container\">\r\n <div class=\"labels\">\r\n <span>{{labelStart}}</span>\r\n <span *ngIf=\"!hideEnd\">{{label}}</span>\r\n </div>\r\n <div class=\"progress-bar\" [style.background]=\"background\">\r\n <div class=\"progress\" [ngStyle]=\"progressStyles\"></div>\r\n </div>\r\n</div>", styles: [":host{width:100%}:host .container .progress-bar{border-radius:.5em;background:#e6e9ed}:host .container .progress-bar .progress{height:.4em;border-radius:.5em;background-image:linear-gradient(to bottom,rgba(255,255,255,.3),rgba(255,255,255,.05));transition:.4s linear;transition-property:width,background-color}:host .container .labels{display:flex;justify-content:space-between;margin-bottom:.3em;transition:color .5s ease;font-weight:700;-webkit-user-select:none;user-select:none;font-size:.8em}:host .container .labels,:host-context(.sfc-default-theme) :host .container .labels{color:#545e61}:host-context(.sfc-dark-theme) :host .container .labels{color:#fff}\n"] }]
948
974
  }], propDecorators: { total: [{
949
975
  type: Input
950
976
  }], labelStart: [{
@@ -982,10 +1008,10 @@ class ProgressSemiCircleComponent extends ProgressBaseComponent {
982
1008
  }
983
1009
  }
984
1010
  ProgressSemiCircleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ProgressSemiCircleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
985
- ProgressSemiCircleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ProgressSemiCircleComponent, selector: "sfc-progress-semi-circle", inputs: { limits: "limits", min: "min", max: "max" }, usesInheritance: true, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"progress-bar\">\r\n <div class=\"bar\" [style.border-color]=\"background\" [ngStyle]=\"barStyles\"></div>\r\n </div>\r\n <span class=\"value\">{{progress}}</span>\r\n <div class=\"limits\" *ngIf=\"limits\">\r\n <span>{{min}}</span>\r\n <span>{{max}}</span>\r\n </div>\r\n</div>", styles: [":host .container{position:relative;width:1em;height:.5em;font-size:5em}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container .progress-bar{position:relative;overflow:hidden;height:inherit}:host .container .progress-bar .bar{width:1em;height:1em;border-radius:50%;box-sizing:border-box;border:.1em solid;border-color:#e6e9ed;transition-property:all;transition-duration:.2s;transition-timing-function:ease-out}:host .container .value{font-weight:700;font-size:.2em;-webkit-user-select:none;user-select:none;position:absolute;z-index:1;top:50%;width:5em;text-align:center;white-space:nowrap;transition-property:all;transition-duration:.2s;transition-timing-function:ease-out}:host .container .limits{font-size:.06em;font-weight:700;display:flex;justify-content:space-between;align-items:center;margin-top:3px}:host .container:hover .progress-bar .bar{border-width:.08em}:host .container:hover .value{font-size:.3em;width:3.33em;top:30%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
1011
+ ProgressSemiCircleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ProgressSemiCircleComponent, selector: "sfc-progress-semi-circle", inputs: { limits: "limits", min: "min", max: "max" }, usesInheritance: true, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"progress-bar\">\r\n <div class=\"bar\" [style.border-color]=\"background\" [ngStyle]=\"barStyles\"></div>\r\n </div>\r\n <span class=\"value\">{{progress}}</span>\r\n <div class=\"limits\" *ngIf=\"limits\">\r\n <span>{{min}}</span>\r\n <span>{{max}}</span>\r\n </div>\r\n</div>", styles: [":host .container{position:relative;width:1em;height:.5em;font-size:5em;transition:color .5s ease}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container .progress-bar{position:relative;overflow:hidden;height:inherit}:host .container .progress-bar .bar{width:1em;height:1em;border-radius:50%;box-sizing:border-box;border:.1em solid;border-color:#e6e9ed;transition-property:all;transition-duration:.2s;transition-timing-function:ease-out}:host .container .value{font-weight:700;font-size:.2em;-webkit-user-select:none;user-select:none;position:absolute;z-index:1;top:50%;width:5em;text-align:center;white-space:nowrap;transition-property:all;transition-duration:.2s;transition-timing-function:ease-out}:host .container .limits{font-size:.06em;font-weight:700;display:flex;justify-content:space-between;align-items:center;margin-top:3px}:host .container:hover .progress-bar .bar{border-width:.08em}:host .container:hover .value{font-size:.3em;width:3.33em;top:30%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
986
1012
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ProgressSemiCircleComponent, decorators: [{
987
1013
  type: Component,
988
- args: [{ selector: 'sfc-progress-semi-circle', template: "<div class=\"container\">\r\n <div class=\"progress-bar\">\r\n <div class=\"bar\" [style.border-color]=\"background\" [ngStyle]=\"barStyles\"></div>\r\n </div>\r\n <span class=\"value\">{{progress}}</span>\r\n <div class=\"limits\" *ngIf=\"limits\">\r\n <span>{{min}}</span>\r\n <span>{{max}}</span>\r\n </div>\r\n</div>", styles: [":host .container{position:relative;width:1em;height:.5em;font-size:5em}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container .progress-bar{position:relative;overflow:hidden;height:inherit}:host .container .progress-bar .bar{width:1em;height:1em;border-radius:50%;box-sizing:border-box;border:.1em solid;border-color:#e6e9ed;transition-property:all;transition-duration:.2s;transition-timing-function:ease-out}:host .container .value{font-weight:700;font-size:.2em;-webkit-user-select:none;user-select:none;position:absolute;z-index:1;top:50%;width:5em;text-align:center;white-space:nowrap;transition-property:all;transition-duration:.2s;transition-timing-function:ease-out}:host .container .limits{font-size:.06em;font-weight:700;display:flex;justify-content:space-between;align-items:center;margin-top:3px}:host .container:hover .progress-bar .bar{border-width:.08em}:host .container:hover .value{font-size:.3em;width:3.33em;top:30%}\n"] }]
1014
+ args: [{ selector: 'sfc-progress-semi-circle', template: "<div class=\"container\">\r\n <div class=\"progress-bar\">\r\n <div class=\"bar\" [style.border-color]=\"background\" [ngStyle]=\"barStyles\"></div>\r\n </div>\r\n <span class=\"value\">{{progress}}</span>\r\n <div class=\"limits\" *ngIf=\"limits\">\r\n <span>{{min}}</span>\r\n <span>{{max}}</span>\r\n </div>\r\n</div>", styles: [":host .container{position:relative;width:1em;height:.5em;font-size:5em;transition:color .5s ease}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container .progress-bar{position:relative;overflow:hidden;height:inherit}:host .container .progress-bar .bar{width:1em;height:1em;border-radius:50%;box-sizing:border-box;border:.1em solid;border-color:#e6e9ed;transition-property:all;transition-duration:.2s;transition-timing-function:ease-out}:host .container .value{font-weight:700;font-size:.2em;-webkit-user-select:none;user-select:none;position:absolute;z-index:1;top:50%;width:5em;text-align:center;white-space:nowrap;transition-property:all;transition-duration:.2s;transition-timing-function:ease-out}:host .container .limits{font-size:.06em;font-weight:700;display:flex;justify-content:space-between;align-items:center;margin-top:3px}:host .container:hover .progress-bar .bar{border-width:.08em}:host .container:hover .value{font-size:.3em;width:3.33em;top:30%}\n"] }]
989
1015
  }], propDecorators: { limits: [{
990
1016
  type: Input
991
1017
  }], min: [{
@@ -1007,10 +1033,10 @@ class ProgressCircleComponent extends ProgressBaseComponent {
1007
1033
  }
1008
1034
  }
1009
1035
  ProgressCircleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ProgressCircleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1010
- ProgressCircleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ProgressCircleComponent, selector: "sfc-progress-circle", inputs: { total: "total" }, host: { properties: { "class.reversed": "this.reversed" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"container\" [style.background]=\"background\">\r\n <span>{{progress}}</span>\r\n <div class=\"circle\">\r\n <div class=\"bar\" [ngStyle]=\"{'transform': transformRotate, \r\n 'border-color': getColor(progress, total)}\"></div>\r\n <div class=\"fill\" [ngStyle]=\"{'border-color': getColor(progress, total)}\"></div>\r\n </div>\r\n</div>", styles: [":host.reversed .container .circle .fill,:host .container .circle .bar{position:absolute;border:.09em solid;clip:rect(0,.5em,1em,0);border-radius:50%;width:.82em;height:.82em}:host .container{position:relative;border-radius:50%;background:#e6e9ed;font-size:5em;text-align:initial;width:1em;height:1em}:host .container:after{position:absolute;top:.082em;left:.09em;content:\" \";border-radius:50%;background:#fff;transition-property:all;transition-duration:.2s;transition-timing-function:ease-in;width:.83em;height:.83em}:host .container span{position:absolute;z-index:1;width:5em;line-height:5em;font-size:.2em;color:#545e61;font-weight:700;text-align:center;white-space:nowrap;-webkit-user-select:none;user-select:none;transition-property:all;transition-duration:.2s;transition-timing-function:ease-out}:host .container:hover:after{top:.07em;left:.07em;width:.86em;height:.86em}:host .container:hover span{width:3.33em;line-height:3.33em;font-size:.3em}:host .container .circle{position:absolute;clip:rect(0,1em,1em,.5em);width:1em;height:1em}:host .container .circle .bar{transition:transform .2s ease-out,border-color .2s ease-out}:host.reversed .container .circle{clip:rect(auto,auto,auto,auto)}:host.reversed .container .circle .fill{transform:rotate(180deg)}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
1036
+ ProgressCircleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ProgressCircleComponent, selector: "sfc-progress-circle", inputs: { total: "total" }, host: { properties: { "class.reversed": "this.reversed" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"container\" [style.background]=\"background\">\r\n <span>{{progress}}</span>\r\n <div class=\"circle\">\r\n <div class=\"bar\" [ngStyle]=\"{'transform': transformRotate, \r\n 'border-color': getColor(progress, total)}\"></div>\r\n <div class=\"fill\" [ngStyle]=\"{'border-color': getColor(progress, total)}\"></div>\r\n </div>\r\n</div>", styles: [":host.reversed .container .circle .fill,:host .container .circle .bar{position:absolute;border:.09em solid;clip:rect(0,.5em,1em,0);border-radius:50%;width:.82em;height:.82em}:host{display:inline-block}:host .container{position:relative;border-radius:50%;background:#e6e9ed;font-size:5em;text-align:initial;width:1em;height:1em}:host .container:after{position:absolute;top:.082em;left:.09em;content:\" \";border-radius:50%;background:#fff;transition-property:all;transition-duration:.2s;transition-timing-function:ease-in;width:.83em;height:.83em}:host .container span{position:absolute;z-index:1;width:5em;line-height:5em;font-size:.2em;color:#545e61;font-weight:700;text-align:center;white-space:nowrap;-webkit-user-select:none;user-select:none;transition-property:all;transition-duration:.2s;transition-timing-function:ease-out}:host .container:hover:after{top:.07em;left:.07em;width:.86em;height:.86em}:host .container:hover span{width:3.33em;line-height:3.33em;font-size:.3em}:host .container .circle{position:absolute;clip:rect(0,1em,1em,.5em);width:1em;height:1em}:host .container .circle .bar{transition:transform .2s ease-out,border-color .2s ease-out}:host.reversed .container .circle{clip:rect(auto,auto,auto,auto)}:host.reversed .container .circle .fill{transform:rotate(180deg)}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
1011
1037
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ProgressCircleComponent, decorators: [{
1012
1038
  type: Component,
1013
- args: [{ selector: 'sfc-progress-circle', template: "<div class=\"container\" [style.background]=\"background\">\r\n <span>{{progress}}</span>\r\n <div class=\"circle\">\r\n <div class=\"bar\" [ngStyle]=\"{'transform': transformRotate, \r\n 'border-color': getColor(progress, total)}\"></div>\r\n <div class=\"fill\" [ngStyle]=\"{'border-color': getColor(progress, total)}\"></div>\r\n </div>\r\n</div>", styles: [":host.reversed .container .circle .fill,:host .container .circle .bar{position:absolute;border:.09em solid;clip:rect(0,.5em,1em,0);border-radius:50%;width:.82em;height:.82em}:host .container{position:relative;border-radius:50%;background:#e6e9ed;font-size:5em;text-align:initial;width:1em;height:1em}:host .container:after{position:absolute;top:.082em;left:.09em;content:\" \";border-radius:50%;background:#fff;transition-property:all;transition-duration:.2s;transition-timing-function:ease-in;width:.83em;height:.83em}:host .container span{position:absolute;z-index:1;width:5em;line-height:5em;font-size:.2em;color:#545e61;font-weight:700;text-align:center;white-space:nowrap;-webkit-user-select:none;user-select:none;transition-property:all;transition-duration:.2s;transition-timing-function:ease-out}:host .container:hover:after{top:.07em;left:.07em;width:.86em;height:.86em}:host .container:hover span{width:3.33em;line-height:3.33em;font-size:.3em}:host .container .circle{position:absolute;clip:rect(0,1em,1em,.5em);width:1em;height:1em}:host .container .circle .bar{transition:transform .2s ease-out,border-color .2s ease-out}:host.reversed .container .circle{clip:rect(auto,auto,auto,auto)}:host.reversed .container .circle .fill{transform:rotate(180deg)}\n"] }]
1039
+ args: [{ selector: 'sfc-progress-circle', template: "<div class=\"container\" [style.background]=\"background\">\r\n <span>{{progress}}</span>\r\n <div class=\"circle\">\r\n <div class=\"bar\" [ngStyle]=\"{'transform': transformRotate, \r\n 'border-color': getColor(progress, total)}\"></div>\r\n <div class=\"fill\" [ngStyle]=\"{'border-color': getColor(progress, total)}\"></div>\r\n </div>\r\n</div>", styles: [":host.reversed .container .circle .fill,:host .container .circle .bar{position:absolute;border:.09em solid;clip:rect(0,.5em,1em,0);border-radius:50%;width:.82em;height:.82em}:host{display:inline-block}:host .container{position:relative;border-radius:50%;background:#e6e9ed;font-size:5em;text-align:initial;width:1em;height:1em}:host .container:after{position:absolute;top:.082em;left:.09em;content:\" \";border-radius:50%;background:#fff;transition-property:all;transition-duration:.2s;transition-timing-function:ease-in;width:.83em;height:.83em}:host .container span{position:absolute;z-index:1;width:5em;line-height:5em;font-size:.2em;color:#545e61;font-weight:700;text-align:center;white-space:nowrap;-webkit-user-select:none;user-select:none;transition-property:all;transition-duration:.2s;transition-timing-function:ease-out}:host .container:hover:after{top:.07em;left:.07em;width:.86em;height:.86em}:host .container:hover span{width:3.33em;line-height:3.33em;font-size:.3em}:host .container .circle{position:absolute;clip:rect(0,1em,1em,.5em);width:1em;height:1em}:host .container .circle .bar{transition:transform .2s ease-out,border-color .2s ease-out}:host.reversed .container .circle{clip:rect(auto,auto,auto,auto)}:host.reversed .container .circle .fill{transform:rotate(180deg)}\n"] }]
1014
1040
  }], propDecorators: { total: [{
1015
1041
  type: Input
1016
1042
  }], reversed: [{
@@ -1024,10 +1050,10 @@ class TagComponent {
1024
1050
  }
1025
1051
  }
1026
1052
  TagComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1027
- TagComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TagComponent, selector: "sfc-tag", inputs: { model: "model" }, ngImport: i0, template: "<div class=\"container\">\r\n <a class=\"tag\">\r\n <div class=\"content\">\r\n <fa-icon *ngIf=\"model.icon\" [icon]=\"model.icon\"></fa-icon>\r\n <span>{{model.label}}</span>\r\n </div>\r\n </a>\r\n</div>", styles: [":host{display:inline-flex;margin:0 .18em}:host .container{margin-top:.3em;font-size:.8em;-webkit-user-select:none;user-select:none}:host .container .tag{display:inline-flex;border-radius:1em;font-weight:700;color:#545e61;background-color:#f5f7fa;border:.125em solid transparent;padding:.3em}:host .container .tag .content{display:flex;align-items:center;text-align:center;padding:0 .8em}:host .container .tag .content fa-icon{margin-right:.18em}:host .container:hover .tag{background-color:#ffce54;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
1053
+ TagComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TagComponent, selector: "sfc-tag", inputs: { model: "model" }, ngImport: i0, template: "<div class=\"container\">\r\n <a class=\"tag\">\r\n <div class=\"content\">\r\n <fa-icon *ngIf=\"model.icon\" [icon]=\"model.icon\"></fa-icon>\r\n <span>{{model.label}}</span>\r\n </div>\r\n </a>\r\n</div>", styles: [":host{display:inline-flex;margin:0 .18em}:host .container{margin-top:.3em;font-size:.8em;-webkit-user-select:none;user-select:none}:host .container .tag{display:inline-flex;border-radius:1em;font-weight:700;color:#545e61;transition:color .5s ease;transition:background-color .5s ease;transition:color .5s ease,background-color .5s ease;border:.125em solid transparent;padding:.3em}:host .container .tag,:host-context(.sfc-default-theme) :host .container .tag{color:#fff}:host-context(.sfc-dark-theme) :host .container .tag{color:#545e61}:host .container .tag,:host-context(.sfc-default-theme) :host .container .tag{background-color:#545e61}:host-context(.sfc-dark-theme) :host .container .tag{background-color:#fff}:host .container .tag .content{display:flex;align-items:center;text-align:center;padding:0 .8em}:host .container .tag .content fa-icon{margin-right:.18em}:host .container:hover .tag{background-color:#ffce54;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
1028
1054
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TagComponent, decorators: [{
1029
1055
  type: Component,
1030
- args: [{ selector: 'sfc-tag', template: "<div class=\"container\">\r\n <a class=\"tag\">\r\n <div class=\"content\">\r\n <fa-icon *ngIf=\"model.icon\" [icon]=\"model.icon\"></fa-icon>\r\n <span>{{model.label}}</span>\r\n </div>\r\n </a>\r\n</div>", styles: [":host{display:inline-flex;margin:0 .18em}:host .container{margin-top:.3em;font-size:.8em;-webkit-user-select:none;user-select:none}:host .container .tag{display:inline-flex;border-radius:1em;font-weight:700;color:#545e61;background-color:#f5f7fa;border:.125em solid transparent;padding:.3em}:host .container .tag .content{display:flex;align-items:center;text-align:center;padding:0 .8em}:host .container .tag .content fa-icon{margin-right:.18em}:host .container:hover .tag{background-color:#ffce54;color:#fff}\n"] }]
1056
+ args: [{ selector: 'sfc-tag', template: "<div class=\"container\">\r\n <a class=\"tag\">\r\n <div class=\"content\">\r\n <fa-icon *ngIf=\"model.icon\" [icon]=\"model.icon\"></fa-icon>\r\n <span>{{model.label}}</span>\r\n </div>\r\n </a>\r\n</div>", styles: [":host{display:inline-flex;margin:0 .18em}:host .container{margin-top:.3em;font-size:.8em;-webkit-user-select:none;user-select:none}:host .container .tag{display:inline-flex;border-radius:1em;font-weight:700;color:#545e61;transition:color .5s ease;transition:background-color .5s ease;transition:color .5s ease,background-color .5s ease;border:.125em solid transparent;padding:.3em}:host .container .tag,:host-context(.sfc-default-theme) :host .container .tag{color:#fff}:host-context(.sfc-dark-theme) :host .container .tag{color:#545e61}:host .container .tag,:host-context(.sfc-default-theme) :host .container .tag{background-color:#545e61}:host-context(.sfc-dark-theme) :host .container .tag{background-color:#fff}:host .container .tag .content{display:flex;align-items:center;text-align:center;padding:0 .8em}:host .container .tag .content fa-icon{margin-right:.18em}:host .container:hover .tag{background-color:#ffce54;color:#fff}\n"] }]
1031
1057
  }], propDecorators: { model: [{
1032
1058
  type: Input
1033
1059
  }] } });
@@ -1038,10 +1064,10 @@ class TagsComponent {
1038
1064
  }
1039
1065
  }
1040
1066
  TagsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TagsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1041
- TagsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TagsComponent, selector: "sfc-tags", inputs: { tags: "tags" }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"tags\">\r\n <sfc-tag *ngFor=\"let tag of tags\" [model]=\"tag\"></sfc-tag>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TagComponent, selector: "sfc-tag", inputs: ["model"] }] });
1067
+ TagsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TagsComponent, selector: "sfc-tags", inputs: { tags: "tags" }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"tags\">\r\n <sfc-tag *ngFor=\"let tag of tags\" [model]=\"tag\"></sfc-tag>\r\n </div>\r\n</div>", styles: [":host .container .tags{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TagComponent, selector: "sfc-tag", inputs: ["model"] }] });
1042
1068
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TagsComponent, decorators: [{
1043
1069
  type: Component,
1044
- args: [{ selector: 'sfc-tags', template: "<div class=\"container\">\r\n <div class=\"tags\">\r\n <sfc-tag *ngFor=\"let tag of tags\" [model]=\"tag\"></sfc-tag>\r\n </div>\r\n</div>" }]
1070
+ args: [{ selector: 'sfc-tags', template: "<div class=\"container\">\r\n <div class=\"tags\">\r\n <sfc-tag *ngFor=\"let tag of tags\" [model]=\"tag\"></sfc-tag>\r\n </div>\r\n</div>", styles: [":host .container .tags{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}\n"] }]
1045
1071
  }], propDecorators: { tags: [{
1046
1072
  type: Input
1047
1073
  }] } });
@@ -1062,7 +1088,7 @@ class SliderItemComponent {
1062
1088
  ;
1063
1089
  }
1064
1090
  SliderItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SliderItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1065
- SliderItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SliderItemComponent, selector: "sfc-slider-item", inputs: { model: "model" }, host: { properties: { "style.height.px": "this._height" } }, viewQueries: [{ propertyName: "imageEl", first: true, predicate: ["image"], descendants: true }], ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"title\">\r\n <h2>{{model.title}}</h2>\r\n <span>{{model.subTitle}}</span>\r\n </div>\r\n <div class=\"image\">\r\n <img #image [src]=\"model.imageSrc\" sfcImageLoad>\r\n </div> \r\n</div>", styles: [":host{display:inline-block}:host .container{position:absolute;left:0;top:0;width:100%}:host .container .title{position:absolute;top:10%;left:6%;-webkit-user-select:none;user-select:none;font-size:1.5em;z-index:2}:host .container .title h2{margin:0;text-transform:uppercase}:host .container .image{position:relative;z-index:1}:host .container .image img{max-width:100%;height:auto}\n"], dependencies: [{ kind: "directive", type: i1$1.ImageLoadDirective, selector: "[sfcImageLoad]", outputs: ["sfcImageLoad"] }] });
1091
+ SliderItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SliderItemComponent, selector: "sfc-slider-item", inputs: { model: "model" }, host: { properties: { "style.height.px": "this._height" } }, viewQueries: [{ propertyName: "imageEl", first: true, predicate: ["image"], descendants: true }], ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"title\">\r\n <h2>{{model.title}}</h2>\r\n <span>{{model.subTitle}}</span>\r\n </div>\r\n <div class=\"image\">\r\n <img #image [src]=\"model.imageSrc\" sfcImageLoad>\r\n </div> \r\n</div>", styles: [":host{display:inline-block}:host .container{position:absolute;left:0;top:0;width:100%}:host .container .title{position:absolute;top:10%;left:6%;-webkit-user-select:none;user-select:none;font-size:1.5em;z-index:2}:host .container .title h2{margin:0;text-transform:uppercase}:host .container .image{position:relative;z-index:1}:host .container .image img{max-width:100%;height:auto}\n"], dependencies: [{ kind: "directive", type: i3.ImageLoadDirective, selector: "[sfcImageLoad]", outputs: ["sfcImageLoad"] }] });
1066
1092
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SliderItemComponent, decorators: [{
1067
1093
  type: Component,
1068
1094
  args: [{ selector: 'sfc-slider-item', template: "<div class=\"container\">\r\n <div class=\"title\">\r\n <h2>{{model.title}}</h2>\r\n <span>{{model.subTitle}}</span>\r\n </div>\r\n <div class=\"image\">\r\n <img #image [src]=\"model.imageSrc\" sfcImageLoad>\r\n </div> \r\n</div>", styles: [":host{display:inline-block}:host .container{position:absolute;left:0;top:0;width:100%}:host .container .title{position:absolute;top:10%;left:6%;-webkit-user-select:none;user-select:none;font-size:1.5em;z-index:2}:host .container .title h2{margin:0;text-transform:uppercase}:host .container .image{position:relative;z-index:1}:host .container .image img{max-width:100%;height:auto}\n"] }]
@@ -1290,12 +1316,12 @@ class SliderComponent {
1290
1316
  return value * this.SIZE_FACTOR;
1291
1317
  }
1292
1318
  }
1293
- SliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SliderComponent, deps: [{ token: SliderService }, { token: SliderAutomaticService }, { token: i1$1.ResizeService }, { token: i1$1.ImageLoadService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1294
- SliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SliderComponent, selector: "sfc-slider", inputs: { items: "items", type: "type", showCount: "showCount", pagination: "pagination", handlers: "handlers", showAutomaticToggle: "showAutomaticToggle" }, host: { listeners: { "mouseenter": "onEnter()", "mouseleave": "onLeave()" }, properties: { "style.font-size.em": "this._sizeFactor", "style.max-width.px": "this._maxWidth" } }, providers: [SliderService, SliderAutomaticService], viewQueries: [{ propertyName: "itemsEl", first: true, predicate: ["itemsContainer"], descendants: true }, { propertyName: "sliderItems", predicate: SliderItemComponent, descendants: true }], ngImport: i0, template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div #itemsContainer class=\"items\">\r\n <sfc-slider-item *ngFor=\"let item of items; let itemIndex = index;\" [model]=\"item\"\r\n [sfcShowHideElement]=\"itemIndex === vm.index\"></sfc-slider-item>\r\n </div>\r\n\r\n <div *ngIf=\"handlers\" class=\"buttons\">\r\n <sfc-slider-button [active]=\"active\" [type]=\"SliderButtonType.Next\" (click)=\"move(SliderMoveType.Next)\">\r\n </sfc-slider-button>\r\n <sfc-slider-button [active]=\"active\" [type]=\"SliderButtonType.Previous\" (click)=\"move(SliderMoveType.Previous)\">\r\n </sfc-slider-button>\r\n </div>\r\n\r\n <div class=\"counter\" *ngIf=\"showCount\">{{vm.label}}</div>\r\n\r\n <div class=\"actions\">\r\n <sfc-slider-pagination *ngIf=\"pagination\" [count]=\"vm.count\" [index]=\"vm.index\" (selected)=\"select($event)\">\r\n </sfc-slider-pagination>\r\n\r\n <div *ngIf=\"isAutomatic && showAutomaticToggle\" class=\"automatic\" (click)=\"toggleAutomatic()\">\r\n <fa-icon [icon]=\"automaticIcon\"></fa-icon>\r\n </div>\r\n </div>\r\n</div>", styles: [":host{display:inline-block;width:100%}:host .container{position:relative;color:#fff}:host .container .counter{top:10%;right:6%;position:absolute;font-weight:700;-webkit-user-select:none;user-select:none}:host .container .actions{cursor:pointer;display:flex;flex-direction:column;justify-content:center;position:absolute;top:85%;align-items:center;width:100%}:host .container .actions .automatic{margin-top:.3em}:host .container .buttons,:host .container .counter,:host .container .actions{z-index:2}\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: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: i1$1.ShowHideElementDirective, selector: "[sfcShowHideElement]", inputs: ["sfcShowHideElement", "delay"] }, { kind: "component", type: SliderItemComponent, selector: "sfc-slider-item", inputs: ["model"] }, { kind: "component", type: SliderButtonComponent, selector: "sfc-slider-button", inputs: ["type", "active"] }, { kind: "component", type: SliderPaginationComponent, selector: "sfc-slider-pagination", inputs: ["count", "index"], outputs: ["selected"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
1319
+ SliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SliderComponent, deps: [{ token: SliderService }, { token: SliderAutomaticService }, { token: i3.ResizeService }, { token: i3.ImageLoadService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1320
+ SliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SliderComponent, selector: "sfc-slider", inputs: { items: "items", type: "type", showCount: "showCount", pagination: "pagination", handlers: "handlers", showAutomaticToggle: "showAutomaticToggle" }, host: { listeners: { "mouseenter": "onEnter()", "mouseleave": "onLeave()" }, properties: { "style.font-size.em": "this._sizeFactor", "style.max-width.px": "this._maxWidth" } }, providers: [SliderService, SliderAutomaticService], viewQueries: [{ propertyName: "itemsEl", first: true, predicate: ["itemsContainer"], descendants: true }, { propertyName: "sliderItems", predicate: SliderItemComponent, descendants: true }], ngImport: i0, template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div #itemsContainer class=\"items\">\r\n <sfc-slider-item *ngFor=\"let item of items; let itemIndex = index;\" [model]=\"item\"\r\n [sfcShowHideElement]=\"itemIndex === vm.index\"></sfc-slider-item>\r\n </div>\r\n\r\n <div *ngIf=\"handlers\" class=\"buttons\">\r\n <sfc-slider-button [active]=\"active\" [type]=\"SliderButtonType.Next\" (click)=\"move(SliderMoveType.Next)\">\r\n </sfc-slider-button>\r\n <sfc-slider-button [active]=\"active\" [type]=\"SliderButtonType.Previous\" (click)=\"move(SliderMoveType.Previous)\">\r\n </sfc-slider-button>\r\n </div>\r\n\r\n <div class=\"counter\" *ngIf=\"showCount\">{{vm.label}}</div>\r\n\r\n <div class=\"actions\">\r\n <sfc-slider-pagination *ngIf=\"pagination\" [count]=\"vm.count\" [index]=\"vm.index\" (selected)=\"select($event)\">\r\n </sfc-slider-pagination>\r\n\r\n <div *ngIf=\"isAutomatic && showAutomaticToggle\" class=\"automatic\" (click)=\"toggleAutomatic()\">\r\n <fa-icon [icon]=\"automaticIcon\"></fa-icon>\r\n </div>\r\n </div>\r\n</div>", styles: [":host{display:inline-block;width:100%}:host .container{position:relative;color:#fff}:host .container .counter{top:10%;right:6%;position:absolute;font-weight:700;-webkit-user-select:none;user-select:none}:host .container .actions{cursor:pointer;display:flex;flex-direction:column;justify-content:center;position:absolute;top:85%;align-items:center;width:100%}:host .container .actions .automatic{margin-top:.3em}:host .container .buttons,:host .container .counter,:host .container .actions{z-index:2}\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: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: i3.ShowHideElementDirective, selector: "[sfcShowHideElement]", inputs: ["sfcShowHideElement", "delay"] }, { kind: "component", type: SliderItemComponent, selector: "sfc-slider-item", inputs: ["model"] }, { kind: "component", type: SliderButtonComponent, selector: "sfc-slider-button", inputs: ["type", "active"] }, { kind: "component", type: SliderPaginationComponent, selector: "sfc-slider-pagination", inputs: ["count", "index"], outputs: ["selected"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
1295
1321
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SliderComponent, decorators: [{
1296
1322
  type: Component,
1297
1323
  args: [{ selector: 'sfc-slider', providers: [SliderService, SliderAutomaticService], template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div #itemsContainer class=\"items\">\r\n <sfc-slider-item *ngFor=\"let item of items; let itemIndex = index;\" [model]=\"item\"\r\n [sfcShowHideElement]=\"itemIndex === vm.index\"></sfc-slider-item>\r\n </div>\r\n\r\n <div *ngIf=\"handlers\" class=\"buttons\">\r\n <sfc-slider-button [active]=\"active\" [type]=\"SliderButtonType.Next\" (click)=\"move(SliderMoveType.Next)\">\r\n </sfc-slider-button>\r\n <sfc-slider-button [active]=\"active\" [type]=\"SliderButtonType.Previous\" (click)=\"move(SliderMoveType.Previous)\">\r\n </sfc-slider-button>\r\n </div>\r\n\r\n <div class=\"counter\" *ngIf=\"showCount\">{{vm.label}}</div>\r\n\r\n <div class=\"actions\">\r\n <sfc-slider-pagination *ngIf=\"pagination\" [count]=\"vm.count\" [index]=\"vm.index\" (selected)=\"select($event)\">\r\n </sfc-slider-pagination>\r\n\r\n <div *ngIf=\"isAutomatic && showAutomaticToggle\" class=\"automatic\" (click)=\"toggleAutomatic()\">\r\n <fa-icon [icon]=\"automaticIcon\"></fa-icon>\r\n </div>\r\n </div>\r\n</div>", styles: [":host{display:inline-block;width:100%}:host .container{position:relative;color:#fff}:host .container .counter{top:10%;right:6%;position:absolute;font-weight:700;-webkit-user-select:none;user-select:none}:host .container .actions{cursor:pointer;display:flex;flex-direction:column;justify-content:center;position:absolute;top:85%;align-items:center;width:100%}:host .container .actions .automatic{margin-top:.3em}:host .container .buttons,:host .container .counter,:host .container .actions{z-index:2}\n"] }]
1298
- }], ctorParameters: function () { return [{ type: SliderService }, { type: SliderAutomaticService }, { type: i1$1.ResizeService }, { type: i1$1.ImageLoadService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
1324
+ }], ctorParameters: function () { return [{ type: SliderService }, { type: SliderAutomaticService }, { type: i3.ResizeService }, { type: i3.ImageLoadService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
1299
1325
  type: Input
1300
1326
  }], type: [{
1301
1327
  type: Input
@@ -1345,10 +1371,10 @@ class TimelineItemComponent {
1345
1371
  }
1346
1372
  }
1347
1373
  TimelineItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1348
- TimelineItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimelineItemComponent, selector: "sfc-timeline-item", inputs: { model: "model" }, host: { properties: { "class": "this.position", "class.period": "this.period" } }, ngImport: i0, template: "<li class=\"container\">\r\n <div class=\"date-time\">\r\n <span>{{model.dateTimeLabel}}</span>\r\n </div>\r\n <div class=\"marker\">\r\n <div class=\"delimeter\"></div>\r\n </div>\r\n <div class=\"content\">\r\n <div class=\"title\">\r\n <sfc-icon [icon]=\"model.icon\" [imageSrc]=\"model.image\"></sfc-icon>\r\n <span>{{model.title}}</span>\r\n </div> \r\n <p>{{model.description}}</p>\r\n </div>\r\n</li>", styles: [":host{display:block}:host .container{padding:0 0 .5em 2.5em;position:relative}:host .container .date-time{font-size:.8em;font-weight:700;letter-spacing:.06em;margin:0 0 .5em;text-transform:uppercase;white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box}:host .container .date-time,:host-context(.sfc-default-theme) :host .container .date-time{color:#545e61}:host-context(.sfc-dark-theme) :host .container .date-time{color:#fff}:host .container .marker{position:absolute;top:0;bottom:0;left:0}:host .container .marker:before{box-sizing:border-box;background:#2bbbad;border:.18em solid transparent;border-radius:100%;content:\"\";display:block;position:absolute;top:.25em;width:1em;height:1em;transition:background .3s ease-in-out,border .3s ease-in-out}:host .container .marker:after{content:\"\";width:.18em;display:block;position:absolute;top:1.5em;bottom:0;left:.375em;box-sizing:border-box}:host .container .marker:after,:host-context(.sfc-default-theme) :host .container .marker:after{background:#545e61}:host-context(.sfc-dark-theme) :host .container .marker:after{background:#fff}:host .container .marker .delimeter{display:none;width:1em;bottom:0;position:absolute;border-bottom:.18em solid}:host .container .marker .delimeter,:host-context(.sfc-default-theme) :host .container .marker .delimeter{border-color:#545e61}:host-context(.sfc-dark-theme) :host .container .marker .delimeter{border-color:#fff}:host .container .content{font-size:1em;font-weight:700;line-height:initial;padding-bottom:2.5em;-webkit-user-select:none;user-select:none;box-sizing:border-box;display:flex;flex-flow:column wrap;align-items:flex-start}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{color:#545e61}:host-context(.sfc-dark-theme) :host .container .content{color:#fff}:host .container .content p{font-size:.8em;line-height:1em;color:#aab2bd;margin:0}:host .container .content sfc-icon{margin-right:.31em}:host.period .container{padding:0}:host.period .container .date-time{display:none}:host.period .container .marker:before{background:transparent;content:\"\";height:auto;border:none;border-radius:0;top:0;bottom:1.875em;border-top:.18em solid;border-bottom:.18em solid;transition:none}:host.period .container .marker:before,:host-context(.sfc-default-theme) :host.period .container .marker:before{border-color:#545e61}:host-context(.sfc-dark-theme) :host.period .container .marker:before{border-color:#fff}:host.period .container .marker:after{content:\"\";height:2em;top:auto}:host.period .container .content{padding:2.5em 0 4.375em;justify-content:start}:host.period .container .content .title{width:100%}:host.period .container .content .title span{margin:0;font-size:1.875em;text-align:center}:host:not(.period):hover .container .marker:before{border:.18em solid #2bbbad}:host:not(.period):hover .container .marker:before,:host-context(.sfc-default-theme) :host:not(.period):hover .container .marker:before{background:transparent}:host-context(.sfc-dark-theme) :host:not(.period):hover .container .marker:before{background:#fff}@media (min-width: 435px){:host .container{padding:0 0 .31em;overflow:hidden}:host .container .date-time{width:50%}:host .container .marker{left:50%;margin-left:-.46em}:host .container .content{padding:0;width:50%}:host.period .container{padding:2em 0 3.5em}:host.period .container .content{padding:0;width:100%;text-align:center;justify-content:center;align-items:center}:host:not(.period).right .container .date-time{float:left;text-align:right;padding-right:1.875em}:host:not(.period).right .container .content{padding-left:1.5em;justify-content:start}:host:not(.period).left .container .date-time{float:right;padding-left:1.875em}:host:not(.period).left .container .content{padding-right:1.5em;justify-content:end;align-items:end}:host:not(.period).left .container .content .title{text-align:end}:host:not(.period).left .container .content span,:host:not(.period).left .container .content p{text-align:end}}\n"], dependencies: [{ kind: "component", type: i1$1.IconComponent, selector: "sfc-icon", inputs: ["icon", "imageSrc"] }] });
1374
+ TimelineItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimelineItemComponent, selector: "sfc-timeline-item", inputs: { model: "model" }, host: { properties: { "class": "this.position", "class.period": "this.period" } }, ngImport: i0, template: "<li class=\"container\">\r\n <div class=\"date-time\">\r\n <span>{{model.dateTimeLabel}}</span>\r\n </div>\r\n <div class=\"marker\">\r\n <div class=\"delimeter\"></div>\r\n </div>\r\n <div class=\"content\">\r\n <div class=\"title\">\r\n <sfc-icon [icon]=\"model.icon\" [imageSrc]=\"model.image\"></sfc-icon>\r\n <span>{{model.title}}</span>\r\n </div> \r\n <p>{{model.description}}</p>\r\n </div>\r\n</li>", styles: [":host{display:block}:host .container{padding:0 0 .5em 2.5em;position:relative}:host .container .date-time{font-size:.8em;font-weight:700;letter-spacing:.06em;margin:0 0 .5em;text-transform:uppercase;white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box;transition:color .5s ease}:host .container .date-time,:host-context(.sfc-default-theme) :host .container .date-time{color:#545e61}:host-context(.sfc-dark-theme) :host .container .date-time{color:#fff}:host .container .marker{position:absolute;top:0;bottom:0;left:0}:host .container .marker:before{box-sizing:border-box;background:#2bbbad;border:.18em solid transparent;border-radius:100%;content:\"\";display:block;position:absolute;top:.25em;width:1em;height:1em;transition:background .3s ease-in-out,border .3s ease-in-out}:host .container .marker:after{content:\"\";width:.18em;display:block;position:absolute;top:1.5em;bottom:0;left:.375em;transition:background .5s ease;box-sizing:border-box}:host .container .marker:after,:host-context(.sfc-default-theme) :host .container .marker:after{background:#545e61}:host-context(.sfc-dark-theme) :host .container .marker:after{background:#fff}:host .container .marker .delimeter{display:none;width:1em;bottom:0;position:absolute;border-bottom:.18em solid;transition:border-color .5s ease}:host .container .marker .delimeter,:host-context(.sfc-default-theme) :host .container .marker .delimeter{border-color:#545e61}:host-context(.sfc-dark-theme) :host .container .marker .delimeter{border-color:#fff}:host .container .content{transition:color .5s ease;font-size:1em;font-weight:700;line-height:initial;padding-bottom:2.5em;-webkit-user-select:none;user-select:none;box-sizing:border-box;display:flex;flex-flow:column wrap;align-items:flex-start}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{color:#545e61}:host-context(.sfc-dark-theme) :host .container .content{color:#fff}:host .container .content p{font-size:.8em;line-height:1em;color:#aab2bd;margin:0}:host .container .content sfc-icon{margin-right:.31em}:host.period .container{padding:0}:host.period .container .date-time{display:none}:host.period .container .marker:before{background:transparent;content:\"\";height:auto;border:none;border-radius:0;top:0;bottom:1.875em;border-top:.18em solid;border-bottom:.18em solid;transition:border-color .5s ease;transition:none}:host.period .container .marker:before,:host-context(.sfc-default-theme) :host.period .container .marker:before{border-color:#545e61}:host-context(.sfc-dark-theme) :host.period .container .marker:before{border-color:#fff}:host.period .container .marker:after{content:\"\";height:2em;top:auto}:host.period .container .content{padding:2.5em 0 4.375em;justify-content:start}:host.period .container .content .title{width:100%}:host.period .container .content .title span{margin:0;font-size:1.875em;text-align:center}:host:not(.period):hover .container .marker:before{transition:background .5s ease;border:.18em solid #2bbbad}:host:not(.period):hover .container .marker:before,:host-context(.sfc-default-theme) :host:not(.period):hover .container .marker:before{background:transparent}:host-context(.sfc-dark-theme) :host:not(.period):hover .container .marker:before{background:#fff}@media (min-width: 435px){:host .container{padding:0 0 .31em;overflow:hidden}:host .container .date-time{width:50%}:host .container .marker{left:50%;margin-left:-.46em}:host .container .content{padding:0;width:50%}:host.period .container{padding:2em 0 3.5em}:host.period .container .content{padding:0;width:100%;text-align:center;justify-content:center;align-items:center}:host:not(.period).right .container .date-time{float:left;text-align:right;padding-right:1.875em}:host:not(.period).right .container .content{padding-left:1.5em;justify-content:start}:host:not(.period).left .container .date-time{float:right;padding-left:1.875em}:host:not(.period).left .container .content{padding-right:1.5em;justify-content:end;align-items:end}:host:not(.period).left .container .content .title{text-align:end}:host:not(.period).left .container .content span,:host:not(.period).left .container .content p{text-align:end}}\n"], dependencies: [{ kind: "component", type: i3.IconComponent, selector: "sfc-icon", inputs: ["icon", "imageSrc"] }] });
1349
1375
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineItemComponent, decorators: [{
1350
1376
  type: Component,
1351
- args: [{ selector: 'sfc-timeline-item', template: "<li class=\"container\">\r\n <div class=\"date-time\">\r\n <span>{{model.dateTimeLabel}}</span>\r\n </div>\r\n <div class=\"marker\">\r\n <div class=\"delimeter\"></div>\r\n </div>\r\n <div class=\"content\">\r\n <div class=\"title\">\r\n <sfc-icon [icon]=\"model.icon\" [imageSrc]=\"model.image\"></sfc-icon>\r\n <span>{{model.title}}</span>\r\n </div> \r\n <p>{{model.description}}</p>\r\n </div>\r\n</li>", styles: [":host{display:block}:host .container{padding:0 0 .5em 2.5em;position:relative}:host .container .date-time{font-size:.8em;font-weight:700;letter-spacing:.06em;margin:0 0 .5em;text-transform:uppercase;white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box}:host .container .date-time,:host-context(.sfc-default-theme) :host .container .date-time{color:#545e61}:host-context(.sfc-dark-theme) :host .container .date-time{color:#fff}:host .container .marker{position:absolute;top:0;bottom:0;left:0}:host .container .marker:before{box-sizing:border-box;background:#2bbbad;border:.18em solid transparent;border-radius:100%;content:\"\";display:block;position:absolute;top:.25em;width:1em;height:1em;transition:background .3s ease-in-out,border .3s ease-in-out}:host .container .marker:after{content:\"\";width:.18em;display:block;position:absolute;top:1.5em;bottom:0;left:.375em;box-sizing:border-box}:host .container .marker:after,:host-context(.sfc-default-theme) :host .container .marker:after{background:#545e61}:host-context(.sfc-dark-theme) :host .container .marker:after{background:#fff}:host .container .marker .delimeter{display:none;width:1em;bottom:0;position:absolute;border-bottom:.18em solid}:host .container .marker .delimeter,:host-context(.sfc-default-theme) :host .container .marker .delimeter{border-color:#545e61}:host-context(.sfc-dark-theme) :host .container .marker .delimeter{border-color:#fff}:host .container .content{font-size:1em;font-weight:700;line-height:initial;padding-bottom:2.5em;-webkit-user-select:none;user-select:none;box-sizing:border-box;display:flex;flex-flow:column wrap;align-items:flex-start}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{color:#545e61}:host-context(.sfc-dark-theme) :host .container .content{color:#fff}:host .container .content p{font-size:.8em;line-height:1em;color:#aab2bd;margin:0}:host .container .content sfc-icon{margin-right:.31em}:host.period .container{padding:0}:host.period .container .date-time{display:none}:host.period .container .marker:before{background:transparent;content:\"\";height:auto;border:none;border-radius:0;top:0;bottom:1.875em;border-top:.18em solid;border-bottom:.18em solid;transition:none}:host.period .container .marker:before,:host-context(.sfc-default-theme) :host.period .container .marker:before{border-color:#545e61}:host-context(.sfc-dark-theme) :host.period .container .marker:before{border-color:#fff}:host.period .container .marker:after{content:\"\";height:2em;top:auto}:host.period .container .content{padding:2.5em 0 4.375em;justify-content:start}:host.period .container .content .title{width:100%}:host.period .container .content .title span{margin:0;font-size:1.875em;text-align:center}:host:not(.period):hover .container .marker:before{border:.18em solid #2bbbad}:host:not(.period):hover .container .marker:before,:host-context(.sfc-default-theme) :host:not(.period):hover .container .marker:before{background:transparent}:host-context(.sfc-dark-theme) :host:not(.period):hover .container .marker:before{background:#fff}@media (min-width: 435px){:host .container{padding:0 0 .31em;overflow:hidden}:host .container .date-time{width:50%}:host .container .marker{left:50%;margin-left:-.46em}:host .container .content{padding:0;width:50%}:host.period .container{padding:2em 0 3.5em}:host.period .container .content{padding:0;width:100%;text-align:center;justify-content:center;align-items:center}:host:not(.period).right .container .date-time{float:left;text-align:right;padding-right:1.875em}:host:not(.period).right .container .content{padding-left:1.5em;justify-content:start}:host:not(.period).left .container .date-time{float:right;padding-left:1.875em}:host:not(.period).left .container .content{padding-right:1.5em;justify-content:end;align-items:end}:host:not(.period).left .container .content .title{text-align:end}:host:not(.period).left .container .content span,:host:not(.period).left .container .content p{text-align:end}}\n"] }]
1377
+ args: [{ selector: 'sfc-timeline-item', template: "<li class=\"container\">\r\n <div class=\"date-time\">\r\n <span>{{model.dateTimeLabel}}</span>\r\n </div>\r\n <div class=\"marker\">\r\n <div class=\"delimeter\"></div>\r\n </div>\r\n <div class=\"content\">\r\n <div class=\"title\">\r\n <sfc-icon [icon]=\"model.icon\" [imageSrc]=\"model.image\"></sfc-icon>\r\n <span>{{model.title}}</span>\r\n </div> \r\n <p>{{model.description}}</p>\r\n </div>\r\n</li>", styles: [":host{display:block}:host .container{padding:0 0 .5em 2.5em;position:relative}:host .container .date-time{font-size:.8em;font-weight:700;letter-spacing:.06em;margin:0 0 .5em;text-transform:uppercase;white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box;transition:color .5s ease}:host .container .date-time,:host-context(.sfc-default-theme) :host .container .date-time{color:#545e61}:host-context(.sfc-dark-theme) :host .container .date-time{color:#fff}:host .container .marker{position:absolute;top:0;bottom:0;left:0}:host .container .marker:before{box-sizing:border-box;background:#2bbbad;border:.18em solid transparent;border-radius:100%;content:\"\";display:block;position:absolute;top:.25em;width:1em;height:1em;transition:background .3s ease-in-out,border .3s ease-in-out}:host .container .marker:after{content:\"\";width:.18em;display:block;position:absolute;top:1.5em;bottom:0;left:.375em;transition:background .5s ease;box-sizing:border-box}:host .container .marker:after,:host-context(.sfc-default-theme) :host .container .marker:after{background:#545e61}:host-context(.sfc-dark-theme) :host .container .marker:after{background:#fff}:host .container .marker .delimeter{display:none;width:1em;bottom:0;position:absolute;border-bottom:.18em solid;transition:border-color .5s ease}:host .container .marker .delimeter,:host-context(.sfc-default-theme) :host .container .marker .delimeter{border-color:#545e61}:host-context(.sfc-dark-theme) :host .container .marker .delimeter{border-color:#fff}:host .container .content{transition:color .5s ease;font-size:1em;font-weight:700;line-height:initial;padding-bottom:2.5em;-webkit-user-select:none;user-select:none;box-sizing:border-box;display:flex;flex-flow:column wrap;align-items:flex-start}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{color:#545e61}:host-context(.sfc-dark-theme) :host .container .content{color:#fff}:host .container .content p{font-size:.8em;line-height:1em;color:#aab2bd;margin:0}:host .container .content sfc-icon{margin-right:.31em}:host.period .container{padding:0}:host.period .container .date-time{display:none}:host.period .container .marker:before{background:transparent;content:\"\";height:auto;border:none;border-radius:0;top:0;bottom:1.875em;border-top:.18em solid;border-bottom:.18em solid;transition:border-color .5s ease;transition:none}:host.period .container .marker:before,:host-context(.sfc-default-theme) :host.period .container .marker:before{border-color:#545e61}:host-context(.sfc-dark-theme) :host.period .container .marker:before{border-color:#fff}:host.period .container .marker:after{content:\"\";height:2em;top:auto}:host.period .container .content{padding:2.5em 0 4.375em;justify-content:start}:host.period .container .content .title{width:100%}:host.period .container .content .title span{margin:0;font-size:1.875em;text-align:center}:host:not(.period):hover .container .marker:before{transition:background .5s ease;border:.18em solid #2bbbad}:host:not(.period):hover .container .marker:before,:host-context(.sfc-default-theme) :host:not(.period):hover .container .marker:before{background:transparent}:host-context(.sfc-dark-theme) :host:not(.period):hover .container .marker:before{background:#fff}@media (min-width: 435px){:host .container{padding:0 0 .31em;overflow:hidden}:host .container .date-time{width:50%}:host .container .marker{left:50%;margin-left:-.46em}:host .container .content{padding:0;width:50%}:host.period .container{padding:2em 0 3.5em}:host.period .container .content{padding:0;width:100%;text-align:center;justify-content:center;align-items:center}:host:not(.period).right .container .date-time{float:left;text-align:right;padding-right:1.875em}:host:not(.period).right .container .content{padding-left:1.5em;justify-content:start}:host:not(.period).left .container .date-time{float:right;padding-left:1.875em}:host:not(.period).left .container .content{padding-right:1.5em;justify-content:end;align-items:end}:host:not(.period).left .container .content .title{text-align:end}:host:not(.period).left .container .content span,:host:not(.period).left .container .content p{text-align:end}}\n"] }]
1352
1378
  }], propDecorators: { model: [{
1353
1379
  type: Input
1354
1380
  }], position: [{
@@ -1397,7 +1423,7 @@ class NotificationContentComponent {
1397
1423
  }
1398
1424
  }
1399
1425
  NotificationContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1400
- NotificationContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NotificationContentComponent, selector: "sfc-notification-content", inputs: { type: "type", model: "model" }, outputs: { buttonClicked: "buttonClicked" }, host: { properties: { "class": "this.type" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"illustration\">\r\n <div *ngIf=\"model.icon\">\r\n <fa-icon [icon]=\"model.icon\"></fa-icon>\r\n </div>\r\n <div *ngIf=\"showImage\">\r\n <img [src]=\"model.image\">\r\n </div>\r\n </div>\r\n <div class=\"message\">\r\n <h1>{{model.title}}</h1>\r\n <p>{{model.subTitle}}</p>\r\n </div>\r\n <div *ngIf=\"model.showButton\" class=\"action\">\r\n <sfc-button text=\"{{model.buttonText || type}}\" [types]=\"[ButtonType.Rounded, ButtonType.Filled]\"\r\n (click)=\"buttonClicked.emit()\"></sfc-button>\r\n </div>\r\n</div>", styles: [":host{display:inline-block;font-size:3em}:host.info ::ng-deep sfc-button .button.filled{color:#4fc1e9!important}:host.success ::ng-deep sfc-button .button.filled{color:#4ec07d!important}:host.failed ::ng-deep sfc-button .button.filled{color:#e96075!important}:host .container{display:flex;flex-direction:column;justify-content:center;align-items:center}:host .container .illustration{color:#f5f7fa;display:flex;justify-content:center;align-items:center;font-size:.7em}:host .container .illustration img{object-fit:contain;width:3em;height:3em}:host .container .message{text-align:center;-webkit-user-select:none;user-select:none}:host .container .message h1{font-size:.4em;color:#f5f7fa;font-weight:700;letter-spacing:.3em;text-transform:uppercase}:host .container .message p{font-size:.2em;font-weight:100;color:#434a54;letter-spacing:.1em}:host .container .action{font-size:.25em}:host .container .action ::ng-deep sfc-button{transition:transform .3s ease-in-out}:host .container .action ::ng-deep sfc-button .button.filled{background:#f5f7fa;border:solid .125em #f5f7fa}:host .container .action ::ng-deep sfc-button:hover{transform:scale(1.05)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "component", type: i1$1.ButtonComponent, selector: "sfc-button", inputs: ["text", "iconBefore", "iconAfter", "disabled", "types"] }] });
1426
+ NotificationContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NotificationContentComponent, selector: "sfc-notification-content", inputs: { type: "type", model: "model" }, outputs: { buttonClicked: "buttonClicked" }, host: { properties: { "class": "this.type" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"illustration\">\r\n <div *ngIf=\"model.icon\">\r\n <fa-icon [icon]=\"model.icon\"></fa-icon>\r\n </div>\r\n <div *ngIf=\"showImage\">\r\n <img [src]=\"model.image\">\r\n </div>\r\n </div>\r\n <div class=\"message\">\r\n <h1>{{model.title}}</h1>\r\n <p>{{model.subTitle}}</p>\r\n </div>\r\n <div *ngIf=\"model.showButton\" class=\"action\">\r\n <sfc-button text=\"{{model.buttonText || type}}\" [types]=\"[ButtonType.Rounded, ButtonType.Filled]\"\r\n (click)=\"buttonClicked.emit()\"></sfc-button>\r\n </div>\r\n</div>", styles: [":host{display:inline-block;font-size:3em}:host.info ::ng-deep sfc-button .button.filled{color:#4fc1e9!important}:host.success ::ng-deep sfc-button .button.filled{color:#4ec07d!important}:host.failed ::ng-deep sfc-button .button.filled{color:#e96075!important}:host .container{display:flex;flex-direction:column;justify-content:center;align-items:center}:host .container .illustration{color:#f5f7fa;display:flex;justify-content:center;align-items:center;font-size:.7em}:host .container .illustration img{object-fit:contain;width:3em;height:3em}:host .container .message{text-align:center;-webkit-user-select:none;user-select:none}:host .container .message h1{font-size:.4em;color:#f5f7fa;font-weight:700;letter-spacing:.3em;text-transform:uppercase}:host .container .message p{font-size:.2em;font-weight:100;color:#434a54;letter-spacing:.1em}:host .container .action{font-size:.25em}:host .container .action ::ng-deep sfc-button{transition:transform .3s ease-in-out}:host .container .action ::ng-deep sfc-button .button.filled{background:#f5f7fa;border:solid .125em #f5f7fa}:host .container .action ::ng-deep sfc-button:hover{transform:scale(1.05)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "component", type: i3.ButtonComponent, selector: "sfc-button", inputs: ["text", "iconBefore", "iconAfter", "disabled", "types"] }] });
1401
1427
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationContentComponent, decorators: [{
1402
1428
  type: Component,
1403
1429
  args: [{ selector: 'sfc-notification-content', template: "<div class=\"container\">\r\n <div class=\"illustration\">\r\n <div *ngIf=\"model.icon\">\r\n <fa-icon [icon]=\"model.icon\"></fa-icon>\r\n </div>\r\n <div *ngIf=\"showImage\">\r\n <img [src]=\"model.image\">\r\n </div>\r\n </div>\r\n <div class=\"message\">\r\n <h1>{{model.title}}</h1>\r\n <p>{{model.subTitle}}</p>\r\n </div>\r\n <div *ngIf=\"model.showButton\" class=\"action\">\r\n <sfc-button text=\"{{model.buttonText || type}}\" [types]=\"[ButtonType.Rounded, ButtonType.Filled]\"\r\n (click)=\"buttonClicked.emit()\"></sfc-button>\r\n </div>\r\n</div>", styles: [":host{display:inline-block;font-size:3em}:host.info ::ng-deep sfc-button .button.filled{color:#4fc1e9!important}:host.success ::ng-deep sfc-button .button.filled{color:#4ec07d!important}:host.failed ::ng-deep sfc-button .button.filled{color:#e96075!important}:host .container{display:flex;flex-direction:column;justify-content:center;align-items:center}:host .container .illustration{color:#f5f7fa;display:flex;justify-content:center;align-items:center;font-size:.7em}:host .container .illustration img{object-fit:contain;width:3em;height:3em}:host .container .message{text-align:center;-webkit-user-select:none;user-select:none}:host .container .message h1{font-size:.4em;color:#f5f7fa;font-weight:700;letter-spacing:.3em;text-transform:uppercase}:host .container .message p{font-size:.2em;font-weight:100;color:#434a54;letter-spacing:.1em}:host .container .action{font-size:.25em}:host .container .action ::ng-deep sfc-button{transition:transform .3s ease-in-out}:host .container .action ::ng-deep sfc-button .button.filled{background:#f5f7fa;border:solid .125em #f5f7fa}:host .container .action ::ng-deep sfc-button:hover{transform:scale(1.05)}\n"] }]
@@ -1452,7 +1478,7 @@ class NotificationComponent {
1452
1478
  }
1453
1479
  }
1454
1480
  NotificationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1455
- NotificationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NotificationComponent, selector: "sfc-notification", inputs: { showClose: "showClose", autoCloseModel: "autoCloseModel", type: "type", model: "model", content: "content" }, outputs: { closed: "closed", buttonClicked: "buttonClicked" }, host: { properties: { "class": "this.type" } }, queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], ngImport: i0, template: "<div class=\"container\" [sfcDestroyParent]=\"destroy\" [delay]=\"DESTROY_HOST_INTERVAL\">\r\n <div class=\"notification\" [sfcShowHideElement]=\"show\">\r\n <sfc-close *ngIf=\"showClose\" (click)=\"close()\"></sfc-close>\r\n\r\n <sfc-template-content [referenceContent]=\"content\" [templatesContent]=\"templates\"\r\n [templateType]=\"NotificationTemplate.Content\" [defaultContent]=\"defaultContent\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultContent>\r\n <sfc-notification-content [type]=\"type\" [model]=\"model\" (buttonClicked)=\"buttonClicked.emit()\">\r\n </sfc-notification-content>\r\n </ng-template>\r\n </div>\r\n</div>", styles: [":host{position:relative;z-index:9998;display:inline-block}:host .container .notification{border-radius:1.25em;box-shadow:5px 5px 20px #656d78;padding:1em;display:flex;justify-content:center;align-items:center;flex-direction:column;color:#f5f7fa}:host .container .notification sfc-close{align-self:end}:host .container .notification ::ng-deep sfc-close{color:#f5f7fa}:host .container .notification ::ng-deep sfc-close:hover{color:#fff}:host.info .container .notification{background:linear-gradient(to bottom right,#4fc1e9 40%,#4a89dc 100%)}:host.success .container .notification{background:linear-gradient(to bottom right,#b0db7d 40%,#99dbb4 100%)}:host.failed .container .notification{background:linear-gradient(to bottom left,#ef8d9c 40%,#ffc39e 100%)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.ShowHideElementDirective, selector: "[sfcShowHideElement]", inputs: ["sfcShowHideElement", "delay"] }, { kind: "directive", type: i1$1.DestroyParentDirective, selector: "[sfcDestroyParent]", inputs: ["sfcDestroyParent", "delay"] }, { kind: "component", type: i1$1.CloseComponent, selector: "sfc-close" }, { kind: "component", type: i1$1.TemplateContentComponent, selector: "sfc-template-content", inputs: ["contextData", "referenceContent", "templateType", "templatesContent", "defaultContent"] }, { kind: "component", type: NotificationContentComponent, selector: "sfc-notification-content", inputs: ["type", "model"], outputs: ["buttonClicked"] }] });
1481
+ NotificationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NotificationComponent, selector: "sfc-notification", inputs: { showClose: "showClose", autoCloseModel: "autoCloseModel", type: "type", model: "model", content: "content" }, outputs: { closed: "closed", buttonClicked: "buttonClicked" }, host: { properties: { "class": "this.type" } }, queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], ngImport: i0, template: "<div class=\"container\" [sfcDestroyParent]=\"destroy\" [delay]=\"DESTROY_HOST_INTERVAL\">\r\n <div class=\"notification\" [sfcShowHideElement]=\"show\">\r\n <sfc-close *ngIf=\"showClose\" (click)=\"close()\"></sfc-close>\r\n\r\n <sfc-template-content [referenceContent]=\"content\" [templatesContent]=\"templates\"\r\n [templateType]=\"NotificationTemplate.Content\" [defaultContent]=\"defaultContent\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultContent>\r\n <sfc-notification-content [type]=\"type\" [model]=\"model\" (buttonClicked)=\"buttonClicked.emit()\">\r\n </sfc-notification-content>\r\n </ng-template>\r\n </div>\r\n</div>", styles: [":host{position:relative;z-index:9998;display:inline-block}:host .container .notification{border-radius:1.25em;box-shadow:5px 5px 20px #656d78;padding:1em;display:flex;justify-content:center;align-items:center;flex-direction:column;color:#f5f7fa}:host .container .notification sfc-close{align-self:end}:host .container .notification ::ng-deep sfc-close{color:#f5f7fa}:host .container .notification ::ng-deep sfc-close:hover{color:#fff}:host.info .container .notification{background:linear-gradient(to bottom right,#4fc1e9 40%,#4a89dc 100%)}:host.success .container .notification{background:linear-gradient(to bottom right,#b0db7d 40%,#99dbb4 100%)}:host.failed .container .notification{background:linear-gradient(to bottom left,#ef8d9c 40%,#ffc39e 100%)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ShowHideElementDirective, selector: "[sfcShowHideElement]", inputs: ["sfcShowHideElement", "delay"] }, { kind: "directive", type: i3.DestroyParentDirective, selector: "[sfcDestroyParent]", inputs: ["sfcDestroyParent", "delay"] }, { kind: "component", type: i3.CloseComponent, selector: "sfc-close" }, { kind: "component", type: i3.TemplateContentComponent, selector: "sfc-template-content", inputs: ["contextData", "referenceContent", "templateType", "templatesContent", "defaultContent"] }, { kind: "component", type: NotificationContentComponent, selector: "sfc-notification-content", inputs: ["type", "model"], outputs: ["buttonClicked"] }] });
1456
1482
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationComponent, decorators: [{
1457
1483
  type: Component,
1458
1484
  args: [{ selector: 'sfc-notification', template: "<div class=\"container\" [sfcDestroyParent]=\"destroy\" [delay]=\"DESTROY_HOST_INTERVAL\">\r\n <div class=\"notification\" [sfcShowHideElement]=\"show\">\r\n <sfc-close *ngIf=\"showClose\" (click)=\"close()\"></sfc-close>\r\n\r\n <sfc-template-content [referenceContent]=\"content\" [templatesContent]=\"templates\"\r\n [templateType]=\"NotificationTemplate.Content\" [defaultContent]=\"defaultContent\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultContent>\r\n <sfc-notification-content [type]=\"type\" [model]=\"model\" (buttonClicked)=\"buttonClicked.emit()\">\r\n </sfc-notification-content>\r\n </ng-template>\r\n </div>\r\n</div>", styles: [":host{position:relative;z-index:9998;display:inline-block}:host .container .notification{border-radius:1.25em;box-shadow:5px 5px 20px #656d78;padding:1em;display:flex;justify-content:center;align-items:center;flex-direction:column;color:#f5f7fa}:host .container .notification sfc-close{align-self:end}:host .container .notification ::ng-deep sfc-close{color:#f5f7fa}:host .container .notification ::ng-deep sfc-close:hover{color:#fff}:host.info .container .notification{background:linear-gradient(to bottom right,#4fc1e9 40%,#4a89dc 100%)}:host.success .container .notification{background:linear-gradient(to bottom right,#b0db7d 40%,#99dbb4 100%)}:host.failed .container .notification{background:linear-gradient(to bottom left,#ef8d9c 40%,#ffc39e 100%)}\n"] }]
@@ -1802,43 +1828,47 @@ var TableColumnType;
1802
1828
  })(TableColumnType || (TableColumnType = {}));
1803
1829
 
1804
1830
  class ColumnsToggleService {
1805
- constructor(window, resizeService) {
1806
- this.window = window;
1807
- this.resizeService = resizeService;
1831
+ constructor() {
1808
1832
  // current state of toggle
1809
- this.showColumns = false;
1810
- this.toggleSubject = new Subject();
1833
+ this.show = true;
1834
+ this.toggleSubject = new BehaviorSubject(this.show);
1811
1835
  // toggle state observable
1812
- this.toggle$ = this.toggleSubject.asObservable()
1813
- .pipe(tap(() => this.showColumns = !this.showColumns), shareReplay());
1814
- // show column observable
1815
- this.showColumns$ = merge(this.resizeService.onResize$.pipe(startWith(null)), this.toggle$).pipe(map(() => this.window.innerWidth >= MediaLimits.Tablet ? true : this.showColumns));
1836
+ this.toggle$ = this.toggleSubject.asObservable();
1816
1837
  }
1817
1838
  toggle() {
1818
- this.toggleSubject.next();
1839
+ this.toggleSubject.next(this.show = !this.show);
1819
1840
  }
1820
1841
  }
1821
- ColumnsToggleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ColumnsToggleService, deps: [{ token: WINDOW }, { token: i1$1.ResizeService }], target: i0.ɵɵFactoryTarget.Injectable });
1842
+ ColumnsToggleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ColumnsToggleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1822
1843
  ColumnsToggleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ColumnsToggleService, providedIn: 'root' });
1823
1844
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ColumnsToggleService, decorators: [{
1824
1845
  type: Injectable,
1825
1846
  args: [{
1826
1847
  providedIn: 'root'
1827
1848
  }]
1828
- }], ctorParameters: function () { return [{ type: Window, decorators: [{
1829
- type: Inject,
1830
- args: [WINDOW]
1831
- }] }, { type: i1$1.ResizeService }]; } });
1849
+ }] });
1832
1850
 
1833
1851
  class TableSelectService {
1834
1852
  constructor() {
1835
1853
  this.selectSubject = new Subject();
1836
1854
  this.select$ = this.selectSubject.asObservable();
1855
+ this.selectedItems = [];
1856
+ this.unselectedItems = [];
1837
1857
  }
1838
1858
  selectAll(selected) {
1859
+ this.unselectedItems = [];
1860
+ this.selectedItems = [];
1839
1861
  this.selectSubject.next({ index: null, selected: selected });
1840
1862
  }
1841
1863
  select(index, selected) {
1864
+ if (selected) {
1865
+ removeItem(this.unselectedItems, index);
1866
+ addItem(this.selectedItems, index);
1867
+ }
1868
+ else {
1869
+ addItem(this.unselectedItems, index);
1870
+ removeItem(this.selectedItems, index);
1871
+ }
1842
1872
  this.selectSubject.next({ index, selected });
1843
1873
  }
1844
1874
  }
@@ -1862,10 +1892,10 @@ class TableConstants {
1862
1892
  TableConstants.SEQUENCE_COLUMN = { name: '№', field: '', type: TableColumnType.Sequence };
1863
1893
  TableConstants.SELECTABLE_COLUMN = { name: '', field: '', type: TableColumnType.Selectable };
1864
1894
  TableConstants.EXPANDED_COLUMN = { name: '', field: '', type: TableColumnType.Expanded };
1865
- TableConstants.TOGGLE_SWITCHER_LEFT_MODEL = { label: 'List', icon: faTableList };
1866
- TableConstants.TOGGLE_SWITCHER_RIGHT_MODEL = { label: 'Cards', icon: faBorderAll };
1867
- TableConstants.DEFAULT_PAGE = 1;
1868
- TableConstants.DEFAULT_PAGE_SIZE = 5;
1895
+ TableConstants.NOT_FOUND_LABEL_DEFAULT = 'Not found';
1896
+ TableConstants.TOTAL_LABEL_DEFAULT = 'Total';
1897
+ TableConstants.DATA_LIST_LABEL = 'List';
1898
+ TableConstants.DATA_CARDS_LABEL = 'Cards';
1869
1899
 
1870
1900
  var TableTemplate;
1871
1901
  (function (TableTemplate) {
@@ -1883,10 +1913,10 @@ class DefaultTableColumnComponent {
1883
1913
  }
1884
1914
  }
1885
1915
  DefaultTableColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DefaultTableColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1886
- DefaultTableColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DefaultTableColumnComponent, selector: "sfc-default-table-column", inputs: { model: "model" }, host: { properties: { "class.active": "this.active" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div *ngIf=\"model.icon\" class=\"icon\">\r\n <fa-icon [icon]=\"model.icon\"></fa-icon>\r\n </div>\r\n <div>\r\n <span>{{model.name}}</span>\r\n </div>\r\n</div>", styles: [":host{display:inline-block}:host.active{color:#ffce54}:host .container{text-transform:uppercase;font-size:.875em;font-weight:700;display:flex;align-items:center;justify-content:center;color:inherit;transition:color .3s}:host .container .icon{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
1916
+ DefaultTableColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DefaultTableColumnComponent, selector: "sfc-default-table-column", inputs: { model: "model" }, host: { properties: { "class.active": "this.active" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div *ngIf=\"model.icon\" class=\"icon\">\r\n <fa-icon [icon]=\"model.icon\"></fa-icon>\r\n </div>\r\n <div>\r\n <span>{{model.name}}</span>\r\n </div>\r\n</div>", styles: [":host{display:inline-block}:host.active{color:#ffce54}:host .container{text-transform:uppercase;font-size:.875em;font-weight:700;display:flex;align-items:center;justify-content:center;color:inherit}:host .container .icon{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
1887
1917
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DefaultTableColumnComponent, decorators: [{
1888
1918
  type: Component,
1889
- args: [{ selector: 'sfc-default-table-column', template: "<div class=\"container\">\r\n <div *ngIf=\"model.icon\" class=\"icon\">\r\n <fa-icon [icon]=\"model.icon\"></fa-icon>\r\n </div>\r\n <div>\r\n <span>{{model.name}}</span>\r\n </div>\r\n</div>", styles: [":host{display:inline-block}:host.active{color:#ffce54}:host .container{text-transform:uppercase;font-size:.875em;font-weight:700;display:flex;align-items:center;justify-content:center;color:inherit;transition:color .3s}:host .container .icon{margin-right:5px}\n"] }]
1919
+ args: [{ selector: 'sfc-default-table-column', template: "<div class=\"container\">\r\n <div *ngIf=\"model.icon\" class=\"icon\">\r\n <fa-icon [icon]=\"model.icon\"></fa-icon>\r\n </div>\r\n <div>\r\n <span>{{model.name}}</span>\r\n </div>\r\n</div>", styles: [":host{display:inline-block}:host.active{color:#ffce54}:host .container{text-transform:uppercase;font-size:.875em;font-weight:700;display:flex;align-items:center;justify-content:center;color:inherit}:host .container .icon{margin-right:5px}\n"] }]
1890
1920
  }], propDecorators: { model: [{
1891
1921
  type: Input
1892
1922
  }], active: [{
@@ -1894,21 +1924,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
1894
1924
  args: [`class.${UIClass.Active}`]
1895
1925
  }] } });
1896
1926
 
1927
+ class SelectableTableColumnConstants {
1928
+ }
1929
+ SelectableTableColumnConstants.LABEL_SELECT = 'Select';
1930
+ SelectableTableColumnConstants.LABEL_UNSELECT = 'Unselect';
1931
+
1897
1932
  class SelectableTableColumnComponent {
1898
1933
  constructor(service) {
1899
1934
  this.service = service;
1935
+ this.CheckmarkType = CheckmarkType;
1900
1936
  this.selected = false;
1901
1937
  }
1902
1938
  selectAll() {
1903
1939
  this.selected = !this.selected;
1904
1940
  this.service.selectAll(this.selected);
1905
1941
  }
1942
+ get label() {
1943
+ return this.selected
1944
+ ? SelectableTableColumnConstants.LABEL_UNSELECT
1945
+ : SelectableTableColumnConstants.LABEL_SELECT;
1946
+ }
1906
1947
  }
1907
1948
  SelectableTableColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SelectableTableColumnComponent, deps: [{ token: TableSelectService }], target: i0.ɵɵFactoryTarget.Component });
1908
- SelectableTableColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SelectableTableColumnComponent, selector: "sfc-selectable-table-column", inputs: { selected: "selected" }, host: { listeners: { "click": "selectAll()" }, properties: { "class.active": "this.selected" } }, ngImport: i0, template: "<div class=\"container\">\r\n <sfc-checkmark [active]=\"selected\"></sfc-checkmark>\r\n <span>ALL</span>\r\n</div>", styles: [":host{display:inline-block}:host:hover{color:#ffce54}:host:hover span{color:#ffce54}:host .container{text-transform:uppercase;font-size:1em;font-weight:700;display:flex;align-items:center;justify-content:center;transition:color .3s;cursor:pointer;-webkit-user-select:none;user-select:none}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container span{padding-left:.31em}\n"], dependencies: [{ kind: "component", type: i1$1.CheckmarkComponent, selector: "sfc-checkmark", inputs: ["active", "disabled", "icon", "type"] }] });
1949
+ SelectableTableColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SelectableTableColumnComponent, selector: "sfc-selectable-table-column", inputs: { selected: "selected" }, host: { listeners: { "click": "selectAll()" }, properties: { "class.active": "this.selected" } }, ngImport: i0, template: "<div class=\"container\">\r\n <sfc-checkmark [active]=\"selected\" [type]=\"CheckmarkType.Circle\"></sfc-checkmark>\r\n <span>{{label}}</span>\r\n</div>", styles: [":host{display:inline-block}:host .container{font-size:1em;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .5s ease}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container span{padding-left:.31em}:host:hover .container,:host.active .container{color:#ffce54!important}:host:hover .container sfc-checkmark ::ng-deep>.container .check,:host.active .container sfc-checkmark ::ng-deep>.container .check{border-color:#ffce54}\n"], dependencies: [{ kind: "component", type: i3.CheckmarkComponent, selector: "sfc-checkmark", inputs: ["active", "disabled", "icon", "type"] }] });
1909
1950
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SelectableTableColumnComponent, decorators: [{
1910
1951
  type: Component,
1911
- args: [{ selector: 'sfc-selectable-table-column', template: "<div class=\"container\">\r\n <sfc-checkmark [active]=\"selected\"></sfc-checkmark>\r\n <span>ALL</span>\r\n</div>", styles: [":host{display:inline-block}:host:hover{color:#ffce54}:host:hover span{color:#ffce54}:host .container{text-transform:uppercase;font-size:1em;font-weight:700;display:flex;align-items:center;justify-content:center;transition:color .3s;cursor:pointer;-webkit-user-select:none;user-select:none}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container span{padding-left:.31em}\n"] }]
1952
+ args: [{ selector: 'sfc-selectable-table-column', template: "<div class=\"container\">\r\n <sfc-checkmark [active]=\"selected\" [type]=\"CheckmarkType.Circle\"></sfc-checkmark>\r\n <span>{{label}}</span>\r\n</div>", styles: [":host{display:inline-block}:host .container{font-size:1em;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .5s ease}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container span{padding-left:.31em}:host:hover .container,:host.active .container{color:#ffce54!important}:host:hover .container sfc-checkmark ::ng-deep>.container .check,:host.active .container sfc-checkmark ::ng-deep>.container .check{border-color:#ffce54}\n"] }]
1912
1953
  }], ctorParameters: function () { return [{ type: TableSelectService }]; }, propDecorators: { selected: [{
1913
1954
  type: Input
1914
1955
  }, {
@@ -1921,54 +1962,119 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
1921
1962
 
1922
1963
  class ColumnsToggleConstants {
1923
1964
  }
1924
- ColumnsToggleConstants.HIDE = {
1925
- LABEL: 'Hide',
1926
- ICON: faEyeSlash
1927
- };
1928
- ColumnsToggleConstants.SHOW = {
1929
- LABEL: 'Show',
1930
- ICON: faEye
1931
- };
1965
+ ColumnsToggleConstants.HIDE_LABEL_DEFAULT = 'Hide';
1966
+ ColumnsToggleConstants.SHOW_LABEL_DEFAULT = 'Show';
1932
1967
 
1933
1968
  class ColumnsToggleComponent {
1934
1969
  constructor(service) {
1935
1970
  this.service = service;
1971
+ this.showLabel = ColumnsToggleConstants.HIDE_LABEL_DEFAULT;
1972
+ this.hideLabel = ColumnsToggleConstants.SHOW_LABEL_DEFAULT;
1936
1973
  }
1937
- onToggle() {
1938
- this.service.toggle();
1939
- }
1974
+ onToggle() { this.service.toggle(); }
1940
1975
  ngOnInit() {
1941
- this.vm$ = this.service.showColumns$.pipe(map(show => {
1976
+ this.vm$ = this.service.toggle$.pipe(map(show => {
1942
1977
  return {
1943
- model: show ? ColumnsToggleConstants.HIDE : ColumnsToggleConstants.SHOW,
1978
+ model: show ? { LABEL: this.hideLabel, ICON: faEye } : { LABEL: this.showLabel, ICON: faEyeSlash },
1944
1979
  show: show
1945
1980
  };
1946
1981
  }));
1947
1982
  }
1948
1983
  }
1949
1984
  ColumnsToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ColumnsToggleComponent, deps: [{ token: ColumnsToggleService }], target: i0.ɵɵFactoryTarget.Component });
1950
- ColumnsToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ColumnsToggleComponent, selector: "sfc-columns-toggle", host: { listeners: { "click": "onToggle()" } }, ngImport: i0, template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div>\r\n <span class=\"icon\" [sfcShowHideElement]=\"!vm.show\">\r\n <fa-icon [icon]=\"vm.model.ICON\"></fa-icon>\r\n </span>\r\n <span class=\"icon\" [sfcShowHideElement]=\"vm.show\">\r\n <fa-icon [icon]=\"vm.model.ICON\"></fa-icon>\r\n </span>\r\n <span class=\"label\">{{vm.model.LABEL}}</span>\r\n </div>\r\n</div>", styles: [":host{display:flex;align-items:center}:host .container{font-size:.625em;font-weight:700;text-transform:uppercase;width:100%;text-align:end;display:none;cursor:pointer;-webkit-user-select:none;user-select:none}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container:hover{color:#ffce54}:host .container span.icon{position:absolute}:host .container span.label{padding-left:1.3em}@media all and (max-width: 767px){:host .container{display:block}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: i1$1.ShowHideElementDirective, selector: "[sfcShowHideElement]", inputs: ["sfcShowHideElement", "delay"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
1985
+ ColumnsToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ColumnsToggleComponent, selector: "sfc-columns-toggle", inputs: { showLabel: "showLabel", hideLabel: "hideLabel" }, host: { listeners: { "click": "onToggle()" } }, ngImport: i0, template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div>\r\n <span class=\"icon\" [sfcShowHideElement]=\"!vm.show\">\r\n <fa-icon [icon]=\"vm.model.ICON\"></fa-icon>\r\n </span>\r\n <span class=\"icon\" [sfcShowHideElement]=\"vm.show\">\r\n <fa-icon [icon]=\"vm.model.ICON\"></fa-icon>\r\n </span>\r\n <span class=\"label\">{{vm.model.LABEL}}</span>\r\n </div>\r\n</div>", styles: [":host{display:flex;align-items:center}:host .container{transition:color .5s ease;font-size:.625em;font-weight:700;text-transform:uppercase;width:100%;text-align:end;cursor:pointer;-webkit-user-select:none;user-select:none}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container:hover{color:#ffce54}:host .container span.icon{position:absolute}:host .container span.label{padding-left:2em}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: i3.ShowHideElementDirective, selector: "[sfcShowHideElement]", inputs: ["sfcShowHideElement", "delay"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
1951
1986
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ColumnsToggleComponent, decorators: [{
1952
1987
  type: Component,
1953
- args: [{ selector: 'sfc-columns-toggle', template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div>\r\n <span class=\"icon\" [sfcShowHideElement]=\"!vm.show\">\r\n <fa-icon [icon]=\"vm.model.ICON\"></fa-icon>\r\n </span>\r\n <span class=\"icon\" [sfcShowHideElement]=\"vm.show\">\r\n <fa-icon [icon]=\"vm.model.ICON\"></fa-icon>\r\n </span>\r\n <span class=\"label\">{{vm.model.LABEL}}</span>\r\n </div>\r\n</div>", styles: [":host{display:flex;align-items:center}:host .container{font-size:.625em;font-weight:700;text-transform:uppercase;width:100%;text-align:end;display:none;cursor:pointer;-webkit-user-select:none;user-select:none}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container:hover{color:#ffce54}:host .container span.icon{position:absolute}:host .container span.label{padding-left:1.3em}@media all and (max-width: 767px){:host .container{display:block}}\n"] }]
1954
- }], ctorParameters: function () { return [{ type: ColumnsToggleService }]; }, propDecorators: { onToggle: [{
1988
+ args: [{ selector: 'sfc-columns-toggle', template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div>\r\n <span class=\"icon\" [sfcShowHideElement]=\"!vm.show\">\r\n <fa-icon [icon]=\"vm.model.ICON\"></fa-icon>\r\n </span>\r\n <span class=\"icon\" [sfcShowHideElement]=\"vm.show\">\r\n <fa-icon [icon]=\"vm.model.ICON\"></fa-icon>\r\n </span>\r\n <span class=\"label\">{{vm.model.LABEL}}</span>\r\n </div>\r\n</div>", styles: [":host{display:flex;align-items:center}:host .container{transition:color .5s ease;font-size:.625em;font-weight:700;text-transform:uppercase;width:100%;text-align:end;cursor:pointer;-webkit-user-select:none;user-select:none}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container:hover{color:#ffce54}:host .container span.icon{position:absolute}:host .container span.label{padding-left:2em}\n"] }]
1989
+ }], ctorParameters: function () { return [{ type: ColumnsToggleService }]; }, propDecorators: { showLabel: [{
1990
+ type: Input
1991
+ }], hideLabel: [{
1992
+ type: Input
1993
+ }], onToggle: [{
1994
+ type: HostListener,
1995
+ args: ['click']
1996
+ }] } });
1997
+
1998
+ class SortingConstants {
1999
+ }
2000
+ SortingConstants.DEFAULT_ASCENDING_ICON = faChevronUp;
2001
+ SortingConstants.DEFAULT_DESCENDING_ICON = faChevronDown;
2002
+
2003
+ class SortingColumnComponent {
2004
+ constructor(service) {
2005
+ this.service = service;
2006
+ this.SortingDirection = SortingDirection;
2007
+ this.id = CommonConstants.EMPTY_STRING;
2008
+ this.model = { active: false, enabled: false, direction: SortingDirection.Ascending };
2009
+ }
2010
+ get enabled() {
2011
+ return this.model.enabled;
2012
+ }
2013
+ get active() {
2014
+ return this.model.active || false;
2015
+ }
2016
+ sort() {
2017
+ if (this.enabled) {
2018
+ if (this.active) {
2019
+ this.model.direction = this.model.direction === SortingDirection.Ascending
2020
+ ? SortingDirection.Descending
2021
+ : SortingDirection.Ascending;
2022
+ }
2023
+ this.service.sort({ id: this.id, direction: this.model.direction });
2024
+ }
2025
+ }
2026
+ get icon() {
2027
+ const modelIcon = firstOrDefault(this.model.icons, i => i.direction == this.model.direction);
2028
+ return modelIcon ? modelIcon.icon : this.model.direction === SortingDirection.Ascending
2029
+ ? SortingConstants.DEFAULT_ASCENDING_ICON : SortingConstants.DEFAULT_DESCENDING_ICON;
2030
+ }
2031
+ ngOnInit() {
2032
+ if (!isDefined(this.model))
2033
+ this.model = { active: false, enabled: false, direction: SortingDirection.Ascending };
2034
+ // subscribe to sort changes so we can react when other columns are sorted
2035
+ this._subscription = this.service.sorting$.subscribe(event => {
2036
+ // reset this column's sort direction to hide the sort icons
2037
+ if (this.id != event.id)
2038
+ this.model.direction = SortingDirection.Ascending;
2039
+ });
2040
+ }
2041
+ ngOnDestroy() {
2042
+ this._subscription.unsubscribe();
2043
+ }
2044
+ }
2045
+ SortingColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SortingColumnComponent, deps: [{ token: i3.SortingService }], target: i0.ɵɵFactoryTarget.Component });
2046
+ SortingColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SortingColumnComponent, selector: "sfc-sorting-column", inputs: { id: "id", model: "model" }, host: { listeners: { "click": "sort()" }, properties: { "class.enabled": "this.enabled", "class.active": "this.active" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"enabled\" class=\"icons\">\r\n <fa-icon [icon]=\"icon\"></fa-icon>\r\n </div>\r\n</div>", styles: [":host{cursor:default;text-overflow:ellipsis;overflow:hidden}:host.enabled{cursor:pointer}:host .container{display:flex;flex-wrap:wrap;justify-content:center;min-width:0;transition:color .5s ease}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container:hover{color:#ffce54}:host .container .content{display:flex;-webkit-user-select:none;user-select:none}:host .container .icons{margin:0 .31em;font-size:.7em;display:flex;align-items:center}:host.active .container{color:#ffce54}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
2047
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SortingColumnComponent, decorators: [{
2048
+ type: Component,
2049
+ args: [{ selector: 'sfc-sorting-column', template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"enabled\" class=\"icons\">\r\n <fa-icon [icon]=\"icon\"></fa-icon>\r\n </div>\r\n</div>", styles: [":host{cursor:default;text-overflow:ellipsis;overflow:hidden}:host.enabled{cursor:pointer}:host .container{display:flex;flex-wrap:wrap;justify-content:center;min-width:0;transition:color .5s ease}:host .container,:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#fff}:host .container:hover{color:#ffce54}:host .container .content{display:flex;-webkit-user-select:none;user-select:none}:host .container .icons{margin:0 .31em;font-size:.7em;display:flex;align-items:center}:host.active .container{color:#ffce54}\n"] }]
2050
+ }], ctorParameters: function () { return [{ type: i3.SortingService }]; }, propDecorators: { id: [{
2051
+ type: Input
2052
+ }], model: [{
2053
+ type: Input
2054
+ }], enabled: [{
2055
+ type: HostBinding,
2056
+ args: [`class.${UIClass.Enabled}`]
2057
+ }], active: [{
2058
+ type: HostBinding,
2059
+ args: [`class.${UIClass.Active}`]
2060
+ }], sort: [{
1955
2061
  type: HostListener,
1956
2062
  args: ['click']
1957
2063
  }] } });
1958
2064
 
1959
2065
  class BaseDefaultTableContentComponent {
1960
- constructor() {
2066
+ constructor(selectedService) {
2067
+ this.selectedService = selectedService;
1961
2068
  this.TableColumnType = TableColumnType;
1962
- this.model = { dataModel: { data: {} }, index: 0 };
2069
+ this.CheckmarkType = CheckmarkType;
2070
+ this.model = { data: {}, index: 0, sequence: 0 };
1963
2071
  this.columns = [];
1964
2072
  this.selectOnClick = false;
1965
2073
  this.position = Position.Left;
1966
- this.columnWidth = this.columns.length || 1;
1967
- this.selected = new EventEmitter();
1968
2074
  }
1969
2075
  onContentClick() {
1970
2076
  if (this.selectOnClick)
1971
- this.selected.emit(this.selectEvent);
2077
+ this.select();
1972
2078
  }
1973
2079
  get even() {
1974
2080
  return (this.model.index + 1) % 2 === 0;
@@ -1982,7 +2088,7 @@ class BaseDefaultTableContentComponent {
1982
2088
  .subscribe((event) => {
1983
2089
  if (this.selectOnClick)
1984
2090
  event.stopPropagation();
1985
- this.selected.emit(this.selectEvent);
2091
+ this.select();
1986
2092
  });
1987
2093
  }
1988
2094
  }
@@ -1990,15 +2096,16 @@ class BaseDefaultTableContentComponent {
1990
2096
  if (this._columnCheckmarkSubscription)
1991
2097
  this._columnCheckmarkSubscription.unsubscribe();
1992
2098
  }
1993
- get selectEvent() {
1994
- return { index: this.model.index, selected: !this.model.dataModel.selected };
2099
+ select() {
2100
+ this.model.selected = !this.model.selected;
2101
+ this.selectedService.select(this.model.sequence, this.model.selected);
1995
2102
  }
1996
2103
  }
1997
- BaseDefaultTableContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BaseDefaultTableContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1998
- BaseDefaultTableContentComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: BaseDefaultTableContentComponent, inputs: { model: "model", columns: "columns", selectOnClick: "selectOnClick", position: "position", columnWidth: "columnWidth" }, outputs: { selected: "selected" }, host: { listeners: { "click": "onContentClick()" }, properties: { "class.even": "this.even", "class.pointer": "this.pointer" } }, viewQueries: [{ propertyName: "columnCheckmark", first: true, predicate: ["columnCheckmark"], descendants: true }], ngImport: i0 });
2104
+ BaseDefaultTableContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BaseDefaultTableContentComponent, deps: [{ token: TableSelectService }], target: i0.ɵɵFactoryTarget.Directive });
2105
+ BaseDefaultTableContentComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: BaseDefaultTableContentComponent, inputs: { model: "model", columns: "columns", selectOnClick: "selectOnClick", position: "position" }, host: { listeners: { "click": "onContentClick()" }, properties: { "class.even": "this.even", "class.pointer": "this.pointer" } }, viewQueries: [{ propertyName: "columnCheckmark", first: true, predicate: ["columnCheckmark"], descendants: true }], ngImport: i0 });
1999
2106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BaseDefaultTableContentComponent, decorators: [{
2000
2107
  type: Directive
2001
- }], propDecorators: { model: [{
2108
+ }], ctorParameters: function () { return [{ type: TableSelectService }]; }, propDecorators: { model: [{
2002
2109
  type: Input
2003
2110
  }], columns: [{
2004
2111
  type: Input
@@ -2006,10 +2113,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
2006
2113
  type: Input
2007
2114
  }], position: [{
2008
2115
  type: Input
2009
- }], columnWidth: [{
2010
- type: Input
2011
- }], selected: [{
2012
- type: Output
2013
2116
  }], columnCheckmark: [{
2014
2117
  type: ViewChild,
2015
2118
  args: ['columnCheckmark', { static: false }]
@@ -2025,9 +2128,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
2025
2128
  }] } });
2026
2129
 
2027
2130
  class DefaultTableRowComponent extends BaseDefaultTableContentComponent {
2028
- get width() {
2029
- return { width: getCalcValue(this.columnWidth) };
2030
- }
2031
2131
  get contentPosition() {
2032
2132
  switch (this.position) {
2033
2133
  case Position.Left:
@@ -2040,63 +2140,92 @@ class DefaultTableRowComponent extends BaseDefaultTableContentComponent {
2040
2140
  }
2041
2141
  }
2042
2142
  DefaultTableRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DefaultTableRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2043
- DefaultTableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DefaultTableRowComponent, selector: "sfc-default-table-row", usesInheritance: true, ngImport: i0, template: "<div class=\"container\">\r\n <div [ngStyle]=\"width\" [style.text-align]=\"position\" class=\"content-container\" *ngFor=\"let column of columns\">\r\n <div class=\"content\" [style.align-items]=\"contentPosition\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <div class=\"checkmark\" #columnCheckmark *ngSwitchCase=\"TableColumnType.Selectable\">\r\n <sfc-checkmark [active]=\"model.dataModel.selected || false\"></sfc-checkmark>\r\n </div>\r\n <div *ngSwitchCase=\"TableColumnType.Sequence\">\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.sequence}}</span>\r\n </div>\r\n <div *ngSwitchDefault>\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.dataModel.data[column.field]}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>", styles: [":host{width:100%;border-radius:1.25em;box-shadow:0 .625em 1em #00000005;transition:background-color .3s,box-shadow .6s cubic-bezier(.25,1,.5,.1);background-color:#f5f7fa}:host.even{background-color:#e6e9ed}:host.even:hover{background-color:#ccd1d9}:host:hover{background-color:#ccd1d9}:host.pointer{cursor:pointer}:host .container{flex-flow:row wrap;padding:0 .31em;display:flex;align-items:center}:host .container .content-container{color:#545e61;font-weight:700;text-overflow:ellipsis;overflow:hidden;-webkit-user-select:none;user-select:none}:host .container .content-container .content{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:.7em .5em}:host .container .content-container .content .name{display:none;font-size:.625em;line-height:.625em;font-weight:700;text-transform:uppercase;color:#656d78}@media all and (max-width: 767px){:host .container{align-items:flex-start}:host .container .content-container .content{align-items:flex-start;padding:.625em 1.25em}:host .container .content-container .content .name{display:block}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i1$1.CheckmarkComponent, selector: "sfc-checkmark", inputs: ["active", "disabled", "icon", "type"] }] });
2143
+ DefaultTableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DefaultTableRowComponent, selector: "sfc-default-table-row", usesInheritance: true, ngImport: i0, template: "<div class=\"container\">\r\n <div [style.width]=\"column.calculatedWidth\" [style.text-align]=\"position\" class=\"content-container\"\r\n *ngFor=\"let column of columns\">\r\n <div class=\"content\" [style.align-items]=\"contentPosition\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <div class=\"checkmark\" #columnCheckmark *ngSwitchCase=\"TableColumnType.Selectable\">\r\n <sfc-checkmark [active]=\"model.selected || false\" [type]=\"CheckmarkType.Circle\"></sfc-checkmark>\r\n </div>\r\n <div *ngSwitchCase=\"TableColumnType.Sequence\">\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.sequence}}</span>\r\n </div>\r\n <div *ngSwitchDefault>\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.data[column.field]}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>", styles: [":host{display:block;width:100%;border-radius:1.25em;box-shadow:0 .625em 1em #00000005;transition:background-color .3s,box-shadow .6s cubic-bezier(.25,1,.5,.1);margin:1em 0;background-color:#f5f7fa}:host.even{background-color:#e6e9ed}:host.even:hover{background-color:#ccd1d9}:host:hover{background-color:#ccd1d9}:host.pointer{cursor:pointer}:host .container{flex-flow:row wrap;padding:0 .31em;display:flex;align-items:center}:host .container .content-container{color:#545e61;font-weight:700;text-overflow:ellipsis;overflow:hidden;-webkit-user-select:none;user-select:none}:host .container .content-container .content{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:.7em .5em}:host .container .content-container .content .name{display:none;font-size:.625em;line-height:.625em;font-weight:700;text-transform:uppercase;color:#656d78}@media all and (max-width: 767px){:host .container{align-items:flex-start}:host .container .content-container .content{align-items:flex-start;padding:.625em 1.25em}:host .container .content-container .content .name{display:block}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.CheckmarkComponent, selector: "sfc-checkmark", inputs: ["active", "disabled", "icon", "type"] }] });
2044
2144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DefaultTableRowComponent, decorators: [{
2045
2145
  type: Component,
2046
- args: [{ selector: 'sfc-default-table-row', template: "<div class=\"container\">\r\n <div [ngStyle]=\"width\" [style.text-align]=\"position\" class=\"content-container\" *ngFor=\"let column of columns\">\r\n <div class=\"content\" [style.align-items]=\"contentPosition\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <div class=\"checkmark\" #columnCheckmark *ngSwitchCase=\"TableColumnType.Selectable\">\r\n <sfc-checkmark [active]=\"model.dataModel.selected || false\"></sfc-checkmark>\r\n </div>\r\n <div *ngSwitchCase=\"TableColumnType.Sequence\">\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.sequence}}</span>\r\n </div>\r\n <div *ngSwitchDefault>\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.dataModel.data[column.field]}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>", styles: [":host{width:100%;border-radius:1.25em;box-shadow:0 .625em 1em #00000005;transition:background-color .3s,box-shadow .6s cubic-bezier(.25,1,.5,.1);background-color:#f5f7fa}:host.even{background-color:#e6e9ed}:host.even:hover{background-color:#ccd1d9}:host:hover{background-color:#ccd1d9}:host.pointer{cursor:pointer}:host .container{flex-flow:row wrap;padding:0 .31em;display:flex;align-items:center}:host .container .content-container{color:#545e61;font-weight:700;text-overflow:ellipsis;overflow:hidden;-webkit-user-select:none;user-select:none}:host .container .content-container .content{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:.7em .5em}:host .container .content-container .content .name{display:none;font-size:.625em;line-height:.625em;font-weight:700;text-transform:uppercase;color:#656d78}@media all and (max-width: 767px){:host .container{align-items:flex-start}:host .container .content-container .content{align-items:flex-start;padding:.625em 1.25em}:host .container .content-container .content .name{display:block}}\n"] }]
2146
+ args: [{ selector: 'sfc-default-table-row', template: "<div class=\"container\">\r\n <div [style.width]=\"column.calculatedWidth\" [style.text-align]=\"position\" class=\"content-container\"\r\n *ngFor=\"let column of columns\">\r\n <div class=\"content\" [style.align-items]=\"contentPosition\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <div class=\"checkmark\" #columnCheckmark *ngSwitchCase=\"TableColumnType.Selectable\">\r\n <sfc-checkmark [active]=\"model.selected || false\" [type]=\"CheckmarkType.Circle\"></sfc-checkmark>\r\n </div>\r\n <div *ngSwitchCase=\"TableColumnType.Sequence\">\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.sequence}}</span>\r\n </div>\r\n <div *ngSwitchDefault>\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.data[column.field]}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>", styles: [":host{display:block;width:100%;border-radius:1.25em;box-shadow:0 .625em 1em #00000005;transition:background-color .3s,box-shadow .6s cubic-bezier(.25,1,.5,.1);margin:1em 0;background-color:#f5f7fa}:host.even{background-color:#e6e9ed}:host.even:hover{background-color:#ccd1d9}:host:hover{background-color:#ccd1d9}:host.pointer{cursor:pointer}:host .container{flex-flow:row wrap;padding:0 .31em;display:flex;align-items:center}:host .container .content-container{color:#545e61;font-weight:700;text-overflow:ellipsis;overflow:hidden;-webkit-user-select:none;user-select:none}:host .container .content-container .content{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:.7em .5em}:host .container .content-container .content .name{display:none;font-size:.625em;line-height:.625em;font-weight:700;text-transform:uppercase;color:#656d78}@media all and (max-width: 767px){:host .container{align-items:flex-start}:host .container .content-container .content{align-items:flex-start;padding:.625em 1.25em}:host .container .content-container .content .name{display:block}}\n"] }]
2047
2147
  }] });
2048
2148
 
2049
2149
  class DefaultTableCardComponent extends BaseDefaultTableContentComponent {
2050
2150
  }
2051
2151
  DefaultTableCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DefaultTableCardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2052
- DefaultTableCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DefaultTableCardComponent, selector: "sfc-default-table-card", usesInheritance: true, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content-container\" *ngFor=\"let column of columns\">\r\n <div class=\"content\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <div #columnCheckmark *ngSwitchCase=\"TableColumnType.Selectable\">\r\n <sfc-checkmark [active]=\"model.dataModel.selected || false\"></sfc-checkmark>\r\n </div>\r\n <div *ngSwitchCase=\"TableColumnType.Sequence\">\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.sequence}}</span>\r\n </div>\r\n <div *ngSwitchDefault>\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.dataModel.data[column.field]}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>", styles: [":host{box-shadow:0 .625em 1.25em #00000030,0 .3753em .3753em #0000003b;transition:all .2s ease-in-out;border-radius:.75em;background-color:#f5f7fa}:host.even{background-color:#e6e9ed}:host.even:hover{background-color:#ccd1d9}:host:hover{background-color:#ccd1d9}:host.pointer{cursor:pointer}:host .container{flex-flow:column wrap;justify-content:center;width:min-content;display:flex;align-items:center}:host .container .content-container{color:#545e61;font-weight:700;text-overflow:ellipsis;overflow:hidden;-webkit-user-select:none;user-select:none;text-align:center;text-align:left}:host .container .content-container .content{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:.625em 1.25em}:host .container .content-container .content div{width:100%;padding:0 5em}:host .container .content-container .content .name{display:block;font-size:.625em;line-height:.625em;font-weight:700;text-transform:uppercase;color:#656d78}@media all and (max-width: 430px){:host .container{width:initial}:host .container .content-container .content div{width:initial;padding:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i1$1.CheckmarkComponent, selector: "sfc-checkmark", inputs: ["active", "disabled", "icon", "type"] }] });
2152
+ DefaultTableCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DefaultTableCardComponent, selector: "sfc-default-table-card", usesInheritance: true, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content-container\" *ngFor=\"let column of columns\">\r\n <div class=\"content\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <div #columnCheckmark *ngSwitchCase=\"TableColumnType.Selectable\">\r\n <sfc-checkmark [active]=\"model.selected || false\" [type]=\"CheckmarkType.Circle\"></sfc-checkmark>\r\n </div>\r\n <div *ngSwitchCase=\"TableColumnType.Sequence\">\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.sequence}}</span>\r\n </div>\r\n <div *ngSwitchDefault>\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.data[column.field]}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>", styles: [":host{display:inline-block;box-shadow:0 .625em 1.25em #00000030,0 .3753em .3753em #0000003b;transition:all .2s ease-in-out;border-radius:.75em;margin:.5em;background-color:#f5f7fa}:host.even{background-color:#e6e9ed}:host.even:hover{background-color:#ccd1d9}:host:hover{background-color:#ccd1d9}:host.pointer{cursor:pointer}:host .container{flex-flow:column wrap;justify-content:center;width:min-content;display:flex;align-items:center}:host .container .content-container{color:#545e61;font-weight:700;text-overflow:ellipsis;overflow:hidden;-webkit-user-select:none;user-select:none;text-align:center;text-align:left}:host .container .content-container .content{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:.625em 1.25em}:host .container .content-container .content div{width:100%;padding:0 5em}:host .container .content-container .content .name{display:block;font-size:.625em;line-height:.625em;font-weight:700;text-transform:uppercase;color:#656d78}@media all and (max-width: 430px){:host .container{width:initial}:host .container .content-container .content div{width:initial;padding:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.CheckmarkComponent, selector: "sfc-checkmark", inputs: ["active", "disabled", "icon", "type"] }] });
2053
2153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DefaultTableCardComponent, decorators: [{
2054
2154
  type: Component,
2055
- args: [{ selector: 'sfc-default-table-card', template: "<div class=\"container\">\r\n <div class=\"content-container\" *ngFor=\"let column of columns\">\r\n <div class=\"content\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <div #columnCheckmark *ngSwitchCase=\"TableColumnType.Selectable\">\r\n <sfc-checkmark [active]=\"model.dataModel.selected || false\"></sfc-checkmark>\r\n </div>\r\n <div *ngSwitchCase=\"TableColumnType.Sequence\">\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.sequence}}</span>\r\n </div>\r\n <div *ngSwitchDefault>\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.dataModel.data[column.field]}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>", styles: [":host{box-shadow:0 .625em 1.25em #00000030,0 .3753em .3753em #0000003b;transition:all .2s ease-in-out;border-radius:.75em;background-color:#f5f7fa}:host.even{background-color:#e6e9ed}:host.even:hover{background-color:#ccd1d9}:host:hover{background-color:#ccd1d9}:host.pointer{cursor:pointer}:host .container{flex-flow:column wrap;justify-content:center;width:min-content;display:flex;align-items:center}:host .container .content-container{color:#545e61;font-weight:700;text-overflow:ellipsis;overflow:hidden;-webkit-user-select:none;user-select:none;text-align:center;text-align:left}:host .container .content-container .content{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:.625em 1.25em}:host .container .content-container .content div{width:100%;padding:0 5em}:host .container .content-container .content .name{display:block;font-size:.625em;line-height:.625em;font-weight:700;text-transform:uppercase;color:#656d78}@media all and (max-width: 430px){:host .container{width:initial}:host .container .content-container .content div{width:initial;padding:0}}\n"] }]
2155
+ args: [{ selector: 'sfc-default-table-card', template: "<div class=\"container\">\r\n <div class=\"content-container\" *ngFor=\"let column of columns\">\r\n <div class=\"content\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <div #columnCheckmark *ngSwitchCase=\"TableColumnType.Selectable\">\r\n <sfc-checkmark [active]=\"model.selected || false\" [type]=\"CheckmarkType.Circle\"></sfc-checkmark>\r\n </div>\r\n <div *ngSwitchCase=\"TableColumnType.Sequence\">\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.sequence}}</span>\r\n </div>\r\n <div *ngSwitchDefault>\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.data[column.field]}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>", styles: [":host{display:inline-block;box-shadow:0 .625em 1.25em #00000030,0 .3753em .3753em #0000003b;transition:all .2s ease-in-out;border-radius:.75em;margin:.5em;background-color:#f5f7fa}:host.even{background-color:#e6e9ed}:host.even:hover{background-color:#ccd1d9}:host:hover{background-color:#ccd1d9}:host.pointer{cursor:pointer}:host .container{flex-flow:column wrap;justify-content:center;width:min-content;display:flex;align-items:center}:host .container .content-container{color:#545e61;font-weight:700;text-overflow:ellipsis;overflow:hidden;-webkit-user-select:none;user-select:none;text-align:center;text-align:left}:host .container .content-container .content{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:.625em 1.25em}:host .container .content-container .content div{width:100%;padding:0 5em}:host .container .content-container .content .name{display:block;font-size:.625em;line-height:.625em;font-weight:700;text-transform:uppercase;color:#656d78}@media all and (max-width: 430px){:host .container{width:initial}:host .container .content-container .content div{width:initial;padding:0}}\n"] }]
2056
2156
  }] });
2057
2157
 
2058
2158
  class TableComponent {
2059
- constructor(window, paginationService, selectedService, sortingService, changeDetector, resizeService, columnsToggleService, iterableDiffers) {
2159
+ constructor(columnsToggleService, window, selectedService, sortingService, changeDetector, resizeService, iterableDiffers) {
2160
+ this.columnsToggleService = columnsToggleService;
2060
2161
  this.window = window;
2061
- this.paginationService = paginationService;
2062
2162
  this.selectedService = selectedService;
2063
2163
  this.sortingService = sortingService;
2064
2164
  this.changeDetector = changeDetector;
2065
2165
  this.resizeService = resizeService;
2066
- this.columnsToggleService = columnsToggleService;
2067
2166
  this.iterableDiffers = iterableDiffers;
2068
2167
  this.TableDataType = TableDataType;
2069
2168
  this.TableColumnType = TableColumnType;
2070
2169
  this.TableTemplate = TableTemplate;
2071
2170
  this.Constants = TableConstants;
2171
+ this.LoadContainerType = LoadContainerType;
2072
2172
  this.position = Position.Center;
2073
2173
  this.delimeter = false;
2074
2174
  this.dataType = TableDataType.Rows;
2075
2175
  this.dataToggle = true;
2076
2176
  this.showColumns = true;
2077
- this.pagination = { enabled: true, page: TableConstants.DEFAULT_PAGE, size: TableConstants.DEFAULT_PAGE_SIZE };
2177
+ this.columnsToggle = false;
2178
+ this.pagination = PaginationConstants.DEFAULT_PAGINATION;
2078
2179
  this.sequence = false;
2079
2180
  this.expanded = false;
2080
- this.selectable = false;
2081
- this.selectOnClick = false;
2181
+ this.notFoundLabel = this.Constants.NOT_FOUND_LABEL_DEFAULT;
2182
+ this.showTotal = false;
2183
+ this.totalLabel = this.Constants.TOTAL_LABEL_DEFAULT;
2184
+ this.paginationCount = PaginationConstants.DEFAULT_COUNT;
2185
+ this.paginationLimits = false;
2186
+ this.showLoading = true;
2082
2187
  // End Template references
2083
2188
  //Data
2084
2189
  this.data = [];
2085
2190
  // End Data
2086
2191
  // Columns
2087
2192
  this.columns = [];
2193
+ this.resize = true;
2088
2194
  this.columnsSubject = new BehaviorSubject(this.columns);
2195
+ this.tableColumns = [];
2089
2196
  // End Columns
2090
- this.allRowsSelected = false;
2197
+ // Load container
2198
+ this.loadType = LoadContainerLoadType.Pagination;
2199
+ this.loadContainerId = generateGuid();
2200
+ this.items = [];
2201
+ this.total = 0;
2202
+ this.page = PaginationConstants.DEFAULT_PAGE;
2203
+ this.loading = false;
2204
+ // End Load container
2205
+ // Selection
2206
+ this.selectable = false;
2207
+ this.selectOnClick = false;
2208
+ this.selected = new EventEmitter();
2209
+ this.allSelected = false;
2210
+ // End Selection
2211
+ // Data toggle
2212
+ this.dataListLabel = this.Constants.DATA_LIST_LABEL;
2213
+ this.dataCardsLabel = this.Constants.DATA_CARDS_LABEL;
2091
2214
  this.dataDiffer = iterableDiffers.find([]).create(undefined);
2092
2215
  this.columnsDiffer = iterableDiffers.find([]).create(undefined);
2093
2216
  }
2094
- set data$(value) {
2095
- this._data$ = value;
2096
- this.paginationService.init(this._data$, this.pagination.page, this.pagination.size);
2217
+ get allRowsSelected() {
2218
+ return (this.allSelected || this.total == this.selectedService.selectedItems.length)
2219
+ && !any(this.selectedService.unselectedItems)
2220
+ && any(this.items);
2097
2221
  }
2098
- get data$() {
2099
- return this._data$;
2222
+ ;
2223
+ get initialSorting() {
2224
+ const activeSortingColumn = firstOrDefault(this.columns, column => column.sorting?.active);
2225
+ if (activeSortingColumn)
2226
+ return { id: activeSortingColumn.field, direction: activeSortingColumn.sorting?.direction };
2227
+ const enabledSortingColumn = firstOrDefault(this.columns, column => column.sorting?.enabled);
2228
+ return enabledSortingColumn ? { id: enabledSortingColumn.field, direction: enabledSortingColumn.sorting?.direction } : null;
2100
2229
  }
2101
2230
  ngOnInit() {
2102
2231
  // if data is static, make it observable
@@ -2104,67 +2233,24 @@ class TableComponent {
2104
2233
  this.dataSubject = new BehaviorSubject(this.data);
2105
2234
  this.data$ = this.dataSubject.asObservable();
2106
2235
  }
2107
- // set up data models with indexes
2108
- const dataIndexed$ = this.data$.pipe(map((data) => data.map((dataModel, index) => { return { index, dataModel }; }))),
2109
- // set up sorting observable
2110
- sorting$ = this.getSortingObservable(),
2111
- // set up selection observable
2112
- selection$ = this.selectedService.select$.pipe(startWith(null));
2113
- // set up columns (conditionally add sequence or selectable columns)
2114
- this.columns$ = this.columnsSubject.asObservable().pipe(map(columns => {
2115
- let tableColumns = columns.slice(0);
2116
- if (this.sequence)
2117
- tableColumns.unshift(TableConstants.SEQUENCE_COLUMN);
2118
- if (this.selectable)
2119
- tableColumns.unshift(TableConstants.SELECTABLE_COLUMN);
2120
- if (this.expanded)
2121
- tableColumns.push(TableConstants.EXPANDED_COLUMN);
2122
- return tableColumns;
2123
- }));
2124
- this.columnsSorting$ = combineLatest([this.columns$, sorting$]).pipe(map(([columns, event]) => {
2125
- columns.forEach(column => {
2126
- if (column.sorting?.enabled) {
2127
- column.sorting.active = column.field == event?.id || false;
2128
- if (!column.sorting.active)
2129
- column.sorting.direction = SortingDirection.Ascending;
2130
- }
2131
- });
2132
- return columns;
2133
- }));
2134
- // set up main data observable
2135
- this.dataValue$ = combineLatest([
2136
- dataIndexed$,
2137
- this.paginationService.pagination$,
2138
- sorting$,
2139
- selection$
2140
- ]).pipe(map(([data, paginationEvent, sortingEvent, selectionEvent]) => {
2141
- // handle selection
2142
- this.handleSelectionEvent(data, selectionEvent);
2143
- // handle pagination and sorting
2144
- let sortedData = this.sortData(data, sortingEvent), paginatedData = this.paginateData(sortedData, paginationEvent);
2145
- // handle data sequence
2146
- if (this.sequence) {
2147
- this.updateRowSequenceValues(paginationEvent.page, paginatedData);
2148
- }
2149
- return paginatedData;
2150
- }));
2151
- }
2152
- ngAfterViewInit() {
2153
- // combine all observable to view model
2154
- this.vm$ = combineLatest([
2155
- this.columnsSorting$,
2156
- this.dataValue$,
2157
- this.columnsToggleService.showColumns$,
2158
- this.columnWidth$
2159
- ]).pipe(map(([columns, data, showColumns, columnWidth]) => {
2160
- return {
2161
- columns,
2162
- data,
2163
- columnWidth,
2164
- showColumns: this.showColumns && showColumns,
2165
- columnStyle: { width: getCalcValue(columnWidth), justifyContent: this.position }
2166
- };
2167
- }));
2236
+ if (this.selectable)
2237
+ this.selectionSubscribe();
2238
+ // set up columns (conditionally add sequence, selectable and expand columns)
2239
+ this.columnsSubscribe();
2240
+ if (this.resize)
2241
+ this.resizeSubscribe();
2242
+ this.sortingSubscribe();
2243
+ this.loadModel = {
2244
+ predicate$: this.predicate$,
2245
+ data$: this.data$,
2246
+ loader: this.loader,
2247
+ filter: this.filter,
2248
+ loadType: this.loadType,
2249
+ pagination: this.pagination,
2250
+ sorting: this.initialSorting
2251
+ };
2252
+ this.toggleSwitcherLeftModel = { label: this.dataListLabel, icon: faTableList };
2253
+ this.toggleSwitcherRightModel = { label: this.dataCardsLabel, icon: faBorderAll };
2168
2254
  }
2169
2255
  ngAfterViewChecked() {
2170
2256
  this.changeDetector.detectChanges();
@@ -2180,73 +2266,106 @@ class TableComponent {
2180
2266
  ngAfterContentChecked() {
2181
2267
  this.changeDetector.detectChanges();
2182
2268
  }
2183
- ngAfterContentInit() {
2184
- this.columnWidth$ = combineLatest([
2185
- this.resizeService.onResize$.pipe(startWith({})),
2186
- this.columns$
2187
- ]).pipe(map(([_, columns]) => this.getColumnWidth(this.window.innerWidth, columns.length)));
2269
+ ngOnDestroy() {
2270
+ this._allSelectionSubscription?.unsubscribe();
2271
+ this._columnsResizeSubscription?.unsubscribe();
2272
+ this._columnsSubscription?.unsubscribe();
2273
+ this._sortingSubscription?.unsubscribe();
2188
2274
  }
2189
2275
  onDataTypeToggle() {
2190
- this.dataType = this.dataType == TableDataType.Rows ? TableDataType.Cards : TableDataType.Rows;
2191
- }
2192
- selectRow(model) {
2193
- this.selectedService.select(model.index, model.selected);
2194
- }
2195
- getSortingObservable() {
2196
- const firstSortingColumn = firstOrDefault(this.columns, column => column?.sorting?.enabled || false);
2197
- return this.sortingService.sorting$.pipe(startWith(firstSortingColumn ? { id: firstSortingColumn.field, direction: firstSortingColumn.sorting?.direction || SortingDirection.Ascending } : null));
2198
- }
2199
- getColumnWidth(windowWidth, columnsLength) {
2200
- if (windowWidth <= MediaLimits.MobileLarge)
2201
- return 1;
2202
- if (windowWidth <= MediaLimits.Tablet)
2203
- return Math.ceil(columnsLength / 2);
2204
- return columnsLength;
2205
- }
2206
- handleSelectionEvent(data, selectionEvent) {
2207
- if (selectionEvent != null) {
2208
- if (selectionEvent.index == null) {
2209
- data.forEach(item => item.dataModel.selected = selectionEvent.selected);
2210
- }
2211
- else {
2212
- data.forEach(item => {
2213
- if (selectionEvent.index === item.index) {
2214
- item.dataModel.selected = selectionEvent.selected;
2215
- }
2216
- });
2276
+ this.dataType = this.dataType == TableDataType.Rows
2277
+ ? TableDataType.Cards
2278
+ : TableDataType.Rows;
2279
+ }
2280
+ handleSuccess(result) {
2281
+ this.page = result.page;
2282
+ this.total = result.total;
2283
+ const items = result.items.map((item, index) => {
2284
+ const sequence = (index + 1) + ((this.page * this.pagination.size) - this.pagination.size);
2285
+ return {
2286
+ index: index,
2287
+ sequence: sequence,
2288
+ selected: this.getItemSelected(sequence),
2289
+ data: item
2290
+ };
2291
+ });
2292
+ if (result.reset)
2293
+ this.items = items;
2294
+ else
2295
+ this.items = this.items.concat(items);
2296
+ }
2297
+ selectionSubscribe() {
2298
+ this._allSelectionSubscription = this.selectedService.select$
2299
+ .subscribe((event) => {
2300
+ if (event.index == null) {
2301
+ this.allSelected = event.selected;
2302
+ this.items.forEach(item => item.selected = event.selected);
2217
2303
  }
2218
- }
2219
- this.allRowsSelected = all(data, item => Boolean(item.dataModel.selected));
2220
- }
2221
- paginateData(data, paginationEvent) {
2222
- let pagedData = this.pagination.enabled
2223
- ? data.slice((paginationEvent.page - 1) * this.pagination.size, paginationEvent.page * this.pagination.size)
2224
- : data;
2225
- return pagedData;
2226
- }
2227
- sortData(data, sortingEvent) {
2228
- const sortedData = sortingEvent && hasItemBy(this.columns, col => col.field == sortingEvent.id)
2229
- ? sortByPath(data, `dataModel.data.${sortingEvent.id}`, sortingEvent.direction)
2230
- : data;
2231
- return sortedData;
2232
- }
2233
- updateRowSequenceValues(page, data) {
2234
- let from = (page - 1) * this.pagination.size;
2235
- data.forEach(item => {
2236
- item.sequence = from + 1;
2237
- from++;
2304
+ this.selected.emit(event);
2238
2305
  });
2239
2306
  }
2307
+ resizeSubscribe() {
2308
+ this._columnsResizeSubscription = this.resizeService.onResize$
2309
+ .subscribe(() => this.tableColumns.forEach(column => column.calculatedWidth = this.calculateColumnWidth(column, this.tableColumns.length)));
2310
+ }
2311
+ columnsSubscribe() {
2312
+ this._columnsSubscription = this.columnsSubject.asObservable().pipe(filter(columns => any(columns)), map((columns) => {
2313
+ let tableColumns = JSON.parse(JSON.stringify(columns));
2314
+ if (this.sequence)
2315
+ tableColumns.unshift(TableConstants.SEQUENCE_COLUMN);
2316
+ if (this.selectable)
2317
+ tableColumns.unshift(TableConstants.SELECTABLE_COLUMN);
2318
+ if (this.expanded)
2319
+ tableColumns.push(TableConstants.EXPANDED_COLUMN);
2320
+ // calculated width not work without deep copy
2321
+ return JSON.parse(JSON.stringify(tableColumns));
2322
+ })).subscribe((columns) => {
2323
+ columns.forEach((column) => {
2324
+ column.calculatedWidth = this.calculateColumnWidth(column, columns.length);
2325
+ const sortingColumn = this.initialSorting;
2326
+ if (this.initialSorting) {
2327
+ this.setColumnSorting(column, sortingColumn?.id);
2328
+ }
2329
+ });
2330
+ this.tableColumns = columns;
2331
+ });
2332
+ }
2333
+ sortingSubscribe() {
2334
+ this._sortingSubscription = this.sortingService.sorting$.subscribe((sortingEvent) => this.tableColumns.forEach((column) => this.setColumnSorting(column, sortingEvent?.id)));
2335
+ }
2336
+ calculateColumnWidth(column, columnsLength) {
2337
+ // defined width for all columns
2338
+ if (all(this.columns, column => isDefined(column.width)))
2339
+ return getCssLikeValue(column.width, UIConstants.CSS_PERCENTAGE);
2340
+ let width = columnsLength;
2341
+ if (this.window.innerWidth <= MediaLimits.MobileLarge)
2342
+ width = 1;
2343
+ else if (this.window.innerWidth <= MediaLimits.Tablet)
2344
+ width = Math.ceil(columnsLength / 2);
2345
+ return getCalcValue(width);
2346
+ }
2347
+ setColumnSorting(column, sortingId) {
2348
+ if (column.sorting?.enabled) {
2349
+ column.sorting.active = column.field == sortingId;
2350
+ if (!column.sorting.active)
2351
+ column.sorting.direction = SortingDirection.Ascending;
2352
+ }
2353
+ }
2354
+ getItemSelected(sequence) {
2355
+ return this.allSelected
2356
+ ? !hasItem(this.selectedService.unselectedItems, sequence)
2357
+ : hasItem(this.selectedService.selectedItems, sequence);
2358
+ }
2240
2359
  }
2241
- TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TableComponent, deps: [{ token: WINDOW }, { token: i1$1.PaginationService }, { token: TableSelectService }, { token: i1$1.SortingService }, { token: i0.ChangeDetectorRef }, { token: i1$1.ResizeService }, { token: ColumnsToggleService }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component });
2242
- TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TableComponent, selector: "sfc-table", inputs: { position: "position", delimeter: "delimeter", dataType: "dataType", dataToggle: "dataToggle", showColumns: "showColumns", pagination: "pagination", sequence: "sequence", expanded: "expanded", selectable: "selectable", selectOnClick: "selectOnClick", columnContent: "columnContent", rowContent: "rowContent", cardContent: "cardContent", data: "data", data$: "data$", columns: "columns" }, host: { properties: { "class": "this.dataType" } }, providers: [PaginationService, SortingService, TableSelectService, ColumnsToggleService, ResizeService], queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], ngImport: i0, template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div class=\"columns-container\">\r\n <div class=\"columns-actions\">\r\n <sfc-columns-toggle *ngIf=\"showColumns\"></sfc-columns-toggle>\r\n <sfc-toggle-switcher *ngIf=\"dataToggle\" [active]=\"dataType === TableDataType.Cards\"\r\n [leftModel]=\"Constants.TOGGLE_SWITCHER_LEFT_MODEL\" [rightModel]=\"Constants.TOGGLE_SWITCHER_RIGHT_MODEL\"\r\n (click)=\"onDataTypeToggle()\">\r\n </sfc-toggle-switcher>\r\n </div>\r\n\r\n <div *ngIf=\"vm.showColumns\" class=\"columns\">\r\n <div class=\"column\" [ngStyle]=\"vm.columnStyle\" *ngFor=\"let column of vm.columns\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <sfc-selectable-table-column *ngSwitchCase=\"TableColumnType.Selectable\"\r\n [selected]=\"allRowsSelected\">\r\n </sfc-selectable-table-column>\r\n\r\n <sfc-sorting *ngSwitchDefault [model]=\"column.sorting\" [id]=\"column.field\">\r\n\r\n <sfc-template-content [referenceContent]=\"columnContent\" [templatesContent]=\"templates\"\r\n [templateType]=\"TableTemplate.Column\" [defaultContent]=\"defaultColumn\"\r\n [contextData]=\"column\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultColumn>\r\n <sfc-default-table-column [model]=\"column\"></sfc-default-table-column>\r\n </ng-template>\r\n\r\n </sfc-sorting>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <sfc-delimeter *ngIf=\"delimeter\"></sfc-delimeter>\r\n\r\n <div class=\"rows-container\">\r\n <div class=\"row\" *ngFor=\"let item of vm.data\">\r\n\r\n <ng-container [ngSwitch]=\"dataType\">\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Rows\" [referenceContent]=\"rowContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Row\" [defaultContent]=\"defaultRow\"\r\n [contextData]=\"{model: item, columns: vm.columns, columnWidth: vm.columnWidth, position: position}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultRow>\r\n <sfc-default-table-row [columns]=\"vm.columns\" [model]=\"item\" [position]=\"position\"\r\n [columnWidth]=\"vm.columnWidth\" [selectOnClick]=\"selectOnClick\" (selected)=\"selectRow($event)\">\r\n </sfc-default-table-row>\r\n </ng-template>\r\n\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Cards\" [referenceContent]=\"cardContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Card\" [defaultContent]=\"defaultCard\"\r\n [contextData]=\"{model: item, columns: vm.columns}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultCard>\r\n <sfc-default-table-card [columns]=\"vm.columns\" [model]=\"item\" [selectOnClick]=\"selectOnClick\"\r\n (selected)=\"selectRow($event)\">\r\n </sfc-default-table-card>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"pagination-container\">\r\n <sfc-pagination *ngIf=\"pagination.enabled\" [limits]=\"false\" [full]=\"false\" [data$]=\"data$\"></sfc-pagination>\r\n </div>\r\n</div>", styles: [":host .container{display:block;margin:2em auto;width:90%}:host .container .columns-container{display:flex;flex-flow:row wrap;transition:.5s;justify-content:space-between}:host .container .columns-container .columns-actions{display:flex;align-items:center;width:100%}:host .container .columns-container .columns-actions sfc-toggle-switcher{margin-left:auto}:host .container .columns-container .columns{text-align:center;padding:.5em;width:100%;display:flex;flex-flow:row wrap}:host .container .columns-container .columns .column{text-align:center;padding:.5em;display:flex;align-items:center;justify-content:center;box-sizing:border-box}:host .container .rows-container{display:flex;flex-wrap:wrap;justify-content:center;transition:.5s;gap:1em;margin-block:1em 2em}:host .container .rows-container .row{display:contents}\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: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i1$1.DelimeterComponent, selector: "sfc-delimeter", inputs: ["label", "direction"] }, { kind: "component", type: i1$1.TemplateContentComponent, selector: "sfc-template-content", inputs: ["contextData", "referenceContent", "templateType", "templatesContent", "defaultContent"] }, { kind: "component", type: i1$1.ToggleSwitcherComponent, selector: "sfc-toggle-switcher", inputs: ["active", "disabled", "leftModel", "rightModel"] }, { kind: "component", type: i1$1.PaginationComponent, selector: "sfc-pagination", inputs: ["count", "full", "limits", "data$"] }, { kind: "component", type: i1$1.SortingComponent, selector: "sfc-sorting", inputs: ["id", "model"] }, { kind: "component", type: DefaultTableColumnComponent, selector: "sfc-default-table-column", inputs: ["model"] }, { kind: "component", type: SelectableTableColumnComponent, selector: "sfc-selectable-table-column", inputs: ["selected"] }, { kind: "component", type: ColumnsToggleComponent, selector: "sfc-columns-toggle" }, { kind: "component", type: DefaultTableRowComponent, selector: "sfc-default-table-row" }, { kind: "component", type: DefaultTableCardComponent, selector: "sfc-default-table-card" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
2360
+ TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TableComponent, deps: [{ token: ColumnsToggleService }, { token: WINDOW }, { token: TableSelectService }, { token: i3.SortingService }, { token: i0.ChangeDetectorRef }, { token: i3.ResizeService }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component });
2361
+ TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TableComponent, selector: "sfc-table", inputs: { position: "position", delimeter: "delimeter", dataType: "dataType", dataToggle: "dataToggle", showColumns: "showColumns", columnsToggle: "columnsToggle", pagination: "pagination", sequence: "sequence", expanded: "expanded", notFoundLabel: "notFoundLabel", showTotal: "showTotal", totalLabel: "totalLabel", paginationCount: "paginationCount", paginationLimits: "paginationLimits", showLoading: "showLoading", columnContent: "columnContent", rowContent: "rowContent", cardContent: "cardContent", data: "data", data$: "data$", columns: "columns", showColumnsLabel: "showColumnsLabel", hideColumnsLabel: "hideColumnsLabel", resize: "resize", loadType: "loadType", loader: "loader", filter: "filter", predicate$: "predicate$", selectable: "selectable", selectOnClick: "selectOnClick", dataListLabel: "dataListLabel", dataCardsLabel: "dataCardsLabel" }, outputs: { selected: "selected" }, host: { properties: { "class": "this.dataType", "class.loading": "this.loading" } }, providers: [SortingService, TableSelectService, ColumnsToggleService, ResizeService], queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], ngImport: i0, template: "<div class=\"container\">\r\n <div *ngIf=\"showLoading\" class=\"table-loader\"></div>\r\n <div class=\"columns-container\">\r\n <div class=\"columns-actions\">\r\n <div class=\"left\">\r\n <sfc-columns-toggle *ngIf=\"columnsToggle\" [showLabel]=\"showColumnsLabel\" [hideLabel]=\"hideColumnsLabel\">\r\n </sfc-columns-toggle>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <p *ngIf=\"showTotal\">{{totalLabel}}: <span>{{total}}</span></p>\r\n <sfc-toggle-switcher *ngIf=\"dataToggle\" [active]=\"dataType === TableDataType.Cards\"\r\n [leftModel]=\"toggleSwitcherLeftModel\" [rightModel]=\"toggleSwitcherRightModel\"\r\n (click)=\"onDataTypeToggle()\">\r\n </sfc-toggle-switcher>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showColumns && columnsToggleService.show\" class=\"columns\">\r\n <div class=\"column\" [style.justifyContent]=\"position\" [style.minWidth]=\"column.calculatedWidth\"\r\n *ngFor=\"let column of tableColumns\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <sfc-selectable-table-column *ngSwitchCase=\"TableColumnType.Selectable\"\r\n [selected]=\"allRowsSelected\">\r\n </sfc-selectable-table-column>\r\n\r\n <sfc-sorting-column *ngSwitchDefault [model]=\"column.sorting!\" [id]=\"column.field\">\r\n\r\n <sfc-template-content [referenceContent]=\"columnContent\" [templatesContent]=\"templates\"\r\n [templateType]=\"TableTemplate.Column\" [defaultContent]=\"defaultColumn\"\r\n [contextData]=\"column\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultColumn>\r\n <sfc-default-table-column [model]=\"column\"></sfc-default-table-column>\r\n </ng-template>\r\n\r\n </sfc-sorting-column>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <sfc-delimeter *ngIf=\"delimeter\" class=\"table-delimeter\"></sfc-delimeter>\r\n\r\n <div class=\"rows-container\">\r\n <sfc-load-container [id]=\"loadContainerId\" [type]=\"LoadContainerType.Table\" [model]=\"loadModel\"\r\n [paginationCount]=\"paginationCount\" [paginationLimits]=\"paginationLimits\" [showLoading]=\"showLoading\"\r\n (handleSuccess)=\"handleSuccess($event)\" (handleLoading)=\"loading = $event\" [emptyLabel]=\"notFoundLabel\">\r\n <div class=\"row\" *ngFor=\"let item of items; index as i;\">\r\n <ng-container [ngSwitch]=\"dataType\">\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Rows\" [referenceContent]=\"rowContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Row\" [defaultContent]=\"defaultRow\"\r\n [contextData]=\"{model: item, columns: tableColumns, position: position}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultRow>\r\n <sfc-default-table-row [columns]=\"tableColumns\" [model]=\"item\" [position]=\"position\"\r\n [selectOnClick]=\"selectOnClick\">\r\n </sfc-default-table-row>\r\n </ng-template>\r\n\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Cards\" [referenceContent]=\"cardContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Card\"\r\n [defaultContent]=\"defaultCard\" [contextData]=\"{model: item, columns: tableColumns}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultCard>\r\n <sfc-default-table-card [columns]=\"tableColumns\" [model]=\"item\" [selectOnClick]=\"selectOnClick\">\r\n </sfc-default-table-card>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n\r\n </sfc-load-container>\r\n </div>\r\n</div>", styles: [":host .container{display:block;margin:2em auto;width:90%;position:relative}:host .container .columns-container{display:flex;flex-flow:row wrap;transition:.5s;justify-content:space-between}:host .container .columns-container .columns-actions{display:flex;align-items:center;width:100%}:host .container .columns-container .columns-actions .right{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;margin-left:auto}:host .container .columns-container .columns-actions .right>p{transition:color .5s ease;margin:0;font-size:.8em;padding-right:1em;font-weight:700;-webkit-user-select:none;user-select:none;text-align:center}:host .container .columns-container .columns-actions .right>p,:host-context(.sfc-default-theme) :host .container .columns-container .columns-actions .right>p{color:#545e61}:host-context(.sfc-dark-theme) :host .container .columns-container .columns-actions .right>p{color:#fff}:host .container .columns-container .columns-actions .right>p span{font-size:1.1em;color:#ffce54}:host .container .columns-container .columns{text-align:center;padding:.5em;width:100%;display:flex;flex-flow:row wrap}:host .container .columns-container .columns .column{text-align:center;padding:.5em;display:flex;align-items:center;justify-content:center;box-sizing:border-box}:host .container .rows-container{display:flex;flex-wrap:wrap;justify-content:center;transition:.5s;gap:1em;margin-block:1em 2em}:host .container .rows-container sfc-load-container ::ng-deep>.content{background:transparent}:host .container .rows-container sfc-load-container.loading{cursor:initial;z-index:9999}:host .container .rows-container sfc-load-container.loading .preloader{transition:background .5s ease}:host .container .rows-container sfc-load-container.loading .preloader,:host-context(.sfc-default-theme) :host .container .rows-container sfc-load-container.loading .preloader{background:#fff}:host-context(.sfc-dark-theme) :host .container .rows-container sfc-load-container.loading .preloader{background:transparent}:host .container .rows-container .row{display:contents}:host.loading .container .table-loader{position:relative;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;z-index:9998;position:absolute;transition:background-color .5s ease;opacity:.7}:host.loading .container .table-loader,:host-context(.sfc-default-theme) :host.loading .container .table-loader{background-color:#fff}:host-context(.sfc-dark-theme) :host.loading .container .table-loader{background-color:transparent}\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: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.DelimeterComponent, selector: "sfc-delimeter", inputs: ["label", "direction"] }, { kind: "component", type: i3.TemplateContentComponent, selector: "sfc-template-content", inputs: ["contextData", "referenceContent", "templateType", "templatesContent", "defaultContent"] }, { kind: "component", type: i3.ToggleSwitcherComponent, selector: "sfc-toggle-switcher", inputs: ["active", "disabled", "leftModel", "rightModel"] }, { kind: "component", type: i3.LoadContainerComponent, selector: "sfc-load-container", inputs: ["id", "type", "open", "loadMore", "loadMoreLabel", "showEmpty", "emptyLabel", "model", "scrollTarget", "paginationCount", "paginationLimits", "showLoading"], outputs: ["handleError", "handleSuccess", "handleLoading"] }, { kind: "component", type: DefaultTableColumnComponent, selector: "sfc-default-table-column", inputs: ["model"] }, { kind: "component", type: SelectableTableColumnComponent, selector: "sfc-selectable-table-column", inputs: ["selected"] }, { kind: "component", type: ColumnsToggleComponent, selector: "sfc-columns-toggle", inputs: ["showLabel", "hideLabel"] }, { kind: "component", type: SortingColumnComponent, selector: "sfc-sorting-column", inputs: ["id", "model"] }, { kind: "component", type: DefaultTableRowComponent, selector: "sfc-default-table-row" }, { kind: "component", type: DefaultTableCardComponent, selector: "sfc-default-table-card" }] });
2243
2362
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TableComponent, decorators: [{
2244
2363
  type: Component,
2245
- args: [{ selector: 'sfc-table', providers: [PaginationService, SortingService, TableSelectService, ColumnsToggleService, ResizeService], template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div class=\"columns-container\">\r\n <div class=\"columns-actions\">\r\n <sfc-columns-toggle *ngIf=\"showColumns\"></sfc-columns-toggle>\r\n <sfc-toggle-switcher *ngIf=\"dataToggle\" [active]=\"dataType === TableDataType.Cards\"\r\n [leftModel]=\"Constants.TOGGLE_SWITCHER_LEFT_MODEL\" [rightModel]=\"Constants.TOGGLE_SWITCHER_RIGHT_MODEL\"\r\n (click)=\"onDataTypeToggle()\">\r\n </sfc-toggle-switcher>\r\n </div>\r\n\r\n <div *ngIf=\"vm.showColumns\" class=\"columns\">\r\n <div class=\"column\" [ngStyle]=\"vm.columnStyle\" *ngFor=\"let column of vm.columns\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <sfc-selectable-table-column *ngSwitchCase=\"TableColumnType.Selectable\"\r\n [selected]=\"allRowsSelected\">\r\n </sfc-selectable-table-column>\r\n\r\n <sfc-sorting *ngSwitchDefault [model]=\"column.sorting\" [id]=\"column.field\">\r\n\r\n <sfc-template-content [referenceContent]=\"columnContent\" [templatesContent]=\"templates\"\r\n [templateType]=\"TableTemplate.Column\" [defaultContent]=\"defaultColumn\"\r\n [contextData]=\"column\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultColumn>\r\n <sfc-default-table-column [model]=\"column\"></sfc-default-table-column>\r\n </ng-template>\r\n\r\n </sfc-sorting>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <sfc-delimeter *ngIf=\"delimeter\"></sfc-delimeter>\r\n\r\n <div class=\"rows-container\">\r\n <div class=\"row\" *ngFor=\"let item of vm.data\">\r\n\r\n <ng-container [ngSwitch]=\"dataType\">\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Rows\" [referenceContent]=\"rowContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Row\" [defaultContent]=\"defaultRow\"\r\n [contextData]=\"{model: item, columns: vm.columns, columnWidth: vm.columnWidth, position: position}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultRow>\r\n <sfc-default-table-row [columns]=\"vm.columns\" [model]=\"item\" [position]=\"position\"\r\n [columnWidth]=\"vm.columnWidth\" [selectOnClick]=\"selectOnClick\" (selected)=\"selectRow($event)\">\r\n </sfc-default-table-row>\r\n </ng-template>\r\n\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Cards\" [referenceContent]=\"cardContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Card\" [defaultContent]=\"defaultCard\"\r\n [contextData]=\"{model: item, columns: vm.columns}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultCard>\r\n <sfc-default-table-card [columns]=\"vm.columns\" [model]=\"item\" [selectOnClick]=\"selectOnClick\"\r\n (selected)=\"selectRow($event)\">\r\n </sfc-default-table-card>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"pagination-container\">\r\n <sfc-pagination *ngIf=\"pagination.enabled\" [limits]=\"false\" [full]=\"false\" [data$]=\"data$\"></sfc-pagination>\r\n </div>\r\n</div>", styles: [":host .container{display:block;margin:2em auto;width:90%}:host .container .columns-container{display:flex;flex-flow:row wrap;transition:.5s;justify-content:space-between}:host .container .columns-container .columns-actions{display:flex;align-items:center;width:100%}:host .container .columns-container .columns-actions sfc-toggle-switcher{margin-left:auto}:host .container .columns-container .columns{text-align:center;padding:.5em;width:100%;display:flex;flex-flow:row wrap}:host .container .columns-container .columns .column{text-align:center;padding:.5em;display:flex;align-items:center;justify-content:center;box-sizing:border-box}:host .container .rows-container{display:flex;flex-wrap:wrap;justify-content:center;transition:.5s;gap:1em;margin-block:1em 2em}:host .container .rows-container .row{display:contents}\n"] }]
2246
- }], ctorParameters: function () { return [{ type: Window, decorators: [{
2364
+ args: [{ selector: 'sfc-table', providers: [SortingService, TableSelectService, ColumnsToggleService, ResizeService], template: "<div class=\"container\">\r\n <div *ngIf=\"showLoading\" class=\"table-loader\"></div>\r\n <div class=\"columns-container\">\r\n <div class=\"columns-actions\">\r\n <div class=\"left\">\r\n <sfc-columns-toggle *ngIf=\"columnsToggle\" [showLabel]=\"showColumnsLabel\" [hideLabel]=\"hideColumnsLabel\">\r\n </sfc-columns-toggle>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <p *ngIf=\"showTotal\">{{totalLabel}}: <span>{{total}}</span></p>\r\n <sfc-toggle-switcher *ngIf=\"dataToggle\" [active]=\"dataType === TableDataType.Cards\"\r\n [leftModel]=\"toggleSwitcherLeftModel\" [rightModel]=\"toggleSwitcherRightModel\"\r\n (click)=\"onDataTypeToggle()\">\r\n </sfc-toggle-switcher>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showColumns && columnsToggleService.show\" class=\"columns\">\r\n <div class=\"column\" [style.justifyContent]=\"position\" [style.minWidth]=\"column.calculatedWidth\"\r\n *ngFor=\"let column of tableColumns\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <sfc-selectable-table-column *ngSwitchCase=\"TableColumnType.Selectable\"\r\n [selected]=\"allRowsSelected\">\r\n </sfc-selectable-table-column>\r\n\r\n <sfc-sorting-column *ngSwitchDefault [model]=\"column.sorting!\" [id]=\"column.field\">\r\n\r\n <sfc-template-content [referenceContent]=\"columnContent\" [templatesContent]=\"templates\"\r\n [templateType]=\"TableTemplate.Column\" [defaultContent]=\"defaultColumn\"\r\n [contextData]=\"column\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultColumn>\r\n <sfc-default-table-column [model]=\"column\"></sfc-default-table-column>\r\n </ng-template>\r\n\r\n </sfc-sorting-column>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <sfc-delimeter *ngIf=\"delimeter\" class=\"table-delimeter\"></sfc-delimeter>\r\n\r\n <div class=\"rows-container\">\r\n <sfc-load-container [id]=\"loadContainerId\" [type]=\"LoadContainerType.Table\" [model]=\"loadModel\"\r\n [paginationCount]=\"paginationCount\" [paginationLimits]=\"paginationLimits\" [showLoading]=\"showLoading\"\r\n (handleSuccess)=\"handleSuccess($event)\" (handleLoading)=\"loading = $event\" [emptyLabel]=\"notFoundLabel\">\r\n <div class=\"row\" *ngFor=\"let item of items; index as i;\">\r\n <ng-container [ngSwitch]=\"dataType\">\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Rows\" [referenceContent]=\"rowContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Row\" [defaultContent]=\"defaultRow\"\r\n [contextData]=\"{model: item, columns: tableColumns, position: position}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultRow>\r\n <sfc-default-table-row [columns]=\"tableColumns\" [model]=\"item\" [position]=\"position\"\r\n [selectOnClick]=\"selectOnClick\">\r\n </sfc-default-table-row>\r\n </ng-template>\r\n\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Cards\" [referenceContent]=\"cardContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Card\"\r\n [defaultContent]=\"defaultCard\" [contextData]=\"{model: item, columns: tableColumns}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultCard>\r\n <sfc-default-table-card [columns]=\"tableColumns\" [model]=\"item\" [selectOnClick]=\"selectOnClick\">\r\n </sfc-default-table-card>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n\r\n </sfc-load-container>\r\n </div>\r\n</div>", styles: [":host .container{display:block;margin:2em auto;width:90%;position:relative}:host .container .columns-container{display:flex;flex-flow:row wrap;transition:.5s;justify-content:space-between}:host .container .columns-container .columns-actions{display:flex;align-items:center;width:100%}:host .container .columns-container .columns-actions .right{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;margin-left:auto}:host .container .columns-container .columns-actions .right>p{transition:color .5s ease;margin:0;font-size:.8em;padding-right:1em;font-weight:700;-webkit-user-select:none;user-select:none;text-align:center}:host .container .columns-container .columns-actions .right>p,:host-context(.sfc-default-theme) :host .container .columns-container .columns-actions .right>p{color:#545e61}:host-context(.sfc-dark-theme) :host .container .columns-container .columns-actions .right>p{color:#fff}:host .container .columns-container .columns-actions .right>p span{font-size:1.1em;color:#ffce54}:host .container .columns-container .columns{text-align:center;padding:.5em;width:100%;display:flex;flex-flow:row wrap}:host .container .columns-container .columns .column{text-align:center;padding:.5em;display:flex;align-items:center;justify-content:center;box-sizing:border-box}:host .container .rows-container{display:flex;flex-wrap:wrap;justify-content:center;transition:.5s;gap:1em;margin-block:1em 2em}:host .container .rows-container sfc-load-container ::ng-deep>.content{background:transparent}:host .container .rows-container sfc-load-container.loading{cursor:initial;z-index:9999}:host .container .rows-container sfc-load-container.loading .preloader{transition:background .5s ease}:host .container .rows-container sfc-load-container.loading .preloader,:host-context(.sfc-default-theme) :host .container .rows-container sfc-load-container.loading .preloader{background:#fff}:host-context(.sfc-dark-theme) :host .container .rows-container sfc-load-container.loading .preloader{background:transparent}:host .container .rows-container .row{display:contents}:host.loading .container .table-loader{position:relative;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;z-index:9998;position:absolute;transition:background-color .5s ease;opacity:.7}:host.loading .container .table-loader,:host-context(.sfc-default-theme) :host.loading .container .table-loader{background-color:#fff}:host-context(.sfc-dark-theme) :host.loading .container .table-loader{background-color:transparent}\n"] }]
2365
+ }], ctorParameters: function () { return [{ type: ColumnsToggleService }, { type: Window, decorators: [{
2247
2366
  type: Inject,
2248
2367
  args: [WINDOW]
2249
- }] }, { type: i1$1.PaginationService }, { type: TableSelectService }, { type: i1$1.SortingService }, { type: i0.ChangeDetectorRef }, { type: i1$1.ResizeService }, { type: ColumnsToggleService }, { type: i0.IterableDiffers }]; }, propDecorators: { position: [{
2368
+ }] }, { type: TableSelectService }, { type: i3.SortingService }, { type: i0.ChangeDetectorRef }, { type: i3.ResizeService }, { type: i0.IterableDiffers }]; }, propDecorators: { position: [{
2250
2369
  type: Input
2251
2370
  }], delimeter: [{
2252
2371
  type: Input
@@ -2259,15 +2378,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
2259
2378
  type: Input
2260
2379
  }], showColumns: [{
2261
2380
  type: Input
2381
+ }], columnsToggle: [{
2382
+ type: Input
2262
2383
  }], pagination: [{
2263
2384
  type: Input
2264
2385
  }], sequence: [{
2265
2386
  type: Input
2266
2387
  }], expanded: [{
2267
2388
  type: Input
2268
- }], selectable: [{
2389
+ }], notFoundLabel: [{
2269
2390
  type: Input
2270
- }], selectOnClick: [{
2391
+ }], showTotal: [{
2392
+ type: Input
2393
+ }], totalLabel: [{
2394
+ type: Input
2395
+ }], paginationCount: [{
2396
+ type: Input
2397
+ }], paginationLimits: [{
2398
+ type: Input
2399
+ }], showLoading: [{
2271
2400
  type: Input
2272
2401
  }], columnContent: [{
2273
2402
  type: Input
@@ -2281,6 +2410,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
2281
2410
  type: Input
2282
2411
  }], columns: [{
2283
2412
  type: Input
2413
+ }], showColumnsLabel: [{
2414
+ type: Input
2415
+ }], hideColumnsLabel: [{
2416
+ type: Input
2417
+ }], resize: [{
2418
+ type: Input
2419
+ }], loadType: [{
2420
+ type: Input
2421
+ }], loader: [{
2422
+ type: Input
2423
+ }], filter: [{
2424
+ type: Input
2425
+ }], predicate$: [{
2426
+ type: Input
2427
+ }], loading: [{
2428
+ type: HostBinding,
2429
+ args: [`class.${UIClass.Loading}`]
2430
+ }], selectable: [{
2431
+ type: Input
2432
+ }], selectOnClick: [{
2433
+ type: Input
2434
+ }], selected: [{
2435
+ type: Output
2436
+ }], dataListLabel: [{
2437
+ type: Input
2438
+ }], dataCardsLabel: [{
2439
+ type: Input
2284
2440
  }], templates: [{
2285
2441
  type: ContentChildren,
2286
2442
  args: [TemplateReferenceDirective, { read: TemplateReferenceDirective }]
@@ -2302,7 +2458,6 @@ class ExpandedTableRowComponent extends BaseDefaultTableContentComponent {
2302
2458
  return {
2303
2459
  model: this.model,
2304
2460
  columns: this.columns,
2305
- columnWidth: Math.max(1, this.columnWidth),
2306
2461
  position: this.position,
2307
2462
  expanded: this.expanded,
2308
2463
  even: this.even
@@ -2310,10 +2465,10 @@ class ExpandedTableRowComponent extends BaseDefaultTableContentComponent {
2310
2465
  }
2311
2466
  }
2312
2467
  ExpandedTableRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ExpandedTableRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2313
- ExpandedTableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ExpandedTableRowComponent, selector: "sfc-expanded-table-row", inputs: { expanded: "expanded", row: "row", content: "content" }, host: { properties: { "class.expanded": "this.expanded" } }, queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], usesInheritance: true, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content\" (click)=\"expanded = !expanded\">\r\n <sfc-template-content [referenceContent]=\"row\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Row\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n <div class=\"expanded\">\r\n <sfc-template-content [referenceContent]=\"content\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Content\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n</div>", styles: [":host{width:100%;cursor:pointer;-webkit-user-select:none;user-select:none}:host .expanded{max-height:0;overflow:hidden}:host.expanded .expanded{max-height:3000px}\n"], dependencies: [{ kind: "component", type: i1$1.TemplateContentComponent, selector: "sfc-template-content", inputs: ["contextData", "referenceContent", "templateType", "templatesContent", "defaultContent"] }] });
2468
+ ExpandedTableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ExpandedTableRowComponent, selector: "sfc-expanded-table-row", inputs: { expanded: "expanded", row: "row", content: "content" }, host: { properties: { "class.expanded": "this.expanded" } }, queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], usesInheritance: true, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content\" (click)=\"expanded = !expanded\">\r\n <sfc-template-content [referenceContent]=\"row\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Row\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n <div class=\"expanded\">\r\n <sfc-template-content [referenceContent]=\"content\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Content\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n</div>", styles: [":host{display:block;width:100%;cursor:pointer;-webkit-user-select:none;user-select:none;margin-top:1em}:host .expanded{max-height:0;overflow:hidden}:host.expanded .expanded{max-height:3000px}\n"], dependencies: [{ kind: "component", type: i3.TemplateContentComponent, selector: "sfc-template-content", inputs: ["contextData", "referenceContent", "templateType", "templatesContent", "defaultContent"] }] });
2314
2469
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ExpandedTableRowComponent, decorators: [{
2315
2470
  type: Component,
2316
- args: [{ selector: 'sfc-expanded-table-row', template: "<div class=\"container\">\r\n <div class=\"content\" (click)=\"expanded = !expanded\">\r\n <sfc-template-content [referenceContent]=\"row\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Row\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n <div class=\"expanded\">\r\n <sfc-template-content [referenceContent]=\"content\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Content\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n</div>", styles: [":host{width:100%;cursor:pointer;-webkit-user-select:none;user-select:none}:host .expanded{max-height:0;overflow:hidden}:host.expanded .expanded{max-height:3000px}\n"] }]
2471
+ args: [{ selector: 'sfc-expanded-table-row', template: "<div class=\"container\">\r\n <div class=\"content\" (click)=\"expanded = !expanded\">\r\n <sfc-template-content [referenceContent]=\"row\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Row\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n <div class=\"expanded\">\r\n <sfc-template-content [referenceContent]=\"content\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Content\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n</div>", styles: [":host{display:block;width:100%;cursor:pointer;-webkit-user-select:none;user-select:none;margin-top:1em}:host .expanded{max-height:0;overflow:hidden}:host.expanded .expanded{max-height:3000px}\n"] }]
2317
2472
  }], propDecorators: { expanded: [{
2318
2473
  type: Input
2319
2474
  }, {
@@ -3841,14 +3996,14 @@ class CarouselComponent {
3841
3996
  };
3842
3997
  }
3843
3998
  }
3844
- CarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CarouselComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.ResizeService }, { token: CarouselService }, { token: CarouselNavigationService }, { token: CarouselAutoplayService }, { token: CarouselLazyLoadService }, { token: CarouselAnimateService }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
3999
+ CarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CarouselComponent, deps: [{ token: i0.ElementRef }, { token: i3.ResizeService }, { token: CarouselService }, { token: CarouselNavigationService }, { token: CarouselAutoplayService }, { token: CarouselLazyLoadService }, { token: CarouselAnimateService }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
3845
4000
  CarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CarouselComponent, selector: "sfc-carousel", inputs: { options: "options" }, outputs: { translated: "translated", initialized: "initialized", changing: "changing", changed: "changed" }, host: { listeners: { "document:visibilitychange": "onVisibilityChange()" }, properties: { "class.rtl": "this.rtl" } }, providers: [
3846
4001
  CarouselNavigationService,
3847
4002
  CarouselAutoplayService,
3848
4003
  CarouselService,
3849
4004
  CarouselAnimateService,
3850
4005
  CarouselLazyLoadService
3851
- ], queries: [{ propertyName: "slides", predicate: CarouselSlideDirective }], ngImport: i0, template: "<div class=\"container\" (mouseover)=\"pause()\" (mouseleave)=\"play()\">\r\n <div *ngIf=\"carouselLoaded\" class=\"stage\">\r\n <sfc-carousel-stage [stageModel]=\"stageModel\" [slidesModel]=\"slidesModel\"></sfc-carousel-stage>\r\n </div>\r\n <ng-container *ngIf=\"slides.toArray().length\">\r\n <div class=\"navigation\" [class.disabled]=\"navigationModel.disabled\">\r\n <div class=\"action previous\" [class.disabled]=\"navigationModel.previous.disabled\" (click)=\"previous()\">\r\n {{navigationModel.previous.label}}\r\n </div>\r\n <div class=\"action next\" [class.disabled]=\"navigationModel.next.disabled\" (click)=\"next()\">\r\n {{navigationModel.next.label}}\r\n </div>\r\n </div>\r\n <div class=\"dots\" [class.disabled]=\"navigationDotsModel.disabled\">\r\n <div *ngFor=\"let dot of navigationDotsModel?.dots\" class=\"dot\" [class.active]=\"dot.active\"\r\n (click)=\"moveByDot(dot.id)\">\r\n <span></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>", styles: [":host .container{display:block;width:100%;-webkit-tap-highlight-color:transparent;position:relative;z-index:1}:host .container .stage{position:relative;overflow:hidden;transform:translateZ(0)}:host .container .dots{text-align:center;-webkit-tap-highlight-color:transparent}:host .container .dots.disabled{display:none}:host .container .dots .dot{display:inline-block;zoom:1;cursor:pointer;-webkit-user-select:none;user-select:none}:host .container .dots .dot span{width:10px;height:10px;margin:5px 7px;display:block;-webkit-backface-visibility:visible;backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}:host .container .dots .dot span,:host-context(.sfc-default-theme) :host .container .dots .dot span{background:#d8d7d7}:host-context(.sfc-dark-theme) :host .container .dots .dot span{background:#f6f6f6}:host .container .dots .dot.active span,:host-context(.sfc-default-theme) :host .container .dots .dot.active span,:host .container .dots .dot:hover span,:host-context(.sfc-default-theme) :host .container .dots .dot:hover span{background:#656d78}:host-context(.sfc-dark-theme) :host .container .dots .dot.active span,:host-context(.sfc-dark-theme) :host .container .dots .dot:hover span{background:#aab2bd}:host .container .navigation{margin-top:10px;text-align:center;-webkit-tap-highlight-color:transparent}:host .container .navigation .action{font-size:14px;margin:5px;padding:4px 7px;display:inline-block;cursor:pointer;border-radius:3px}:host .container .navigation .action,:host-context(.sfc-default-theme) :host .container .navigation .action{color:#fff}:host-context(.sfc-dark-theme) :host .container .navigation .action{color:#545e61}:host .container .navigation .action,:host-context(.sfc-default-theme) :host .container .navigation .action{background:#d8d7d7}:host-context(.sfc-dark-theme) :host .container .navigation .action{background:#f6f6f6}:host .container .navigation .action:hover{text-decoration:none}:host .container .navigation .action:hover,:host-context(.sfc-default-theme) :host .container .navigation .action:hover{background:rgba(0,0,0,.1019607843)}:host-context(.sfc-dark-theme) :host .container .navigation .action:hover{background:#d8d7d7}:host .container .navigation .action.previous,:host .container .navigation .action.next{cursor:pointer;-webkit-user-select:none;user-select:none}:host .container .navigation .action.disabled{opacity:.5;cursor:default}:host .container .navigation.disabled{display:none}:host .container .navigation.disabled+.dots{margin-top:10px}:host.rtl .container{direction:rtl}\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: "component", type: CarouselStageComponent, selector: "sfc-carousel-stage", inputs: ["stageModel", "slidesModel"] }] });
4006
+ ], queries: [{ propertyName: "slides", predicate: CarouselSlideDirective }], ngImport: i0, template: "<div class=\"container\" (mouseover)=\"pause()\" (mouseleave)=\"play()\">\r\n <div *ngIf=\"carouselLoaded\" class=\"stage\">\r\n <sfc-carousel-stage [stageModel]=\"stageModel\" [slidesModel]=\"slidesModel\"></sfc-carousel-stage>\r\n </div>\r\n <ng-container *ngIf=\"slides.toArray().length\">\r\n <div class=\"navigation\" [class.disabled]=\"navigationModel.disabled\">\r\n <div class=\"action previous\" [class.disabled]=\"navigationModel.previous.disabled\" (click)=\"previous()\">\r\n {{navigationModel.previous.label}}\r\n </div>\r\n <div class=\"action next\" [class.disabled]=\"navigationModel.next.disabled\" (click)=\"next()\">\r\n {{navigationModel.next.label}}\r\n </div>\r\n </div>\r\n <div class=\"dots\" [class.disabled]=\"navigationDotsModel.disabled\">\r\n <div *ngFor=\"let dot of navigationDotsModel?.dots\" class=\"dot\" [class.active]=\"dot.active\"\r\n (click)=\"moveByDot(dot.id)\">\r\n <span></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>", styles: [":host .container{display:block;width:100%;-webkit-tap-highlight-color:transparent;position:relative;z-index:1}:host .container .stage{position:relative;overflow:hidden;transform:translateZ(0)}:host .container .dots{text-align:center;-webkit-tap-highlight-color:transparent}:host .container .dots.disabled{display:none}:host .container .dots .dot{display:inline-block;zoom:1;cursor:pointer;-webkit-user-select:none;user-select:none}:host .container .dots .dot span{width:10px;height:10px;margin:5px 7px;transition:background .5s ease;display:block;-webkit-backface-visibility:visible;backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}:host .container .dots .dot span,:host-context(.sfc-default-theme) :host .container .dots .dot span{background:#d8d7d7}:host-context(.sfc-dark-theme) :host .container .dots .dot span{background:#f6f6f6}:host .container .dots .dot.active span,:host .container .dots .dot:hover span{transition:background .5s ease}:host .container .dots .dot.active span,:host-context(.sfc-default-theme) :host .container .dots .dot.active span,:host .container .dots .dot:hover span,:host-context(.sfc-default-theme) :host .container .dots .dot:hover span{background:#656d78}:host-context(.sfc-dark-theme) :host .container .dots .dot.active span,:host-context(.sfc-dark-theme) :host .container .dots .dot:hover span{background:#aab2bd}:host .container .navigation{margin-top:10px;text-align:center;-webkit-tap-highlight-color:transparent}:host .container .navigation .action{transition:color .5s ease;font-size:14px;margin:5px;padding:4px 7px;transition:background .5s ease;display:inline-block;cursor:pointer;border-radius:3px}:host .container .navigation .action,:host-context(.sfc-default-theme) :host .container .navigation .action{color:#fff}:host-context(.sfc-dark-theme) :host .container .navigation .action{color:#545e61}:host .container .navigation .action,:host-context(.sfc-default-theme) :host .container .navigation .action{background:#d8d7d7}:host-context(.sfc-dark-theme) :host .container .navigation .action{background:#f6f6f6}:host .container .navigation .action:hover{transition:background .5s ease;text-decoration:none}:host .container .navigation .action:hover,:host-context(.sfc-default-theme) :host .container .navigation .action:hover{background:rgba(0,0,0,.1019607843)}:host-context(.sfc-dark-theme) :host .container .navigation .action:hover{background:#d8d7d7}:host .container .navigation .action.previous,:host .container .navigation .action.next{cursor:pointer;-webkit-user-select:none;user-select:none}:host .container .navigation .action.disabled{opacity:.5;cursor:default}:host .container .navigation.disabled{display:none}:host .container .navigation.disabled+.dots{margin-top:10px}:host.rtl .container{direction:rtl}\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: "component", type: CarouselStageComponent, selector: "sfc-carousel-stage", inputs: ["stageModel", "slidesModel"] }] });
3852
4007
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CarouselComponent, decorators: [{
3853
4008
  type: Component,
3854
4009
  args: [{ selector: 'sfc-carousel', providers: [
@@ -3857,8 +4012,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
3857
4012
  CarouselService,
3858
4013
  CarouselAnimateService,
3859
4014
  CarouselLazyLoadService
3860
- ], template: "<div class=\"container\" (mouseover)=\"pause()\" (mouseleave)=\"play()\">\r\n <div *ngIf=\"carouselLoaded\" class=\"stage\">\r\n <sfc-carousel-stage [stageModel]=\"stageModel\" [slidesModel]=\"slidesModel\"></sfc-carousel-stage>\r\n </div>\r\n <ng-container *ngIf=\"slides.toArray().length\">\r\n <div class=\"navigation\" [class.disabled]=\"navigationModel.disabled\">\r\n <div class=\"action previous\" [class.disabled]=\"navigationModel.previous.disabled\" (click)=\"previous()\">\r\n {{navigationModel.previous.label}}\r\n </div>\r\n <div class=\"action next\" [class.disabled]=\"navigationModel.next.disabled\" (click)=\"next()\">\r\n {{navigationModel.next.label}}\r\n </div>\r\n </div>\r\n <div class=\"dots\" [class.disabled]=\"navigationDotsModel.disabled\">\r\n <div *ngFor=\"let dot of navigationDotsModel?.dots\" class=\"dot\" [class.active]=\"dot.active\"\r\n (click)=\"moveByDot(dot.id)\">\r\n <span></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>", styles: [":host .container{display:block;width:100%;-webkit-tap-highlight-color:transparent;position:relative;z-index:1}:host .container .stage{position:relative;overflow:hidden;transform:translateZ(0)}:host .container .dots{text-align:center;-webkit-tap-highlight-color:transparent}:host .container .dots.disabled{display:none}:host .container .dots .dot{display:inline-block;zoom:1;cursor:pointer;-webkit-user-select:none;user-select:none}:host .container .dots .dot span{width:10px;height:10px;margin:5px 7px;display:block;-webkit-backface-visibility:visible;backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}:host .container .dots .dot span,:host-context(.sfc-default-theme) :host .container .dots .dot span{background:#d8d7d7}:host-context(.sfc-dark-theme) :host .container .dots .dot span{background:#f6f6f6}:host .container .dots .dot.active span,:host-context(.sfc-default-theme) :host .container .dots .dot.active span,:host .container .dots .dot:hover span,:host-context(.sfc-default-theme) :host .container .dots .dot:hover span{background:#656d78}:host-context(.sfc-dark-theme) :host .container .dots .dot.active span,:host-context(.sfc-dark-theme) :host .container .dots .dot:hover span{background:#aab2bd}:host .container .navigation{margin-top:10px;text-align:center;-webkit-tap-highlight-color:transparent}:host .container .navigation .action{font-size:14px;margin:5px;padding:4px 7px;display:inline-block;cursor:pointer;border-radius:3px}:host .container .navigation .action,:host-context(.sfc-default-theme) :host .container .navigation .action{color:#fff}:host-context(.sfc-dark-theme) :host .container .navigation .action{color:#545e61}:host .container .navigation .action,:host-context(.sfc-default-theme) :host .container .navigation .action{background:#d8d7d7}:host-context(.sfc-dark-theme) :host .container .navigation .action{background:#f6f6f6}:host .container .navigation .action:hover{text-decoration:none}:host .container .navigation .action:hover,:host-context(.sfc-default-theme) :host .container .navigation .action:hover{background:rgba(0,0,0,.1019607843)}:host-context(.sfc-dark-theme) :host .container .navigation .action:hover{background:#d8d7d7}:host .container .navigation .action.previous,:host .container .navigation .action.next{cursor:pointer;-webkit-user-select:none;user-select:none}:host .container .navigation .action.disabled{opacity:.5;cursor:default}:host .container .navigation.disabled{display:none}:host .container .navigation.disabled+.dots{margin-top:10px}:host.rtl .container{direction:rtl}\n"] }]
3861
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$1.ResizeService }, { type: CarouselService }, { type: CarouselNavigationService }, { type: CarouselAutoplayService }, { type: CarouselLazyLoadService }, { type: CarouselAnimateService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
4015
+ ], template: "<div class=\"container\" (mouseover)=\"pause()\" (mouseleave)=\"play()\">\r\n <div *ngIf=\"carouselLoaded\" class=\"stage\">\r\n <sfc-carousel-stage [stageModel]=\"stageModel\" [slidesModel]=\"slidesModel\"></sfc-carousel-stage>\r\n </div>\r\n <ng-container *ngIf=\"slides.toArray().length\">\r\n <div class=\"navigation\" [class.disabled]=\"navigationModel.disabled\">\r\n <div class=\"action previous\" [class.disabled]=\"navigationModel.previous.disabled\" (click)=\"previous()\">\r\n {{navigationModel.previous.label}}\r\n </div>\r\n <div class=\"action next\" [class.disabled]=\"navigationModel.next.disabled\" (click)=\"next()\">\r\n {{navigationModel.next.label}}\r\n </div>\r\n </div>\r\n <div class=\"dots\" [class.disabled]=\"navigationDotsModel.disabled\">\r\n <div *ngFor=\"let dot of navigationDotsModel?.dots\" class=\"dot\" [class.active]=\"dot.active\"\r\n (click)=\"moveByDot(dot.id)\">\r\n <span></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>", styles: [":host .container{display:block;width:100%;-webkit-tap-highlight-color:transparent;position:relative;z-index:1}:host .container .stage{position:relative;overflow:hidden;transform:translateZ(0)}:host .container .dots{text-align:center;-webkit-tap-highlight-color:transparent}:host .container .dots.disabled{display:none}:host .container .dots .dot{display:inline-block;zoom:1;cursor:pointer;-webkit-user-select:none;user-select:none}:host .container .dots .dot span{width:10px;height:10px;margin:5px 7px;transition:background .5s ease;display:block;-webkit-backface-visibility:visible;backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}:host .container .dots .dot span,:host-context(.sfc-default-theme) :host .container .dots .dot span{background:#d8d7d7}:host-context(.sfc-dark-theme) :host .container .dots .dot span{background:#f6f6f6}:host .container .dots .dot.active span,:host .container .dots .dot:hover span{transition:background .5s ease}:host .container .dots .dot.active span,:host-context(.sfc-default-theme) :host .container .dots .dot.active span,:host .container .dots .dot:hover span,:host-context(.sfc-default-theme) :host .container .dots .dot:hover span{background:#656d78}:host-context(.sfc-dark-theme) :host .container .dots .dot.active span,:host-context(.sfc-dark-theme) :host .container .dots .dot:hover span{background:#aab2bd}:host .container .navigation{margin-top:10px;text-align:center;-webkit-tap-highlight-color:transparent}:host .container .navigation .action{transition:color .5s ease;font-size:14px;margin:5px;padding:4px 7px;transition:background .5s ease;display:inline-block;cursor:pointer;border-radius:3px}:host .container .navigation .action,:host-context(.sfc-default-theme) :host .container .navigation .action{color:#fff}:host-context(.sfc-dark-theme) :host .container .navigation .action{color:#545e61}:host .container .navigation .action,:host-context(.sfc-default-theme) :host .container .navigation .action{background:#d8d7d7}:host-context(.sfc-dark-theme) :host .container .navigation .action{background:#f6f6f6}:host .container .navigation .action:hover{transition:background .5s ease;text-decoration:none}:host .container .navigation .action:hover,:host-context(.sfc-default-theme) :host .container .navigation .action:hover{background:rgba(0,0,0,.1019607843)}:host-context(.sfc-dark-theme) :host .container .navigation .action:hover{background:#d8d7d7}:host .container .navigation .action.previous,:host .container .navigation .action.next{cursor:pointer;-webkit-user-select:none;user-select:none}:host .container .navigation .action.disabled{opacity:.5;cursor:default}:host .container .navigation.disabled{display:none}:host .container .navigation.disabled+.dots{margin-top:10px}:host.rtl .container{direction:rtl}\n"] }]
4016
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i3.ResizeService }, { type: CarouselService }, { type: CarouselNavigationService }, { type: CarouselAutoplayService }, { type: CarouselLazyLoadService }, { type: CarouselAnimateService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
3862
4017
  type: Inject,
3863
4018
  args: [DOCUMENT]
3864
4019
  }] }]; }, propDecorators: { options: [{
@@ -3933,6 +4088,7 @@ NgxSfcComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
3933
4088
  DefaultTableColumnComponent,
3934
4089
  SelectableTableColumnComponent,
3935
4090
  ColumnsToggleComponent,
4091
+ SortingColumnComponent,
3936
4092
  DefaultTableRowComponent,
3937
4093
  ExpandedTableRowComponent,
3938
4094
  DefaultTableCardComponent,
@@ -3956,7 +4112,6 @@ NgxSfcComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
3956
4112
  StarsComponent,
3957
4113
  // Avatar
3958
4114
  AvatarComponent,
3959
- AvatarBadgeComponent,
3960
4115
  // Progress
3961
4116
  ProgressLineComponent,
3962
4117
  ProgressSemiCircleComponent,
@@ -4030,6 +4185,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
4030
4185
  DefaultTableColumnComponent,
4031
4186
  SelectableTableColumnComponent,
4032
4187
  ColumnsToggleComponent,
4188
+ SortingColumnComponent,
4033
4189
  DefaultTableRowComponent,
4034
4190
  ExpandedTableRowComponent,
4035
4191
  DefaultTableCardComponent,
@@ -4058,7 +4214,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
4058
4214
  StarsComponent,
4059
4215
  // Avatar
4060
4216
  AvatarComponent,
4061
- AvatarBadgeComponent,
4062
4217
  // Progress
4063
4218
  ProgressLineComponent,
4064
4219
  ProgressSemiCircleComponent,
@@ -4091,6 +4246,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
4091
4246
  * Generated bundle index. Do not edit.
4092
4247
  */
4093
4248
 
4094
- export { AvatarBadgeComponent, AvatarBadgePosition, AvatarComponent, CarouselComponent, CarouselSlideDirective, ChartComponent, ChartThemeService, ColumnsToggleComponent, DefaultTableCardComponent, DefaultTableColumnComponent, DefaultTableRowComponent, DropdownMenuComponent, ExpandedTableRowComponent, ExpandedTableRowTemplate, NavigationMenuComponent, NgxSfcComponentsModule, NotificationComponent, NotificationTemplate, NotificationType, ProgressCircleComponent, ProgressLineComponent, ProgressSemiCircleComponent, SelectableTableColumnComponent, SideMenuComponent, SideMenuItemType, SliderComponent, SliderType, StarsComponent, TabLabelIconComponent, TabLabelIconSliderComponent, TabLabelLineComponent, TabLabelLineSliderComponent, TableComponent, TableDataType, TableTemplate, TabsComponent, TabsTemplate, TagsComponent, TimelineComponent, TimelineItemPosition, getProgressColorDefaultFunc, getProgressColorDynamicallyFunc };
4249
+ export { AvatarBadgePosition, AvatarComponent, CarouselComponent, CarouselSlideDirective, ChartComponent, ChartThemeService, ColumnsToggleComponent, DefaultTableCardComponent, DefaultTableColumnComponent, DefaultTableRowComponent, DropdownMenuComponent, ExpandedTableRowComponent, ExpandedTableRowTemplate, NavigationMenuComponent, NgxSfcComponentsModule, NotificationComponent, NotificationTemplate, NotificationType, ProgressCircleComponent, ProgressLineComponent, ProgressSemiCircleComponent, SelectableTableColumnComponent, SideMenuComponent, SideMenuItemType, SliderComponent, SliderType, StarsComponent, TabLabelIconComponent, TabLabelIconSliderComponent, TabLabelLineComponent, TabLabelLineSliderComponent, TableColumnType, TableComponent, TableDataType, TableSelectService, TableTemplate, TabsComponent, TabsTemplate, TagsComponent, TimelineComponent, TimelineItemPosition, getProgressColorDefaultFunc, getProgressColorDynamicallyFunc };
4095
4250
  //# sourceMappingURL=ngx-sfc-components.mjs.map
4096
4251
  //# sourceMappingURL=ngx-sfc-components.mjs.map