├── .bithoundrc ├── .editorconfig ├── .gitattributes ├── .gitignore ├── .travis.yml ├── Dockerfile ├── LICENSE ├── README.md ├── bower.json ├── csComp ├── README.md ├── classes │ ├── dashboard.ts │ ├── datasource.ts │ ├── feature.ts │ ├── feed.ts │ ├── group.ts │ ├── layer.ts │ ├── map.ts │ ├── project.ts │ └── typeresource.ts ├── directives │ ├── Accessibility │ │ ├── Accessibility.tpl.html │ │ ├── Accessibility.ts │ │ └── AccessibilityCtrl.ts │ ├── BaseMapList │ │ ├── BaseMapList.tpl.html │ │ ├── BaseMapList.ts │ │ └── BaseMapListCtrl.ts │ ├── Charts │ │ ├── BarChart.ts │ │ ├── ChartHelpers.ts │ │ ├── CircularChart.ts │ │ ├── SingleValue.ts │ │ ├── SparklineChart.ts │ │ └── bulletChart.ts │ ├── Clock │ │ └── Clock.ts │ ├── ContextMenu │ │ └── ContextMenu.ts │ ├── DashboardDirectives │ │ ├── Dashboard │ │ │ ├── Dashboard.tpl.html │ │ │ ├── Dashboard.ts │ │ │ └── DashboardCtrl.ts │ │ ├── DashboardSelection │ │ │ ├── DashboardHeaderSelection.tpl.html │ │ │ ├── DashboardHeaderSelection.ts │ │ │ ├── DashboardHeaderSelectionCtrl.ts │ │ │ ├── DashboardSelection.tpl.html │ │ │ ├── DashboardSelection.ts │ │ │ └── DashboardSelectionCtrl.ts │ │ ├── Search │ │ │ ├── Search.tpl.html │ │ │ ├── Search.ts │ │ │ └── SearchCtrl.ts │ │ └── WidgetEdit │ │ │ ├── DashboardEdit.tpl.html │ │ │ ├── DashboardEdit.ts │ │ │ ├── DashboardEditCtrl.ts │ │ │ ├── WidgetEdit.tpl.html │ │ │ ├── WidgetEdit.ts │ │ │ └── WidgetEditCtrl.ts │ ├── DataTable │ │ ├── DataTable.tpl.html │ │ ├── DataTable.ts │ │ └── DataTableCtrl.ts │ ├── Editors │ │ ├── FeatureTypeEditor │ │ │ ├── FeatureTypeEditor.tpl.html │ │ │ ├── FeatureTypeEditor.ts │ │ │ ├── FeatureTypeEditorCtrl.ts │ │ │ ├── FeatureTypes.tpl.html │ │ │ ├── FeatureTypes.ts │ │ │ └── FeatureTypesCtrl.ts │ │ ├── GroupEditor │ │ │ ├── GroupEdit.tpl.html │ │ │ ├── GroupEdit.ts │ │ │ └── GroupEditCtrl.ts │ │ ├── LayerEditor │ │ │ ├── LayerEditor.tpl.html │ │ │ ├── LayerEditor.ts │ │ │ ├── LayerEditorCtrl.ts │ │ │ ├── LayerSettings.tpl.html │ │ │ ├── LayerSettings.ts │ │ │ └── LayerSettingsCtrl.ts │ │ └── PropertyTypeEditor │ │ │ ├── PropertyTypes.tpl.html │ │ │ ├── PropertyTypes.ts │ │ │ └── PropertyTypesCtrl.ts │ ├── EventTab │ │ ├── EventTab.tpl.html │ │ ├── EventTab.ts │ │ └── EventTabCtrl.ts │ ├── ExpertMode │ │ ├── ExpertMode.tpl.html │ │ ├── ExpertMode.ts │ │ └── ExpertModeCtrl.ts │ ├── FeatureList │ │ ├── FeatureList.tpl.html │ │ ├── FeatureList.ts │ │ └── FeatureListCtrl.ts │ ├── FeatureProps │ │ ├── FeatureProps.tpl.html │ │ ├── FeatureProps.ts │ │ └── FeaturePropsCtrl.ts │ ├── FeatureRelations │ │ ├── FeatureRelations.tpl.html │ │ ├── FeatureRelations.ts │ │ └── FeatureRelationsCtrl.ts │ ├── FilterList │ │ ├── FilterList.tpl.html │ │ ├── FilterList.ts │ │ └── FilterListCtrl.ts │ ├── Heatmap │ │ ├── Grid-based heatmap algorithm.md │ │ ├── HeatMap.ts │ │ ├── HeatMapCtrl.ts │ │ ├── HeatMapModel.ts │ │ ├── HeatSpot.ts │ │ ├── Heatmap.tpl.html │ │ ├── HeatmapEditorCtrl.ts │ │ ├── HeatmapEditorView.tpl.html │ │ ├── HeatmapItem.ts │ │ ├── HeatmapSettings.ts │ │ └── IdealityMeasure.ts │ ├── IdvHelper │ │ ├── IdvEdit.tpl.html │ │ ├── IdvEdit.ts │ │ └── IdvHelper.ts │ ├── KanbanBoard │ │ ├── KanbanBoard-edit.tpl.html │ │ ├── KanbanBoard-edit.ts │ │ ├── KanbanBoard.tpl.html │ │ ├── KanbanBoard.ts │ │ ├── KanbanBoardCtrl.ts │ │ ├── KanbanColumn.tpl.html │ │ ├── KanbanColumn.ts │ │ └── KanbanColumnCtrl.ts │ ├── LanguageSwitch │ │ ├── LanguageSwitch.tpl.html │ │ ├── LanguageSwitch.ts │ │ ├── LanguageSwitchCtrl.ts │ │ └── readme.md │ ├── LayersList │ │ ├── AddLayerCtrl.ts │ │ ├── AddLayerView.tpl.html │ │ ├── LayersDirective.tpl.html │ │ ├── LayersDirective.ts │ │ └── LayersDirectiveCtrl.ts │ ├── Legend │ │ ├── Legend.tpl.html │ │ ├── Legend.ts │ │ └── LegendCtrl.ts │ ├── LegendList │ │ ├── LegendList.tpl.html │ │ ├── LegendList.ts │ │ └── LegendListCtrl.ts │ ├── MCA │ │ ├── Criteria.ts │ │ ├── Mca.tpl.html │ │ ├── Mca.ts │ │ ├── McaCtrl.ts │ │ ├── McaEditorCtrl.ts │ │ └── McaEditorView.tpl.html │ ├── MapElement │ │ ├── MapElement.tpl.html │ │ ├── MapElement.ts │ │ └── MapElementCtrl.ts │ ├── Mobile │ │ ├── Mobile.tpl.html │ │ ├── Mobile.ts │ │ └── MobileCtrl.ts │ ├── Navigate │ │ ├── Navigate.tpl.html │ │ ├── Navigate.ts │ │ ├── NavigateCtrl.ts │ │ └── SearchClasses.ts │ ├── OfflineSearch │ │ ├── OfflineSearch.tpl.html │ │ ├── OfflineSearch.ts │ │ ├── OfflineSearchClasses.ts │ │ └── OfflineSearchCtrl.ts │ ├── Profile │ │ ├── ProfileHeader.tpl.html │ │ ├── ProfileHeaderCtrl.ts │ │ ├── ProfileTab.tpl.html │ │ └── ProfileTabCtrl.ts │ ├── ProjectSelection │ │ ├── ProjectHeaderSelection.tpl.html │ │ ├── ProjectHeaderSelection.ts │ │ └── ProjectHeaderSelectionCtrl.ts │ ├── ProjectSettings │ │ ├── ProjectSettings.tpl.html │ │ ├── ProjectSettings.ts │ │ └── ProjectSettingsCtrl.ts │ ├── Resize │ │ └── Resize.ts │ ├── ShowModal │ │ └── ShowModal.ts │ ├── StyleList │ │ ├── StyleList.tpl.html │ │ ├── StyleList.ts │ │ └── StyleListCtrl.ts │ ├── Timeline │ │ ├── Timeline.tpl.html │ │ ├── Timeline.ts │ │ └── TimelineCtrl.ts │ ├── TripPlanner │ │ ├── TripPlanner.tpl.html │ │ ├── TripPlanner.ts │ │ └── TripPlannerCtrl.ts │ ├── Voting │ │ └── Voting.ts │ └── Widgets │ │ ├── Agenda │ │ ├── AgendaWidget-edit.tpl.html │ │ ├── AgendaWidget-edit.ts │ │ ├── AgendaWidget.tpl.html │ │ └── AgendaWidget.ts │ │ ├── ButtonWidget │ │ ├── ButtonWidget-edit.tpl.html │ │ ├── ButtonWidget-edit.ts │ │ ├── ButtonWidget.tpl.html │ │ └── ButtonWidget.ts │ │ ├── Charts │ │ ├── Charts-edit.tpl.html │ │ ├── Charts-edit.ts │ │ ├── Charts.tpl.html │ │ ├── Charts.ts │ │ └── ChartsCtrl.ts │ │ ├── CompareWidget │ │ ├── CompareWidget.tpl.html │ │ ├── CompareWidget.ts │ │ └── CompareWidgetCtrl.ts │ │ ├── FilterStyleWidget │ │ ├── FilterStyleWidget.tpl.html │ │ ├── FilterStyleWidget.ts │ │ └── FilterStyleWidgetCtrl.ts │ │ ├── Filters │ │ ├── AreaFilter.tpl.html │ │ ├── AreaFilter.ts │ │ ├── AreaFilterCtrl.ts │ │ ├── BarFilter.tpl.html │ │ ├── BarFilterCtrl.ts │ │ ├── BoolFilter.tpl.html │ │ ├── BoolFilterCtrl.ts │ │ ├── DateFilter.tpl.html │ │ ├── DateFilterCtrl.ts │ │ ├── LocationFilter.tpl.html │ │ ├── LocationFilterCtrl.ts │ │ ├── RowFilter.tpl.html │ │ ├── RowFilterCtrl.ts │ │ ├── ScatterFilter.tpl.html │ │ ├── ScatterFilterCtrl.ts │ │ ├── TextFilter.tpl.html │ │ ├── TextFilter.ts │ │ └── TextFilterCtrl.ts │ │ ├── FocusTimeWidget │ │ ├── FocusTimeWidget.tpl.html │ │ └── FocusTimeWidget.ts │ │ ├── HeaderWidget │ │ ├── HeaderWidget.tpl.html │ │ ├── HeaderWidget.ts │ │ ├── HeaderWidgetCtrl.ts │ │ ├── InfoWidget.tpl.html │ │ └── InfoWidgetCtrl.ts │ │ ├── IFrameWidget │ │ ├── IFrame-edit.tpl.html │ │ ├── IFrame-edit.ts │ │ ├── IFrameWidget.tpl.html │ │ ├── IFrameWidget.ts │ │ └── IFrameWidgetCtrl.ts │ │ ├── Indicators │ │ ├── Indicators-edit.tpl.html │ │ ├── Indicators-edit.ts │ │ ├── Indicators.tpl.html │ │ ├── Indicators.ts │ │ └── IndicatorsCtrl.ts │ │ ├── LocationWidget │ │ ├── LocationWidget.tpl.html │ │ └── LocationWidget.ts │ │ ├── MCAWidget │ │ ├── MCAWidget.tpl.html │ │ ├── MCAWidget.ts │ │ └── MCAWidgetCtrl.ts │ │ ├── MarkdownWidget │ │ ├── Markdown-edit.tpl.html │ │ ├── Markdown-edit.ts │ │ ├── MarkdownWidget.tpl.html │ │ ├── MarkdownWidget.ts │ │ └── MarkdownWidgetCtrl.ts │ │ ├── MarvelWidget │ │ ├── MarvelWidget.tpl.html │ │ ├── MarvelWidget.ts │ │ └── MarvelWidgetCtrl.ts │ │ ├── Navigator │ │ ├── NavigatorWidget.tpl.html │ │ ├── NavigatorWidget.ts │ │ └── NavigatorWidgetCtrl.ts │ │ ├── PostMan │ │ ├── PostMan-edit.tpl.html │ │ ├── PostMan-edit.ts │ │ ├── PostMan.tpl.html │ │ ├── PostMan.ts │ │ ├── PostManCtrl.ts │ │ └── PostManEditCtrl.ts │ │ ├── Presentation │ │ ├── PresentationService.ts │ │ ├── PresentationWidget-edit.tpl.html │ │ ├── PresentationWidget-edit.ts │ │ ├── PresentationWidget.tpl.html │ │ └── PresentationWidget.ts │ │ ├── SimState │ │ ├── SimState-edit.tpl.html │ │ ├── SimState-edit.ts │ │ ├── SimState.tpl.html │ │ └── SimState.ts │ │ ├── SimTimeController │ │ ├── SimTimeController-edit.tpl.html │ │ ├── SimTimeController-edit.ts │ │ ├── SimTimeController.tpl.html │ │ ├── SimTimeController.ts │ │ ├── SimTimeControllerCtrl.ts │ │ └── SimTimeControllerEditCtrl.ts │ │ └── TableWidget │ │ ├── TableWidget.tpl.html │ │ ├── TableWidget.ts │ │ └── TableWidgetCtrl.ts ├── helpers │ ├── ColorExt.ts │ ├── DateExt.ts │ ├── Dictionary.ts │ ├── GeoExtensions.ts │ ├── Helpers.ts │ ├── Plot.ts │ ├── StringExt.ts │ ├── StringFormatDirective.ts │ ├── StringScore.ts │ ├── StyleHelpers.ts │ ├── Utils.ts │ ├── ValidationDirectives.ts │ ├── conrec.ts │ ├── esriJsonConverter.ts │ └── typestate.ts ├── includes │ ├── bower_dep │ │ ├── bower.json │ │ └── index.html │ ├── css │ │ ├── animate.min.css │ │ ├── csStyles.scss │ │ ├── css3mixins │ │ ├── d3_bulletchart.css │ │ ├── leafletdraw.css │ │ ├── locationfilter.css │ │ ├── markers.css │ │ ├── pnotify.custom.min.css │ │ ├── timeline.css │ │ ├── widgets.css │ │ └── xbbcode.css │ ├── cssImages │ │ ├── User Expert.png │ │ ├── User Expert.svg │ │ ├── User Intermediate.png │ │ ├── User Intermediate.svg │ │ ├── User Novice.png │ │ ├── User Novice.svg │ │ ├── UserAdminExpert.png │ │ ├── UserAdminExpert.svg │ │ ├── blue_palette.png │ │ ├── blue_palette.svg │ │ ├── directory.png │ │ ├── filter-black-small.png │ │ ├── filter-black.png │ │ ├── large-marker.svg │ │ ├── layers-black.png │ │ ├── legend.png │ │ ├── map-black.png │ │ ├── marker-black.png │ │ ├── menu-left.png │ │ ├── paint-brush-30.png │ │ ├── paint-brush.png │ │ ├── paint-brush.svg │ │ ├── palette-16.png │ │ ├── palette-32.png │ │ ├── palette-48.png │ │ ├── palette.png │ │ ├── palette.svg │ │ ├── pen.png │ │ ├── pen.svg │ │ ├── pen_small.png │ │ ├── plot_ascending.png │ │ ├── plot_ascending.svg │ │ ├── plot_ascending_sigmoid.png │ │ ├── plot_ascending_sigmoid.svg │ │ ├── plot_descending.png │ │ ├── plot_descending.svg │ │ ├── plot_descending_sigmoid.png │ │ ├── plot_descending_sigmoid.svg │ │ ├── plot_gaussian_peak.png │ │ ├── plot_gaussian_peak.svg │ │ ├── plot_gaussian_valley.png │ │ ├── plot_gaussian_valley.svg │ │ ├── readme.txt │ │ ├── search.png │ │ ├── sliders.png │ │ ├── style-black-small.png │ │ └── style-black.png │ ├── images │ │ ├── bar-chart-5-32.png │ │ ├── bordercolor.png │ │ ├── check.png │ │ ├── dashboard-black.png │ │ ├── database-32.png │ │ ├── fillcolor.png │ │ ├── filter-icon.png │ │ ├── large-marker.png │ │ ├── line-width.png │ │ ├── marker.png │ │ ├── menu-left.png │ │ ├── minus.png │ │ ├── move-handle.png │ │ ├── plus-white.png │ │ ├── plus.png │ │ ├── polygon.png │ │ ├── question.png │ │ ├── resize-handle.png │ │ ├── settings.png │ │ ├── spritesheet-2x.png │ │ ├── spritesheet.png │ │ └── widgets │ │ │ ├── Add.png │ │ │ ├── Clock.png │ │ │ ├── DecreaseSpeed.png │ │ │ ├── Edit.png │ │ │ ├── Execute.png │ │ │ ├── IncreaseSpeed.png │ │ │ ├── Media Fast-forward.png │ │ │ ├── Media First.png │ │ │ ├── Media Last.png │ │ │ ├── Media Next.png │ │ │ ├── Media Previous.png │ │ │ ├── Media-Fast-Forward.png │ │ │ ├── Media-Pause.png │ │ │ ├── Media-Play.png │ │ │ ├── Media-Rewind.png │ │ │ ├── Media-Start.png │ │ │ ├── Media-Stop.png │ │ │ ├── Recorded-Media.png │ │ │ ├── Script.png │ │ │ ├── ServerStatus.png │ │ │ ├── Speed.png │ │ │ ├── agenda.png │ │ │ ├── filter.png │ │ │ ├── indicators.png │ │ │ ├── markdown.png │ │ │ ├── mca.png │ │ │ ├── presentation.png │ │ │ ├── search.png │ │ │ ├── table.png │ │ │ ├── touchbutton.png │ │ │ └── touchbutton.svg │ ├── js │ │ ├── Assets │ │ │ ├── IAU2006_XYS │ │ │ │ ├── IAU2006_XYS_0.json │ │ │ │ ├── IAU2006_XYS_1.json │ │ │ │ ├── IAU2006_XYS_10.json │ │ │ │ ├── IAU2006_XYS_11.json │ │ │ │ ├── IAU2006_XYS_12.json │ │ │ │ ├── IAU2006_XYS_13.json │ │ │ │ ├── IAU2006_XYS_14.json │ │ │ │ ├── IAU2006_XYS_15.json │ │ │ │ ├── IAU2006_XYS_16.json │ │ │ │ ├── IAU2006_XYS_17.json │ │ │ │ ├── IAU2006_XYS_18.json │ │ │ │ ├── IAU2006_XYS_19.json │ │ │ │ ├── IAU2006_XYS_2.json │ │ │ │ ├── IAU2006_XYS_20.json │ │ │ │ ├── IAU2006_XYS_21.json │ │ │ │ ├── IAU2006_XYS_22.json │ │ │ │ ├── IAU2006_XYS_23.json │ │ │ │ ├── IAU2006_XYS_24.json │ │ │ │ ├── IAU2006_XYS_25.json │ │ │ │ ├── IAU2006_XYS_26.json │ │ │ │ ├── IAU2006_XYS_27.json │ │ │ │ ├── IAU2006_XYS_3.json │ │ │ │ ├── IAU2006_XYS_4.json │ │ │ │ ├── IAU2006_XYS_5.json │ │ │ │ ├── IAU2006_XYS_6.json │ │ │ │ ├── IAU2006_XYS_7.json │ │ │ │ ├── IAU2006_XYS_8.json │ │ │ │ └── IAU2006_XYS_9.json │ │ │ └── Textures │ │ │ │ ├── NaturalEarthII │ │ │ │ ├── 0 │ │ │ │ │ ├── 0 │ │ │ │ │ │ └── 0.jpg │ │ │ │ │ └── 1 │ │ │ │ │ │ └── 0.jpg │ │ │ │ ├── 1 │ │ │ │ │ ├── 0 │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ └── 1.jpg │ │ │ │ │ ├── 1 │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ └── 1.jpg │ │ │ │ │ ├── 2 │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ └── 1.jpg │ │ │ │ │ └── 3 │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ └── 1.jpg │ │ │ │ ├── 2 │ │ │ │ │ ├── 0 │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ └── 3.jpg │ │ │ │ │ ├── 1 │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ └── 3.jpg │ │ │ │ │ ├── 2 │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ └── 3.jpg │ │ │ │ │ ├── 3 │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ └── 3.jpg │ │ │ │ │ ├── 4 │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ └── 3.jpg │ │ │ │ │ ├── 5 │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ └── 3.jpg │ │ │ │ │ ├── 6 │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ └── 3.jpg │ │ │ │ │ └── 7 │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ └── 3.jpg │ │ │ │ └── tilemapresource.xml │ │ │ │ ├── SkyBox │ │ │ │ ├── tycho2t3_80_mx.jpg │ │ │ │ ├── tycho2t3_80_my.jpg │ │ │ │ ├── tycho2t3_80_mz.jpg │ │ │ │ ├── tycho2t3_80_px.jpg │ │ │ │ ├── tycho2t3_80_py.jpg │ │ │ │ └── tycho2t3_80_pz.jpg │ │ │ │ ├── maki │ │ │ │ ├── airfield.png │ │ │ │ ├── airport.png │ │ │ │ ├── alcohol-shop.png │ │ │ │ ├── america-football.png │ │ │ │ ├── art-gallery.png │ │ │ │ ├── bakery.png │ │ │ │ ├── bank.png │ │ │ │ ├── bar.png │ │ │ │ ├── baseball.png │ │ │ │ ├── basketball.png │ │ │ │ ├── beer.png │ │ │ │ ├── bicycle.png │ │ │ │ ├── building.png │ │ │ │ ├── bus.png │ │ │ │ ├── cafe.png │ │ │ │ ├── camera.png │ │ │ │ ├── campsite.png │ │ │ │ ├── car.png │ │ │ │ ├── cemetery.png │ │ │ │ ├── cesium.png │ │ │ │ ├── chemist.png │ │ │ │ ├── cinema.png │ │ │ │ ├── circle-stroked.png │ │ │ │ ├── circle.png │ │ │ │ ├── city.png │ │ │ │ ├── clothing-store.png │ │ │ │ ├── college.png │ │ │ │ ├── commercial.png │ │ │ │ ├── cricket.png │ │ │ │ ├── cross.png │ │ │ │ ├── dam.png │ │ │ │ ├── danger.png │ │ │ │ ├── disability.png │ │ │ │ ├── dog-park.png │ │ │ │ ├── embassy.png │ │ │ │ ├── emergency-telephone.png │ │ │ │ ├── entrance.png │ │ │ │ ├── farm.png │ │ │ │ ├── fast-food.png │ │ │ │ ├── ferry.png │ │ │ │ ├── fire-station.png │ │ │ │ ├── fuel.png │ │ │ │ ├── garden.png │ │ │ │ ├── gift.png │ │ │ │ ├── golf.png │ │ │ │ ├── grocery.png │ │ │ │ ├── hairdresser.png │ │ │ │ ├── harbor.png │ │ │ │ ├── heart.png │ │ │ │ ├── heliport.png │ │ │ │ ├── hospital.png │ │ │ │ ├── ice-cream.png │ │ │ │ ├── industrial.png │ │ │ │ ├── land-use.png │ │ │ │ ├── laundry.png │ │ │ │ ├── library.png │ │ │ │ ├── lighthouse.png │ │ │ │ ├── lodging.png │ │ │ │ ├── logging.png │ │ │ │ ├── london-underground.png │ │ │ │ ├── marker-stroked.png │ │ │ │ ├── marker.png │ │ │ │ ├── minefield.png │ │ │ │ ├── mobilephone.png │ │ │ │ ├── monument.png │ │ │ │ ├── museum.png │ │ │ │ ├── music.png │ │ │ │ ├── oil-well.png │ │ │ │ ├── park.png │ │ │ │ ├── park2.png │ │ │ │ ├── parking-garage.png │ │ │ │ ├── parking.png │ │ │ │ ├── pharmacy.png │ │ │ │ ├── pitch.png │ │ │ │ ├── place-of-worship.png │ │ │ │ ├── playground.png │ │ │ │ ├── police.png │ │ │ │ ├── polling-place.png │ │ │ │ ├── post.png │ │ │ │ ├── prison.png │ │ │ │ ├── rail-above.png │ │ │ │ ├── rail-light.png │ │ │ │ ├── rail-metro.png │ │ │ │ ├── rail-underground.png │ │ │ │ ├── rail.png │ │ │ │ ├── religious-christian.png │ │ │ │ ├── religious-jewish.png │ │ │ │ ├── religious-muslim.png │ │ │ │ ├── restaurant.png │ │ │ │ ├── roadblock.png │ │ │ │ ├── rocket.png │ │ │ │ ├── school.png │ │ │ │ ├── scooter.png │ │ │ │ ├── shop.png │ │ │ │ ├── skiing.png │ │ │ │ ├── slaughterhouse.png │ │ │ │ ├── soccer.png │ │ │ │ ├── square-stroked.png │ │ │ │ ├── square.png │ │ │ │ ├── star-stroked.png │ │ │ │ ├── star.png │ │ │ │ ├── suitcase.png │ │ │ │ ├── swimming.png │ │ │ │ ├── telephone.png │ │ │ │ ├── tennis.png │ │ │ │ ├── theatre.png │ │ │ │ ├── toilets.png │ │ │ │ ├── town-hall.png │ │ │ │ ├── town.png │ │ │ │ ├── triangle-stroked.png │ │ │ │ ├── triangle.png │ │ │ │ ├── village.png │ │ │ │ ├── warehouse.png │ │ │ │ ├── waste-basket.png │ │ │ │ ├── water.png │ │ │ │ ├── wetland.png │ │ │ │ └── zoo.png │ │ │ │ ├── moonSmall.jpg │ │ │ │ ├── pin.svg │ │ │ │ ├── waterNormals.jpg │ │ │ │ └── waterNormalsSmall.jpg │ │ ├── Polyline.encoded.js │ │ ├── Polyline.encoded.min.js │ │ ├── ThirdParty │ │ │ └── Workers │ │ │ │ ├── deflate.js │ │ │ │ └── inflate.js │ │ ├── Widgets │ │ │ ├── Animation │ │ │ │ ├── Animation.css │ │ │ │ └── lighter.css │ │ │ ├── BaseLayerPicker │ │ │ │ ├── BaseLayerPicker.css │ │ │ │ └── lighter.css │ │ │ ├── CesiumInspector │ │ │ │ └── CesiumInspector.css │ │ │ ├── CesiumWidget │ │ │ │ ├── CesiumWidget.css │ │ │ │ └── lighter.css │ │ │ ├── FullscreenButton │ │ │ │ └── FullscreenButton.css │ │ │ ├── Geocoder │ │ │ │ ├── Geocoder.css │ │ │ │ └── lighter.css │ │ │ ├── Images │ │ │ │ ├── Cesium_Logo_overlay.png │ │ │ │ ├── ImageryProviders │ │ │ │ │ ├── bingAerial.png │ │ │ │ │ ├── bingAerialLabels.png │ │ │ │ │ ├── bingRoads.png │ │ │ │ │ ├── blackMarble.png │ │ │ │ │ ├── esriNationalGeographic.png │ │ │ │ │ ├── esriWorldImagery.png │ │ │ │ │ ├── esriWorldStreetMap.png │ │ │ │ │ ├── mapQuestOpenStreetMap.png │ │ │ │ │ ├── naturalEarthII.png │ │ │ │ │ ├── openStreetMap.png │ │ │ │ │ ├── stamenToner.png │ │ │ │ │ └── stamenWatercolor.png │ │ │ │ ├── NavigationHelp │ │ │ │ │ ├── Mouse.svg │ │ │ │ │ ├── MouseLeft.svg │ │ │ │ │ ├── MouseMiddle.svg │ │ │ │ │ ├── MouseRight.svg │ │ │ │ │ ├── Touch.svg │ │ │ │ │ ├── TouchDrag.svg │ │ │ │ │ ├── TouchRotate.svg │ │ │ │ │ ├── TouchTilt.svg │ │ │ │ │ └── TouchZoom.svg │ │ │ │ ├── TerrainProviders │ │ │ │ │ ├── Ellipsoid.png │ │ │ │ │ └── STK.png │ │ │ │ ├── TimelineIcons.png │ │ │ │ └── info-loading.gif │ │ │ ├── InfoBox │ │ │ │ ├── InfoBox.css │ │ │ │ └── InfoBoxDescription.css │ │ │ ├── NavigationHelpButton │ │ │ │ ├── NavigationHelpButton.css │ │ │ │ └── lighter.css │ │ │ ├── PerformanceWatchdog │ │ │ │ └── PerformanceWatchdog.css │ │ │ ├── SceneModePicker │ │ │ │ └── SceneModePicker.css │ │ │ ├── SelectionIndicator │ │ │ │ └── SelectionIndicator.css │ │ │ ├── Timeline │ │ │ │ ├── Timeline.css │ │ │ │ └── lighter.css │ │ │ ├── Viewer │ │ │ │ └── Viewer.css │ │ │ ├── lighter.css │ │ │ ├── lighterShared.css │ │ │ ├── shared.css │ │ │ └── widgets.css │ │ ├── Workers │ │ │ ├── cesiumWorkerBootstrapper.js │ │ │ ├── combineGeometry.js │ │ │ ├── createBoxGeometry.js │ │ │ ├── createBoxOutlineGeometry.js │ │ │ ├── createCircleGeometry.js │ │ │ ├── createCircleOutlineGeometry.js │ │ │ ├── createCorridorGeometry.js │ │ │ ├── createCorridorOutlineGeometry.js │ │ │ ├── createCylinderGeometry.js │ │ │ ├── createCylinderOutlineGeometry.js │ │ │ ├── createEllipseGeometry.js │ │ │ ├── createEllipseOutlineGeometry.js │ │ │ ├── createEllipsoidGeometry.js │ │ │ ├── createEllipsoidOutlineGeometry.js │ │ │ ├── createGeometry.js │ │ │ ├── createPolygonGeometry.js │ │ │ ├── createPolygonOutlineGeometry.js │ │ │ ├── createPolylineGeometry.js │ │ │ ├── createPolylineVolumeGeometry.js │ │ │ ├── createPolylineVolumeOutlineGeometry.js │ │ │ ├── createRectangleGeometry.js │ │ │ ├── createRectangleOutlineGeometry.js │ │ │ ├── createSimplePolylineGeometry.js │ │ │ ├── createSphereGeometry.js │ │ │ ├── createSphereOutlineGeometry.js │ │ │ ├── createVerticesFromHeightmap.js │ │ │ ├── createVerticesFromQuantizedTerrainMesh.js │ │ │ ├── createWallGeometry.js │ │ │ ├── createWallOutlineGeometry.js │ │ │ ├── transferTypedArrayTest.js │ │ │ └── upsampleQuantizedTerrainMesh.js │ │ ├── angular-fontawesome.js │ │ ├── angular-moment.min.js │ │ ├── angular-spectrum-colorpicker.min.js │ │ ├── cesium.js │ │ ├── d3_bulletChart.js │ │ ├── d3_bulletChart.min.js │ │ ├── dashboard.min.js │ │ ├── datetime-picker.js │ │ ├── jquery.cookies.min.js │ │ ├── jqueryinjectCSS.min.js │ │ ├── leaflet.utfgrid-src.js │ │ ├── leaflet.utfgrid.js │ │ ├── leafletdraw.js │ │ ├── locationfilter.js │ │ ├── marvelous.model.js │ │ ├── pnotify.custom.min.js │ │ ├── spectrum.js │ │ ├── spectrum.min.js │ │ ├── stringformat-1.09.min.min.js │ │ ├── stringformat.nl-NL.min.js │ │ ├── timeline.min.js │ │ ├── togeojson.js │ │ ├── togeojson.min.js │ │ ├── topojson.js │ │ ├── topojson.min.js │ │ ├── vega-embed.min.js │ │ ├── vega-lite.min.js │ │ ├── vega.min.js │ │ ├── wizMarkdown.min.js │ │ └── xbbcode.min.js │ ├── sffjs.1.09.zip │ └── stylesheets.html ├── licences │ └── xbbcode.txt ├── services │ ├── bus │ │ └── MessageBus.ts │ ├── dashboard │ │ ├── ActionService.ts │ │ ├── ChartGenerators.ts │ │ ├── DashboardService.ts │ │ └── top10chart.ts │ ├── geolocation │ │ └── geolocation.ts │ ├── layer │ │ ├── ContourAction.ts │ │ ├── ExpressionService.ts │ │ ├── LayerActions.ts │ │ ├── LayerService.ts │ │ ├── MatrixAction.ts │ │ ├── RelationAction.ts │ │ ├── actions │ │ │ ├── BingSearchAction.ts │ │ │ ├── EsriBagSearchAction.ts │ │ │ ├── OfflineSearchAction.ts │ │ │ ├── OnlineSearchAction.ts │ │ │ └── OpenCageDataSearchAction.ts │ │ ├── areas │ │ │ └── GeometryTemplate.ts │ │ └── sources │ │ │ ├── DatabaseSource.ts │ │ │ ├── GeoJsonSource.ts │ │ │ ├── GridDataSource.ts │ │ │ ├── HeatmapSource.ts │ │ │ ├── HierarchySource.ts │ │ │ ├── KmlDataSource.ts │ │ │ ├── NightDayDataSource.ts │ │ │ ├── RssDataSource.ts │ │ │ ├── TileLayerSource.ts │ │ │ ├── VectorTileSource.ts │ │ │ └── WmsSource.ts │ ├── map │ │ ├── MapService.ts │ │ ├── layerRenderers │ │ │ ├── canvasOverlay.ts │ │ │ ├── geojsonRenderer.ts │ │ │ ├── gridLayerRenderer.ts │ │ │ ├── heatmapRenderer.ts │ │ │ ├── tileLayerRenderer.ts │ │ │ └── wmsRenderer.ts │ │ └── renderers │ │ │ ├── cesiumRenderer.ts │ │ │ └── leafletRenderer.ts │ ├── profile │ │ └── ProfileService.ts │ └── search │ │ └── SearchFormCtrl.ts └── translations │ ├── locale-en.ts │ └── locale-nl.ts ├── csServerComp ├── README.md ├── ServerComponents │ ├── api │ │ ├── ApiManager.ts │ │ ├── ApiServiceManager.ts │ │ ├── AuthAPI.ts │ │ ├── BaseConnector.ts │ │ ├── FileStorage.ts │ │ ├── IApiService.ts │ │ ├── IApiServiceManager.ts │ │ ├── ImbAPI.ts │ │ ├── KafkaAPI.ts │ │ ├── MongoDB.ts │ │ ├── MqttAPI.ts │ │ ├── RestAPI.ts │ │ ├── SocketIOAPI.ts │ │ ├── config.ts │ │ ├── imb.ts │ │ └── qlobber.ts │ ├── bus │ │ └── MessageBus.ts │ ├── configuration │ │ ├── ConfigurationService.ts │ │ └── IConfiguration.ts │ ├── creator │ │ ├── AccessibilityService.ts │ │ ├── CISDataSource.ts │ │ ├── IGeoJsonFeature.ts │ │ ├── IProjectRepositoryService.ts │ │ ├── MapLayerFactory.ts │ │ ├── ProjectRepositoryService.ts │ │ ├── ProxyService.ts │ │ ├── RestDataService.ts │ │ └── RssService.ts │ ├── database │ │ ├── BagDatabase.ts │ │ ├── IAddressSource.ts │ │ ├── IBagAddress.ts │ │ ├── IBagOptions.ts │ │ ├── LocalBag.ts │ │ ├── Location.ts │ │ └── NominatimSource.ts │ ├── dynamic │ │ ├── ClientConnection.ts │ │ ├── DataSource.ts │ │ ├── DynamicLayer.ts │ │ ├── DynamicProject.ts │ │ ├── LayerDirectory.ts │ │ └── MobileLayer.ts │ ├── helpers │ │ ├── DateUtils.ts │ │ ├── GeoJSON.ts │ │ ├── Rss.ts │ │ ├── RssGeoJSON.ts │ │ ├── StringExt.ts │ │ ├── Utils.ts │ │ ├── conrec.ts │ │ └── typestate.ts │ ├── import │ │ ├── AggregateOpportunitiesToGeoJsonTransformer.ts │ │ ├── AggregateOpportunitiesToOrganisationTransformer.ts │ │ ├── BagDetailsTransformer.ts │ │ ├── BaseTransformer.ts │ │ ├── BushalteAggregateTransformer.ts │ │ ├── CliImporter.ts │ │ ├── CollateStreamTransformer.ts │ │ ├── CsvSaveTransformer.ts │ │ ├── CsvToJsonTransformer.ts │ │ ├── FieldFilterTransformer.ts │ │ ├── FieldSplitTransformer.ts │ │ ├── GeoJsonAggregateTransformer.ts │ │ ├── GeoJsonFeaturesTransformer.ts │ │ ├── GeoJsonOutputTransformer.ts │ │ ├── GeoJsonSaveTransformer.ts │ │ ├── GeoJsonSplitTransformer.ts │ │ ├── IImport.ts │ │ ├── IImporterRepositoryService.ts │ │ ├── IStore.ts │ │ ├── ITransform.ts │ │ ├── Importer.ts │ │ ├── ImporterRepositoryService.ts │ │ ├── IsoLines.ts │ │ ├── KvKToJsonTransformer.ts │ │ ├── MergeGeoJsonTransformer.ts │ │ ├── RepeatEnum.ts │ │ ├── SplitAdresTransformer.ts │ │ └── Store.ts │ └── rules │ │ ├── Rule.ts │ │ ├── RuleEngine.ts │ │ ├── WorldState.ts │ │ └── readme.md ├── cli.ts ├── csServer.ts └── index.ts ├── docker-dev └── Dockerfile ├── docs ├── High Level Architecture.png ├── High Level Architecture.pptx ├── Introduction csWeb.pptx └── creating_a_standalone_csWeb.txt ├── fonts ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.svg ├── glyphicons-halflings-regular.ttf ├── glyphicons-halflings-regular.woff └── glyphicons-halflings-regular.woff2 ├── gulpfile.js ├── install_karma.bat ├── out └── csServerComp │ ├── package-lock.json │ └── package.json ├── package-lock.json ├── package.json ├── schemas ├── project_schema.json └── resource_type_schema.json ├── test ├── bower_components │ ├── angular-mocks │ │ ├── .bower.json │ │ ├── README.md │ │ ├── angular-mocks.js │ │ ├── bower.json │ │ ├── ngAnimateMock.js │ │ ├── ngMock.js │ │ ├── ngMockE2E.js │ │ └── package.json │ └── angularUtils-pagination │ │ ├── .bower.json │ │ ├── README.md │ │ ├── bower.json │ │ ├── dirPagination.js │ │ ├── dirPagination.tpl.html │ │ ├── index.js │ │ ├── package.js │ │ └── package.json ├── coveralls.js ├── csComp │ ├── app.js │ ├── mock │ │ ├── colorTranslationMock.ts │ │ ├── datasourceMock.ts │ │ ├── owsMock.ts │ │ ├── owsMock.xml │ │ ├── projectMock.ts │ │ └── solutionMock.ts │ └── spec │ │ ├── classes │ │ ├── dashboard.spec.ts │ │ ├── datasource.spec.ts │ │ ├── feature.spec.ts │ │ ├── group.spec.ts │ │ ├── layers.spec.ts │ │ ├── project.spec.ts │ │ └── typeresource.spec.ts │ │ ├── directives │ │ └── DataTable │ │ │ └── DataTable.spec.ts │ │ ├── helpers │ │ ├── GeoExtensions.spec.ts │ │ ├── Helpers.spec.ts │ │ ├── StringScore.spec.ts │ │ ├── StyleHelpers.spec.ts │ │ └── Utils.spec.ts │ │ └── services │ │ ├── bus │ │ └── MessageBus.spec.ts │ │ ├── layer │ │ ├── ExpressionService.spec.ts │ │ └── LayerService.spec.ts │ │ └── map │ │ └── renderers │ │ └── LeafletRenderer.spec.ts ├── csServerComp │ └── ServerComponents │ │ └── api │ │ └── RestAPI.spec.ts ├── karma.conf.js └── tsd.json ├── tsconfig.json ├── tslint.json ├── typings.json └── wallaby.js /.bithoundrc: -------------------------------------------------------------------------------- 1 | { 2 | "ignore": [ 3 | "**/node_modules/**", 4 | "csComp/includes/**", 5 | "csComp/Scripts/typings/**", 6 | "example/public/cs/js/ThirdParty/**", 7 | "csComp/includes/js/**", 8 | "OfflineSearch/dist/**", 9 | "OfflineSearch/**/*.js", 10 | "**/bower_components/**", 11 | "**/**?(*).ts", 12 | "**/**jquery.?(ui|effects)-*.*.?(*).?(cs|j)s", 13 | "**/**jquery-*.*.?(*).?(cs|j)s" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: http://EditorConfig.org 2 | root = true 3 | 4 | [*] 5 | end_of_line = lf 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | indent_style = space 10 | indent_size = 4 11 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text eol=lf 2 | 3 | # text files 4 | *.d.ts text 5 | 6 | # images are binary 7 | *.png binary 8 | *.jpg binary 9 | *.pptx binary 10 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | node_js: 4 | - "8" 5 | install: 6 | # - "npm install -g npm@4.0.5" 7 | - "npm install -g bower" 8 | - "npm install -g typescript@3.2.1" 9 | - "npm install" 10 | script: 11 | - gulp travis 12 | - npm test 13 | # - cd .. && cat coverage/*/lcov.info | test/coveralls.js 14 | notifications: 15 | slack: webcs:AnvBbkHIi7v9aTiS2H4suMkr 16 | env: 17 | matrix: 18 | secure: TxWwQB+JJ87CiHT95wBgRGrUA6f46D3adx3FSDEi+KWrc/K15uARaoVWbPyX2OcFt1+QZDcJ7oQIa4F5cOp4e6caN1+pp8+kk7Un1WDDe5fqTeYxUypYWIIcosXAZyM4gAJin1t8RyHFUVdMVyDhQm0ONDda+vfsxL8GdNY/ZcI= 19 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:4 2 | 3 | RUN useradd -ms /bin/bash node 4 | ADD . /home/node/app 5 | RUN chown -R node:node /home/node 6 | 7 | RUN npm install -g npm 8 | RUN npm install -g typescript@1.6.2 bower gulp node-gyp 9 | RUN apt-get update && apt-get install -y libkrb5-dev 10 | 11 | USER node 12 | ENV HOME /home/node 13 | 14 | EXPOSE 3002 15 | WORKDIR /home/node/app 16 | RUN npm install 17 | RUN gulp init 18 | WORKDIR /home/node/app/example 19 | CMD node server.js 20 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 TNOCS 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "csweb", 3 | "version": "0.3.28", 4 | "main": "dist-bower/csComp.js", 5 | "ignore": [ 6 | "csComp", 7 | "csServerComp", 8 | "dist-npm", 9 | "example", 10 | "docker-dev", 11 | "docs", 12 | "node_modules", 13 | "test", 14 | "bower.json", 15 | "gulp.js", 16 | "Dockerfile", 17 | "package.json", 18 | "dist", 19 | "README.md", 20 | ".vscode", 21 | ".bithoundrc", 22 | ".editorconfig", 23 | ".gitignore", 24 | ".travis.yml", 25 | "LICENSE", 26 | "install_karma.bat", 27 | "updateAll.bat" 28 | ], 29 | "dependencies": { 30 | }, 31 | "devDependencies": { 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /csComp/README.md: -------------------------------------------------------------------------------- 1 | # csComp - Client side components 2 | 3 | csComp contains the client side Angular components. 4 | 5 | -------------------------------------------------------------------------------- /csComp/classes/feed.ts: -------------------------------------------------------------------------------- 1 | module csComp.Services { 2 | 3 | export class Feed extends Feature { 4 | id: string; 5 | 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /csComp/classes/map.ts: -------------------------------------------------------------------------------- 1 | module csComp.Services { 2 | export var availableZoomLevels = [ 3 | { title: 'decades', value: 315360000000 }, 4 | { title: 'years', value: 31536000000 }, 5 | { title: 'weeks', value: 604800000 }, 6 | { title: 'days', value: 86400000 }, 7 | { title: 'hours', value: 3600000 }, 8 | { title: 'quarters', value: 900000 }, 9 | { title: 'minutes', value: 60000 }, 10 | { title: 'seconds', value: 1000 }, 11 | { title: 'milliseconds', value: 1 } 12 | ]; 13 | 14 | export interface IMapRenderer { 15 | title: string; 16 | init(service: LayerService); 17 | enable(baseLayer?: BaseLayer); 18 | disable(); 19 | addGroup(group: ProjectGroup); 20 | addLayer(layer: ProjectLayer); 21 | removeGroup(group: ProjectGroup); 22 | createFeature(feature: IFeature); 23 | removeFeature(feature: IFeature); 24 | removeFeatureBatch(features: IFeature[], layer: IProjectLayer); 25 | updateFeature(feature: IFeature); 26 | selectFeature(feature: IFeature); 27 | addFeature(feature: IFeature); 28 | removeLayer(layer: ProjectLayer); 29 | updateMapFilter(group: ProjectGroup); 30 | changeBaseLayer(layer: BaseLayer); 31 | getZoom(); 32 | fitBounds(bounds: IBoundingBox); 33 | getExtent(): IBoundingBox; 34 | getLatLon(x: number, y: number): { lat: number, lon: number }; 35 | refreshLayer(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /csComp/directives/Accessibility/Accessibility.ts: -------------------------------------------------------------------------------- 1 | module Accessibility { 2 | /** 3 | * Config 4 | */ 5 | var moduleName = 'csComp'; 6 | 7 | /** 8 | * Module 9 | */ 10 | export var myModule; 11 | try { 12 | myModule = angular.module(moduleName); 13 | } catch (err) { 14 | // named module does not exist, so create one 15 | myModule = angular.module(moduleName, []); 16 | } 17 | 18 | /** 19 | * Directive to display a feature's properties in a panel. 20 | * 21 | * @seealso : http://www.youtube.com/watch?v=gjJ5vLRK8R8&list=UUGD_0i6L48hucTiiyhb5QzQ 22 | * @seealso : http://plnkr.co/edit/HyBP9d?p=preview 23 | */ 24 | myModule.directive('accessibility', ['$compile', 25 | function($compile): ng.IDirective { 26 | return { 27 | terminal: true, // do not compile any other internal directives 28 | restrict: 'E', // E = elements, other options are A=attributes and C=classes 29 | scope: {}, // isolated scope, separated from parent. Is however empty, as this directive is self contained by using the messagebus. 30 | templateUrl: 'directives/Accessibility/Accessibility.tpl.html', 31 | 32 | replace: true, // Remove the directive from the DOM 33 | transclude: true, // Add elements and attributes to the template 34 | controller: AccessibilityCtrl 35 | } 36 | } 37 | ]); 38 | } 39 | -------------------------------------------------------------------------------- /csComp/directives/BaseMapList/BaseMapList.tpl.html: -------------------------------------------------------------------------------- 1 |
8 |
9 |
10 | 11 |
12 | {{::key}} 13 |
{{::value.subtitle}} 14 |
15 |
16 |
17 |
18 | -------------------------------------------------------------------------------- /csComp/directives/Clock/Clock.ts: -------------------------------------------------------------------------------- 1 | module Directives.Clock { 2 | /** 3 | * Config 4 | */ 5 | var moduleName = "csComp"; 6 | 7 | /** 8 | * Module 9 | */ 10 | export var myModule; 11 | 12 | try { 13 | myModule = angular.module(moduleName); 14 | } catch (err) { 15 | // named module does not exist, so create one 16 | myModule = angular.module(moduleName, []); 17 | } 18 | 19 | /** 20 | * Directive to show the time. 21 | */ 22 | myModule.directive('clock', ['dateFilter', function(dateFilter) { 23 | return { 24 | restrict: 'E', 25 | scope: { 26 | time: '@', 27 | format: '@' 28 | }, 29 | link: function(scope, element, attrs) { 30 | function updateTime() { 31 | element.html(dateFilter(scope.time, scope.format)); 32 | } 33 | 34 | scope.$watch('time', function(value) { 35 | updateTime(); 36 | }); 37 | } 38 | }; 39 | }]); 40 | } 41 | -------------------------------------------------------------------------------- /csComp/directives/DashboardDirectives/DashboardSelection/DashboardHeaderSelection.ts: -------------------------------------------------------------------------------- 1 | module DashboarHeaderdSelection { 2 | /** 3 | * Config 4 | */ 5 | var moduleName = 'csComp'; 6 | 7 | /** 8 | * Module 9 | */ 10 | export var myModule; 11 | try { 12 | myModule = angular.module(moduleName); 13 | } catch (err) { 14 | // named module does not exist, so create one 15 | myModule = angular.module(moduleName, []); 16 | } 17 | 18 | /** 19 | * Directive to display the available map layers. 20 | */ 21 | myModule.directive('dashboardHeaderSelection', [ 22 | '$window', '$compile', 23 | function($window, $compile): ng.IDirective { 24 | return { 25 | terminal: false, // do not compile any other internal directives 26 | restrict: 'E', // E = elements, other options are A=attributes and C=classes 27 | scope: {}, // isolated scope, separated from parent. Is however empty, as this directive is self contained by using the messagebus. 28 | templateUrl: 'directives/DashboardDirectives/DashboardSelection/DashboardHeaderSelection.tpl.html', 29 | 30 | replace: true, // Remove the directive from the DOM 31 | transclude: true, // Add elements and attributes to the template 32 | controller: DashboardHeaderSelectionCtrl 33 | } 34 | } 35 | ]); 36 | 37 | } 38 | -------------------------------------------------------------------------------- /csComp/directives/DashboardDirectives/Search/Search.tpl.html: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /csComp/directives/EventTab/EventTab.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | Event tab 4 |

7 | 16 |
17 |
18 | 19 |
20 |
21 |
-------------------------------------------------------------------------------- /csComp/directives/EventTab/EventTab.ts: -------------------------------------------------------------------------------- 1 | module EventTab { 2 | /** 3 | * Config 4 | */ 5 | var moduleName = 'csComp'; 6 | 7 | /** 8 | * Module 9 | */ 10 | export var myModule; 11 | try { 12 | myModule = angular.module(moduleName); 13 | } catch (err) { 14 | // named module does not exist, so create one 15 | myModule = angular.module(moduleName, []); 16 | } 17 | 18 | /** 19 | * Directive to display a feature's properties in a panel. 20 | * 21 | * @seealso : http://www.youtube.com/watch?v=gjJ5vLRK8R8&list=UUGD_0i6L48hucTiiyhb5QzQ 22 | * @seealso : http://plnkr.co/edit/HyBP9d?p=preview 23 | */ 24 | myModule.directive('eventtab', ['$compile', 25 | function($compile): ng.IDirective { 26 | return { 27 | terminal: true, // do not compile any other internal directives 28 | restrict: 'E', // E = elements, other options are A=attributes and C=classes 29 | scope: {}, // isolated scope, separated from parent. Is however empty, as this directive is self contained by using the messagebus. 30 | templateUrl: 'directives/EventTab/EventTab.tpl.html', 31 | 32 | replace: true, // Remove the directive from the DOM 33 | transclude: true, // Add elements and attributes to the template 34 | controller: EventTabCtrl 35 | } 36 | } 37 | ]); 38 | } 39 | -------------------------------------------------------------------------------- /csComp/directives/FeatureList/FeatureListCtrl.ts: -------------------------------------------------------------------------------- 1 | module FeatureList { 2 | export interface IFeatureListScope extends ng.IScope { 3 | vm: FeatureListCtrl; 4 | numberOfItems: number; 5 | } 6 | 7 | export class FeatureListCtrl { 8 | private scope: IFeatureListScope; 9 | 10 | // $inject annotation. 11 | // It provides $injector with information about dependencies to be injected into constructor 12 | // it is better to have it close to the constructor, because the parameters must match in count and type. 13 | // See http://docs.angularjs.org/guide/di 14 | public static $inject = [ 15 | '$scope', 16 | 'layerService', 17 | 'mapService' 18 | ]; 19 | 20 | // dependencies are injected via AngularJS $injector 21 | // controller's name is registered in Application.ts and specified from ng-controller attribute in index.html 22 | constructor( 23 | private $scope : IFeatureListScope, 24 | private $layerService: csComp.Services.LayerService, 25 | private $mapService : csComp.Services.MapService 26 | ) { 27 | $scope.vm = this; 28 | $scope.numberOfItems = 10; // This is being reset in the directive upon receiving a resize. 29 | } 30 | 31 | } 32 | } -------------------------------------------------------------------------------- /csComp/directives/FeatureProps/FeatureProps.ts: -------------------------------------------------------------------------------- 1 | module FeatureProps { 2 | /** 3 | * Config 4 | */ 5 | var moduleName = 'csComp'; 6 | 7 | /** 8 | * Module 9 | */ 10 | export var myModule; 11 | try { 12 | myModule = angular.module(moduleName); 13 | } catch (err) { 14 | // named module does not exist, so create one 15 | myModule = angular.module(moduleName, []); 16 | } 17 | 18 | /** 19 | * Directive to display a feature's properties in a panel. 20 | * 21 | * @seealso : http://www.youtube.com/watch?v=gjJ5vLRK8R8&list=UUGD_0i6L48hucTiiyhb5QzQ 22 | * @seealso : http://plnkr.co/edit/HyBP9d?p=preview 23 | */ 24 | myModule.directive('featureprops', ['$compile', 25 | function($compile): ng.IDirective { 26 | return { 27 | terminal: true, // do not compile any other internal directives 28 | restrict: 'E', // E = elements, other options are A=attributes and C=classes 29 | scope: {}, // isolated scope, separated from parent. Is however empty, as this directive is self contained by using the messagebus. 30 | templateUrl: 'directives/FeatureProps/FeatureProps.tpl.html', 31 | 32 | replace: true, // Remove the directive from the DOM 33 | transclude: true, // Add elements and attributes to the template 34 | controller: FeaturePropsCtrl 35 | } 36 | } 37 | ]); 38 | } 39 | -------------------------------------------------------------------------------- /csComp/directives/Heatmap/HeatSpot.ts: -------------------------------------------------------------------------------- 1 | module Heatmap { 2 | 3 | /** 4 | * A heat spot represents an lat-lon-point on the map with a certain intensity. 5 | */ 6 | export interface IHeatspot { 7 | i : number; 8 | j : number; 9 | intensity : number; 10 | contributor?: string; 11 | 12 | AddLocation(i, j, contributor): IHeatspot; 13 | } 14 | 15 | /** 16 | * A heat spot represents a point on the map with a certain intensity. 17 | */ 18 | export class Heatspot implements IHeatspot { 19 | constructor(public i: number, public j: number, public intensity: number, public contributor?: string) { } 20 | 21 | AddLocation(i, j, contributor) { 22 | return new Heatspot(this.i + i, this.j + j, this.intensity, contributor); 23 | } 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /csComp/directives/Heatmap/HeatmapSettings.ts: -------------------------------------------------------------------------------- 1 | module Heatmap { 2 | /** 3 | * A simple interface to describe heatmapsettings. 4 | */ 5 | export interface IHeatmapSettings { 6 | referenceList : string[]; 7 | intensityScale: number; 8 | minZoom : number; 9 | maxZoom : number; 10 | resolution : number; 11 | 12 | addReference(reference: string): void; 13 | } 14 | 15 | export class HeatmapSettings implements IHeatmapSettings { 16 | 17 | constructor(public referenceList: string[] = [], public minZoom: number = 10, public maxZoom: number = 15, public intensityScale: number = 3, 18 | public resolution: number = 2) { } 19 | 20 | public addReference(reference: string) { 21 | // Add unique reference layers only 22 | if (this.referenceList.indexOf(reference) < 0) { 23 | this.referenceList.push(reference); 24 | } 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /csComp/directives/KanbanBoard/KanbanBoard-edit.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | Edit Kanban Board 4 |

5 | 6 |
7 |
8 |
9 | 10 | 11 |
12 |
13 |
14 |
15 | 16 | 17 |
18 |
19 |
20 |
21 | 22 | 25 |
26 |
27 | 28 |
29 | 30 |
31 | -------------------------------------------------------------------------------- /csComp/directives/KanbanBoard/KanbanBoard.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 |
6 | 7 | 18 |
19 |
20 | -------------------------------------------------------------------------------- /csComp/directives/KanbanBoard/KanbanBoard.ts: -------------------------------------------------------------------------------- 1 | module KanbanColumn { 2 | /** 3 | * Config 4 | */ 5 | var moduleName = 'csComp'; 6 | 7 | /** 8 | * Module 9 | */ 10 | export var myModule; 11 | try { 12 | myModule = angular.module(moduleName); 13 | } catch (err) { 14 | // named module does not exist, so create one 15 | myModule = angular.module(moduleName, []); 16 | } 17 | 18 | /** 19 | * Directive to display the available map layers. 20 | */ 21 | myModule.directive('kanbanboard', [ 22 | function(): ng.IDirective { 23 | return { 24 | terminal: true, // do not compile any other internal directives 25 | restrict: 'E', // E = elements, other options are A=attributes and C=classes 26 | scope: {}, // isolated scope, separated from parent. Is however empty, as this directive is self contained by using the messagebus. 27 | templateUrl: 'directives/KanbanBoard/KanbanBoard.tpl.html', 28 | replace: false, // Remove the directive from the DOM 29 | transclude: false, // Add elements and attributes to the template 30 | controller: KanbanBoardCtrl 31 | } 32 | } 33 | ]); 34 | 35 | } 36 | -------------------------------------------------------------------------------- /csComp/directives/KanbanBoard/KanbanColumn.ts: -------------------------------------------------------------------------------- 1 | module KanbanColumn { 2 | /** 3 | * Config 4 | */ 5 | var moduleName = 'csComp'; 6 | 7 | /** 8 | * Module 9 | */ 10 | export var myModule; 11 | try { 12 | myModule = angular.module(moduleName); 13 | } catch (err) { 14 | // named module does not exist, so create one 15 | myModule = angular.module(moduleName, []); 16 | } 17 | 18 | /** 19 | * Directive to display the available map layers. 20 | */ 21 | myModule.directive('kanbanColumn', [ 22 | '$window', '$compile', 23 | function($window, $compile): ng.IDirective { 24 | return { 25 | terminal: true, // do not compile any other internal directives 26 | restrict: 'E', // E = elements, other options are A=attributes and C=classes 27 | scope: { 28 | column: '=', 29 | layer: '=', 30 | providedlayer: '=' 31 | }, // isolated scope, separated from parent. Is however empty, as this directive is self contained by using the messagebus. 32 | templateUrl: 'directives/KanbanBoard/KanbanColumn.tpl.html', 33 | replace: false, // Remove the directive from the DOM 34 | transclude: false, // Add elements and attributes to the template 35 | controller: KanbanColumnCtrl 36 | } 37 | } 38 | ]); 39 | 40 | } 41 | -------------------------------------------------------------------------------- /csComp/directives/LanguageSwitch/LanguageSwitch.tpl.html: -------------------------------------------------------------------------------- 1 | 20 | -------------------------------------------------------------------------------- /csComp/directives/LegendList/LegendList.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |

3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |

12 |
13 |
14 | {{expression.title}} 15 | {{expression.calculation}} 16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | -------------------------------------------------------------------------------- /csComp/directives/MapElement/MapElement.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 12 |
-------------------------------------------------------------------------------- /csComp/directives/Mobile/Mobile.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 |
5 | 10 |
11 | 12 |
13 |
{{l.title}}
14 |
15 |
16 | -------------------------------------------------------------------------------- /csComp/directives/Mobile/Mobile.ts: -------------------------------------------------------------------------------- 1 | module Mobile { 2 | /** 3 | * Config 4 | */ 5 | var moduleName = 'csComp'; 6 | 7 | /** 8 | * Module 9 | */ 10 | export var myModule; 11 | try { 12 | myModule = angular.module(moduleName); 13 | } catch (err) { 14 | // named module does not exist, so create one 15 | myModule = angular.module(moduleName, []); 16 | } 17 | 18 | /** 19 | * Directive to display the available map layers. 20 | */ 21 | myModule.directive('mobile', [ 22 | '$window', '$compile', 23 | function($window, $compile): ng.IDirective { 24 | return { 25 | terminal: true, // do not compile any other internal directives 26 | restrict: 'E', // E = elements, other options are A=attributes and C=classes 27 | scope: {}, // isolated scope, separated from parent. Is however empty, as this directive is self contained by using the messagebus. 28 | templateUrl: 'directives/Mobile/Mobile.tpl.html', 29 | link: (scope: any, element, attrs) => { }, 30 | replace: false, // Remove the directive from the DOM 31 | transclude: false, // Add elements and attributes to the template 32 | controller: MobileCtrl 33 | } 34 | } 35 | ]); 36 | 37 | } 38 | -------------------------------------------------------------------------------- /csComp/directives/Navigate/SearchClasses.ts: -------------------------------------------------------------------------------- 1 | module Search { 2 | 3 | export class NavigateSteps{ 4 | 5 | } 6 | 7 | export class NavigateState{ 8 | state : any; 9 | } 10 | 11 | export interface INavigateProvider { 12 | title: string; 13 | url: string; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /csComp/directives/OfflineSearch/OfflineSearch.tpl.html: -------------------------------------------------------------------------------- 1 |
2 | 8 | 25 |
26 | -------------------------------------------------------------------------------- /csComp/directives/ProjectSelection/ProjectHeaderSelection.ts: -------------------------------------------------------------------------------- 1 | module ProjectHeaderSelection { 2 | /** 3 | * Config 4 | */ 5 | var moduleName = 'csComp'; 6 | 7 | /** 8 | * Module 9 | */ 10 | export var myModule; 11 | try { 12 | myModule = angular.module(moduleName); 13 | } catch (err) { 14 | // named module does not exist, so create one 15 | myModule = angular.module(moduleName, []); 16 | } 17 | 18 | /** 19 | * Directive to display the available map layers. 20 | */ 21 | myModule.directive('projectHeaderSelection', [ 22 | '$window', '$compile', 23 | function ($window, $compile): ng.IDirective { 24 | return { 25 | terminal: false, // do not compile any other internal directives 26 | restrict: 'E', // E = elements, other options are A=attributes and C=classes 27 | scope: {}, // isolated scope, separated from parent. Is however empty, as this directive is self contained by using the messagebus. 28 | templateUrl: 'directives/ProjectSelection/ProjectHeaderSelection.tpl.html', 29 | link: (scope: any, element, attrs) => { 30 | 31 | 32 | }, 33 | replace: true, // Remove the directive from the DOM 34 | transclude: true, // Add elements and attributes to the template 35 | controller: ProjectHeaderSelectionCtrl 36 | } 37 | } 38 | ]); 39 | 40 | } 41 | -------------------------------------------------------------------------------- /csComp/directives/ProjectSelection/ProjectHeaderSelectionCtrl.ts: -------------------------------------------------------------------------------- 1 | module ProjectHeaderSelection { 2 | export interface IProjectHeaderSelectionScope extends ng.IScope { 3 | vm: ProjectHeaderSelectionCtrl; //DashboardSelectionCtrl; 4 | } 5 | 6 | export class ProjectHeaderSelectionCtrl { 7 | public scope: any; 8 | public project: csComp.Services.SolutionProject; 9 | 10 | // $inject annotation. 11 | // It provides $injector with information about dependencies to be injected into constructor 12 | // it is better to have it close to the constructor, because the parameters must match in count and type. 13 | // See http://docs.angularjs.org/guide/di 14 | public static $inject = [ 15 | '$scope', 16 | 'layerService', 17 | 'dashboardService', 18 | 'mapService', 19 | 'messageBusService' 20 | ]; 21 | 22 | // dependencies are injected via AngularJS $injector 23 | // controller's name is registered in Application.ts and specified from ng-controller attribute in index.html 24 | constructor( 25 | private $scope: any, 26 | public $layerService: csComp.Services.LayerService, 27 | public $dashboardService: csComp.Services.DashboardService, 28 | private $mapService: csComp.Services.MapService, 29 | public $messageBusService: csComp.Services.MessageBusService 30 | ) { 31 | $scope.vm = this; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /csComp/directives/TripPlanner/TripPlanner.ts: -------------------------------------------------------------------------------- 1 | module TripPlanner { 2 | /** 3 | * Config 4 | */ 5 | var moduleName = 'csComp'; 6 | 7 | /** 8 | * Module 9 | */ 10 | export var myModule; 11 | try { 12 | myModule = angular.module(moduleName); 13 | } catch (err) { 14 | // named module does not exist, so create one 15 | myModule = angular.module(moduleName, []); 16 | } 17 | 18 | /** 19 | * Directive to display a feature's properties in a panel. 20 | * 21 | * @seealso : http://www.youtube.com/watch?v=gjJ5vLRK8R8&list=UUGD_0i6L48hucTiiyhb5QzQ 22 | * @seealso : http://plnkr.co/edit/HyBP9d?p=preview 23 | */ 24 | myModule.directive('tripplanner', ['$compile', 25 | function($compile): ng.IDirective { 26 | return { 27 | terminal: true, // do not compile any other internal directives 28 | restrict: 'E', // E = elements, other options are A=attributes and C=classes 29 | scope: {}, // isolated scope, separated from parent. Is however empty, as this directive is self contained by using the messagebus. 30 | templateUrl: 'directives/TripPlanner/TripPlanner.tpl.html', 31 | 32 | replace: true, // Remove the directive from the DOM 33 | transclude: true, // Add elements and attributes to the template 34 | controller: TripPlannerCtrl 35 | } 36 | } 37 | ]); 38 | } 39 | -------------------------------------------------------------------------------- /csComp/directives/Widgets/Agenda/AgendaWidget-edit.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 |
AGENDA_SETTINGS
5 |
6 |

7 | 8 |
9 |
10 |
Layer
11 | 12 | 13 |
14 | 15 |
16 | -------------------------------------------------------------------------------- /csComp/directives/Widgets/Agenda/AgendaWidget.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

{{vm.title}}

4 | 5 |
    6 |
  • 7 |
    {{ev.startTime}}
    8 |
    {{ev.endTime }}
    9 |
    {{ev.title }}
    10 |
  • 11 |
12 |
13 |
-------------------------------------------------------------------------------- /csComp/directives/Widgets/ButtonWidget/ButtonWidget-edit.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |

  Button Editor 3 | 4 |

5 | 6 |
7 | 8 |
9 | 10 |
11 | 12 |
13 |
14 | -------------------------------------------------------------------------------- /csComp/directives/Widgets/Charts/Charts.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
{{data.title}}
3 |
4 |
5 | -------------------------------------------------------------------------------- /csComp/directives/Widgets/Charts/Charts.ts: -------------------------------------------------------------------------------- 1 | module ChartsWidget { 2 | /** 3 | * Config 4 | */ 5 | var moduleName = 'csComp'; 6 | 7 | /** 8 | * Module 9 | */ 10 | export var myModule; 11 | try { 12 | myModule = angular.module(moduleName); 13 | } catch (err) { 14 | // named module does not exist, so create one 15 | myModule = angular.module(moduleName, []); 16 | } 17 | 18 | /** 19 | * Directive to display the available map layers. 20 | */ 21 | myModule.directive('charts', [function(): ng.IDirective { 22 | return { 23 | restrict: 'E', // E = elements, other options are A=attributes and C=classes 24 | scope: { 25 | }, // isolated scope, separated from parent. Is however empty, as this directive is self contained by using the messagebus. 26 | templateUrl: 'directives/Widgets/Charts/Charts.tpl.html', 27 | replace: true, // Remove the directive from the DOM 28 | transclude: false, // Add elements and attributes to the template 29 | controller: ChartCtrl 30 | } 31 | } 32 | ]); 33 | } 34 | -------------------------------------------------------------------------------- /csComp/directives/Widgets/CompareWidget/CompareWidget.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{'COMPARE_TAB' | translate}} {{featureTypeTitle}} 4 |

5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
{{title}}
{{vm.propertyTitles[$index]}}{{col}}
20 |
21 |
-------------------------------------------------------------------------------- /csComp/directives/Widgets/FilterStyleWidget/FilterStyleWidget.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
{{filter.title}}
4 |
5 | 6 | 7 | 8 | 9 |
10 |
11 |
12 | 13 |
14 | 17 |
-------------------------------------------------------------------------------- /csComp/directives/Widgets/FilterStyleWidget/FilterStyleWidget.ts: -------------------------------------------------------------------------------- 1 | module FilterStyleWidget { 2 | /** 3 | * Config 4 | */ 5 | var moduleName = 'csComp'; 6 | 7 | /** 8 | * Module 9 | */ 10 | export var myModule; 11 | try { 12 | myModule = angular.module(moduleName); 13 | } catch (err) { 14 | // named module does not exist, so create one 15 | myModule = angular.module(moduleName, []); 16 | } 17 | 18 | /** 19 | * Directive to display the available map layers. 20 | */ 21 | myModule.directive('filterstylewidget', [function() : ng.IDirective { 22 | return { 23 | restrict : 'E', // E = elements, other options are A=attributes and C=classes 24 | scope : { 25 | }, // isolated scope, separated from parent. Is however empty, as this directive is self contained by using the messagebus. 26 | templateUrl: 'directives/Widgets/FilterStyleWidget/FilterStyleWidget.tpl.html', 27 | replace : true, // Remove the directive from the DOM 28 | transclude : false, // Add elements and attributes to the template 29 | controller : FilterStyleWidgetCtrl 30 | } 31 | } 32 | ]); 33 | } 34 | -------------------------------------------------------------------------------- /csComp/directives/Widgets/Filters/AreaFilter.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |

Area filter 5 |

6 | 7 |
8 |
9 |
10 |
There are no features to filter in the current group.
11 |
12 | -------------------------------------------------------------------------------- /csComp/directives/Widgets/Filters/BoolFilter.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 | 5 |

6 | 7 |
8 | -------------------------------------------------------------------------------- /csComp/directives/Widgets/Filters/DateFilter.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |

{{filter.title}}

3 | 8 | 9 |
10 | -------------------------------------------------------------------------------- /csComp/directives/Widgets/Filters/LocationFilter.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |

Location filter 5 |

6 | 7 |
8 |
9 |
10 |
There are no features to filter in the current group.
11 |
12 | -------------------------------------------------------------------------------- /csComp/directives/Widgets/Filters/RowFilter.tpl.html: -------------------------------------------------------------------------------- 1 |
2 | 8 |
9 |
10 |

{{filter.title}}

11 | 12 | 13 | 14 |
15 |
16 |
17 | -------------------------------------------------------------------------------- /csComp/directives/Widgets/Filters/ScatterFilter.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

{{filter.title}}

4 | 5 | 6 |
7 |
8 |
9 | -------------------------------------------------------------------------------- /csComp/directives/Widgets/Filters/TextFilter.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

{{filter.title}}

4 | 5 |
6 | 7 |
8 | -------------------------------------------------------------------------------- /csComp/directives/Widgets/HeaderWidget/HeaderWidget.tpl.html: -------------------------------------------------------------------------------- 1 |