ngx-sfc-common 0.0.2 → 0.0.3

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 (94) hide show
  1. package/README.md +191 -7
  2. package/_ngx-sfc-common.styles.scss +53 -14
  3. package/esm2020/lib/components/button/button.component.mjs +4 -4
  4. package/esm2020/lib/components/checkmark/checkmark.component.mjs +4 -4
  5. package/esm2020/lib/components/close/close.component.mjs +11 -0
  6. package/esm2020/lib/components/delimeter/delimeter.component.mjs +4 -4
  7. package/esm2020/lib/components/dots/dots.component.mjs +4 -4
  8. package/esm2020/lib/components/hamburger/hamburger.component.mjs +3 -3
  9. package/esm2020/lib/components/index.mjs +7 -1
  10. package/esm2020/lib/components/loader/bounce/bounce-loader.component.mjs +3 -3
  11. package/esm2020/lib/components/loader/circle/circle-loader.component.mjs +3 -3
  12. package/esm2020/lib/components/loader/loader-base.component.mjs +3 -3
  13. package/esm2020/lib/components/loader/service/loader.service.mjs +3 -3
  14. package/esm2020/lib/components/modal/directive/modal-open-on-click.directive.mjs +3 -3
  15. package/esm2020/lib/components/modal/footer/default/default-modal-footer.component.mjs +3 -3
  16. package/esm2020/lib/components/modal/header/default/default-modal-header.component.mjs +7 -6
  17. package/esm2020/lib/components/modal/modal.component.mjs +8 -21
  18. package/esm2020/lib/components/modal/service/modal.service.mjs +3 -3
  19. package/esm2020/lib/components/pagination/models/pagination-view.model.mjs +2 -0
  20. package/esm2020/lib/components/pagination/pagination.component.mjs +100 -0
  21. package/esm2020/lib/components/pagination/pagination.constants.mjs +6 -0
  22. package/esm2020/lib/components/pagination/service/pagination.event.mjs +2 -0
  23. package/esm2020/lib/components/pagination/service/pagination.service.mjs +47 -0
  24. package/esm2020/lib/components/sorting/service/sorting.event.mjs +2 -0
  25. package/esm2020/lib/components/sorting/service/sorting.service.mjs +21 -0
  26. package/esm2020/lib/components/sorting/sorting.component.mjs +70 -0
  27. package/esm2020/lib/components/sorting/sorting.constants.mjs +5 -0
  28. package/esm2020/lib/components/sorting/sorting.model.mjs +2 -0
  29. package/esm2020/lib/components/template-content/template-content.component.mjs +31 -0
  30. package/esm2020/lib/components/toggle-switcher/toggle-switcher.component.mjs +4 -4
  31. package/esm2020/lib/components/tooltip/tooltip.component.mjs +4 -4
  32. package/esm2020/lib/constants/common.constants.mjs +2 -1
  33. package/esm2020/lib/constants/ui.constants.mjs +6 -3
  34. package/esm2020/lib/directives/click-outside/click-outside.directive.mjs +3 -3
  35. package/esm2020/lib/directives/component-size/component-size.directive.mjs +3 -3
  36. package/esm2020/lib/directives/destroy-parent/destroy-parent.directive.mjs +27 -0
  37. package/esm2020/lib/directives/index.mjs +2 -1
  38. package/esm2020/lib/directives/mouse-down/mouse-down.directive.mjs +3 -3
  39. package/esm2020/lib/directives/show-hide-element/show-hide-element.directive.mjs +3 -3
  40. package/esm2020/lib/directives/template-reference/template-reference.directive.mjs +3 -3
  41. package/esm2020/lib/directives/throw-element-on-hover/throw-element-on-hover.directive.mjs +3 -3
  42. package/esm2020/lib/enums/direction.enum.mjs +9 -0
  43. package/esm2020/lib/enums/index.mjs +8 -2
  44. package/esm2020/lib/enums/media.enum.mjs +10 -0
  45. package/esm2020/lib/enums/position.enum.mjs +12 -0
  46. package/esm2020/lib/enums/size.enum.mjs +11 -0
  47. package/esm2020/lib/enums/sorting-direction.enum.mjs +9 -0
  48. package/esm2020/lib/enums/theme.enum.mjs +9 -0
  49. package/esm2020/lib/enums/ui.enum.mjs +27 -0
  50. package/esm2020/lib/ngx-sfc-common.module.mjs +47 -39
  51. package/esm2020/lib/services/document-ref.service.mjs +6 -5
  52. package/esm2020/lib/services/resize.service.mjs +3 -3
  53. package/esm2020/lib/services/window-ref.service.mjs +3 -3
  54. package/esm2020/lib/utils/collections.utils.mjs +2 -2
  55. package/esm2020/lib/utils/common.utils.mjs +10 -2
  56. package/esm2020/lib/utils/index.mjs +3 -3
  57. package/esm2020/lib/utils/ui.utils.mjs +35 -1
  58. package/fesm2015/ngx-sfc-common.mjs +551 -206
  59. package/fesm2015/ngx-sfc-common.mjs.map +1 -1
  60. package/fesm2020/ngx-sfc-common.mjs +550 -205
  61. package/fesm2020/ngx-sfc-common.mjs.map +1 -1
  62. package/lib/components/close/close.component.d.ts +5 -0
  63. package/lib/components/index.d.ts +9 -0
  64. package/lib/components/modal/modal.component.d.ts +3 -4
  65. package/lib/components/pagination/models/pagination-view.model.d.ts +12 -0
  66. package/lib/components/pagination/pagination.component.d.ts +29 -0
  67. package/lib/components/pagination/pagination.constants.d.ts +5 -0
  68. package/lib/components/pagination/service/pagination.event.d.ts +6 -0
  69. package/lib/components/pagination/service/pagination.service.d.ts +25 -0
  70. package/lib/components/sorting/service/sorting.event.d.ts +5 -0
  71. package/lib/components/sorting/service/sorting.service.d.ts +9 -0
  72. package/lib/components/sorting/sorting.component.d.ts +21 -0
  73. package/lib/components/sorting/sorting.constants.d.ts +4 -0
  74. package/lib/components/sorting/sorting.model.d.ts +11 -0
  75. package/lib/components/template-content/template-content.component.d.ts +14 -0
  76. package/lib/constants/common.constants.d.ts +1 -0
  77. package/lib/constants/ui.constants.d.ts +5 -2
  78. package/lib/directives/destroy-parent/destroy-parent.directive.d.ts +10 -0
  79. package/lib/directives/index.d.ts +1 -0
  80. package/lib/enums/direction.enum.d.ts +7 -0
  81. package/lib/enums/index.d.ts +7 -1
  82. package/lib/enums/media.enum.d.ts +8 -0
  83. package/lib/enums/position.enum.d.ts +10 -0
  84. package/lib/enums/size.enum.d.ts +9 -0
  85. package/lib/enums/sorting-direction.enum.d.ts +7 -0
  86. package/lib/enums/theme.enum.d.ts +7 -0
  87. package/lib/enums/ui.enum.d.ts +24 -0
  88. package/lib/ngx-sfc-common.module.d.ts +21 -16
  89. package/lib/utils/common.utils.d.ts +6 -0
  90. package/lib/utils/index.d.ts +2 -2
  91. package/lib/utils/ui.utils.d.ts +21 -0
  92. package/package.json +14 -17
  93. package/esm2020/lib/enums/common.enums.mjs +0 -69
  94. package/lib/enums/common.enums.d.ts +0 -61
@@ -3,10 +3,97 @@ import { InjectionToken, Injectable, PLATFORM_ID, EventEmitter, Directive, Injec
3
3
  import * as i1$1 from '@angular/common';
4
4
  import { isPlatformBrowser, CommonModule } from '@angular/common';
5
5
  import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
6
- import { Subject, fromEvent, Observable, startWith, BehaviorSubject, filter, distinctUntilChanged, map, EMPTY } from 'rxjs';
6
+ import { Subject, fromEvent, Observable, startWith, BehaviorSubject, filter, distinctUntilChanged, map, EMPTY, combineLatest } from 'rxjs';
7
7
  import * as i1 from '@angular/platform-browser';
8
8
  import { trigger, state, style, transition, group, query, animate, animateChild } from '@angular/animations';
9
9
 
10
+ /**
11
+ * Component sizes
12
+ */
13
+ var ComponentSize;
14
+ (function (ComponentSize) {
15
+ ComponentSize["Small"] = "small";
16
+ ComponentSize["Medium"] = "medium";
17
+ ComponentSize["Large"] = "large";
18
+ ComponentSize["Custom"] = "custom";
19
+ })(ComponentSize || (ComponentSize = {}));
20
+
21
+ /**
22
+ * Direction types
23
+ */
24
+ var Direction;
25
+ (function (Direction) {
26
+ Direction["Horizontal"] = "horizontal";
27
+ Direction["Vertical"] = "vertical";
28
+ })(Direction || (Direction = {}));
29
+
30
+ /**
31
+ * CSS Media limits
32
+ */
33
+ var MediaLimits;
34
+ (function (MediaLimits) {
35
+ MediaLimits[MediaLimits["Laptop"] = 1200] = "Laptop";
36
+ MediaLimits[MediaLimits["Tablet"] = 767] = "Tablet";
37
+ MediaLimits[MediaLimits["Phone"] = 430] = "Phone";
38
+ })(MediaLimits || (MediaLimits = {}));
39
+
40
+ /**
41
+ * Position directions
42
+ */
43
+ var Position;
44
+ (function (Position) {
45
+ Position["Top"] = "top";
46
+ Position["Bottom"] = "bottom";
47
+ Position["Left"] = "left";
48
+ Position["Right"] = "right";
49
+ Position["Center"] = "center";
50
+ })(Position || (Position = {}));
51
+
52
+ /**
53
+ * Type of sorting
54
+ */
55
+ var SortingDirection;
56
+ (function (SortingDirection) {
57
+ SortingDirection["Ascending"] = "ascending";
58
+ SortingDirection["Descending"] = "descending";
59
+ })(SortingDirection || (SortingDirection = {}));
60
+
61
+ /**
62
+ * Theme types
63
+ */
64
+ var Theme;
65
+ (function (Theme) {
66
+ Theme["Default"] = "sfc-default-theme";
67
+ Theme["Dark"] = "sfc-dark-theme";
68
+ })(Theme || (Theme = {}));
69
+
70
+ /**
71
+ * UI classes
72
+ */
73
+ var UIClass;
74
+ (function (UIClass) {
75
+ UIClass["Active"] = "active";
76
+ UIClass["Valid"] = "valid";
77
+ UIClass["Invalid"] = "invalid";
78
+ UIClass["Enabled"] = "enabled";
79
+ UIClass["Disabled"] = "disabled";
80
+ UIClass["Selected"] = "selected";
81
+ UIClass["Empty"] = "empty";
82
+ UIClass["Focus"] = "focus";
83
+ UIClass["Open"] = "open";
84
+ UIClass["Loading"] = "loading";
85
+ UIClass["Removed"] = "removed";
86
+ UIClass["Visible"] = "visible";
87
+ UIClass["Hidden"] = "hidden";
88
+ UIClass["Animated"] = "animated";
89
+ UIClass["Expanded"] = "expanded";
90
+ UIClass["Fixed"] = "fixed";
91
+ UIClass["Bordered"] = "bordered";
92
+ UIClass["Even"] = "even";
93
+ UIClass["Pointer"] = "pointer";
94
+ })(UIClass || (UIClass = {}));
95
+ ;
96
+
10
97
  /**
11
98
  * Create a new injection token for injecting the Document into a component.
12
99
  */
@@ -33,9 +120,9 @@ class BrowserDocumentRef extends DocumentRef {
33
120
  return document;
34
121
  }
35
122
  }
36
- BrowserDocumentRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BrowserDocumentRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
37
- BrowserDocumentRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BrowserDocumentRef });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BrowserDocumentRef, decorators: [{
123
+ BrowserDocumentRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BrowserDocumentRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
124
+ BrowserDocumentRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BrowserDocumentRef });
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BrowserDocumentRef, decorators: [{
39
126
  type: Injectable
40
127
  }], ctorParameters: function () { return []; } });
41
128
  /**
@@ -50,7 +137,7 @@ function documentFactory(browserDocumentRef, platformId) {
50
137
  }
51
138
  const doc = {
52
139
  hidden: false,
53
- visibilityState: 'visible'
140
+ visibilityState: UIClass.Visible
54
141
  };
55
142
  return doc;
56
143
  }
@@ -100,9 +187,9 @@ class BrowserWindowRef extends WindowRef {
100
187
  return window;
101
188
  }
102
189
  }
103
- BrowserWindowRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BrowserWindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
104
- BrowserWindowRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BrowserWindowRef });
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BrowserWindowRef, decorators: [{
190
+ BrowserWindowRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BrowserWindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
191
+ BrowserWindowRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BrowserWindowRef });
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BrowserWindowRef, decorators: [{
106
193
  type: Injectable
107
194
  }], ctorParameters: function () { return []; } });
108
195
  /**
@@ -170,9 +257,9 @@ class ResizeService {
170
257
  this.windowWidth = event.target;
171
258
  }
172
259
  }
173
- ResizeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ResizeService, deps: [{ token: i1.EventManager }], target: i0.ɵɵFactoryTarget.Injectable });
174
- ResizeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ResizeService, providedIn: 'root' });
175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ResizeService, decorators: [{
260
+ ResizeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ResizeService, deps: [{ token: i1.EventManager }], target: i0.ɵɵFactoryTarget.Injectable });
261
+ ResizeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ResizeService, providedIn: 'root' });
262
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ResizeService, decorators: [{
176
263
  type: Injectable,
177
264
  args: [{
178
265
  providedIn: 'root'
@@ -224,9 +311,9 @@ class ClickOutsideDirective {
224
311
  return false;
225
312
  }
226
313
  }
227
- ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
228
- ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: ClickOutsideDirective, selector: "[sfcClickOutside]", inputs: { listening: ["sfcClickOutside", "listening"] }, outputs: { action: "action" }, ngImport: i0 });
229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ClickOutsideDirective, decorators: [{
314
+ ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
315
+ ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: ClickOutsideDirective, selector: "[sfcClickOutside]", inputs: { listening: ["sfcClickOutside", "listening"] }, outputs: { action: "action" }, ngImport: i0 });
316
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ClickOutsideDirective, decorators: [{
230
317
  type: Directive,
231
318
  args: [{
232
319
  selector: '[sfcClickOutside]'
@@ -247,7 +334,8 @@ class CommonConstants {
247
334
  }
248
335
  CommonConstants.NOT_FOUND_INDEX = -1;
249
336
  CommonConstants.EMPTY_STRING = '';
250
- CommonConstants.MOUSE_BUTTON_LEFT = 0;
337
+ CommonConstants.MOUSE_BUTTON_LEFT = 0;
338
+ CommonConstants.FULL_PERCENTAGE = 100;
251
339
 
252
340
  class DateTimeConstants {
253
341
  }
@@ -265,13 +353,16 @@ UIConstants.CSS_DEGREES = 'deg';
265
353
  UIConstants.CSS_EM = 'em';
266
354
  UIConstants.CSS_VISIBILITY_VISIBLE = 'visible';
267
355
  UIConstants.CSS_VISIBILITY_HIDDEN = 'hidden';
268
- UIConstants.DEFAULT_THEME = 'sfc-default-theme';
269
- UIConstants.DARK_THEME = 'sfc-dark-theme';
270
356
  UIConstants.CSS_WIDTH = 'width';
271
357
  UIConstants.CSS_LEFT = 'left';
358
+ UIConstants.CSS_RIGHT = 'right';
359
+ UIConstants.CSS_START = 'start';
360
+ UIConstants.CSS_END = 'end';
361
+ UIConstants.CSS_CENTER = 'center';
272
362
  UIConstants.CSS_CLASS_FIXED = 'fixed';
273
363
  UIConstants.CSS_CLASS_BACKGROUND = 'background';
274
- UIConstants.CSS_CLASS_TOP = 'top';
364
+ UIConstants.CSS_CLASS_TOP = 'top';
365
+ UIConstants.RGB_OPACITY_PLACEHOLDER = '{opacity}';
275
366
 
276
367
  class ShowHideElementDirective {
277
368
  constructor(el) {
@@ -298,9 +389,9 @@ class ShowHideElementDirective {
298
389
  linear`;
299
390
  }
300
391
  }
301
- ShowHideElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ShowHideElementDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
302
- ShowHideElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: ShowHideElementDirective, selector: "[sfcShowHideElement]", inputs: { showHideElement: ["sfcShowHideElement", "showHideElement"], delay: "delay" }, ngImport: i0 });
303
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ShowHideElementDirective, decorators: [{
392
+ ShowHideElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ShowHideElementDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
393
+ ShowHideElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: ShowHideElementDirective, selector: "[sfcShowHideElement]", inputs: { showHideElement: ["sfcShowHideElement", "showHideElement"], delay: "delay" }, ngImport: i0 });
394
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ShowHideElementDirective, decorators: [{
304
395
  type: Directive,
305
396
  args: [{
306
397
  selector: '[sfcShowHideElement]'
@@ -373,7 +464,7 @@ function removePropertyFromObject(obj, property) {
373
464
  * @returns Merged object
374
465
  */
