ngx-sfc-common 0.0.35 → 0.0.37

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 (34) hide show
  1. package/esm2020/lib/components/button/button.component.mjs +1 -1
  2. package/esm2020/lib/components/load-more-button/load-more-button.component.mjs +2 -2
  3. package/esm2020/lib/components/pagination/pagination.component.mjs +2 -2
  4. package/esm2020/lib/constants/common.constants.mjs +3 -1
  5. package/esm2020/lib/enums/color.enum.mjs +43 -0
  6. package/esm2020/lib/enums/compare.enum.mjs +3 -1
  7. package/esm2020/lib/enums/index.mjs +2 -1
  8. package/esm2020/lib/models/index.mjs +1 -1
  9. package/esm2020/lib/models/position.model.mjs +2 -0
  10. package/esm2020/lib/types/index.mjs +1 -1
  11. package/esm2020/lib/types/primitive.type.mjs +2 -0
  12. package/esm2020/lib/types/segment.type.mjs +2 -0
  13. package/esm2020/lib/utils/collections.utils.mjs +41 -1
  14. package/esm2020/lib/utils/common.utils.mjs +171 -31
  15. package/esm2020/lib/utils/index.mjs +3 -3
  16. package/fesm2015/ngx-sfc-common.mjs +264 -37
  17. package/fesm2015/ngx-sfc-common.mjs.map +1 -1
  18. package/fesm2020/ngx-sfc-common.mjs +264 -37
  19. package/fesm2020/ngx-sfc-common.mjs.map +1 -1
  20. package/lib/components/button/button.component.d.ts +3 -2
  21. package/lib/constants/common.constants.d.ts +2 -0
  22. package/lib/enums/color.enum.d.ts +30 -0
  23. package/lib/enums/compare.enum.d.ts +3 -1
  24. package/lib/enums/index.d.ts +1 -0
  25. package/lib/models/index.d.ts +1 -0
  26. package/lib/models/position.model.d.ts +4 -0
  27. package/lib/types/index.d.ts +1 -0
  28. package/lib/types/primitive.type.d.ts +1 -0
  29. package/lib/types/segment.type.d.ts +1 -0
  30. package/lib/utils/collections.utils.d.ts +23 -0
  31. package/lib/utils/common.utils.d.ts +25 -9
  32. package/lib/utils/index.d.ts +2 -2
  33. package/package.json +1 -1
  34. package/styles/_mixins.scss +38 -1
@@ -120,6 +120,8 @@ var Compare;
120
120
  (function (Compare) {
121
121
  Compare["More"] = "more";
122
122
  Compare["Less"] = "less";
123
+ Compare["Equal"] = "equal";
124
+ Compare["NotEqual"] = "not-equal";
123
125
  })(Compare || (Compare = {}));
124
126
  ;
125
127
 
@@ -149,6 +151,49 @@ var ItemsView;
149
151
  ItemsView["Cards"] = "cards";
150
152
  })(ItemsView || (ItemsView = {}));
151
153
 
154
+ var Color;
155
+ (function (Color) {
156
+ // white
157
+ Color["White_0"] = "#fff";
158
+ Color["White_1"] = "#e6e9ed";
159
+ // grey
160
+ Color["Grey_0"] = "#ccd1d9";
161
+ Color["Grey_1"] = "#aab2bd";
162
+ Color["Grey_2"] = "#656d78";
163
+ // black
164
+ Color["Black_0"] = "#34323d";
165
+ Color["Black_1"] = "#1b1d1f";
166
+ Color["Black_2"] = "#000";
167
+ // red
168
+ Color["Red_0"] = "#ed5565";
169
+ Color["Red_1"] = "#da4453";
170
+ // orange
171
+ Color["Orange_0"] = "#fc6e51";
172
+ Color["Orange_1"] = "#e9573f";
173
+ // yellow
174
+ Color["Yellow_0"] = "#ffce54";
175
+ Color["Yellow_1"] = "#fcbb42";
176
+ Color["Yellow_2"] = "#f8e976";
177
+ // green
178
+ Color["Green_0"] = "#a0d468";
179
+ Color["Green_1"] = "#8cc152";
180
+ Color["Green_2"] = "#48cfad";
181
+ Color["Green_3"] = "#37bc9b";
182
+ Color["Green_4"] = "#2bbbad";
183
+ // blue
184
+ Color["Blue_0"] = "#4fc1e9";
185
+ Color["Blue_1"] = "#3bafda";
186
+ Color["Blue_2"] = "#5d9cec";
187
+ Color["Blue_3"] = "#4a89dc";
188
+ // magenta
189
+ Color["Magenta_0"] = "#ac92ec";
190
+ Color["Magenta_1"] = "#967adc";
191
+ // pink
192
+ Color["Pink_0"] = "#ec87c0";
193
+ Color["Pink_1"] = "#d770ad";
194
+ })(Color || (Color = {}));
195
+ ;
196
+
152
197
  /**
153
198
  * Create a new injection token for injecting the Document into a component.
154
199
  */
@@ -487,9 +532,11 @@ CommonConstants.EMPTY_STRING = '';
487
532
  CommonConstants.DEFAULT_KEY_VALUE = 0;
