diff --git a/live-editing/configs/FinancialChartConfigGenerator.ts b/live-editing/configs/FinancialChartConfigGenerator.ts index 0ac69fdbf8..f71cb3209a 100644 --- a/live-editing/configs/FinancialChartConfigGenerator.ts +++ b/live-editing/configs/FinancialChartConfigGenerator.ts @@ -13,7 +13,7 @@ import { FinancialChartHighVolumeComponent} from "../../src/app/charts/financial import { FinancialChartIndicatorTypesComponent} from "../../src/app/charts/financial-chart/indicator-types/financial-chart-indicator-types.component"; import { FinancialChartMultipleDataComponent} from "../../src/app/charts/financial-chart/multiple-data/financial-chart-multiple-data.component"; import { FinancialChartMultipleFeedsComponent } from "../../src/app/charts/financial-chart/multiple-feeds/financial-chart-multiple-feeds.component"; -import { FinancialChartOverviewComponent} from "../../src/app/charts/financial-chart/overview/financial-chart-overview-sample.component"; +import { FinancialChartOverviewComponent} from "../../src/app/charts/financial-chart/overview/financial-chart-overview.component"; import { FinancialChartPanesComponent } from "../../src/app/charts/financial-chart/panes/financial-chart-panes.component"; import { FinancialChartPerformanceComponent } from "../../src/app/charts/financial-chart/performance/financial-chart-performance.component"; import { FinancialDataService } from "../../src/app/charts/financial-chart/services/financial-data.service"; diff --git a/live-editing/configs/GeoMapConfigGenerator.ts b/live-editing/configs/GeoMapConfigGenerator.ts index a2c613ff03..96a1137721 100644 --- a/live-editing/configs/GeoMapConfigGenerator.ts +++ b/live-editing/configs/GeoMapConfigGenerator.ts @@ -148,7 +148,7 @@ export class GeoMapConfigGenerator extends BaseConfigGenerator { configs.push(this.getConfig( MapDisplayImageryHeatTilesComponent, [IgxGeographicMapModule], null, - ["/src/app/maps/heatworker.worker.ts", + ["/src/app/maps/heatmap.worker.ts", "/src/assets/Shapes/AmericanCities.shp", "src/assets/Shapes/AmericanCities.dbf"])); diff --git a/live-editing/configs/GridConfigGenerator.ts b/live-editing/configs/GridConfigGenerator.ts index 6682d22a2c..288f86dc80 100644 --- a/live-editing/configs/GridConfigGenerator.ts +++ b/live-editing/configs/GridConfigGenerator.ts @@ -28,27 +28,27 @@ import { IgxToastModule, IgxTooltipModule } from "igniteui-angular"; +// tslint:disable:max-line-length +import { CustomGridPagingStyleSample } from "../../src/app/grid/custom-grid-paging-style/custom-grid-paging-style.component"; import { GridBatchEditingSampleComponent } from "../../src/app/grid/grid-batch-editing/grid-batch-editing-sample.component"; import { GridWithTransactionsComponent } from "../../src/app/grid/grid-batch-editing/grid-transaction.component"; import { GridComponent } from "../../src/app/grid/grid-boston-marathon/grid.component"; +import { GridClipboardSampleComponent } from "../../src/app/grid/grid-clipboard-operations-sample/grid-clipboard-operations-sample.component"; import { GridColumnHidingSampleComponent } from "../../src/app/grid/grid-column-hiding-sample/grid-column-hiding-sample.component"; import { GridColumnHidingToolbarSampleComponent } from "../../src/app/grid/grid-column-hiding-toolbar-sample/grid-column-hiding-toolbar-sample.component"; -// tslint:disable-next-line:max-line-length import { GridCompositeDataComponent } from "../../src/app/grid/grid-composite-data-binding/grid-composite-data.component"; import { GridConditionalCellStyleComponent } from "../../src/app/grid/grid-conditional-cell-style/grid-conditional-cell-style.component"; import { ContextmenuComponent } from "../../src/app/grid/grid-contextmenu-sample/contextmenu/contextmenu.component"; -// tslint:disable-next-line: max-line-length import { GridContextmenuSampleComponent } from "../../src/app/grid/grid-contextmenu-sample/grid-contextmenu-sample.component"; import { GridCustomFilteringComponent } from "../../src/app/grid/grid-custom-filtering/grid-custom-filtering.component"; -// tslint:disable-next-line: max-line-length import { GridCustomKBNavigationComponent } from "../../src/app/grid/grid-custom-kb-navigation/grid-custom-kb-navigation-sample.component"; import { GridDisplayDensitySampleComponent @@ -75,20 +75,12 @@ import { GridMovingSampleComponent } from "../../src/app/grid/grid-moving-sample import { GridMovingStyledSampleComponent } from "../../src/app/grid/grid-moving-styled-sample/grid-moving-styled-sample.component"; - -// tslint:disable-next-line: max-line-length +import { GridMRLCustomNavigationComponent } from "../../src/app/grid/grid-mrl-custom-navigation/grid-mrl-custom-navigation.component"; import { GridMultiCellSelectionStyleComponent } from "../../src/app/grid/grid-multi-cell-selection-style/grid-multi-cell-selection-style.component"; -// tslint:disable-next-line:max-line-length import { GridMultiCellSelectionComponent } from "../../src/app/grid/grid-multi-cell-selection/grid-multi-cell-selection.component"; import { GridMultiRowLayoutConfigurationComponent } from "../../src/app/grid/grid-multi-row-layout-configuration/grid-multi-row-layout-configuration.component"; - -// tslint:disable-next-line: max-line-length -import { GridMRLCustomNavigationComponent } from "../../src/app/grid/grid-mrl-custom-navigation/grid-mrl-custom-navigation.component"; - -// tslint:disable-next-line: max-line-length -import { CustomGridPagingStyleSample } from "../../src/app/grid/custom-grid-paging-style/custom-grid-paging-style.component"; import { GridMultiRowLayoutComponent } from "../../src/app/grid/grid-multi-row-layout/grid-multi-row-layout.component"; import { GridNestedDataBindComponent } from "../../src/app/grid/grid-nested-data-binding/grid-nested-data-bind"; import { PagingSampleComponent } from "../../src/app/grid/grid-paging-sample/grid-paging-sample.component"; @@ -127,7 +119,10 @@ import { GridToolbarSample1Component } from "../../src/app/grid/grid-toolbar-sam import { GridToolbarSample2Component } from "../../src/app/grid/grid-toolbar-sample/grid-toolbar-sample-2.component"; import { GridToolbarSample3Component } from "../../src/app/grid/grid-toolbar-sample/grid-toolbar-sample-3.component"; import { GridToolbarSample4Component } from "../../src/app/grid/grid-toolbar-sample/grid-toolbar-sample-4.component"; -import { GridToolbarStyleComponent } from "../../src/app/grid/grid-toolbar-style/grid-toolbar-style.component" +import { GridToolbarStyleComponent } from "../../src/app/grid/grid-toolbar-style/grid-toolbar-style.component"; +import { + GridMultiColumnHeaderTemplateComponent +} from "../../src/app/grid/multi-column-header-template/multi-column-header-template"; import { GridMultiColumnHeadersComponent } from "../../src/app/grid/multi-column-headers/multi-column-headers"; import { DataService } from "../../src/app/grid/services/data.service"; import { RemoteFilteringService } from "../../src/app/grid/services/remoteFilteringService"; @@ -136,6 +131,7 @@ import { RemoteServiceVirt } from "../../src/app/grid/services/remoteService"; import { AppModuleConfig } from "./core/AppModuleConfig"; import { Config } from "./core/Config"; import { IConfigGenerator } from "./core/IConfigGenerator"; +// tslint:enable:max-line-length export class GridConfigGenerator implements IConfigGenerator { public generateConfigs(): Config[] { @@ -755,6 +751,26 @@ export class GridConfigGenerator implements IConfigGenerator { }) })); + configs.push(new Config({ + component: GridMultiColumnHeaderTemplateComponent, + additionalFiles: ["/src/app/grid/multi-column-header-template/data.ts"], + appModuleConfig: new AppModuleConfig({ + imports: [GridMultiColumnHeaderTemplateComponent, IgxGridModule], + ngDeclarations: [GridMultiColumnHeaderTemplateComponent], + ngImports: [IgxGridModule] + }) + })); + + configs.push(new Config({ + component: GridClipboardSampleComponent, + additionalFiles: ["/src/app/data/nwindData.ts"], + appModuleConfig: new AppModuleConfig({ + imports: [GridClipboardSampleComponent, IgxGridModule, IgxSwitchModule], + ngDeclarations: [GridClipboardSampleComponent], + ngImports: [IgxGridModule, IgxSwitchModule] + }) + })); + return configs; } } diff --git a/live-editing/configs/HierarchicalGridConfigGenerator.ts b/live-editing/configs/HierarchicalGridConfigGenerator.ts index 74cc0b7c15..7e2a92fc2a 100644 --- a/live-editing/configs/HierarchicalGridConfigGenerator.ts +++ b/live-editing/configs/HierarchicalGridConfigGenerator.ts @@ -1,4 +1,5 @@ // tslint:disable:max-line-length +import { HttpClientModule } from "@angular/common/http"; import { IgxButtonGroupModule, IgxButtonModule, @@ -39,6 +40,7 @@ import { HGridCustomFilteringSampleComponent } from "../../src/app/hierarchical- import { HGridFilteringSampleComponent } from "../../src/app/hierarchical-grid/hierarchical-grid-filtering/hierarchical-grid-filtering.component"; import { HierarchicalGridLoDSampleComponent } from "../../src/app/hierarchical-grid/hierarchical-grid-lod/hierarchical-grid-lod.component"; import { HGridMultiCellStyleComponent } from "../../src/app/hierarchical-grid/hierarchical-grid-multi-cell-style/hierarchical-grid-multi-cell-style.component"; +import { HGridMultiHeaderTemplateSampleComponent } from "../../src/app/hierarchical-grid/hierarchical-grid-multi-column-header-template/hierarchical-grid-multi-column-template.component"; import { HGridMultiHeadersSampleComponent } from "../../src/app/hierarchical-grid/hierarchical-grid-multi-column-headers/hierarchical-grid-multi-column.component"; import { HGridPagingStyleSampleComponent } from "../../src/app/hierarchical-grid/hierarchical-grid-paging-style/hierarchical-grid-paging-style.component"; import { HGridPagingSampleComponent } from "../../src/app/hierarchical-grid/hierarchical-grid-paging/hierarchical-grid-paging.component"; @@ -222,9 +224,9 @@ export class HierarchicalGridConfigGenerator implements IConfigGenerator { configs.push(new Config({ additionalFiles: ["/src/app/hierarchical-grid/hierarchical-grid-paging/remotePagingService.ts"], appModuleConfig: new AppModuleConfig({ - imports: [IgxHierarchicalGridModule, HGridRemotePagingSampleComponent], + imports: [IgxHierarchicalGridModule, HGridRemotePagingSampleComponent, HttpClientModule], ngDeclarations: [HGridRemotePagingSampleComponent], - ngImports: [IgxHierarchicalGridModule] + ngImports: [IgxHierarchicalGridModule, HttpClientModule] }), component: HGridRemotePagingSampleComponent })); @@ -433,6 +435,16 @@ export class HierarchicalGridConfigGenerator implements IConfigGenerator { shortenComponentPathBy: "/hierarchical-grid/" })); + configs.push(new Config({ + additionalFiles: ["/src/app/hierarchical-grid/data.ts"], + appModuleConfig: new AppModuleConfig({ + imports: [IgxHierarchicalGridModule, HGridMultiHeaderTemplateSampleComponent], + ngDeclarations: [HGridMultiHeaderTemplateSampleComponent], + ngImports: [IgxHierarchicalGridModule] + }), + component: HGridMultiHeaderTemplateSampleComponent + })); + return configs; } } diff --git a/live-editing/configs/PieChartConfigGenerator.ts b/live-editing/configs/PieChartConfigGenerator.ts index d380659088..0106b3df82 100644 --- a/live-editing/configs/PieChartConfigGenerator.ts +++ b/live-editing/configs/PieChartConfigGenerator.ts @@ -3,12 +3,12 @@ // tslint:disable:max-line-length // tslint:disable:member-ordering // tslint:disable:prefer-const -import { IgxPieChartComponent } from "igniteui-angular-charts/ES5/igx-pie-chart-component"; + import { IgxPieChartModule } from "igniteui-angular-charts/ES5/igx-pie-chart-module"; import { IgxItemLegendModule } from "igniteui-angular-charts/ES5/igx-item-legend-module"; import { IgxLegendModule } from "igniteui-angular-charts/ES5/igx-legend-module"; -import { PieChartDataSampleComponent } from "../../src/app/charts/pie-chart/pie-chart-data-sample/pie-chart-data-sample.component"; +import { PieChartDataSampleComponent } from "../../src/app/charts/pie-chart/pie-chart-overview/pie-chart-overview.component"; import { PieChartExplosionComponent } from "../../src/app/charts/pie-chart/pie-chart-explosion/pie-chart-explosion.component"; import { PieChartLegendComponent } from "../../src/app/charts/pie-chart/pie-chart-legend/pie-chart-legend.component"; import { PieChartOthersComponent } from "../../src/app/charts/pie-chart/pie-chart-others/pie-chart-others.component"; @@ -24,8 +24,6 @@ export class PieChartConfigGenerator extends BaseConfigGenerator { super(DependenciesType.Charts, "/charts/pie-chart/"); } -// export class PieChartConfigGenerator implements IConfigGenerator { - public generateConfigs(): Config[] { const configs = new Array(); diff --git a/live-editing/configs/TabBarConfigGenerator.ts b/live-editing/configs/TabBarConfigGenerator.ts index 3c42f08217..d6220c765a 100644 --- a/live-editing/configs/TabBarConfigGenerator.ts +++ b/live-editing/configs/TabBarConfigGenerator.ts @@ -1,9 +1,14 @@ /* tslint:disable:object-literal-sort-keys */ import { Router, RouterModule, Routes } from "@angular/router"; -import { IgxAvatarModule, IgxBottomNavModule, IgxButtonModule, - IgxIconModule, IgxListModule, IgxRippleModule } from "igniteui-angular"; +import { IgxAvatarModule, IgxBottomNavModule, IgxButtonModule, IgxGridModule, + IgxIconModule, IgxListModule, IgxRippleModule, IgxSelectModule } from "igniteui-angular"; import { TabbarSample1Component } from "../../src/app/layouts/tabbar/tabbar-sample-1/tabbar-sample-1.component"; import { TabbarSample2Component } from "../../src/app/layouts/tabbar/tabbar-sample-2/tabbar-sample-2.component"; +import { + BottomNavRoutingView1Component, + BottomNavRoutingView2Component, + BottomNavRoutingView3Component, + TabbarSample3Component } from "../../src/app/layouts/tabbar/tabbar-sample-3/tabbar-sample-3.component"; import { TabbarComponent } from "../../src/app/layouts/tabbar/tabbar.component"; import { AppModuleConfig } from "./core/AppModuleConfig"; import { Config } from "./core/Config"; @@ -54,6 +59,33 @@ export class TabBarConfigGenerator implements IConfigGenerator { shortenComponentPathBy: "/layouts/tabbar/" })); + // tabbar sample 3 + configs.push(new Config({ + component: TabbarSample3Component, + appModuleConfig: new AppModuleConfig({ + imports: [ + Router, RouterModule, TabbarSample3Component, IgxBottomNavModule, IgxGridModule, + IgxSelectModule, BottomNavRoutingView1Component, BottomNavRoutingView2Component, + BottomNavRoutingView3Component + ], + ngDeclarations: [ + TabbarSample3Component, BottomNavRoutingView1Component, BottomNavRoutingView2Component, + BottomNavRoutingView3Component + ], + ngImports: [ + IgxBottomNavModule, IgxGridModule, IgxSelectModule, + ` + RouterModule.forRoot([ + { path: 'arrivals', component: BottomNavRoutingView1Component }, + { path: 'departures', component: BottomNavRoutingView2Component }, + { path: 'canceled', component: BottomNavRoutingView3Component } + ]) + ` + ] + }), + shortenComponentPathBy: "/layouts/tabbar/" + })); + return configs; } } diff --git a/live-editing/configs/TabsConfigGenerator.ts b/live-editing/configs/TabsConfigGenerator.ts index 2f9b9166fd..e2b28dea04 100644 --- a/live-editing/configs/TabsConfigGenerator.ts +++ b/live-editing/configs/TabsConfigGenerator.ts @@ -1,7 +1,10 @@ /* tslint:disable:object-literal-sort-keys */ + +import { Router, RouterModule } from "@angular/router"; + import { - IgxAvatarModule, IgxButtonModule, IgxCardModule, IgxIconModule, - IgxNavbarModule, IgxRippleModule, IgxTabsModule + IgxAvatarModule, IgxButtonModule, IgxCardModule, IgxGridModule, IgxIconModule, IgxNavbarModule, IgxRippleModule, + IgxSelectModule, IgxTabsModule, IgxToggleModule } from "igniteui-angular"; import { TabsSample1Component } from "../../src/app/layouts/tabs/tabs-sample-1/tabs-sample-1.component"; @@ -15,6 +18,11 @@ import { AppRouting2Module } from "../../src/app/layouts/tabs/tabs-sample-5/app. import { TabsSample5Component } from "../../src/app/layouts/tabs/tabs-sample-5/components/tabs-sample-5.component"; import { TabsSample5Module } from "../../src/app/layouts/tabs/tabs-sample-5/tabs-sample-5.module"; import { TabsRouting2Module } from "../../src/app/layouts/tabs/tabs-sample-5/tabs.routing2.module"; +import { + TabsRoutingView1Component, + TabsRoutingView2Component, + TabsRoutingView3Component, + TabsSample6Component } from "../../src/app/layouts/tabs/tabs-sample-6/tabs-sample-6.component"; import { AppModuleConfig } from "./core/AppModuleConfig"; import { Config } from "./core/Config"; import { IConfigGenerator } from "./core/IConfigGenerator"; @@ -102,6 +110,31 @@ export class TabsConfigGenerator implements IConfigGenerator { shortenComponentPathBy: "/layouts/tabs/" })); + configs.push(new Config({ + component: TabsSample6Component, + appModuleConfig: new AppModuleConfig({ + imports: [ + Router, RouterModule, TabsSample6Component, IgxGridModule, IgxSelectModule, IgxTabsModule, + TabsRoutingView1Component, TabsRoutingView2Component, TabsRoutingView3Component + ], + ngDeclarations: [ + TabsSample6Component, TabsRoutingView1Component, TabsRoutingView2Component, + TabsRoutingView3Component + ], + ngImports: [ + IgxGridModule, IgxSelectModule, IgxTabsModule, + ` + RouterModule.forRoot([ + { path: 'arrivals', component: TabsRoutingView1Component }, + { path: 'departures', component: TabsRoutingView2Component }, + { path: 'canceled', component: TabsRoutingView3Component } + ]) + ` + ] + }), + shortenComponentPathBy: "/layouts/tabs/" + })); + return configs; } } diff --git a/live-editing/configs/ThemingConfigGenerator.ts b/live-editing/configs/ThemingConfigGenerator.ts index 362d12b9c0..2e7c4b02f0 100644 --- a/live-editing/configs/ThemingConfigGenerator.ts +++ b/live-editing/configs/ThemingConfigGenerator.ts @@ -2,7 +2,8 @@ // tslint:disable:object-literal-sort-keys import { IgxButtonGroupModule, IgxButtonModule, IgxCalendarModule, IgxCardModule, IgxDatePickerModule, IgxDialogModule, IgxDropDownModule, IgxGridModule, IgxIconModule, - IgxInputGroupModule, IgxLayoutModule, IgxRippleModule, IgxSnackbarModule, IgxToggleModule } from "igniteui-angular"; + IgxInputGroupModule, IgxLayoutModule, IgxRippleModule, IgxSelectModule, IgxSnackbarModule, + IgxToggleModule } from "igniteui-angular"; import { DarkThemeSampleComponent } from "../../src/app/theming/dark-theme-sample/dark-theme-sample.component"; import { DefaultThemeSampleComponent } from "../../src/app/theming/default-theme-sample/default-theme-sample.component"; import { DisplayDensityComponent } from "../../src/app/theming/display-density/display-density.component"; @@ -29,13 +30,13 @@ export class ThemingConfigGenerator implements IConfigGenerator { imports: [IgxDropDownModule, IgxGridModule, IgxDialogModule, IgxSnackbarModule, IgxLayoutModule, ThemeChooserSampleComponent, IgxCalendarModule, IgxToggleModule, IgxIconModule, IgxRippleModule, IgxButtonModule, - IgxInputGroupModule, IgxDatePickerModule], + IgxInputGroupModule, IgxDatePickerModule, IgxSelectModule], ngDeclarations: [ThemeChooserSampleComponent], ngImports: [IgxDropDownModule, IgxDialogModule, IgxSnackbarModule, IgxLayoutModule, IgxToggleModule, IgxIconModule, IgxRippleModule, IgxButtonModule, IgxCalendarModule, IgxInputGroupModule, IgxDatePickerModule, - IgxGridModule, IgxLayoutModule] + IgxGridModule, IgxLayoutModule, IgxSelectModule] }), shortenComponentPathBy: "/theming/" })); diff --git a/live-editing/configs/TreeGridConfigGenerator.ts b/live-editing/configs/TreeGridConfigGenerator.ts index 0ec26d26a9..94a03993f3 100644 --- a/live-editing/configs/TreeGridConfigGenerator.ts +++ b/live-editing/configs/TreeGridConfigGenerator.ts @@ -23,6 +23,7 @@ import { } from "igniteui-angular"; import { TreeGridBatchEditingSampleComponent } from "../../src/app/tree-grid/tree-grid-batch-editing/tree-grid-batch-editing-sample.component"; import { TreeGridChilddatakeySampleComponent } from "../../src/app/tree-grid/tree-grid-childdatakey-sample/tree-grid-childdatakey-sample.component"; +import { TreeGridClipboardSampleComponent } from "../../src/app/tree-grid/tree-grid-clipboard-operations-sample/tree-grid-clipboard-operations-sample.component"; import { TreeGridColumnHidingSampleComponent } from "../../src/app/tree-grid/tree-grid-column-hiding-sample/tree-grid-column-hiding-sample.component"; import { TreeGridColumnHidingToolbarSampleComponent } from "../../src/app/tree-grid/tree-grid-column-hiding-toolbar-sample/tree-grid-column-hiding-toolbar-sample.component"; import { TreeGridColumnMovingSampleComponent } from "../../src/app/tree-grid/tree-grid-column-moving-sample/tree-grid-column-moving-sample.component"; @@ -48,6 +49,7 @@ import { TreeGridKBNavigationComponent } from "../../src/app/tree-grid/tree-grid import { TreeGridLoadOnDemandSampleComponent } from "../../src/app/tree-grid/tree-grid-load-on-demand-sample/tree-grid-load-on-demand-sample.component"; import { TreeGridMultiCellSelectionStyleComponent } from "../../src/app/tree-grid/tree-grid-multi-cell-selection-style/tree-grid-multi-cell-selection-style.component"; import { TreeGridMultiCellSelectionComponent } from "../../src/app/tree-grid/tree-grid-multi-cell-selection/tree-grid-multi-cell-selection.component"; +import { TreeGridMultiColumnHeaderTemplateSampleComponent } from "../../src/app/tree-grid/tree-grid-multi-column-header-template-sample/tree-grid-multi-column-header-template-sample.component"; import { TreeGridMultiColumnHeadersSampleComponent } from "../../src/app/tree-grid/tree-grid-multi-column-headers-sample/tree-grid-multi-column-headers-sample.component"; import { TreeGridPagingSampleComponent } from "../../src/app/tree-grid/tree-grid-paging-sample/tree-grid-paging-sample.component"; import { TreeGridPagingStyleSampleComponent } from "../../src/app/tree-grid/tree-grid-paging-style/tree-grid-paging-style-sample.component"; @@ -619,6 +621,30 @@ export class TreeGridConfigGenerator implements IConfigGenerator { shortenComponentPathBy: "/tree-grid/" })); + // TreeGrid Multi Column Header Template sample + configs.push(new Config({ + additionalFiles: ["/src/app/tree-grid/data/employees-flat-detailed.ts"], + appModuleConfig: new AppModuleConfig({ + imports: [IgxTreeGridModule, TreeGridMultiColumnHeaderTemplateSampleComponent], + ngDeclarations: [TreeGridMultiColumnHeaderTemplateSampleComponent], + ngImports: [IgxTreeGridModule] + }), + component: TreeGridMultiColumnHeaderTemplateSampleComponent, + shortenComponentPathBy: "/tree-grid/" + })); + + // TreeGrid Clipboard actions sample + configs.push(new Config({ + additionalFiles: ["/src/app/tree-grid/tree-grid-childdatakey-sample/data.ts"], + appModuleConfig: new AppModuleConfig({ + imports: [IgxTreeGridModule, TreeGridClipboardSampleComponent, IgxSwitchModule], + ngDeclarations: [TreeGridClipboardSampleComponent], + ngImports: [IgxTreeGridModule, IgxSwitchModule] + }), + component: TreeGridClipboardSampleComponent, + shortenComponentPathBy: "/tree-grid/" + })); + return configs; } } diff --git a/live-editing/configs/ZoomSliderConfigGenerator.ts b/live-editing/configs/ZoomSliderConfigGenerator.ts new file mode 100644 index 0000000000..ce78380cc3 --- /dev/null +++ b/live-editing/configs/ZoomSliderConfigGenerator.ts @@ -0,0 +1,49 @@ +/* tslint:disable */ + +// Chart Modules +import { IgxDataChartAnnotationModule } from "igniteui-angular-charts/ES5/igx-data-chart-annotation-module"; +import { IgxDataChartCategoryModule } from "igniteui-angular-charts/ES5/igx-data-chart-category-module"; +import { IgxDataChartCategoryCoreModule } from "igniteui-angular-charts/ES5/igx-data-chart-category-core-module"; +import { IgxDataChartCoreModule } from "igniteui-angular-charts/ES5/igx-data-chart-core-module"; +import { IgxDataChartInteractivityModule } from "igniteui-angular-charts/ES5/igx-data-chart-interactivity-module"; +import { IgxCategoryXAxisModule } from "igniteui-angular-charts/ES5/igx-category-x-axis-module"; +import { IgxCalloutLayerModule } from "igniteui-angular-charts/ES5/igx-callout-layer-module"; +import { IgxCrosshairLayerModule } from "igniteui-angular-charts/ES5/igx-crosshair-layer-module"; +import { IgxFinancialPriceSeriesModule } from "igniteui-angular-charts/ES5/igx-financial-price-series-module"; +import { IgxOrdinalTimeXAxisModule } from "igniteui-angular-charts/ES5/igx-ordinal-time-x-axis-module"; +import { IgxNumericYAxisModule } from "igniteui-angular-charts/ES5/igx-numeric-y-axis-module"; + +// import { IgxZoomSliderModule } from "igniteui-angular-charts/ES5/igx-zoom-slider-module"; +import { IgxZoomSliderDynamicModule } from "igniteui-angular-charts/ES5/igx-zoom-slider-dynamic-module"; + +import { StockDataService } from "../../src/app/charts/financial-chart/services/stock-data.service"; +import { ZoomSliderOverviewComponent } from "../../src/app/charts/zoomslider/zoomslider-overview/zoomslider-overview.component"; + +import { DependenciesType } from "../services/DependenciesType"; +import { BaseConfigGenerator } from "./core/BaseConfigGenerator"; +import { Config } from "./core/Config"; + +export class ZoomSliderConfigGenerator extends BaseConfigGenerator { + + constructor() { + super(DependenciesType.Charts, "/charts/zoomslider/"); + } + + public generateConfigs(): Config[] { + const configs = new Array(); + + // using simpler config instead of default/complex config + + configs.push(this.getConfig( + ZoomSliderOverviewComponent, + [IgxZoomSliderDynamicModule, IgxNumericYAxisModule, IgxOrdinalTimeXAxisModule, + IgxCrosshairLayerModule, IgxCategoryXAxisModule, IgxCalloutLayerModule, + IgxDataChartCoreModule, IgxDataChartCategoryModule, IgxDataChartCategoryCoreModule, + IgxDataChartAnnotationModule, IgxDataChartInteractivityModule, + IgxFinancialPriceSeriesModule], + [StockDataService], ["/src/app/charts/financial-chart/services/stock-data.service.ts"])); + + return configs; + } + +} diff --git a/live-editing/generators/ConfigGenerators.ts b/live-editing/generators/ConfigGenerators.ts index c29b059087..282638150c 100644 --- a/live-editing/generators/ConfigGenerators.ts +++ b/live-editing/generators/ConfigGenerators.ts @@ -61,6 +61,7 @@ import { ToggleConfigGenerator } from "../configs/ToggleConfigGenerator"; import { TooltipConfigGenerator } from "../configs/TooltipConfigGenerator"; import { TreeGridConfigGenerator } from "../configs/TreeGridConfigGenerator"; import { TreeGridFinjsConfigGenerator } from "../configs/TreeGridFinjsConfigGenerator"; +import { ZoomSliderConfigGenerator } from "../configs/ZoomSliderConfigGenerator"; export const CONFIG_GENERATORS = [ @@ -73,6 +74,7 @@ export const CONFIG_GENERATORS = SparklineConfigGenerator, GaugesConfigGenerator, GeoMapConfigGenerator, + ZoomSliderConfigGenerator, // frameworks: DragAndDropConfigGenerator, diff --git a/package-lock.json b/package-lock.json index 5f2726e0ed..ab3e4bc634 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4348,7 +4348,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -4369,12 +4370,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4395,7 +4398,8 @@ "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", @@ -4546,6 +4550,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4553,12 +4558,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -4577,6 +4584,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -4756,7 +4764,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -4812,6 +4821,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -4855,12 +4865,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, diff --git a/src/app/charts/charts-routes-data.ts b/src/app/charts/charts-routes-data.ts index 4e4927a8d8..ced018d3ef 100644 --- a/src/app/charts/charts-routes-data.ts +++ b/src/app/charts/charts-routes-data.ts @@ -1,5 +1,4 @@ -// tslint:disable:object-literal-sort-keys -// tslint:disable:max-line-length +/* tslint:disable */ export const chartsRoutesData = { // doughnut-chart @@ -9,7 +8,7 @@ export const chartsRoutesData = { "doughnut-chart-legend": { displayName: "Doughnut Chart Legend", parentName: "Doughnut Chart" }, "doughnut-chart-rings": { displayName: "Doughnut Chart Rings", parentName: "Doughnut Chart" }, // pie-chart - "pie-chart-data-sample": { displayName: "Pie Chart Data Sample", parentName: "Pie Chart" }, + "pie-chart-overview": { displayName: "Pie Chart Overview", parentName: "Pie Chart" }, "pie-chart-explosion": { displayName: "Pie Chart Explosion", parentName: "Pie Chart" }, "pie-chart-legend": { displayName: "Pie Chart Legend", parentName: "Pie Chart" }, "pie-chart-others": { displayName: "Pie Chart Others Slice", parentName: "Pie Chart" }, @@ -27,7 +26,7 @@ export const chartsRoutesData = { "category-chart-tooltip-types": { displayName: "Category Chart Tooltip Types", parentName: "Category Chart" }, "category-chart-trendline": { displayName: "Category Chart Trendline", parentName: "Category Chart" }, // financial-chart - "financial-chart-overview-sample": { displayName: "Financial Chart Overview", parentName: "Financial Chart" }, + "financial-chart-overview": { displayName: "Financial Chart Overview", parentName: "Financial Chart" }, "financial-chart-performance": { displayName: "Financial Chart Performance", parentName: "Financial Chart" }, "financial-chart-annotations": { displayName: "Financial Chart Annotations", parentName: "Financial Chart" }, "financial-chart-titles": { displayName: "Financial Chart Titles", parentName: "Financial Chart" }, @@ -81,5 +80,7 @@ export const chartsRoutesData = { "sparkline-markers": { displayName: "Sparkline Markers", parentName: "Sparkline"}, "sparkline-normal-range": { displayName: "Sparkline Normal Range", parentName: "Sparkline"}, "sparkline-trendlines": { displayName: "Sparkline Trendlines", parentName: "Sparkline"}, - "sparkline-unknown-values": { displayName: "Sparkline Unknown Values", parentName: "Sparkline"} + "sparkline-unknown-values": { displayName: "Sparkline Unknown Values", parentName: "Sparkline"}, + // zoomslider-chart + "zoomslider-overview": { displayName: "Zoom Slider Overview", parentName: "Zoom Slider"} }; diff --git a/src/app/charts/charts-routing.module.ts b/src/app/charts/charts-routing.module.ts index bc577ebb3b..de0af80cb9 100644 --- a/src/app/charts/charts-routing.module.ts +++ b/src/app/charts/charts-routing.module.ts @@ -1,13 +1,11 @@ -/* tslint:disable:object-literal-sort-keys */ -// tslint:disable:max-line-length -// tslint:disable:member-ordering +/* tslint:disable */ import { NgModule } from "@angular/core"; import { RouterModule, Routes } from "@angular/router"; import { chartsRoutesData } from "./charts-routes-data"; -// category-chart +// category-chart samples import { CategoryChartAnnotationsComponent } from "./category-chart/annotations/category-chart-annotations.component"; import { CategoryChartAxisOptionsComponent } from "./category-chart/axis-options/category-chart-axis-options-sample.component"; import { CategoryChartPerformanceSamplesModule } from "./category-chart/category-chart-performance-samples.module"; @@ -21,8 +19,7 @@ import { CategoryChartOverviewComponent } from "./category-chart/overview/catego import { CategoryChartTooltipTemplateComponent } from "./category-chart/tooltip-template/category-chart-tooltip-template.component"; import { CategoryChartTooltipTypesComponent } from "./category-chart/tooltip-types/category-chart-tooltip-types.component"; import { CategoryChartTrendlinesComponent } from "./category-chart/trendline/category-chart-trendlines.component"; - -// data-chart +// data-chart samples import { DataChartAxisAnnotationsComponent } from "./data-chart/data-chart-axis-annotations/data-chart-axis-annotations.component"; import { DataChartAxisLocationsComponent } from "./data-chart/data-chart-axis-locations/data-chart-axis-locations.component"; import { DataChartAxisSettingsComponent } from "./data-chart/data-chart-axis-settings/data-chart-axis-settings.component"; @@ -53,16 +50,14 @@ import { DataChartTypeScatterSeriesComponent } from "./data-chart/data-chart-typ import { DataChartTypeScatterShapeSeriesComponent } from "./data-chart/data-chart-type-scatter-shape-series/data-chart-type-scatter-shape-series.component"; import { DataChartTypeStackedSeriesComponent } from "./data-chart/data-chart-type-stacked-series/data-chart-type-stacked-series.component"; import { DataChartTypeValueOverlayComponent } from "./data-chart/data-chart-type-value-overlay/data-chart-type-value-overlay.component"; - -// doughnut-chart +// doughnut-chart samples import { DoughnutChartExplosionSampleComponent } from "./doughnut-chart/doughnut-chart-explosion-sample/doughnut-chart-explosion-sample.component"; import { DoughnutChartLegendComponent } from "./doughnut-chart/doughnut-chart-legend/doughnut-chart-legend.component"; import { DoughnutChartOverviewSampleComponent } from "./doughnut-chart/doughnut-chart-overview-sample/doughnut-chart-overview-sample.component"; import { DoughnutChartRingsComponent } from "./doughnut-chart/doughnut-chart-rings/doughnut-chart-rings.component"; import { DoughnutChartSamplesModule } from "./doughnut-chart/doughnut-chart-samples.module"; import { DoughnutChartSelectionSampleComponent } from "./doughnut-chart/doughnut-chart-selection-sample/doughnut-chart-selection-sample.component"; - -// financial-chart +// financial-chart samples import { FinancialChartAnnotationsComponent } from "./financial-chart/annotations/financial-chart-annotations.component"; import { FinancialChartAxisTypesComponent } from "./financial-chart/axis-types/financial-chart-axis-types.component"; import { FinancialChartCustomIndicatorsComponent } from "./financial-chart/custom-indicators/financial-chart-custom-indicators.component"; @@ -72,7 +67,7 @@ import { FinancialChartHighVolumeComponent } from "./financial-chart/high-volume import { FinancialChartIndicatorTypesComponent } from "./financial-chart/indicator-types/financial-chart-indicator-types.component"; import { FinancialChartMultipleDataComponent } from "./financial-chart/multiple-data/financial-chart-multiple-data.component"; import { FinancialChartMultipleFeedsComponent } from "./financial-chart/multiple-feeds/financial-chart-multiple-feeds.component"; -import { FinancialChartOverviewComponent } from "./financial-chart/overview/financial-chart-overview-sample.component"; +import { FinancialChartOverviewComponent } from "./financial-chart/overview/financial-chart-overview.component"; import { FinancialChartPanesComponent } from "./financial-chart/panes/financial-chart-panes.component"; import { FinancialChartPerformanceComponent } from "./financial-chart/performance/financial-chart-performance.component"; import { FinancialChartTimeBasedDataComponent } from "./financial-chart/time-based-data/financial-chart-time-based-data.component"; @@ -81,21 +76,29 @@ import { FinancialChartTooltipTemplateComponent } from "./financial-chart/toolti import { FinancialChartTooltipTypesComponent } from "./financial-chart/tooltip-types/financial-chart-tooltip-types.component"; import { FinancialChartTrendlinesComponent } from "./financial-chart/trendlines/financial-chart-trendlines.component"; import { FinancialChartVolumeTypeComponent } from "./financial-chart/volume-type/financial-chart-volume-type.component"; - -import { PieChartDataSampleComponent } from "./pie-chart/pie-chart-data-sample/pie-chart-data-sample.component"; +// pie-chart samples +import { PieChartDataSampleComponent } from "./pie-chart/pie-chart-overview/pie-chart-overview.component"; import { PieChartExplosionComponent } from "./pie-chart/pie-chart-explosion/pie-chart-explosion.component"; import { PieChartLegendComponent } from "./pie-chart/pie-chart-legend/pie-chart-legend.component"; import { PieChartOthersComponent } from "./pie-chart/pie-chart-others/pie-chart-others.component"; import { PieChartSamplesModule } from "./pie-chart/pie-chart-samples.module"; import { PieChartSelectionComponent } from "./pie-chart/pie-chart-selection/pie-chart-selection.component"; - +// sparkline-chart samples import { SparklineDisplayTypesComponent } from "./sparkline/sparkline-display-types/sparkline-display-types.component"; import { SparklineMarkersComponent } from "./sparkline/sparkline-markers/sparkline-markers.component"; import { SparklineNormalRangeComponent } from "./sparkline/sparkline-normal-range/sparkline-normal-range.component"; import { SparklineTrendlinesComponent } from "./sparkline/sparkline-trendlines/sparkline-trendlines.component"; import { SparklineUnknownValuesComponent } from "./sparkline/sparkline-unknown-values/sparkline-unknown-values.component"; +// zoomslider-chart samples +import { ZoomSliderOverviewComponent } from "./zoomslider/zoomslider-overview/zoomslider-overview.component"; export const chartsRoutes: Routes = [ + // ZoomSlider + { + component: ZoomSliderOverviewComponent, + data: chartsRoutesData["zoomslider-overview"], + path: "zoomslider-overview" + }, // DoughnutChart { component: DoughnutChartExplosionSampleComponent, @@ -125,8 +128,8 @@ export const chartsRoutes: Routes = [ // PieChart { component: PieChartDataSampleComponent, - data: chartsRoutesData["pie-chart-data-sample"], - path: "pie-chart-data-sample" + data: chartsRoutesData["pie-chart-overview"], + path: "pie-chart-overview" }, { component: PieChartExplosionComponent, @@ -353,8 +356,8 @@ export const chartsRoutes: Routes = [ // financial-chart { component: FinancialChartOverviewComponent, - data: chartsRoutesData["financial-chart-overview-sample"], - path: "financial-chart-overview-sample" + data: chartsRoutesData["financial-chart-overview"], + path: "financial-chart-overview" }, { component: FinancialChartPerformanceComponent, diff --git a/src/app/charts/charts.module.ts b/src/app/charts/charts.module.ts index d1795bcdb7..6fa72afacc 100644 --- a/src/app/charts/charts.module.ts +++ b/src/app/charts/charts.module.ts @@ -1,8 +1,13 @@ +/* tslint:disable */ + import { CommonModule } from "@angular/common"; import { NgModule } from "@angular/core"; import { FormsModule } from "@angular/forms"; import { IgxSliderModule } from "igniteui-angular"; import { IgxCategoryChartModule } from "igniteui-angular-charts/ES5/igx-category-chart-module"; +// import { IgxZoomSliderModule } from "igniteui-angular-charts/ES5/igx-zoom-slider-module"; +import { IgxZoomSliderDynamicModule } from "igniteui-angular-charts/ES5/igx-zoom-slider-dynamic-module"; + import { CategoryChartPerformanceSamplesModule } from "./category-chart/category-chart-performance-samples.module"; import { CategoryChartSamplesModule } from "./category-chart/category-chart-samples.module"; import { ChartsRoutingModule } from "./charts-routing.module"; @@ -11,6 +16,7 @@ import { DoughnutChartSamplesModule } from "./doughnut-chart/doughnut-chart-samp import { FinancialChartSamplesModule } from "./financial-chart/financial-chart-samples.module"; import { PieChartSamplesModule } from "./pie-chart/pie-chart-samples.module"; import { SparklineSamplesModule } from "./sparkline/sparkline-samples.module"; +import { ZoomSliderSamplesModule } from "./zoomslider/zoomslider-samples.module"; @NgModule({ imports: [ @@ -20,13 +26,15 @@ import { SparklineSamplesModule } from "./sparkline/sparkline-samples.module"; CategoryChartPerformanceSamplesModule, ChartsRoutingModule, DataChartSamplesModule, + DoughnutChartSamplesModule, FinancialChartSamplesModule, PieChartSamplesModule, - DoughnutChartSamplesModule, SparklineSamplesModule, - ChartsRoutingModule, + ZoomSliderSamplesModule, IgxCategoryChartModule, - IgxSliderModule + IgxSliderModule, + IgxZoomSliderDynamicModule + // IgxZoomSliderModule ] }) export class ChartsModule { } diff --git a/src/app/charts/financial-chart/financial-chart-samples.module.ts b/src/app/charts/financial-chart/financial-chart-samples.module.ts index 8056dda38a..a93f43e058 100644 --- a/src/app/charts/financial-chart/financial-chart-samples.module.ts +++ b/src/app/charts/financial-chart/financial-chart-samples.module.ts @@ -20,7 +20,7 @@ import { FinancialChartHighVolumeComponent } from "./high-volume/financial-chart import { FinancialChartIndicatorTypesComponent } from "./indicator-types/financial-chart-indicator-types.component"; import { FinancialChartMultipleDataComponent } from "./multiple-data/financial-chart-multiple-data.component"; import { FinancialChartMultipleFeedsComponent } from "./multiple-feeds/financial-chart-multiple-feeds.component"; -import { FinancialChartOverviewComponent } from "./overview/financial-chart-overview-sample.component"; +import { FinancialChartOverviewComponent } from "./overview/financial-chart-overview.component"; import { FinancialChartPanesComponent } from "./panes/financial-chart-panes.component"; import { FinancialChartPerformanceComponent } from "./performance/financial-chart-performance.component"; import { FinancialDataService } from "./services/financial-data.service"; diff --git a/src/app/charts/financial-chart/overview/financial-chart-overview-sample.component.html b/src/app/charts/financial-chart/overview/financial-chart-overview.component.html similarity index 100% rename from src/app/charts/financial-chart/overview/financial-chart-overview-sample.component.html rename to src/app/charts/financial-chart/overview/financial-chart-overview.component.html diff --git a/src/app/charts/financial-chart/overview/financial-chart-overview-sample.component.scss b/src/app/charts/financial-chart/overview/financial-chart-overview.component.scss similarity index 100% rename from src/app/charts/financial-chart/overview/financial-chart-overview-sample.component.scss rename to src/app/charts/financial-chart/overview/financial-chart-overview.component.scss diff --git a/src/app/charts/financial-chart/overview/financial-chart-overview-sample.component.ts b/src/app/charts/financial-chart/overview/financial-chart-overview.component.ts similarity index 93% rename from src/app/charts/financial-chart/overview/financial-chart-overview-sample.component.ts rename to src/app/charts/financial-chart/overview/financial-chart-overview.component.ts index 59109b786d..75c1310cff 100644 --- a/src/app/charts/financial-chart/overview/financial-chart-overview-sample.component.ts +++ b/src/app/charts/financial-chart/overview/financial-chart-overview.component.ts @@ -4,9 +4,9 @@ import { FinancialDataService } from "../services/financial-data.service"; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, providers: [ FinancialDataService ], - selector: "app-financial-chart-overview-sample", - styleUrls: ["./financial-chart-overview-sample.component.scss"], - templateUrl: "./financial-chart-overview-sample.component.html" + selector: "app-financial-chart-overview", + styleUrls: ["./financial-chart-overview.component.scss"], + templateUrl: "./financial-chart-overview.component.html" }) export class FinancialChartOverviewComponent { diff --git a/src/app/charts/pie-chart/pie-chart-data-sample/pie-chart-data-sample.component.html b/src/app/charts/pie-chart/pie-chart-overview/pie-chart-overview.component.html similarity index 100% rename from src/app/charts/pie-chart/pie-chart-data-sample/pie-chart-data-sample.component.html rename to src/app/charts/pie-chart/pie-chart-overview/pie-chart-overview.component.html diff --git a/src/app/charts/pie-chart/pie-chart-data-sample/pie-chart-data-sample.component.scss b/src/app/charts/pie-chart/pie-chart-overview/pie-chart-overview.component.scss similarity index 100% rename from src/app/charts/pie-chart/pie-chart-data-sample/pie-chart-data-sample.component.scss rename to src/app/charts/pie-chart/pie-chart-overview/pie-chart-overview.component.scss diff --git a/src/app/charts/pie-chart/pie-chart-data-sample/pie-chart-data-sample.component.ts b/src/app/charts/pie-chart/pie-chart-overview/pie-chart-overview.component.ts similarity index 73% rename from src/app/charts/pie-chart/pie-chart-data-sample/pie-chart-data-sample.component.ts rename to src/app/charts/pie-chart/pie-chart-overview/pie-chart-overview.component.ts index 07cca46e5a..cde42d1458 100644 --- a/src/app/charts/pie-chart/pie-chart-data-sample/pie-chart-data-sample.component.ts +++ b/src/app/charts/pie-chart/pie-chart-overview/pie-chart-overview.component.ts @@ -1,9 +1,9 @@ import { Component, OnInit } from "@angular/core"; @Component({ - selector: "app-pie-chart-data-sample", - styleUrls: ["./pie-chart-data-sample.component.scss"], - templateUrl: "./pie-chart-data-sample.component.html" + selector: "app-pie-chart-overview", + styleUrls: ["./pie-chart-overview.component.scss"], + templateUrl: "./pie-chart-overview.component.html" }) export class PieChartDataSampleComponent { diff --git a/src/app/charts/pie-chart/pie-chart-samples.module.ts b/src/app/charts/pie-chart/pie-chart-samples.module.ts index 548925a812..6d7147584f 100644 --- a/src/app/charts/pie-chart/pie-chart-samples.module.ts +++ b/src/app/charts/pie-chart/pie-chart-samples.module.ts @@ -1,9 +1,7 @@ -/* tslint:disable:object-literal-sort-keys */ -// tslint:disable:max-line-length -// tslint:disable:member-ordering +/* tslint:disable */ import { CommonModule } from "@angular/common"; -import { ModuleWithProviders, NgModule } from "@angular/core"; +import { NgModule } from "@angular/core"; import { FormsModule } from "@angular/forms"; import { IgxButtonModule } from "igniteui-angular"; @@ -11,7 +9,7 @@ import { IgxItemLegendModule } from "igniteui-angular-charts/ES5/igx-item-legend import { IgxLegendModule } from "igniteui-angular-charts/ES5/igx-legend-module"; import { IgxPieChartModule } from "igniteui-angular-charts/ES5/igx-pie-chart-module"; -import { PieChartDataSampleComponent } from "./pie-chart-data-sample/pie-chart-data-sample.component"; +import { PieChartDataSampleComponent } from "./pie-chart-overview/pie-chart-overview.component"; import { PieChartExplosionComponent } from "./pie-chart-explosion/pie-chart-explosion.component"; import { PieChartLegendComponent } from "./pie-chart-legend/pie-chart-legend.component"; import { PieChartOthersComponent } from "./pie-chart-others/pie-chart-others.component"; diff --git a/src/app/charts/zoomslider/zoomslider-overview/zoomslider-overview.component.html b/src/app/charts/zoomslider/zoomslider-overview/zoomslider-overview.component.html new file mode 100644 index 0000000000..571fa45840 --- /dev/null +++ b/src/app/charts/zoomslider/zoomslider-overview/zoomslider-overview.component.html @@ -0,0 +1,60 @@ +
+ + + + + + + + + + +
+
+ + + + + + + + +
+
+ + +
+
+
diff --git a/src/app/charts/zoomslider/zoomslider-overview/zoomslider-overview.component.scss b/src/app/charts/zoomslider/zoomslider-overview/zoomslider-overview.component.scss new file mode 100644 index 0000000000..2c0800918d --- /dev/null +++ b/src/app/charts/zoomslider/zoomslider-overview/zoomslider-overview.component.scss @@ -0,0 +1,20 @@ +.container { + display: flex; + flex-flow: column; + height: 100%; + min-width: 600px; +} + +.sample { + height: 100%; + padding-top: 5px; + padding-bottom: 5px; + padding-right: 10px; + padding-left: 10px; + width: calc(100% - 25px); +} + +.chart { + height: 100%; + min-width: 500px; +} diff --git a/src/app/charts/zoomslider/zoomslider-overview/zoomslider-overview.component.ts b/src/app/charts/zoomslider/zoomslider-overview/zoomslider-overview.component.ts new file mode 100644 index 0000000000..508de78a03 --- /dev/null +++ b/src/app/charts/zoomslider/zoomslider-overview/zoomslider-overview.component.ts @@ -0,0 +1,207 @@ +// tslint:disable:max-line-length +import { AfterViewInit, Component, ViewChild } from "@angular/core"; +import { StockDataService } from "../../financial-chart/services/stock-data.service"; + +import { IgxCategoryXAxisComponent } from "igniteui-angular-charts/ES5/igx-category-x-axis-component"; +// import { ChartCursorEventArgs } from "igniteui-angular-charts/ES5/igx-chart-cursor-event-args"; +import { IgxDataChartComponent } from "igniteui-angular-charts/ES5/igx-data-chart-component"; +// import { IgxFinancialPriceSeriesComponent } from "igniteui-angular-charts/ES5/igx-financial-price-series-component"; +// import { IgxOrdinalTimeXAxisComponent } from "igniteui-angular-charts/ES5/igx-ordinal-time-x-axis-component"; +import { IgxNumericYAxisComponent } from "igniteui-angular-charts/ES5/igx-numeric-y-axis-component"; +import { IgxZoomSliderComponent } from "igniteui-angular-charts/ES5/igx-zoom-slider-component"; +import { ZoomSliderResolvingAxisValueEventArgs } from "igniteui-angular-charts/ES5/igx-zoom-slider-resolving-axis-value-event-args"; +import { IgRect } from "igniteui-angular-core/ES5/IgRect"; +import { RectChangedEventArgs } from "igniteui-angular-core/ES5/igx-rect-changed-event-args"; + +@Component({ + providers: [ StockDataService ], + selector: "app-zoomslider-overviewn", + styleUrls: ["./zoomslider-overview.component.scss"], + templateUrl: "./zoomslider-overview.component.html" +}) +export class ZoomSliderOverviewComponent implements AfterViewInit { + + public data: any; + + @ViewChild("mainChart", { static: true }) + public mainChart: IgxDataChartComponent = null; + @ViewChild("zoomChart", { static: true }) + public zoomChart: IgxDataChartComponent = null; + @ViewChild("zoomSlider", { static: true }) + public zoomSlider: IgxZoomSliderComponent = null; + + public charts: IgxDataChartComponent[] = []; + public container: HTMLDivElement; + public isSynchronizingZoom: boolean = false; + public dateFormat = new Intl.DateTimeFormat("en"); + public lastRect: IgRect = { left: -1, top: -1, width: -1, height: -1}; + + constructor(private dataService: StockDataService) { + + this.data = this.dataService.GetStockTSLA(); + } + + public ngAfterViewInit(): void { + + if (this.mainChart !== undefined) { + console.log("mainChart"); + this.mainChart.actualWindowRectChanged.subscribe((e: RectChangedEventArgs) => + this.onActualWindowRectChanged(this.mainChart, e) + ); + this.mainChart.gridAreaRectChanged.subscribe((e: RectChangedEventArgs) => + this.onGridAreaRectChanged(this.mainChart, e) + ); + this.charts.push(this.mainChart); + } + + if (this.zoomChart !== undefined) { + console.log("zoomChart"); + this.charts.push(this.zoomChart); + } + + if (this.zoomSlider !== undefined) { + console.log("zoomSlider"); + this.zoomSlider.windowRectChanged.subscribe((e: RectChangedEventArgs) => + this.onZoomSliderWindowChanged(this.zoomSlider, e) + ); + } + } + public onActualWindowRectChanged(chart: IgxDataChartComponent, args: RectChangedEventArgs) { + + console.log("mainChart onActualWindowRectChanged"); + if (!this.isSynchronizingZoom) { + this.syncZooms(chart); + } + } + + public onZoomSliderWindowChanged(slider: IgxZoomSliderComponent, args: RectChangedEventArgs) { + if (!this.isSynchronizingZoom) { + this.syncZooms(slider); + } + } + + private syncZooms(sender: any) { + window.setTimeout(() => { + try { + this.isSynchronizingZoom = true; + + const zoomWindow = this.zoomSlider.windowRect; + const datanChart = sender as IgxDataChartComponent; + let chartWindow: any; + if (sender === this.zoomSlider) { + chartWindow = this.mainChart.actualWindowRect; + } else { + chartWindow = datanChart.actualWindowRect; + } + // const chartWindow = sender === this.zoomSlider ? this.mainChart.actualWindowRect : datanChart.actualWindowRect; + + if (sender === this.zoomSlider) { + this.charts.map((chart) => { + this.updateChartZoom(chart, { + top: chartWindow.top, + left: zoomWindow.left, + width: zoomWindow.width, + height: chartWindow.height }); + }); + } else { + this.zoomSlider.windowRect = { + top: zoomWindow.top, + left: chartWindow.left, + width: chartWindow.width, + height: zoomWindow.height }; + this.charts.map((chart) => { + this.updateChartZoom(chart, { + top: zoomWindow.top, + left: chartWindow.left, + width: chartWindow.width, + height: zoomWindow.height }); + }); + } + } finally { + this.isSynchronizingZoom = false; + } + }, 0); + } + + private onResolvingAxisValue(slider: IgxZoomSliderComponent, args: ZoomSliderResolvingAxisValueEventArgs) { + const ind = Math.round(args.position * (this.data.length - 1)); + const val = this.data[ind]; + if (val) { + args.value = this.dateFormat.format(val.time); + } + } + + private onGridAreaRectChanged(chart: IgxDataChartComponent, args: RectChangedEventArgs) { + const newRect = args.newRect; + if (!this.container) { + return; + } + + if (newRect.left !== this.lastRect.left || + newRect.top !== this.lastRect.top || + newRect.width !== this.lastRect.width || + newRect.height !== this.lastRect.height) { + + let rightMargin = this.mainChart.rightMargin; + if (isNaN(rightMargin)) { + rightMargin = this.mainChart.autoMarginWidth; + } + const width = newRect.left + newRect.width + rightMargin; + + const right = newRect.left + newRect.width; + const insetLeft = newRect.left; + const insetRight = width - right; + this.lastRect = newRect; + this.zoomSlider.startInset = insetLeft - this.zoomSlider.trackStartInset; + this.zoomSlider.endInset = insetRight - this.zoomSlider.trackEndInset; + + if (this.zoomSlider.endInset < 0) { + console.log("updating right margin: " + this.zoomSlider.endInset); + const inset = this.zoomSlider.endInset; + this.zoomSlider.endInset = 0; + this.charts.map(c => c.rightMargin += (inset * -1.0)); + } + if (this.zoomSlider.startInset < 0) { + console.log("updating left margin"); + const inset = this.zoomSlider.startInset; + this.zoomSlider.startInset = 0; + this.charts.map(c => c.leftMargin += (inset * -1.0)); + } + + this.zoomChart.leftMargin = insetLeft; + this.zoomChart.rightMargin = insetRight; + this.zoomChart.bottomMargin = this.zoomSlider.barExtent; + } + } + + private updateChartZoom(chart: IgxDataChartComponent, zoom: IgRect) { + const xAxis = chart.actualAxes.filter(a => a.isCategory)[0] as IgxCategoryXAxisComponent; + const yAxis = chart.actualAxes.filter(a => a.isNumeric)[0] as IgxNumericYAxisComponent; + const indexEnd = Math.ceil((xAxis.dataSource.length - 1) * (zoom.left + zoom.width)); + let indexStart = Math.floor((xAxis.dataSource.length - 1) * zoom.left); + + let min = Number.MAX_VALUE; + let max = Number.MIN_VALUE; + + const data = xAxis.dataSource; + if (indexStart < 0) { + indexStart = 0; + } + + for (let i = indexStart; i <= Math.min(indexEnd, xAxis.dataSource.length - 1); i++) { + min = Math.min(min, data[i].open, data[i].high, data[i].low, data[i].close); + max = Math.max(max, data[i].open, data[i].high, data[i].low, data[i].close); + } + + const zMin = (min - yAxis.actualMinimumValue) / (yAxis.actualMaximumValue - yAxis.actualMinimumValue); + const zMax = (max - yAxis.actualMinimumValue) / (yAxis.actualMaximumValue - yAxis.actualMinimumValue); + + const newZoom = { + left: zoom.left, + width: zoom.width, + top: (1.0 - zMax), + height: (zMax - zMin) + }; + chart.windowRect = newZoom; + } +} diff --git a/src/app/charts/zoomslider/zoomslider-samples.module.ts b/src/app/charts/zoomslider/zoomslider-samples.module.ts new file mode 100644 index 0000000000..ff3fa104c8 --- /dev/null +++ b/src/app/charts/zoomslider/zoomslider-samples.module.ts @@ -0,0 +1,48 @@ +/* tslint:disable */ + +import { CommonModule } from "@angular/common"; +import { NgModule } from "@angular/core"; +import { FormsModule } from "@angular/forms"; + +// chart modules +import { IgxDataChartAnnotationModule } from "igniteui-angular-charts/ES5/igx-data-chart-annotation-module"; +import { IgxDataChartCategoryCoreModule } from "igniteui-angular-charts/ES5/igx-data-chart-category-core-module"; +import { IgxDataChartCategoryModule } from "igniteui-angular-charts/ES5/igx-data-chart-category-module"; +import { IgxDataChartCoreModule } from "igniteui-angular-charts/ES5/igx-data-chart-core-module"; +import { IgxDataChartInteractivityModule } from "igniteui-angular-charts/ES5/igx-data-chart-interactivity-module"; + +import { IgxCategoryXAxisModule } from "igniteui-angular-charts/ES5/igx-category-x-axis-module"; +import { IgxOrdinalTimeXAxisModule } from "igniteui-angular-charts/ES5/igx-ordinal-time-x-axis-module"; +import { IgxNumericYAxisModule } from "igniteui-angular-charts/ES5/igx-numeric-y-axis-module"; +import { IgxFinancialPriceSeriesModule } from "igniteui-angular-charts/ES5/igx-financial-price-series-module"; +import { IgxCalloutLayerModule } from "igniteui-angular-charts/ES5/igx-callout-layer-module"; +import { IgxCrosshairLayerModule } from "igniteui-angular-charts/ES5/igx-crosshair-layer-module"; + +import { IgxZoomSliderDynamicModule } from "igniteui-angular-charts/ES5/igx-zoom-slider-dynamic-module"; + +// sample components +import { ZoomSliderOverviewComponent } from "./zoomslider-overview/zoomslider-overview.component"; + +@NgModule({ + declarations: [ + ZoomSliderOverviewComponent + ], + imports: [ + CommonModule, + FormsModule, + IgxDataChartCoreModule, + IgxDataChartCategoryModule, + IgxDataChartCategoryCoreModule, + IgxOrdinalTimeXAxisModule, + IgxCategoryXAxisModule, + IgxNumericYAxisModule, + IgxDataChartInteractivityModule, + IgxFinancialPriceSeriesModule, + IgxDataChartAnnotationModule, + IgxCalloutLayerModule, + IgxCrosshairLayerModule, + IgxZoomSliderDynamicModule + // IgxZoomSliderModule + ] +}) +export class ZoomSliderSamplesModule {} diff --git a/src/app/excel-library/excel-library-routes-data.ts b/src/app/excel-library/excel-library-routes-data.ts index 742bc9af2b..5ae9062533 100644 --- a/src/app/excel-library/excel-library-routes-data.ts +++ b/src/app/excel-library/excel-library-routes-data.ts @@ -8,5 +8,5 @@ export const excelLibraryRoutesData = { "working-with-grids": { displayName: "Working With Grids", parentName: "Excel Library" }, "working-with-objects": { displayName: "Working With Objects", parentName: "Excel Library" }, "working-with-sparklines": { displayName: "Working With Sparklines", parentName: "Excel Library" }, - "excel-library-working-with-tables": { displayName: "Working With Tables", parentName: "Excel Library" } + "working-with-tables": { displayName: "Working With Tables", parentName: "Excel Library" } }; diff --git a/src/app/excel-library/excel-library-routing.module.ts b/src/app/excel-library/excel-library-routing.module.ts index 4080061070..7dc8f32164 100644 --- a/src/app/excel-library/excel-library-routing.module.ts +++ b/src/app/excel-library/excel-library-routing.module.ts @@ -48,8 +48,8 @@ export const excelLibraryRoutes: Routes = [ }, { component: ExcelLibraryWorkingWithTablesComponent, - data: excelLibraryRoutesData["excel-library-working-with-tables"], - path: "excel-library-working-with-tables" + data: excelLibraryRoutesData["working-with-tables"], + path: "working-with-tables" } ]; diff --git a/src/app/grid-finjs/grid-finjs-demo.component.scss b/src/app/grid-finjs/grid-finjs-demo.component.scss index a3e3797bdf..1b9e187ee2 100644 --- a/src/app/grid-finjs/grid-finjs-demo.component.scss +++ b/src/app/grid-finjs/grid-finjs-demo.component.scss @@ -168,14 +168,17 @@ } .finjs-slider { width: 40%; + min-width: 145px; } .finjs-play-controls { width: 45%; min-width: 500px; + margin-top: 20px; } .sample-toolbar { height: 20px; font-size: 0.8rem; + line-height: 20px; } .fin-dark-theme { .finjs-slider, diff --git a/src/app/grid/custom-grid-paging-style/custom-grid-paging-style.component.html b/src/app/grid/custom-grid-paging-style/custom-grid-paging-style.component.html index 2e53de0db3..9454728e21 100644 --- a/src/app/grid/custom-grid-paging-style/custom-grid-paging-style.component.html +++ b/src/app/grid/custom-grid-paging-style/custom-grid-paging-style.component.html @@ -1,5 +1,5 @@
- + @@ -39,4 +39,22 @@ + + +
+ + + {{ grid.page + 1 }} of {{ grid.totalPages }} + + +
+
diff --git a/src/app/grid/custom-grid-paging-style/custom-grid-paging-style.component.scss b/src/app/grid/custom-grid-paging-style/custom-grid-paging-style.component.scss index b271444083..a31458d8b0 100644 --- a/src/app/grid/custom-grid-paging-style/custom-grid-paging-style.component.scss +++ b/src/app/grid/custom-grid-paging-style/custom-grid-paging-style.component.scss @@ -10,7 +10,7 @@ $dark-button: igx-button-theme( $icon-color: #FFCD0F, $icon-hover-color: #292826 :host { ::ng-deep { @include igx-grid-paginator($dark-grid-paginator); - .igx-paginator { + .igx-grid-paginator__pager { @include igx-button($dark-button); } } @@ -93,4 +93,4 @@ $dark-button: igx-button-theme( $icon-color: #FFCD0F, $icon-hover-color: #292826 .grid__wrapper { width: 950px; margin: 10px auto; -} \ No newline at end of file +} diff --git a/src/app/grid/grid-boston-marathon/grid.component.html b/src/app/grid/grid-boston-marathon/grid.component.html index fc931f6035..f8a4fdb273 100644 --- a/src/app/grid/grid-boston-marathon/grid.component.html +++ b/src/app/grid/grid-boston-marathon/grid.component.html @@ -93,7 +93,7 @@
Boston Marathon 2018
-
+
-
\ No newline at end of file + diff --git a/src/app/grid/grid-boston-marathon/grid.component.scss b/src/app/grid/grid-boston-marathon/grid.component.scss index d1b6954e23..c41d169e11 100644 --- a/src/app/grid/grid-boston-marathon/grid.component.scss +++ b/src/app/grid/grid-boston-marathon/grid.component.scss @@ -6,16 +6,16 @@ $row-selected-text-color: #ddd, $row-hover-background: #f8f8f8, $row-border-color: #f8f8f8, - + $cell-selected-background: igx-color($default-palette, grays, 800), $cell-selected-text-color: #fff ); - + $progressBar-sample-theme: igx-progress-linear-theme( $track-color: rgba(181,181,181, .5), $fill-color-default: orange ); - + .grid__wrapper { @include igx-grid($grid-sample-theme); @include igx-progress-linear($progressBar-sample-theme); @@ -124,12 +124,6 @@ } } -.igx-paginator>* { - margin: 0 .3125rem; - display: flex; - align-items: center; -} - .linear-bar-container { width: 100%; } diff --git a/src/app/grid/grid-clipboard-operations-sample/grid-clipboard-operations-sample.component.html b/src/app/grid/grid-clipboard-operations-sample/grid-clipboard-operations-sample.component.html new file mode 100644 index 0000000000..33db97fbdd --- /dev/null +++ b/src/app/grid/grid-clipboard-operations-sample/grid-clipboard-operations-sample.component.html @@ -0,0 +1,40 @@ +
+
+
+ + + + + clear + + + The default value is a single tabulation which is shown as whitespace above. + Click the clear icon to reset it back to tabulation. + + +
+ + +
+ Grid copy behavior + Copying of header labels + Copying column formatters + +
+
+
+
+ +
+ + + + +
+
+
+
\ No newline at end of file diff --git a/src/app/grid/grid-clipboard-operations-sample/grid-clipboard-operations-sample.component.scss b/src/app/grid/grid-clipboard-operations-sample/grid-clipboard-operations-sample.component.scss new file mode 100644 index 0000000000..61f01b4cd2 --- /dev/null +++ b/src/app/grid/grid-clipboard-operations-sample/grid-clipboard-operations-sample.component.scss @@ -0,0 +1,40 @@ +@import '~igniteui-angular/lib/core/styles/themes/index'; + +@mixin scrollbar-love($scrollbar-color: null) { + $scrollbar-track: hexrgba(igx-color($default-palette, 'grays', 200)); + $scrollbar-thumb: hexrgba(igx-color($default-palette, 'grays', 400)); + + @if $scrollbar-color and luminance($scrollbar-color) < .5 { + $scrollbar-track: darken($scrollbar-color, 8%); + $scrollbar-thumb: lighten($scrollbar-color, 20%); + } + + ::-webkit-scrollbar { + width: 16px; + height: 16px; + background-color: $scrollbar-track; + } + + ::-webkit-scrollbar-thumb { + background-color: $scrollbar-thumb; + } +} + +:host ::ng-deep { + @include scrollbar-love(); + + .igx-switch__label { + line-height: 1rem; + } +} + +.tlb { + display: flex; + max-width: 734px; +} + +.grid-wrapper { + width: 50wh; + height: 364px; + margin-top: 7px; +} \ No newline at end of file diff --git a/src/app/grid/grid-clipboard-operations-sample/grid-clipboard-operations-sample.component.ts b/src/app/grid/grid-clipboard-operations-sample/grid-clipboard-operations-sample.component.ts new file mode 100644 index 0000000000..a7ad2185c1 --- /dev/null +++ b/src/app/grid/grid-clipboard-operations-sample/grid-clipboard-operations-sample.component.ts @@ -0,0 +1,35 @@ +import { Component, OnInit } from "@angular/core"; +import { DATA } from "../../data/nwindData"; + +@Component({ + selector: "grid-clipboard-operations-sample", + styleUrls: ["grid-clipboard-operations-sample.component.scss"], + templateUrl: "./grid-clipboard-operations-sample.component.html" +}) +export class GridClipboardSampleComponent implements OnInit { + + public data: any[]; + public options = { + enabled: true, + copyHeaders: true, + copyFormatters: true, + separator: "\t" + }; + + constructor() { + this.data = DATA; + } + + public ngOnInit() { + } + + public formatter = (value: any) => `** ${value} **`; + + public initColumn(column) { + column.formatter = this.formatter; + column.header = `🎉${column.field}`; + if (column.index > 6) { + column.hidden = true; + } + } +} diff --git a/src/app/grid/grid-paging-sample/grid-paging-sample.component.html b/src/app/grid/grid-paging-sample/grid-paging-sample.component.html index 8813956fc2..15d5c79080 100644 --- a/src/app/grid/grid-paging-sample/grid-paging-sample.component.html +++ b/src/app/grid/grid-paging-sample/grid-paging-sample.component.html @@ -43,7 +43,7 @@ -
+
@@ -59,4 +59,4 @@
-
\ No newline at end of file + diff --git a/src/app/grid/grid-paging-sample/grid-paging-sample.component.scss b/src/app/grid/grid-paging-sample/grid-paging-sample.component.scss index bbd294a939..fa3b51719f 100644 --- a/src/app/grid/grid-paging-sample/grid-paging-sample.component.scss +++ b/src/app/grid/grid-paging-sample/grid-paging-sample.component.scss @@ -29,12 +29,6 @@ $progressBar-sample-theme: igx-progress-linear-theme( justify-content: space-between; } -.igx-paginator>* { - margin: 0 .3125rem; - display: flex; - align-items: center; -} - .linear-bar-container { width: 100%; -} \ No newline at end of file +} diff --git a/src/app/grid/grid-remote-paging-sample/remote-paging-sample.component.html b/src/app/grid/grid-remote-paging-sample/remote-paging-sample.component.html index 7a659f6b1b..d4d30d2a36 100644 --- a/src/app/grid/grid-remote-paging-sample/remote-paging-sample.component.html +++ b/src/app/grid/grid-remote-paging-sample/remote-paging-sample.component.html @@ -9,42 +9,48 @@ - - - {{ page + 1 }} of {{totalPages}} - - - +
+ + + {{ page + 1 }} of {{totalPages}} + + + +
- - {{1}} ... - {{item + 1}} - ... {{ totalPages }} - +
+ + {{1}} ... + {{item + 1}} + ... {{ totalPages }} + +