375
466
  function mergeDeep(target, ...sources) {
376
- if (!isDefined(sources))
467
+ if (!sources.length)
377
468
  return target;
378
469
  const source = sources.shift();
379
470
  if (isObject(target) && isObject(source)) {
@@ -395,7 +486,15 @@ function mergeDeep(target, ...sources) {
395
486
  * @param name KeyOf property
396
487
  * @returns Type's property name
397
488
  */
398
- const nameof = (name) => name;
489
+ const nameof = (name) => name;
490
+ /**
491
+ * Determines if the input is a Number or something that can be coerced to a Number
492
+ * @param - The input to be tested
493
+ * @returns - An indication if the input is a Number or can be coerced to a Number
494
+ */
495
+ function isNumeric(number) {
496
+ return !isNaN(parseFloat(number));
497
+ }
399
498
 
400
499
  /**
401
500
  * Return true if string has value(not empty string)
@@ -726,76 +825,41 @@ function removeClasses(element, ...classNames) {
726
825
  if (isDefined(element)) {
727
826
  classNames.forEach((className) => element.classList.remove(className));
728
827
  }
729
- }
730
-
731
- /**
732
- * Component sizes
733
- */
734
- var ComponentSize;
735
- (function (ComponentSize) {
736
- ComponentSize["Small"] = "small";
737
- ComponentSize["Medium"] = "medium";
738
- ComponentSize["Large"] = "large";
739
- ComponentSize["Custom"] = "custom";
740
- })(ComponentSize || (ComponentSize = {}));
741
- /**
742
- * Type of sorting
743
- */
744
- var SortingDirection;
745
- (function (SortingDirection) {
746
- SortingDirection["Ascending"] = "ascending";
747
- SortingDirection["Descending"] = "descending";
748
- })(SortingDirection || (SortingDirection = {}));
749
- /**
750
- * UI classes
751
- */
752
- var UIClass;
753
- (function (UIClass) {
754
- UIClass["Active"] = "active";
755
- UIClass["Valid"] = "valid";
756
- UIClass["Invalid"] = "invalid";
757
- UIClass["Enabled"] = "enabled";
758
- UIClass["Disabled"] = "disabled";
759
- UIClass["Selected"] = "selected";
760
- UIClass["Empty"] = "empty";
761
- UIClass["Focus"] = "focus";
762
- UIClass["Open"] = "open";
763
- UIClass["Loading"] = "loading";
764
- UIClass["Removed"] = "removed";
765
- UIClass["Visible"] = "visible";
766
- UIClass["Hidden"] = "hidden";
767
- UIClass["Animated"] = "animated";
768
- UIClass["Expanded"] = "expanded";
769
- UIClass["Fixed"] = "fixed";
770
- })(UIClass || (UIClass = {}));
771
- ;
828
+ }
772
829
  /**
773
- * Position directions
830
+ * Convert RGB color to HEX
831
+ * @param r Red
832
+ * @param g Green
833
+ * @param b Blue
834
+ * @returns HEX value
774
835
  */
775
- var Position;
776
- (function (Position) {
777
- Position["Top"] = "top";
778
- Position["Bottom"] = "bottom";
779
- Position["Left"] = "left";
780
- Position["Right"] = "right";
781
- })(Position || (Position = {}));
836
+ function rgbToHex(r, g, b) {
837
+ return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
838
+ }
782
839
  /**
783
- * CSS Media limits
840
+ * Convert HEX to RGB value
841
+ * @param hex HEX value
842
+ * @returns RGB value
784
843
  */
785
- var MediaLimits;
786
- (function (MediaLimits) {
787
- MediaLimits[MediaLimits["Laptop"] = 1200] = "Laptop";
788
- MediaLimits[MediaLimits["Tablet"] = 767] = "Tablet";
789
- MediaLimits[MediaLimits["Phone"] = 430] = "Phone";
790
- })(MediaLimits || (MediaLimits = {}));
844
+ function hexToRgb(hex) {
845
+ var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
846
+ if (result) {
847
+ var r = parseInt(result[1], 16);
848
+ var g = parseInt(result[2], 16);
849
+ var b = parseInt(result[3], 16);
850
+ return `rgb(${r}, ${g}, ${b})`;
851
+ }
852
+ return null;
853
+ }
791
854
  /**
792
- * Direction types
855
+ * Set opacity for RGB value
856
+ * @param rgb Rgb value with {opacity} placeholder
857
+ * @param opacity Opacity value
858
+ * @returns RGB value with relevant opacity
793
859
  */
794
- var Direction;
795
- (function (Direction) {
796
- Direction["Horizontal"] = "horizontal";
797
- Direction["Vertical"] = "vertical";
798
- })(Direction || (Direction = {}));
860
+ function replaceRgbOpacity(rgb, opacity) {
861
+ return rgb.replace(UIConstants.RGB_OPACITY_PLACEHOLDER, opacity.toString());
862
+ }
799
863
 
800
864
  /**
801
865
  * Return true if collection not empty
@@ -933,7 +997,7 @@ function sortByPath(collection, path, direction) {
933
997
  i++;
934
998
  }
935
999
  return direction == SortingDirection.Ascending
936
- ? a > b ? 1 : -1
1000
+ ? a >= b ? 1 : -1
937
1001
  : a > b ? -1 : 1;
938
1002
  });
939
1003
  return collection;
@@ -1051,9 +1115,9 @@ class ThrowElementOnHoverDirective {
1051
1115
  this.style.transform = value ? `translateY(${getCssLikeValue(value)})` : null;
1052
1116
  }
1053
1117
  }
1054
- ThrowElementOnHoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ThrowElementOnHoverDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1055
- ThrowElementOnHoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: ThrowElementOnHoverDirective, selector: "[sfcThrowElementOnHover]", inputs: { throwValue: ["sfcThrowElementOnHover", "throwValue"] }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, ngImport: i0 });
1056
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ThrowElementOnHoverDirective, decorators: [{
1118
+ ThrowElementOnHoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ThrowElementOnHoverDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1119
+ ThrowElementOnHoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: ThrowElementOnHoverDirective, selector: "[sfcThrowElementOnHover]", inputs: { throwValue: ["sfcThrowElementOnHover", "throwValue"] }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, ngImport: i0 });
1120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ThrowElementOnHoverDirective, decorators: [{
1057
1121
  type: Directive,
1058
1122
  args: [{
1059
1123
  selector: '[sfcThrowElementOnHover]'
@@ -1075,9 +1139,9 @@ class TemplateReferenceDirective {
1075
1139
  this.templateName = CommonConstants.EMPTY_STRING;
1076
1140
  }
1077
1141
  }
1078
- TemplateReferenceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TemplateReferenceDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1079
- TemplateReferenceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: TemplateReferenceDirective, selector: "[sfcTemplateReference]", inputs: { templateName: ["sfcTemplateReference", "templateName"], data: "data" }, ngImport: i0 });
1080
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TemplateReferenceDirective, decorators: [{
1142
+ TemplateReferenceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: TemplateReferenceDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1143
+ TemplateReferenceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: TemplateReferenceDirective, selector: "[sfcTemplateReference]", inputs: { templateName: ["sfcTemplateReference", "templateName"], data: "data" }, ngImport: i0 });
1144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: TemplateReferenceDirective, decorators: [{
1081
1145
  type: Directive,
1082
1146
  args: [{
1083
1147
  selector: '[sfcTemplateReference]'
@@ -1106,9 +1170,9 @@ class MouseDownDirective {
1106
1170
  }
1107
1171
  }
1108
1172
  }
1109
- MouseDownDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MouseDownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1110
- MouseDownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: MouseDownDirective, selector: "[sfcMouseDown]", inputs: { button: "button" }, outputs: { action: "sfcMouseDown" }, host: { listeners: { "mousedown": "onMouseDown($event)" } }, ngImport: i0 });
1111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: MouseDownDirective, decorators: [{
1173
+ MouseDownDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MouseDownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1174
+ MouseDownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: MouseDownDirective, selector: "[sfcMouseDown]", inputs: { button: "button" }, outputs: { action: "sfcMouseDown" }, host: { listeners: { "mousedown": "onMouseDown($event)" } }, ngImport: i0 });
1175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MouseDownDirective, decorators: [{
1112
1176
  type: Directive,
1113
1177
  args: [{
1114
1178
  selector: '[sfcMouseDown]'
@@ -1150,9 +1214,9 @@ class ComponentSizeDirective {
1150
1214
  }
1151
1215
  }
1152
1216
  }
1153
- ComponentSizeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ComponentSizeDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1154
- ComponentSizeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: ComponentSizeDirective, selector: "[sfcComponentSize]", inputs: { size: ["sfcComponentSize", "size"], customSize: "customSize" }, ngImport: i0 });
1155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ComponentSizeDirective, decorators: [{
1217
+ ComponentSizeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ComponentSizeDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1218
+ ComponentSizeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: ComponentSizeDirective, selector: "[sfcComponentSize]", inputs: { size: ["sfcComponentSize", "size"], customSize: "customSize" }, ngImport: i0 });
1219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ComponentSizeDirective, decorators: [{
1156
1220
  type: Directive,
1157
1221
  args: [{
1158
1222
  selector: '[sfcComponentSize]'
@@ -1164,6 +1228,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
1164
1228
  type: Input
1165
1229
  }] } });
1166
1230
 
1231
+ class DestroyParentDirective {
1232
+ constructor(el) {
1233
+ this.el = el;
1234
+ this.delay = 0;
1235
+ }
1236
+ set destroyParent(value) {
1237
+ if (value) {
1238
+ setTimeout(() => { var _a; return (_a = this.el.nativeElement.parentElement) === null || _a === void 0 ? void 0 : _a.remove(); }, this.delay);
1239
+ }
1240
+ }
1241
+ }
1242
+ DestroyParentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: DestroyParentDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1243
+ DestroyParentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: DestroyParentDirective, selector: "[sfcDestroyParent]", inputs: { destroyParent: ["sfcDestroyParent", "destroyParent"], delay: "delay" }, ngImport: i0 });
1244
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: DestroyParentDirective, decorators: [{
1245
+ type: Directive,
1246
+ args: [{
1247
+ selector: '[sfcDestroyParent]'
1248
+ }]
1249
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { destroyParent: [{
1250
+ type: Input,
1251
+ args: ['sfcDestroyParent']
1252
+ }], delay: [{
1253
+ type: Input
1254
+ }] } });
1255
+
1167
1256
  var ButtonType;
1168
1257
  (function (ButtonType) {
1169
1258
  ButtonType["Bordered"] = "bordered";
@@ -1188,11 +1277,11 @@ class ButtonComponent {
1188
1277
  return classes;
1189
1278
  }
1190
1279
  }
1191
- ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1192
- ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: ButtonComponent, selector: "sfc-button", inputs: { text: "text", iconBefore: "iconBefore", iconAfter: "iconAfter", disabled: "disabled", types: "types" }, ngImport: i0, template: "<a class=\"button\" [ngClass]=\"classes\">\r\n <i *ngIf=\"iconBefore\" class=\"icon before\" [ngClass]=\"iconBefore\"></i>\r\n <span class=\"text\">{{text}}</span>\r\n <i *ngIf=\"iconAfter\" class=\"icon after\" [ngClass]=\"iconAfter\"></i>\r\n</a>", styles: [":host-context(.sfc-default-theme) .button.texted:not(:hover):not(.disabled){color:#545e61}:host-context(.sfc-dark-theme) .button.texted:not(:hover):not(.disabled){color:#ccd1d9}.button.bordered{border:solid 2px}:host-context(.sfc-default-theme) .button.bordered:not(:hover):not(.disabled){color:#545e61}:host-context(.sfc-dark-theme) .button.bordered:not(:hover):not(.disabled){color:#ccd1d9}:host-context(.sfc-default-theme) .button.bordered:not(:hover):not(.disabled){border-color:#545e61}:host-context(.sfc-dark-theme) .button.bordered:not(:hover):not(.disabled){border-color:#ccd1d9}.button.filled{color:#fff!important;border-color:#545e61;background:#545e61}.button.filled:hover{color:#fff!important;border-color:#aab2bd;background:#aab2bd}.button.filled.disabled{color:#fff!important;border-color:#bdbdbd;background:#bdbdbd}.button.rounded{border:solid 2px;border-radius:20px;padding:.4em 1.2em}:host-context(.sfc-default-theme) .button.rounded:not(:hover):not(.disabled){color:#545e61}:host-context(.sfc-dark-theme) .button.rounded:not(:hover):not(.disabled){color:#ccd1d9}:host-context(.sfc-default-theme) .button.rounded:not(:hover):not(.disabled){border-color:#545e61}:host-context(.sfc-dark-theme) .button.rounded:not(:hover):not(.disabled){border-color:#ccd1d9}.button.circled{border:solid 2px;width:5em;height:5em;border-radius:50%}:host-context(.sfc-default-theme) .button.circled:not(:hover):not(.disabled){color:#545e61}:host-context(.sfc-dark-theme) .button.circled:not(:hover):not(.disabled){color:#ccd1d9}:host-context(.sfc-default-theme) .button.circled:not(:hover):not(.disabled){border-color:#545e61}:host-context(.sfc-dark-theme) .button.circled:not(:hover):not(.disabled){border-color:#ccd1d9}.button.circled .text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host{display:inline-block;font-size:1em}.button{box-sizing:border-box;display:inline-flex;justify-content:center;flex-wrap:wrap;align-items:center;overflow:hidden;text-align:center;text-decoration:none;white-space:nowrap;font-size:.8em;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .5s ease,border-color .5s ease,background .5s ease}.button:hover{color:#2bbbad;border-color:#2bbbad}.button.disabled{pointer-events:none}:host-context(.sfc-default-theme) .button.disabled{color:#bdbdbd}:host-context(.sfc-dark-theme) .button.disabled{color:#656d78}:host-context(.sfc-default-theme) .button.disabled{border-color:#bdbdbd}:host-context(.sfc-dark-theme) .button.disabled{border-color:#656d78}.button .icon{padding:3px}.button .text{padding:3px;white-space:initial}.button .text:empty{display:none}\n"], directives: [{ type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ButtonComponent, decorators: [{
1280
+ ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1281
+ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: ButtonComponent, selector: "sfc-button", inputs: { text: "text", iconBefore: "iconBefore", iconAfter: "iconAfter", disabled: "disabled", types: "types" }, ngImport: i0, template: "<a class=\"button\" [ngClass]=\"classes\">\r\n <i *ngIf=\"iconBefore\" class=\"icon before\" [ngClass]=\"iconBefore\"></i>\r\n <span class=\"text\">{{text}}</span>\r\n <i *ngIf=\"iconAfter\" class=\"icon after\" [ngClass]=\"iconAfter\"></i>\r\n</a>", styles: [":host-context(.sfc-default-theme) .button.texted:not(:hover):not(.disabled){color:#545e61}:host-context(.sfc-dark-theme) .button.texted:not(:hover):not(.disabled){color:#ccd1d9}.button.bordered{border:solid 2px}:host-context(.sfc-default-theme) .button.bordered:not(:hover):not(.disabled){color:#545e61}:host-context(.sfc-dark-theme) .button.bordered:not(:hover):not(.disabled){color:#ccd1d9}:host-context(.sfc-default-theme) .button.bordered:not(:hover):not(.disabled){border-color:#545e61}:host-context(.sfc-dark-theme) .button.bordered:not(:hover):not(.disabled){border-color:#ccd1d9}.button.filled{color:#fff!important;border-color:#545e61;background:#545e61}.button.filled:hover{color:#fff!important;border-color:#aab2bd;background:#aab2bd}.button.filled.disabled{color:#fff!important;border-color:#bdbdbd;background:#bdbdbd}.button.rounded{border:solid 2px;border-radius:20px;padding:.4em 1.2em}:host-context(.sfc-default-theme) .button.rounded:not(:hover):not(.disabled){color:#545e61}:host-context(.sfc-dark-theme) .button.rounded:not(:hover):not(.disabled){color:#ccd1d9}:host-context(.sfc-default-theme) .button.rounded:not(:hover):not(.disabled){border-color:#545e61}:host-context(.sfc-dark-theme) .button.rounded:not(:hover):not(.disabled){border-color:#ccd1d9}.button.circled{border:solid 2px;width:5em;height:5em;border-radius:50%}:host-context(.sfc-default-theme) .button.circled:not(:hover):not(.disabled){color:#545e61}:host-context(.sfc-dark-theme) .button.circled:not(:hover):not(.disabled){color:#ccd1d9}:host-context(.sfc-default-theme) .button.circled:not(:hover):not(.disabled){border-color:#545e61}:host-context(.sfc-dark-theme) .button.circled:not(:hover):not(.disabled){border-color:#ccd1d9}.button.circled .text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host{display:inline-block;font-size:1em}.button{box-sizing:border-box;display:inline-flex;justify-content:center;flex-wrap:wrap;align-items:center;overflow:hidden;text-align:center;text-decoration:none;white-space:nowrap;font-size:.9em;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .5s ease,border-color .5s ease,background .5s ease}.button:hover{color:#2bbbad;border-color:#2bbbad}.button.disabled{pointer-events:none}:host-context(.sfc-default-theme) .button.disabled{color:#bdbdbd}:host-context(.sfc-dark-theme) .button.disabled{color:#656d78}:host-context(.sfc-default-theme) .button.disabled{border-color:#bdbdbd}:host-context(.sfc-dark-theme) .button.disabled{border-color:#656d78}.button .icon{padding:3px}.button .text{padding:3px;white-space:initial}.button .text:empty{display:none}\n"], directives: [{ type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ButtonComponent, decorators: [{
1194
1283
  type: Component,
1195
- args: [{ selector: 'sfc-button', template: "<a class=\"button\" [ngClass]=\"classes\">\r\n <i *ngIf=\"iconBefore\" class=\"icon before\" [ngClass]=\"iconBefore\"></i>\r\n <span class=\"text\">{{text}}</span>\r\n <i *ngIf=\"iconAfter\" class=\"icon after\" [ngClass]=\"iconAfter\"></i>\r\n</a>", styles: [":host-context(.sfc-default-theme) .button.texted:not(:hover):not(.disabled){color:#545e61}:host-context(.sfc-dark-theme) .button.texted:not(:hover):not(.disabled){color:#ccd1d9}.button.bordered{border:solid 2px}:host-context(.sfc-default-theme) .button.bordered:not(:hover):not(.disabled){color:#545e61}:host-context(.sfc-dark-theme) .button.bordered:not(:hover):not(.disabled){color:#ccd1d9}:host-context(.sfc-default-theme) .button.bordered:not(:hover):not(.disabled){border-color:#545e61}:host-context(.sfc-dark-theme) .button.bordered:not(:hover):not(.disabled){border-color:#ccd1d9}.button.filled{color:#fff!important;border-color:#545e61;background:#545e61}.button.filled:hover{color:#fff!important;border-color:#aab2bd;background:#aab2bd}.button.filled.disabled{color:#fff!important;border-color:#bdbdbd;background:#bdbdbd}.button.rounded{border:solid 2px;border-radius:20px;padding:.4em 1.2em}:host-context(.sfc-default-theme) .button.rounded:not(:hover):not(.disabled){color:#545e61}:host-context(.sfc-dark-theme) .button.rounded:not(:hover):not(.disabled){color:#ccd1d9}:host-context(.sfc-default-theme) .button.rounded:not(:hover):not(.disabled){border-color:#545e61}:host-context(.sfc-dark-theme) .button.rounded:not(:hover):not(.disabled){border-color:#ccd1d9}.button.circled{border:solid 2px;width:5em;height:5em;border-radius:50%}:host-context(.sfc-default-theme) .button.circled:not(:hover):not(.disabled){color:#545e61}:host-context(.sfc-dark-theme) .button.circled:not(:hover):not(.disabled){color:#ccd1d9}:host-context(.sfc-default-theme) .button.circled:not(:hover):not(.disabled){border-color:#545e61}:host-context(.sfc-dark-theme) .button.circled:not(:hover):not(.disabled){border-color:#ccd1d9}.button.circled .text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host{display:inline-block;font-size:1em}.button{box-sizing:border-box;display:inline-flex;justify-content:center;flex-wrap:wrap;align-items:center;overflow:hidden;text-align:center;text-decoration:none;white-space:nowrap;font-size:.8em;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .5s ease,border-color .5s ease,background .5s ease}.button:hover{color:#2bbbad;border-color:#2bbbad}.button.disabled{pointer-events:none}:host-context(.sfc-default-theme) .button.disabled{color:#bdbdbd}:host-context(.sfc-dark-theme) .button.disabled{color:#656d78}:host-context(.sfc-default-theme) .button.disabled{border-color:#bdbdbd}:host-context(.sfc-dark-theme) .button.disabled{border-color:#656d78}.button .icon{padding:3px}.button .text{padding:3px;white-space:initial}.button .text:empty{display:none}\n"] }]
1284
+ args: [{ selector: 'sfc-button', template: "<a class=\"button\" [ngClass]=\"classes\">\r\n <i *ngIf=\"iconBefore\" class=\"icon before\" [ngClass]=\"iconBefore\"></i>\r\n <span class=\"text\">{{text}}</span>\r\n <i *ngIf=\"iconAfter\" class=\"icon after\" [ngClass]=\"iconAfter\"></i>\r\n</a>", styles: [":host-context(.sfc-default-theme) .button.texted:not(:hover):not(.disabled){color:#545e61}:host-context(.sfc-dark-theme) .button.texted:not(:hover):not(.disabled){color:#ccd1d9}.button.bordered{border:solid 2px}:host-context(.sfc-default-theme) .button.bordered:not(:hover):not(.disabled){color:#545e61}:host-context(.sfc-dark-theme) .button.bordered:not(:hover):not(.disabled){color:#ccd1d9}:host-context(.sfc-default-theme) .button.bordered:not(:hover):not(.disabled){border-color:#545e61}:host-context(.sfc-dark-theme) .button.bordered:not(:hover):not(.disabled){border-color:#ccd1d9}.button.filled{color:#fff!important;border-color:#545e61;background:#545e61}.button.filled:hover{color:#fff!important;border-color:#aab2bd;background:#aab2bd}.button.filled.disabled{color:#fff!important;border-color:#bdbdbd;background:#bdbdbd}.button.rounded{border:solid 2px;border-radius:20px;padding:.4em 1.2em}:host-context(.sfc-default-theme) .button.rounded:not(:hover):not(.disabled){color:#545e61}:host-context(.sfc-dark-theme) .button.rounded:not(:hover):not(.disabled){color:#ccd1d9}:host-context(.sfc-default-theme) .button.rounded:not(:hover):not(.disabled){border-color:#545e61}:host-context(.sfc-dark-theme) .button.rounded:not(:hover):not(.disabled){border-color:#ccd1d9}.button.circled{border:solid 2px;width:5em;height:5em;border-radius:50%}:host-context(.sfc-default-theme) .button.circled:not(:hover):not(.disabled){color:#545e61}:host-context(.sfc-dark-theme) .button.circled:not(:hover):not(.disabled){color:#ccd1d9}:host-context(.sfc-default-theme) .button.circled:not(:hover):not(.disabled){border-color:#545e61}:host-context(.sfc-dark-theme) .button.circled:not(:hover):not(.disabled){border-color:#ccd1d9}.button.circled .text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host{display:inline-block;font-size:1em}.button{box-sizing:border-box;display:inline-flex;justify-content:center;flex-wrap:wrap;align-items:center;overflow:hidden;text-align:center;text-decoration:none;white-space:nowrap;font-size:.9em;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .5s ease,border-color .5s ease,background .5s ease}.button:hover{color:#2bbbad;border-color:#2bbbad}.button.disabled{pointer-events:none}:host-context(.sfc-default-theme) .button.disabled{color:#bdbdbd}:host-context(.sfc-dark-theme) .button.disabled{color:#656d78}:host-context(.sfc-default-theme) .button.disabled{border-color:#bdbdbd}:host-context(.sfc-dark-theme) .button.disabled{border-color:#656d78}.button .icon{padding:3px}.button .text{padding:3px;white-space:initial}.button .text:empty{display:none}\n"] }]
1196
1285
  }], propDecorators: { text: [{
1197
1286
  type: Input
1198
1287
  }], iconBefore: [{
@@ -1240,11 +1329,11 @@ class TooltipComponent {
1240
1329
  (_a = this._resizeSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
1241
1330
  }
1242
1331
  }
1243
- TooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TooltipComponent, deps: [{ token: ResizeService }, { token: WINDOW }], target: i0.ɵɵFactoryTarget.Component });
1244
- TooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: TooltipComponent, selector: "[sfc-tooltip]", inputs: { value: ["sfc-tooltip", "value"], tooltipType: "tooltipType", tooltipPosition: "tooltipPosition", tooltipShow: "tooltipShow" }, host: { listeners: { "click": "click()" }, properties: { "attr.value": "this.value", "attr.type": "this.tooltipType", "attr.position": "this.tooltipPosition", "class.show": "this.tooltipShow" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{position:relative}:host:before,:host:after{position:absolute;left:50%;bottom:calc(100% + 5px);pointer-events:none;transition:.2s;will-change:transform}:host:hover:before,:host.show:before{content:attr(value);padding:.4em .7em;font-size:.8em;font-weight:initial;width:inherit;max-width:18.75em;border-radius:6px;background-color:#545e61;box-shadow:0 0 20.25em #0003;color:#fff;text-align:center;white-space:pre-wrap;overflow:hidden;word-wrap:break-word;z-index:9999}:host:after{content:\"\";border-style:solid;transition-duration:0s;transform:translate(-50%) scaleY(0)}:host[type=hover]:before,:host[type=hover]:after,:host:not(.show):before,:host:not(.show):after{visibility:hidden;opacity:0}:host[type=hover]:hover:before,:host[type=hover]:hover:after,:host.show:before,:host.show:after{visibility:visible;opacity:1}:host[type=hover]:hover:before,:host.show:before{transition-delay:.1s}:host[type=hover]:hover:after,:host.show:after{transition-delay:.3s;transition-duration:.2s;transform:translate(-50%) scaleY(1)}:host[position=top]:before,:host[position=top]:after{left:50%;bottom:calc(100% + 5px)}:host[position=top]:before{transform:translate(-50%,-5px) scale(.5)}:host[position=top]:hover:before,:host[position=top].show:before{transform:translate(-50%,-.25em) scale(1)}:host[position=top]:after{border-width:.25em .25em 0;border-color:#545e61 transparent transparent transparent;transform-origin:top}:host[position=left]:before,:host[position=left]:after{left:auto;right:calc(100% + 5px);bottom:50%}:host[position=left]:before{transform:translate(-.25em,50%) scale(.5)}:host[position=left]:hover:before,:host[position=left].show:before{transform:translate(-.31em,50%) scale(1)}:host[position=left]:after{border-width:.25em 0 .25em .25em;border-color:transparent transparent transparent #545e61;transform-origin:left;transform:translateY(50%) scaleX(0)}:host[position=left]:hover:after,:host[position=left].show:after{transform:translateY(50%) scaleX(1)}:host[position=right]:before,:host[position=right]:after{left:calc(100% + 5px);bottom:50%}:host[position=right]:before{transform:translate(5px,50%) scale(.5)}:host[position=right]:hover:before,:host[position=right].show:before{transform:translate(.31em,50%) scale(1)}:host[position=right]:after{border-width:.25em .25em .25em 0;border-color:transparent #545e61 transparent transparent;transform-origin:right;transform:translateY(50%) scaleX(0)}:host[position=right]:hover:after,:host[position=right].show:after{transform:translateY(50%) scaleX(1)}:host[position=bottom]:before,:host[position=bottom]:after{top:calc(100% + 5px);bottom:auto}:host[position=bottom]:before{transform:translate(-50%,5px) scale(.5)}:host[position=bottom]:hover:before,:host[position=bottom].show:before{transform:translate(-50%,.31em) scale(1)}:host[position=bottom]:after{border-width:0 .25em .25em;border-color:transparent transparent #545e61 transparent;transform-origin:bottom}\n"] });
1245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: TooltipComponent, decorators: [{
1332
+ TooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: TooltipComponent, deps: [{ token: ResizeService }, { token: WINDOW }], target: i0.ɵɵFactoryTarget.Component });
1333
+ TooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: TooltipComponent, selector: "[sfc-tooltip]", inputs: { value: ["sfc-tooltip", "value"], tooltipType: "tooltipType", tooltipPosition: "tooltipPosition", tooltipShow: "tooltipShow" }, host: { listeners: { "click": "click()" }, properties: { "attr.value": "this.value", "attr.type": "this.tooltipType", "attr.position": "this.tooltipPosition", "class.show": "this.tooltipShow" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{position:relative}:host:before,:host:after{position:absolute;left:50%;bottom:calc(100% + 5px);pointer-events:none;transition:.2s;will-change:transform}:host:hover:before,:host.show:before{content:attr(value);padding:.4em .7em;font-size:.8em;font-weight:initial;width:inherit;max-width:18.75em;border-radius:6px;background-color:#545e61;box-shadow:0 0 20.25em #aab2bd;color:#fff;text-align:center;white-space:pre-wrap;overflow:hidden;word-wrap:break-word;z-index:9999}:host:after{content:\"\";border-style:solid;transition-duration:0s;transform:translate(-50%) scaleY(0)}:host[type=hover]:before,:host[type=hover]:after,:host:not(.show):before,:host:not(.show):after{visibility:hidden;opacity:0}:host[type=hover]:hover:before,:host[type=hover]:hover:after,:host.show:before,:host.show:after{visibility:visible;opacity:1}:host[type=hover]:hover:before,:host.show:before{transition-delay:.1s}:host[type=hover]:hover:after,:host.show:after{transition-delay:.3s;transition-duration:.2s;transform:translate(-50%) scaleY(1)}:host[position=top]:before,:host[position=top]:after{left:50%;bottom:calc(100% + 5px)}:host[position=top]:before{transform:translate(-50%,-5px) scale(.5)}:host[position=top]:hover:before,:host[position=top].show:before{transform:translate(-50%,-.25em) scale(1)}:host[position=top]:after{border-width:.25em .25em 0;border-color:#545e61 transparent transparent transparent;transform-origin:top}:host[position=left]:before,:host[position=left]:after{left:auto;right:calc(100% + 5px);bottom:50%}:host[position=left]:before{transform:translate(-.25em,50%) scale(.5)}:host[position=left]:hover:before,:host[position=left].show:before{transform:translate(-.31em,50%) scale(1)}:host[position=left]:after{border-width:.25em 0 .25em .25em;border-color:transparent transparent transparent #545e61;transform-origin:left;transform:translateY(50%) scaleX(0)}:host[position=left]:hover:after,:host[position=left].show:after{transform:translateY(50%) scaleX(1)}:host[position=right]:before,:host[position=right]:after{left:calc(100% + 5px);bottom:50%}:host[position=right]:before{transform:translate(5px,50%) scale(.5)}:host[position=right]:hover:before,:host[position=right].show:before{transform:translate(.31em,50%) scale(1)}:host[position=right]:after{border-width:.25em .25em .25em 0;border-color:transparent #545e61 transparent transparent;transform-origin:right;transform:translateY(50%) scaleX(0)}:host[position=right]:hover:after,:host[position=right].show:after{transform:translateY(50%) scaleX(1)}:host[position=bottom]:before,:host[position=bottom]:after{top:calc(100% + 5px);bottom:auto}:host[position=bottom]:before{transform:translate(-50%,5px) scale(.5)}:host[position=bottom]:hover:before,:host[position=bottom].show:before{transform:translate(-50%,.31em) scale(1)}:host[position=bottom]:after{border-width:0 .25em .25em;border-color:transparent transparent #545e61 transparent;transform-origin:bottom}\n"] });
1334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: TooltipComponent, decorators: [{
1246
1335
  type: Component,
1247
- args: [{ selector: '[sfc-tooltip]', template: `<ng-content></ng-content>`, styles: [":host{position:relative}:host:before,:host:after{position:absolute;left:50%;bottom:calc(100% + 5px);pointer-events:none;transition:.2s;will-change:transform}:host:hover:before,:host.show:before{content:attr(value);padding:.4em .7em;font-size:.8em;font-weight:initial;width:inherit;max-width:18.75em;border-radius:6px;background-color:#545e61;box-shadow:0 0 20.25em #0003;color:#fff;text-align:center;white-space:pre-wrap;overflow:hidden;word-wrap:break-word;z-index:9999}:host:after{content:\"\";border-style:solid;transition-duration:0s;transform:translate(-50%) scaleY(0)}:host[type=hover]:before,:host[type=hover]:after,:host:not(.show):before,:host:not(.show):after{visibility:hidden;opacity:0}:host[type=hover]:hover:before,:host[type=hover]:hover:after,:host.show:before,:host.show:after{visibility:visible;opacity:1}:host[type=hover]:hover:before,:host.show:before{transition-delay:.1s}:host[type=hover]:hover:after,:host.show:after{transition-delay:.3s;transition-duration:.2s;transform:translate(-50%) scaleY(1)}:host[position=top]:before,:host[position=top]:after{left:50%;bottom:calc(100% + 5px)}:host[position=top]:before{transform:translate(-50%,-5px) scale(.5)}:host[position=top]:hover:before,:host[position=top].show:before{transform:translate(-50%,-.25em) scale(1)}:host[position=top]:after{border-width:.25em .25em 0;border-color:#545e61 transparent transparent transparent;transform-origin:top}:host[position=left]:before,:host[position=left]:after{left:auto;right:calc(100% + 5px);bottom:50%}:host[position=left]:before{transform:translate(-.25em,50%) scale(.5)}:host[position=left]:hover:before,:host[position=left].show:before{transform:translate(-.31em,50%) scale(1)}:host[position=left]:after{border-width:.25em 0 .25em .25em;border-color:transparent transparent transparent #545e61;transform-origin:left;transform:translateY(50%) scaleX(0)}:host[position=left]:hover:after,:host[position=left].show:after{transform:translateY(50%) scaleX(1)}:host[position=right]:before,:host[position=right]:after{left:calc(100% + 5px);bottom:50%}:host[position=right]:before{transform:translate(5px,50%) scale(.5)}:host[position=right]:hover:before,:host[position=right].show:before{transform:translate(.31em,50%) scale(1)}:host[position=right]:after{border-width:.25em .25em .25em 0;border-color:transparent #545e61 transparent transparent;transform-origin:right;transform:translateY(50%) scaleX(0)}:host[position=right]:hover:after,:host[position=right].show:after{transform:translateY(50%) scaleX(1)}:host[position=bottom]:before,:host[position=bottom]:after{top:calc(100% + 5px);bottom:auto}:host[position=bottom]:before{transform:translate(-50%,5px) scale(.5)}:host[position=bottom]:hover:before,:host[position=bottom].show:before{transform:translate(-50%,.31em) scale(1)}:host[position=bottom]:after{border-width:0 .25em .25em;border-color:transparent transparent #545e61 transparent;transform-origin:bottom}\n"] }]
1336
+ args: [{ selector: '[sfc-tooltip]', template: `<ng-content></ng-content>`, styles: [":host{position:relative}:host:before,:host:after{position:absolute;left:50%;bottom:calc(100% + 5px);pointer-events:none;transition:.2s;will-change:transform}:host:hover:before,:host.show:before{content:attr(value);padding:.4em .7em;font-size:.8em;font-weight:initial;width:inherit;max-width:18.75em;border-radius:6px;background-color:#545e61;box-shadow:0 0 20.25em #aab2bd;color:#fff;text-align:center;white-space:pre-wrap;overflow:hidden;word-wrap:break-word;z-index:9999}:host:after{content:\"\";border-style:solid;transition-duration:0s;transform:translate(-50%) scaleY(0)}:host[type=hover]:before,:host[type=hover]:after,:host:not(.show):before,:host:not(.show):after{visibility:hidden;opacity:0}:host[type=hover]:hover:before,:host[type=hover]:hover:after,:host.show:before,:host.show:after{visibility:visible;opacity:1}:host[type=hover]:hover:before,:host.show:before{transition-delay:.1s}:host[type=hover]:hover:after,:host.show:after{transition-delay:.3s;transition-duration:.2s;transform:translate(-50%) scaleY(1)}:host[position=top]:before,:host[position=top]:after{left:50%;bottom:calc(100% + 5px)}:host[position=top]:before{transform:translate(-50%,-5px) scale(.5)}:host[position=top]:hover:before,:host[position=top].show:before{transform:translate(-50%,-.25em) scale(1)}:host[position=top]:after{border-width:.25em .25em 0;border-color:#545e61 transparent transparent transparent;transform-origin:top}:host[position=left]:before,:host[position=left]:after{left:auto;right:calc(100% + 5px);bottom:50%}:host[position=left]:before{transform:translate(-.25em,50%) scale(.5)}:host[position=left]:hover:before,:host[position=left].show:before{transform:translate(-.31em,50%) scale(1)}:host[position=left]:after{border-width:.25em 0 .25em .25em;border-color:transparent transparent transparent #545e61;transform-origin:left;transform:translateY(50%) scaleX(0)}:host[position=left]:hover:after,:host[position=left].show:after{transform:translateY(50%) scaleX(1)}:host[position=right]:before,:host[position=right]:after{left:calc(100% + 5px);bottom:50%}:host[position=right]:before{transform:translate(5px,50%) scale(.5)}:host[position=right]:hover:before,:host[position=right].show:before{transform:translate(.31em,50%) scale(1)}:host[position=right]:after{border-width:.25em .25em .25em 0;border-color:transparent #545e61 transparent transparent;transform-origin:right;transform:translateY(50%) scaleX(0)}:host[position=right]:hover:after,:host[position=right].show:after{transform:translateY(50%) scaleX(1)}:host[position=bottom]:before,:host[position=bottom]:after{top:calc(100% + 5px);bottom:auto}:host[position=bottom]:before{transform:translate(-50%,5px) scale(.5)}:host[position=bottom]:hover:before,:host[position=bottom].show:before{transform:translate(-50%,.31em) scale(1)}:host[position=bottom]:after{border-width:0 .25em .25em;border-color:transparent transparent #545e61 transparent;transform-origin:bottom}\n"] }]
1248
1337
  }], ctorParameters: function () {
1249
1338
  return [{ type: ResizeService }, { type: Window, decorators: [{
1250
1339
  type: Inject,
@@ -1278,11 +1367,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
1278
1367
 
1279
1368
  class DelimeterComponent {
1280
1369
  }
1281
- DelimeterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DelimeterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1282
- DelimeterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: DelimeterComponent, selector: "sfc-delimeter", ngImport: i0, template: ``, isInline: true, styles: [":host{width:100%;height:.07em}:host :host-context(.sfc-default-theme){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 :host-context(.sfc-dark-theme){background:linear-gradient(to right,rgba(255,255,255,0) 0%,rgba(255,255,255,.4) 17%,rgba(255,255,255,.4) 83%,rgba(255,255,255,0) 100%)}\n"] });
1283
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DelimeterComponent, decorators: [{
1370
+ DelimeterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: DelimeterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1371
+ DelimeterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: DelimeterComponent, selector: "sfc-delimeter", ngImport: i0, template: ``, isInline: true, styles: [":host{display:inline-block;width:100%;height:1px;margin:.3em 0}:host-context(.sfc-default-theme) :host{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{background:linear-gradient(to right,rgba(255,255,255,0) 0%,rgba(255,255,255,.4) 17%,rgba(255,255,255,.4) 83%,rgba(255,255,255,0) 100%)}\n"] });
1372
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: DelimeterComponent, decorators: [{
1284
1373
  type: Component,
1285
- args: [{ selector: 'sfc-delimeter', template: ``, styles: [":host{width:100%;height:.07em}:host :host-context(.sfc-default-theme){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 :host-context(.sfc-dark-theme){background:linear-gradient(to right,rgba(255,255,255,0) 0%,rgba(255,255,255,.4) 17%,rgba(255,255,255,.4) 83%,rgba(255,255,255,0) 100%)}\n"] }]
1374
+ args: [{ selector: 'sfc-delimeter', template: ``, styles: [":host{display:inline-block;width:100%;height:1px;margin:.3em 0}:host-context(.sfc-default-theme) :host{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{background:linear-gradient(to right,rgba(255,255,255,0) 0%,rgba(255,255,255,.4) 17%,rgba(255,255,255,.4) 83%,rgba(255,255,255,0) 100%)}\n"] }]
1286
1375
  }] });
1287
1376
 
1288
1377
  class LoaderConstants {
@@ -1353,9 +1442,9 @@ class LoaderService {
1353
1442
  return null;
1354
1443
  }
1355
1444
  }
1356
- LoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1357
- LoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LoaderService, providedIn: 'root' });
1358
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LoaderService, decorators: [{
1445
+ LoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: LoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1446
+ LoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: LoaderService, providedIn: 'root' });
1447
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: LoaderService, decorators: [{
1359
1448
  type: Injectable,
1360
1449
  args: [{
1361
1450
  providedIn: 'root'
@@ -1395,9 +1484,9 @@ class LoaderBaseComponent {
1395
1484
  return classes;
1396
1485
  }
1397
1486
  }
1398
- LoaderBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LoaderBaseComponent, deps: [{ token: LoaderService }], target: i0.ɵɵFactoryTarget.Directive });
1399
- LoaderBaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: LoaderBaseComponent, inputs: { id: "id", start: "start", background: "background" }, ngImport: i0 });
1400
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LoaderBaseComponent, decorators: [{
1487
+ LoaderBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: LoaderBaseComponent, deps: [{ token: LoaderService }], target: i0.ɵɵFactoryTarget.Directive });
1488
+ LoaderBaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: LoaderBaseComponent, inputs: { id: "id", start: "start", background: "background" }, ngImport: i0 });
1489
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: LoaderBaseComponent, decorators: [{
1401
1490
  type: Directive
1402
1491
  }], ctorParameters: function () { return [{ type: LoaderService }]; }, propDecorators: { id: [{
1403
1492
  type: Input
@@ -1409,9 +1498,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
1409
1498
 
1410
1499
  class BounceLoaderComponent extends LoaderBaseComponent {
1411
1500
  }
1412
- BounceLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BounceLoaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1413
- BounceLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: BounceLoaderComponent, selector: "sfc-bounce-loader", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"show$ | async\" class=\"preloader\" [ngClass]=\"preLoaderClasses\">\r\n <div class=\"spinner\">\r\n <div class=\"bounce\"></div>\r\n <div class=\"bounce\"></div>\r\n <div class=\"bounce\"></div>\r\n </div>\r\n</div>", styles: [".preloader{position:relative;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center}.preloader.background{opacity:.7}:host-context(.sfc-default-theme) .preloader.background{background-color:#fff}:host-context(.sfc-dark-theme) .preloader.background{background-color:#656d78}.preloader.global{z-index:9999;position:fixed}.preloader.local{z-index:9998;position:absolute}\n", ".spinner{text-align:center}.spinner .bounce{border-radius:100%;display:inline-block;animation:bounce-delay 1.4s infinite ease-in-out both;width:1em;height:1em}:host-context(.sfc-default-theme) .spinner .bounce{background-color:#545e61}:host-context(.sfc-dark-theme) .spinner .bounce{background-color:#fff}.spinner .bounce:nth-child(1){animation-delay:-.32s}.spinner .bounce:nth-child(2){animation-delay:-.16s}@keyframes bounce-delay{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}\n"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i1$1.AsyncPipe } });
1414
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BounceLoaderComponent, decorators: [{
1501
+ BounceLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BounceLoaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1502
+ BounceLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: BounceLoaderComponent, selector: "sfc-bounce-loader", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"show$ | async\" class=\"preloader\" [ngClass]=\"preLoaderClasses\">\r\n <div class=\"spinner\">\r\n <div class=\"bounce\"></div>\r\n <div class=\"bounce\"></div>\r\n <div class=\"bounce\"></div>\r\n </div>\r\n</div>", styles: [".preloader{position:relative;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center}.preloader.background{opacity:.7}:host-context(.sfc-default-theme) .preloader.background{background-color:#fff}:host-context(.sfc-dark-theme) .preloader.background{background-color:#656d78}.preloader.global{z-index:9999;position:fixed}.preloader.local{z-index:9998;position:absolute}\n", ".spinner{text-align:center}.spinner .bounce{border-radius:100%;display:inline-block;animation:bounce-delay 1.4s infinite ease-in-out both;width:1em;height:1em}:host-context(.sfc-default-theme) .spinner .bounce{background-color:#545e61}:host-context(.sfc-dark-theme) .spinner .bounce{background-color:#fff}.spinner .bounce:nth-child(1){animation-delay:-.32s}.spinner .bounce:nth-child(2){animation-delay:-.16s}@keyframes bounce-delay{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}\n"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i1$1.AsyncPipe } });
1503
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BounceLoaderComponent, decorators: [{
1415
1504
  type: Component,
1416
1505
  args: [{ selector: 'sfc-bounce-loader', template: "<div *ngIf=\"show$ | async\" class=\"preloader\" [ngClass]=\"preLoaderClasses\">\r\n <div class=\"spinner\">\r\n <div class=\"bounce\"></div>\r\n <div class=\"bounce\"></div>\r\n <div class=\"bounce\"></div>\r\n </div>\r\n</div>", styles: [".preloader{position:relative;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center}.preloader.background{opacity:.7}:host-context(.sfc-default-theme) .preloader.background{background-color:#fff}:host-context(.sfc-dark-theme) .preloader.background{background-color:#656d78}.preloader.global{z-index:9999;position:fixed}.preloader.local{z-index:9998;position:absolute}\n", ".spinner{text-align:center}.spinner .bounce{border-radius:100%;display:inline-block;animation:bounce-delay 1.4s infinite ease-in-out both;width:1em;height:1em}:host-context(.sfc-default-theme) .spinner .bounce{background-color:#545e61}:host-context(.sfc-dark-theme) .spinner .bounce{background-color:#fff}.spinner .bounce:nth-child(1){animation-delay:-.32s}.spinner .bounce:nth-child(2){animation-delay:-.16s}@keyframes bounce-delay{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}\n"] }]
1417
1506
  }] });
@@ -1428,9 +1517,9 @@ class CircleLoaderComponent extends LoaderBaseComponent {
1428
1517
  this.type = CircleLoaderType.Default;
1429
1518
  }
1430
1519
  }
1431
- CircleLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CircleLoaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1432
- CircleLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: CircleLoaderComponent, selector: "sfc-circle-loader", inputs: { type: "type" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"show$ | async\" class=\"preloader\" [ngClass]=\"preLoaderClasses\">\r\n <div class=\"circles-container\" [ngClass]=\"type\">\r\n <div class=\"circle1\"></div>\r\n <div class=\"circle2\"></div>\r\n <div class=\"circle3\"></div>\r\n <div class=\"circle4\"></div>\r\n <div class=\"circle5\"></div>\r\n <div class=\"circle6\"></div>\r\n <div class=\"circle7\"></div>\r\n <div class=\"circle8\"></div>\r\n <div class=\"circle9\"></div>\r\n <div class=\"circle10\"></div>\r\n <div class=\"circle11\"></div>\r\n <div class=\"circle12\"></div>\r\n </div>\r\n</div>", styles: [".preloader{position:relative;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center}.preloader.background{opacity:.7}:host-context(.sfc-default-theme) .preloader.background{background-color:#fff}:host-context(.sfc-dark-theme) .preloader.background{background-color:#656d78}.preloader.global{z-index:9999;position:fixed}.preloader.local{z-index:9998;position:absolute}\n", ".circles-container{position:relative;width:2.5em;height:2.5em}.circles-container div{width:100%;height:100%;position:absolute;left:0;top:0}.circles-container div:before{content:\"\";display:block;margin:0 auto;width:15%;height:15%;border-radius:100%;animation:bounce-delay 1.2s infinite ease-in-out both}:host-context(.sfc-default-theme) .circles-container div:before{background-color:#545e61}:host-context(.sfc-dark-theme) .circles-container div:before{background-color:#fff}.circles-container.fading div:before{animation-name:circle-fade-delay}.circles-container .circle2{transform:rotate(30deg)}.circles-container .circle2:before{animation-delay:-1.1s}.circles-container .circle3{transform:rotate(60deg)}.circles-container .circle3:before{animation-delay:-1s}.circles-container .circle4{transform:rotate(90deg)}.circles-container .circle4:before{animation-delay:-.9s}.circles-container .circle5{transform:rotate(120deg)}.circles-container .circle5:before{animation-delay:-.8s}.circles-container .circle6{transform:rotate(150deg)}.circles-container .circle6:before{animation-delay:-.7s}.circles-container .circle7{transform:rotate(180deg)}.circles-container .circle7:before{animation-delay:-.6s}.circles-container .circle8{transform:rotate(210deg)}.circles-container .circle8:before{animation-delay:-.5s}.circles-container .circle9{transform:rotate(240deg)}.circles-container .circle9:before{animation-delay:-.4s}.circles-container .circle10{transform:rotate(270deg)}.circles-container .circle10:before{animation-delay:-.3s}.circles-container .circle11{transform:rotate(300deg)}.circles-container .circle11:before{animation-delay:-.2s}.circles-container .circle12{transform:rotate(330deg)}.circles-container .circle12:before{animation-delay:-.1s}@keyframes bounce-delay{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes circle-fade-delay{0%,39%,to{opacity:0}40%{opacity:1}}\n"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i1$1.AsyncPipe } });
1433
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CircleLoaderComponent, decorators: [{
1520
+ CircleLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CircleLoaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1521
+ CircleLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: CircleLoaderComponent, selector: "sfc-circle-loader", inputs: { type: "type" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"show$ | async\" class=\"preloader\" [ngClass]=\"preLoaderClasses\">\r\n <div class=\"circles-container\" [ngClass]=\"type\">\r\n <div class=\"circle1\"></div>\r\n <div class=\"circle2\"></div>\r\n <div class=\"circle3\"></div>\r\n <div class=\"circle4\"></div>\r\n <div class=\"circle5\"></div>\r\n <div class=\"circle6\"></div>\r\n <div class=\"circle7\"></div>\r\n <div class=\"circle8\"></div>\r\n <div class=\"circle9\"></div>\r\n <div class=\"circle10\"></div>\r\n <div class=\"circle11\"></div>\r\n <div class=\"circle12\"></div>\r\n </div>\r\n</div>", styles: [".preloader{position:relative;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center}.preloader.background{opacity:.7}:host-context(.sfc-default-theme) .preloader.background{background-color:#fff}:host-context(.sfc-dark-theme) .preloader.background{background-color:#656d78}.preloader.global{z-index:9999;position:fixed}.preloader.local{z-index:9998;position:absolute}\n", ".circles-container{position:relative;width:2.5em;height:2.5em}.circles-container div{width:100%;height:100%;position:absolute;left:0;top:0}.circles-container div:before{content:\"\";display:block;margin:0 auto;width:15%;height:15%;border-radius:100%;animation:bounce-delay 1.2s infinite ease-in-out both}:host-context(.sfc-default-theme) .circles-container div:before{background-color:#545e61}:host-context(.sfc-dark-theme) .circles-container div:before{background-color:#fff}.circles-container.fading div:before{animation-name:circle-fade-delay}.circles-container .circle2{transform:rotate(30deg)}.circles-container .circle2:before{animation-delay:-1.1s}.circles-container .circle3{transform:rotate(60deg)}.circles-container .circle3:before{animation-delay:-1s}.circles-container .circle4{transform:rotate(90deg)}.circles-container .circle4:before{animation-delay:-.9s}.circles-container .circle5{transform:rotate(120deg)}.circles-container .circle5:before{animation-delay:-.8s}.circles-container .circle6{transform:rotate(150deg)}.circles-container .circle6:before{animation-delay:-.7s}.circles-container .circle7{transform:rotate(180deg)}.circles-container .circle7:before{animation-delay:-.6s}.circles-container .circle8{transform:rotate(210deg)}.circles-container .circle8:before{animation-delay:-.5s}.circles-container .circle9{transform:rotate(240deg)}.circles-container .circle9:before{animation-delay:-.4s}.circles-container .circle10{transform:rotate(270deg)}.circles-container .circle10:before{animation-delay:-.3s}.circles-container .circle11{transform:rotate(300deg)}.circles-container .circle11:before{animation-delay:-.2s}.circles-container .circle12{transform:rotate(330deg)}.circles-container .circle12:before{animation-delay:-.1s}@keyframes bounce-delay{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes circle-fade-delay{0%,39%,to{opacity:0}40%{opacity:1}}\n"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i1$1.AsyncPipe } });
1522
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CircleLoaderComponent, decorators: [{
1434
1523
  type: Component,
1435
1524
  args: [{ selector: 'sfc-circle-loader', template: "<div *ngIf=\"show$ | async\" class=\"preloader\" [ngClass]=\"preLoaderClasses\">\r\n <div class=\"circles-container\" [ngClass]=\"type\">\r\n <div class=\"circle1\"></div>\r\n <div class=\"circle2\"></div>\r\n <div class=\"circle3\"></div>\r\n <div class=\"circle4\"></div>\r\n <div class=\"circle5\"></div>\r\n <div class=\"circle6\"></div>\r\n <div class=\"circle7\"></div>\r\n <div class=\"circle8\"></div>\r\n <div class=\"circle9\"></div>\r\n <div class=\"circle10\"></div>\r\n <div class=\"circle11\"></div>\r\n <div class=\"circle12\"></div>\r\n </div>\r\n</div>", styles: [".preloader{position:relative;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center}.preloader.background{opacity:.7}:host-context(.sfc-default-theme) .preloader.background{background-color:#fff}:host-context(.sfc-dark-theme) .preloader.background{background-color:#656d78}.preloader.global{z-index:9999;position:fixed}.preloader.local{z-index:9998;position:absolute}\n", ".circles-container{position:relative;width:2.5em;height:2.5em}.circles-container div{width:100%;height:100%;position:absolute;left:0;top:0}.circles-container div:before{content:\"\";display:block;margin:0 auto;width:15%;height:15%;border-radius:100%;animation:bounce-delay 1.2s infinite ease-in-out both}:host-context(.sfc-default-theme) .circles-container div:before{background-color:#545e61}:host-context(.sfc-dark-theme) .circles-container div:before{background-color:#fff}.circles-container.fading div:before{animation-name:circle-fade-delay}.circles-container .circle2{transform:rotate(30deg)}.circles-container .circle2:before{animation-delay:-1.1s}.circles-container .circle3{transform:rotate(60deg)}.circles-container .circle3:before{animation-delay:-1s}.circles-container .circle4{transform:rotate(90deg)}.circles-container .circle4:before{animation-delay:-.9s}.circles-container .circle5{transform:rotate(120deg)}.circles-container .circle5:before{animation-delay:-.8s}.circles-container .circle6{transform:rotate(150deg)}.circles-container .circle6:before{animation-delay:-.7s}.circles-container .circle7{transform:rotate(180deg)}.circles-container .circle7:before{animation-delay:-.6s}.circles-container .circle8{transform:rotate(210deg)}.circles-container .circle8:before{animation-delay:-.5s}.circles-container .circle9{transform:rotate(240deg)}.circles-container .circle9:before{animation-delay:-.4s}.circles-container .circle10{transform:rotate(270deg)}.circles-container .circle10:before{animation-delay:-.3s}.circles-container .circle11{transform:rotate(300deg)}.circles-container .circle11:before{animation-delay:-.2s}.circles-container .circle12{transform:rotate(330deg)}.circles-container .circle12:before{animation-delay:-.1s}@keyframes bounce-delay{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes circle-fade-delay{0%,39%,to{opacity:0}40%{opacity:1}}\n"] }]
1436
1525
  }], propDecorators: { type: [{
@@ -1458,15 +1547,52 @@ class ModalService {
1458
1547
  this.subjectOpen.next(options);
1459
1548
  }
1460
1549
  }
1461
- ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1462
- ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalService, providedIn: 'root' });
1463
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalService, decorators: [{
1550
+ ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1551
+ ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ModalService, providedIn: 'root' });
1552
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ModalService, decorators: [{
1464
1553
  type: Injectable,
1465
1554
  args: [{
1466
1555
  providedIn: 'root'
1467
1556
  }]
1468
1557
  }] });
1469
1558
 
1559
+ class TemplateContentComponent {
1560
+ get showDefault() {
1561
+ return !isDefined(this.referenceContent)
1562
+ && !isDefined(this.templateContent);
1563
+ }
1564
+ get templateContent() {
1565
+ var _a;
1566
+ const templateRef = firstOrDefault((_a = this.templatesContent) === null || _a === void 0 ? void 0 : _a.toArray(), t => t.templateName == this.templateType);
1567
+ return (templateRef === null || templateRef === void 0 ? void 0 : templateRef.template) || null;
1568
+ }
1569
+ }
1570
+ TemplateContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: TemplateContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1571
+ TemplateContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: TemplateContentComponent, selector: "sfc-template-content", inputs: { contextData: "contextData", referenceContent: "referenceContent", templateType: "templateType", templatesContent: "templatesContent", defaultContent: "defaultContent" }, ngImport: i0, template: "<ng-container *ngIf=\"referenceContent;else template\">\r\n <ng-container *ngTemplateOutlet=\"referenceContent;context:{$implicit: contextData}\"></ng-container>\r\n</ng-container>\r\n\r\n<ng-template #template>\r\n <ng-container *ngTemplateOutlet=\"templateContent;context:{$implicit: contextData}\">\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-container *ngIf=\"defaultContent && showDefault\">\r\n <ng-container *ngTemplateOutlet=\"defaultContent;context:{$implicit: contextData}\"></ng-container>\r\n</ng-container>", styles: [":host{display:contents}\n"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
1572
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: TemplateContentComponent, decorators: [{
1573
+ type: Component,
1574
+ args: [{ selector: 'sfc-template-content', styles: [':host{ display: contents;}'], template: "<ng-container *ngIf=\"referenceContent;else template\">\r\n <ng-container *ngTemplateOutlet=\"referenceContent;context:{$implicit: contextData}\"></ng-container>\r\n</ng-container>\r\n\r\n<ng-template #template>\r\n <ng-container *ngTemplateOutlet=\"templateContent;context:{$implicit: contextData}\">\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-container *ngIf=\"defaultContent && showDefault\">\r\n <ng-container *ngTemplateOutlet=\"defaultContent;context:{$implicit: contextData}\"></ng-container>\r\n</ng-container>" }]
1575
+ }], propDecorators: { contextData: [{
1576
+ type: Input
1577
+ }], referenceContent: [{
1578
+ type: Input
1579
+ }], templateType: [{
1580
+ type: Input
1581
+ }], templatesContent: [{
1582
+ type: Input
1583
+ }], defaultContent: [{
1584
+ type: Input
1585
+ }] } });
1586
+
1587
+ class CloseComponent {
1588
+ }
1589
+ CloseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CloseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1590
+ CloseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: CloseComponent, selector: "sfc-close", ngImport: i0, template: "<div class=\"container\">\r\n <i class=\"fas fa-times\"></i>\r\n</div>", styles: [":host{color:#545e61;cursor:pointer}:host:hover{color:#2bbbad}\n"] });
1591
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CloseComponent, decorators: [{
1592
+ type: Component,
1593
+ args: [{ selector: 'sfc-close', template: "<div class=\"container\">\r\n <i class=\"fas fa-times\"></i>\r\n</div>", styles: [":host{color:#545e61;cursor:pointer}:host:hover{color:#2bbbad}\n"] }]
1594
+ }] });
1595
+
1470
1596
  class DefaultModalHeaderComponent {
1471
1597
  constructor(modalService) {
1472
1598
  this.modalService = modalService;
@@ -1484,11 +1610,11 @@ class DefaultModalHeaderComponent {
1484
1610
  this.modalService.close();
1485
1611
  }
1486
1612
  }
1487
- DefaultModalHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DefaultModalHeaderComponent, deps: [{ token: ModalService }], target: i0.ɵɵFactoryTarget.Component });
1488
- DefaultModalHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: DefaultModalHeaderComponent, selector: "sfc-default-modal-header", inputs: { model: "model" }, ngImport: i0, template: "<div class=\"container\">\r\n <i *ngIf=\"model?.icon\" class=\"icon\" class=\"{{model?.icon}}\"></i>\r\n <span *ngIf=\"model?.text\" class=\"label\">{{model?.text}}</span>\r\n <span *ngIf=\"model?.showCloseIcon\" class=\"close\" (click)=\"onClose()\">\r\n <i class=\"fa fa-times\"></i>\r\n </span>\r\n</div>", styles: [":host{display:inline-flex;width:100%}:host .container{display:flex;align-items:flex-start;width:100%;justify-content:space-between}:host .container i{font-size:1em}:host .container .icon{padding-right:.7em}:host .container .label{font-size:1.2em;font-weight:700;-webkit-user-select:none;user-select:none;padding:0 .7em}:host .container .close{color:#545e61;cursor:pointer;display:flex;padding-left:.7em}:host .container .close:hover{color:#2bbbad}\n"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1489
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DefaultModalHeaderComponent, decorators: [{
1613
+ DefaultModalHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: DefaultModalHeaderComponent, deps: [{ token: ModalService }], target: i0.ɵɵFactoryTarget.Component });
1614
+ DefaultModalHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: DefaultModalHeaderComponent, selector: "sfc-default-modal-header", inputs: { model: "model" }, ngImport: i0, template: "<div class=\"container\">\r\n <i *ngIf=\"model?.icon\" class=\"icon\" class=\"{{model?.icon}}\"></i>\r\n <span *ngIf=\"model?.text\" class=\"label\">{{model?.text}}</span>\r\n <sfc-close *ngIf=\"model?.showCloseIcon\" (click)=\"onClose()\"></sfc-close>\r\n</div>", styles: [":host{display:inline-flex;width:100%}:host .container{display:flex;align-items:flex-start;width:100%;justify-content:space-between}:host .container i{font-size:1em}:host .container .icon{padding-right:.7em}:host .container .label{font-size:1.2em;font-weight:700;-webkit-user-select:none;user-select:none;padding:0 .7em}:host .container sfc-close{padding-left:.7em}\n"], components: [{ type: CloseComponent, selector: "sfc-close" }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1615
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: DefaultModalHeaderComponent, decorators: [{
1490
1616
  type: Component,
1491
- args: [{ selector: 'sfc-default-modal-header', template: "<div class=\"container\">\r\n <i *ngIf=\"model?.icon\" class=\"icon\" class=\"{{model?.icon}}\"></i>\r\n <span *ngIf=\"model?.text\" class=\"label\">{{model?.text}}</span>\r\n <span *ngIf=\"model?.showCloseIcon\" class=\"close\" (click)=\"onClose()\">\r\n <i class=\"fa fa-times\"></i>\r\n </span>\r\n</div>", styles: [":host{display:inline-flex;width:100%}:host .container{display:flex;align-items:flex-start;width:100%;justify-content:space-between}:host .container i{font-size:1em}:host .container .icon{padding-right:.7em}:host .container .label{font-size:1.2em;font-weight:700;-webkit-user-select:none;user-select:none;padding:0 .7em}:host .container .close{color:#545e61;cursor:pointer;display:flex;padding-left:.7em}:host .container .close:hover{color:#2bbbad}\n"] }]
1617
+ args: [{ selector: 'sfc-default-modal-header', template: "<div class=\"container\">\r\n <i *ngIf=\"model?.icon\" class=\"icon\" class=\"{{model?.icon}}\"></i>\r\n <span *ngIf=\"model?.text\" class=\"label\">{{model?.text}}</span>\r\n <sfc-close *ngIf=\"model?.showCloseIcon\" (click)=\"onClose()\"></sfc-close>\r\n</div>", styles: [":host{display:inline-flex;width:100%}:host .container{display:flex;align-items:flex-start;width:100%;justify-content:space-between}:host .container i{font-size:1em}:host .container .icon{padding-right:.7em}:host .container .label{font-size:1.2em;font-weight:700;-webkit-user-select:none;user-select:none;padding:0 .7em}:host .container sfc-close{padding-left:.7em}\n"] }]
1492
1618
  }], ctorParameters: function () { return [{ type: ModalService }]; }, propDecorators: { model: [{
1493
1619
  type: Input
1494
1620
  }] } });
@@ -1524,9 +1650,9 @@ class DefaultModalFooterComponent {
1524
1650
  this.modalService.close();
1525
1651
  }
1526
1652
  }
1527
- DefaultModalFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DefaultModalFooterComponent, deps: [{ token: ModalService }], target: i0.ɵɵFactoryTarget.Component });
1528
- DefaultModalFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: DefaultModalFooterComponent, selector: "sfc-default-modal-footer", inputs: { model: "model" }, ngImport: i0, template: "<div class=\"container\">\r\n <sfc-button *ngIf=\"model?.applyButton\" [sfcComponentSize] [customSize]=\"BUTTON_CUSTOM_SIZE\" text=\"Ok\"\r\n [types]=\"[ButtonType.Rounded]\" (click)=\"onButtonClick()\">\r\n </sfc-button>\r\n <sfc-button *ngIf=\"model?.cancelButton\" [sfcComponentSize] [customSize]=\"BUTTON_CUSTOM_SIZE\" text=\"Cancel\"\r\n [types]=\"[ButtonType.Rounded]\" (click)=\"onButtonClick(true)\">\r\n </sfc-button>\r\n</div>", styles: [":host{display:inline-flex;width:100%}:host .container{display:flex;justify-content:center;align-items:center;width:100%}:host .container sfc-button:first-child{padding-right:.3em}:host .container sfc-button:nth-child(2){padding-left:.3em}:host .container ::ng-deep sfc-button .button.rounded{width:5em}:host .container ::ng-deep sfc-button .button:not(:hover){color:#545e61!important;border-color:#545e61!important}\n"], components: [{ type: ButtonComponent, selector: "sfc-button", inputs: ["text", "iconBefore", "iconAfter", "disabled", "types"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ComponentSizeDirective, selector: "[sfcComponentSize]", inputs: ["sfcComponentSize", "customSize"] }] });
1529
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DefaultModalFooterComponent, decorators: [{
1653
+ DefaultModalFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: DefaultModalFooterComponent, deps: [{ token: ModalService }], target: i0.ɵɵFactoryTarget.Component });
1654
+ DefaultModalFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: DefaultModalFooterComponent, selector: "sfc-default-modal-footer", inputs: { model: "model" }, ngImport: i0, template: "<div class=\"container\">\r\n <sfc-button *ngIf=\"model?.applyButton\" [sfcComponentSize] [customSize]=\"BUTTON_CUSTOM_SIZE\" text=\"Ok\"\r\n [types]=\"[ButtonType.Rounded]\" (click)=\"onButtonClick()\">\r\n </sfc-button>\r\n <sfc-button *ngIf=\"model?.cancelButton\" [sfcComponentSize] [customSize]=\"BUTTON_CUSTOM_SIZE\" text=\"Cancel\"\r\n [types]=\"[ButtonType.Rounded]\" (click)=\"onButtonClick(true)\">\r\n </sfc-button>\r\n</div>", styles: [":host{display:inline-flex;width:100%}:host .container{display:flex;justify-content:center;align-items:center;width:100%}:host .container sfc-button:first-child{padding-right:.3em}:host .container sfc-button:nth-child(2){padding-left:.3em}:host .container ::ng-deep sfc-button .button.rounded{width:5em}:host .container ::ng-deep sfc-button .button:not(:hover){color:#545e61!important;border-color:#545e61!important}\n"], components: [{ type: ButtonComponent, selector: "sfc-button", inputs: ["text", "iconBefore", "iconAfter", "disabled", "types"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ComponentSizeDirective, selector: "[sfcComponentSize]", inputs: ["sfcComponentSize", "customSize"] }] });
1655
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: DefaultModalFooterComponent, decorators: [{
1530
1656
  type: Component,
1531
1657
  args: [{ selector: 'sfc-default-modal-footer', template: "<div class=\"container\">\r\n <sfc-button *ngIf=\"model?.applyButton\" [sfcComponentSize] [customSize]=\"BUTTON_CUSTOM_SIZE\" text=\"Ok\"\r\n [types]=\"[ButtonType.Rounded]\" (click)=\"onButtonClick()\">\r\n </sfc-button>\r\n <sfc-button *ngIf=\"model?.cancelButton\" [sfcComponentSize] [customSize]=\"BUTTON_CUSTOM_SIZE\" text=\"Cancel\"\r\n [types]=\"[ButtonType.Rounded]\" (click)=\"onButtonClick(true)\">\r\n </sfc-button>\r\n</div>", styles: [":host{display:inline-flex;width:100%}:host .container{display:flex;justify-content:center;align-items:center;width:100%}:host .container sfc-button:first-child{padding-right:.3em}:host .container sfc-button:nth-child(2){padding-left:.3em}:host .container ::ng-deep sfc-button .button.rounded{width:5em}:host .container ::ng-deep sfc-button .button:not(:hover){color:#545e61!important;border-color:#545e61!important}\n"] }]
1532
1658
  }], ctorParameters: function () { return [{ type: ModalService }]; }, propDecorators: { model: [{
@@ -1545,25 +1671,12 @@ class ModalComponent {
1545
1671
  if (this.hideOnEsc)
1546
1672
  this.close();
1547
1673
  }
1548
- getTemplate(template) {
1549
- var _a;
1550
- if (!isDefined(this.templates))
1551
- return null;
1552
- const templateRef = firstOrDefault((_a = this.templates) === null || _a === void 0 ? void 0 : _a.toArray(), t => t.templateName == template);
1553
- return isDefined(templateRef) ? templateRef === null || templateRef === void 0 ? void 0 : templateRef.template : null;
1554
- }
1555
- isShowDefault(template) {
1556
- return !isDefined(this.getTemplate(template))
1557
- && (template == ModalTemplate.Header
1558
- ? !isDefined(this.header)
1559
- : !isDefined(this.footer));
1560
- }
1561
1674
  close() {
1562
1675
  this.modalService.close();
1563
1676
  }
1564
1677
  }
1565
- ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalComponent, deps: [{ token: ModalService }], target: i0.ɵɵFactoryTarget.Component });
1566
- ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: ModalComponent, selector: "sfc-modal", inputs: { body: "body", header: "header", footer: "footer", defaultHeaderModel: "defaultHeaderModel", defaultFooterModel: "defaultFooterModel", hideOnEsc: "hideOnEsc", hideOnClickOutside: "hideOnClickOutside" }, host: { listeners: { "document:keydown.escape": "onEscapeKeyDownHandler()" } }, queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], ngImport: i0, template: "<div class=\"overlay\" [@hideOverlay] (click)=\"hideOnClickOutside && close()\">\r\n <div class=\"content\" [@hideContent] (click)=\"$event.stopPropagation()\">\r\n\r\n <div class=\"header\">\r\n\r\n <ng-container *ngIf=\"header;else headerTemplate\">\r\n <ng-container *ngTemplateOutlet=\"header;\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #headerTemplate>\r\n <ng-container *ngTemplateOutlet=\"getTemplate(ModalTemplate.Header)\">\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"isShowDefault(ModalTemplate.Header)\">\r\n <sfc-default-modal-header [model]=\"defaultHeaderModel\">\r\n </sfc-default-modal-header>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n <div class=\"body\">\r\n\r\n <ng-container *ngIf=\"body;else bodyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"body;\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #bodyTemplate>\r\n <ng-container #bodyTemplate *ngTemplateOutlet=\"getTemplate(ModalTemplate.Body)\">\r\n </ng-container>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n <div class=\"footer\">\r\n\r\n <ng-container *ngIf=\"footer;else footerTemplate\">\r\n <ng-container *ngTemplateOutlet=\"footer;\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #footerTemplate>\r\n <ng-container *ngTemplateOutlet=\"getTemplate(ModalTemplate.Footer)\">\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"isShowDefault(ModalTemplate.Footer)\">\r\n <sfc-default-modal-footer [model]=\"defaultFooterModel\">\r\n </sfc-default-modal-footer>\r\n </ng-container>\r\n\r\n </div>\r\n </div>\r\n</div>", styles: [".overlay{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;background-color:#0009;-webkit-backface-visibility:visible;backface-visibility:visible;animation:expand-overlay .4s cubic-bezier(.55,0,.1,1)}@keyframes expand-overlay{0%{visibility:hidden;opacity:0}}.overlay .content{display:flex;align-items:center;position:relative;padding:.7em;margin:auto;background-color:#f5f7fa;max-width:calc(100% - 3em);max-height:calc(100% - 3em);border-radius:3px;overflow-y:auto;box-shadow:0 .125em .625em #0003;transform:scale(1);flex-direction:column;animation:expand-modal .4s cubic-bezier(.55,0,.1,1)}@keyframes expand-modal{0%{visibility:hidden;opacity:0;transform:scale(1.2)}}.overlay .content>div{width:100%;flex:0 0 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#545e61;flex-direction:row;display:flex;justify-content:center}\n"], components: [{ type: DefaultModalHeaderComponent, selector: "sfc-default-modal-header", inputs: ["model"] }, { type: DefaultModalFooterComponent, selector: "sfc-default-modal-footer", inputs: ["model"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [
1678
+ ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ModalComponent, deps: [{ token: ModalService }], target: i0.ɵɵFactoryTarget.Component });
1679
+ ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: ModalComponent, selector: "sfc-modal", inputs: { body: "body", header: "header", footer: "footer", defaultHeaderModel: "defaultHeaderModel", defaultFooterModel: "defaultFooterModel", hideOnEsc: "hideOnEsc", hideOnClickOutside: "hideOnClickOutside" }, host: { listeners: { "document:keydown.escape": "onEscapeKeyDownHandler()" } }, queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], ngImport: i0, template: "<div class=\"overlay\" [@hideOverlay] (click)=\"hideOnClickOutside && close()\">\r\n <div class=\"content\" [@hideContent] (click)=\"$event.stopPropagation()\">\r\n\r\n <div class=\"header\">\r\n\r\n <sfc-template-content [referenceContent]=\"header\" [templatesContent]=\"templates\"\r\n [templateType]=\"ModalTemplate.Header\" [defaultContent]=\"defaultHeader\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultHeader>\r\n <sfc-default-modal-header [model]=\"defaultHeaderModel\">\r\n </sfc-default-modal-header>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n <div class=\"body\">\r\n\r\n <sfc-template-content [referenceContent]=\"body\" [templatesContent]=\"templates\"\r\n [templateType]=\"ModalTemplate.Body\">\r\n </sfc-template-content>\r\n\r\n </div>\r\n\r\n <div class=\"footer\">\r\n\r\n <sfc-template-content [referenceContent]=\"footer\" [templatesContent]=\"templates\"\r\n [templateType]=\"ModalTemplate.Footer\" [defaultContent]=\"defaultFooter\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultFooter>\r\n <sfc-default-modal-footer [model]=\"defaultFooterModel\">\r\n </sfc-default-modal-footer>\r\n </ng-template>\r\n\r\n </div>\r\n </div>\r\n</div>", styles: [".overlay{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;background-color:#0009;-webkit-backface-visibility:visible;backface-visibility:visible;animation:expand-overlay .4s cubic-bezier(.55,0,.1,1)}@keyframes expand-overlay{0%{visibility:hidden;opacity:0}}.overlay .content{display:flex;align-items:center;position:relative;padding:.7em;margin:auto;background-color:#f5f7fa;max-width:calc(100% - 3em);max-height:calc(100% - 3em);border-radius:3px;overflow-y:auto;box-shadow:0 .125em .625em #656d78;transform:scale(1);flex-direction:column;animation:expand-modal .4s cubic-bezier(.55,0,.1,1)}@keyframes expand-modal{0%{visibility:hidden;opacity:0;transform:scale(1.2)}}.overlay .content>div{width:100%;flex:0 0 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#545e61;flex-direction:row;display:flex;justify-content:center}\n"], components: [{ type: TemplateContentComponent, selector: "sfc-template-content", inputs: ["contextData", "referenceContent", "templateType", "templatesContent", "defaultContent"] }, { type: DefaultModalHeaderComponent, selector: "sfc-default-modal-header", inputs: ["model"] }, { type: DefaultModalFooterComponent, selector: "sfc-default-modal-footer", inputs: ["model"] }], animations: [
1567
1680
  trigger('hideOverlay', [
1568
1681
  state('initial', style({ opacity: 1, visibility: 'visible' })),
1569
1682
  state('void', style({ opacity: 0, visibility: 'hidden' })),
@@ -1585,7 +1698,7 @@ ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
1585
1698
  transition('* => void', animate('400ms cubic-bezier(.55, 0, .1, 1)'))
1586
1699
  ])
1587
1700
  ] });
1588
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalComponent, decorators: [{
1701
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ModalComponent, decorators: [{
1589
1702
  type: Component,
1590
1703
  args: [{ selector: 'sfc-modal', animations: [
1591
1704
  trigger('hideOverlay', [
@@ -1608,7 +1721,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
1608
1721
  state('void', style({ opacity: 0, visibility: 'hidden', transform: 'scale(1.2)' })),
1609
1722
  transition('* => void', animate('400ms cubic-bezier(.55, 0, .1, 1)'))
1610
1723
  ])
1611
- ], template: "<div class=\"overlay\" [@hideOverlay] (click)=\"hideOnClickOutside && close()\">\r\n <div class=\"content\" [@hideContent] (click)=\"$event.stopPropagation()\">\r\n\r\n <div class=\"header\">\r\n\r\n <ng-container *ngIf=\"header;else headerTemplate\">\r\n <ng-container *ngTemplateOutlet=\"header;\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #headerTemplate>\r\n <ng-container *ngTemplateOutlet=\"getTemplate(ModalTemplate.Header)\">\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"isShowDefault(ModalTemplate.Header)\">\r\n <sfc-default-modal-header [model]=\"defaultHeaderModel\">\r\n </sfc-default-modal-header>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n <div class=\"body\">\r\n\r\n <ng-container *ngIf=\"body;else bodyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"body;\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #bodyTemplate>\r\n <ng-container #bodyTemplate *ngTemplateOutlet=\"getTemplate(ModalTemplate.Body)\">\r\n </ng-container>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n <div class=\"footer\">\r\n\r\n <ng-container *ngIf=\"footer;else footerTemplate\">\r\n <ng-container *ngTemplateOutlet=\"footer;\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #footerTemplate>\r\n <ng-container *ngTemplateOutlet=\"getTemplate(ModalTemplate.Footer)\">\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"isShowDefault(ModalTemplate.Footer)\">\r\n <sfc-default-modal-footer [model]=\"defaultFooterModel\">\r\n </sfc-default-modal-footer>\r\n </ng-container>\r\n\r\n </div>\r\n </div>\r\n</div>", styles: [".overlay{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;background-color:#0009;-webkit-backface-visibility:visible;backface-visibility:visible;animation:expand-overlay .4s cubic-bezier(.55,0,.1,1)}@keyframes expand-overlay{0%{visibility:hidden;opacity:0}}.overlay .content{display:flex;align-items:center;position:relative;padding:.7em;margin:auto;background-color:#f5f7fa;max-width:calc(100% - 3em);max-height:calc(100% - 3em);border-radius:3px;overflow-y:auto;box-shadow:0 .125em .625em #0003;transform:scale(1);flex-direction:column;animation:expand-modal .4s cubic-bezier(.55,0,.1,1)}@keyframes expand-modal{0%{visibility:hidden;opacity:0;transform:scale(1.2)}}.overlay .content>div{width:100%;flex:0 0 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#545e61;flex-direction:row;display:flex;justify-content:center}\n"] }]
1724
+ ], template: "<div class=\"overlay\" [@hideOverlay] (click)=\"hideOnClickOutside && close()\">\r\n <div class=\"content\" [@hideContent] (click)=\"$event.stopPropagation()\">\r\n\r\n <div class=\"header\">\r\n\r\n <sfc-template-content [referenceContent]=\"header\" [templatesContent]=\"templates\"\r\n [templateType]=\"ModalTemplate.Header\" [defaultContent]=\"defaultHeader\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultHeader>\r\n <sfc-default-modal-header [model]=\"defaultHeaderModel\">\r\n </sfc-default-modal-header>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n <div class=\"body\">\r\n\r\n <sfc-template-content [referenceContent]=\"body\" [templatesContent]=\"templates\"\r\n [templateType]=\"ModalTemplate.Body\">\r\n </sfc-template-content>\r\n\r\n </div>\r\n\r\n <div class=\"footer\">\r\n\r\n <sfc-template-content [referenceContent]=\"footer\" [templatesContent]=\"templates\"\r\n [templateType]=\"ModalTemplate.Footer\" [defaultContent]=\"defaultFooter\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultFooter>\r\n <sfc-default-modal-footer [model]=\"defaultFooterModel\">\r\n </sfc-default-modal-footer>\r\n </ng-template>\r\n\r\n </div>\r\n </div>\r\n</div>", styles: [".overlay{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;background-color:#0009;-webkit-backface-visibility:visible;backface-visibility:visible;animation:expand-overlay .4s cubic-bezier(.55,0,.1,1)}@keyframes expand-overlay{0%{visibility:hidden;opacity:0}}.overlay .content{display:flex;align-items:center;position:relative;padding:.7em;margin:auto;background-color:#f5f7fa;max-width:calc(100% - 3em);max-height:calc(100% - 3em);border-radius:3px;overflow-y:auto;box-shadow:0 .125em .625em #656d78;transform:scale(1);flex-direction:column;animation:expand-modal .4s cubic-bezier(.55,0,.1,1)}@keyframes expand-modal{0%{visibility:hidden;opacity:0;transform:scale(1.2)}}.overlay .content>div{width:100%;flex:0 0 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#545e61;flex-direction:row;display:flex;justify-content:center}\n"] }]
1612
1725
  }], ctorParameters: function () { return [{ type: ModalService }]; }, propDecorators: { body: [{
1613
1726
  type: Input
1614
1727
  }], header: [{
@@ -1666,9 +1779,9 @@ class ModalOpenOnClickDirective {
1666
1779
  this.elements.forEach(el => el.removeEventListener('click', this.clickHandler));
1667
1780
  }
1668
1781
  }
1669
- ModalOpenOnClickDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalOpenOnClickDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: ModalService }], target: i0.ɵɵFactoryTarget.Directive });
1670
- ModalOpenOnClickDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: ModalOpenOnClickDirective, selector: "[sfcModalOpenOnClick]", inputs: { modalOpenOnClick: ["sfcModalOpenOnClick", "modalOpenOnClick"] }, ngImport: i0 });
1671
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalOpenOnClickDirective, decorators: [{
1782
+ ModalOpenOnClickDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ModalOpenOnClickDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: ModalService }], target: i0.ɵɵFactoryTarget.Directive });
1783
+ ModalOpenOnClickDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: ModalOpenOnClickDirective, selector: "[sfcModalOpenOnClick]", inputs: { modalOpenOnClick: ["sfcModalOpenOnClick", "modalOpenOnClick"] }, ngImport: i0 });
1784
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ModalOpenOnClickDirective, decorators: [{
1672
1785
  type: Directive,
1673
1786
  args: [{
1674
1787
  selector: '[sfcModalOpenOnClick]'
@@ -1684,9 +1797,9 @@ class HamburgerComponent {
1684
1797
  this.onClick = () => this.open = !this.open;
1685
1798
  }
1686
1799
  }
1687
- HamburgerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: HamburgerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1688
- HamburgerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: HamburgerComponent, selector: "sfc-hamburger", inputs: { open: "open" }, host: { listeners: { "click": "onClick()" }, properties: { "class.open": "this.open" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"line half start\"></div>\r\n <div class=\"line\"></div>\r\n <div class=\"line half end\"></div>\r\n</div>", styles: [".container{width:1em;height:1em;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;transition:transform .33s ease-out}:host(.open) .container{transform:rotate(-45deg)}.container .line{border-radius:.31em;width:100%;height:.25em}:host-context(.sfc-default-theme) .container .line{background-color:#545e61}:host-context(.sfc-dark-theme) .container .line{background-color:#ccd1d9}.container .line.half{width:50%}.container .line.start{transition:transform .33s cubic-bezier(.54,-.81,.57,.57);transform-origin:right}:host(.open) .container .line.start{transform:rotate(-90deg) translate(.1875em)}.container .line.end{align-self:flex-end;transition:transform .33s cubic-bezier(.54,-.81,.57,.57);transform-origin:left}:host(.open) .container .line.end{transform:rotate(-90deg) translate(-.1875em)}.container:hover .line{background-color:#2bbbad!important}\n"] });
1689
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: HamburgerComponent, decorators: [{
1800
+ HamburgerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: HamburgerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1801
+ HamburgerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: HamburgerComponent, selector: "sfc-hamburger", inputs: { open: "open" }, host: { listeners: { "click": "onClick()" }, properties: { "class.open": "this.open" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"line half start\"></div>\r\n <div class=\"line\"></div>\r\n <div class=\"line half end\"></div>\r\n</div>", styles: [".container{width:1em;height:1em;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;transition:transform .33s ease-out}:host(.open) .container{transform:rotate(-45deg)}.container .line{border-radius:.31em;width:100%;height:.25em}:host-context(.sfc-default-theme) .container .line{background-color:#545e61}:host-context(.sfc-dark-theme) .container .line{background-color:#ccd1d9}.container .line.half{width:50%}.container .line.start{transition:transform .33s cubic-bezier(.54,-.81,.57,.57);transform-origin:right}:host(.open) .container .line.start{transform:rotate(-90deg) translate(.1875em)}.container .line.end{align-self:flex-end;transition:transform .33s cubic-bezier(.54,-.81,.57,.57);transform-origin:left}:host(.open) .container .line.end{transform:rotate(-90deg) translate(-.1875em)}.container:hover .line{background-color:#2bbbad!important}\n"] });
1802
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: HamburgerComponent, decorators: [{
1690
1803
  type: Component,
1691
1804
  args: [{ selector: 'sfc-hamburger', template: "<div class=\"container\">\r\n <div class=\"line half start\"></div>\r\n <div class=\"line\"></div>\r\n <div class=\"line half end\"></div>\r\n</div>", styles: [".container{width:1em;height:1em;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;transition:transform .33s ease-out}:host(.open) .container{transform:rotate(-45deg)}.container .line{border-radius:.31em;width:100%;height:.25em}:host-context(.sfc-default-theme) .container .line{background-color:#545e61}:host-context(.sfc-dark-theme) .container .line{background-color:#ccd1d9}.container .line.half{width:50%}.container .line.start{transition:transform .33s cubic-bezier(.54,-.81,.57,.57);transform-origin:right}:host(.open) .container .line.start{transform:rotate(-90deg) translate(.1875em)}.container .line.end{align-self:flex-end;transition:transform .33s cubic-bezier(.54,-.81,.57,.57);transform-origin:left}:host(.open) .container .line.end{transform:rotate(-90deg) translate(-.1875em)}.container:hover .line{background-color:#2bbbad!important}\n"] }]
1692
1805
  }], propDecorators: { open: [{
@@ -1706,11 +1819,11 @@ class DotsComponent {
1706
1819
  this.onClick = () => this.open = !this.open;
1707
1820
  }
1708
1821
  }
1709
- DotsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DotsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1710
- DotsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: DotsComponent, selector: "sfc-dots", inputs: { open: "open", direction: "direction" }, host: { listeners: { "click": "onClick()" }, properties: { "class.open": "this.open", "class": "this.direction" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"dots-container\">\r\n <div class=\"dot\"></div>\r\n <div class=\"dot\"></div>\r\n <div class=\"dot\"></div>\r\n </div>\r\n</div>", styles: [":host{display:inline-flex;transform:rotate(90deg);transition:all .3s cubic-bezier(.175,.885,.32,1.275);cursor:pointer}:host.open{transform:rotate(0)}:host.vertical{transform:rotate(0)}:host.vertical.open{transform:rotate(90deg)}:host .container{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;flex:1;margin:.25em}:host .container .dots-container{display:flex;flex-flow:column,wrap;justify-content:center;align-items:center;position:relative}:host .container .dots-container .dot{width:.3125em;height:.3125em;transition:background .3s ease;margin:.06em;border-radius:50%;display:block}:host-context(.sfc-default-theme) :host .container .dots-container .dot{background:#545e61}:host-context(.sfc-dark-theme) :host .container .dots-container .dot{background:#ccd1d9}:host .container:hover,:host .container.open,:host .container:focus{outline:none}:host-context(.sfc-default-theme) :host .container:hover .dots-container .dot,:host-context(.sfc-default-theme) :host .container.open .dots-container .dot,:host-context(.sfc-default-theme) :host .container:focus .dots-container .dot{background:#2bbbad}:host-context(.sfc-dark-theme) :host .container:hover .dots-container .dot,:host-context(.sfc-dark-theme) :host .container.open .dots-container .dot,:host-context(.sfc-dark-theme) :host .container:focus .dots-container .dot{background:#2bbbad}\n"] });
1711
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DotsComponent, decorators: [{
1822
+ DotsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: DotsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1823
+ DotsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: DotsComponent, selector: "sfc-dots", inputs: { open: "open", direction: "direction" }, host: { listeners: { "click": "onClick()" }, properties: { "class.open": "this.open", "class": "this.direction" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"dots-container\">\r\n <div class=\"dot\"></div>\r\n <div class=\"dot\"></div>\r\n <div class=\"dot\"></div>\r\n </div>\r\n</div>", styles: [":host{display:inline-flex;transform:rotate(0);transition:all .3s cubic-bezier(.175,.885,.32,1.275);cursor:pointer}:host.open{transform:rotate(90deg)}:host.vertical{transform:rotate(90deg)}:host.vertical.open{transform:rotate(0)}:host .container{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;flex:1;margin:.25em}:host .container .dots-container{display:flex;flex-flow:row wrap;justify-content:center;align-items:center;position:relative}:host .container .dots-container .dot{width:.3125em;height:.3125em;transition:background .3s ease;margin:.06em;border-radius:50%;display:block}:host-context(.sfc-default-theme) :host .container .dots-container .dot{background:#545e61}:host-context(.sfc-dark-theme) :host .container .dots-container .dot{background:#ccd1d9}:host:hover .container,:host:focus .container{outline:none}:host-context(.sfc-default-theme) :host:hover .container .dots-container .dot,:host-context(.sfc-default-theme) :host:focus .container .dots-container .dot{background:#2bbbad}:host-context(.sfc-dark-theme) :host:hover .container .dots-container .dot,:host-context(.sfc-dark-theme) :host:focus .container .dots-container .dot{background:#2bbbad}\n"] });
1824
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: DotsComponent, decorators: [{
1712
1825
  type: Component,
1713
- args: [{ selector: 'sfc-dots', template: "<div class=\"container\">\r\n <div class=\"dots-container\">\r\n <div class=\"dot\"></div>\r\n <div class=\"dot\"></div>\r\n <div class=\"dot\"></div>\r\n </div>\r\n</div>", styles: [":host{display:inline-flex;transform:rotate(90deg);transition:all .3s cubic-bezier(.175,.885,.32,1.275);cursor:pointer}:host.open{transform:rotate(0)}:host.vertical{transform:rotate(0)}:host.vertical.open{transform:rotate(90deg)}:host .container{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;flex:1;margin:.25em}:host .container .dots-container{display:flex;flex-flow:column,wrap;justify-content:center;align-items:center;position:relative}:host .container .dots-container .dot{width:.3125em;height:.3125em;transition:background .3s ease;margin:.06em;border-radius:50%;display:block}:host-context(.sfc-default-theme) :host .container .dots-container .dot{background:#545e61}:host-context(.sfc-dark-theme) :host .container .dots-container .dot{background:#ccd1d9}:host .container:hover,:host .container.open,:host .container:focus{outline:none}:host-context(.sfc-default-theme) :host .container:hover .dots-container .dot,:host-context(.sfc-default-theme) :host .container.open .dots-container .dot,:host-context(.sfc-default-theme) :host .container:focus .dots-container .dot{background:#2bbbad}:host-context(.sfc-dark-theme) :host .container:hover .dots-container .dot,:host-context(.sfc-dark-theme) :host .container.open .dots-container .dot,:host-context(.sfc-dark-theme) :host .container:focus .dots-container .dot{background:#2bbbad}\n"] }]
1826
+ args: [{ selector: 'sfc-dots', template: "<div class=\"container\">\r\n <div class=\"dots-container\">\r\n <div class=\"dot\"></div>\r\n <div class=\"dot\"></div>\r\n <div class=\"dot\"></div>\r\n </div>\r\n</div>", styles: [":host{display:inline-flex;transform:rotate(0);transition:all .3s cubic-bezier(.175,.885,.32,1.275);cursor:pointer}:host.open{transform:rotate(90deg)}:host.vertical{transform:rotate(90deg)}:host.vertical.open{transform:rotate(0)}:host .container{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;flex:1;margin:.25em}:host .container .dots-container{display:flex;flex-flow:row wrap;justify-content:center;align-items:center;position:relative}:host .container .dots-container .dot{width:.3125em;height:.3125em;transition:background .3s ease;margin:.06em;border-radius:50%;display:block}:host-context(.sfc-default-theme) :host .container .dots-container .dot{background:#545e61}:host-context(.sfc-dark-theme) :host .container .dots-container .dot{background:#ccd1d9}:host:hover .container,:host:focus .container{outline:none}:host-context(.sfc-default-theme) :host:hover .container .dots-container .dot,:host-context(.sfc-default-theme) :host:focus .container .dots-container .dot{background:#2bbbad}:host-context(.sfc-dark-theme) :host:hover .container .dots-container .dot,:host-context(.sfc-dark-theme) :host:focus .container .dots-container .dot{background:#2bbbad}\n"] }]
1714
1827
  }], propDecorators: { open: [{
1715
1828
  type: Input
1716
1829
  }, {
@@ -1734,11 +1847,11 @@ class ToggleSwitcherComponent {
1734
1847
  this.rightModel = { label: 'Right' };
1735
1848
  }
1736
1849
  }
1737
- ToggleSwitcherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ToggleSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1738
- ToggleSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: ToggleSwitcherComponent, selector: "sfc-toggle-switcher", inputs: { active: "active", leftModel: "leftModel", rightModel: "rightModel" }, host: { listeners: { "click": "onClick()" }, properties: { "class.active": "this.active" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"toggle\"></div>\r\n <div class=\"names\">\r\n <p class=\"left\">\r\n <i *ngIf=\"leftModel.icon\" class=\"{{leftModel.icon}}\"></i>\r\n <span>{{leftModel.label}}</span>\r\n </p>\r\n <p class=\"right\">\r\n <i *ngIf=\"rightModel.icon\" class=\"{{rightModel.icon}}\"></i>\r\n <span>{{rightModel.label}}</span>\r\n </p>\r\n </div>\r\n</div>", styles: [":host .container,:host .toggle{height:100%;border-radius:100px}:host .container{width:100%;background-color:#e6e9ed;color:#545e61;border-radius:100px;position:relative;cursor:pointer}:host .container .toggle{position:absolute;width:50%;background-color:#fff;box-shadow:0 .125em 1em #0003;transition:transform .3s cubic-bezier(.25,.46,.45,.94)}:host .container .names{font-size:90%;font-weight:bolder;width:100%;height:100%;position:relative;display:flex;justify-content:space-around;align-items:center;-webkit-user-select:none;user-select:none;overflow:hidden}:host .container .names p{font-size:90%;text-align:center;margin:0;padding:.5em 1em}:host .container .names p.right{opacity:.5}:host .container .names p i{margin-right:.25em}:host.active .container{background-color:#e6e9ed}:host.active .container .toggle{transform:translate(100%);background-color:#fff}:host.active .container .names{color:#545e61}:host.active .container .names .left{opacity:.5}:host.active .container .names .right{opacity:1}\n"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1739
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ToggleSwitcherComponent, decorators: [{
1850
+ ToggleSwitcherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ToggleSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1851
+ ToggleSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: ToggleSwitcherComponent, selector: "sfc-toggle-switcher", inputs: { active: "active", leftModel: "leftModel", rightModel: "rightModel" }, host: { listeners: { "click": "onClick()" }, properties: { "class.active": "this.active" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"toggle\"></div>\r\n <div class=\"names\">\r\n <p class=\"left\">\r\n <i *ngIf=\"leftModel.icon\" class=\"{{leftModel.icon}}\"></i>\r\n <span>{{leftModel.label}}</span>\r\n </p>\r\n <p class=\"right\">\r\n <i *ngIf=\"rightModel.icon\" class=\"{{rightModel.icon}}\"></i>\r\n <span>{{rightModel.label}}</span>\r\n </p>\r\n </div>\r\n</div>", styles: [":host .container,:host .toggle{height:100%;border-radius:100px}:host .container{width:100%;background-color:#e6e9ed;color:#545e61;border-radius:100px;position:relative;cursor:pointer}:host .container .toggle{position:absolute;width:50%;background-color:#fff;box-shadow:0 .125em .5em #656d78;transition:transform .3s cubic-bezier(.25,.46,.45,.94)}:host .container .names{font-size:90%;font-weight:bolder;width:100%;height:100%;position:relative;display:flex;justify-content:space-around;align-items:center;-webkit-user-select:none;user-select:none;overflow:hidden}:host .container .names p{font-size:90%;text-align:center;margin:0;padding:.5em 1em}:host .container .names p.right{opacity:.5}:host .container .names p i{margin-right:.25em}:host.active .container{background-color:#e6e9ed}:host.active .container .toggle{transform:translate(100%);background-color:#fff}:host.active .container .names{color:#545e61}:host.active .container .names .left{opacity:.5}:host.active .container .names .right{opacity:1}\n"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1852
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ToggleSwitcherComponent, decorators: [{
1740
1853
  type: Component,
1741
- args: [{ selector: 'sfc-toggle-switcher', template: "<div class=\"container\">\r\n <div class=\"toggle\"></div>\r\n <div class=\"names\">\r\n <p class=\"left\">\r\n <i *ngIf=\"leftModel.icon\" class=\"{{leftModel.icon}}\"></i>\r\n <span>{{leftModel.label}}</span>\r\n </p>\r\n <p class=\"right\">\r\n <i *ngIf=\"rightModel.icon\" class=\"{{rightModel.icon}}\"></i>\r\n <span>{{rightModel.label}}</span>\r\n </p>\r\n </div>\r\n</div>", styles: [":host .container,:host .toggle{height:100%;border-radius:100px}:host .container{width:100%;background-color:#e6e9ed;color:#545e61;border-radius:100px;position:relative;cursor:pointer}:host .container .toggle{position:absolute;width:50%;background-color:#fff;box-shadow:0 .125em 1em #0003;transition:transform .3s cubic-bezier(.25,.46,.45,.94)}:host .container .names{font-size:90%;font-weight:bolder;width:100%;height:100%;position:relative;display:flex;justify-content:space-around;align-items:center;-webkit-user-select:none;user-select:none;overflow:hidden}:host .container .names p{font-size:90%;text-align:center;margin:0;padding:.5em 1em}:host .container .names p.right{opacity:.5}:host .container .names p i{margin-right:.25em}:host.active .container{background-color:#e6e9ed}:host.active .container .toggle{transform:translate(100%);background-color:#fff}:host.active .container .names{color:#545e61}:host.active .container .names .left{opacity:.5}:host.active .container .names .right{opacity:1}\n"] }]
1854
+ args: [{ selector: 'sfc-toggle-switcher', template: "<div class=\"container\">\r\n <div class=\"toggle\"></div>\r\n <div class=\"names\">\r\n <p class=\"left\">\r\n <i *ngIf=\"leftModel.icon\" class=\"{{leftModel.icon}}\"></i>\r\n <span>{{leftModel.label}}</span>\r\n </p>\r\n <p class=\"right\">\r\n <i *ngIf=\"rightModel.icon\" class=\"{{rightModel.icon}}\"></i>\r\n <span>{{rightModel.label}}</span>\r\n </p>\r\n </div>\r\n</div>", styles: [":host .container,:host .toggle{height:100%;border-radius:100px}:host .container{width:100%;background-color:#e6e9ed;color:#545e61;border-radius:100px;position:relative;cursor:pointer}:host .container .toggle{position:absolute;width:50%;background-color:#fff;box-shadow:0 .125em .5em #656d78;transition:transform .3s cubic-bezier(.25,.46,.45,.94)}:host .container .names{font-size:90%;font-weight:bolder;width:100%;height:100%;position:relative;display:flex;justify-content:space-around;align-items:center;-webkit-user-select:none;user-select:none;overflow:hidden}:host .container .names p{font-size:90%;text-align:center;margin:0;padding:.5em 1em}:host .container .names p.right{opacity:.5}:host .container .names p i{margin-right:.25em}:host.active .container{background-color:#e6e9ed}:host.active .container .toggle{transform:translate(100%);background-color:#fff}:host.active .container .names{color:#545e61}:host.active .container .names .left{opacity:.5}:host.active .container .names .right{opacity:1}\n"] }]
1742
1855
  }], ctorParameters: function () { return []; }, propDecorators: { active: [{
1743
1856
  type: Input
1744
1857
  }, {
@@ -1760,11 +1873,11 @@ class CheckmarkComponent {
1760
1873
  this.onClick = () => this.active = !this.active;
1761
1874
  }
1762
1875
  }
1763
- CheckmarkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CheckmarkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1764
- CheckmarkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: CheckmarkComponent, selector: "sfc-checkmark", inputs: { active: "active", icon: "icon" }, host: { listeners: { "click": "onClick()" }, properties: { "class.active": "this.active" } }, ngImport: i0, template: "<div class=\"container\">\r\n <span class=\"check\">\r\n <i class=\"{{icon}}\"></i>\r\n </span>\r\n</div>", styles: [":host{display:inline-block}:host .check{border-radius:50%;border:.18em solid;background:#fff;border-color:#ccd1d9;width:1em;height:1em;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .3s ease}:host .check i{font-size:.8em;transition:opacity .3s ease;color:transparent;-webkit-text-stroke:1px #0003}:host-context(.sfc-default-theme) :host .check i{opacity:.5}:host-context(.sfc-dark-theme) :host .check i{opacity:.8}:host .check:hover{border-color:#2bbbad}:host .check:hover i{-webkit-text-stroke:initial;color:#2bbbad}:host-context(.sfc-default-theme) :host .check:hover i{opacity:.8}:host-context(.sfc-dark-theme) :host .check:hover i{opacity:1}:host.active .check{border-color:#2bbbad;background:#2bbbad}:host.active .check i{opacity:1;transform:scale(0);color:#fff;-webkit-text-stroke:0;animation:icon .3s cubic-bezier(1,.008,.565,1.65) .1s 1 forwards}@keyframes icon{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}\n"] });
1765
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CheckmarkComponent, decorators: [{
1876
+ CheckmarkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CheckmarkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1877
+ CheckmarkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: CheckmarkComponent, selector: "sfc-checkmark", inputs: { active: "active", icon: "icon" }, host: { listeners: { "click": "onClick()" }, properties: { "class.active": "this.active" } }, ngImport: i0, template: "<div class=\"container\">\r\n <span class=\"check\">\r\n <i class=\"{{icon}}\"></i>\r\n </span>\r\n</div>", styles: [":host{display:inline-block}:host-context(.sfc-default-theme) :host{color:#545e61}:host-context(.sfc-dark-theme) :host{color:#ccd1d9}:host .check{border-radius:50%;border:.18em solid;background:#fff;border-color:#ccd1d9;width:1em;height:1em;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .3s ease}:host .check i{font-size:.8em;transition:opacity .3s ease}:host-context(.sfc-default-theme) :host .check i{opacity:.5}:host-context(.sfc-dark-theme) :host .check i{opacity:.8}:host .check:hover{border-color:#2bbbad}:host .check:hover i{color:#2bbbad}:host-context(.sfc-default-theme) :host .check:hover i{opacity:.8}:host-context(.sfc-dark-theme) :host .check:hover i{opacity:1}:host.active .check{border-color:#2bbbad;background:#2bbbad}:host.active .check i{opacity:1;transform:scale(0);color:#fff;-webkit-text-stroke:0;animation:icon .3s cubic-bezier(1,.008,.565,1.65) .1s 1 forwards}@keyframes icon{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}\n"] });
1878
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CheckmarkComponent, decorators: [{
1766
1879
  type: Component,
1767
- args: [{ selector: 'sfc-checkmark', template: "<div class=\"container\">\r\n <span class=\"check\">\r\n <i class=\"{{icon}}\"></i>\r\n </span>\r\n</div>", styles: [":host{display:inline-block}:host .check{border-radius:50%;border:.18em solid;background:#fff;border-color:#ccd1d9;width:1em;height:1em;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .3s ease}:host .check i{font-size:.8em;transition:opacity .3s ease;color:transparent;-webkit-text-stroke:1px #0003}:host-context(.sfc-default-theme) :host .check i{opacity:.5}:host-context(.sfc-dark-theme) :host .check i{opacity:.8}:host .check:hover{border-color:#2bbbad}:host .check:hover i{-webkit-text-stroke:initial;color:#2bbbad}:host-context(.sfc-default-theme) :host .check:hover i{opacity:.8}:host-context(.sfc-dark-theme) :host .check:hover i{opacity:1}:host.active .check{border-color:#2bbbad;background:#2bbbad}:host.active .check i{opacity:1;transform:scale(0);color:#fff;-webkit-text-stroke:0;animation:icon .3s cubic-bezier(1,.008,.565,1.65) .1s 1 forwards}@keyframes icon{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}\n"] }]
1880
+ args: [{ selector: 'sfc-checkmark', template: "<div class=\"container\">\r\n <span class=\"check\">\r\n <i class=\"{{icon}}\"></i>\r\n </span>\r\n</div>", styles: [":host{display:inline-block}:host-context(.sfc-default-theme) :host{color:#545e61}:host-context(.sfc-dark-theme) :host{color:#ccd1d9}:host .check{border-radius:50%;border:.18em solid;background:#fff;border-color:#ccd1d9;width:1em;height:1em;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .3s ease}:host .check i{font-size:.8em;transition:opacity .3s ease}:host-context(.sfc-default-theme) :host .check i{opacity:.5}:host-context(.sfc-dark-theme) :host .check i{opacity:.8}:host .check:hover{border-color:#2bbbad}:host .check:hover i{color:#2bbbad}:host-context(.sfc-default-theme) :host .check:hover i{opacity:.8}:host-context(.sfc-dark-theme) :host .check:hover i{opacity:1}:host.active .check{border-color:#2bbbad;background:#2bbbad}:host.active .check i{opacity:1;transform:scale(0);color:#fff;-webkit-text-stroke:0;animation:icon .3s cubic-bezier(1,.008,.565,1.65) .1s 1 forwards}@keyframes icon{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}\n"] }]
1768
1881
  }], propDecorators: { active: [{
1769
1882
  type: Input
1770
1883
  }, {
@@ -1777,10 +1890,234 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
1777
1890
  args: ['click']
1778
1891
  }] } });
1779
1892
 
1893
+ class PaginationConstants {
1894
+ }
1895
+ PaginationConstants.DEFAULT_SIZE = 5;
1896
+ PaginationConstants.DEFAULT_PAGE = 1;
1897
+ PaginationConstants.DEFAULT_COUNT = 3;
1898
+
1899
+ class PaginationService {
1900
+ constructor() {
1901
+ /**
1902
+ * Handle page changing
1903
+ */
1904
+ this.pageSubject = new Subject();
1905
+ this.page$ = this.pageSubject.asObservable();
1906
+ }
1907
+ /** Need for init pagination observables */
1908
+ init(data$, page = PaginationConstants.DEFAULT_PAGE, pageSize = PaginationConstants.DEFAULT_SIZE) {
1909
+ if (isDefined(data$))
1910
+ this.initObservables(data$, page, pageSize);
1911
+ }
1912
+ /**
1913
+ * Move to page
1914
+ */
1915
+ page(page) {
1916
+ this.pageSubject.next(page);
1917
+ }
1918
+ initObservables(data$, page, pageSize) {
1919
+ this.total$ = data$.pipe(map((p) => p.length));
1920
+ this.totalPages$ = this.total$.pipe(map((total) => Math.ceil(total / pageSize)));
1921
+ this.pagination$ = combineLatest([this.totalPages$, this.page$.pipe(startWith(page))])
1922
+ .pipe(map(([total, page]) => {
1923
+ return {
1924
+ page: page > total ? PaginationConstants.DEFAULT_PAGE : page,
1925
+ next: Math.min(page + 1, total),
1926
+ previous: Math.max(1, page - 1),
1927
+ total: total
1928
+ };
1929
+ }));
1930
+ }
1931
+ }
1932
+ PaginationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PaginationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1933
+ PaginationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PaginationService, providedIn: 'root' });
1934
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PaginationService, decorators: [{
1935
+ type: Injectable,
1936
+ args: [{
1937
+ providedIn: 'root'
1938
+ }]
1939
+ }] });
1940
+
1941
+ class PaginationComponent {
1942
+ constructor(service) {
1943
+ this.service = service;
1944
+ // max limit for pagination bts
1945
+ this.count = PaginationConstants.DEFAULT_COUNT;
1946
+ /**
1947
+ * show full range of data
1948
+ */
1949
+ this.full = false;
1950
+ /**
1951
+ * show first and last page's btn
1952
+ */
1953
+ this.limits = false;
1954
+ }
1955
+ ngOnInit() {
1956
+ if (!isDefined(this.service.pagination$))
1957
+ this.service.init(this.data$);
1958
+ if (isDefined(this.service.pagination$)) {
1959
+ this.vm$ = this.service.pagination$.pipe(map((event) => {
1960
+ const range = this.initRange(event);
1961
+ return {
1962
+ range: range,
1963
+ any: event.total > 0,
1964
+ firstPage: this.showStartLimit(range, event),
1965
+ lastPage: this.showEndLimit(range, event),
1966
+ previousPage: event.page != PaginationConstants.DEFAULT_PAGE,
1967
+ nextPage: event.total > event.page,
1968
+ page: event.page,
1969
+ previous: event.previous,
1970
+ next: event.next,
1971
+ total: event.total
1972
+ };
1973
+ }));
1974
+ }
1975
+ }
1976
+ onPageClick(page) {
1977
+ this.service.page(page);
1978
+ }
1979
+ get showLimitPages() {
1980
+ return this.limits && !this.full;
1981
+ }
1982
+ showStartLimit(range, event) {
1983
+ return this.showLimitPages && event.page !== PaginationConstants.DEFAULT_PAGE
1984
+ && !hasItem(range, PaginationConstants.DEFAULT_PAGE);
1985
+ }
1986
+ showEndLimit(range, event) {
1987
+ return this.showLimitPages && event.total !== event.page && !hasItem(range, event.total);
1988
+ }
1989
+ initRange(event) {
1990
+ let start = 1, end = event.total + 1;
1991
+ if (!this.full) {
1992
+ const fullRange = this.range(1, event.total + 1), pageIndex = fullRange.indexOf(event.page), pageCount = Math.min(event.total, this.count);
1993
+ let rangeStart = 0, rangeEnd = 0;
1994
+ if (pageCount == PaginationConstants.DEFAULT_PAGE) {
1995
+ rangeStart = rangeEnd = pageIndex;
1996
+ }
1997
+ else {
1998
+ let allowedCount = pageCount - 1, partValue = Math.ceil(allowedCount / 2), leftValue = pageIndex - partValue < 0 ? pageIndex : partValue, rightToExtend = allowedCount - leftValue, rightValue = rightToExtend < 0 ? 0 : rightToExtend;
1999
+ if (pageIndex + rightValue >= event.total)
2000
+ leftValue += pageIndex + rightValue - event.total + 1;
2001
+ rangeStart = pageIndex - leftValue;
2002
+ rangeEnd = pageIndex + rightValue;
2003
+ }
2004
+ start = rangeStart + 1;
2005
+ end = Math.min(event.total + 1, rangeEnd + 2);
2006
+ }
2007
+ return this.range(start, end);
2008
+ }
2009
+ range(start, stop, step = 1) {
2010
+ if (!stop) {
2011
+ start = 0;
2012
+ stop = start;
2013
+ }
2014
+ return Array.from(new Array(Number((stop - start) / step)), (_, i) => start + i * step);
2015
+ }
2016
+ }
2017
+ PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PaginationComponent, deps: [{ token: PaginationService }], target: i0.ɵɵFactoryTarget.Component });
2018
+ PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: PaginationComponent, selector: "sfc-pagination", inputs: { count: "count", full: "full", limits: "limits", data$: "data$" }, ngImport: i0, template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <sfc-delimeter></sfc-delimeter>\r\n <ul *ngIf=\"vm.any\">\r\n <li [sfcShowHideElement]=\"vm.previousPage\" (click)=\"onPageClick(vm.previous)\">\r\n <button class=\"limit\">\r\n <i class=\"fa fa-chevron-left\"></i>\r\n </button>\r\n </li>\r\n <li *ngIf=\"vm.firstPage\" (click)=\"onPageClick(1)\">\r\n <button>1</button>\r\n </li>\r\n <li *ngIf=\"vm.firstPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngFor=\"let page of vm.range\" (click)=\"onPageClick(page)\">\r\n <button [class.active]=\"vm.page === page\">{{page}}</button>\r\n </li>\r\n <li *ngIf=\"vm.lastPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngIf=\"vm.lastPage\" (click)=\"onPageClick(vm.total)\">\r\n <button>{{vm.total}}</button>\r\n </li>\r\n <li [sfcShowHideElement]=\"vm.nextPage\" (click)=\"onPageClick(vm.next)\">\r\n <button class=\"limit\">\r\n <i class=\"fa fa-chevron-right\"></i>\r\n </button>\r\n </li>\r\n </ul>\r\n <sfc-delimeter></sfc-delimeter>\r\n</div>", styles: [":host{width:100%;display:inline-block}:host .container{position:relative;text-align:center}:host .container ul{list-style:none;margin:0;padding:0;display:flex;justify-content:center;-webkit-user-select:none;user-select:none}:host .container ul li{display:block;float:left;padding:.31em}:host .container ul li:first-child{border:none}:host .container ul li button,:host .container ul li span{background:none;border:none;border-radius:50%;box-sizing:border-box;display:block;font-size:1em;height:2.5em;min-width:2.5em;line-height:2.5em;padding:0}:host-context(.sfc-default-theme) :host .container ul li button,:host-context(.sfc-default-theme) :host .container ul li span{color:#0009}:host-context(.sfc-dark-theme) :host .container ul li button,:host-context(.sfc-dark-theme) :host .container ul li span{color:#ccd1d9}:host .container ul li button{outline:none;position:relative;transition:all .17s linear}:host-context(.sfc-default-theme) :host .container ul li button{color:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button{color:#ccd1d9}:host .container ul li button:before{border-radius:50%;content:\"\";cursor:pointer;height:0;left:50%;opacity:0;position:absolute;transform:translate(-50%,-50%);transition:all .17s linear;top:50%;width:0}:host-context(.sfc-default-theme) :host .container ul li button:before{background:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button:before{background:#f5f7fa}:host-context(.sfc-default-theme) :host .container ul li button:hover:not(.active){color:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button:hover:not(.active){color:#ccd1d9}:host .container ul li button:hover:not(.active):before{animation:hover-animation .51s linear forwards;width:2.5em;height:2.5em}:host .container ul li button.active{color:#545e61!important}:host-context(.sfc-default-theme) :host .container ul li button.active{background:#0000001a}:host-context(.sfc-dark-theme) :host .container ul li button.active{background:#f5f7fa}@keyframes hover-animation{0%{opacity:1}to{opacity:0}}\n"], components: [{ type: DelimeterComponent, selector: "sfc-delimeter" }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ShowHideElementDirective, selector: "[sfcShowHideElement]", inputs: ["sfcShowHideElement", "delay"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i1$1.AsyncPipe } });
2019
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PaginationComponent, decorators: [{
2020
+ type: Component,
2021
+ args: [{ selector: 'sfc-pagination', template: "<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <sfc-delimeter></sfc-delimeter>\r\n <ul *ngIf=\"vm.any\">\r\n <li [sfcShowHideElement]=\"vm.previousPage\" (click)=\"onPageClick(vm.previous)\">\r\n <button class=\"limit\">\r\n <i class=\"fa fa-chevron-left\"></i>\r\n </button>\r\n </li>\r\n <li *ngIf=\"vm.firstPage\" (click)=\"onPageClick(1)\">\r\n <button>1</button>\r\n </li>\r\n <li *ngIf=\"vm.firstPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngFor=\"let page of vm.range\" (click)=\"onPageClick(page)\">\r\n <button [class.active]=\"vm.page === page\">{{page}}</button>\r\n </li>\r\n <li *ngIf=\"vm.lastPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngIf=\"vm.lastPage\" (click)=\"onPageClick(vm.total)\">\r\n <button>{{vm.total}}</button>\r\n </li>\r\n <li [sfcShowHideElement]=\"vm.nextPage\" (click)=\"onPageClick(vm.next)\">\r\n <button class=\"limit\">\r\n <i class=\"fa fa-chevron-right\"></i>\r\n </button>\r\n </li>\r\n </ul>\r\n <sfc-delimeter></sfc-delimeter>\r\n</div>", styles: [":host{width:100%;display:inline-block}:host .container{position:relative;text-align:center}:host .container ul{list-style:none;margin:0;padding:0;display:flex;justify-content:center;-webkit-user-select:none;user-select:none}:host .container ul li{display:block;float:left;padding:.31em}:host .container ul li:first-child{border:none}:host .container ul li button,:host .container ul li span{background:none;border:none;border-radius:50%;box-sizing:border-box;display:block;font-size:1em;height:2.5em;min-width:2.5em;line-height:2.5em;padding:0}:host-context(.sfc-default-theme) :host .container ul li button,:host-context(.sfc-default-theme) :host .container ul li span{color:#0009}:host-context(.sfc-dark-theme) :host .container ul li button,:host-context(.sfc-dark-theme) :host .container ul li span{color:#ccd1d9}:host .container ul li button{outline:none;position:relative;transition:all .17s linear}:host-context(.sfc-default-theme) :host .container ul li button{color:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button{color:#ccd1d9}:host .container ul li button:before{border-radius:50%;content:\"\";cursor:pointer;height:0;left:50%;opacity:0;position:absolute;transform:translate(-50%,-50%);transition:all .17s linear;top:50%;width:0}:host-context(.sfc-default-theme) :host .container ul li button:before{background:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button:before{background:#f5f7fa}:host-context(.sfc-default-theme) :host .container ul li button:hover:not(.active){color:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button:hover:not(.active){color:#ccd1d9}:host .container ul li button:hover:not(.active):before{animation:hover-animation .51s linear forwards;width:2.5em;height:2.5em}:host .container ul li button.active{color:#545e61!important}:host-context(.sfc-default-theme) :host .container ul li button.active{background:#0000001a}:host-context(.sfc-dark-theme) :host .container ul li button.active{background:#f5f7fa}@keyframes hover-animation{0%{opacity:1}to{opacity:0}}\n"] }]
2022
+ }], ctorParameters: function () { return [{ type: PaginationService }]; }, propDecorators: { count: [{
2023
+ type: Input
2024
+ }], full: [{
2025
+ type: Input
2026
+ }], limits: [{
2027
+ type: Input
2028
+ }], data$: [{
2029
+ type: Input
2030
+ }] } });
2031
+
2032
+ class SortingConstants {
2033
+ }
2034
+ SortingConstants.DEFAULT_ASCENDING_ICON = 'fa fa-chevron-up';
2035
+ SortingConstants.DEFAULT_DESCENDING_ICON = 'fa fa-chevron-down';
2036
+
2037
+ class SortingService {
2038
+ constructor() {
2039
+ this.sortingSubject = new Subject();
2040
+ this.sorting$ = this.sortingSubject.asObservable();
2041
+ }
2042
+ sort(event) {
2043
+ this.sortingSubject.next(event);
2044
+ }
2045
+ }
2046
+ SortingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SortingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2047
+ SortingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SortingService, providedIn: 'root' });
2048
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SortingService, decorators: [{
2049
+ type: Injectable,
2050
+ args: [{
2051
+ providedIn: 'root'
2052
+ }]
2053
+ }] });
2054
+
2055
+ class SortingComponent {
2056
+ constructor(service) {
2057
+ this.service = service;
2058
+ this.SortingDirection = SortingDirection;
2059
+ this.id = CommonConstants.EMPTY_STRING;
2060
+ this.model = { active: false, enabled: false, direction: SortingDirection.Ascending };
2061
+ }
2062
+ get enabled() {
2063
+ return this.model.enabled;
2064
+ }
2065
+ get active() {
2066
+ return this.model.active || false;
2067
+ }
2068
+ sort() {
2069
+ if (this.enabled) {
2070
+ if (this.active) {
2071
+ this.model.direction = this.model.direction === SortingDirection.Ascending
2072
+ ? SortingDirection.Descending
2073
+ : SortingDirection.Ascending;
2074
+ }
2075
+ this.service.sort({ id: this.id, direction: this.model.direction });
2076
+ }
2077
+ }
2078
+ get icon() {
2079
+ const modelIcon = firstOrDefault(this.model.icons, i => i.direction == this.model.direction);
2080
+ return modelIcon ? modelIcon.icon : this.model.direction === SortingDirection.Ascending
2081
+ ? SortingConstants.DEFAULT_ASCENDING_ICON : SortingConstants.DEFAULT_DESCENDING_ICON;
2082
+ }
2083
+ ngOnInit() {
2084
+ if (!isDefined(this.model))
2085
+ this.model = { active: false, enabled: false, direction: SortingDirection.Ascending };
2086
+ // subscribe to sort changes so we can react when other columns are sorted
2087
+ this._subscription = this.service.sorting$.subscribe(event => {
2088
+ // reset this column's sort direction to hide the sort icons
2089
+ if (this.id != event.id)
2090
+ this.model.direction = SortingDirection.Ascending;
2091
+ });
2092
+ }
2093
+ ngOnDestroy() {
2094
+ this._subscription.unsubscribe();
2095
+ }
2096
+ }
2097
+ SortingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SortingComponent, deps: [{ token: SortingService }], target: i0.ɵɵFactoryTarget.Component });
2098
+ SortingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SortingComponent, selector: "sfc-sorting", 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 <i class=\"{{icon}}\"></i>\r\n </div>\r\n</div>", styles: [":host{cursor:default;text-overflow:ellipsis;overflow:hidden}:host.enabled{cursor:pointer}:host .container{display:flex;min-width:0}:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#ccd1d9}:host .container:hover{color:#2bbbad}: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;transition:all .3s}:host.active .container{color:#2bbbad}\n"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2099
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SortingComponent, decorators: [{
2100
+ type: Component,
2101
+ args: [{ selector: 'sfc-sorting', 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 <i class=\"{{icon}}\"></i>\r\n </div>\r\n</div>", styles: [":host{cursor:default;text-overflow:ellipsis;overflow:hidden}:host.enabled{cursor:pointer}:host .container{display:flex;min-width:0}:host-context(.sfc-default-theme) :host .container{color:#545e61}:host-context(.sfc-dark-theme) :host .container{color:#ccd1d9}:host .container:hover{color:#2bbbad}: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;transition:all .3s}:host.active .container{color:#2bbbad}\n"] }]
2102
+ }], ctorParameters: function () { return [{ type: SortingService }]; }, propDecorators: { id: [{
2103
+ type: Input
2104
+ }], model: [{
2105
+ type: Input
2106
+ }], enabled: [{
2107
+ type: HostBinding,
2108
+ args: [`class.${UIClass.Enabled}`]
2109
+ }], active: [{
2110
+ type: HostBinding,
2111
+ args: [`class.${UIClass.Active}`]
2112
+ }], sort: [{
2113
+ type: HostListener,
2114
+ args: ['click']
2115
+ }] } });
2116
+
1780
2117
  class NgxSfcCommonModule {
1781
2118
  }
