@progressio_resources/gravity-design-system 2.1.9 → 2.2.1

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 (36) hide show
  1. package/esm2022/lib/components/gravity-table/gravity-table.component.mjs +50 -60
  2. package/esm2022/lib/components/gravity-tree-view/gravity-tree-view.component.mjs +69 -0
  3. package/esm2022/lib/components/gravity-tree-view/models/node-item.mjs +2 -0
  4. package/esm2022/lib/components/gravity-tree-view/models/node-selected-state.mjs +7 -0
  5. package/esm2022/lib/components/gravity-tree-view/models/node-state.mjs +2 -0
  6. package/esm2022/lib/components/gravity-tree-view/models/tree-callbacks.mjs +2 -0
  7. package/esm2022/lib/components/gravity-tree-view/node/node-checkbox/node-checkbox.component.mjs +26 -0
  8. package/esm2022/lib/components/gravity-tree-view/node/node-name/node-name.component.mjs +13 -0
  9. package/esm2022/lib/components/gravity-tree-view/node/node-toggle/node-toggle.component.mjs +15 -0
  10. package/esm2022/lib/components/gravity-tree-view/node/node.component.mjs +17 -0
  11. package/esm2022/lib/components/gravity-tree-view/service/tree-service.mjs +217 -0
  12. package/esm2022/lib/gravity-design-system.module.mjs +22 -5
  13. package/esm2022/lib/vendor/gravity-tooltip/gravity-tooltip.directive.mjs +1 -3
  14. package/esm2022/public-api.mjs +2 -1
  15. package/fesm2022/progressio_resources-gravity-design-system.mjs +403 -66
  16. package/fesm2022/progressio_resources-gravity-design-system.mjs.map +1 -1
  17. package/lib/components/gravity-table/gravity-table.component.d.ts +3 -4
  18. package/lib/components/gravity-tree-view/gravity-tree-view.component.d.ts +21 -0
  19. package/lib/components/gravity-tree-view/models/node-item.d.ts +9 -0
  20. package/lib/components/gravity-tree-view/models/node-selected-state.d.ts +5 -0
  21. package/lib/components/gravity-tree-view/models/node-state.d.ts +13 -0
  22. package/lib/components/gravity-tree-view/models/tree-callbacks.d.ts +9 -0
  23. package/lib/components/gravity-tree-view/node/node-checkbox/node-checkbox.component.d.ts +11 -0
  24. package/lib/components/gravity-tree-view/node/node-name/node-name.component.d.ts +7 -0
  25. package/lib/components/gravity-tree-view/node/node-toggle/node-toggle.component.d.ts +7 -0
  26. package/lib/components/gravity-tree-view/node/node.component.d.ts +7 -0
  27. package/lib/components/gravity-tree-view/service/tree-service.d.ts +42 -0
  28. package/lib/gravity-design-system.module.d.ts +14 -9
  29. package/lib/vendor/gravity-tooltip/gravity-tooltip.directive.d.ts +0 -1
  30. package/package.json +2 -3
  31. package/public-api.d.ts +1 -0
  32. package/src/lib/styles/components/_tables.scss +9 -9
  33. package/src/lib/styles/overwrite/pretty-checkbox/_core.scss +0 -1
  34. package/src/lib/styles/overwrite/pretty-checkbox/elements/switch/_general.scss +2 -2
  35. package/src/lib/styles/overwrite/pretty-checkbox/elements/switch/_mixin.scss +1 -1
  36. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.directive.ts +0 -3
@@ -14,6 +14,8 @@ import * as i2$2 from 'angular-svg-icon-preloader';
14
14
  import { AngularSvgIconPreloaderModule } from 'angular-svg-icon-preloader';
15
15
  import * as i2$1 from 'ngx-pretty-checkbox';
16
16
  import { NgxPrettyCheckboxModule } from 'ngx-pretty-checkbox';
17
+ import { BehaviorSubject, timer } from 'rxjs';
18
+ import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
17
19
 
18
20
  class GravityIconComponent {
19
21
  constructor() {
@@ -667,8 +669,6 @@ class GravityTooltipDirective {
667
669
  this.destroyTooltip();
668
670
  }, this.options['hideDelayAfterClick']);
669
671
  }