- -

\ No newline at end of file +

diff --git a/src/app/grid/grid-routes-data.ts b/src/app/grid/grid-routes-data.ts index a326528b1b..67d234bcfe 100644 --- a/src/app/grid/grid-routes-data.ts +++ b/src/app/grid/grid-routes-data.ts @@ -55,5 +55,7 @@ export const gridsRoutesData = { "grid-composite-data-binding": { displayName: "Grid Composite Data Binding", parentName: "Grid" }, "grid-row-edit-style" : { displayName: "Grid Row Edit Style", parentName: "Grid" }, "grid-contextmenu-sample": { displayName: "Grid Context Menu", parentName: "Grid" }, + "multi-column-header-template": { displayName: "Grid Multi Column Header Template", parentName: "Grid" }, + "grid-clipboard-operations-sample": { displayName: "Grid Clipboard Operations", parentName: "Grid" }, "grid-toolbar-style": { displayName: "Grid Toolbar Style", parentName: "Grid" } }; diff --git a/src/app/grid/grids-routing.module.ts b/src/app/grid/grids-routing.module.ts index e77bb8ff47..45960154f2 100644 --- a/src/app/grid/grids-routing.module.ts +++ b/src/app/grid/grids-routing.module.ts @@ -3,6 +3,7 @@ import { NgModule } from "@angular/core"; import { RouterModule, Routes } from "@angular/router"; import { GridBatchEditingSampleComponent } from "./grid-batch-editing/grid-batch-editing-sample.component"; import { GridComponent } from "./grid-boston-marathon/grid.component"; +import { GridClipboardSampleComponent } from "./grid-clipboard-operations-sample/grid-clipboard-operations-sample.component"; import { GridColumnHidingSampleComponent } from "./grid-column-hiding-sample/grid-column-hiding-sample.component"; import { GridColumnHidingToolbarSampleComponent } from "./grid-column-hiding-toolbar-sample/grid-column-hiding-toolbar-sample.component"; import { GridCompositeDataComponent } from "./grid-composite-data-binding/grid-composite-data.component"; @@ -52,6 +53,7 @@ import { GridToolbarSample2Component } from "./grid-toolbar-sample/grid-toolbar- import { GridToolbarSample3Component } from "./grid-toolbar-sample/grid-toolbar-sample-3.component"; import { GridToolbarSample4Component } from "./grid-toolbar-sample/grid-toolbar-sample-4.component"; import { GridToolbarStyleComponent } from "./grid-toolbar-style/grid-toolbar-style.component"; +import { GridMultiColumnHeaderTemplateComponent } from "./multi-column-header-template/multi-column-header-template"; import { GridMultiColumnHeadersComponent } from "./multi-column-headers/multi-column-headers"; import { CustomGridPagingStyleSample } from "./custom-grid-paging-style/custom-grid-paging-style.component"; @@ -326,6 +328,16 @@ export const gridsRoutes: Routes = [ data: gridsRoutesData["custom-grid-paging-style"], path: "custom-grid-paging-style" }, + { + component: GridMultiColumnHeaderTemplateComponent, + data: gridsRoutesData["multi-column-header-template"], + path: "multi-column-header-template" + }, + { + component: GridClipboardSampleComponent, + data: gridsRoutesData["grid-clipboard-operations-sample"], + path: "grid-clipboard-operations-sample" + }, { component: GridToolbarStyleComponent, data: gridsRoutesData["grid-toolbar-style"], diff --git a/src/app/grid/grids.module.ts b/src/app/grid/grids.module.ts index b732e1b549..c88bedce5b 100644 --- a/src/app/grid/grids.module.ts +++ b/src/app/grid/grids.module.ts @@ -12,6 +12,7 @@ import { import { GridBatchEditingSampleComponent } from "./grid-batch-editing/grid-batch-editing-sample.component"; import { GridWithTransactionsComponent } from "./grid-batch-editing/grid-transaction.component"; import { GridComponent } from "./grid-boston-marathon/grid.component"; +import { GridClipboardSampleComponent } from "./grid-clipboard-operations-sample/grid-clipboard-operations-sample.component"; import { GridColumnHidingSampleComponent } from "./grid-column-hiding-sample/grid-column-hiding-sample.component"; import { GridColumnHidingToolbarSampleComponent } from "./grid-column-hiding-toolbar-sample/grid-column-hiding-toolbar-sample.component"; import { GridCompositeDataComponent } from "./grid-composite-data-binding/grid-composite-data.component"; @@ -65,6 +66,7 @@ import { GridToolbarSample3Component } from "./grid-toolbar-sample/grid-toolbar- import { GridToolbarSample4Component } from "./grid-toolbar-sample/grid-toolbar-sample-4.component"; import { GridToolbarStyleComponent } from "./grid-toolbar-style/grid-toolbar-style.component"; import { GridsRoutingModule } from "./grids-routing.module"; +import { GridMultiColumnHeaderTemplateComponent } from "./multi-column-header-template/multi-column-header-template"; import { GridMultiColumnHeadersComponent } from "./multi-column-headers/multi-column-headers"; import { DataService } from "./services/data.service"; @@ -133,6 +135,8 @@ import { GridResizeLineStylingSampleComponent } from "./grid-resize-line-styling ContextmenuComponent, CustomGridPagingStyleSample, GridRowReorderComponent, + GridMultiColumnHeaderTemplateComponent, + GridClipboardSampleComponent, GridToolbarStyleComponent ], imports: [ diff --git a/src/app/grid/multi-column-header-template/data.ts b/src/app/grid/multi-column-header-template/data.ts new file mode 100644 index 0000000000..f99b2c8efe --- /dev/null +++ b/src/app/grid/multi-column-header-template/data.ts @@ -0,0 +1,30 @@ +export const data = [ + // tslint:disable:max-line-length + { ID: "ALFKI", CompanyName: "Alfreds Futterkiste", ContactName: "Maria Anders", ContactTitle: "Sales Representative", Address: "Obere Str. 57", City: "Berlin", Region: null, PostalCode: "12209", Country: "Germany", Phone: "030-0074321", Fax: "030-0076545" }, + { ID: "ANATR", CompanyName: "Ana Trujillo Emparedados y helados", ContactName: "Ana Trujillo", ContactTitle: "Owner", Address: "Avda. de la Constitución 2222", City: "México D.F.", Region: null, PostalCode: "05021", Country: "Mexico", Phone: "(5) 555-4729", Fax: "(5) 555-3745" }, + { ID: "ANTON", CompanyName: "Antonio Moreno Taquería", ContactName: "Antonio Moreno", ContactTitle: "Owner", Address: "Mataderos 2312", City: "México D.F.", Region: null, PostalCode: "05023", Country: "Mexico", Phone: "(5) 555-3932", Fax: null }, + { ID: "AROUT", CompanyName: "Around the Horn", ContactName: "Thomas Hardy", ContactTitle: "Sales Representative", Address: "120 Hanover Sq.", City: "London", Region: null, PostalCode: "WA1 1DP", Country: "UK", Phone: "(171) 555-7788", Fax: "(171) 555-6750" }, + { ID: "BERGS", CompanyName: "Berglunds snabbköp", ContactName: "Christina Berglund", ContactTitle: "Order Administrator", Address: "Berguvsvägen 8", City: "Luleå", Region: null, PostalCode: "S-958 22", Country: "Sweden", Phone: "0921-12 34 65", Fax: "0921-12 34 67" }, + { ID: "BLAUS", CompanyName: "Blauer See Delikatessen", ContactName: "Hanna Moos", ContactTitle: "Sales Representative", Address: "Forsterstr. 57", City: "Mannheim", Region: null, PostalCode: "68306", Country: "Germany", Phone: "0621-08460", Fax: "0621-08924" }, + { ID: "BLONP", CompanyName: "Blondesddsl père et fils", ContactName: "Frédérique Citeaux", ContactTitle: "Marketing Manager", Address: "24, place Kléber", City: "Strasbourg", Region: null, PostalCode: "67000", Country: "France", Phone: "88.60.15.31", Fax: "88.60.15.32" }, + { ID: "BOLID", CompanyName: "Bólido Comidas preparadas", ContactName: "Martín Sommer", ContactTitle: "Owner", Address: "C/ Araquil, 67", City: "Madrid", Region: null, PostalCode: "28023", Country: "Spain", Phone: "(91) 555 22 82", Fax: "(91) 555 91 99" }, + { ID: "BONAP", CompanyName: "Bon app'", ContactName: "Laurence Lebihan", ContactTitle: "Owner", Address: "12, rue des Bouchers", City: "Marseille", Region: null, PostalCode: "13008", Country: "France", Phone: "91.24.45.40", Fax: "91.24.45.41" }, + { ID: "BOTTM", CompanyName: "Bottom-Dollar Markets", ContactName: "Elizabeth Lincoln", ContactTitle: "Accounting Manager", Address: "23 Tsawassen Blvd.", City: "Tsawassen", Region: "BC", PostalCode: "T2F 8M4", Country: "Canada", Phone: "(604) 555-4729", Fax: "(604) 555-3745" }, + { ID: "BSBEV", CompanyName: "B's Beverages", ContactName: "Victoria Ashworth", ContactTitle: "Sales Representative", Address: "Fauntleroy Circus", City: "London", Region: null, PostalCode: "EC2 5NT", Country: "UK", Phone: "(171) 555-1212", Fax: null }, + { ID: "CACTU", CompanyName: "Cactus Comidas para llevar", ContactName: "Patricio Simpson", ContactTitle: "Sales Agent", Address: "Cerrito 333", City: "Buenos Aires", Region: null, PostalCode: "1010", Country: "Argentina", Phone: "(1) 135-5555", Fax: "(1) 135-4892" }, + { ID: "CENTC", CompanyName: "Centro comercial Moctezuma", ContactName: "Francisco Chang", ContactTitle: "Marketing Manager", Address: "Sierras de Granada 9993", City: "México D.F.", Region: null, PostalCode: "05022", Country: "Mexico", Phone: "(5) 555-3392", Fax: "(5) 555-7293" }, + { ID: "CHOPS", CompanyName: "Chop-suey Chinese", ContactName: "Yang Wang", ContactTitle: "Owner", Address: "Hauptstr. 29", City: "Bern", Region: null, PostalCode: "3012", Country: "Switzerland", Phone: "0452-076545", Fax: null }, + { ID: "COMMI", CompanyName: "Comércio Mineiro", ContactName: "Pedro Afonso", ContactTitle: "Sales Associate", Address: "Av. dos Lusíadas, 23", City: "Sao Paulo", Region: "SP", PostalCode: "05432-043", Country: "Brazil", Phone: "(11) 555-7647", Fax: null }, + { ID: "CONSH", CompanyName: "Consolidated Holdings", ContactName: "Elizabeth Brown", ContactTitle: "Sales Representative", Address: "Berkeley Gardens 12 Brewery", City: "London", Region: null, PostalCode: "WX1 6LT", Country: "UK", Phone: "(171) 555-2282", Fax: "(171) 555-9199" }, + { ID: "DRACD", CompanyName: "Drachenblut Delikatessen", ContactName: "Sven Ottlieb", ContactTitle: "Order Administrator", Address: "Walserweg 21", City: "Aachen", Region: null, PostalCode: "52066", Country: "Germany", Phone: "0241-039123", Fax: "0241-059428" }, + { ID: "DUMON", CompanyName: "Du monde entier", ContactName: "Janine Labrune", ContactTitle: "Owner", Address: "67, rue des Cinquante Otages", City: "Nantes", Region: null, PostalCode: "44000", Country: "France", Phone: "40.67.88.88", Fax: "40.67.89.89" }, + { ID: "EASTC", CompanyName: "Eastern Connection", ContactName: "Ann Devon", ContactTitle: "Sales Agent", Address: "35 King George", City: "London", Region: null, PostalCode: "WX3 6FW", Country: "UK", Phone: "(171) 555-0297", Fax: "(171) 555-3373" }, + { ID: "ERNSH", CompanyName: "Ernst Handel", ContactName: "Roland Mendel", ContactTitle: "Sales Manager", Address: "Kirchgasse 6", City: "Graz", Region: null, PostalCode: "8010", Country: "Austria", Phone: "7675-3425", Fax: "7675-3426" }, + { ID: "FAMIA", CompanyName: "Familia Arquibaldo", ContactName: "Aria Cruz", ContactTitle: "Marketing Assistant", Address: "Rua Orós, 92", City: "Sao Paulo", Region: "SP", PostalCode: "05442-030", Country: "Brazil", Phone: "(11) 555-9857", Fax: null }, + { ID: "FISSA", CompanyName: "FISSA Fabrica Inter. Salchichas S.A.", ContactName: "Diego Roel", ContactTitle: "Accounting Manager", Address: "C/ Moralzarzal, 86", City: "Madrid", Region: null, PostalCode: "28034", Country: "Spain", Phone: "(91) 555 94 44", Fax: "(91) 555 55 93" }, + { ID: "FOLIG", CompanyName: "Folies gourmandes", ContactName: "Martine Rancé", ContactTitle: "Assistant Sales Agent", Address: "184, chaussée de Tournai", City: "Lille", Region: null, PostalCode: "59000", Country: "France", Phone: "20.16.10.16", Fax: "20.16.10.17" }, + { ID: "FOLKO", CompanyName: "Folk och fä HB", ContactName: "Maria Larsson", ContactTitle: "Owner", Address: "Åkergatan 24", City: "Bräcke", Region: null, PostalCode: "S-844 67", Country: "Sweden", Phone: "0695-34 67 21", Fax: null }, + { ID: "FRANK", CompanyName: "Frankenversand", ContactName: "Peter Franken", ContactTitle: "Marketing Manager", Address: "Berliner Platz 43", City: "München", Region: null, PostalCode: "80805", Country: "Germany", Phone: "089-0877310", Fax: "089-0877451" }, + { ID: "FRANR", CompanyName: "France restauration", ContactName: "Carine Schmitt", ContactTitle: "Marketing Manager", Address: "54, rue Royale", City: "Nantes", Region: null, PostalCode: "44000", Country: "France", Phone: "40.32.21.21", Fax: "40.32.21.20" }, + { ID: "FRANS", CompanyName: "Franchi S.p.A.", ContactName: "Paolo Accorti", ContactTitle: "Sales Representative", Address: "Via Monte Bianco 34", City: "Torino", Region: null, PostalCode: "10100", Country: "Italy", Phone: "011-4988260", Fax: "011-4988261" } +]; diff --git a/src/app/grid/multi-column-header-template/multi-column-header-template.html b/src/app/grid/multi-column-header-template/multi-column-header-template.html new file mode 100644 index 0000000000..0794f0e972 --- /dev/null +++ b/src/app/grid/multi-column-header-template/multi-column-header-template.html @@ -0,0 +1,37 @@ +
+ +
+ + {{columnGroupStates.get(col) ? 'expand_more' : 'expand_less'}} + {{col.header}} +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/src/app/grid/multi-column-header-template/multi-column-header-template.scss b/src/app/grid/multi-column-header-template/multi-column-header-template.scss new file mode 100644 index 0000000000..01ee897b3a --- /dev/null +++ b/src/app/grid/multi-column-header-template/multi-column-header-template.scss @@ -0,0 +1,12 @@ +.grid__wrapper { + margin: 10px; +} + +.column-group-template__container { + display: flex; + align-items: center; +} + +.column-group-template__icon { + cursor: pointer; +} \ No newline at end of file diff --git a/src/app/grid/multi-column-header-template/multi-column-header-template.ts b/src/app/grid/multi-column-header-template/multi-column-header-template.ts new file mode 100644 index 0000000000..4f4c71cfc3 --- /dev/null +++ b/src/app/grid/multi-column-header-template/multi-column-header-template.ts @@ -0,0 +1,37 @@ +import { Component, ViewChild } from "@angular/core"; +import { IgxColumnGroupComponent, IgxGridComponent } from "igniteui-angular"; +import { data } from "./data"; + +@Component({ + selector: "multi-column-header-template", + styleUrls: [ "multi-column-header-template.scss" ], + templateUrl: "multi-column-header-template.html" +}) +export class GridMultiColumnHeaderTemplateComponent { + + @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) + public grid: IgxGridComponent; + public data: any[] = data; + public columnGroupStates = new Map(); + + constructor() { + for (const item of this.data) { + item.Location = `${item.Address}, ${item.City}, ${item.Country}`; + } + } + + public toggleColumnGroup(columnGroup: IgxColumnGroupComponent) { + const columns = columnGroup.children.toArray(); + + if (columnGroup.header === "General Information") { + const col = columns[1]; + col.hidden = !col.hidden; + } else if (columnGroup.header === "Address Information") { + for (const col of columns) { + col.hidden = !col.hidden; + } + } + + this.columnGroupStates.set(columnGroup, !this.columnGroupStates.get(columnGroup)); + } +} diff --git a/src/app/hierarchical-grid/hierarchical-grid-multi-column-header-template/hierarchical-grid-multi-column-template.component.html b/src/app/hierarchical-grid/hierarchical-grid-multi-column-header-template/hierarchical-grid-multi-column-template.component.html new file mode 100644 index 0000000000..131de6208c --- /dev/null +++ b/src/app/hierarchical-grid/hierarchical-grid-multi-column-header-template/hierarchical-grid-multi-column-template.component.html @@ -0,0 +1,66 @@ +
+ +
+ + {{columnGroupStates.get(col) ? 'expand_more' : 'expand_less'}} + {{col.header}} +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/src/app/hierarchical-grid/hierarchical-grid-multi-column-header-template/hierarchical-grid-multi-column-template.component.scss b/src/app/hierarchical-grid/hierarchical-grid-multi-column-header-template/hierarchical-grid-multi-column-template.component.scss new file mode 100644 index 0000000000..01ee897b3a --- /dev/null +++ b/src/app/hierarchical-grid/hierarchical-grid-multi-column-header-template/hierarchical-grid-multi-column-template.component.scss @@ -0,0 +1,12 @@ +.grid__wrapper { + margin: 10px; +} + +.column-group-template__container { + display: flex; + align-items: center; +} + +.column-group-template__icon { + cursor: pointer; +} \ No newline at end of file diff --git a/src/app/hierarchical-grid/hierarchical-grid-multi-column-header-template/hierarchical-grid-multi-column-template.component.ts b/src/app/hierarchical-grid/hierarchical-grid-multi-column-header-template/hierarchical-grid-multi-column-template.component.ts new file mode 100644 index 0000000000..510fe5cad0 --- /dev/null +++ b/src/app/hierarchical-grid/hierarchical-grid-multi-column-header-template/hierarchical-grid-multi-column-template.component.ts @@ -0,0 +1,47 @@ +import { Component, OnInit, ViewChild } from "@angular/core"; +import { IgxColumnGroupComponent, IgxHierarchicalGridComponent } from "igniteui-angular"; +import { CUSTOMERS } from "../data"; + +@Component({ + selector: "hierarchical-grid-multi-column-template", + styleUrls: ["./hierarchical-grid-multi-column-template.component.scss"], + templateUrl: "hierarchical-grid-multi-column-template.component.html" +}) + +export class HGridMultiHeaderTemplateSampleComponent implements OnInit { + public localData: any[]; + public columnGroupStates = new Map(); + + @ViewChild("hierarchicalGrid", { read: IgxHierarchicalGridComponent, static: true}) + private hierarchicalGrid: IgxHierarchicalGridComponent; + + constructor() { + } + + public ngOnInit(): void { + this.localData = CUSTOMERS; + for (const item of this.localData) { + item.Location = `${item.Address}, ${item.City}, ${item.Country}`; + } + } + + public toggleColumnGroup(columnGroup: IgxColumnGroupComponent) { + const columns = columnGroup.children.toArray(); + + if (columnGroup.header === "General Information") { + const col = columns[1]; + col.hidden = !col.hidden; + } else if (columnGroup.header === "Address Information") { + for (const col of columns) { + col.hidden = !col.hidden; + } + } else { + for (let i = 1; i < columns.length; i++) { + const col = columns[i]; + col.hidden = !col.hidden; + } + } + + this.columnGroupStates.set(columnGroup, !this.columnGroupStates.get(columnGroup)); + } +} diff --git a/src/app/hierarchical-grid/hierarchical-grid-paging-style/hierarchical-grid-paging-style.component.html b/src/app/hierarchical-grid/hierarchical-grid-paging-style/hierarchical-grid-paging-style.component.html index dc930eba27..5d759faf02 100644 --- a/src/app/hierarchical-grid/hierarchical-grid-paging-style/hierarchical-grid-paging-style.component.html +++ b/src/app/hierarchical-grid/hierarchical-grid-paging-style/hierarchical-grid-paging-style.component.html @@ -1,5 +1,5 @@ + [height]="'550px'" [width]="'100%'" [paginationTemplate]="customPager" #hierarchicalGrid> @@ -16,12 +16,12 @@ - + - + @@ -29,4 +29,22 @@ - \ No newline at end of file + + + +
+ + + {{ grid.page + 1 }} of {{ grid.totalPages }} + + +
+
diff --git a/src/app/hierarchical-grid/hierarchical-grid-paging-style/hierarchical-grid-paging-style.component.scss b/src/app/hierarchical-grid/hierarchical-grid-paging-style/hierarchical-grid-paging-style.component.scss index 9c63f3645d..9c16e7f77b 100644 --- a/src/app/hierarchical-grid/hierarchical-grid-paging-style/hierarchical-grid-paging-style.component.scss +++ b/src/app/hierarchical-grid/hierarchical-grid-paging-style/hierarchical-grid-paging-style.component.scss @@ -10,7 +10,7 @@ $dark-button: igx-button-theme( $icon-color: #FFCD0F, $icon-hover-color: #292826 :host { ::ng-deep { @include igx-grid-paginator($dark-grid-paginator); - .igx-paginator { + .igx-grid-paginator__pager { @include igx-button($dark-button); } } @@ -97,4 +97,4 @@ $dark-button: igx-button-theme( $icon-color: #FFCD0F, $icon-hover-color: #292826 .cell__inner_2 { margin: 1px -} \ No newline at end of file +} diff --git a/src/app/hierarchical-grid/hierarchical-grid-paging/hierarchical-grid-remote-paging.component.html b/src/app/hierarchical-grid/hierarchical-grid-paging/hierarchical-grid-remote-paging.component.html index 7aa0e21d66..9550e75d14 100644 --- a/src/app/hierarchical-grid/hierarchical-grid-paging/hierarchical-grid-remote-paging.component.html +++ b/src/app/hierarchical-grid/hierarchical-grid-paging/hierarchical-grid-remote-paging.component.html @@ -1,6 +1,6 @@ - - + + @@ -24,22 +24,23 @@ - - - {{ page + 1 }} of {{totalPages}} - - - - \ No newline at end of file +
+ + + {{ page + 1 }} of {{totalPages}} + + + +
+
diff --git a/src/app/hierarchical-grid/hierarchical-grid-routes-data.ts b/src/app/hierarchical-grid/hierarchical-grid-routes-data.ts index 7b8fbbc2a8..cbdfc5cc8b 100644 --- a/src/app/hierarchical-grid/hierarchical-grid-routes-data.ts +++ b/src/app/hierarchical-grid/hierarchical-grid-routes-data.ts @@ -34,6 +34,7 @@ export const hierarchicalGridRoutesData = { "hierarchical-grid-lod": { displayName: "Hierarchical Grid Load on Demand", parentName: "Hierarchical Grid" }, "hierarchical-grid-custom-kb-navigation": { displayName: "Hierarchical Grid Custom Keyboard Navigation", parentName: "Hierarchical Grid" }, "hierarchical-grid-paging-style": { displayName: "HGrid Paging Style", parentName: "Hierarchical Grid" }, + "hierarchical-grid-multi-column-template": { displayName: "Hierarchical Grid Multi Column Header Template", parentName: "Hierarchical Grid" }, "hierarchical-grid-row-edit-style": { displayName: "HGrid Row Edit Style", parentName: "Hierarchical Grid" }, "hierarchical-grid-toolbar-style": { displayName: "HGrid Toolbar Style", parentName: "Hierarchical Grid" } }; diff --git a/src/app/hierarchical-grid/hierarchical-grid-routing.module.ts b/src/app/hierarchical-grid/hierarchical-grid-routing.module.ts index 82372e1061..3dc6415a1f 100644 --- a/src/app/hierarchical-grid/hierarchical-grid-routing.module.ts +++ b/src/app/hierarchical-grid/hierarchical-grid-routing.module.ts @@ -26,6 +26,7 @@ import { HGridCustomFilteringSampleComponent } from "./hierarchical-grid-filteri import { HGridFilteringSampleComponent } from "./hierarchical-grid-filtering/hierarchical-grid-filtering.component"; import { HierarchicalGridLoDSampleComponent } from "./hierarchical-grid-lod/hierarchical-grid-lod.component"; import { HGridMultiCellStyleComponent } from "./hierarchical-grid-multi-cell-style/hierarchical-grid-multi-cell-style.component"; +import { HGridMultiHeaderTemplateSampleComponent } from "./hierarchical-grid-multi-column-header-template/hierarchical-grid-multi-column-template.component"; import { HGridMultiHeadersSampleComponent } from "./hierarchical-grid-multi-column-headers/hierarchical-grid-multi-column.component"; import { HGridPagingStyleSampleComponent } from "./hierarchical-grid-paging-style/hierarchical-grid-paging-style.component"; import { HGridPagingSampleComponent } from "./hierarchical-grid-paging/hierarchical-grid-paging.component"; @@ -44,7 +45,6 @@ import { HierarchicalGridToolbarStyleComponent } from "./hierarchical-grid-toolb import { HGridToolbarCustomSampleComponent } from "./hierarchical-grid-toolbar/hierarchical-grid-toolbar-custom.component"; import { HGridToolbarOptionsSampleComponent } from "./hierarchical-grid-toolbar/hierarchical-grid-toolbar-options.component"; import { HGridToolbarTitleSampleComponent } from "./hierarchical-grid-toolbar/hierarchical-grid-toolbar-title.component"; -/* tslint:enable:max-line-length */ export const hierarchicalGridRoutes: Routes = [ { @@ -245,6 +245,11 @@ export const hierarchicalGridRoutes: Routes = [ data: hierarchicalGridRoutesData["hierarchical-grid-paging-style"], path: "hierarchical-grid-paging-style" }, + { + component: HGridMultiHeaderTemplateSampleComponent, + data: hierarchicalGridRoutesData["hierarchical-grid-multi-column-template"], + path: "hierarchical-grid-multi-column-template" + }, { component: HierarchicalGridToolbarStyleComponent, // tslint:disable-next-line:no-string-literal diff --git a/src/app/hierarchical-grid/hierarchical-grid.module.ts b/src/app/hierarchical-grid/hierarchical-grid.module.ts index 0505f1e83b..889c311aad 100644 --- a/src/app/hierarchical-grid/hierarchical-grid.module.ts +++ b/src/app/hierarchical-grid/hierarchical-grid.module.ts @@ -34,6 +34,7 @@ import { HGridCustomFilteringSampleComponent } from "./hierarchical-grid-filteri import { HGridFilteringSampleComponent } from "./hierarchical-grid-filtering/hierarchical-grid-filtering.component"; import { HierarchicalGridLoDSampleComponent } from "./hierarchical-grid-lod/hierarchical-grid-lod.component"; import { HGridMultiCellStyleComponent } from "./hierarchical-grid-multi-cell-style/hierarchical-grid-multi-cell-style.component"; +import { HGridMultiHeaderTemplateSampleComponent } from "./hierarchical-grid-multi-column-header-template/hierarchical-grid-multi-column-template.component"; import { HGridMultiHeadersSampleComponent } from "./hierarchical-grid-multi-column-headers/hierarchical-grid-multi-column.component"; import { HGridPagingStyleSampleComponent } from "./hierarchical-grid-paging-style/hierarchical-grid-paging-style.component"; import { HGridPagingSampleComponent } from "./hierarchical-grid-paging/hierarchical-grid-paging.component"; @@ -92,6 +93,7 @@ import { HGridToolbarTitleSampleComponent } from "./hierarchical-grid-toolbar/hi HGridCustomKBNavigationComponent, HGridRowReorderComponent, HGridResizeLineStylingComponent, + HGridMultiHeaderTemplateSampleComponent, HierarchicalGridToolbarStyleComponent ], imports: [ diff --git a/src/app/layouts/layouts-routes-data.ts b/src/app/layouts/layouts-routes-data.ts index acc94078ae..2d5fa8b13a 100644 --- a/src/app/layouts/layouts-routes-data.ts +++ b/src/app/layouts/layouts-routes-data.ts @@ -20,9 +20,11 @@ export const layoutsRoutesData = { "tabbar": { displayName: "Bottom Navigation Overview", parentName: "Bottom Navigation" }, "tabbar-sample-1": { displayName: "Bottom Navigation Simple Panels", parentName: "Bottom Navigation" }, "tabbar-sample-2": { displayName: "Bottom Navigation Customizing Panels", parentName: "Bottom Navigation" }, + "tabbar-sample-3": { displayName: "Bottom Navigation Routing", parentName: "Bottom Navigation" }, "tabs-sample-1": { displayName: "Tabs Overview", parentName: "Tabs" }, "tabs-sample-2": { displayName: "Tabs Types", parentName: "Tabs" }, "tabs-sample-3": { displayName: "Tabs Customizing", parentName: "Tabs" }, + "tabs-sample-6": { displayName: "Tabs Routing", parentName: "Tabs" }, "card-sample-0": { displayName: "Elevated Card", parentName: "Card" }, "card-sample-1": { displayName: "Outlined Card", parentName: "Card" }, "card-sample-2": { displayName: "Horizontal Card", parentName: "Card" }, diff --git a/src/app/layouts/layouts-routing.module.ts b/src/app/layouts/layouts-routing.module.ts index 23e357d781..96922a5b84 100644 --- a/src/app/layouts/layouts-routing.module.ts +++ b/src/app/layouts/layouts-routing.module.ts @@ -30,12 +30,22 @@ import { LayoutComponent } from "./layout/layout.component"; import { layoutsRoutesData } from "./layouts-routes-data"; import { TabbarSample1Component } from "./tabbar/tabbar-sample-1/tabbar-sample-1.component"; import { TabbarSample2Component } from "./tabbar/tabbar-sample-2/tabbar-sample-2.component"; +import { + BottomNavRoutingView1Component, + BottomNavRoutingView2Component, + BottomNavRoutingView3Component, + TabbarSample3Component } from "./tabbar/tabbar-sample-3/tabbar-sample-3.component"; import { TabbarComponent } from "./tabbar/tabbar.component"; import { TabsSample1Component } from "./tabs/tabs-sample-1/tabs-sample-1.component"; import { TabsSample2Component } from "./tabs/tabs-sample-2/tabs-sample-2.component"; import { TabsSample3Component } from "./tabs/tabs-sample-3/tabs-sample-3.component"; import { TabsSample4Component } from "./tabs/tabs-sample-4/components/tabs-sample-4.component"; import { TabsSample5Component } from "./tabs/tabs-sample-5/components/tabs-sample-5.component"; +import { + TabsRoutingView1Component, + TabsRoutingView2Component, + TabsRoutingView3Component, + TabsSample6Component} from "./tabs/tabs-sample-6/tabs-sample-6.component"; export const layoutsRoutes: Routes = [ { @@ -157,6 +167,16 @@ export const layoutsRoutes: Routes = [ data: layoutsRoutesData["tabbar-sample-2"], path: "tabbar-sample-2" }, + { + children: [ + { path: "arrivals", component: BottomNavRoutingView1Component }, + { path: "departures", component: BottomNavRoutingView2Component }, + { path: "canceled", component: BottomNavRoutingView3Component } + ], + component: TabbarSample3Component, + data: layoutsRoutesData["tabbar-sample-3"], + path: "tabbar-sample-3" + }, { component: TabsSample1Component, data: layoutsRoutesData["tabs-sample-1"], @@ -180,6 +200,16 @@ export const layoutsRoutes: Routes = [ component: TabsSample5Component, path: "tabs-sample-5" }, + { + children: [ + { path: "arrivals", component: TabsRoutingView1Component }, + { path: "departures", component: TabsRoutingView2Component }, + { path: "canceled", component: TabsRoutingView3Component } + ], + component: TabsSample6Component, + data: layoutsRoutesData["tabs-sample-6"], + path: "tabs-sample-6" + }, { component: CardComponent, data: layoutsRoutesData["card-sample-0"], diff --git a/src/app/layouts/layouts.module.ts b/src/app/layouts/layouts.module.ts index 3822d76fcf..8fd4043748 100644 --- a/src/app/layouts/layouts.module.ts +++ b/src/app/layouts/layouts.module.ts @@ -7,6 +7,7 @@ import { IgxButtonModule, IgxCardModule, IgxCarouselModule, + IgxCheckboxModule, IgxDividerModule, IgxExpansionPanelModule, IgxGridModule, @@ -16,7 +17,9 @@ import { IgxListModule, IgxNavbarModule, IgxProgressBarModule, + IgxRadioModule, IgxRippleModule, + IgxSelectModule, IgxSliderModule, IgxTabsModule, IgxToastModule @@ -50,18 +53,31 @@ import {LayoutComponent} from "./layout/layout.component"; import {LayoutsRoutingModule} from "./layouts-routing.module"; import {TabbarSample1Component} from "./tabbar/tabbar-sample-1/tabbar-sample-1.component"; import {TabbarSample2Component} from "./tabbar/tabbar-sample-2/tabbar-sample-2.component"; +import { + BottomNavRoutingView1Component, + BottomNavRoutingView2Component, + BottomNavRoutingView3Component, + TabbarSample3Component} from "./tabbar/tabbar-sample-3/tabbar-sample-3.component"; import {TabbarComponent} from "./tabbar/tabbar.component"; import {TabsSample1Component} from "./tabs/tabs-sample-1/tabs-sample-1.component"; import {TabsSample2Component} from "./tabs/tabs-sample-2/tabs-sample-2.component"; import {TabsSample3Component} from "./tabs/tabs-sample-3/tabs-sample-3.component"; import {TabsSample4Component} from "./tabs/tabs-sample-4/components/tabs-sample-4.component"; import {TabsSample5Component} from "./tabs/tabs-sample-5/components/tabs-sample-5.component"; +import { + TabsRoutingView1Component, + TabsRoutingView2Component, + TabsRoutingView3Component, + TabsSample6Component} from "./tabs/tabs-sample-6/tabs-sample-6.component"; @NgModule({ declarations: [ AvatarSample1Component, AvatarSample2Component, AvatarSample3Component, + BottomNavRoutingView1Component, + BottomNavRoutingView2Component, + BottomNavRoutingView3Component, CardSample1Component, CardSample2Component, CardSample3Component, @@ -87,6 +103,11 @@ import {TabsSample5Component} from "./tabs/tabs-sample-5/components/tabs-sample- LayoutComponent, TabbarSample1Component, TabbarSample2Component, + TabbarSample3Component, + TabsRoutingView1Component, + TabsRoutingView2Component, + TabsRoutingView3Component, + TabsSample6Component, TabbarComponent, TabsSample1Component, TabsSample2Component, @@ -106,6 +127,7 @@ import {TabsSample5Component} from "./tabs/tabs-sample-5/components/tabs-sample- IgxButtonModule, IgxCardModule, IgxCarouselModule, + IgxCheckboxModule, IgxDividerModule, IgxExpansionPanelModule, IgxGridModule, @@ -115,7 +137,9 @@ import {TabsSample5Component} from "./tabs/tabs-sample-5/components/tabs-sample- IgxListModule, IgxNavbarModule, IgxProgressBarModule, + IgxRadioModule, IgxRippleModule, + IgxSelectModule, IgxSliderModule, IgxTabsModule, IgxToastModule diff --git a/src/app/layouts/tabbar/tabbar-sample-3/tabbar-sample-3.component.html b/src/app/layouts/tabbar/tabbar-sample-3/tabbar-sample-3.component.html new file mode 100644 index 0000000000..d7cdc10e8a --- /dev/null +++ b/src/app/layouts/tabbar/tabbar-sample-3/tabbar-sample-3.component.html @@ -0,0 +1,28 @@ + + + + {{ aLocation }} + + + + + + + + + + + + + + + diff --git a/src/app/layouts/tabbar/tabbar-sample-3/tabbar-sample-3.component.scss b/src/app/layouts/tabbar/tabbar-sample-3/tabbar-sample-3.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/app/layouts/tabbar/tabbar-sample-3/tabbar-sample-3.component.ts b/src/app/layouts/tabbar/tabbar-sample-3/tabbar-sample-3.component.ts new file mode 100644 index 0000000000..3c57f34272 --- /dev/null +++ b/src/app/layouts/tabbar/tabbar-sample-3/tabbar-sample-3.component.ts @@ -0,0 +1,103 @@ +import { Component, OnInit } from "@angular/core"; +import { Router } from "@angular/router"; +import { ISelectionEventArgs } from "igniteui-angular"; + +@Component({ + selector: "app-tabbar-sample-3", + styleUrls: ["tabbar-sample-3.component.scss"], + templateUrl: "tabbar-sample-3.component.html" +}) +export class TabbarSample3Component implements OnInit { + public urlLocations = [ + "", + "/arrivals", + "/departures", + "/canceled" + ]; + + constructor(private router: Router) { } + + public get currentDocumentLocation() { + return document.location.pathname; + } + + public ngOnInit() { + const currentAddress: string = document.location.href; + if (currentAddress.indexOf("/samples/layouts") !== -1) { + for (let i = 0; i < this.urlLocations.length; i++) { + this.urlLocations[i] = "/samples/layouts/tabbar-sample-3" + this.urlLocations[i]; + } + } else + if (currentAddress.indexOf("/layouts") !== -1) { + for (let i = 0; i < this.urlLocations.length; i++) { + this.urlLocations[i] = "/layouts/tabbar-sample-3" + this.urlLocations[i]; + } + } + } + + public handleSelection(eventArgs: ISelectionEventArgs): void { + this.router.navigateByUrl(eventArgs.newSelection.value); + } +} + +@Component({ + template: ` +
+ + + + + + + ` +}) +export class BottomNavRoutingView1Component { + public data = [ + { Flight: "LH1702", From: "Munich", Time: "12:25", Status: "Landed"}, + { Flight: "W64332", From: "Dortmund", Time: "12:25", Status: "Expected"}, + { Flight: "W64428", From: "Tel Aviv", Time: "12:40", Status: "Expected"}, + { Flight: "OS795", From: "Vienna", Time: "12:45", Status: "Expected"}, + { Flight: "UA9832", From: "Vienna", Time: "12:45", Status: "Expected"} + ]; +} + +@Component({ + template: ` +
+ + + + + + + ` +}) +export class BottomNavRoutingView2Component { + public data = [ + { Flight: "SU2061", From: "Moscow", Time: "12:25", Status: "Boarding"}, + { Flight: "FB1363", From: "Moscow", Time: "12:25", Status: "Boarding"}, + { Flight: "FB491", From: "Zurich", Time: "12:30", Status: "Taxing"}, + { Flight: "FR6043", From: "Munich", Time: "12:40", Status: "Boarding"}, + { Flight: "W64329", From: "Frankfurt", Time: "12:55", Status: "Expected"}, + { Flight: "QR228", From: "Doha", Time: "13:00", Status: "Check-in"} + ]; +} + +@Component({ + template: ` +
+ + + + + + + ` +}) +export class BottomNavRoutingView3Component { + public data = [ + { Flight: "FB1363", From: "Moscow", Time: "12:25", Status: "Cancelled"}, + { Flight: "FB491", From: "Zurich", Time: "12:30", Status: "Cancelled"}, + { Flight: "FB437", From: "Frankfurt", Time: "12:45", Status: "Cancelled"} + ]; +} diff --git a/src/app/layouts/tabs/tabs-sample-6/tabs-sample-6.component.html b/src/app/layouts/tabs/tabs-sample-6/tabs-sample-6.component.html new file mode 100644 index 0000000000..771244930a --- /dev/null +++ b/src/app/layouts/tabs/tabs-sample-6/tabs-sample-6.component.html @@ -0,0 +1,28 @@ + + + + {{ aLocation }} + + + + + + + + + + + + + + + diff --git a/src/app/layouts/tabs/tabs-sample-6/tabs-sample-6.component.scss b/src/app/layouts/tabs/tabs-sample-6/tabs-sample-6.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/app/layouts/tabs/tabs-sample-6/tabs-sample-6.component.ts b/src/app/layouts/tabs/tabs-sample-6/tabs-sample-6.component.ts new file mode 100644 index 0000000000..9dc7a825d9 --- /dev/null +++ b/src/app/layouts/tabs/tabs-sample-6/tabs-sample-6.component.ts @@ -0,0 +1,103 @@ +import { Component, OnInit } from "@angular/core"; +import { Router } from "@angular/router"; +import { ISelectionEventArgs } from "igniteui-angular"; + +@Component({ + selector: "app-tabs-sample-6", + styleUrls: ["./tabs-sample-6.component.scss"], + templateUrl: "./tabs-sample-6.component.html" +}) +export class TabsSample6Component implements OnInit { + public urlLocations = [ + "", + "/arrivals", + "/departures", + "/canceled" + ]; + + constructor(private router: Router) { } + + public get currentDocumentLocation() { + return document.location.pathname; + } + + public ngOnInit() { + const currentAddress: string = document.location.href; + if (currentAddress.indexOf("/samples/layouts") !== -1) { + for (let i = 0; i < this.urlLocations.length; i++) { + this.urlLocations[i] = "/samples/layouts/tabs-sample-6" + this.urlLocations[i]; + } + } else + if (currentAddress.indexOf("/layouts") !== -1) { + for (let i = 0; i < this.urlLocations.length; i++) { + this.urlLocations[i] = "/layouts/tabs-sample-6" + this.urlLocations[i]; + } + } + } + + public handleSelection(eventArgs: ISelectionEventArgs): void { + this.router.navigateByUrl(eventArgs.newSelection.value); + } +} + +@Component({ + template: ` +
+ + + + + + + ` +}) +export class TabsRoutingView1Component { + public data = [ + { Flight: "LH1702", From: "Munich", Time: "12:25", Status: "Landed"}, + { Flight: "W64332", From: "Dortmund", Time: "12:25", Status: "Expected"}, + { Flight: "W64428", From: "Tel Aviv", Time: "12:40", Status: "Expected"}, + { Flight: "OS795", From: "Vienna", Time: "12:45", Status: "Expected"}, + { Flight: "UA9832", From: "Vienna", Time: "12:45", Status: "Expected"} + ]; +} + +@Component({ + template: ` +
+ + + + + + + ` +}) +export class TabsRoutingView2Component { + public data = [ + { Flight: "SU2061", From: "Moscow", Time: "12:25", Status: "Boarding"}, + { Flight: "FB1363", From: "Moscow", Time: "12:25", Status: "Boarding"}, + { Flight: "FB491", From: "Zurich", Time: "12:30", Status: "Taxing"}, + { Flight: "FR6043", From: "Munich", Time: "12:40", Status: "Boarding"}, + { Flight: "W64329", From: "Frankfurt", Time: "12:55", Status: "Expected"}, + { Flight: "QR228", From: "Doha", Time: "13:00", Status: "Check-in"} + ]; +} + +@Component({ + template: ` +
+ + + + + + + ` +}) +export class TabsRoutingView3Component { + public data = [ + { Flight: "FB1363", From: "Moscow", Time: "12:25", Status: "Cancelled"}, + { Flight: "FB491", From: "Zurich", Time: "12:30", Status: "Cancelled"}, + { Flight: "FB437", From: "Frankfurt", Time: "12:45", Status: "Cancelled"} + ]; +} diff --git a/src/app/maps/MapDisplayImageryBingTiles/component.ts b/src/app/maps/MapDisplayImageryBingTiles/component.ts index 9e65445467..e18205bb4f 100644 --- a/src/app/maps/MapDisplayImageryBingTiles/component.ts +++ b/src/app/maps/MapDisplayImageryBingTiles/component.ts @@ -24,7 +24,6 @@ export class MapDisplayImageryBingTiles implements AfterViewInit { tileSource.apiKey = MapUtility.getBingKey(); tileSource.imageryStyle = BingMapsImageryStyle.AerialWithLabels; let tileUri = tileSource.actualBingImageryRestUri; - console.log("tileUri " + tileUri); // resolving BingMaps uri based on HTTP protocol of hosting website const isHttpSecured = window.location.toString().startsWith("https:"); @@ -34,7 +33,6 @@ export class MapDisplayImageryBingTiles implements AfterViewInit { tileUri = tileUri.replace("https:", "http:"); } tileSource.bingImageryRestUri = tileUri; - console.log("tileUri " + tileUri); this.map.backgroundContent = tileSource; diff --git a/src/app/maps/geo-map-binding-multiple-shapes/map-binding-multiple-shapes.component.html b/src/app/maps/geo-map-binding-multiple-shapes/map-binding-multiple-shapes.component.html index 910bdd39a0..091ece03f7 100644 --- a/src/app/maps/geo-map-binding-multiple-shapes/map-binding-multiple-shapes.component.html +++ b/src/app/maps/geo-map-binding-multiple-shapes/map-binding-multiple-shapes.component.html @@ -1,48 +1,51 @@ - + - + - + - +
- {{item.capacity}} + Cable: {{item.name}}
- Distance: {{item.distance}} + Length: {{item.distance}}
- +
- {{item.name}} + Country: {{item.name}}
@@ -51,10 +54,14 @@
- +
- City: {{item.city}} + City: {{item.city}} + +
+ + Population: {{item.population}}
diff --git a/src/app/maps/geo-map-binding-multiple-shapes/map-binding-multiple-shapes.component.ts b/src/app/maps/geo-map-binding-multiple-shapes/map-binding-multiple-shapes.component.ts index 8f238daed7..2d435ba2a5 100644 --- a/src/app/maps/geo-map-binding-multiple-shapes/map-binding-multiple-shapes.component.ts +++ b/src/app/maps/geo-map-binding-multiple-shapes/map-binding-multiple-shapes.component.ts @@ -26,14 +26,14 @@ export class MapBindingMultipleShapesComponent implements AfterViewInit { @ViewChild("symbolSeries", {static: true}) public symbolSeries: IgxGeographicSymbolSeriesComponent; - @ViewChild("polylineTooltipTemplate", {static: true}) - public polylineTooltipTemplate: TemplateRef; + @ViewChild("polylineTooltip", {static: true}) + public polylineTooltip: TemplateRef; - @ViewChild("shapeTooltipTemplate", {static: true}) - public shapeTooltipTemplate: TemplateRef; + @ViewChild("shapeTooltip", {static: true}) + public shapeTooltip: TemplateRef; - @ViewChild("pointTooltipTemplate", {static: true}) - public pointTooltipTemplate: TemplateRef; + @ViewChild("pointTooltip", {static: true}) + public pointTooltip: TemplateRef; constructor() { } @@ -41,6 +41,7 @@ export class MapBindingMultipleShapesComponent implements AfterViewInit { public ngAfterViewInit(): void { this.map.windowRect = { left: 0.2, top: 0.1, width: 0.6, height: 0.6 }; + this.map.backgroundContent = null; // loading a shapefile with geographic polygons const sdsPolygons = new ShapeDataSource(); @@ -54,7 +55,6 @@ export class MapBindingMultipleShapesComponent implements AfterViewInit { sdsPolylines.databaseSource = "assets/Shapes/WorldCableRoutes.dbf"; sdsPolylines.dataBind(); sdsPolylines.importCompleted.subscribe(() => this.onPolylinesLoaded(sdsPolylines, "")); - // loading a shapefile with geographic points const sdsPoints = new ShapeDataSource(); sdsPoints.importCompleted.subscribe(() => this.onPointsLoaded(sdsPoints, "")); @@ -70,19 +70,21 @@ export class MapBindingMultipleShapesComponent implements AfterViewInit { // parsing shapefile data and creating geo-locations for (const record of sds.getPointData()) { const pop = record.fieldValues.POPULATION; - if (pop > 0) { + if (pop > 1000000) { // each shapefile record has just one point const location = { city: record.fieldValues.NAME, latitude: record.points[0][0].y, longitude: record.points[0][0].x, - population: pop + population: (pop / 1000000).toFixed(0) + "M" }; geoLocations.push(location); } } this.symbolSeries.dataSource = geoLocations; - this.symbolSeries.tooltipTemplate = this.pointTooltipTemplate; + this.symbolSeries.markerOutline = "Red"; + this.symbolSeries.markerBrush = "White"; + this.symbolSeries.tooltipTemplate = this.pointTooltip; } public onPolylinesLoaded(sds: ShapeDataSource, e: any) { @@ -103,12 +105,12 @@ export class MapBindingMultipleShapesComponent implements AfterViewInit { }; geoPolylines.push(route); } - this.polylineSeries.dataSource = geoPolylines; this.polylineSeries.shapeMemberPath = "points"; this.polylineSeries.shapeFilterResolution = 2.0; this.polylineSeries.shapeStrokeThickness = 2; - this.polylineSeries.shapeStroke = "rgba(252, 32, 32, 0.9)"; - this.polylineSeries.tooltipTemplate = this.polylineTooltipTemplate; + this.polylineSeries.shapeStroke = "rgba(13, 124, 252, 0.9)"; + this.polylineSeries.tooltipTemplate = this.polylineTooltip; + this.polylineSeries.dataSource = geoPolylines; } public onPolygonsLoaded(sds: ShapeDataSource, e: any) { @@ -118,15 +120,18 @@ export class MapBindingMultipleShapesComponent implements AfterViewInit { // parsing shapefile data and creating geo-polygons sds.getPointData().forEach((record) => { // using field/column names from .DBF file + const pop = record.fieldValues.POPULATION; const country = { gdp: record.fieldValues.GDP, name: record.fieldValues.NAME, points: record.points, - population: record.fieldValues.POPULATION + population: (pop / 1000000).toFixed(1) + "M" }; geoPolygons.push(country); }); this.shapeSeries.dataSource = geoPolygons; - this.shapeSeries.tooltipTemplate = this.shapeTooltipTemplate; + this.shapeSeries.shapeStroke = "Black"; + this.shapeSeries.shapeFill = "rgba(184, 183, 183, 0.5)"; + this.shapeSeries.tooltipTemplate = this.shapeTooltip; } } diff --git a/src/app/maps/geo-map-binding-shp-polylines/map-binding-shp-polylines.component.html b/src/app/maps/geo-map-binding-shp-polylines/map-binding-shp-polylines.component.html index aae41763f8..56135d4dc1 100644 --- a/src/app/maps/geo-map-binding-shp-polylines/map-binding-shp-polylines.component.html +++ b/src/app/maps/geo-map-binding-shp-polylines/map-binding-shp-polylines.component.html @@ -7,11 +7,11 @@
- Airline: {{item.name}} + Cable: {{item.name}}
- Length: {{item.distance}} miles + Length: {{item.distance}} KM
diff --git a/src/app/maps/geo-map-custom-tooltips/map-custom-tooltips.component.html b/src/app/maps/geo-map-custom-tooltips/map-custom-tooltips.component.html index cab3a20529..766bf57d79 100644 --- a/src/app/maps/geo-map-custom-tooltips/map-custom-tooltips.component.html +++ b/src/app/maps/geo-map-custom-tooltips/map-custom-tooltips.component.html @@ -6,8 +6,16 @@
+ + City: {{item.name}} + +
+ + Longitude: {{item.lon}} + +
- {{item.name}} + Latitude: {{item.lat}}
diff --git a/src/app/maps/geo-map-display-imagery-heat-tiles/map-display-imagery-heat-tiles.component.html b/src/app/maps/geo-map-display-imagery-heat-tiles/map-display-imagery-heat-tiles.component.html index 15ecbaa7e8..bf3715143c 100644 --- a/src/app/maps/geo-map-display-imagery-heat-tiles/map-display-imagery-heat-tiles.component.html +++ b/src/app/maps/geo-map-display-imagery-heat-tiles/map-display-imagery-heat-tiles.component.html @@ -1,3 +1,2 @@ - - \ No newline at end of file + diff --git a/src/app/maps/geo-map-display-imagery-heat-tiles/map-display-imagery-heat-tiles.component.ts b/src/app/maps/geo-map-display-imagery-heat-tiles/map-display-imagery-heat-tiles.component.ts index cb84831060..58f09acfc8 100644 --- a/src/app/maps/geo-map-display-imagery-heat-tiles/map-display-imagery-heat-tiles.component.ts +++ b/src/app/maps/geo-map-display-imagery-heat-tiles/map-display-imagery-heat-tiles.component.ts @@ -1,9 +1,10 @@ -import { Component, ViewChild } from "@angular/core"; +import { AfterViewInit, Component, ViewChild } from "@angular/core"; import { HeatTileGenerator } from "igniteui-angular-core/ES5/igx-heat-tile-generator"; import { ShapeDataSource } from "igniteui-angular-core/ES5/igx-shape-data-source"; import { IgxGeographicMapComponent } from "igniteui-angular-maps/ES5/igx-geographic-map-component"; +import { IgxGeographicTileSeriesComponent } from "igniteui-angular-maps/ES5/igx-geographic-tile-series-component"; import { TileGeneratorMapImagery } from "igniteui-angular-maps/ES5/igx-tile-generator-map-imagery"; @Component({ @@ -11,23 +12,18 @@ import { TileGeneratorMapImagery } from "igniteui-angular-maps/ES5/igx-tile-gene templateUrl: "./map-display-imagery-heat-tiles.component.html", styleUrls: ["./map-display-imagery-heat-tiles.component.scss"] }) -export class MapDisplayImageryHeatTilesComponent { +export class MapDisplayImageryHeatTilesComponent implements AfterViewInit { @ViewChild("map", { static: true }) public map: IgxGeographicMapComponent; - - public data: any[]; public tileImagery: TileGeneratorMapImagery; constructor() { - this.data = this.initData(); - this.tileImagery = new TileGeneratorMapImagery(); - const con: ShapeDataSource = new ShapeDataSource(); - - con.importCompleted.subscribe((s, e) => { - const data = con.getPointData(); + const sds: ShapeDataSource = new ShapeDataSource(); + sds.importCompleted.subscribe((s, e) => { + const data = sds.getPointData(); const lat: number[] = []; const lon: number[] = []; const val: number[] = []; @@ -41,7 +37,7 @@ export class MapDisplayImageryHeatTilesComponent { lon.push(pointsList[k].x); } } - const value = item.fieldValues["POP_2010"]; + const value = parseInt(item.fieldValues["POP2010"], 10); if (value >= 0) { val.push(value); } else { @@ -49,6 +45,7 @@ export class MapDisplayImageryHeatTilesComponent { } } + // generating heat map imagery tiles const gen = new HeatTileGenerator(); gen.xValues = lon; gen.yValues = lat; @@ -56,46 +53,37 @@ export class MapDisplayImageryHeatTilesComponent { gen.blurRadius = 6; gen.maxBlurRadius = 20; gen.useBlurRadiusAdjustedForZoom = true; - gen.minimumColor = "rgba(100,255, 0, 0.3922)"; - gen.maximumColor = "rgba(255, 255, 0, 0.9412)"; + gen.minimumColor = "rgba(100, 255, 0, 0.5)"; + gen.maximumColor = "rgba(255, 255, 0, 0.5)"; gen.useGlobalMinMax = true; gen.useGlobalMinMaxAdjustedForZoom = true; gen.useLogarithmicScale = true; gen.useWebWorkers = true; - gen.webWorkerInstance = new Worker("../heatworker.worker", { type: "module" }); + // gen.webWorkerInstance = new Worker(); + gen.webWorkerInstance = new Worker("../heatmap.worker", { type: "module" }); gen.scaleColors = [ - "rgba(0, 0, 255, 64)", - "rgba(0, 255, 255, 96)", - "rgba(0, 255, 0, 160)", - "rgba(255, 255, 0, 180)", - "rgba(255, 0, 0, 200)" + "rgba(0, 0, 255, .251)", "rgba(0, 255, 255, .3765)", + "rgba(50,205,50, .2675)", "rgba(255, 255, 0, .7059)", + "rgba(255, 0, 0, .7843)" ]; - this.tileImagery.tileGenerator = gen; + + // generating heat map series + const series = new IgxGeographicTileSeriesComponent(); + series.name = "heatMapSeries"; + series.tileImagery = this.tileImagery; + + // add heat map series to the map + this.map.series.add(series); }); - con.shapefileSource = "assets/Shapes/AmericanCities.shp"; - con.databaseSource = "assets/Shapes/AmericanCities.dbf"; - con.dataBind(); + sds.shapefileSource = "assets/Shapes/AmericanCities.shp"; + sds.databaseSource = "assets/Shapes/AmericanCities.dbf"; + sds.dataBind(); } - public initData(): any { - const rows: any[] = []; - for (let i = 0; i < 5; i++) { - rows.push({ - index: i, - name: "row" + i, - state: "Initial... Initial... Initial... Initial... ", - value: i * 10 - }); - } - rows.push({ - index: 5, - name: "row5", - state: "Initial", - value: undefined - }); - return rows; + public ngAfterViewInit(): void { + this.map.zoomToGeographic({ left: -134.5, top: 16.0, width: 70.0, height: 37.0 }); } } diff --git a/src/app/maps/geo-map-routes-data.ts b/src/app/maps/geo-map-routes-data.ts index 95c0434582..4f41974207 100644 --- a/src/app/maps/geo-map-routes-data.ts +++ b/src/app/maps/geo-map-routes-data.ts @@ -6,6 +6,7 @@ export const geoMapRoutesData = { "geo-map-display-osm-imagery": { displayName: "Displaying OSM Imagery", parentName: "Geo Map" }, "geo-map-display-bing-imagery": { displayName: "Displaying Bing Imagery", parentName: "Geo Map" }, "geo-map-display-esri-imagery": { displayName: "Displaying Esri Imagery", parentName: "Geo Map" }, + "geo-map-display-heat-imagery": { displayName: "Displaying Heat Tiles", parentName: "Geo Map" }, "geo-map-binding-data-csv": { displayName: "Binding Data CSV", parentName: "Geo Map" }, "geo-map-binding-data-json-points": { displayName: "Binding Data JSON", parentName: "Geo Map" }, @@ -22,6 +23,5 @@ export const geoMapRoutesData = { "geo-map-type-scatter-density-series": { displayName: "Scatter Density Series", parentName: "Geo Map" }, "geo-map-type-scatter-symbol-series": { displayName: "Scatter Symbol Series", parentName: "Geo Map" }, "geo-map-type-shape-polygon-series": { displayName: "Shape Polygon Series", parentName: "Geo Map" }, - "geo-map-type-shape-polyline-series": { displayName: "Shape Polyline Series", parentName: "Geo Map" }, - "geo-map-display-heat-imagery" : { displayName: "Display Heat Tiles", parentName: "Geo Map" } + "geo-map-type-shape-polyline-series": { displayName: "Shape Polyline Series", parentName: "Geo Map" } }; diff --git a/src/app/maps/geo-map-routing.module.ts b/src/app/maps/geo-map-routing.module.ts index 1c2582442f..5bcd65dffe 100644 --- a/src/app/maps/geo-map-routing.module.ts +++ b/src/app/maps/geo-map-routing.module.ts @@ -26,7 +26,6 @@ import { MapDisplayImageryBingTiles } from "./MapDisplayImageryBingTiles/compone import { MapDisplayImageryEsriTiles } from "./MapDisplayImageryEsriTiles/component"; import { MapDisplayImageryOSM } from "./MapDisplayImageryOSM/component"; - export const routes: Routes = [ { component: MapDisplayImageryBingTiles, diff --git a/src/app/maps/heatworker.worker.ts b/src/app/maps/heatmap.worker.ts similarity index 100% rename from src/app/maps/heatworker.worker.ts rename to src/app/maps/heatmap.worker.ts diff --git a/src/app/tree-grid/tree-grid-clipboard-operations-sample/tree-grid-clipboard-operations-sample.component.html b/src/app/tree-grid/tree-grid-clipboard-operations-sample/tree-grid-clipboard-operations-sample.component.html new file mode 100644 index 0000000000..587bef4910 --- /dev/null +++ b/src/app/tree-grid/tree-grid-clipboard-operations-sample/tree-grid-clipboard-operations-sample.component.html @@ -0,0 +1,44 @@ +
+
+
+ + + + + clear + + + The default value is a single tabulation which is shown as whitespace above. + Click the clear icon to reset it back to tabulation. + + +
+ + + + + + +
+ Grid copy behavior + Copying of header labels + Copying column formatters + +
+
+
+
+ +
+ + + + +
+
+
+
\ No newline at end of file diff --git a/src/app/tree-grid/tree-grid-clipboard-operations-sample/tree-grid-clipboard-operations-sample.component.scss b/src/app/tree-grid/tree-grid-clipboard-operations-sample/tree-grid-clipboard-operations-sample.component.scss new file mode 100644 index 0000000000..61f01b4cd2 --- /dev/null +++ b/src/app/tree-grid/tree-grid-clipboard-operations-sample/tree-grid-clipboard-operations-sample.component.scss @@ -0,0 +1,40 @@ +@import '~igniteui-angular/lib/core/styles/themes/index'; + +@mixin scrollbar-love($scrollbar-color: null) { + $scrollbar-track: hexrgba(igx-color($default-palette, 'grays', 200)); + $scrollbar-thumb: hexrgba(igx-color($default-palette, 'grays', 400)); + + @if $scrollbar-color and luminance($scrollbar-color) < .5 { + $scrollbar-track: darken($scrollbar-color, 8%); + $scrollbar-thumb: lighten($scrollbar-color, 20%); + } + + ::-webkit-scrollbar { + width: 16px; + height: 16px; + background-color: $scrollbar-track; + } + + ::-webkit-scrollbar-thumb { + background-color: $scrollbar-thumb; + } +} + +:host ::ng-deep { + @include scrollbar-love(); + + .igx-switch__label { + line-height: 1rem; + } +} + +.tlb { + display: flex; + max-width: 734px; +} + +.grid-wrapper { + width: 50wh; + height: 364px; + margin-top: 7px; +} \ No newline at end of file diff --git a/src/app/tree-grid/tree-grid-clipboard-operations-sample/tree-grid-clipboard-operations-sample.component.ts b/src/app/tree-grid/tree-grid-clipboard-operations-sample/tree-grid-clipboard-operations-sample.component.ts new file mode 100644 index 0000000000..1ac8396572 --- /dev/null +++ b/src/app/tree-grid/tree-grid-clipboard-operations-sample/tree-grid-clipboard-operations-sample.component.ts @@ -0,0 +1,42 @@ +import { Component, OnInit } from "@angular/core"; +import { EMPLOYEE_DATA } from "../tree-grid-childdatakey-sample/data"; + +@Component({ + selector: "tree-grid-clipboard-operations-sample", + styleUrls: ["tree-grid-clipboard-operations-sample.component.scss"], + templateUrl: "./tree-grid-clipboard-operations-sample.component.html" +}) +export class TreeGridClipboardSampleComponent implements OnInit { + + public data: any[]; + public options = { + enabled: true, + copyHeaders: true, + copyFormatters: true, + separator: "\t" + }; + private frmt: Intl.DateTimeFormat; + + constructor() { + this.data = EMPLOYEE_DATA; + } + + public ngOnInit() { + } + + public formatter = (value: any) => `** ${value} **`; + public formatDate(val: Date) { + if (!this.frmt) { + this.frmt = new Intl.DateTimeFormat("en-US"); + } + return this.frmt.format(val); + } + public initColumn(column) { + if (column.dataType === "date") { + column.formatter = this.formatDate; + } else { + column.formatter = this.formatter; + } + column.header = `🎉${column.field}`; + } +} diff --git a/src/app/tree-grid/tree-grid-multi-column-header-template-sample/tree-grid-multi-column-header-template-sample.component.html b/src/app/tree-grid/tree-grid-multi-column-header-template-sample/tree-grid-multi-column-header-template-sample.component.html new file mode 100644 index 0000000000..798be0b37b --- /dev/null +++ b/src/app/tree-grid/tree-grid-multi-column-header-template-sample/tree-grid-multi-column-header-template-sample.component.html @@ -0,0 +1,38 @@ +
+ +
+ + {{columnGroupStates.get(col) ? 'expand_more' : 'expand_less'}} + {{col.header}} +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/app/tree-grid/tree-grid-multi-column-header-template-sample/tree-grid-multi-column-header-template-sample.component.scss b/src/app/tree-grid/tree-grid-multi-column-header-template-sample/tree-grid-multi-column-header-template-sample.component.scss new file mode 100644 index 0000000000..386cbb8c38 --- /dev/null +++ b/src/app/tree-grid/tree-grid-multi-column-header-template-sample/tree-grid-multi-column-header-template-sample.component.scss @@ -0,0 +1,12 @@ +.grid__wrapper { + margin: 10px; +} + +.column-group-template__container { + display: flex; + align-items: center; +} + +.column-group-template__icon { + cursor: pointer; +} diff --git a/src/app/tree-grid/tree-grid-multi-column-header-template-sample/tree-grid-multi-column-header-template-sample.component.ts b/src/app/tree-grid/tree-grid-multi-column-header-template-sample/tree-grid-multi-column-header-template-sample.component.ts new file mode 100644 index 0000000000..c28c5feb0d --- /dev/null +++ b/src/app/tree-grid/tree-grid-multi-column-header-template-sample/tree-grid-multi-column-header-template-sample.component.ts @@ -0,0 +1,37 @@ +import { Component, ViewChild } from "@angular/core"; +import { IgxColumnGroupComponent, IgxTreeGridComponent } from "igniteui-angular"; +import { generateEmployeeDetailedFlatData } from "../data/employees-flat-detailed"; + +@Component({ + selector: "app-tree-grid-multi-column-header-template-sample", + styleUrls: ["./tree-grid-multi-column-header-template-sample.component.scss"], + templateUrl: "./tree-grid-multi-column-header-template-sample.component.html" +}) +export class TreeGridMultiColumnHeaderTemplateSampleComponent { + + @ViewChild(IgxTreeGridComponent, { read: IgxTreeGridComponent, static: true }) + public treeGrid: IgxTreeGridComponent; + public data: any[] = generateEmployeeDetailedFlatData(); + public columnGroupStates = new Map(); + + constructor() { + for (const item of this.data) { + item.Location = `${item.Address}, ${item.City}, ${item.Country}`; + } + } + + public toggleColumnGroup(columnGroup: IgxColumnGroupComponent) { + const columns = columnGroup.children.toArray(); + + if (columnGroup.header === "General Information") { + const col = columns[1]; + col.hidden = !col.hidden; + } else if (columnGroup.header === "Address Information") { + for (const col of columns) { + col.hidden = !col.hidden; + } + } + + this.columnGroupStates.set(columnGroup, !this.columnGroupStates.get(columnGroup)); + } +} diff --git a/src/app/tree-grid/tree-grid-paging-sample/tree-grid-paging-sample.component.html b/src/app/tree-grid/tree-grid-paging-sample/tree-grid-paging-sample.component.html index eda6da85aa..8e8be56228 100644 --- a/src/app/tree-grid/tree-grid-paging-sample/tree-grid-paging-sample.component.html +++ b/src/app/tree-grid/tree-grid-paging-sample/tree-grid-paging-sample.component.html @@ -24,7 +24,7 @@ -
+
@@ -40,4 +40,4 @@
-
\ No newline at end of file + diff --git a/src/app/tree-grid/tree-grid-paging-sample/tree-grid-paging-sample.component.scss b/src/app/tree-grid/tree-grid-paging-sample/tree-grid-paging-sample.component.scss index 5c8a4afc72..223a119a2e 100644 --- a/src/app/tree-grid/tree-grid-paging-sample/tree-grid-paging-sample.component.scss +++ b/src/app/tree-grid/tree-grid-paging-sample/tree-grid-paging-sample.component.scss @@ -29,12 +29,6 @@ $progressBar-sample-theme: igx-progress-linear-theme( justify-content: space-between; } -.igx-paginator>* { - margin: 0 .3125rem; - display: flex; - align-items: center; -} - .linear-bar-container { width: 100%; -} \ No newline at end of file +} diff --git a/src/app/tree-grid/tree-grid-paging-style/tree-grid-paging-style-sample.component.html b/src/app/tree-grid/tree-grid-paging-style/tree-grid-paging-style-sample.component.html index eda6da85aa..8e8be56228 100644 --- a/src/app/tree-grid/tree-grid-paging-style/tree-grid-paging-style-sample.component.html +++ b/src/app/tree-grid/tree-grid-paging-style/tree-grid-paging-style-sample.component.html @@ -24,7 +24,7 @@ -
+
@@ -40,4 +40,4 @@
-
\ No newline at end of file + diff --git a/src/app/tree-grid/tree-grid-paging-style/tree-grid-paging-style-sample.component.scss b/src/app/tree-grid/tree-grid-paging-style/tree-grid-paging-style-sample.component.scss index a21eea03bc..eedcee4214 100644 --- a/src/app/tree-grid/tree-grid-paging-style/tree-grid-paging-style-sample.component.scss +++ b/src/app/tree-grid/tree-grid-paging-style/tree-grid-paging-style-sample.component.scss @@ -10,14 +10,9 @@ $dark-button: igx-button-theme( $icon-color: #FFCD0F, $icon-hover-color: #292826 :host { ::ng-deep { @include igx-grid-paginator($dark-grid-paginator); - .igx-paginator { + .igx-grid-paginator__pager{ @include igx-button($dark-button); } - .igx-paginator>* { - margin: 0 .3125rem; - display: flex; - align-items: center; - } } } @@ -94,4 +89,4 @@ $dark-button: igx-button-theme( $icon-color: #FFCD0F, $icon-hover-color: #292826 // $dark-button: igx-button-theme( // $palette: $dark-palette, // $schema: $custom-dark-schema -// ); \ No newline at end of file +// ); diff --git a/src/app/tree-grid/tree-grid-remote-paging-sample/tree-grid-remote-paging-sample.component.html b/src/app/tree-grid/tree-grid-remote-paging-sample/tree-grid-remote-paging-sample.component.html index 7e2df3b6f1..430b4c7d9e 100644 --- a/src/app/tree-grid/tree-grid-remote-paging-sample/tree-grid-remote-paging-sample.component.html +++ b/src/app/tree-grid/tree-grid-remote-paging-sample/tree-grid-remote-paging-sample.component.html @@ -12,7 +12,8 @@ - @@ -31,5 +32,6 @@ + - \ No newline at end of file + diff --git a/src/app/tree-grid/tree-grid-routes-data.ts b/src/app/tree-grid/tree-grid-routes-data.ts index 7db9ccc8fb..22f49013b2 100644 --- a/src/app/tree-grid/tree-grid-routes-data.ts +++ b/src/app/tree-grid/tree-grid-routes-data.ts @@ -55,5 +55,10 @@ export const treeGridRoutesData = { "tree-grid-row-reordering": { displayName: "TreeGrid Row Reordering", parentName: "TreeGrid" }, "treegrid-remote-paging": { displayName: "TreeGrid Remote Paging", parentName: "TreeGrid" }, "treegrid-paging-style": { displayName: "TreeGrid Paging Style", parentName: "TreeGrid" }, + "treegrid-multi-column-header-template": { + displayName: "TreeGrid Multi Column Header Template", + parentName: "TreeGrid" + }, + "tree-grid-clipboard-operations-sample": { displayName: "TreeGrid Clipboard Operations", parentName: "TreeGrid" }, "treegrid-toolbar-style": { displayName: "TreeGrid Toolbar Style", parentName: "TreeGrid" } }; diff --git a/src/app/tree-grid/tree-grid-routing.module.ts b/src/app/tree-grid/tree-grid-routing.module.ts index 6c79fc1e65..29eee17f17 100644 --- a/src/app/tree-grid/tree-grid-routing.module.ts +++ b/src/app/tree-grid/tree-grid-routing.module.ts @@ -6,6 +6,8 @@ import { import { TreeGridChilddatakeySampleComponent } from "./tree-grid-childdatakey-sample/tree-grid-childdatakey-sample.component"; +// tslint:disable-next-line: max-line-length +import { TreeGridClipboardSampleComponent } from "./tree-grid-clipboard-operations-sample/tree-grid-clipboard-operations-sample.component"; import { TreeGridColumnHidingSampleComponent } from "./tree-grid-column-hiding-sample/tree-grid-column-hiding-sample.component"; @@ -58,6 +60,9 @@ import { import { TreeGridMultiCellSelectionStyleComponent } from "./tree-grid-multi-cell-selection-style/tree-grid-multi-cell-selection-style.component"; // tslint:disable-next-line: max-line-length import { TreeGridMultiCellSelectionComponent } from "./tree-grid-multi-cell-selection/tree-grid-multi-cell-selection.component"; +import { + TreeGridMultiColumnHeaderTemplateSampleComponent +} from "./tree-grid-multi-column-header-template-sample/tree-grid-multi-column-header-template-sample.component"; import { TreeGridMultiColumnHeadersSampleComponent } from "./tree-grid-multi-column-headers-sample/tree-grid-multi-column-headers-sample.component"; @@ -325,6 +330,16 @@ export const treeGridRoutes: Routes = [ data: treeGridRoutesData["treegrid-paging-style"], path: "treegrid-paging-style" }, + { + component: TreeGridMultiColumnHeaderTemplateSampleComponent, + data: treeGridRoutesData["treegrid-multi-column-header-template"], + path: "treegrid-multi-column-header-template" + }, + { + component: TreeGridClipboardSampleComponent, + data: treeGridRoutesData["treegrid-clipboard-operations-sample"], + path: "tree-grid-clipboard-operations-sample" + }, { component: TreeGridToolbarStyleComponent, data: treeGridRoutesData["treegrid-toolbar-style"], diff --git a/src/app/tree-grid/tree-grid.module.ts b/src/app/tree-grid/tree-grid.module.ts index 2741bd5d38..b8bc5ea72c 100644 --- a/src/app/tree-grid/tree-grid.module.ts +++ b/src/app/tree-grid/tree-grid.module.ts @@ -25,6 +25,8 @@ import { import { TreeGridChilddatakeySampleComponent } from "./tree-grid-childdatakey-sample/tree-grid-childdatakey-sample.component"; +// tslint:disable-next-line: max-line-length +import { TreeGridClipboardSampleComponent } from "./tree-grid-clipboard-operations-sample/tree-grid-clipboard-operations-sample.component"; import { TreeGridColumnHidingSampleComponent } from "./tree-grid-column-hiding-sample/tree-grid-column-hiding-sample.component"; @@ -76,6 +78,9 @@ import { import { TreeGridMultiCellSelectionStyleComponent } from "./tree-grid-multi-cell-selection-style/tree-grid-multi-cell-selection-style.component"; // tslint:disable-next-line: max-line-length import { TreeGridMultiCellSelectionComponent } from "./tree-grid-multi-cell-selection/tree-grid-multi-cell-selection.component"; +import { + TreeGridMultiColumnHeaderTemplateSampleComponent +} from "./tree-grid-multi-column-header-template-sample/tree-grid-multi-column-header-template-sample.component"; import { TreeGridMultiColumnHeadersSampleComponent } from "./tree-grid-multi-column-headers-sample/tree-grid-multi-column-headers-sample.component"; @@ -171,6 +176,8 @@ import { TreeGridRowReorderComponent, TreeGridRemotePagingSampleComponent, TreeGridResizeLineStylingSampleComponent, + TreeGridMultiColumnHeaderTemplateSampleComponent, + TreeGridClipboardSampleComponent, TreeGridToolbarStyleComponent ], imports: [ diff --git a/src/app/treegrid-finjs/tree-grid-finjs-sample.component.scss b/src/app/treegrid-finjs/tree-grid-finjs-sample.component.scss index 1888342dbc..6dd6ca4e06 100644 --- a/src/app/treegrid-finjs/tree-grid-finjs-sample.component.scss +++ b/src/app/treegrid-finjs/tree-grid-finjs-sample.component.scss @@ -168,14 +168,17 @@ } .finjs-slider { width: 40%; + min-width: 145px; } .finjs-play-controls { width: 45%; min-width: 500px; + margin-top: 20px; } .sample-toolbar { height: 20px; font-size: 0.8rem; + line-height: 20px; } .fin-dark-theme { .finjs-slider, diff --git a/src/assets/Shapes/AmericanCities.dbf b/src/assets/Shapes/AmericanCities.dbf index 505cc46189..db70c943bd 100644 Binary files a/src/assets/Shapes/AmericanCities.dbf and b/src/assets/Shapes/AmericanCities.dbf differ diff --git a/src/assets/Shapes/AmericanCities.shx b/src/assets/Shapes/AmericanCities.shx new file mode 100644 index 0000000000..23537405a1 Binary files /dev/null and b/src/assets/Shapes/AmericanCities.shx differ diff --git a/web.config b/web.config index 8b389f0054..700d4fabe8 100644 --- a/web.config +++ b/web.config @@ -19,7 +19,18 @@ + + + + + + + + + + +