1782
- NgxSfcCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: NgxSfcCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1783
- NgxSfcCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: NgxSfcCommonModule, declarations: [
2119
+ NgxSfcCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NgxSfcCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2120
+ NgxSfcCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NgxSfcCommonModule, declarations: [
1784
2121
  // directives
1785
2122
  ClickOutsideDirective,
1786
2123
  ShowHideElementDirective,
@@ -1788,10 +2125,19 @@ NgxSfcCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", vers
1788
2125
  TemplateReferenceDirective,
1789
2126
  MouseDownDirective,
1790
2127
  ComponentSizeDirective,
2128
+ DestroyParentDirective,
1791
2129
  // components
1792
2130
  ButtonComponent,
1793
2131
  TooltipComponent,
1794
2132
  DelimeterComponent,
2133
+ ToggleSwitcherComponent,
2134
+ CheckmarkComponent,
2135
+ TemplateContentComponent,
2136
+ CloseComponent,
2137
+ HamburgerComponent,
2138
+ DotsComponent,
2139
+ PaginationComponent,
2140
+ SortingComponent,
1795
2141
  // loaders
1796
2142
  BounceLoaderComponent,
1797
2143
  CircleLoaderComponent,
@@ -1799,14 +2145,7 @@ NgxSfcCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", vers
1799
2145
  ModalComponent,
1800
2146
  ModalOpenOnClickDirective,
1801
2147
  DefaultModalHeaderComponent,
1802
- DefaultModalFooterComponent,
1803
- // hamburger
1804
- HamburgerComponent,
1805
- // dots
1806
- DotsComponent,
1807
- //toggle
1808
- ToggleSwitcherComponent,
1809
- CheckmarkComponent
2148
+ DefaultModalFooterComponent
1810
2149
  ], imports: [CommonModule,
1811
2150
  BrowserAnimationsModule], exports: [
1812
2151
  // directives
@@ -1816,10 +2155,19 @@ NgxSfcCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", vers
1816
2155
  TemplateReferenceDirective,
1817
2156
  MouseDownDirective,
1818
2157
  ComponentSizeDirective,
2158
+ DestroyParentDirective,
1819
2159
  // components
1820
2160
  ButtonComponent,
1821
2161
  TooltipComponent,
1822
2162
  DelimeterComponent,
2163
+ CloseComponent,
2164
+ CheckmarkComponent,
2165
+ TemplateContentComponent,
2166
+ ToggleSwitcherComponent,
2167
+ DotsComponent,
2168
+ HamburgerComponent,
2169
+ PaginationComponent,
2170
+ SortingComponent,
1823
2171
  // loaders
1824
2172
  BounceLoaderComponent,
1825
2173
  CircleLoaderComponent,
@@ -1827,20 +2175,13 @@ NgxSfcCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", vers
1827
2175
  ModalComponent,
1828
2176
  ModalOpenOnClickDirective,
1829
2177
  DefaultModalHeaderComponent,
1830
- DefaultModalFooterComponent,
1831
- // hamburger
1832
- HamburgerComponent,
1833
- // dots
1834
- DotsComponent,
1835
- //toggle
1836
- ToggleSwitcherComponent,
1837
- CheckmarkComponent
2178
+ DefaultModalFooterComponent
1838
2179
  ] });