670
- ngOnInit() {
671
- }
672
672
  ngOnChanges(changes) {
673
673
  this.initOptions = this.renameProperties(this.initOptions);
674
674
  let changedOptions = this.getProperties(changes);
@@ -1537,7 +1537,6 @@ class GravityTableComponent {
1537
1537
  this.renderer = renderer;
1538
1538
  this.tableDensity = "standard";
1539
1539
  this.tableSizeInput = "auto";
1540
- this.firstTime = true;
1541
1540
  this.tableElement = null;
1542
1541
  this.tableSize = 'xl';
1543
1542
  let milliseconds = new Date().getTime();
@@ -1547,11 +1546,7 @@ class GravityTableComponent {
1547
1546
  ngAfterViewInit() {
1548
1547
  this.tableElement = this.tableContainer?.nativeElement?.childNodes[0];
1549
1548
  this.renderer.setAttribute(this.tableElement, 'table-id', this.tableId);
1550
- let tableHeaders = this.getTableHeaders();
1551
- this.initializeTable(tableHeaders);
1552
- this.adjustTableDensity(this.tableDensity);
1553
- this.adjustButtonsSize();
1554
- this.onResize();
1549
+ this.initializeComponent();
1555
1550
  }
1556
1551
  ngOnChanges(changes) {
1557
1552
  if (this.tableElement) {
@@ -1564,15 +1559,6 @@ class GravityTableComponent {
1564
1559
  }
1565
1560
  }
1566
1561
  }
1567
- ngAfterContentChecked() {
1568
- if (this.tableElement) {
1569
- let tableHeaders = this.getTableHeaders();
1570
- this.initializeTable(tableHeaders);
1571
- this.adjustTableDensity(this.tableDensity);
1572
- this.adjustButtonsSize();
1573
- this.onResize();
1574
- }
1575
- }
1576
1562
  getTableHeaders() {
1577
1563
  let tableHeaderItems = document.querySelectorAll('thead tr th');
1578
1564
  let tableHeaders = [];
@@ -1581,51 +1567,55 @@ class GravityTableComponent {
1581
1567
  });
1582
1568
  return tableHeaders;
1583
1569
  }
1570
+ initializeComponent() {
1571
+ let tableHeaders = this.getTableHeaders();
1572
+ this.initializeTable(tableHeaders);
1573
+ this.adjustTableDensity(this.tableDensity);
1574
+ this.adjustButtonsSize();
1575
+ this.onResize();
1576
+ }
1584
1577
  initializeTable(tableHeaders) {
1585
- if (this.firstTime) {
1586
- this.firstTime = false;
1587
- //Set corresponding tableHeader as an attribute of each td
1588
- let tableBody = document.querySelectorAll('table[table-id="' + this.tableId + '"] tbody tr td');
1589
- tableBody.forEach((tableBodyRow, index) => {
1590
- this.renderer.setAttribute(tableBodyRow, 'header-name', tableHeaders[index % tableHeaders.length]);
1591
- });
1592
- //Creates a copy of mobile-menu-trigger element for each tr
1593
- let tableBodyRows = document.querySelectorAll('table[table-id="' + this.tableId + '"] tbody tr');
1594
- let closeButtons = document.querySelectorAll('gravity-button[id-reference="close-button"]');
1595
- tableBodyRows.forEach((tr, index) => {
1596
- let mobileMenuTrigger = document.createElement('div');
1597
- this.renderer.addClass(mobileMenuTrigger, 'mobile-menu-trigger');
1598
- this.renderer.setAttribute(mobileMenuTrigger, 'cloned-node', 'true');
1599
- let menuToggle = document.createElement('div');
1600
- this.renderer.addClass(menuToggle, 'menu-toggle');
1601
- menuToggle.appendChild(document.createElement('span'));
1602
- menuToggle.appendChild(document.createElement('span'));
1603
- menuToggle.appendChild(document.createElement('span'));
1604
- menuToggle.addEventListener("click", () => {
1605
- if (menuToggle.classList.contains('open')) {
1606
- this.renderer.removeClass(menuToggle, 'open');
1607
- this.renderer.removeClass(menuToggle.parentElement.lastElementChild, 'open');
1608
- }
1609
- else {
1610
- this.renderer.addClass(menuToggle, 'open');
1611
- this.renderer.addClass(menuToggle.parentElement.lastElementChild, 'open');
1612
- }
1613
- });
1614
- mobileMenuTrigger.appendChild(menuToggle);
1615
- let panel = document.createElement('div');
1616
- this.renderer.addClass(panel, 'panel');
1617
- let closeButtonFromNodeList = closeButtons.item(index);
1618
- let closeButtonRemoved = closeButtonFromNodeList.parentNode.removeChild(closeButtonFromNodeList);
1619
- this.renderer.setAttribute(closeButtonRemoved, 'cloned-button', 'true');
1620
- closeButtonRemoved.addEventListener("click", () => {
1578
+ //Set corresponding tableHeader as an attribute of each td
1579
+ let tableBody = document.querySelectorAll('table[table-id="' + this.tableId + '"] tbody tr td');
1580
+ tableBody.forEach((tableBodyRow, index) => {
1581
+ this.renderer.setAttribute(tableBodyRow, 'header-name', tableHeaders[index % tableHeaders.length]);
1582
+ });
1583
+ //Creates a copy of mobile-menu-trigger element for each tr
1584
+ let tableBodyRows = document.querySelectorAll('table[table-id="' + this.tableId + '"] tbody tr');
1585
+ let closeButtons = document.querySelectorAll('gravity-button[id-reference="close-button"]');
1586
+ tableBodyRows.forEach((tr, index) => {
1587
+ let mobileMenuTrigger = document.createElement('div');
1588
+ this.renderer.addClass(mobileMenuTrigger, 'mobile-menu-trigger');
1589
+ this.renderer.setAttribute(mobileMenuTrigger, 'cloned-node', 'true');
1590
+ let menuToggle = document.createElement('div');
1591
+ this.renderer.addClass(menuToggle, 'menu-toggle');
1592
+ menuToggle.appendChild(document.createElement('span'));
1593
+ menuToggle.appendChild(document.createElement('span'));
1594
+ menuToggle.appendChild(document.createElement('span'));
1595
+ menuToggle.addEventListener("click", () => {
1596
+ if (menuToggle.classList.contains('open')) {
1621
1597
  this.renderer.removeClass(menuToggle, 'open');
1622
1598
  this.renderer.removeClass(menuToggle.parentElement.lastElementChild, 'open');
1623
- });
1624
- panel.append(closeButtonRemoved);
1625
- mobileMenuTrigger.appendChild(panel);
1626
- tr.insertBefore(mobileMenuTrigger, tr.firstChild);
1599
+ }
1600
+ else {
1601
+ this.renderer.addClass(menuToggle, 'open');
1602
+ this.renderer.addClass(menuToggle.parentElement.lastElementChild, 'open');
1603
+ }
1627
1604
  });
1628
- }
1605
+ mobileMenuTrigger.appendChild(menuToggle);
1606
+ let panel = document.createElement('div');
1607
+ this.renderer.addClass(panel, 'panel');
1608
+ let closeButtonFromNodeList = closeButtons.item(index);
1609
+ let closeButtonRemoved = closeButtonFromNodeList.parentNode.removeChild(closeButtonFromNodeList);
1610
+ this.renderer.setAttribute(closeButtonRemoved, 'cloned-button', 'true');
1611
+ closeButtonRemoved.addEventListener("click", () => {
1612
+ this.renderer.removeClass(menuToggle, 'open');
1613
+ this.renderer.removeClass(menuToggle.parentElement.lastElementChild, 'open');
1614
+ });
1615
+ panel.append(closeButtonRemoved);
1616
+ mobileMenuTrigger.appendChild(panel);
1617
+ tr.insertBefore(mobileMenuTrigger, tr.firstChild);
1618
+ });
1629
1619
  }
1630
1620
  adjustTableDensity(densityValue) {
1631
1621
  this.renderer.removeClass(this.tableElement, 'standard-table');
@@ -1710,7 +1700,7 @@ class GravityTableComponent {
1710
1700
  }
1711
1701
  if (this.tableSize == 'lg' || this.tableSize == 'xl') {
1712
1702
  let nodeListIndex = nodesList.length - 1;
1713
- while (nodesList.length != 1) {
1703
+ while (nodesList.length > 1) {
1714
1704
  let item = nodesList.item(nodeListIndex);
1715
1705
  let closeButtonNode = item.parentNode.querySelectorAll('gravity-button[id-reference="close-button"]').item(0);
1716
1706
  if (item != closeButtonNode) {
@@ -1723,11 +1713,11 @@ class GravityTableComponent {
1723
1713
  }
1724
1714
  }
1725
1715
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTableComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
1726
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityTableComponent, selector: "gravity-table", inputs: { tableDensity: "tableDensity", tableSizeInput: "tableSizeInput" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "tableContainer", first: true, predicate: ["tableContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"table-container {{tableSize}}\" #tableContainer>\n <ng-content></ng-content>\n</div>\n\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n", styles: [":host{display:block;margin-block:1rem}.table-container{overflow-x:auto}\n"], dependencies: [{ kind: "component", type: GravityButtonComponent, selector: "gravity-button", inputs: ["cypressTag", "disabled", "customState", "iconName", "isLoading", "showContent", "size", "type"] }] }); }
1716
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityTableComponent, selector: "gravity-table", inputs: { tableDensity: "tableDensity", tableSizeInput: "tableSizeInput" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "tableContainer", first: true, predicate: ["tableContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"table-container {{tableSize}}\" #tableContainer>\n <ng-content></ng-content>\n</div>\n\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n", styles: [":host{display:block;margin-block:1rem}.table-container{overflow-x:auto}\n"], dependencies: [{ kind: "component", type: GravityButtonComponent, selector: "gravity-button", inputs: ["cypressTag", "disabled", "customState", "iconName", "isLoading", "showContent", "size", "type"] }] }); }
1727
1717
  }
1728
1718
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTableComponent, decorators: [{
1729
1719
  type: Component,
1730
- args: [{ selector: 'gravity-table', template: "<div class=\"table-container {{tableSize}}\" #tableContainer>\n <ng-content></ng-content>\n</div>\n\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n", styles: [":host{display:block;margin-block:1rem}.table-container{overflow-x:auto}\n"] }]
1720
+ args: [{ selector: 'gravity-table', template: "<div class=\"table-container {{tableSize}}\" #tableContainer>\n <ng-content></ng-content>\n</div>\n\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n<gravity-button id-reference=\"close-button\" [iconName]=\"'unsuccess'\" [type]=\"'tertiary'\" [size]=\"'sm'\">Close menu</gravity-button>\n", styles: [":host{display:block;margin-block:1rem}.table-container{overflow-x:auto}\n"] }]
1731
1721
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { tableDensity: [{
1732
1722
  type: Input
1733
1723
  }], tableSizeInput: [{
@@ -1740,6 +1730,341 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1740
1730
  args: ['window:resize', ['$event']]
1741
1731
  }] } });
1742
1732
 
1733
+ var NodeSelectedState;
1734
+ (function (NodeSelectedState) {
1735
+ NodeSelectedState[NodeSelectedState["checked"] = 0] = "checked";
1736
+ NodeSelectedState[NodeSelectedState["unChecked"] = 1] = "unChecked";
1737
+ NodeSelectedState[NodeSelectedState["indeterminate"] = 2] = "indeterminate";
1738
+ })(NodeSelectedState || (NodeSelectedState = {}));
1739
+
1740
+ class TreeService {
1741
+ constructor() {
1742
+ this.filterValue = '';
1743
+ this.selectedItems = [];
1744
+ this.filterChangeSubject = new BehaviorSubject(this.filterValue);
1745
+ this.selectedItemsSubject = new BehaviorSubject(this.selectedItems);
1746
+ this.selectedStates = [];
1747
+ this.filterChangeSubjectSubscription = this.filterChangeSubject.pipe(debounceTime(300), distinctUntilChanged()).subscribe(() => {
1748
+ this.filterTraverse(this.treeState, this.filterValue);
1749
+ });
1750
+ }
1751
+ ngOnDestroy() {
1752
+ this.filterChangeSubjectSubscription.unsubscribe();
1753
+ }
1754
+ connect() {
1755
+ return this.selectedItemsSubject.asObservable();
1756
+ }
1757
+ setInitialState() {
1758
+ this.setInitialSelectedState(this.treeState);
1759
+ }
1760
+ setInitialSelectedState(nodeStates) {
1761
+ for (const state of nodeStates) {
1762
+ if (state.nodeItem.selected && (!state.children || state.children.length === 0)) {
1763
+ this.toggleSelectedState(state, true);
1764
+ }
1765
+ this.setInitialSelectedState(state.children);
1766
+ }
1767
+ }
1768
+ clear() {
1769
+ for (let state of this.selectedStates) {
1770
+ state.selected = false;
1771
+ state.selectedState = NodeSelectedState.unChecked;
1772
+ }
1773
+ this.selectedItems.length = 0;
1774
+ this.selectedStates.length = 0;
1775
+ }
1776
+ filterTraverse(states, filter) {
1777
+ let results = [];
1778
+ for (let state of states) {
1779
+ if (state.children.length > 0) {
1780
+ state.hasFilteredChildren = false;
1781
+ state.hasFilteredChildren = this.filterTraverse(state.children, filter);
1782
+ if (this.applyFilter(state, filter)) {
1783
+ state.hasFilteredChildren = true;
1784
+ }
1785
+ results.push(state.hasFilteredChildren);
1786
+ }
1787
+ }
1788
+ return results.some((item) => item);
1789
+ }
1790
+ applyFilter(state, filter) {
1791
+ state.filteredChildren = this.filter(state.children, filter);
1792
+ return state.filteredChildren.length > 0;
1793
+ }
1794
+ filter(states, value) {
1795
+ return states.filter((nodeState) => nodeState.hasFilteredChildren || value === '' || nodeState.nodeItem.name.toLowerCase().indexOf(value) !== -1);
1796
+ }
1797
+ checkboxClick(state) {
1798
+ this.toggleSelectedState(state, false);
1799
+ if (this.callbacks?.toggle) {
1800
+ this.callbacks.toggle(state.nodeItem);
1801
+ }
1802
+ }
1803
+ toggleSelectedState(state, ignoreDisabled) {
1804
+ if (state.disabled && !ignoreDisabled) {
1805
+ return;
1806
+ }
1807
+ if (state.selectedState === NodeSelectedState.unChecked) {
1808
+ this.setChecked(state, true, ignoreDisabled);
1809
+ }
1810
+ else if (state.selectedState === NodeSelectedState.checked) {
1811
+ this.setUnchecked(state, true, ignoreDisabled);
1812
+ }
1813
+ else {
1814
+ if (this.anyActiveSelected(state) && !state.selected) {
1815
+ this.setUnchecked(state, true, ignoreDisabled);
1816
+ }
1817
+ else {
1818
+ this.setChecked(state, true, ignoreDisabled);
1819
+ }
1820
+ }
1821
+ if (state.parent) {
1822
+ this.childStateChanged(state.parent);
1823
+ }
1824
+ }
1825
+ setChecked(state, propagate, ignoreDisabled) {
1826
+ if (state.disabled && !ignoreDisabled) {
1827
+ return;
1828
+ }
1829
+ state.selectedState = NodeSelectedState.checked;
1830
+ state.selected = true;
1831
+ if (TreeService.hasNoChildren(state)) {
1832
+ this.addSelected(state);
1833
+ }
1834
+ else if (propagate) {
1835
+ for (const child of state.children) {
1836
+ this.setChecked(child, propagate, ignoreDisabled);
1837
+ }
1838
+ }
1839
+ }
1840
+ setUnchecked(state, propagate, ignoreDisabled) {
1841
+ if (state.disabled && !ignoreDisabled) {
1842
+ return;
1843
+ }
1844
+ state.selectedState = NodeSelectedState.unChecked;
1845
+ state.selected = false;
1846
+ if (TreeService.hasNoChildren(state)) {
1847
+ this.removeSelected(state.nodeItem.item);
1848
+ if (this.callbacks?.unSelect) {
1849
+ this.callbacks.unSelect(state.nodeItem);
1850
+ }
1851
+ }
1852
+ else if (propagate) {
1853
+ for (const child of state.children) {
1854
+ this.setUnchecked(child, propagate, ignoreDisabled);
1855
+ }
1856
+ }
1857
+ if (!this.anyChildSelected(state)) {
1858
+ this.removeSelected(state.nodeItem.item);
1859
+ }
1860
+ }
1861
+ removeSelected(item) {
1862
+ let index = this.selectedItems.indexOf(item);
1863
+ if (index !== -1) {
1864
+ this.selectedItems.splice(index, 1);
1865
+ }
1866
+ }
1867
+ static hasNoChildren(state) {
1868
+ return !state.children || state.children.length === 0;
1869
+ }
1870
+ addSelected(state) {
1871
+ this.selectedItems.push(state.nodeItem.item);
1872
+ this.selectedStates.push(state);
1873
+ if (this.callbacks?.select) {
1874
+ this.callbacks.select(state.nodeItem);
1875
+ }
1876
+ }
1877
+ reEvaluateSelectedState(state) {
1878
+ if (!TreeService.hasNoChildren(state)) {
1879
+ this.childStateChanged(state);
1880
+ for (const child of state.children) {
1881
+ this.reEvaluateSelectedState(child);
1882
+ }
1883
+ }
1884
+ }
1885
+ childStateChanged(state) {
1886
+ if (this.anyChildSelected(state)) {
1887
+ if (state.nodeItem.id != '0') {
1888
+ let itemIndex = this.selectedItems.indexOf(state.nodeItem.item);
1889
+ if (itemIndex === -1) {
1890
+ this.selectedItems.push(state.nodeItem.item);
1891
+ }
1892
+ }
1893
+ if (this.allChildrenSelected(state)) {
1894
+ this.setChecked(state, false);
1895
+ }
1896
+ else {
1897
+ state.selectedState = NodeSelectedState.indeterminate;
1898
+ state.selected = false;
1899
+ }
1900
+ }
1901
+ else {
1902
+ this.setUnchecked(state, false);
1903
+ }
1904
+ if (state.parent) {
1905
+ this.childStateChanged(state.parent);
1906
+ }
1907
+ }
1908
+ anyChildSelected(state) {
1909
+ return state.children.find((item) => item.selectedState === NodeSelectedState.checked || item.selectedState === NodeSelectedState.indeterminate) != null;
1910
+ }
1911
+ static initState(parent, nodeItem) {
1912
+ return {
1913
+ parent: parent,
1914
+ children: [],
1915
+ filteredChildren: [],
1916
+ hasFilteredChildren: false,
1917
+ nodeItem: nodeItem,
1918
+ expanded: nodeItem.expanded !== false,
1919
+ disabled: nodeItem.disabled === true,
1920
+ selectedState: NodeSelectedState.unChecked,
1921
+ selected: false
1922
+ };
1923
+ }
1924
+ allChildrenSelected(state) {
1925
+ if (state.nodeItem.children) {
1926
+ return state.children.every(it => it.selectedState === NodeSelectedState.checked) && state.children.length === state.nodeItem.children.length;
1927
+ }
1928
+ else {
1929
+ return state.children.every(it => it.selectedState === NodeSelectedState.checked);
1930
+ }
1931
+ }
1932
+ anyActiveSelected(state) {
1933
+ let result = state.children.filter(it => !it.disabled && it.selected).length > 0;
1934
+ for (const child of state.children) {
1935
+ if (!TreeService.hasNoChildren(child) && this.anyActiveSelected(child)) {
1936
+ result = true;
1937
+ }
1938
+ }
1939
+ return result;
1940
+ }
1941
+ filterChanged(value) {
1942
+ this.filterValue = value;
1943
+ this.filterChangeSubject.next(value);
1944
+ }
1945
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1946
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeService }); }
1947
+ }
1948
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeService, decorators: [{
1949
+ type: Injectable
1950
+ }], ctorParameters: function () { return []; } });
1951
+
1952
+ class NodeToggleComponent {
1953
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1954
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NodeToggleComponent, selector: "node-toggle", inputs: { state: "state" }, ngImport: i0, template: "<div class=\"node-toggle-wrapper\" [class.collapsable]=\"state.nodeItem?.children?.length > 0\"\n (click)=\"state.expanded = !state.expanded\">\n <gravity-icon [iconName]=\"(state.expanded ? 'arrow_down' : 'arrow_right')\" [size]=\"'sm'\"\n *ngIf=\"state.nodeItem?.children?.length > 0\"></gravity-icon>\n</div>\n", styles: [".node-toggle-wrapper{align-items:center;display:inline-flex;height:1.25rem;width:1.75rem}.collapsable{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GravityIconComponent, selector: "gravity-icon", inputs: ["customIconColorVariable", "iconName", "hoverIcon", "size"] }] }); }
1955
+ }
1956
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeToggleComponent, decorators: [{
1957
+ type: Component,
1958
+ args: [{ selector: 'node-toggle', template: "<div class=\"node-toggle-wrapper\" [class.collapsable]=\"state.nodeItem?.children?.length > 0\"\n (click)=\"state.expanded = !state.expanded\">\n <gravity-icon [iconName]=\"(state.expanded ? 'arrow_down' : 'arrow_right')\" [size]=\"'sm'\"\n *ngIf=\"state.nodeItem?.children?.length > 0\"></gravity-icon>\n</div>\n", styles: [".node-toggle-wrapper{align-items:center;display:inline-flex;height:1.25rem;width:1.75rem}.collapsable{cursor:pointer}\n"] }]
1959
+ }], propDecorators: { state: [{
1960
+ type: Input
1961
+ }] } });
1962
+
1963
+ class NodeCheckboxComponent {
1964
+ constructor(treeService) {
1965
+ this.treeService = treeService;
1966
+ }
1967
+ clickOnCheckbox() {
1968
+ if (!this.state.disabled) {
1969
+ this.treeService.checkboxClick(this.state);
1970
+ setTimeout(() => {
1971
+ this.treeService.reEvaluateSelectedState(this.state);
1972
+ }, 1);
1973
+ }
1974
+ }
1975
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeCheckboxComponent, deps: [{ token: TreeService }], target: i0.ɵɵFactoryTarget.Component }); }
1976
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NodeCheckboxComponent, selector: "node-checkbox", inputs: { state: "state" }, ngImport: i0, template: "<gravity-icon class=\"border-radius-sm checkbox-icon\"\n [class]=\"state.selectedState == 1 ? 'unselect' : 'select'\"\n [class.disabled]=\"state.disabled\"\n\n (click)=\"clickOnCheckbox()\"\n\n [iconName]=\"state.selectedState == 2 ? 'uncheck' : 'success'\"></gravity-icon>\n", styles: [".checkbox-icon{background-color:var(--cta-primary);cursor:pointer;height:1.5rem;--icon-color: var(--surface-secondary);padding:.35rem;width:1.5rem}.checkbox-icon.unselect{opacity:.5}.checkbox-icon.disabled{cursor:not-allowed}\n"], dependencies: [{ kind: "component", type: GravityIconComponent, selector: "gravity-icon", inputs: ["customIconColorVariable", "iconName", "hoverIcon", "size"] }] }); }
1977
+ }
1978
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeCheckboxComponent, decorators: [{
1979
+ type: Component,
1980
+ args: [{ selector: 'node-checkbox', template: "<gravity-icon class=\"border-radius-sm checkbox-icon\"\n [class]=\"state.selectedState == 1 ? 'unselect' : 'select'\"\n [class.disabled]=\"state.disabled\"\n\n (click)=\"clickOnCheckbox()\"\n\n [iconName]=\"state.selectedState == 2 ? 'uncheck' : 'success'\"></gravity-icon>\n", styles: [".checkbox-icon{background-color:var(--cta-primary);cursor:pointer;height:1.5rem;--icon-color: var(--surface-secondary);padding:.35rem;width:1.5rem}.checkbox-icon.unselect{opacity:.5}.checkbox-icon.disabled{cursor:not-allowed}\n"] }]
1981
+ }], ctorParameters: function () { return [{ type: TreeService }]; }, propDecorators: { state: [{
1982
+ type: Input
1983
+ }] } });
1984
+
1985
+ class NodeNameComponent {
1986
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeNameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1987
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NodeNameComponent, selector: "node-name", inputs: { state: "state" }, ngImport: i0, template: "<div [class.disabled]=\"state.disabled\" class=\"node-name\">\n <span class=\"hr-label md-regular\">{{state.nodeItem.name}}</span>\n</div>\n", styles: [".node-name{display:inline-block;padding:.1325rem 0 .1325rem .4375rem}.node-name.disabled{opacity:.6}\n"] }); }
1988
+ }
1989
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeNameComponent, decorators: [{
1990
+ type: Component,
1991
+ args: [{ selector: 'node-name', template: "<div [class.disabled]=\"state.disabled\" class=\"node-name\">\n <span class=\"hr-label md-regular\">{{state.nodeItem.name}}</span>\n</div>\n", styles: [".node-name{display:inline-block;padding:.1325rem 0 .1325rem .4375rem}.node-name.disabled{opacity:.6}\n"] }]
1992
+ }], propDecorators: { state: [{
1993
+ type: Input
1994
+ }] } });
1995
+
1996
+ class NodeComponent {
1997
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1998
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NodeComponent, selector: "tree-node", inputs: { nodeState: "nodeState" }, ngImport: i0, template: "<div class=\"node-container\">\n <div class=\"node-content\">\n <node-toggle [state]=\"nodeState\"></node-toggle>\n <node-checkbox [state]=\"nodeState\"></node-checkbox>\n <node-name [state]=\"nodeState\"></node-name>\n </div>\n <div class=\"collapsible-wrapper\" *ngIf=\"nodeState.nodeItem.children\"\n [class.collapsed]=\"!nodeState.expanded && nodeState.nodeItem.children.length > 0 && nodeState.filteredChildren.length > 0\">\n <div class=\"collapsible\">\n <tree-node class=\"node-offset\" [nodeState]=\"child\"\n *ngFor=\"let child of nodeState.filteredChildren\"></tree-node>\n </div>\n </div>\n</div>\n", styles: [".node-container{display:flex;flex:1 1 auto;flex-direction:column}.node-container .node-content{display:inline-flex;padding-block:.3rem}.node-container node-toggle,.node-container node-checkbox{display:inline-flex;align-items:center}.node-container .collapsible-wrapper{display:flex;overflow:hidden}.node-container .collapsible-wrapper .collapsible{margin-bottom:0;max-height:1000000px}.node-container .collapsible-wrapper .collapsible tree-node.node-offset{display:flex;margin-left:1.25rem}.node-container .collapsible-wrapper.collapsed>.collapsible{margin-bottom:-20000px;visibility:hidden;max-height: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: NodeComponent, selector: "tree-node", inputs: ["nodeState"] }, { kind: "component", type: NodeToggleComponent, selector: "node-toggle", inputs: ["state"] }, { kind: "component", type: NodeCheckboxComponent, selector: "node-checkbox", inputs: ["state"] }, { kind: "component", type: NodeNameComponent, selector: "node-name", inputs: ["state"] }] }); }
1999
+ }
2000
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeComponent, decorators: [{
2001
+ type: Component,
2002
+ args: [{ selector: 'tree-node', template: "<div class=\"node-container\">\n <div class=\"node-content\">\n <node-toggle [state]=\"nodeState\"></node-toggle>\n <node-checkbox [state]=\"nodeState\"></node-checkbox>\n <node-name [state]=\"nodeState\"></node-name>\n </div>\n <div class=\"collapsible-wrapper\" *ngIf=\"nodeState.nodeItem.children\"\n [class.collapsed]=\"!nodeState.expanded && nodeState.nodeItem.children.length > 0 && nodeState.filteredChildren.length > 0\">\n <div class=\"collapsible\">\n <tree-node class=\"node-offset\" [nodeState]=\"child\"\n *ngFor=\"let child of nodeState.filteredChildren\"></tree-node>\n </div>\n </div>\n</div>\n", styles: [".node-container{display:flex;flex:1 1 auto;flex-direction:column}.node-container .node-content{display:inline-flex;padding-block:.3rem}.node-container node-toggle,.node-container node-checkbox{display:inline-flex;align-items:center}.node-container .collapsible-wrapper{display:flex;overflow:hidden}.node-container .collapsible-wrapper .collapsible{margin-bottom:0;max-height:1000000px}.node-container .collapsible-wrapper .collapsible tree-node.node-offset{display:flex;margin-left:1.25rem}.node-container .collapsible-wrapper.collapsed>.collapsible{margin-bottom:-20000px;visibility:hidden;max-height:0}\n"] }]
2003
+ }], propDecorators: { nodeState: [{
2004
+ type: Input
2005
+ }] } });
2006
+
2007
+ class GravityTreeViewComponent {
2008
+ constructor(treeService) {
2009
+ this.treeService = treeService;
2010
+ this.showFilterInput = false;
2011
+ this.selectedItems = new EventEmitter();
2012
+ this.treeServiceSubscription = treeService.connect().subscribe((items) => {
2013
+ const subscription = timer(0).subscribe(() => {
2014
+ this.selectedItems.emit(items);
2015
+ subscription.unsubscribe();
2016
+ });
2017
+ });
2018
+ }
2019
+ ngOnDestroy() {
2020
+ this.treeServiceSubscription.unsubscribe();
2021
+ }
2022
+ ngOnChanges(changes) {
2023
+ if (changes.callbacks) {
2024
+ this.treeService.callbacks = this.callbacks;
2025
+ }
2026
+ if (changes.nodeItems) {
2027
+ this.initialize();
2028
+ }
2029
+ }
2030
+ initialize() {
2031
+ this.treeService.callbacks = this.callbacks;
2032
+ this.treeService.nodeItems = this.nodeItems;
2033
+ this.treeService.treeState = this.initTreeStructure(null, this.treeService.nodeItems);
2034
+ this.treeService.clear();
2035
+ this.treeService.setInitialState();
2036
+ }
2037
+ initTreeStructure(parent, nodeItems) {
2038
+ const treeStructure = [];
2039
+ nodeItems.forEach((nodeItem) => {
2040
+ const nodeState = TreeService.initState(parent, nodeItem);
2041
+ if (nodeItem.children) {
2042
+ nodeState.children = this.initTreeStructure(nodeState, nodeItem.children);
2043
+ nodeState.filteredChildren = nodeState.children;
2044
+ }
2045
+ treeStructure.push(nodeState);
2046
+ });
2047
+ return treeStructure;
2048
+ }
2049
+ changeFilter(newValue) {
2050
+ this.treeService.filterChanged(newValue.toLowerCase());
2051
+ }
2052
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTreeViewComponent, deps: [{ token: TreeService }], target: i0.ɵɵFactoryTarget.Component }); }
2053
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityTreeViewComponent, selector: "gravity-tree-view", inputs: { callbacks: "callbacks", nodeItems: "nodeItems", showFilterInput: "showFilterInput" }, outputs: { selectedItems: "selectedItems" }, providers: [TreeService], usesOnChanges: true, ngImport: i0, template: "<gravity-text-field [label]=\"'Change filter'\" *ngIf=\"showFilterInput\"\n (response)=\"changeFilter($event)\"></gravity-text-field>\n<tree-node [nodeState]=\"state\" *ngFor=\"let state of treeService.treeState\"></tree-node>\n", styles: [""], 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: GravityTextFieldComponent, selector: "gravity-text-field", inputs: ["autocomplete", "clickOnIconName", "currentLang", "customPlaceholder", "customInputValue", "cypressTag", "iconColor", "iconNames", "iconsSizes", "iconPlacement", "inputContentType", "label", "placeholderType", "prefix", "required", "state", "supportTextContent", "supportTextType", "textFieldType", "validations"], outputs: ["clickIcon", "response"] }, { kind: "component", type: NodeComponent, selector: "tree-node", inputs: ["nodeState"] }] }); }
2054
+ }
2055
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTreeViewComponent, decorators: [{
2056
+ type: Component,
2057
+ args: [{ selector: 'gravity-tree-view', providers: [TreeService], template: "<gravity-text-field [label]=\"'Change filter'\" *ngIf=\"showFilterInput\"\n (response)=\"changeFilter($event)\"></gravity-text-field>\n<tree-node [nodeState]=\"state\" *ngFor=\"let state of treeService.treeState\"></tree-node>\n" }]
2058
+ }], ctorParameters: function () { return [{ type: TreeService }]; }, propDecorators: { callbacks: [{
2059
+ type: Input
2060
+ }], nodeItems: [{
2061
+ type: Input
2062
+ }], showFilterInput: [{
2063
+ type: Input
2064
+ }], selectedItems: [{
2065
+ type: Output
2066
+ }] } });
2067
+
1743
2068
  class GravityDesignSystemModule {
1744
2069
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityDesignSystemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1745
2070
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: GravityDesignSystemModule, declarations: [GravityAttachFileComponent,
@@ -1755,7 +2080,12 @@ class GravityDesignSystemModule {
1755
2080
  GravityRadioButtonComponent,
1756
2081
  GravitySwitchComponent,
1757
2082
  GravityTableComponent,
1758
- GravityTextFieldComponent], imports: [i1.AngularSvgIconModule, i2$2.AngularSvgIconPreloaderModule, CommonModule,
2083
+ GravityTextFieldComponent,
2084
+ GravityTreeViewComponent,
2085
+ NodeComponent,
2086
+ NodeToggleComponent,
2087
+ NodeCheckboxComponent,
2088
+ NodeNameComponent], imports: [i1.AngularSvgIconModule, i2$2.AngularSvgIconPreloaderModule, CommonModule,
1759
2089
  FormsModule, GravityTooltipModule, NgbDatepickerModule,
1760
2090
  NgbProgressbarModule,
1761
2091
  NgbToastModule,
@@ -1773,7 +2103,8 @@ class GravityDesignSystemModule {
1773
2103
  GravitySwitchComponent,
1774
2104
  GravityTableComponent,
1775
2105
  GravityTextFieldComponent,
1776
- GravityTooltipModule] }); }
2106
+ GravityTooltipModule,
2107
+ GravityTreeViewComponent] }); }
1777
2108
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityDesignSystemModule, imports: [AngularSvgIconModule.forRoot(),
1778
2109
  AngularSvgIconPreloaderModule.forRoot({
1779
2110
  configUrl: './assets/gravity/json/icons.json',
@@ -1805,7 +2136,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1805
2136
  GravityRadioButtonComponent,
1806
2137
  GravitySwitchComponent,
1807
2138
  GravityTableComponent,
1808
- GravityTextFieldComponent
2139
+ GravityTextFieldComponent,
2140
+ GravityTreeViewComponent,
2141
+ NodeComponent,
2142
+ NodeToggleComponent,
2143
+ NodeCheckboxComponent,
2144
+ NodeNameComponent
1809
2145
  ],
1810
2146
  imports: [
1811
2147
  AngularSvgIconModule.forRoot(),
@@ -1835,7 +2171,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1835
2171
  GravitySwitchComponent,
1836
2172
  GravityTableComponent,
1837
2173
  GravityTextFieldComponent,
1838
- GravityTooltipModule
2174
+ GravityTooltipModule,
2175
+ GravityTreeViewComponent
1839
2176
  ]
1840
2177
  }]