488
533
  CommonConstants.MOUSE_BUTTON_LEFT = 0;
489
534
  CommonConstants.FULL_PERCENTAGE = 100;
535
+ CommonConstants.LOW_PERCENTAGE = 0;
490
536
  CommonConstants.COMMON_TEXT_DELIMETER = '/';
491
537
  CommonConstants.PERCENTAGE_SYMBOL = '%';
492
- CommonConstants.DOT = '.';
538
+ CommonConstants.DOT = '.';
539
+ CommonConstants.ASTERISK = '*';
493
540
 
494
541
  class DateTimeConstants {
495
542
  }
@@ -897,6 +944,21 @@ function updateItemBy(collection, predicate, newItem) {
897
944
  }
898
945
  return null;
899
946
  }
947
+ /**
948
+ * Toggle item in array
949
+ * @param arr Array of items
950
+ * @param item Item to toggle
951
+ * @returns Toggling result array
952
+ */
953
+ function toggleItem(array, item) {
954
+ if (hasItem(array, item)) {
955
+ removeItem(array, item);
956
+ }
957
+ else {
958
+ addItem(array, item);
959
+ }
960
+ return array;
961
+ }
900
962
  /**
901
963
  * Return collection or empty if collection is not defined
902
964
  * @param collection Array of items
@@ -921,7 +983,32 @@ function isArraysEquals(a, b) {
921
983
  return false;
922
984
  }
923
985
  return true;
924
- }
986
+ }
987
+ /**
988
+ * Get previous item in array depend on key
989
+ * @param array Array of objects
990
+ * @param key Key name
991
+ * @param value Value for key
992
+ * @returns Previous item
993
+ */
994
+ function getPreviousItemByKey(array, key, value) {
995
+ const index = array.findIndex(item => item[key] === value);
996
+ return index > 0 ? array[index - 1] : undefined;
997
+ }
998
+ /**
999
+ * Get next item in array depend on key
1000
+ * @param array Array of objects
1001
+ * @param key Key name
1002
+ * @param value Value for key
1003
+ * @returns Next item
1004
+ */
1005
+ function getNextItemByKey(array, key, value) {
1006
+ const index = array.findIndex(item => item[key] === value);
1007
+ return index !== -1 && index < array.length - 1
1008
+ ? array[index + 1]
1009
+ : undefined;
1010
+ }
1011
+ ``;
925
1012
 
926
1013
  /**
927
1014
  * Set minutes for date
@@ -1497,44 +1584,194 @@ function stopAndPreventPropagation(event) {
1497
1584
  /**
1498
1585
  * Update property in object by key
1499
1586
  * @param obj Object to change
1500
- * @param propertyKey Property to change
1587
+ * @param key Property to change
1501
1588
  * @param newPropertyValue New property value
1502
- * @param oldPropertyValue Old property value
1589
+ * @param options Options for array types
1503
1590
  * @returns Updated object
1504
1591
  */