1839
- NgxSfcCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: NgxSfcCommonModule, providers: [DOCUMENT_PROVIDERS, WINDOW_PROVIDERS], imports: [[
2180
+ NgxSfcCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NgxSfcCommonModule, providers: [DOCUMENT_PROVIDERS, WINDOW_PROVIDERS], imports: [[
1840
2181
  CommonModule,
1841
2182
  BrowserAnimationsModule
1842
2183
  ]] });
1843
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: NgxSfcCommonModule, decorators: [{
2184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NgxSfcCommonModule, decorators: [{
1844
2185
  type: NgModule,
1845
2186
  args: [{
1846
2187
  declarations: [
@@ -1851,10 +2192,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
1851
2192
  TemplateReferenceDirective,
1852
2193
  MouseDownDirective,
1853
2194
  ComponentSizeDirective,
2195
+ DestroyParentDirective,
1854
2196
  // components
1855
2197
  ButtonComponent,
1856
2198
  TooltipComponent,
1857
2199
  DelimeterComponent,
2200
+ ToggleSwitcherComponent,
2201
+ CheckmarkComponent,
2202
+ TemplateContentComponent,
2203
+ CloseComponent,
2204
+ HamburgerComponent,
2205
+ DotsComponent,
2206
+ PaginationComponent,
2207
+ SortingComponent,
1858
2208
  // loaders
1859
2209
  BounceLoaderComponent,
1860
2210
  CircleLoaderComponent,
@@ -1862,14 +2212,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
1862
2212
  ModalComponent,
1863
2213
  ModalOpenOnClickDirective,
1864
2214
  DefaultModalHeaderComponent,
1865
- DefaultModalFooterComponent,
1866
- // hamburger
1867
- HamburgerComponent,
1868
- // dots
1869
- DotsComponent,
1870
- //toggle
1871
- ToggleSwitcherComponent,
1872
- CheckmarkComponent
2215
+ DefaultModalFooterComponent
1873
2216
  ],
1874
2217
  imports: [
1875
2218
  CommonModule,
@@ -1883,10 +2226,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
1883
2226
  TemplateReferenceDirective,
1884
2227
  MouseDownDirective,
1885
2228
  ComponentSizeDirective,
2229
+ DestroyParentDirective,
1886
2230
  // components
1887
2231
  ButtonComponent,
1888
2232
  TooltipComponent,
1889
2233
  DelimeterComponent,
2234
+ CloseComponent,
2235
+ CheckmarkComponent,
2236
+ TemplateContentComponent,
2237
+ ToggleSwitcherComponent,
2238
+ DotsComponent,
2239
+ HamburgerComponent,
2240
+ PaginationComponent,
2241
+ SortingComponent,
1890
2242
  // loaders
1891
2243
  BounceLoaderComponent,
1892
2244
  CircleLoaderComponent,
@@ -1894,14 +2246,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
1894
2246
  ModalComponent,
1895
2247
  ModalOpenOnClickDirective,
1896
2248
  DefaultModalHeaderComponent,
1897
- DefaultModalFooterComponent,
1898
- // hamburger
1899
- HamburgerComponent,
1900
- // dots
1901
- DotsComponent,
1902
- //toggle
1903
- ToggleSwitcherComponent,
1904
- CheckmarkComponent
2249
+ DefaultModalFooterComponent
1905
2250
  ],
1906
2251
  providers: [DOCUMENT_PROVIDERS, WINDOW_PROVIDERS]
1907
2252
  }]
@@ -1915,5 +2260,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
1915
2260
  * Generated bundle index. Do not edit.
1916
2261
  */
1917
2262
 
1918
- export { BounceLoaderComponent, BrowserDocumentRef, BrowserWindowRef, ButtonComponent, ButtonType, CheckmarkComponent, CircleLoaderComponent, CircleLoaderType, ClickOutsideDirective, CommonConstants, ComponentSize, ComponentSizeDirective, DOCUMENT, DOCUMENT_PROVIDERS, DateTimeConstants, DefaultModalFooterComponent, DefaultModalHeaderComponent, DelimeterComponent, Direction, DocumentRef, DotsComponent, HamburgerComponent, LoaderService, MediaLimits, ModalComponent, ModalOpenOnClickDirective, ModalService, ModalTemplate, MouseDownDirective, NgxSfcCommonModule, Position, ResizeService, ShowHideElementDirective, SortingDirection, TemplateReferenceDirective, ThrowElementOnHoverDirective, ToggleSwitcherComponent, TooltipComponent, TooltipType, UIClass, UIConstants, WINDOW, WINDOW_PROVIDERS, WindowRef, addClasses, addItem, addPropertyToObject, all, any, browserDocumentProvider, browserWindowProvider, contains, distinct, documentFactory, documentProvider, firstItem, firstOrDefault, getCalcValue, getCollectionOrEmpty, getCssLikeValue, getFileExtension, getFirstDayOfMonth, getFirstDayOfMonthByYearAndMonth, getFirstDayOfYear, getLastDayOfMonth, getLastDayOfMonthByYearAndMonth, getLastDayOfYear, getNextMonth, getNextYear, getPreviousMonth, getPreviousYear, getValueFromCssLikeValue, getWeeksNumberInMonth, hasItem, hasItemBy, hasObjectItem, isAsyncData, isDateGreat, isDateGreatOrEqual, isDateTimeGreat, isDateTimeGreatOrEqual, isDefined, isEqualDates, isImage, isNullOrEmptyString, isObject, lastItem, max, mergeDeep, nameof, parseFileSize, readAsDataURL, remove, removeClasses, removeItem, removePropertyFromObject, setDay, setHours, setMinutes, setYear, skip, sortBy, sortByPath, sum, trim, updateItem, where, windowFactory, windowProvider };
2263
+ export { BounceLoaderComponent, BrowserDocumentRef, BrowserWindowRef, ButtonComponent, ButtonType, CheckmarkComponent, CircleLoaderComponent, CircleLoaderType, ClickOutsideDirective, CloseComponent, CommonConstants, ComponentSize, ComponentSizeDirective, DOCUMENT, DOCUMENT_PROVIDERS, DateTimeConstants, DefaultModalFooterComponent, DefaultModalHeaderComponent, DelimeterComponent, DestroyParentDirective, Direction, DocumentRef, DotsComponent, HamburgerComponent, LoaderService, MediaLimits, ModalComponent, ModalOpenOnClickDirective, ModalService, ModalTemplate, MouseDownDirective, NgxSfcCommonModule, PaginationComponent, PaginationService, Position, ResizeService, ShowHideElementDirective, SortingComponent, SortingDirection, SortingService, TemplateContentComponent, TemplateReferenceDirective, Theme, ThrowElementOnHoverDirective, ToggleSwitcherComponent, TooltipComponent, TooltipType, UIClass, UIConstants, WINDOW, WINDOW_PROVIDERS, WindowRef, addClasses, addItem, addPropertyToObject, all, any, browserDocumentProvider, browserWindowProvider, contains, distinct, documentFactory, documentProvider, firstItem, firstOrDefault, getCalcValue, getCollectionOrEmpty, getCssLikeValue, getFileExtension, getFirstDayOfMonth, getFirstDayOfMonthByYearAndMonth, getFirstDayOfYear, getLastDayOfMonth, getLastDayOfMonthByYearAndMonth, getLastDayOfYear, getNextMonth, getNextYear, getPreviousMonth, getPreviousYear, getValueFromCssLikeValue, getWeeksNumberInMonth, hasItem, hasItemBy, hasObjectItem, hexToRgb, isAsyncData, isDateGreat, isDateGreatOrEqual, isDateTimeGreat, isDateTimeGreatOrEqual, isDefined, isEqualDates, isImage, isNullOrEmptyString, isNumeric, isObject, lastItem, max, mergeDeep, nameof, parseFileSize, readAsDataURL, remove, removeClasses, removeItem, removePropertyFromObject, replaceRgbOpacity, rgbToHex, setDay, setHours, setMinutes, setYear, skip, sortBy, sortByPath, sum, trim, updateItem, where, windowFactory, windowProvider };
1919
2264
  //# sourceMappingURL=ngx-sfc-common.mjs.map