1841
2178
  }] });
@@ -1889,5 +2226,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1889
2226
  * Generated bundle index. Do not edit.
1890
2227
  */
1891
2228
 
1892
- export { GravityAttachFileComponent, GravityButtonComponent, GravityCalendarComponent, GravityCheckboxComponent, GravityDesignSystemModule, GravityDialogComponent, GravityDialogManagerService, GravityDropdownListComponent, GravityIconComponent, GravityNotificationInstantContainerComponent, GravityRadioButtonComponent, GravitySwitchComponent, GravityTableComponent, GravityTextFieldComponent, GravityTooltipComponent, GravityTooltipDirective, GravityTooltipModule };
2229
+ export { GravityAttachFileComponent, GravityButtonComponent, GravityCalendarComponent, GravityCheckboxComponent, GravityDesignSystemModule, GravityDialogComponent, GravityDialogManagerService, GravityDropdownListComponent, GravityIconComponent, GravityNotificationInstantContainerComponent, GravityRadioButtonComponent, GravitySwitchComponent, GravityTableComponent, GravityTextFieldComponent, GravityTooltipComponent, GravityTooltipDirective, GravityTooltipModule, GravityTreeViewComponent };
1893
2230
  //# sourceMappingURL=progressio_resources-gravity-design-system.mjs.map