1505
- function updatePropertyByKey(obj, propertyKey, newPropertyValue, oldPropertyValue) {
1592
+ function updatePropertyByKey(obj, key, newPropertyValue, options = {}) {
1593
+ const { arrayMode = "toggle", arrayToggleValue = newPropertyValue } = options;
1594
+ // Arrays: map recursively over items
1506
1595
  if (Array.isArray(obj)) {
1507
- return obj.map(item => {
1508
- return isObject(item) && item !== null
1509
- ? updatePropertyByKey(item, propertyKey, newPropertyValue, oldPropertyValue)
1510
- : item;
1596
+ let changed = false;
1597
+ const mapped = obj.map(item => {
1598
+ const updated = updatePropertyByKey(item, key, newPropertyValue, options);
1599
+ if (updated !== item)
1600
+ changed = true;
1601
+ return updated;
1511
1602
  });
1512
- }
1513
- else if (isObject(obj) && obj !== null) {
1514
- const updatedObj = {};
1515
- for (const key in obj) {
1516
- if (key === propertyKey) {
1517
- if (Array.isArray(obj[key])) {
1518
- if (hasItem(obj[key], oldPropertyValue)) {
1519
- removeItem(obj[key], oldPropertyValue);
1603
+ return changed ? mapped : obj;
1604
+ }
1605
+ // Plain objects: iterate over keys immutably
1606
+ if (isObject(obj)) {
1607
+ const source = obj;
1608
+ let changed = false;
1609
+ const result = {};
1610
+ for (const propertyKey of Object.keys(source)) {
1611
+ const value = source[propertyKey];
1612
+ if (propertyKey === key) {
1613
+ // Matched key: apply update
1614
+ if (Array.isArray(value)) {
1615
+ if (arrayMode === "toggle") {
1616
+ const updatedArray = toggleItem(value, arrayToggleValue);
1617
+ result[propertyKey] = updatedArray;
1618
+ if (updatedArray !== value)
1619
+ changed = true;
1520
1620
  }
1521
1621
  else {
1522
- addItem(obj[key], oldPropertyValue);
1622
+ // replace mode
1623
+ if (!Array.isArray(newPropertyValue)) {
1624
+ throw new Error("arrayMode 'replace' requires newPropertyValue to be an array.");
1625
+ }
1626
+ const replaced = [...newPropertyValue];
1627
+ result[propertyKey] = replaced;
1628
+ changed = true;
1523
1629
  }
1524
- updatedObj[key] = obj[key];
1525
1630
  }
1526
1631
  else {
1527
- updatedObj[key] = newPropertyValue;
1632
+ // Non-array leaf -> set to newPropertyValue
1633
+ result[propertyKey] = newPropertyValue;
1634
+ if (result[propertyKey] !== value)
1635
+ changed = true;
1528
1636
  }
1529
1637
  }
1530
1638
  else {
1531
- updatedObj[key] = updatePropertyByKey(obj[key], propertyKey, newPropertyValue, oldPropertyValue);
1639
+ // Recurse into nested values
1640
+ const updatedVal = updatePropertyByKey(value, key, newPropertyValue, options);
1641
+ result[propertyKey] = updatedVal;
1642
+ if (updatedVal !== value)
1643
+ changed = true;
1532
1644
  }
1533
1645
  }
1534
- return updatedObj;
1646
+ return changed ? result : obj;
1535
1647
  }
1648
+ // Primitives or non-plain objects (Date, Map, etc.): return as-is
1536
1649
  return obj;
1537
1650
  }
1651
+ /**
1652
+ * Update property in object by path
1653
+ * @param obj Object to change
1654
+ * @param path Property to change
1655
+ * @param newPropertyValue New property value
1656
+ * @param previousPropertyValue New property value
1657
+ * @param options Options for array types
1658
+ * @returns Updated object
1659
+ */
1660
+ function updatePropertyByPath(obj, path, newPropertyValue, previousPropertyValue, options = {}) {
1661
+ const { arrayMode = "toggle" } = options;
1662
+ const segments = Array.isArray(path) ? path : _pathToSegments(path);
1663
+ /**
1664
+ * Parses a path string like:
1665
+ * - "a.b.c"
1666
+ * - "a.b[0].c"
1667
+ * - "items[*].tags"
1668
+ * into segments: ["a","b",0,"c"] or ["items","*", "tags"]
1669
+ *
1670
+ * Supported:
1671
+ * - Dot notation
1672
+ * - Bracket numbers: [0]
1673
+ * - Wildcard: [*] or .* (as a segment "*")
1674
+ *
1675
+ * Not supported:
1676
+ * - Quoted property names in brackets (e.g., ["foo bar"])
1677
+ * - Escaped dots in keys
1678
+ * @param path Property path
1679
+ * @returns Path segments
1680
+ */
1681
+ function _pathToSegments(path) {
1682
+ // Normalize brackets to dot form (e.g., a[0].b -> a.0.b, a[*].b -> a.*.b)
1683
+ const normalized = path
1684
+ .replace(/\[(\d+)\]/g, ".$1")
1685
+ .replace(/\[\*\]/g, ".*");
1686
+ const rawSegments = normalized.split(".").filter(s => s.length > 0);
1687
+ return rawSegments.map(seg => {
1688
+ if (seg === "*")
1689
+ return "*";
1690
+ const n = Number(seg);
1691
+ if (!Number.isNaN(n) && seg.trim() !== "" && String(n) === seg) {
1692
+ return n;
1693
+ }
1694
+ return seg;
1695
+ });
1696
+ }
1697
+ function _apply(current, remaining) {
1698
+ // Base: reached target path
1699
+ if (remaining.length === 0) {
1700
+ if (Array.isArray(current)) {
1701
+ if (arrayMode === "toggle") {
1702
+ return toggleItem(current, previousPropertyValue);
1703
+ }
1704
+ // replace mode
1705
+ if (!Array.isArray(newPropertyValue)) {
1706
+ throw new Error("arrayMode 'replace' requires newPropertyValue to be an array.");
1707
+ }
1708
+ return [...newPropertyValue];
1709
+ }
1710
+ // Non-array leaf -> set to newPropertyValue
1711
+ return newPropertyValue;
1712
+ }
1713
+ const [seg, ...rest] = remaining;
1714
+ // Wildcard handling
1715
+ if (seg === "*") {
1716
+ if (Array.isArray(current)) {
1717
+ // Map each element
1718
+ return current.map(item => _apply(item, rest));
1719
+ }
1720
+ if (isObject(current)) {
1721
+ const objCurr = current;
1722
+ const result = {};
1723
+ for (const key of Object.keys(objCurr)) {
1724
+ result[key] = _apply(objCurr[key], rest);
1725
+ }
1726
+ return result;
1727
+ }
1728
+ // If not object/array, nothing to expand -> return as-is
1729
+ return current;
1730
+ }
1731
+ // Numeric index -> navigate arrays
1732
+ if (typeof seg === "number") {
1733
+ if (!Array.isArray(current)) {
1734
+ // Path expects array here, but current isn't an array => no-op
1735
+ return current;
1736
+ }
1737
+ const arr = current;
1738
+ if (seg < 0 || seg >= arr.length) {
1739
+ // Out of bounds -> no-op (alternatively, you could extend the array)
1740
+ return current;
1741
+ }
1742
+ const updatedItem = _apply(arr[seg], rest);
1743
+ if (updatedItem === arr[seg]) {
1744
+ return current; // no structural change
1745
+ }
1746
+ const newArr = arr.slice();
1747
+ newArr[seg] = updatedItem;
1748
+ return newArr;
1749
+ }
1750
+ // String key -> navigate objects
1751
+ if (isObject(current)) {
1752
+ const objCurr = current;
1753
+ const nextVal = objCurr[seg];
1754
+ const updatedVal = _apply(nextVal, rest);
1755
+ if (updatedVal === nextVal) {
1756
+ return current; // no structural change
1757
+ }
1758
+ return { ...objCurr, [seg]: updatedVal };
1759
+ }
1760
+ // If we cannot traverse further (e.g., null, primitive, or array when expecting object) -> no-op
1761
+ return current;
1762
+ }
1763
+ return _apply(obj, segments);
1764
+ }
1765
+ /**
1766
+ * Get changed property key
1767
+ * @param previous Previous value
1768
+ * @param current Currency value
1769
+ * @returns Key of property that was changed
1770
+ */
1771
+ function findChangedPropertyKey(previous, current) {
1772
+ const path = findChangedPropertyPath(previous, current), parts = path?.split('.');
1773
+ return parts && parts.length ? parts[parts.length - 1] : undefined;
1774
+ }
1538
1775
  /**
1539
1776
  * Get changed property path
1540
1777
  * @param previous Previous value
@@ -1559,16 +1796,6 @@ function findChangedPropertyPath(previous, current, parentKey = '') {
1559
1796
  }
1560
1797
  return null;
1561
1798
  }
1562
- /**
1563
- * Get changed property key
1564
- * @param previous Previous value
1565
- * @param current Currency value
1566
- * @returns Key of property that was changed
1567
- */
1568
- function findChangedPropertyKey(previous, current) {
1569
- const path = findChangedPropertyPath(previous, current), parts = path?.split('.');
1570
- return parts && parts.length ? parts[parts.length - 1] : undefined;
1571
- }
1572
1799
  /**
1573
1800
  * Clone object without any reference
1574
1801
  * @param value Object to clone
@@ -3118,10 +3345,10 @@ class PaginationComponent {
3118
3345
  }
3119
3346
  }
3120
3347
  PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PaginationComponent, deps: [{ token: PaginationService }], target: i0.ɵɵFactoryTarget.Component });
3121
- PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: PaginationComponent, selector: "sfc-pagination", inputs: { count: "count", full: "full", limits: "limits", page: "page", total: "total", size: "size" }, ngImport: i0, template: "<div class=\"container\">\r\n <sfc-delimeter></sfc-delimeter>\r\n <ul *ngIf=\"model.any\">\r\n <li [sfcShowHideElement]=\"model.previousPage\" (click)=\"onPageClick(model.previous)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronLeft\"></fa-icon>\r\n </button>\r\n </li>\r\n <li *ngIf=\"model.firstPage\" (click)=\"onPageClick(1)\">\r\n <button>1</button>\r\n </li>\r\n <li *ngIf=\"model.firstPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngFor=\"let page of model.range\" (click)=\"model.page !== page && onPageClick(page)\">\r\n <button [class.active]=\"model.page === page\">{{page}}</button>\r\n </li>\r\n <li *ngIf=\"model.lastPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngIf=\"model.lastPage\" (click)=\"onPageClick(model.total)\">\r\n <button>{{model.total}}</button>\r\n </li>\r\n <li [sfcShowHideElement]=\"model.nextPage\" (click)=\"onPageClick(model.next)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronRight\"></fa-icon>\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;align-items:center;justify-content:center;flex-wrap:wrap;-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{transition:color .5s ease;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 .container ul li button,:host-context(.sfc-default-theme) :host .container ul li button,:host .container ul li span,: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:#fff}:host .container ul li button{transition:color .5s ease;outline:none;position:relative;transition:all .17s linear}:host .container ul li button,:host-context(.sfc-default-theme) :host .container ul li button{color:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button{color:#fff}:host .container ul li button:before{transition:background .5s ease;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 .container ul li button:before,: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 .container ul li button:hover:not(.active){transition:color .5s ease}:host .container ul li button:hover:not(.active),: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:#fff}: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{transition:background .5s ease;color:#545e61!important}:host .container ul li button.active,:host-context(.sfc-default-theme) :host .container ul li button.active{background:rgba(0,0,0,.1019607843)}:host-context(.sfc-dark-theme) :host .container ul li button.active{background:#f5f7fa}@keyframes hover-animation{0%{opacity:1}to{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: ShowHideElementDirective, selector: "[sfcShowHideElement]", inputs: ["sfcShowHideElement", "delay"] }, { kind: "component", type: DelimeterComponent, selector: "sfc-delimeter", inputs: ["label", "direction"] }] });
3348
+ PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: PaginationComponent, selector: "sfc-pagination", inputs: { count: "count", full: "full", limits: "limits", page: "page", total: "total", size: "size" }, ngImport: i0, template: "<div class=\"container\">\r\n <sfc-delimeter></sfc-delimeter>\r\n <ul *ngIf=\"model.any\">\r\n <li [sfcShowHideElement]=\"model.previousPage\" (click)=\"onPageClick(model.previous)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronLeft\"></fa-icon>\r\n </button>\r\n </li>\r\n <li *ngIf=\"model.firstPage\" (click)=\"onPageClick(1)\">\r\n <button>1</button>\r\n </li>\r\n <li *ngIf=\"model.firstPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngFor=\"let page of model.range\" (click)=\"model.page !== page && onPageClick(page)\">\r\n <button [class.active]=\"model.page === page\">{{page}}</button>\r\n </li>\r\n <li *ngIf=\"model.lastPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngIf=\"model.lastPage\" (click)=\"onPageClick(model.total)\">\r\n <button>{{model.total}}</button>\r\n </li>\r\n <li [sfcShowHideElement]=\"model.nextPage\" (click)=\"onPageClick(model.next)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronRight\"></fa-icon>\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;align-items:center;justify-content:center;flex-wrap:wrap;gap:0;-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{transition:color .5s ease;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 .container ul li button,:host-context(.sfc-default-theme) :host .container ul li button,:host .container ul li span,: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:#fff}:host .container ul li button{transition:color .5s ease;outline:none;position:relative;transition:all .17s linear}:host .container ul li button,:host-context(.sfc-default-theme) :host .container ul li button{color:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button{color:#fff}:host .container ul li button:before{transition:background .5s ease;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 .container ul li button:before,: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 .container ul li button:hover:not(.active){transition:color .5s ease}:host .container ul li button:hover:not(.active),: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:#fff}: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{transition:background .5s ease;color:#545e61!important}:host .container ul li button.active,:host-context(.sfc-default-theme) :host .container ul li button.active{background:rgba(0,0,0,.1019607843)}:host-context(.sfc-dark-theme) :host .container ul li button.active{background:#f5f7fa}@keyframes hover-animation{0%{opacity:1}to{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: ShowHideElementDirective, selector: "[sfcShowHideElement]", inputs: ["sfcShowHideElement", "delay"] }, { kind: "component", type: DelimeterComponent, selector: "sfc-delimeter", inputs: ["label", "direction"] }] });
3122
3349
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PaginationComponent, decorators: [{
3123
3350
  type: Component,
3124
- args: [{ selector: 'sfc-pagination', template: "<div class=\"container\">\r\n <sfc-delimeter></sfc-delimeter>\r\n <ul *ngIf=\"model.any\">\r\n <li [sfcShowHideElement]=\"model.previousPage\" (click)=\"onPageClick(model.previous)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronLeft\"></fa-icon>\r\n </button>\r\n </li>\r\n <li *ngIf=\"model.firstPage\" (click)=\"onPageClick(1)\">\r\n <button>1</button>\r\n </li>\r\n <li *ngIf=\"model.firstPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngFor=\"let page of model.range\" (click)=\"model.page !== page && onPageClick(page)\">\r\n <button [class.active]=\"model.page === page\">{{page}}</button>\r\n </li>\r\n <li *ngIf=\"model.lastPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngIf=\"model.lastPage\" (click)=\"onPageClick(model.total)\">\r\n <button>{{model.total}}</button>\r\n </li>\r\n <li [sfcShowHideElement]=\"model.nextPage\" (click)=\"onPageClick(model.next)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronRight\"></fa-icon>\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;align-items:center;justify-content:center;flex-wrap:wrap;-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{transition:color .5s ease;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 .container ul li button,:host-context(.sfc-default-theme) :host .container ul li button,:host .container ul li span,: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:#fff}:host .container ul li button{transition:color .5s ease;outline:none;position:relative;transition:all .17s linear}:host .container ul li button,:host-context(.sfc-default-theme) :host .container ul li button{color:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button{color:#fff}:host .container ul li button:before{transition:background .5s ease;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 .container ul li button:before,: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 .container ul li button:hover:not(.active){transition:color .5s ease}:host .container ul li button:hover:not(.active),: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:#fff}: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{transition:background .5s ease;color:#545e61!important}:host .container ul li button.active,:host-context(.sfc-default-theme) :host .container ul li button.active{background:rgba(0,0,0,.1019607843)}:host-context(.sfc-dark-theme) :host .container ul li button.active{background:#f5f7fa}@keyframes hover-animation{0%{opacity:1}to{opacity:0}}\n"] }]
3351
+ args: [{ selector: 'sfc-pagination', template: "<div class=\"container\">\r\n <sfc-delimeter></sfc-delimeter>\r\n <ul *ngIf=\"model.any\">\r\n <li [sfcShowHideElement]=\"model.previousPage\" (click)=\"onPageClick(model.previous)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronLeft\"></fa-icon>\r\n </button>\r\n </li>\r\n <li *ngIf=\"model.firstPage\" (click)=\"onPageClick(1)\">\r\n <button>1</button>\r\n </li>\r\n <li *ngIf=\"model.firstPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngFor=\"let page of model.range\" (click)=\"model.page !== page && onPageClick(page)\">\r\n <button [class.active]=\"model.page === page\">{{page}}</button>\r\n </li>\r\n <li *ngIf=\"model.lastPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngIf=\"model.lastPage\" (click)=\"onPageClick(model.total)\">\r\n <button>{{model.total}}</button>\r\n </li>\r\n <li [sfcShowHideElement]=\"model.nextPage\" (click)=\"onPageClick(model.next)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronRight\"></fa-icon>\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;align-items:center;justify-content:center;flex-wrap:wrap;gap:0;-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{transition:color .5s ease;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 .container ul li button,:host-context(.sfc-default-theme) :host .container ul li button,:host .container ul li span,: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:#fff}:host .container ul li button{transition:color .5s ease;outline:none;position:relative;transition:all .17s linear}:host .container ul li button,:host-context(.sfc-default-theme) :host .container ul li button{color:#545e61}:host-context(.sfc-dark-theme) :host .container ul li button{color:#fff}:host .container ul li button:before{transition:background .5s ease;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 .container ul li button:before,: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 .container ul li button:hover:not(.active){transition:color .5s ease}:host .container ul li button:hover:not(.active),: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:#fff}: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{transition:background .5s ease;color:#545e61!important}:host .container ul li button.active,:host-context(.sfc-default-theme) :host .container ul li button.active{background:rgba(0,0,0,.1019607843)}:host-context(.sfc-dark-theme) :host .container ul li button.active{background:#f5f7fa}@keyframes hover-animation{0%{opacity:1}to{opacity:0}}\n"] }]
3125
3352
  }], ctorParameters: function () { return [{ type: PaginationService }]; }, propDecorators: { count: [{
3126
3353
  type: Input
3127
3354
  }], full: [{
@@ -3178,10 +3405,10 @@ class LoadMoreButtonComponent {
3178
3405
  }
3179
3406
  }
3180
3407
  LoadMoreButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LoadMoreButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3181
- LoadMoreButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: LoadMoreButtonComponent, selector: "sfc-load-more-button", inputs: { label: "label", icon: "icon" }, outputs: { more: "more" }, ngImport: i0, template: "<div class=\"container\">\r\n <sfc-delimeter></sfc-delimeter>\r\n <div class=\"button\" (sfcMouseDown)=\"more.emit($event)\">\r\n <fa-icon [icon]=\"icon\"></fa-icon>\r\n <span>{{label}}</span>\r\n </div>\r\n</div>", styles: [":host{cursor:default}:host .container{text-align:center}:host .container,:host-context(.sfc-default-theme) :host .container{background:#fff}:host-context(.sfc-dark-theme) :host .container{background:transparent}:host .container .button{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;cursor:pointer;transition:color .5s ease;transition:color .5s;padding:.5em 0 1em}:host .container .button,:host-context(.sfc-default-theme) :host .container .button{color:#545e61}:host-context(.sfc-dark-theme) :host .container .button{color:#fff}:host .container .button fa-icon{font-size:.7em;margin-right:.31em}:host .container .button span{font-size:.6em;font-weight:700;text-transform:uppercase}:host .container .button:hover{color:#ffce54}\n"], dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: MouseDownDirective, selector: "[sfcMouseDown]", inputs: ["button"], outputs: ["sfcMouseDown"] }, { kind: "component", type: DelimeterComponent, selector: "sfc-delimeter", inputs: ["label", "direction"] }] });
3408
+ LoadMoreButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: LoadMoreButtonComponent, selector: "sfc-load-more-button", inputs: { label: "label", icon: "icon" }, outputs: { more: "more" }, ngImport: i0, template: "<div class=\"container\">\r\n <sfc-delimeter></sfc-delimeter>\r\n <div class=\"button\" (sfcMouseDown)=\"more.emit($event)\">\r\n <fa-icon [icon]=\"icon\"></fa-icon>\r\n <span>{{label}}</span>\r\n </div>\r\n</div>", styles: [":host{cursor:default}:host .container{text-align:center}:host .container,:host-context(.sfc-default-theme) :host .container{background:#fff}:host-context(.sfc-dark-theme) :host .container{background:transparent}:host .container .button{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;cursor:pointer;transition:color .5s ease;transition:color .5s;padding:.5em 0 1em}:host .container .button,:host-context(.sfc-default-theme) :host .container .button{color:#545e61}:host-context(.sfc-dark-theme) :host .container .button{color:#fff}:host .container .button fa-icon{font-size:.7em;margin-right:.31em}:host .container .button span{font-size:.6em;font-weight:700}:host .container .button:hover{color:#ffce54}\n"], dependencies: [{ kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: MouseDownDirective, selector: "[sfcMouseDown]", inputs: ["button"], outputs: ["sfcMouseDown"] }, { kind: "component", type: DelimeterComponent, selector: "sfc-delimeter", inputs: ["label", "direction"] }] });
3182
3409
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LoadMoreButtonComponent, decorators: [{
3183
3410
  type: Component,
3184
- args: [{ selector: 'sfc-load-more-button', template: "<div class=\"container\">\r\n <sfc-delimeter></sfc-delimeter>\r\n <div class=\"button\" (sfcMouseDown)=\"more.emit($event)\">\r\n <fa-icon [icon]=\"icon\"></fa-icon>\r\n <span>{{label}}</span>\r\n </div>\r\n</div>", styles: [":host{cursor:default}:host .container{text-align:center}:host .container,:host-context(.sfc-default-theme) :host .container{background:#fff}:host-context(.sfc-dark-theme) :host .container{background:transparent}:host .container .button{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;cursor:pointer;transition:color .5s ease;transition:color .5s;padding:.5em 0 1em}:host .container .button,:host-context(.sfc-default-theme) :host .container .button{color:#545e61}:host-context(.sfc-dark-theme) :host .container .button{color:#fff}:host .container .button fa-icon{font-size:.7em;margin-right:.31em}:host .container .button span{font-size:.6em;font-weight:700;text-transform:uppercase}:host .container .button:hover{color:#ffce54}\n"] }]
3411
+ args: [{ selector: 'sfc-load-more-button', template: "<div class=\"container\">\r\n <sfc-delimeter></sfc-delimeter>\r\n <div class=\"button\" (sfcMouseDown)=\"more.emit($event)\">\r\n <fa-icon [icon]=\"icon\"></fa-icon>\r\n <span>{{label}}</span>\r\n </div>\r\n</div>", styles: [":host{cursor:default}:host .container{text-align:center}:host .container,:host-context(.sfc-default-theme) :host .container{background:#fff}:host-context(.sfc-dark-theme) :host .container{background:transparent}:host .container .button{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;cursor:pointer;transition:color .5s ease;transition:color .5s;padding:.5em 0 1em}:host .container .button,:host-context(.sfc-default-theme) :host .container .button{color:#545e61}:host-context(.sfc-dark-theme) :host .container .button{color:#fff}:host .container .button fa-icon{font-size:.7em;margin-right:.31em}:host .container .button span{font-size:.6em;font-weight:700}:host .container .button:hover{color:#ffce54}\n"] }]
3185
3412
  }], propDecorators: { label: [{
3186
3413
  type: Input
3187
3414
  }], icon: [{
@@ -3788,6 +4015,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
3788
4015
  * Generated bundle index. Do not edit.
3789
4016
  */
3790
4017
 
3791
- export { BounceLoaderComponent, BrowserDocumentRef, BrowserWindowRef, ButtonComponent, ButtonType, CheckmarkComponent, CheckmarkType, CircleLoaderComponent, CircleLoaderType, ClickOutsideDirective, CloseComponent, CollapseExpandComponent, CollapseExpandContainerComponent, CollapseExpandDirective, CommonConstants, Compare, ComponentReferenceDirective, ComponentSize, ComponentSizeDirective, DOCUMENT, DOCUMENT_PROVIDERS, DateTimeConstants, DefaultModalFooterComponent, DefaultModalHeaderComponent, DelimeterComponent, DestroyParentDirective, Direction, DocumentRef, DomChangesDirective, DotComponent, DotsComponent, HamburgerComponent, HamburgerMenuComponent, IconComponent, IfDirective, ImageLoadDirective, ImageLoadService, ItemsView, LoadContainerChangesSource, LoadContainerComponent, LoadContainerLoadType, LoadContainerType, LoadMoreButtonComponent, LoadMoreService, LoaderService, MediaLimits, MessageComponent, ModalComponent, ModalOpenDirective, ModalOpenOnClickDirective, ModalService, ModalTemplate, MouseDownDirective, NgxSfcCommonModule, NotificationType, ObservableBehaviorModel, ObservableModel, PaginationComponent, PaginationConstants, PaginationService, Position, ReloadService, RepeatPipe, ResizeService, ScrollIntoViewDirective, ScrollTrackerDirective, Select, Sequence, ShowHideElementDirective, SortByPipe, SortingDirection, SortingService, State, SwitchMultiCasePipe, TagComponent, TemplateContentComponent, TemplateReferenceDirective, Theme, ThrowElementOnHoverDirective, ToggleComponent, ToggleSwitcherComponent, TooltipComponent, TooltipType, UIClass, UIConstants, WINDOW, WINDOW_PROVIDERS, WindowRef, addClasses, addItem, addPropertyToObject, all, any, browserDocumentProvider, browserWindowProvider, buildHttpParams, contains, convertDateToTimestamp, convertFromBase64String, convertTimestampToDate, convertToBase64String, convertUTCDateToLocalDate, count, deepClone, distinct, documentFactory, documentProvider, findChangedPropertyKey, findChangedPropertyPath, firstItem, firstOrDefault, generateGuid, getAge, getCalcValue, getCollectionOrEmpty, getCssLikeValue, getFileExtension, getFirstDayOfMonth, getFirstDayOfMonthByYearAndMonth, getFirstDayOfYear, getLastDayOfMonth, getLastDayOfMonthByYearAndMonth, getLastDayOfYear, getNextDate, getNextMonth, getNextYear, getPreviousDate, getPreviousMonth, getPreviousYear, getRotateValue, getValueFromCssLikeValue, getWeeksNumberInMonth, hasAnyItem, hasItem, hasItemBy, hasObjectItem, hexToRgb, isArraysEquals, isAsyncData, isChromeBrowser, isDateGreat, isDateGreatOrEqual, isDateTimeGreat, isDateTimeGreatOrEqual, isDateTimeLessOrEqual, isDefined, isEmail, isEqual, isEqualDateTimes, isEqualDates, isImage, isJsonString, isNullOrEmptyString, isNumeric, isObject, isString, isTimeGreatOrEqual, isTimeLessOrEqual, lastItem, max, mergeDeep, nameof, parseBoolean, parseFileSize, readAsDataURL, remove, removeClasses, removeItem, removeItemBy, removePropertyFromObject, replaceRgbOpacity, rgbToHex, setDay, setDefaultSecondsAndMiliseconds, setHours, setMilliseconds, setMinutes, setSeconds, setYear, skip, sort, sortBy, sortByPath, stopAndPreventPropagation, sum, trim, updateItemBy, updatePropertyByKey, where, windowFactory, windowProvider };
4018
+ export { BounceLoaderComponent, BrowserDocumentRef, BrowserWindowRef, ButtonComponent, ButtonType, CheckmarkComponent, CheckmarkType, CircleLoaderComponent, CircleLoaderType, ClickOutsideDirective, CloseComponent, CollapseExpandComponent, CollapseExpandContainerComponent, CollapseExpandDirective, Color, CommonConstants, Compare, ComponentReferenceDirective, ComponentSize, ComponentSizeDirective, DOCUMENT, DOCUMENT_PROVIDERS, DateTimeConstants, DefaultModalFooterComponent, DefaultModalHeaderComponent, DelimeterComponent, DestroyParentDirective, Direction, DocumentRef, DomChangesDirective, DotComponent, DotsComponent, HamburgerComponent, HamburgerMenuComponent, IconComponent, IfDirective, ImageLoadDirective, ImageLoadService, ItemsView, LoadContainerChangesSource, LoadContainerComponent, LoadContainerLoadType, LoadContainerType, LoadMoreButtonComponent, LoadMoreService, LoaderService, MediaLimits, MessageComponent, ModalComponent, ModalOpenDirective, ModalOpenOnClickDirective, ModalService, ModalTemplate, MouseDownDirective, NgxSfcCommonModule, NotificationType, ObservableBehaviorModel, ObservableModel, PaginationComponent, PaginationConstants, PaginationService, Position, ReloadService, RepeatPipe, ResizeService, ScrollIntoViewDirective, ScrollTrackerDirective, Select, Sequence, ShowHideElementDirective, SortByPipe, SortingDirection, SortingService, State, SwitchMultiCasePipe, TagComponent, TemplateContentComponent, TemplateReferenceDirective, Theme, ThrowElementOnHoverDirective, ToggleComponent, ToggleSwitcherComponent, TooltipComponent, TooltipType, UIClass, UIConstants, WINDOW, WINDOW_PROVIDERS, WindowRef, addClasses, addItem, addPropertyToObject, all, any, browserDocumentProvider, browserWindowProvider, buildHttpParams, contains, convertDateToTimestamp, convertFromBase64String, convertTimestampToDate, convertToBase64String, convertUTCDateToLocalDate, count, deepClone, distinct, documentFactory, documentProvider, findChangedPropertyKey, findChangedPropertyPath, firstItem, firstOrDefault, generateGuid, getAge, getCalcValue, getCollectionOrEmpty, getCssLikeValue, getFileExtension, getFirstDayOfMonth, getFirstDayOfMonthByYearAndMonth, getFirstDayOfYear, getLastDayOfMonth, getLastDayOfMonthByYearAndMonth, getLastDayOfYear, getNextDate, getNextItemByKey, getNextMonth, getNextYear, getPreviousDate, getPreviousItemByKey, getPreviousMonth, getPreviousYear, getRotateValue, getValueFromCssLikeValue, getWeeksNumberInMonth, hasAnyItem, hasItem, hasItemBy, hasObjectItem, hexToRgb, isArraysEquals, isAsyncData, isChromeBrowser, isDateGreat, isDateGreatOrEqual, isDateTimeGreat, isDateTimeGreatOrEqual, isDateTimeLessOrEqual, isDefined, isEmail, isEqual, isEqualDateTimes, isEqualDates, isImage, isJsonString, isNullOrEmptyString, isNumeric, isObject, isString, isTimeGreatOrEqual, isTimeLessOrEqual, lastItem, max, mergeDeep, nameof, parseBoolean, parseFileSize, readAsDataURL, remove, removeClasses, removeItem, removeItemBy, removePropertyFromObject, replaceRgbOpacity, rgbToHex, setDay, setDefaultSecondsAndMiliseconds, setHours, setMilliseconds, setMinutes, setSeconds, setYear, skip, sort, sortBy, sortByPath, stopAndPreventPropagation, sum, toggleItem, trim, updateItemBy, updatePropertyByKey, updatePropertyByPath, where, windowFactory, windowProvider };
3792
4019
  //# sourceMappingURL=ngx-sfc-common.mjs.map
3793
4020
  //# sourceMappingURL=ngx-sfc-common.mjs.map