The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .gitignore
├── .travis.yml
├── CHANGELOG.md
├── LICENSE.txt
├── README.md
├── bower.json
├── docs
    ├── config.json
    ├── contents
    │   ├── articles
    │   │   ├── 001-getting-started
    │   │   │   └── index.md
    │   │   ├── 002-installation-guidelines
    │   │   │   └── index.md
    │   │   ├── 011-changing-color-scheme
    │   │   │   ├── index.md
    │   │   │   └── new-color-scheme.jpg
    │   │   ├── 012-project-structure
    │   │   │   └── index.md
    │   │   ├── 013-create-new-page
    │   │   │   └── index.md
    │   │   ├── 014-switch-to-blur-theme
    │   │   │   └── index.md
    │   │   ├── 051-sidebar
    │   │   │   └── index.md
    │   │   └── 091-downloads
    │   │   │   └── index.md
    │   ├── css
    │   │   └── main.css
    │   ├── images
    │   │   ├── blur-admin-logo.png
    │   │   ├── blur-preview-mint.jpg
    │   │   ├── blur-preview.jpg
    │   │   ├── favicon.png
    │   │   ├── why-design.svg
    │   │   ├── why-practices.svg
    │   │   └── why-structure.svg
    │   └── index.json
    ├── package.json
    ├── plugins
    │   └── paginator.coffee
    └── templates
    │   ├── article.jade
    │   ├── index.jade
    │   └── layout.jade
├── gulp
    ├── build.js
    ├── conf.js
    ├── devRelease.js
    ├── docs.js
    ├── images.js
    ├── inject.js
    ├── marketplace.js
    ├── scripts.js
    ├── server.js
    ├── styles.js
    └── watch.js
├── gulpfile.js
├── package.json
├── preview.html
└── src
    ├── 404.html
    ├── app
        ├── app.js
        ├── pages
        │   ├── charts
        │   │   ├── amCharts
        │   │   │   ├── amCharts.module.js
        │   │   │   ├── areaChart
        │   │   │   │   ├── AreaChartCtrl.js
        │   │   │   │   └── areaChart.html
        │   │   │   ├── barChart
        │   │   │   │   ├── BarChartCtrl.js
        │   │   │   │   └── barChart.html
        │   │   │   ├── charts.html
        │   │   │   ├── combinedChart
        │   │   │   │   ├── combinedChart.html
        │   │   │   │   └── combinedChartCtrl.js
        │   │   │   ├── funnelChart
        │   │   │   │   ├── FunnelChartCtrl.js
        │   │   │   │   └── funnelChart.html
        │   │   │   ├── ganttChart
        │   │   │   │   ├── ganttChart.html
        │   │   │   │   └── ganttChartCtrl.js
        │   │   │   ├── lineChart
        │   │   │   │   ├── LineChartCtrl.js
        │   │   │   │   └── lineChart.html
        │   │   │   └── pieChart
        │   │   │   │   ├── PieChartCtrl.js
        │   │   │   │   └── pieChart.html
        │   │   ├── chartJs
        │   │   │   ├── chartJs.html
        │   │   │   ├── chartJs.module.js
        │   │   │   ├── chartJs1DCtrl.js
        │   │   │   ├── chartJs2DCtrl.js
        │   │   │   └── chartJsWaveCtrl.js
        │   │   ├── chartist
        │   │   │   ├── chartist.html
        │   │   │   ├── chartist.module.js
        │   │   │   └── chartistCtrl.js
        │   │   ├── charts.module.js
        │   │   └── morris
        │   │   │   ├── morris.html
        │   │   │   ├── morris.module.js
        │   │   │   └── morrisCtrl.js
        │   ├── components
        │   │   ├── components.module.js
        │   │   ├── mail
        │   │   │   ├── MailTabCtrl.js
        │   │   │   ├── composeBox
        │   │   │   │   ├── compose.html
        │   │   │   │   ├── composeBoxCtrl.js
        │   │   │   │   └── composeModal.js
        │   │   │   ├── detail
        │   │   │   │   ├── MailDetailCtrl.js
        │   │   │   │   └── mailDetail.html
        │   │   │   ├── list
        │   │   │   │   ├── MailListCtrl.js
        │   │   │   │   └── mailList.html
        │   │   │   ├── mail.html
        │   │   │   ├── mail.module.js
        │   │   │   └── mailMessages.js
        │   │   ├── timeline
        │   │   │   ├── TimelineCtrl.js
        │   │   │   ├── timeline.html
        │   │   │   └── timeline.module.js
        │   │   └── tree
        │   │   │   ├── tree.html
        │   │   │   ├── tree.module.js
        │   │   │   └── treeCtrl.js
        │   ├── dashboard
        │   │   ├── blurFeed
        │   │   │   ├── BlurFeedCtrl.js
        │   │   │   ├── blurFeed.directive.js
        │   │   │   └── blurFeed.html
        │   │   ├── calendar
        │   │   │   └── dashboardCalendar.js
        │   │   ├── dashboard.html
        │   │   ├── dashboard.module.js
        │   │   ├── dashboardCalendar
        │   │   │   ├── DashboardCalendarCtrl.js
        │   │   │   ├── dashboardCalendar.directive.js
        │   │   │   └── dashboardCalendar.html
        │   │   ├── dashboardLineChart
        │   │   │   ├── DashboardLineChartCtrl.js
        │   │   │   ├── dashboardLineChart.directive.js
        │   │   │   └── dashboardLineChart.html
        │   │   ├── dashboardMap
        │   │   │   ├── DashboardMapCtrl.js
        │   │   │   ├── dashboardMap.directive.js
        │   │   │   └── dashboardMap.html
        │   │   ├── dashboardPieChart
        │   │   │   ├── DashboardPieChartCtrl.js
        │   │   │   ├── dashboardPieChart.directive.js
        │   │   │   └── dashboardPieChart.html
        │   │   ├── dashboardTodo
        │   │   │   ├── DashboardTodoCtrl.js
        │   │   │   ├── dashboardTodo.directive.js
        │   │   │   └── dashboardTodo.html
        │   │   ├── pieCharts
        │   │   │   └── dashboardPieChart.js
        │   │   ├── popularApp
        │   │   │   ├── popularApp.directive.js
        │   │   │   └── popularApp.html
        │   │   ├── trafficChart
        │   │   │   ├── TrafficChartCtrl.js
        │   │   │   ├── trafficChart.directive.js
        │   │   │   └── trafficChart.html
        │   │   └── weather
        │   │   │   ├── WeatherCtrl.js
        │   │   │   ├── weather.directive.js
        │   │   │   └── weather.html
        │   ├── form
        │   │   ├── form.module.js
        │   │   ├── inputs
        │   │   │   ├── inputs.html
        │   │   │   └── widgets
        │   │   │   │   ├── checkboxesRadios.html
        │   │   │   │   ├── datePickers
        │   │   │   │       ├── datePickers.html
        │   │   │   │       ├── datepickerCtrl.js
        │   │   │   │       └── datepickerpopupCtrl.js
        │   │   │   │   ├── inputGroups.html
        │   │   │   │   ├── oldSelect
        │   │   │   │       ├── OldSelectpickerPanelCtrl.js
        │   │   │   │       ├── select.html
        │   │   │   │       └── selectpicker.directive.js
        │   │   │   │   ├── oldSwitches
        │   │   │   │       ├── OldSwitchPanelCtrl.js
        │   │   │   │       ├── switch.directive.js
        │   │   │   │       └── switch.html
        │   │   │   │   ├── select
        │   │   │   │       ├── GroupSelectpickerOptions.js
        │   │   │   │       ├── SelectpickerPanelCtrl.js
        │   │   │   │       └── select.html
        │   │   │   │   ├── standardFields.html
        │   │   │   │   ├── switches
        │   │   │   │       ├── SwitchDemoPanelCtrl.js
        │   │   │   │       └── switch.html
        │   │   │   │   ├── tagsInput
        │   │   │   │       ├── tagsInput.directive.js
        │   │   │   │       └── tagsInput.html
        │   │   │   │   └── validationStates.html
        │   │   ├── layouts
        │   │   │   ├── layouts.html
        │   │   │   └── widgets
        │   │   │   │   ├── basicForm.html
        │   │   │   │   ├── blockForm.html
        │   │   │   │   ├── formWithoutLabels.html
        │   │   │   │   ├── horizontalForm.html
        │   │   │   │   └── inlineForm.html
        │   │   └── wizard
        │   │   │   ├── wizard.html
        │   │   │   └── wizrdCtrl.js
        │   ├── maps
        │   │   ├── google-maps
        │   │   │   ├── GmapPageCtrl.js
        │   │   │   └── google-maps.html
        │   │   ├── leaflet
        │   │   │   ├── LeafletPageCtrl.js
        │   │   │   └── leaflet.html
        │   │   ├── map-bubbles
        │   │   │   ├── MapBubblePageCtrl.js
        │   │   │   └── map-bubbles.html
        │   │   ├── map-lines
        │   │   │   ├── MapLinesPageCtrl.js
        │   │   │   └── map-lines.html
        │   │   ├── maps.html
        │   │   └── maps.module.js
        │   ├── pages.module.js
        │   ├── profile
        │   │   ├── ProfileModalCtrl.js
        │   │   ├── ProfilePageCtrl.js
        │   │   ├── profile.html
        │   │   ├── profile.module.js
        │   │   └── profileModal.html
        │   ├── tables
        │   │   ├── TablesPageCtrl.js
        │   │   ├── basic
        │   │   │   └── tables.html
        │   │   ├── smart
        │   │   │   └── tables.html
        │   │   ├── tables.module.js
        │   │   └── widgets
        │   │   │   ├── basicTable.html
        │   │   │   ├── borderedTable.html
        │   │   │   ├── condensedTable.html
        │   │   │   ├── contextualTable.html
        │   │   │   ├── editableRowTable.html
        │   │   │   ├── editableTable.html
        │   │   │   ├── hoverRows.html
        │   │   │   ├── responsiveTable.html
        │   │   │   ├── smartTable.html
        │   │   │   └── stripedRows.html
        │   └── ui
        │   │   ├── alerts
        │   │       ├── alerts.html
        │   │       └── alerts.module.js
        │   │   ├── buttons
        │   │       ├── ButtonPageCtrl.js
        │   │       ├── buttons.html
        │   │       ├── buttons.module.js
        │   │       └── widgets
        │   │       │   ├── buttonGroups.html
        │   │       │   ├── buttons.html
        │   │       │   ├── dropdowns.html
        │   │       │   ├── iconButtons.html
        │   │       │   ├── largeButtons.html
        │   │       │   └── progressButtons.html
        │   │   ├── grid
        │   │       ├── baseGrid.html
        │   │       ├── grid.html
        │   │       └── grid.module.js
        │   │   ├── icons
        │   │       ├── IconsPageCtrl.js
        │   │       ├── icons.html
        │   │       ├── icons.module.js
        │   │       └── widgets
        │   │       │   ├── fontAwesomeIcons.html
        │   │       │   ├── ionicons.html
        │   │       │   ├── kameleon.html
        │   │       │   ├── kameleonRounded.html
        │   │       │   └── socicon.html
        │   │   ├── modals
        │   │       ├── ModalsPageCtrl.js
        │   │       ├── modalTemplates
        │   │       │   ├── basicModal.html
        │   │       │   ├── dangerModal.html
        │   │       │   ├── infoModal.html
        │   │       │   ├── largeModal.html
        │   │       │   ├── smallModal.html
        │   │       │   ├── successModal.html
        │   │       │   └── warningModal.html
        │   │       ├── modals.html
        │   │       ├── modals.module.js
        │   │       ├── notifications
        │   │       │   ├── NotificationsCtrl.js
        │   │       │   └── notifications.html
        │   │       └── progressModal
        │   │       │   ├── ProgressModalCtrl.js
        │   │       │   └── progressModal.html
        │   │   ├── notifications
        │   │       ├── NotificationsPageCtrl.js
        │   │       ├── notifications.html
        │   │       └── notifications.module.js
        │   │   ├── panels
        │   │       ├── panels.html
        │   │       └── panels.module.js
        │   │   ├── progressBars
        │   │       ├── progressBars.html
        │   │       ├── progressBars.module.js
        │   │       └── widgets
        │   │       │   ├── animated.html
        │   │       │   ├── basic.html
        │   │       │   ├── label.html
        │   │       │   ├── stacked.html
        │   │       │   └── striped.html
        │   │   ├── slider
        │   │       ├── slider.html
        │   │       └── slider.module.js
        │   │   ├── tabs
        │   │       ├── contextualAccordion.html
        │   │       ├── mainTabs.html
        │   │       ├── sampleAccordion.html
        │   │       ├── sideTabs.html
        │   │       ├── tabs.html
        │   │       └── tabs.module.js
        │   │   ├── typography
        │   │       ├── typography.html
        │   │       └── typography.module.js
        │   │   └── ui.module.js
        └── theme
        │   ├── components
        │       ├── baPanel
        │       │   ├── baPanel.directive.js
        │       │   ├── baPanel.service.js
        │       │   ├── baPanelBlur.directive.js
        │       │   ├── baPanelBlurHelper.service.js
        │       │   └── baPanelSelf.directive.js
        │       ├── baSidebar
        │       │   ├── BaSidebarCtrl.js
        │       │   ├── ba-sidebar.html
        │       │   ├── baSidebar.directive.js
        │       │   ├── baSidebar.service.js
        │       │   └── baSidebarHelpers.directive.js
        │       ├── baWizard
        │       │   ├── baWizard.directive.js
        │       │   ├── baWizard.html
        │       │   ├── baWizardCtrl.js
        │       │   ├── baWizardStep.directive.js
        │       │   └── baWizardStep.html
        │       ├── backTop
        │       │   ├── backTop.directive.js
        │       │   ├── backTop.html
        │       │   └── lib
        │       │   │   └── jquery.backTop.min.js
        │       ├── components.module.js
        │       ├── contentTop
        │       │   ├── contentTop.directive.js
        │       │   └── contentTop.html
        │       ├── msgCenter
        │       │   ├── MsgCenterCtrl.js
        │       │   ├── msgCenter.directive.js
        │       │   └── msgCenter.html
        │       ├── pageTop
        │       │   ├── pageTop.directive.js
        │       │   └── pageTop.html
        │       ├── progressBarRound
        │       │   ├── progressBarRound.directive.js
        │       │   └── progressBarRound.html
        │       ├── toastrLibConfig.js
        │       └── widgets
        │       │   ├── widgets.directive.js
        │       │   └── widgets.html
        │   ├── directives
        │       ├── animatedChange.js
        │       ├── autoExpand.js
        │       ├── autoFocus.js
        │       ├── includeWithScope.js
        │       ├── ionSlider.js
        │       ├── ngFileSelect.js
        │       ├── scrollPosition.js
        │       ├── trackWidth.js
        │       └── zoomIn.js
        │   ├── filters
        │       ├── image
        │       │   ├── appImage.js
        │       │   ├── kameleonImg.js
        │       │   └── profilePicture.js
        │       └── text
        │       │   └── removeHtml.js
        │   ├── inputs
        │       ├── baSwitcher
        │       │   ├── baSwitcher.html
        │       │   └── baSwitcher.js
        │       └── inputs.module.js
        │   ├── services
        │       ├── baProgressModal.js
        │       ├── baUtil.js
        │       ├── fileReader.js
        │       ├── preloader.js
        │       └── stopableInterval.js
        │   ├── theme.config.js
        │   ├── theme.configProvider.js
        │   ├── theme.constants.js
        │   ├── theme.module.js
        │   ├── theme.run.js
        │   └── theme.service.js
    ├── assets
        ├── fonts
        │   ├── socicon.eot
        │   ├── socicon.svg
        │   ├── socicon.ttf
        │   ├── socicon.woff
        │   └── socicon.woff2
        ├── img
        │   ├── app
        │   │   ├── browsers
        │   │   │   ├── chrome.svg
        │   │   │   ├── firefox.svg
        │   │   │   ├── ie.svg
        │   │   │   ├── opera.svg
        │   │   │   └── safari.svg
        │   │   ├── feed
        │   │   │   ├── genom.png
        │   │   │   ├── my-little-kitten.png
        │   │   │   ├── new-york-location.png
        │   │   │   └── vader-and-me-preview.png
        │   │   ├── my-app-logo.png
        │   │   ├── profile
        │   │   │   ├── Alexander.png
        │   │   │   ├── Andrey.png
        │   │   │   ├── Kostya.png
        │   │   │   ├── Nasta.png
        │   │   │   ├── Nick.png
        │   │   │   └── Vlad.png
        │   │   ├── skin-thumbnails
        │   │   │   ├── 01_default.jpg
        │   │   │   ├── 02_transparent.jpg
        │   │   │   ├── 03_blue.jpg
        │   │   │   ├── 04_peachy.jpg
        │   │   │   ├── 05_material.jpg
        │   │   │   └── 06_transblue.jpg
        │   │   ├── todo
        │   │   │   └── check-icon.png
        │   │   └── typography
        │   │   │   ├── banner.png
        │   │   │   ├── typo01.png
        │   │   │   ├── typo03.png
        │   │   │   ├── typo04.png
        │   │   │   ├── typo05.png
        │   │   │   ├── typo06.png
        │   │   │   └── typo07.png
        │   ├── arrow-green-up.svg
        │   ├── arrow-red-down.svg
        │   ├── blue-bg.jpg
        │   ├── blur-bg-blurred.jpg
        │   ├── blur-bg-mobile.jpg
        │   ├── blur-bg.jpg
        │   ├── chernika.png
        │   ├── comments.svg
        │   ├── face.svg
        │   ├── favicon-16x16.png
        │   ├── favicon-32x32.png
        │   ├── favicon-96x96.png
        │   ├── green-bg.jpg
        │   ├── money.svg
        │   ├── peachy-bg.jpg
        │   ├── person.svg
        │   ├── refresh.svg
        │   ├── shopping-cart.svg
        │   ├── theme
        │   │   ├── icon
        │   │   │   ├── feed
        │   │   │   │   ├── feed-image.svg
        │   │   │   │   ├── feed-location.svg
        │   │   │   │   └── feed-video.svg
        │   │   │   └── kameleon
        │   │   │   │   ├── Alien.svg
        │   │   │   │   ├── Analytics.svg
        │   │   │   │   ├── Apartment.svg
        │   │   │   │   ├── Batman.svg
        │   │   │   │   ├── Beach.svg
        │   │   │   │   ├── Bell.svg
        │   │   │   │   ├── Bonsai.svg
        │   │   │   │   ├── Boss-3.svg
        │   │   │   │   ├── Boss-5.svg
        │   │   │   │   ├── Burglar.svg
        │   │   │   │   ├── Bus.svg
        │   │   │   │   ├── Candy.svg
        │   │   │   │   ├── Checklist.svg
        │   │   │   │   ├── Cheese.svg
        │   │   │   │   ├── Chessboard.svg
        │   │   │   │   ├── Clipboard-Plan.svg
        │   │   │   │   ├── Desert.svg
        │   │   │   │   ├── Dna.svg
        │   │   │   │   ├── Euro-Coin.svg
        │   │   │   │   ├── Food-Dome.svg
        │   │   │   │   ├── Hacker.svg
        │   │   │   │   ├── Images.svg
        │   │   │   │   ├── Key.svg
        │   │   │   │   ├── Laptop-Signal.svg
        │   │   │   │   ├── Locked-Cloud.svg
        │   │   │   │   ├── Love-Letter.svg
        │   │   │   │   ├── Magician.svg
        │   │   │   │   ├── Makeup.svg
        │   │   │   │   ├── Medal-2.svg
        │   │   │   │   ├── Microscope.svg
        │   │   │   │   ├── Mind-Map-Paper.svg
        │   │   │   │   ├── Money-Increase.svg
        │   │   │   │   ├── Music-Equalizer.svg
        │   │   │   │   ├── Ninja.svg
        │   │   │   │   ├── Online-Shopping.svg
        │   │   │   │   ├── Pantone.svg
        │   │   │   │   ├── Party-Poppers.svg
        │   │   │   │   ├── Phone-Booth.svg
        │   │   │   │   ├── Programming.svg
        │   │   │   │   ├── Santa.svg
        │   │   │   │   ├── Shop.svg
        │   │   │   │   ├── Street-View.svg
        │   │   │   │   ├── Student-3.svg
        │   │   │   │   ├── Surfer.svg
        │   │   │   │   ├── Surgeon.svg
        │   │   │   │   ├── Tower.svg
        │   │   │   │   └── Vector.svg
        │   │   ├── no-photo.png
        │   │   └── palette.png
        │   └── transblue-bg.jpg
        └── pictures
        │   ├── pic-andrey.png
        │   ├── pic-kostia.png
        │   ├── pic-nasta.png
        │   ├── pic-profile.png
        │   ├── pic-vova.png
        │   └── tinder-logo.jpg
    ├── auth.html
    ├── index.html
    ├── reg.html
    └── sass
        ├── 404.scss
        ├── README.md
        ├── app
            ├── _alerts.scss
            ├── _buttonsPage.scss
            ├── _chartsPage.scss
            ├── _dashboard.scss
            ├── _email.scss
            ├── _form.scss
            ├── _grid.scss
            ├── _iconsPage.scss
            ├── _modalNotifications.scss
            ├── _modals.scss
            ├── _notifications.scss
            ├── _profile.scss
            ├── _slider.scss
            ├── _table.scss
            ├── _tabsPage.scss
            ├── _tplSkinPanel.scss
            ├── _tree.scss
            ├── _typography.scss
            └── maps
            │   ├── _google-maps.scss
            │   ├── _leaflet.scss
            │   ├── _map-bubbles.scss
            │   └── _map-lines.scss
        ├── auth.scss
        ├── common.scss
        ├── main.scss
        └── theme
            ├── _blur-admin-theme.scss
            ├── _buttons.scss
            ├── _datePicker.scss
            ├── _icons.scss
            ├── _layout.scss
            ├── _preloader.scss
            ├── _socicon.scss
            ├── _table.scss
            ├── _tree.scss
            ├── bootstrap-overrides
                ├── _panel.scss
                └── _tabs.scss
            ├── components
                ├── _accordion.scss
                ├── _baWizard.scss
                ├── _backTop.scss
                ├── _contentTop.scss
                ├── _msgCenter.scss
                ├── _pageTop.scss
                ├── _progressRound.scss
                ├── _sidebar.scss
                └── _widgets.scss
            ├── conf
                ├── _mixins.scss
                ├── _variables.scss
                └── colorScheme
                │   ├── _blur.scss
                │   └── _mint.scss
            └── dashboard
                ├── _amChart.scss
                ├── _amChartMap.scss
                ├── _blurFeed.scss
                ├── _calendar.scss
                ├── _pieCharts.scss
                ├── _popularApp.scss
                ├── _timeline.scss
                ├── _todo.scss
                ├── _trafficChart.scss
                └── _weather.scss


/.gitignore:
--------------------------------------------------------------------------------
 1 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion
 2 | 
 3 | *.iml
 4 | 
 5 | ## Directory-based project format:
 6 | .idea/
 7 | # if you remove the above rule, at least ignore the following:
 8 | 
 9 | # User-specific stuff:
10 | # .idea/workspace.xml
11 | # .idea/tasks.xml
12 | # .idea/dictionaries
13 | 
14 | # Sensitive or high-churn files:
15 | # .idea/dataSources.ids
16 | # .idea/dataSources.xml
17 | # .idea/sqlDataSources.xml
18 | # .idea/dynamic.xml
19 | # .idea/uiDesigner.xml
20 | 
21 | # Gradle:
22 | # .idea/gradle.xml
23 | # .idea/libraries
24 | 
25 | # Mongo Explorer plugin:
26 | # .idea/mongoSettings.xml
27 | 
28 | ## File-based project format:
29 | *.ipr
30 | *.iws
31 | 
32 | ## Plugin-specific files:
33 | 
34 | # IntelliJ
35 | /out/
36 | 
37 | # mpeltonen/sbt-idea plugin
38 | .idea_modules/
39 | 
40 | # JIRA plugin
41 | atlassian-ide-plugin.xml
42 | 
43 | # Crashlytics plugin (for Android Studio and IntelliJ)
44 | com_crashlytics_export_strings.xml
45 | crashlytics.properties
46 | crashlytics-build.properties
47 | 
48 | node_modules
49 | gulp.1
50 | build
51 | .tmp
52 | 
53 | /src/release
54 | /release
55 | /bower_components
56 | 


--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
 1 | sudo: false
 2 | 
 3 | language: node_js
 4 | 
 5 | node_js:
 6 |   - "8"
 7 | 
 8 | addons:
 9 |   apt:
10 |     sources:
11 |       - ubuntu-toolchain-r-test
12 |     packages:
13 |       - g++-4.8
14 | 
15 | install:
16 |   - npm config set spin false
17 |   - npm install -g gulp
18 | 
19 |   - npm install
20 | 
21 | script:
22 |   - gulp build
23 | 


--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
 1 | v1.3.1 - 15 Dec 2016
 2 | --------------------
 3 | - Fix gulp build
 4 | - Update dependencies
 5 | - Fix datepicker position
 6 | 
 7 | v1.3.0 - 10 Dec 2016
 8 | --------------------
 9 | - Update bower dependencies
10 | - Add progress dialog component
11 | - Add datepicker component
12 | - Scroll up pages upon navigation
13 | - CSS-only switchers
14 | - Use ui-select instead of bootstrap-select
15 | 
16 | v1.2.0 - 16 May 2016
17 | --------------------
18 | - Refactoring to improve customization, fixes #22, #26
19 | - Add documentation
20 | - Sidebar refactoring, fixes #14, #15, #27
21 | - Bootstrap select refactoring #18
22 | 
23 | v1.1.1 - 11 Apr 2016
24 | --------------------
25 | - Improved scrolling performance, fixes #2
26 | - Set 0.9.5 version for the Chartist library by default, fixes #5
27 | 


--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
 1 | The MIT License (MIT)
 2 | Copyright (c) 2016 Akvemus GSC
 3 | 
 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
 5 | 
 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 7 | 
 8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 9 | Status API Training Shop Blog About
10 | © 2016 GitHub, Inc. Terms Privacy Security Contact Help
11 | 


--------------------------------------------------------------------------------
/docs/config.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "baseUrl": "/blur-admin/",
 3 |   "locals": {
 4 |     "url": "http://localhost:8080",
 5 |     "name": "The Wintersmith's blog",
 6 |     "owner": "Someone",
 7 |     "description": "Ramblings of an immor(t)al demigod"
 8 |   },
 9 |   "plugins": [
10 |     "./plugins/paginator.coffee"
11 |   ],
12 |   "require": {
13 |     "moment": "moment",
14 |     "_": "underscore",
15 |     "typogr": "typogr"
16 |   },
17 |   "jade": {
18 |     "pretty": true
19 |   },
20 |   "markdown": {
21 |     "smartLists": true,
22 |     "smartypants": true
23 |   },
24 |   "paginator": {
25 |     "perPage": 3,
26 |     "groupSort": {
27 |       "Quick Start": 1000,
28 |       "Customization": 900,
29 |       "Components": 800,
30 |       "Other": 100
31 |     }
32 |   }
33 | }
34 | 


--------------------------------------------------------------------------------
/docs/contents/articles/011-changing-color-scheme/new-color-scheme.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/docs/contents/articles/011-changing-color-scheme/new-color-scheme.jpg


--------------------------------------------------------------------------------
/docs/contents/articles/091-downloads/index.md:
--------------------------------------------------------------------------------
 1 | ---
 2 | title: Downloads
 3 | author: vl
 4 | sort: 900
 5 | group: Other
 6 | template: article.jade
 7 | ---
 8 | 
 9 | If you have problems installing node.js and/or other tools to build and run BlurAdmin on your machine and you just want to download html/js/css files, you can find links for download on this page.
10 | 
11 | Development (non-compressed) files can be found in `{ARCHIVE_ROOT}/blur-admin-{VERSION}/dev-release` directory. Compressed files are in `{ARCHIVE_ROOT}/blur-admin-{VERSION}/release` directory.
12 | Then you can just open `index.html` to view your local version.
13 | 
14 | **Please note**: *As chrome doesn't support AJAX requests, when you open HTML file via **file** protocol, you might need to disable web security to have your template running.*
15 | 
16 | Sample command on OS X:
17 | 
18 | ```bash
19 | open -a Google\ Chrome --args --disable-web-security --user-data-dir=~/ChromeDevSession/
20 | ```
21 | 
22 | Sample command on Linux:
23 | 
24 | ```bash
25 | google-chrome --user-data-dir="~/chrome-dev-session" --disable-web-security
26 | ```
27 | 
28 | Sample command on Windows:
29 | 
30 | ```bash
31 | start chrome --user-data-dir="C:/Chrome dev session" --disable-web-security
32 | ```
33 | 
34 | ## Links for downloads
35 | 
36 | [BlurAdmin 1.3.1](/blur-admin/downloads/blur-admin-1.3.1.zip)
37 | [BlurAdmin 1.2.0](/blur-admin/downloads/blur-admin-1.2.0.zip)
38 | 
39 | 


--------------------------------------------------------------------------------
/docs/contents/images/blur-admin-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/docs/contents/images/blur-admin-logo.png


--------------------------------------------------------------------------------
/docs/contents/images/blur-preview-mint.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/docs/contents/images/blur-preview-mint.jpg


--------------------------------------------------------------------------------
/docs/contents/images/blur-preview.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/docs/contents/images/blur-preview.jpg


--------------------------------------------------------------------------------
/docs/contents/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/docs/contents/images/favicon.png


--------------------------------------------------------------------------------
/docs/contents/index.json:
--------------------------------------------------------------------------------
1 | {
2 |   "template": "index.jade",
3 |   "activeHome": true
4 | }
5 | 


--------------------------------------------------------------------------------
/docs/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "dependencies": {
3 |     "moment": "2.3.x",
4 |     "underscore": "1.4.x",
5 |     "typogr": "0.5.x"
6 |   },
7 |   "private": "true"
8 | }
9 | 


--------------------------------------------------------------------------------
/docs/templates/article.jade:
--------------------------------------------------------------------------------
 1 | 
 2 | extends layout
 3 | 
 4 | block title
 5 |   | BlurAdmin documentation - #{page.title]
 6 | 
 7 | block content
 8 |   section.content.wrap.documentationContent
 9 |     div.nav-docs
10 |       each group in groupedArticles
11 |         div.nav-docs.section
12 |           h3=group.groupName
13 |           ul
14 |             each article in group.items
15 |               li
16 |                 a(href=article.url)(class= locals.page === article ? 'active': '')= article.title
17 |     div.inner-content
18 |       h1=locals.page.title
19 |       div.subHeader
20 |       != typogr(page.html).typogrify()
21 | 
22 | 


--------------------------------------------------------------------------------
/gulp/conf.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  *  This file contains the variables used in other gulp files
 3 |  *  which defines tasks
 4 |  *  By design, we only put there very generic config values
 5 |  *  which are used in several places to keep good readability
 6 |  *  of the tasks
 7 |  */
 8 | 
 9 | var gutil = require('gulp-util');
10 | 
11 | /**
12 |  *  The main paths of your project handle these with care
13 |  */
14 | exports.paths = {
15 |   src: 'src',
16 |   dist: 'release',
17 |   devDist: 'dev-release',
18 |   tmp: '.tmp',
19 |   e2e: 'e2e'
20 | };
21 | 
22 | /**
23 |  *  Wiredep is the lib which inject bower dependencies in your project
24 |  *  Mainly used to inject script tags in the index.html but also used
25 |  *  to inject css preprocessor deps and js files in karma
26 |  */
27 | exports.wiredep = {
28 |   exclude: [/\/bootstrap\.js$/, /\/bootstrap-sass\/.*\.js/, /\/require\.js/],
29 |   directory: 'bower_components'
30 | };
31 | 
32 | /**
33 |  *  Common implementation for an error handler of a Gulp plugin
34 |  */
35 | exports.errorHandler = function(title) {
36 |   'use strict';
37 | 
38 |   return function(err) {
39 |     gutil.log(gutil.colors.red('[' + title + ']'), err.toString());
40 |     this.emit('end');
41 |   };
42 | };
43 | 


--------------------------------------------------------------------------------
/gulp/docs.js:
--------------------------------------------------------------------------------
 1 | 'use strict';
 2 | 
 3 | var gulp = require('gulp');
 4 | 
 5 | var $ = require('gulp-load-plugins')();
 6 | 
 7 | gulp.task('wintersmith-generate', $.shell.task([
 8 |   'wintersmith build'
 9 | ], { cwd: 'docs' }));
10 | 
11 | gulp.task('deploy-docs', ['wintersmith-generate'], function() {
12 |   return gulp.src('./docs/build/**/*')
13 |       .pipe($.ghPages());
14 | });


--------------------------------------------------------------------------------
/gulp/images.js:
--------------------------------------------------------------------------------
 1 | 'use strict';
 2 | 
 3 | var path = require('path');
 4 | var gulp = require('gulp');
 5 | var conf = require('./conf');
 6 | 
 7 | gulp.task('copyVendorImages', function () {
 8 |   return gulp
 9 |     .src([
10 |       path.join(conf.wiredep.directory, '**/ammap/dist/ammap/images/**/*'),
11 |       path.join(conf.wiredep.directory, '**/amcharts/dist/amcharts/images/**/*'),
12 |       path.join(conf.wiredep.directory, '**/ionrangeslider/img/**/*'),
13 |       path.join(conf.wiredep.directory, '**/jstree/dist/themes/**/*'),
14 |       path.join(conf.wiredep.directory, '**/leaflet/dist/images/**/*')
15 |     ])
16 |     .pipe(gulp.dest(path.join(conf.paths.tmp, 'serve', '/assets/img/theme/vendor')));
17 | });
18 | 
19 | 


--------------------------------------------------------------------------------
/gulp/marketplace.js:
--------------------------------------------------------------------------------
 1 | 'use strict';
 2 | 
 3 | var path = require('path');
 4 | var gulp = require('gulp');
 5 | var zip = require('gulp-zip');
 6 | var prompt = require('gulp-prompt');
 7 | var rename = require('gulp-rename');
 8 | 
 9 | gulp.task('marketplace-release', ['build', 'dev-release'], function () {
10 |   return gulp.src('')
11 |     .pipe(prompt.prompt({
12 |       type: 'input',
13 |       name: 'version',
14 |       message: 'Please enter release version (x.x.x)'
15 |     }, function (res) {
16 |       var nameAndVersion = 'blur-admin-' + res.version;
17 |       return gulp
18 |         .src(['src/**', 'release/**', 'dev-release/**', 'gulp/**', 'bower.json', 'gulpfile.js', 'package.json', 'README.md', '.gitignore'], {base: "."})
19 |         .pipe(rename(function (path) {
20 |           path.dirname = nameAndVersion + '/' + path.dirname;
21 |         }))
22 |         .pipe(zip(nameAndVersion + '.zip'))
23 |         .pipe(gulp.dest('.'));
24 |     }));
25 | 
26 | });


--------------------------------------------------------------------------------
/gulp/scripts.js:
--------------------------------------------------------------------------------
 1 | 'use strict';
 2 | 
 3 | var path = require('path');
 4 | var gulp = require('gulp');
 5 | var conf = require('./conf');
 6 | 
 7 | var browserSync = require('browser-sync');
 8 | 
 9 | var $ = require('gulp-load-plugins')();
10 | 
11 | 
12 | gulp.task('scripts-reload', function() {
13 |   return buildScripts()
14 |     .pipe(browserSync.stream());
15 | });
16 | 
17 | gulp.task('scripts', function() {
18 |   return buildScripts();
19 | });
20 | 
21 | function buildScripts() {
22 |   return gulp.src(path.join(conf.paths.src, '/app/**/*.js'))
23 |     .pipe($.eslint())
24 |     .pipe($.eslint.format())
25 |     .pipe($.size())
26 | };
27 | 


--------------------------------------------------------------------------------
/gulp/watch.js:
--------------------------------------------------------------------------------
 1 | 'use strict';
 2 | 
 3 | var path = require('path');
 4 | var gulp = require('gulp');
 5 | var conf = require('./conf');
 6 | 
 7 | var browserSync = require('browser-sync');
 8 | 
 9 | function isOnlyChange(event) {
10 |   return event.type === 'changed';
11 | }
12 | 
13 | gulp.task('watch', ['inject'], function () {
14 | 
15 |   gulp.watch([path.join(conf.paths.src, '/*.html'), 'bower.json'], ['inject-reload']);
16 | 
17 |   gulp.watch([
18 |     path.join(conf.paths.src, '/sass/**/*.css'),
19 |     path.join(conf.paths.src, '/sass/**/*.scss')
20 |   ], function(event) {
21 |     if(isOnlyChange(event)) {
22 |       gulp.start('styles-reload');
23 |     } else {
24 |       gulp.start('inject-reload');
25 |     }
26 |   });
27 | 
28 |   gulp.watch(path.join(conf.paths.src, '/app/**/*.js'), function(event) {
29 |     if(isOnlyChange(event)) {
30 |       gulp.start('scripts-reload');
31 |     } else {
32 |       gulp.start('inject-reload');
33 |     }
34 |   });
35 | 
36 |   gulp.watch(path.join(conf.paths.src, '/app/**/*.html'), function(event) {
37 |     browserSync.reload(event.path);
38 |   });
39 | });
40 | 


--------------------------------------------------------------------------------
/gulpfile.js:
--------------------------------------------------------------------------------
 1 | 'use strict';
 2 | 
 3 | var gulp = require('gulp');
 4 | var wrench = require('wrench');
 5 | 
 6 | /**
 7 |  *  This will load all js or coffee files in the gulp directory
 8 |  *  in order to load all gulp tasks
 9 |  */
10 | wrench.readdirSyncRecursive('./gulp').filter(function(file) {
11 |   return (/\.(js|coffee)$/i).test(file);
12 | }).map(function(file) {
13 |   require('./gulp/' + file);
14 | });
15 | 
16 | 
17 | /**
18 |  *  Default task clean temporaries directories and launch the
19 |  *  main optimization build task
20 |  */
21 | gulp.task('default', ['clean'], function () {
22 |   gulp.start('build');
23 | });
24 | 


--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "name": "blur_admin",
 3 |   "version": "1.3.1",
 4 |   "devDependencies": {
 5 |     "bower": "~1.8.4",
 6 |     "browser-sync": "~2.18.2",
 7 |     "browser-sync-spa": "~1.0.3",
 8 |     "chalk": "~1.1.1",
 9 |     "del": "~2.2.2",
10 |     "eslint-plugin-angular": "~0.12.0",
11 |     "estraverse": "~4.2.0",
12 |     "gulp": "~3.9.0",
13 |     "gulp-angular-filesort": "~1.1.1",
14 |     "gulp-angular-templatecache": "~2.0.0",
15 |     "gulp-autoprefixer": "~3.1.1",
16 |     "gulp-eslint": "~1.0.0",
17 |     "gulp-filter": "~4.0.0",
18 |     "gulp-flatten": "~0.3.1",
19 |     "gulp-gh-pages": "^0.5.4",
20 |     "gulp-inject": "~4.1.0",
21 |     "gulp-load-plugins": "~1.4.0",
22 |     "gulp-minify-css": "~1.2.1",
23 |     "gulp-minify-html": "~1.0.4",
24 |     "gulp-ng-annotate": "~2.0.0",
25 |     "gulp-prompt": "^0.2.0",
26 |     "gulp-protractor": "~3.0.0",
27 |     "gulp-rename": "^1.2.2",
28 |     "gulp-replace": "~0.5.4",
29 |     "gulp-rev": "~7.1.2",
30 |     "gulp-rev-replace": "~0.4.2",
31 |     "gulp-sass": "^4.0.1",
32 |     "gulp-shell": "^0.5.2",
33 |     "gulp-size": "~2.1.0",
34 |     "gulp-sourcemaps": "~1.6.0",
35 |     "gulp-uglify": "~2.0.0",
36 |     "gulp-useref": "~1.3.0",
37 |     "gulp-util": "~3.0.6",
38 |     "gulp-zip": "^3.0.2",
39 |     "http-proxy-middleware": "~0.17.2",
40 |     "lodash": "~4.17.2",
41 |     "main-bower-files": "~2.13.1",
42 |     "uglify-save-license": "~0.4.1",
43 |     "wiredep": "~4.0.0",
44 |     "wrench": "~1.5.8"
45 |   },
46 |   "scripts": {
47 |     "postinstall": "bower install"
48 |   }
49 | }
50 | 


--------------------------------------------------------------------------------
/preview.html:
--------------------------------------------------------------------------------
 1 | <p>
 2 |   <a href="http://akveo.com/blur-admin/" rel="nofollow">
 3 |     <img src="http://akveo.com/admin-images/blur-admin/promo_blur.jpg">
 4 |   </a>
 5 | </p>
 6 | 
 7 | <p>
 8 |   <h2>Description</h2>
 9 |   Latest and the most trending web design approaches were brought together in Blur admin to deliver you the best experience ever. Each color, character and image was carefully selected to make you love what you see.<br />
10 |   <br />
11 |   Extremely beautiful. Elegant. Charming. Enjoy it.<br />
12 |   <br />
13 |   Love,<br />
14 |   Akveo team
15 | </p>
16 | 
17 | <p>
18 |   <h2>Features</h2>
19 | <ul>
20 |   <li>Responsive layout</li>
21 |   <li>High resolution</li>
22 |   <li>Bootstrap CSS Framework</li>
23 |   <li>Sass</li>
24 |   <li>Gulp build</li>
25 |   <li>AngularJS</li>
26 |   <li>Jquery</li>
27 |   <li>Jquery ui</li>
28 |   <li>WHAT YOU GUYS CONSIDER SHOULD BE HERE? PAGES AND STUFF OR ONLY FEATURES MENTIONED ABOVE?</li>
29 | 
30 | </ul>
31 | </p>
32 | 
33 | 
34 | 


--------------------------------------------------------------------------------
/src/404.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html>
 2 | <html lang="en">
 3 | <head>
 4 |   <meta charset="utf-8">
 5 |   <meta http-equiv="X-UA-Compatible" content="IE=edge">
 6 |   <meta name="viewport" content="width=device-width, initial-scale=1">
 7 |   <title>Blur Admin</title>
 8 | 
 9 |   <link href='https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900italic,900&subset=latin,greek,greek-ext,vietnamese,cyrillic-ext,latin-ext,cyrillic' rel='stylesheet' type='text/css'>
10 | 
11 |   <link rel="icon" type="image/png" sizes="16x16" href="assets/img/favicon-16x16.png">
12 |   <link rel="icon" type="image/png" sizes="32x32" href="assets/img/favicon-32x32.png">
13 |   <link rel="icon" type="image/png" sizes="96x96" href="assets/img/favicon-96x96.png">
14 | 
15 |   <!-- build:css({.tmp/serve,src}) styles/404.css -->
16 |   <!-- inject:css -->
17 |   <!-- css files will be automatically insert here -->
18 |   <!-- endinject -->
19 |   <!-- endbuild -->
20 | </head>
21 | <body>
22 | <div class="page-not-found-modal">
23 |   <h1>404 Error</h1>
24 | 
25 |   <p>Sorry, that page doesn't exist. <a href="/">Go to Home Page.</a></p>
26 | </div>
27 | </body>
28 | </html>


--------------------------------------------------------------------------------
/src/app/app.js:
--------------------------------------------------------------------------------
 1 | 'use strict';
 2 | 
 3 | angular.module('BlurAdmin', [
 4 |   'ngAnimate',
 5 |   'ui.bootstrap',
 6 |   'ui.sortable',
 7 |   'ui.router',
 8 |   'ngTouch',
 9 |   'toastr',
10 |   'smart-table',
11 |   "xeditable",
12 |   'ui.slimscroll',
13 |   'ngJsTree',
14 |   'angular-progress-button-styles',
15 | 
16 |   'BlurAdmin.theme',
17 |   'BlurAdmin.pages'
18 | ]);


--------------------------------------------------------------------------------
/src/app/pages/charts/amCharts/areaChart/areaChart.html:
--------------------------------------------------------------------------------
1 | <div id="areaChart" class="admin-chart" ng-controller="AreaChartCtrl"></div>


--------------------------------------------------------------------------------
/src/app/pages/charts/amCharts/barChart/barChart.html:
--------------------------------------------------------------------------------
1 | <div id="barChart" class="admin-chart" ng-controller="BarChartCtrl"></div>


--------------------------------------------------------------------------------
/src/app/pages/charts/amCharts/combinedChart/combinedChart.html:
--------------------------------------------------------------------------------
1 | <div id="zoomAxisChart" class="admin-chart" ng-controller="combinedChartCtrl"></div>
2 | 


--------------------------------------------------------------------------------
/src/app/pages/charts/amCharts/funnelChart/funnelChart.html:
--------------------------------------------------------------------------------
1 | <div id="funnelChart" class="admin-chart" ng-controller="FunnelChartCtrl"></div>


--------------------------------------------------------------------------------
/src/app/pages/charts/amCharts/ganttChart/ganttChart.html:
--------------------------------------------------------------------------------
1 | <div id="gnattChart" class="admin-chart" ng-controller="ganttChartCtrl"></div>


--------------------------------------------------------------------------------
/src/app/pages/charts/amCharts/lineChart/lineChart.html:
--------------------------------------------------------------------------------
1 | <div id="lineChart" class="admin-chart" ng-controller="LineChartCtrl"></div>


--------------------------------------------------------------------------------
/src/app/pages/charts/amCharts/pieChart/pieChart.html:
--------------------------------------------------------------------------------
1 | <div id="pieChart" class="admin-chart" ng-controller="PieChartCtrl"></div>
2 | 


--------------------------------------------------------------------------------
/src/app/pages/charts/chartJs/chartJs1DCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 12/16/15
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.charts.chartJs')
 9 |     .controller('chartJs1DCtrl', chartJs1DCtrl);
10 | 
11 |   /** @ngInject */
12 |   function chartJs1DCtrl($scope, baConfig) {
13 |     var layoutColors = baConfig.colors;
14 | 
15 |     $scope.labels =["Sleeping", "Designing", "Coding", "Cycling"];
16 |     $scope.data = [20, 40, 5, 35];
17 |     $scope.options = {
18 |       elements: {
19 |         arc: {
20 |           borderWidth: 0
21 |         }
22 |       },
23 |       legend: {
24 |         display: true,
25 |         position: 'bottom',
26 |         labels: {
27 |           fontColor: layoutColors.defaultText
28 |         }
29 |       }
30 |     };
31 | 
32 |     $scope.changeData = function () {
33 |       $scope.data = shuffle($scope.data);
34 |     };
35 | 
36 |     function shuffle(o){
37 |       for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x){}
38 |       return o;
39 |     }
40 |   }
41 | 
42 | })();


--------------------------------------------------------------------------------
/src/app/pages/charts/chartJs/chartJs2DCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 12/16/15
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.charts.chartJs')
 9 |     .controller('chartJs2DCtrl', chartJs2DCtrl);
10 | 
11 |   /** @ngInject */
12 |   function chartJs2DCtrl($scope) {
13 |     $scope.labels =["May", "Jun", "Jul", "Aug", "Sep"];
14 |     $scope.data = [
15 |       [65, 59, 90, 81, 56],
16 |       [28, 48, 40, 19, 88]
17 |     ];
18 |     $scope.series = ['Product A', 'Product B'];
19 | 
20 | 
21 |     $scope.changeData = function () {
22 |       $scope.data[0] = shuffle($scope.data[0]);
23 |       $scope.data[1] = shuffle($scope.data[1]);
24 |     };
25 | 
26 |     function shuffle(o){
27 |       for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x){}
28 |       return o;
29 |     }
30 |   }
31 | 
32 | })();


--------------------------------------------------------------------------------
/src/app/pages/charts/chartJs/chartJsWaveCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 12/16/15
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.charts.chartJs')
 9 |     .controller('chartJsWaveCtrl', chartJsWaveCtrl);
10 | 
11 |   /** @ngInject */
12 |   function chartJsWaveCtrl($scope, $interval, stopableInterval) {
13 |     $scope.labels =["Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
14 |     $scope.data = [1, 9, 3, 4, 5, 6, 7, 8, 2].map(function(e){
15 |       return Math.sin(e) * 25 +25;
16 |     });
17 | 
18 |     stopableInterval.start($interval, function(){
19 |       var tempArray = [];
20 |       var lastElement = $scope.data[$scope.data.length-1];
21 |       for(var i = $scope.data.length-1; i > 0; i--){
22 |        tempArray[i] = $scope.data[i-1];
23 |       }
24 |       tempArray[0] = lastElement;
25 |       $scope.data = tempArray;
26 |     }, 400)
27 |   }
28 | 
29 | })();


--------------------------------------------------------------------------------
/src/app/pages/charts/chartist/chartist.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 12/17/15
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.charts.chartist', [])
 9 |     .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider) {
13 |     $stateProvider
14 |         .state('charts.chartist', {
15 |           url: '/chartist',
16 |           templateUrl: 'app/pages/charts/chartist/chartist.html',
17 |           title: 'Chartist',
18 |           sidebarMeta: {
19 |             order: 100,
20 |           },
21 |         });
22 |   }
23 | 
24 | })();


--------------------------------------------------------------------------------
/src/app/pages/charts/charts.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.charts', [
 9 |       'BlurAdmin.pages.charts.amCharts',
10 |       'BlurAdmin.pages.charts.chartJs',
11 |       'BlurAdmin.pages.charts.chartist',
12 |       'BlurAdmin.pages.charts.morris'
13 |   ])
14 |       .config(routeConfig);
15 | 
16 |   /** @ngInject */
17 |   function routeConfig($stateProvider) {
18 |     $stateProvider
19 |         .state('charts', {
20 |           url: '/charts',
21 |           abstract: true,
22 |           template: '<div ui-view  autoscroll="true" autoscroll-body-top></div>',
23 |           title: 'Charts',
24 |           sidebarMeta: {
25 |             icon: 'ion-stats-bars',
26 |             order: 150,
27 |           },
28 |         });
29 |   }
30 | 
31 | })();
32 | 


--------------------------------------------------------------------------------
/src/app/pages/charts/morris/morris.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 12/18/15
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.charts.morris', [])
 9 |     .config(routeConfig).config(function(baConfigProvider){
10 |       var layoutColors = baConfigProvider.colors;
11 |       Morris.Donut.prototype.defaults.backgroundColor = 'transparent';
12 |       Morris.Donut.prototype.defaults.labelColor = layoutColors.defaultText;
13 |       Morris.Grid.prototype.gridDefaults.gridLineColor = layoutColors.borderDark;
14 |       Morris.Grid.prototype.gridDefaults.gridTextColor = layoutColors.defaultText;
15 |     });
16 | 
17 |   /** @ngInject */
18 |   function routeConfig($stateProvider) {
19 |     $stateProvider
20 |         .state('charts.morris', {
21 |           url: '/morris',
22 |           templateUrl: 'app/pages/charts/morris/morris.html',
23 |           title: 'Morris',
24 |           sidebarMeta: {
25 |             order: 300,
26 |           }
27 |         });
28 |   }
29 | 
30 | })();


--------------------------------------------------------------------------------
/src/app/pages/components/components.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author k.danovsky
 3 |  * created on 15.01.2016
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.components', [
 9 |     'BlurAdmin.pages.components.mail',
10 |     'BlurAdmin.pages.components.timeline',
11 |     'BlurAdmin.pages.components.tree',
12 |   ])
13 |       .config(routeConfig);
14 | 
15 |   /** @ngInject */
16 |   function routeConfig($stateProvider) {
17 |     $stateProvider
18 |         .state('components', {
19 |           url: '/components',
20 |           template : '<ui-view  autoscroll="true" autoscroll-body-top></ui-view>',
21 |           abstract: true,
22 |           title: 'Components',
23 |           sidebarMeta: {
24 |             icon: 'ion-gear-a',
25 |             order: 100,
26 |           },
27 |         });
28 |   }
29 | 
30 | })();
31 | 


--------------------------------------------------------------------------------
/src/app/pages/components/mail/MailTabCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.components.mail')
 9 |       .controller('MailTabCtrl', MailTabCtrl);
10 | 
11 |   /** @ngInject */
12 |   function MailTabCtrl(composeModal, mailMessages) {
13 | 
14 |     var vm = this;
15 |     vm.navigationCollapsed = true;
16 |     vm.showCompose = function(subject, to , text){
17 |       composeModal.open({
18 |         subject : subject,
19 |         to: to,
20 |         text: text
21 |       })
22 |     };
23 | 
24 |     vm.tabs = mailMessages.getTabs();
25 |   }
26 | 
27 | })();
28 | 


--------------------------------------------------------------------------------
/src/app/pages/components/mail/composeBox/compose.html:
--------------------------------------------------------------------------------
 1 | <div class="compose-header">
 2 |   <span>
 3 |     New message
 4 |   </span>
 5 |   <span class="header-controls">
 6 |     <i class="ion-minus-round"></i>
 7 |     <i class="ion-arrow-resize"></i>
 8 |     <i ng-click="$dismiss()" class="ion-close-round"></i>
 9 |   </span>
10 | </div>
11 | <div>
12 |   <input type="text" class="form-control compose-input default-color"  placeholder="To" ng-model="boxCtrl.to">
13 |   <input type="text" class="form-control compose-input default-color"  placeholder="Subject" ng-model="boxCtrl.subject">
14 |   <div class="compose-container">
15 |     <text-angular-toolbar ta-toolbar-class="toolbarMain" name="toolbarMain" ta-toolbar="[['h1','h2','h3','bold','italics', 'underline', 'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull']]"></text-angular-toolbar>
16 |     <text-angular name="htmlcontent" ta-target-toolbars='toolbarMain,toolbarFooter' ng-model="boxCtrl.text"></text-angular>
17 |   </div>
18 | </div>
19 | <div class="compose-footer clearfix">
20 |   <button type="button" ng-click="$dismiss()" class="btn btn-send">Send</button>
21 |   <text-angular-toolbar ta-toolbar-class="toolbarFooter" name="toolbarFooter" ta-toolbar="[['insertLink', 'insertImage', 'html', 'quote','insertVideo']]"></text-angular-toolbar>
22 |   <div class="footer-controls">
23 |     <i class="footer-control-first compose-footer-icon ion-arrow-down-b"></i>
24 |     <i ng-click="$dismiss()" class="compose-footer-icon ion-android-delete"></i>
25 |   </div>
26 | </div>


--------------------------------------------------------------------------------
/src/app/pages/components/mail/composeBox/composeBoxCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 24/12/15
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.components.mail')
 9 |     .controller('composeBoxCtrl', composeBoxCtrl);
10 | 
11 |   /** @ngInject */
12 |   function composeBoxCtrl(subject, to, text) {
13 |     var vm = this;
14 |     vm.subject = subject;
15 |     vm.to = to;
16 |     vm.text = text;
17 |   }
18 | })();


--------------------------------------------------------------------------------
/src/app/pages/components/mail/composeBox/composeModal.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 12/24/15
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.components.mail')
 9 |     .service('composeModal', composeModal);
10 | 
11 |   /** @ngInject */
12 |   function composeModal($uibModal) {
13 |       this.open = function(options){
14 |         return $uibModal.open({
15 |           animation: false,
16 |           templateUrl: 'app/pages/components/mail/composeBox/compose.html',
17 |           controller: 'composeBoxCtrl',
18 |           controllerAs: 'boxCtrl',
19 |           size: 'compose',
20 |           resolve: {
21 |             subject: function () {
22 |               return options.subject;
23 |             },
24 |             to: function () {
25 |               return options.to;
26 |             },
27 |             text: function () {
28 |               return options.text;
29 |             }
30 |           }
31 |         });
32 |       }
33 | 
34 |   }
35 | 
36 | })();


--------------------------------------------------------------------------------
/src/app/pages/components/mail/detail/MailDetailCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 28.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.components.mail')
 9 |     .controller('MailDetailCtrl', MailDetailCtrl);
10 | 
11 |   /** @ngInject */
12 |   function MailDetailCtrl($stateParams, mailMessages) {
13 |     var vm = this;
14 |     vm.mail = mailMessages.getMessageById($stateParams.id);
15 |     vm.label = $stateParams.label;
16 |   }
17 | 
18 | })();
19 | 


--------------------------------------------------------------------------------
/src/app/pages/components/mail/list/MailListCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 28.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.components.mail')
 9 |     .controller('MailListCtrl', MailListCtrl);
10 | 
11 |   /** @ngInject */
12 |   function MailListCtrl($stateParams,  mailMessages) {
13 |     var vm = this;
14 |     vm.messages = mailMessages.getMessagesByLabel($stateParams.label);
15 |     vm.label = $stateParams.label;
16 |   }
17 | 
18 | })();
19 | 


--------------------------------------------------------------------------------
/src/app/pages/components/mail/mail.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.components.mail', [])
 9 |     .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider,$urlRouterProvider) {
13 |     $stateProvider
14 |         .state('components.mail', {
15 |           url: '/mail',
16 |           abstract: true,
17 |           templateUrl: 'app/pages/components/mail/mail.html',
18 |           controller: "MailTabCtrl",
19 |           controllerAs: "tabCtrl",
20 |           title: 'Mail',
21 |           sidebarMeta: {
22 |             order: 0,
23 |           },
24 |         }).state('components.mail.label', {
25 |           url: '/:label',
26 |           templateUrl: 'app/pages/components/mail/list/mailList.html',
27 |           title: 'Mail',
28 |           controller: "MailListCtrl",
29 |           controllerAs: "listCtrl"
30 |         }).state('components.mail.detail', {
31 |           url: '/:label/:id',
32 |           templateUrl: 'app/pages/components/mail/detail/mailDetail.html',
33 |           title: 'Mail',
34 |           controller: "MailDetailCtrl",
35 |           controllerAs: "detailCtrl"
36 |         });
37 |     $urlRouterProvider.when('/components/mail','/components/mail/inbox');
38 |   }
39 | 
40 | })();
41 | 


--------------------------------------------------------------------------------
/src/app/pages/components/timeline/TimelineCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.components.timeline')
 9 |       .controller('TimelineCtrl', TimelineCtrl);
10 | 
11 |   /** @ngInject */
12 |   function TimelineCtrl() {
13 |     var timelineBlocks = $('.cd-timeline-block'),
14 |         offset = 0.8;
15 | 
16 |     //hide timeline blocks which are outside the viewport
17 |     hideBlocks(timelineBlocks, offset);
18 | 
19 |     //on scolling, show/animate timeline blocks when enter the viewport
20 |     $(window).on('scroll', function () {
21 |       if (!window.requestAnimationFrame) {
22 |         setTimeout(function () {
23 |           showBlocks(timelineBlocks, offset);
24 |         }, 100);
25 |       } else {
26 |         window.requestAnimationFrame(function () {
27 |           showBlocks(timelineBlocks, offset);
28 |         });
29 |       }
30 |     });
31 | 
32 |     function hideBlocks(blocks, offset) {
33 |       blocks.each(function () {
34 |         ( $(this).offset().top > $(window).scrollTop() + $(window).height() * offset ) && $(this).find('.cd-timeline-img, .cd-timeline-content').addClass('is-hidden');
35 |       });
36 |     }
37 | 
38 |     function showBlocks(blocks, offset) {
39 |       blocks.each(function () {
40 |         ( $(this).offset().top <= $(window).scrollTop() + $(window).height() * offset && $(this).find('.cd-timeline-img').hasClass('is-hidden') ) && $(this).find('.cd-timeline-img, .cd-timeline-content').removeClass('is-hidden').addClass('bounce-in');
41 |       });
42 |     }
43 |   }
44 | })();


--------------------------------------------------------------------------------
/src/app/pages/components/timeline/timeline.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 1/12/16
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.components.timeline', [])
 9 |     .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider) {
13 |     $stateProvider
14 |       .state('components.timeline', {
15 |         url: '/timeline',
16 |         templateUrl: 'app/pages/components/timeline/timeline.html',
17 |           title: 'Timeline',
18 |           sidebarMeta: {
19 |             icon: 'ion-ios-pulse',
20 |             order: 100,
21 |           },
22 |       });
23 |   }
24 | })();


--------------------------------------------------------------------------------
/src/app/pages/components/tree/tree.html:
--------------------------------------------------------------------------------
 1 | <div class="row" ng-controller="treeCtrl">
 2 |   <div class="col-md-6">
 3 |     <div ba-panel ba-panel-title="Basic Action" ba-panel-class="with-scroll tree-panel">
 4 |       <div class="row">
 5 |         <div class="col-sm-4">
 6 |           <div class="control-side text-center">
 7 |             <div>
 8 |               <button class="btn btn-primary" ng-click="addNewNode()">Add</button>
 9 |             </div>
10 |             <div>
11 |               <button class="btn btn-primary" ng-click="collapse()">Collapse All</button>
12 |             </div>
13 |             <div>
14 |               <button class="btn btn-primary" ng-click="expand()">Expand All</button>
15 |             </div>
16 |             <div>
17 |               <button class="btn btn-primary" ng-click="refresh()">Refresh</button>
18 |             </div>
19 |           </div>
20 |         </div>
21 |         <div class="col-sm-8">
22 |           <div js-tree="basicConfig" ng-model="treeData" should-apply="applyModelChanges()" tree="basicTree" tree-events="ready:readyCB"></div>
23 |         </div>
24 |       </div>
25 |     </div>
26 |   </div>
27 |   <div class="col-md-6">
28 |     <div ba-panel ba-panel-title="Drag & Drop" ba-panel-class="with-scroll tree-panel">
29 |       <div js-tree="dragConfig" ng-model="dragData"></div>
30 |     </div>
31 |   </div>
32 | </div>
33 | </div>
34 | 


--------------------------------------------------------------------------------
/src/app/pages/components/tree/tree.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 12.21.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.components.tree', [])
 9 |     .config(routeConfig)
10 |     .config(function(){
11 |       $.jstree.defaults.core.themes.url = true;
12 |       $.jstree.defaults.core.themes.dir = "assets/img/theme/vendor/jstree/dist/themes";
13 |     });
14 | 
15 |   /** @ngInject */
16 |   function routeConfig($stateProvider) {
17 |     $stateProvider
18 |         .state('components.tree', {
19 |           url: '/tree',
20 |           templateUrl: 'app/pages/components/tree/tree.html',
21 |           title: 'Tree View',
22 |           sidebarMeta: {
23 |             order: 200,
24 |           },
25 |         });
26 |   }
27 | 
28 | })();
29 | 


--------------------------------------------------------------------------------
/src/app/pages/dashboard/blurFeed/blurFeed.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.dashboard')
 9 |       .directive('blurFeed', blurFeed);
10 | 
11 |   /** @ngInject */
12 |   function blurFeed() {
13 |     return {
14 |       restrict: 'E',
15 |       controller: 'BlurFeedCtrl',
16 |       templateUrl: 'app/pages/dashboard/blurFeed/blurFeed.html'
17 |     };
18 |   }
19 | })();


--------------------------------------------------------------------------------
/src/app/pages/dashboard/blurFeed/blurFeed.html:
--------------------------------------------------------------------------------
 1 | 
 2 | <div class="feed-messages-container" track-width="smallContainerWidth" min-width="360">
 3 |   <div class="feed-message" ng-repeat="message in feed" ng-click="expandMessage(message)">
 4 |     <div class="message-icon" ng-if="message.type == 'text-message'">
 5 |       <img class="photo-icon" ng-src="{{::( message.author | profilePicture )}}">
 6 |     </div>
 7 |     <div class="message-icon" ng-if="message.type != 'text-message'">
 8 |       <img class="photo-icon" ng-src="{{::( message.author | profilePicture )}}">
 9 |       <span class="sub-photo-icon" ng-class="::message.type"></span>
10 |     </div>
11 |     <div class="text-block text-message">
12 |       <div class="message-header">
13 |         <span class="author">{{ ::message.author }} {{ ::message.surname}}</span>
14 |       </div>
15 |       <div class="message-content line-clamp" ng-class="{'line-clamp-2' : !message.expanded}">
16 |         <span ng-if="message.preview">{{message.header}} </span>{{::message.text}}
17 |       </div>
18 |       <div class="preview" ng-show="message.expanded" ng-if="message.preview">
19 |         <a href="{{::message.link}}" target="_blank">
20 |           <img ng-src="{{ ::( message.preview | appImage )}}">
21 |         </a>
22 |       </div>
23 |       <div ng-show="message.expanded" class="message-time">
24 |         <div class="post-time">
25 |           {{::message.time}}
26 |         </div>
27 |         <div class="ago-time">
28 |           {{::message.ago}}
29 |         </div>
30 |       </div>
31 |     </div>
32 |   </div>
33 | </div>
34 | 


--------------------------------------------------------------------------------
/src/app/pages/dashboard/calendar/dashboardCalendar.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.dashboard')
 9 |       .service('dashboardCalendar', dashboardCalendar);
10 | 
11 |   /** @ngInject */
12 |   function dashboardCalendar() {
13 | 
14 |   }
15 | })();


--------------------------------------------------------------------------------
/src/app/pages/dashboard/dashboard.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.dashboard', [])
 9 |       .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider) {
13 |     $stateProvider
14 |         .state('dashboard', {
15 |           url: '/dashboard',
16 |           templateUrl: 'app/pages/dashboard/dashboard.html',
17 |           title: 'Dashboard',
18 |           sidebarMeta: {
19 |             icon: 'ion-android-home',
20 |             order: 0,
21 |           },
22 |         });
23 |   }
24 | 
25 | })();
26 | 


--------------------------------------------------------------------------------
/src/app/pages/dashboard/dashboardCalendar/dashboardCalendar.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.dashboard')
 9 |       .directive('dashboardCalendar', dashboardCalendar);
10 | 
11 |   /** @ngInject */
12 |   function dashboardCalendar() {
13 |     return {
14 |       restrict: 'E',
15 |       controller: 'DashboardCalendarCtrl',
16 |       templateUrl: 'app/pages/dashboard/dashboardCalendar/dashboardCalendar.html'
17 |     };
18 |   }
19 | })();


--------------------------------------------------------------------------------
/src/app/pages/dashboard/dashboardCalendar/dashboardCalendar.html:
--------------------------------------------------------------------------------
1 | <div id='calendar' class="blurCalendar"></div>


--------------------------------------------------------------------------------
/src/app/pages/dashboard/dashboardLineChart/dashboardLineChart.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.dashboard')
 9 |       .directive('dashboardLineChart', dashboardLineChart);
10 | 
11 |   /** @ngInject */
12 |   function dashboardLineChart() {
13 |     return {
14 |       restrict: 'E',
15 |       controller: 'DashboardLineChartCtrl',
16 |       templateUrl: 'app/pages/dashboard/dashboardLineChart/dashboardLineChart.html'
17 |     };
18 |   }
19 | })();


--------------------------------------------------------------------------------
/src/app/pages/dashboard/dashboardLineChart/dashboardLineChart.html:
--------------------------------------------------------------------------------
1 | <div id="amchart"></div>


--------------------------------------------------------------------------------
/src/app/pages/dashboard/dashboardMap/dashboardMap.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.dashboard')
 9 |       .directive('dashboardMap', dashboardMap);
10 | 
11 |   /** @ngInject */
12 |   function dashboardMap() {
13 |     return {
14 |       restrict: 'E',
15 |       controller: 'DashboardMapCtrl',
16 |       templateUrl: 'app/pages/dashboard/dashboardMap/dashboardMap.html'
17 |     };
18 |   }
19 | })();


--------------------------------------------------------------------------------
/src/app/pages/dashboard/dashboardMap/dashboardMap.html:
--------------------------------------------------------------------------------
1 | <div id="amChartMap"></div>


--------------------------------------------------------------------------------
/src/app/pages/dashboard/dashboardPieChart/dashboardPieChart.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.dashboard')
 9 |       .directive('dashboardPieChart', dashboardPieChart);
10 | 
11 |   /** @ngInject */
12 |   function dashboardPieChart() {
13 |     return {
14 |       restrict: 'E',
15 |       controller: 'DashboardPieChartCtrl',
16 |       templateUrl: 'app/pages/dashboard/dashboardPieChart/dashboardPieChart.html'
17 |     };
18 |   }
19 | })();


--------------------------------------------------------------------------------
/src/app/pages/dashboard/dashboardPieChart/dashboardPieChart.html:
--------------------------------------------------------------------------------
 1 | <div class="row pie-charts">
 2 |   <div class="pie-chart-item-container" ng-repeat="chart in charts">
 3 |     <div ba-panel>
 4 |       <div class="pie-chart-item">
 5 |         <div class="chart" rel="{{ ::chart.color }}" data-percent="60"> <span class="percent"></span> </div>
 6 |         <div class="description">
 7 |           <div>{{ ::chart.description }}</div>
 8 |           <div class="description-stats">{{ ::chart.stats }}</div>
 9 |         </div>
10 |         <i class="chart-icon i-{{ ::chart.icon }}"></i>
11 |       </div>
12 |     </div>
13 |   </div>
14 | </div>


--------------------------------------------------------------------------------
/src/app/pages/dashboard/dashboardTodo/dashboardTodo.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.dashboard')
 9 |       .directive('dashboardTodo', dashboardTodo);
10 | 
11 |   /** @ngInject */
12 |   function dashboardTodo() {
13 |     return {
14 |       restrict: 'EA',
15 |       controller: 'DashboardTodoCtrl',
16 |       templateUrl: 'app/pages/dashboard/dashboardTodo/dashboardTodo.html'
17 |     };
18 |   }
19 | })();


--------------------------------------------------------------------------------
/src/app/pages/dashboard/dashboardTodo/dashboardTodo.html:
--------------------------------------------------------------------------------
 1 | <div class="task-todo-container" ng-class="{'transparent': transparent}">
 2 |   <input type="text" value="" class="form-control task-todo" placeholder="Task to do.." ng-keyup="addToDoItem($event)" ng-model="newTodoText"/>
 3 |   <i ng-click="addToDoItem('',true)" class="add-item-icon ion-plus-round"></i>
 4 |   <div class="box-shadow-border"></div>
 5 |   <ul class="todo-list" ui-sortable ng-model="todoList">
 6 |     <li ng-repeat="item in todoList" ng-if="!item.deleted" ng-init="activeItem=false"
 7 |         ng-class="{checked: isChecked, active: activeItem}"
 8 |         ng-mouseenter="activeItem=true" ng-mouseleave="activeItem=false">
 9 |       <div class="blur-container"><div class="blur-box"></div></div>
10 |       <i class="mark" style="background-color: {{::item.color}}"></i>
11 |       <label class="todo-checkbox custom-checkbox custom-input-success">
12 |         <input type="checkbox" ng-model="isChecked">
13 |         <span class="cut-with-dots">{{ item.text }}</span>
14 |       </label>
15 |       <i class="remove-todo ion-ios-close-empty" ng-click="item.deleted = true"></i>
16 |     </li>
17 |   </ul>
18 | </div>
19 | 


--------------------------------------------------------------------------------
/src/app/pages/dashboard/pieCharts/dashboardPieChart.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.dashboard')
 9 |       .service('dashboardPieChart', dashboardPieChart);
10 | 
11 |   /** @ngInject */
12 |   function dashboardPieChart() {
13 | 
14 |   }
15 | })();


--------------------------------------------------------------------------------
/src/app/pages/dashboard/popularApp/popularApp.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.dashboard')
 9 |       .directive('popularApp', popularApp);
10 | 
11 |   /** @ngInject */
12 |   function popularApp() {
13 |     return {
14 |       restrict: 'E',
15 |       templateUrl: 'app/pages/dashboard/popularApp/popularApp.html'
16 |     };
17 |   }
18 | })();


--------------------------------------------------------------------------------
/src/app/pages/dashboard/popularApp/popularApp.html:
--------------------------------------------------------------------------------
 1 | <div class="popular-app-img-container">
 2 |   <div class="popular-app-img">
 3 |     <img ng-src="{{::( 'app/my-app-logo.png' | appImage )}}"/>
 4 |     <span class="logo-text">Super&nbspApp</span>
 5 |   </div>
 6 | </div>
 7 | <div class="popular-app-cost row">
 8 |   <div class="col-xs-9">
 9 |     Most Popular App
10 |   </div>
11 |   <div class="col-xs-3 text-right">
12 |     175$
13 |   </div>
14 | </div>
15 | <div class="popular-app-info row">
16 |   <div class="col-xs-4 text-left">
17 |     <div class="info-label">Total Visits</div>
18 |     <div>47,512</div>
19 |   </div>
20 |   <div class="col-xs-4 text-center">
21 |     <div class="info-label">New Visits</div>
22 |     <div>9,217</div>
23 |   </div>
24 |   <div class="col-xs-4 text-right">
25 |     <div class="info-label">Sales</div>
26 |     <div>2,928</div>
27 |   </div>
28 | </div>
29 | 


--------------------------------------------------------------------------------
/src/app/pages/dashboard/trafficChart/trafficChart.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.dashboard')
 9 |       .directive('trafficChart', trafficChart);
10 | 
11 |   /** @ngInject */
12 |   function trafficChart() {
13 |     return {
14 |       restrict: 'E',
15 |       controller: 'TrafficChartCtrl',
16 |       templateUrl: 'app/pages/dashboard/trafficChart/trafficChart.html'
17 |     };
18 |   }
19 | })();


--------------------------------------------------------------------------------
/src/app/pages/dashboard/trafficChart/trafficChart.html:
--------------------------------------------------------------------------------
 1 | <div class="channels-block" ng-class="{'transparent': transparent}">
 2 |   <div class="chart-bg"></div>
 3 |   <div class="traffic-chart" id="trafficChart">
 4 |     <div class="canvas-holder">
 5 |       <canvas id="chart-area" width="280" height="280"></canvas>
 6 |       <div class="traffic-text">
 7 |         1,900,128
 8 |         <span>Views Total</span>
 9 |       </div>
10 |     </div>
11 |   </div>
12 | 
13 |     <div class="channels-info">
14 |         <div>
15 |             <div class="channels-info-item" ng-repeat="label in doughnutData.labels"
16 |                  ng-init="i = $index; data = doughnutData.datasets[0]">
17 |                 <div class="legend-color" style="background-color: {{::data.backgroundColor[i]}}"></div>
18 |                 <p>{{::label}}<span class="channel-number">+{{data.percentage[i]}}%</span></p>
19 |                 <div class="progress progress-sm channel-progress">
20 |                     <div class="progress-bar " role="progressbar"
21 |                          aria-valuenow="{{data.percentage[i]}}" aria-valuemin="0" aria-valuemax="100"
22 |                          style="width: {{item.percentage}}%">
23 |                     </div>
24 |                 </div>
25 |             </div>
26 |         </div>
27 |     </div>
28 | </div>
29 | 
30 | 


--------------------------------------------------------------------------------
/src/app/pages/dashboard/weather/weather.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.dashboard')
 9 |       .directive('weather', weather);
10 | 
11 |   /** @ngInject */
12 |   function weather() {
13 |     return {
14 |       restrict: 'EA',
15 |       controller: 'WeatherCtrl',
16 |       templateUrl: 'app/pages/dashboard/weather/weather.html'
17 |     };
18 |   }
19 | })();


--------------------------------------------------------------------------------
/src/app/pages/form/form.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.form', ['ui.select', 'ngSanitize'])
 9 |       .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider) {
13 |     $stateProvider
14 |         .state('form', {
15 |           url: '/form',
16 |           template : '<ui-view autoscroll="true" autoscroll-body-top></ui-view>',
17 |           abstract: true,
18 |           title: 'Form Elements',
19 |           sidebarMeta: {
20 |             icon: 'ion-compose',
21 |             order: 250,
22 |           },
23 |         })
24 |         .state('form.inputs', {
25 |           url: '/inputs',
26 |           templateUrl: 'app/pages/form/inputs/inputs.html',
27 |           title: 'Form Inputs',
28 |           sidebarMeta: {
29 |             order: 0,
30 |           },
31 |         })
32 |         .state('form.layouts', {
33 |           url: '/layouts',
34 |           templateUrl: 'app/pages/form/layouts/layouts.html',
35 |           title: 'Form Layouts',
36 |           sidebarMeta: {
37 |             order: 100,
38 |           },
39 |         })
40 |         .state('form.wizard',
41 |         {
42 |           url: '/wizard',
43 |           templateUrl: 'app/pages/form/wizard/wizard.html',
44 |           controller: 'WizardCtrl',
45 |           controllerAs: 'vm',
46 |           title: 'Form Wizard',
47 |           sidebarMeta: {
48 |             order: 200,
49 |           },
50 |         });
51 |   }
52 | })();
53 | 


--------------------------------------------------------------------------------
/src/app/pages/form/inputs/widgets/datePickers/datePickers.html:
--------------------------------------------------------------------------------
 1 | <div class="datepicker row">
 2 |     <div class="col-xlg-6 col-md-12 col-sm-6" ng-controller="datepickerCtrl">
 3 |         <h4>Inline</h4>
 4 |         <label>Selected date is: <em>{{dt | date:'fullDate' }}</em></label>
 5 |         <div class="uib-datepicker-wrap">
 6 |             <uib-datepicker ng-model="dt" datepicker-options="options"></uib-datepicker>
 7 |         </div>
 8 |     </div>
 9 | 
10 |     <div class="col-xlg-6 col-md-12 col-sm-6" ng-controller="datepickerpopupCtrl">
11 |         <h4>Popup</h4>
12 |         <label>Selected date is: <em>{{dt | date:'fullDate' }}</em></label>
13 |         <p class="input-group">
14 |             <input type="text" class="form-control" uib-datepicker-popup="{{format}}" datepicker-options="options" ng-model="dt" is-open="opened" ng-required="true" close-text="Close" alt-input-formats="altInputFormats" show-button-bar="false" />
15 |           <span class="input-group-btn">
16 |             <button type="button" class="btn btn-default" ng-click="open()"><i class="glyphicon glyphicon-calendar"></i></button>
17 |           </span>
18 |         </p>
19 |         <label>Format: <span class="muted-text">(manual alternate <em>{{altInputFormats[0]}}</em>)</span></label> <select class="form-control" ng-model="format" ng-options="f for f in formats"><option></option></select>
20 |     </div>
21 | 
22 | </div>


--------------------------------------------------------------------------------
/src/app/pages/form/inputs/widgets/datePickers/datepickerCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * Created by n.poltoratsky
 3 |  * on 23.06.2016.
 4 |  */
 5 | (function(){
 6 |     'use strict';
 7 | 
 8 |     angular.module('BlurAdmin.pages.form')
 9 |         .controller('datepickerCtrl', datepickerCtrl);
10 | 
11 |     /** @ngInject */
12 |     function datepickerCtrl($scope) {
13 | 
14 |         $scope.dt = new Date();
15 |         $scope.options = {
16 |             showWeeks: false
17 |         };
18 | 
19 |     }
20 | })();


--------------------------------------------------------------------------------
/src/app/pages/form/inputs/widgets/datePickers/datepickerpopupCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * Created by n.poltoratsky
 3 |  * on 23.06.2016.
 4 |  */
 5 | (function(){
 6 |     'use strict';
 7 | 
 8 |     angular.module('BlurAdmin.pages.form')
 9 |         .controller('datepickerpopupCtrl', datepickerpopupCtrl);
10 | 
11 |     /** @ngInject */
12 |     function datepickerpopupCtrl($scope) {
13 | 
14 |         $scope.open = open;
15 |         $scope.opened = false;
16 |         $scope.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];
17 |         $scope.format = $scope.formats[0];
18 |         $scope.options = {
19 |             showWeeks: false
20 |         };
21 | 
22 |         function open() {
23 |             $scope.opened = true;
24 |         }
25 |     }
26 | })();


--------------------------------------------------------------------------------
/src/app/pages/form/inputs/widgets/inputGroups.html:
--------------------------------------------------------------------------------
 1 | <div class="input-group">
 2 |   <span class="input-group-addon input-group-addon-primary addon-left" id="basic-addon1">@</span>
 3 |   <input type="text" class="form-control with-primary-addon" placeholder="Username" aria-describedby="basic-addon1">
 4 | </div>
 5 | 
 6 | <div class="input-group">
 7 |   <input type="text" class="form-control with-warning-addon" placeholder="Recipient's username" aria-describedby="basic-addon2">
 8 |   <span class="input-group-addon input-group-addon-warning addon-right" id="basic-addon2">@example.com</span>
 9 | </div>
10 | 
11 | <div class="input-group">
12 |   <span class="input-group-addon addon-left input-group-addon-success">
lt;/span>
13 |   <input type="text" class="form-control with-success-addon" aria-label="Amount (to the nearest dollar)">
14 |   <span class="input-group-addon addon-right input-group-addon-success">.00</span>
15 | </div>
16 | 
17 | <div class="input-group">
18 |   <input type="text" class="form-control with-danger-addon" placeholder="Search for...">
19 |   <span class="input-group-btn">
20 |       <button class="btn btn-danger" type="button">Go!</button>
21 |   </span>
22 | </div>


--------------------------------------------------------------------------------
/src/app/pages/form/inputs/widgets/oldSelect/OldSelectpickerPanelCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 22.04.2016
 4 |  * @deprecated
 5 |  */
 6 | (function () {
 7 |   'use strict';
 8 | 
 9 |   angular.module('BlurAdmin.pages.form')
10 |       .controller('OldSelectpickerPanelCtrl', OldSelectpickerPanelCtrl);
11 | 
12 |   /** @ngInject */
13 |   function OldSelectpickerPanelCtrl() {
14 |     var vm = this;
15 | 
16 |     vm.standardSelectItems = [
17 |       { label: 'Option 1', value: 1 },
18 |       { label: 'Option 2', value: 2 },
19 |       { label: 'Option 3', value: 3 },
20 |       { label: 'Option 4', value: 4 },
21 |     ];
22 | 
23 |     vm.selectWithSearchItems = [
24 |       { label: 'Hot Dog, Fries and a Soda', value: 1 },
25 |       { label: 'Burger, Shake and a Smile', value: 2 },
26 |       { label: 'Sugar, Spice and all things nice', value: 3 },
27 |       { label: 'Baby Back Ribs', value: 4 },
28 |     ];
29 | 
30 |     vm.groupedSelectItems = [
31 |       { label: 'Group 1 - Option 1', value: 1, group: 'Group 1' },
32 |       { label: 'Group 2 - Option 2', value: 2, group: 'Group 2' },
33 |       { label: 'Group 1 - Option 3', value: 3, group: 'Group 1' },
34 |       { label: 'Group 2 - Option 4', value: 4, group: 'Group 2' },
35 |     ];
36 | 
37 |   }
38 | 
39 | })();
40 | 


--------------------------------------------------------------------------------
/src/app/pages/form/inputs/widgets/oldSelect/selectpicker.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  * @deprecated
 5 |  */
 6 | (function () {
 7 |   'use strict';
 8 | 
 9 |   angular.module('BlurAdmin.pages.form')
10 |       .directive('selectpicker', selectpicker);
11 | 
12 |   /** @ngInject */
13 |   function selectpicker() {
14 |     return {
15 |       restrict: 'A',
16 |       require: '?ngOptions',
17 |       priority: 1500, // make priority bigger than ngOptions and ngRepeat
18 |       link: {
19 |         pre: function(scope, elem, attrs) {
20 |           elem.append('<option data-hidden="true" disabled value="">' + (attrs.title || 'Select something') + '</option>')
21 |         },
22 |         post: function(scope, elem, attrs) {
23 |           function refresh() {
24 |             elem.selectpicker('refresh');
25 |           }
26 | 
27 |           if (attrs.ngModel) {
28 |             scope.$watch(attrs.ngModel, refresh);
29 |           }
30 | 
31 |           if (attrs.ngDisabled) {
32 |             scope.$watch(attrs.ngDisabled, refresh);
33 |           }
34 | 
35 |           elem.selectpicker({ dropupAuto: false, hideDisabled: true });
36 |         }
37 |       }
38 |     };
39 |   }
40 | 
41 | 
42 | })();


--------------------------------------------------------------------------------
/src/app/pages/form/inputs/widgets/oldSwitches/OldSwitchPanelCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 07.06.2016
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.form')
 9 |       .controller('OldSwitchPanelCtrl', OldSwitchPanelCtrl);
10 | 
11 |   /** @ngInject */
12 |   function OldSwitchPanelCtrl() {
13 |     var vm = this;
14 | 
15 |     vm.switcherValues = {
16 |       primary: true,
17 |       warning: true,
18 |       danger: true,
19 |       info: true,
20 |       success: true
21 |     };
22 |   }
23 | 
24 | })();
25 | 


--------------------------------------------------------------------------------
/src/app/pages/form/inputs/widgets/oldSwitches/switch.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  *
 5 |  */
 6 | (function () {
 7 |   'use strict';
 8 | 
 9 |   angular.module('BlurAdmin.pages.form')
10 |       .directive('switch', switchDirective);
11 | 
12 |   /** @ngInject */
13 |   function switchDirective($timeout) {
14 |     return {
15 |       restrict: 'EA',
16 |       replace: true,
17 |       scope: {
18 |         ngModel: '='
19 |       },
20 |       template: function(el, attrs) {
21 |         return '<div class="switch-container ' + (attrs.color || '') + '"><input type="checkbox" ng-model="ngModel"></div>';
22 |       },
23 |       link: function (scope, elem, attr) {
24 |         var input = $(elem).find('input');
25 |         input.bootstrapSwitch({
26 |           size: 'small',
27 |           onColor: attr.color
28 |         });
29 |         input.on('switchChange.bootstrapSwitch', function(event, state) {
30 |           scope.ngModel = state;
31 |           scope.$apply();
32 |         });
33 | 
34 |       }
35 |     };
36 |   }
37 | })();
38 | 


--------------------------------------------------------------------------------
/src/app/pages/form/inputs/widgets/oldSwitches/switch.html:
--------------------------------------------------------------------------------
1 | <div ng-controller="OldSwitchPanelCtrl as switchPanelVm" class="switches clearfix">
2 |   <switch color="primary" ng-model="switchPanelVm.switcherValues.primary"></switch>
3 |   <switch color="warning" ng-model="switchPanelVm.switcherValues.warning"></switch>
4 |   <switch color="danger" ng-model="switchPanelVm.switcherValues.danger"></switch>
5 |   <switch color="info" ng-model="switchPanelVm.switcherValues.info"></switch>
6 |   <switch color="success" ng-model="switchPanelVm.switcherValues.success"></switch>
7 | </div>


--------------------------------------------------------------------------------
/src/app/pages/form/inputs/widgets/select/GroupSelectpickerOptions.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author p.maslava
 3 |  * created on 28.11.2016
 4 |  */
 5 | 
 6 | (function() {
 7 |   'use strict';
 8 | 
 9 |   angular.module('BlurAdmin.pages.form')
10 |     .filter('groupSelectpickerOptions', GroupSelectpickerOptions);
11 | 
12 |   /** @ngInject */
13 |   function GroupSelectpickerOptions() {
14 |     return function (items, props) {
15 |       var out = [];
16 | 
17 |       if (angular.isArray(items)) {
18 |         var keys = Object.keys(props);
19 | 
20 |         items.forEach(function (item) {
21 |           var itemMatches = false;
22 | 
23 |           for (var i = 0; i < keys.length; i++) {
24 |             var prop = keys[i];
25 |             var text = props[prop].toLowerCase();
26 |             if (item[prop].toString().toLowerCase().indexOf(text) !== -1) {
27 |               itemMatches = true;
28 |               break;
29 |             }
30 |           }
31 | 
32 |           if (itemMatches) {
33 |             out.push(item);
34 |           }
35 |         });
36 |       } else {
37 |         // Let the output be the input untouched
38 |         out = items;
39 |       }
40 | 
41 |       return out;
42 |     };
43 |   }
44 | })();


--------------------------------------------------------------------------------
/src/app/pages/form/inputs/widgets/standardFields.html:
--------------------------------------------------------------------------------
 1 | <form>
 2 |   <div class="form-group">
 3 |     <label for="input01">Text</label>
 4 |     <input type="text" class="form-control" id="input01" placeholder="Text">
 5 |   </div>
 6 |   <div class="form-group">
 7 |     <label for="input02">Password</label>
 8 |     <input type="password" class="form-control" id="input02" placeholder="Password">
 9 |   </div>
10 |   <div class="form-group">
11 |     <label for="input03">Rounded Corners</label>
12 |     <input type="text" class="form-control form-control-rounded" id="input03" placeholder="Rounded Corners">
13 |   </div>
14 |   <div class="form-group">
15 |     <label for="input04">With help</label>
16 |     <input type="text" class="form-control" id="input04" placeholder="With help">
17 |     <span class="help-block sub-little-text">A block of help text that breaks onto a new line and may extend beyond one line.</span>
18 |   </div>
19 |   <div class="form-group">
20 |     <label for="input05">Disabled Input</label>
21 |     <input type="text" class="form-control" id="input05" placeholder="Disabled Input" disabled>
22 |   </div>
23 | 
24 |   <div class="form-group">
25 |     <label for="textarea01">Textarea</label>
26 |     <textarea placeholder="Default Input" class="form-control" id="textarea01"></textarea>
27 |   </div>
28 | 
29 |   <div class="form-group">
30 |     <input type="text" class="form-control input-sm" id="input2" placeholder="Small Input">
31 |   </div>
32 |   <div class="form-group">
33 |     <input type="text" class="form-control input-lg" id="input4" placeholder="Large Input">
34 |   </div>
35 | </form>


--------------------------------------------------------------------------------
/src/app/pages/form/inputs/widgets/switches/SwitchDemoPanelCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 10.12.2016
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.form')
 9 |       .controller('SwitchDemoPanelCtrl', SwitchDemoPanelCtrl);
10 | 
11 |   /** @ngInject */
12 |   function SwitchDemoPanelCtrl() {
13 |     var vm = this;
14 |     vm.switches = {
15 |       s1: true,
16 |       s2: false,
17 |       s3: true,
18 |       s4: true,
19 |       s5: false
20 |     };
21 |   }
22 | 
23 | })();
24 | 


--------------------------------------------------------------------------------
/src/app/pages/form/inputs/widgets/switches/switch.html:
--------------------------------------------------------------------------------
 1 | <div ng-controller="SwitchDemoPanelCtrl as vm">
 2 |   <ba-switcher switcher-style="primary" switcher-value="vm.switches.s1"></ba-switcher>
 3 |   <ba-switcher switcher-style="success" switcher-value="vm.switches.s2"></ba-switcher>
 4 |   <ba-switcher switcher-style="warning" switcher-value="vm.switches.s3"></ba-switcher>
 5 |   <ba-switcher switcher-style="danger" switcher-value="vm.switches.s4"></ba-switcher>
 6 |   <ba-switcher switcher-style="info" switcher-value="vm.switches.s5"></ba-switcher>
 7 | </div>
 8 | 
 9 | 
10 | 


--------------------------------------------------------------------------------
/src/app/pages/form/inputs/widgets/tagsInput/tagsInput.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.form')
 9 |       .directive('tagInput', tagInput);
10 | 
11 |   /** @ngInject */
12 |   function tagInput() {
13 |     return {
14 |       restrict: 'A',
15 |       link: function( $scope, elem, attr) {
16 |         $(elem).tagsinput({
17 |           tagClass:  'label label-' + attr.tagInput
18 |         });
19 |       }
20 |     };
21 |   }
22 | })();


--------------------------------------------------------------------------------
/src/app/pages/form/inputs/widgets/tagsInput/tagsInput.html:
--------------------------------------------------------------------------------
 1 | <div class="form-group">
 2 |   <div class="form-group">
 3 |     <input type="text" tag-input="primary" value="Amsterdam,Washington,Sydney,Beijing,Cairo" data-role="tagsinput" placeholder="Add Tag">
 4 |   </div>
 5 |   <div class="form-group">
 6 |     <input type="text" tag-input="warning" value="Minsk,Prague,Vilnius,Warsaw" data-role="tagsinput" placeholder="Add Tag">
 7 |   </div>
 8 |   <div class="form-group">
 9 |     <input type="text" tag-input="danger" value="London,Berlin,Paris,Rome,Munich" data-role="tagsinput" placeholder="Add Tag">
10 |   </div>
11 | </div>


--------------------------------------------------------------------------------
/src/app/pages/form/layouts/layouts.html:
--------------------------------------------------------------------------------
 1 | <div class="widgets">
 2 | 
 3 |   <div class="row">
 4 |     <div class="col-md-12"
 5 |          ba-panel
 6 |          ba-panel-title="Inline Form"
 7 |          ba-panel-class="with-scroll">
 8 |       <div ng-include="'app/pages/form/layouts/widgets/inlineForm.html'"></div>
 9 |     </div>
10 |   </div>
11 | 
12 |   <div class="row">
13 |     <div class="col-md-6">
14 |       <div
15 |           ba-panel
16 |           ba-panel-title="Basic Form"
17 |           ba-panel-class="with-scroll">
18 |         <div ng-include="'app/pages/form/layouts/widgets/basicForm.html'"></div>
19 |       </div>
20 | 
21 |       <div
22 |           ba-panel
23 |           ba-panel-title="Horizontal Form"
24 |           ba-panel-class="with-scroll">
25 |         <div ng-include="'app/pages/form/layouts/widgets/horizontalForm.html'"></div>
26 |       </div>
27 |     </div>
28 |     <div class="col-md-6">
29 |       <div
30 |           ba-panel
31 |           ba-panel-title="Form Without Labels"
32 |           ba-panel-class="with-scroll">
33 |         <div ng-include="'app/pages/form/layouts/widgets/formWithoutLabels.html'"></div>
34 |       </div>
35 |       <div
36 |           ba-panel
37 |           ba-panel-title="Block Form"
38 |           ba-panel-class="with-scroll">
39 |         <div ng-include="'app/pages/form/layouts/widgets/blockForm.html'"></div>
40 |       </div>
41 |     </div>
42 |   </div>
43 | 
44 | </div>


--------------------------------------------------------------------------------
/src/app/pages/form/layouts/widgets/basicForm.html:
--------------------------------------------------------------------------------
 1 | <form>
 2 |   <div class="form-group">
 3 |     <label for="exampleInputEmail1">Email address</label>
 4 |     <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Email">
 5 |   </div>
 6 |   <div class="form-group">
 7 |     <label for="exampleInputPassword1">Password</label>
 8 |     <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
 9 |   </div>
10 |   <div class="checkbox">
11 |     <label class="custom-checkbox">
12 |       <input type="checkbox">
13 |       <span>Check me out</span>
14 |     </label>
15 |   </div>
16 |   <button type="submit" class="btn btn-danger">Submit</button>
17 | </form>


--------------------------------------------------------------------------------
/src/app/pages/form/layouts/widgets/blockForm.html:
--------------------------------------------------------------------------------
 1 | <div class="row">
 2 |   <div class="col-sm-6">
 3 |     <div class="form-group">
 4 |       <label for="inputFirstName">First Name</label>
 5 |       <input type="text" class="form-control" id="inputFirstName" placeholder="First Name">
 6 |     </div>
 7 |   </div>
 8 |   <div class="col-sm-6">
 9 |     <div class="form-group">
10 |       <label for="inputLastName">Last Name</label>
11 |       <input type="text" class="form-control" id="inputLastName" placeholder="Last Name">
12 |     </div>
13 |   </div>
14 | </div>
15 | <div class="row">
16 |   <div class="col-sm-6">
17 |     <div class="form-group">
18 |       <label for="inputFirstName">Email</label>
19 |       <input type="email" class="form-control" id="inputEmail" placeholder="Email">
20 |     </div>
21 |   </div>
22 |   <div class="col-sm-6">
23 |     <div class="form-group">
24 |       <label for="inputWebsite">Website</label>
25 |       <input type="text" class="form-control" id="inputWebsite" placeholder="Website">
26 |     </div>
27 |   </div>
28 | </div>
29 | <button type="submit" class="btn btn-primary">Submit</button>


--------------------------------------------------------------------------------
/src/app/pages/form/layouts/widgets/formWithoutLabels.html:
--------------------------------------------------------------------------------
 1 | <form>
 2 |   <div class="form-group">
 3 |     <input type="text" class="form-control" placeholder="Recipients">
 4 |   </div>
 5 |   <div class="form-group">
 6 |     <input type="text" class="form-control" placeholder="Subject">
 7 |   </div>
 8 |   <div class="form-group">
 9 |     <textarea class="form-control" placeholder="Message"></textarea>
10 |   </div>
11 |   <button type="submit" class="btn btn-success">Send</button>
12 | </form>


--------------------------------------------------------------------------------
/src/app/pages/form/layouts/widgets/horizontalForm.html:
--------------------------------------------------------------------------------
 1 | <form class="form-horizontal">
 2 |   <div class="form-group">
 3 |     <label for="inputEmail3" class="col-sm-2 control-label">Email</label>
 4 |     <div class="col-sm-10">
 5 |       <input type="email" class="form-control" id="inputEmail3" placeholder="Email">
 6 |     </div>
 7 |   </div>
 8 |   <div class="form-group">
 9 |     <label for="inputPassword3" class="col-sm-2 control-label">Password</label>
10 |     <div class="col-sm-10">
11 |       <input type="password" class="form-control" id="inputPassword3" placeholder="Password">
12 |     </div>
13 |   </div>
14 |   <div class="form-group">
15 |     <div class="col-sm-offset-2 col-sm-10">
16 |       <div class="checkbox">
17 |         <label class="custom-checkbox">
18 |           <input type="checkbox">
19 |           <span>Remember me</span>
20 |         </label>
21 |       </div>
22 |     </div>
23 |   </div>
24 |   <div class="form-group">
25 |     <div class="col-sm-offset-2 col-sm-10">
26 |       <button type="submit" class="btn btn-warning">Sign in</button>
27 |     </div>
28 |   </div>
29 | </form>


--------------------------------------------------------------------------------
/src/app/pages/form/layouts/widgets/inlineForm.html:
--------------------------------------------------------------------------------
 1 | <form class="row form-inline">
 2 |   <div class="form-group col-sm-3 col-xs-6">
 3 |     <input type="text" class="form-control" id="exampleInputName2" placeholder="Name">
 4 |   </div>
 5 |   <div class="form-group col-sm-3 col-xs-6">
 6 |     <input type="email" class="form-control" id="exampleInputEmail2" placeholder="Email">
 7 |   </div>
 8 |   <div class="checkbox">
 9 |     <label class="custom-checkbox">
10 |       <input type="checkbox">
11 |       <span>Remember me</span>
12 |     </label>
13 |   </div>
14 |   <button type="submit" class="btn btn-primary">Send invitation</button>
15 | </form>


--------------------------------------------------------------------------------
/src/app/pages/form/wizard/wizrdCtrl.js:
--------------------------------------------------------------------------------
 1 | (function () {
 2 |   'use strict';
 3 | 
 4 |   angular.module('BlurAdmin.pages.form')
 5 |       .controller('WizardCtrl', WizardCtrl);
 6 | 
 7 |   /** @ngInject */
 8 |   function WizardCtrl($scope) {
 9 |    var vm = this;
10 | 
11 |     vm.personalInfo = {};
12 |     vm.productInfo = {};
13 |     vm.shipment = {};
14 | 
15 |     vm.arePersonalInfoPasswordsEqual = function () {
16 |       return vm.personalInfo.confirmPassword && vm.personalInfo.password == vm.personalInfo.confirmPassword;
17 |     };
18 |   }
19 | 
20 | })();
21 | 
22 | 


--------------------------------------------------------------------------------
/src/app/pages/maps/google-maps/GmapPageCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.maps')
 9 |       .controller('GmapPageCtrl', GmapPageCtrl);
10 | 
11 |   /** @ngInject */
12 |   function GmapPageCtrl($timeout) {
13 |     function initialize() {
14 |       var mapCanvas = document.getElementById('google-maps');
15 |       var mapOptions = {
16 |         center: new google.maps.LatLng(44.5403, -78.5463),
17 |         zoom: 8,
18 |         mapTypeId: google.maps.MapTypeId.ROADMAP
19 |       };
20 |       var map = new google.maps.Map(mapCanvas, mapOptions);
21 |     }
22 | 
23 |     $timeout(function(){
24 |       initialize();
25 |     }, 100);
26 |   }
27 | 
28 | })();
29 | 


--------------------------------------------------------------------------------
/src/app/pages/maps/google-maps/google-maps.html:
--------------------------------------------------------------------------------
1 | <div ba-panel ba-panel-title="Google Maps" class="viewport100">
2 |   <div id="google-maps"></div>
3 | </div>
4 | 


--------------------------------------------------------------------------------
/src/app/pages/maps/leaflet/LeafletPageCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.maps')
 9 |       .controller('LeafletPageCtrl', LeafletPageCtrl);
10 | 
11 |   /** @ngInject */
12 |   function LeafletPageCtrl($timeout) {
13 |     function initialize() {
14 |       L.Icon.Default.imagePath = 'assets/img/theme/vendor/leaflet/dist/images';
15 |       var map = L.map(document.getElementById('leaflet-map')).setView([51.505, -0.09], 13);
16 |       L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
17 |         attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
18 |       }).addTo(map);
19 | 
20 |       L.marker([51.5, -0.09]).addTo(map)
21 |           .bindPopup('A pretty CSS3 popup.<br> Easily customizable.')
22 |           .openPopup();
23 |     }
24 | 
25 |     $timeout(function(){
26 |       initialize();
27 |     }, 100);
28 | 
29 |   }
30 | 
31 | })();
32 | 


--------------------------------------------------------------------------------
/src/app/pages/maps/leaflet/leaflet.html:
--------------------------------------------------------------------------------
1 | <div ba-panel ba-panel-title="Leaflet" class="viewport100">
2 |   <div id="leaflet-map"></div>
3 | </div>


--------------------------------------------------------------------------------
/src/app/pages/maps/map-bubbles/map-bubbles.html:
--------------------------------------------------------------------------------
1 | <div ba-panel ba-panel-title="Map with Bubbles" class="viewport100">
2 |   <div id="map-bubbles"></div>
3 | </div>
4 | 


--------------------------------------------------------------------------------
/src/app/pages/maps/map-lines/map-lines.html:
--------------------------------------------------------------------------------
1 | <div ba-panel ba-panel-title="Line Map" class="viewport100">
2 |   <div id="map-lines"></div>
3 | </div>
4 | 
5 | 
6 | 


--------------------------------------------------------------------------------
/src/app/pages/maps/maps.html:
--------------------------------------------------------------------------------
1 | <div class="widgets">
2 | 
3 |   <div class="row">
4 |     <div class="col-md-12" ui-view autoscroll="true" autoscroll-body-top></div>
5 |   </div>
6 | 
7 | </div>


--------------------------------------------------------------------------------
/src/app/pages/pages.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages', [
 9 |     'ui.router',
10 | 
11 |     'BlurAdmin.pages.dashboard',
12 |     'BlurAdmin.pages.ui',
13 |     'BlurAdmin.pages.components',
14 |     'BlurAdmin.pages.form',
15 |     'BlurAdmin.pages.tables',
16 |     'BlurAdmin.pages.charts',
17 |     'BlurAdmin.pages.maps',
18 |     'BlurAdmin.pages.profile',
19 |   ])
20 |       .config(routeConfig);
21 | 
22 |   /** @ngInject */
23 |   function routeConfig($urlRouterProvider, baSidebarServiceProvider) {
24 |     $urlRouterProvider.otherwise('/dashboard');
25 | 
26 |     baSidebarServiceProvider.addStaticItem({
27 |       title: 'Pages',
28 |       icon: 'ion-document',
29 |       subMenu: [{
30 |         title: 'Sign In',
31 |         fixedHref: 'auth.html',
32 |         blank: true
33 |       }, {
34 |         title: 'Sign Up',
35 |         fixedHref: 'reg.html',
36 |         blank: true
37 |       }, {
38 |         title: 'User Profile',
39 |         stateRef: 'profile'
40 |       }, {
41 |         title: '404 Page',
42 |         fixedHref: '404.html',
43 |         blank: true
44 |       }]
45 |     });
46 |     baSidebarServiceProvider.addStaticItem({
47 |       title: 'Menu Level 1',
48 |       icon: 'ion-ios-more',
49 |       subMenu: [{
50 |         title: 'Menu Level 1.1',
51 |         disabled: true
52 |       }, {
53 |         title: 'Menu Level 1.2',
54 |         subMenu: [{
55 |           title: 'Menu Level 1.2.1',
56 |           disabled: true
57 |         }]
58 |       }]
59 |     });
60 |   }
61 | 
62 | })();
63 | 


--------------------------------------------------------------------------------
/src/app/pages/profile/ProfileModalCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 21.01.2016
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.profile')
 9 |     .controller('ProfileModalCtrl', ProfileModalCtrl);
10 | 
11 |   /** @ngInject */
12 |   function ProfileModalCtrl($scope, $uibModalInstance) {
13 |     $scope.link = '';
14 |     $scope.ok = function () {
15 |       $uibModalInstance.close($scope.link);
16 |     };
17 |   }
18 | 
19 | })();


--------------------------------------------------------------------------------
/src/app/pages/profile/profile.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.profile', [])
 9 |       .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider) {
13 |     $stateProvider
14 |         .state('profile', {
15 |           url: '/profile',
16 |           title: 'Profile',
17 |           templateUrl: 'app/pages/profile/profile.html',
18 |           controller: 'ProfilePageCtrl',
19 |         });
20 |   }
21 | 
22 | })();
23 | 


--------------------------------------------------------------------------------
/src/app/pages/profile/profileModal.html:
--------------------------------------------------------------------------------
 1 | <div class="modal-content">
 2 |   <div class="modal-header">
 3 |     <button type="button" class="close" ng-click="$dismiss()" aria-label="Close">
 4 |       <em class="ion-ios-close-empty sn-link-close"></em>
 5 |     </button>
 6 |     <h4 class="modal-title" id="myModalLabel">Add Account</h4>
 7 |   </div>
 8 |   <form name="linkForm">
 9 |     <div class="modal-body">
10 |       <p>Paste a link to your profile into the box below</p>
11 | 
12 |       <div class="form-group">
13 |         <input type="text" class="form-control" placeholder="Link to Profile" ng-model="link">
14 |       </div>
15 |     </div>
16 |     <div class="modal-footer">
17 |       <button type="button" class="btn btn-primary" ng-click="ok(link)">Save changes</button>
18 |     </div>
19 |   </form>
20 | </div>
21 | 


--------------------------------------------------------------------------------
/src/app/pages/tables/smart/tables.html:
--------------------------------------------------------------------------------
 1 | <div class="widgets">
 2 | 
 3 |   <div class="row">
 4 |     <div class="col-md-12">
 5 |       <div ba-panel ba-panel-title="Editable Rows" ba-panel-class="with-scroll">
 6 |         <div include-with-scope="app/pages/tables/widgets/editableRowTable.html"></div>
 7 |       </div>
 8 |     </div>
 9 |   </div>
10 | 
11 |   <div class="row">
12 |     <div class="col-md-12">
13 |       <div ba-panel ba-panel-title="Editable Cells" ba-panel-class="with-scroll">
14 |         <div include-with-scope="app/pages/tables/widgets/editableTable.html"></div>
15 |       </div>
16 |     </div>
17 |   </div>
18 | 
19 |   <div class="row">
20 |     <div class="col-md-12">
21 |       <div ba-panel ba-panel-title="Smart Table With Filtering, Sorting And Pagination" ba-panel-class="with-scroll">
22 |         <div include-with-scope="app/pages/tables/widgets/smartTable.html"></div>
23 |       </div>
24 |     </div>
25 |   </div>
26 | 
27 | </div>


--------------------------------------------------------------------------------
/src/app/pages/tables/tables.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.tables', [])
 9 |     .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider, $urlRouterProvider) {
13 |     $stateProvider
14 |         .state('tables', {
15 |           url: '/tables',
16 |           template : '<ui-view  autoscroll="true" autoscroll-body-top></ui-view>',
17 |           abstract: true,
18 |           controller: 'TablesPageCtrl',
19 |           title: 'Tables',
20 |           sidebarMeta: {
21 |             icon: 'ion-grid',
22 |             order: 300,
23 |           },
24 |         }).state('tables.basic', {
25 |           url: '/basic',
26 |           templateUrl: 'app/pages/tables/basic/tables.html',
27 |           title: 'Basic Tables',
28 |           sidebarMeta: {
29 |             order: 0,
30 |           },
31 |         }).state('tables.smart', {
32 |           url: '/smart',
33 |           templateUrl: 'app/pages/tables/smart/tables.html',
34 |           title: 'Smart Tables',
35 |           sidebarMeta: {
36 |             order: 100,
37 |           },
38 |         });
39 |     $urlRouterProvider.when('/tables','/tables/basic');
40 |   }
41 | 
42 | })();
43 | 


--------------------------------------------------------------------------------
/src/app/pages/tables/widgets/borderedTable.html:
--------------------------------------------------------------------------------
 1 | <div class="horizontal-scroll">
 2 |   <table class="table table-bordered">
 3 |     <thead>
 4 |     <tr>
 5 |       <th class="browser-icons"></th>
 6 |       <th>Browser</th>
 7 |       <th class="align-right">Visits</th>
 8 |       <th class="align-right">Purchases</th>
 9 |       <th class="align-right">%</th>
10 |     </tr>
11 |     </thead>
12 |     <tbody>
13 |     <tr ng-repeat="item in metricsTableData">
14 |       <td><img ng-src="{{::( item.image | appImage )}}" width="20" height="20"></td>
15 |       <td ng-class="nowrap">{{item.browser}}</td>
16 |       <td class="align-right">{{item.visits}}</td>
17 |       <td class="align-right">{{item.purchases}}</td>
18 |       <td class="align-right">{{item.percent}}</td>
19 |     </tr>
20 |     </tbody>
21 |   </table>
22 | </div>


--------------------------------------------------------------------------------
/src/app/pages/tables/widgets/condensedTable.html:
--------------------------------------------------------------------------------
 1 | <div class="horizontal-scroll">
 2 |   <table class="table table-condensed">
 3 |     <thead>
 4 |     <tr>
 5 |       <th class="table-id">#</th>
 6 |       <th>First Name</th>
 7 |       <th>Last Name</th>
 8 |       <th>Username</th>
 9 |       <th>Email</th>
10 |       <th>Status</th>
11 |     </tr>
12 |     </thead>
13 |     <tbody>
14 |     <tr ng-repeat="item in peopleTableData">
15 |       <td class="table-id">{{item.id}}</td>
16 |       <td>{{item.firstName}}</td>
17 |       <td>{{item.lastName}}</td>
18 |       <td>{{item.username}}</td>
19 |       <td><a class="email-link" ng-href="mailto:{{item.email}}">{{item.email}}</a></td>
20 |       <td><button class="status-button btn btn-xs btn-{{item.status}}">{{item.status}}</button></td>
21 |     </tr>
22 |     </tbody>
23 |   </table>
24 | </div>


--------------------------------------------------------------------------------
/src/app/pages/tables/widgets/contextualTable.html:
--------------------------------------------------------------------------------
 1 | <table class="table">
 2 |   <tr>
 3 |     <th>#</th>
 4 |     <th>First Name</th>
 5 |     <th>Last Name</th>
 6 |     <th>Username</th>
 7 |     <th>Email</th>
 8 |     <th>Age</th>
 9 |   </tr>
10 |   <tr class="primary">
11 |     <td>1</td>
12 |     <td>Mark</td>
13 |     <td>Otto</td>
14 |     <td>@mdo</td>
15 |     <td><a class="email-link " ng-href="mailto:mdo@gmail.com" href="mailto:mdo@gmail.com">mdo@gmail.com</a></td>
16 |     <td>28</td>
17 |   </tr>
18 |   <tr class="success">
19 |     <td>2</td>
20 |     <td>Jacob</td>
21 |     <td>Thornton</td>
22 |     <td>@fat</td>
23 |     <td><a class="email-link " ng-href="mailto:fat@yandex.ru" href="mailto:fat@yandex.ru">fat@yandex.ru</a></td>
24 |     <td>45</td>
25 |   </tr>
26 |   <tr class="warning">
27 |     <td>3</td>
28 |     <td>Larry</td>
29 |     <td>Bird</td>
30 |     <td>@twitter</td>
31 |     <td><a class="email-link " ng-href="mailto:twitter@outlook.com" href="mailto:twitter@outlook.com">twitter@outlook.com</a>
32 |     </td>
33 |     <td>18</td>
34 |   </tr>
35 |   <tr class="danger">
36 |     <td>4</td>
37 |     <td>John</td>
38 |     <td>Snow</td>
39 |     <td>@snow</td>
40 |     <td><a class="email-link" ng-href="mailto:snow@gmail.com" href="mailto:snow@gmail.com">snow@gmail.com</a></td>
41 |     <td>20</td>
42 |   </tr>
43 |   <tr class="info">
44 |     <td>5</td>
45 |     <td>Jack</td>
46 |     <td>Sparrow</td>
47 |     <td>@jack</td>
48 |     <td><a class="email-link" ng-href="mailto:jack@yandex.ru" href="mailto:jack@yandex.ru">jack@yandex.ru</a></td>
49 |     <td>30</td>
50 |   </tr>
51 | </table>


--------------------------------------------------------------------------------
/src/app/pages/tables/widgets/editableTable.html:
--------------------------------------------------------------------------------
 1 | <div class="horizontal-scroll">
 2 |   <table class="table table-hover" st-table="editableTableData">
 3 |     <thead>
 4 |     <tr class="sortable">
 5 |       <th class="table-id" st-sort="id" st-sort-default="true">#</th>
 6 |       <th st-sort="firstName">First Name</th>
 7 |       <th st-sort="lastName">Last Name</th>
 8 |       <th st-sort="username">Username</th>
 9 |       <th st-sort="email">Email</th>
10 |       <th st-sort="age">Age</th>
11 |     </tr>
12 |     </thead>
13 |     <tbody>
14 |     <tr ng-repeat="item in editableTableData" class="editable-tr-wrap">
15 |       <td class="table-id">{{item.id}}</td>
16 |       <td><span editable-text="item.firstName" blur="cancel">{{item.firstName}}</span></td>
17 |       <td><span editable-text="item.lastName" blur="cancel">{{item.lastName}}</span></td>
18 |       <td><span editable-text="item.username" blur="cancel">{{item.username}}</span></td>
19 |       <td><a class="email-link" ng-href="mailto:{{item.email}}">{{item.email}}</a></td>
20 |       <td><span editable-text="item.age" blur="cancel">{{item.age}}</span></td>
21 |     </tr>
22 |     </tbody>
23 |     <tfoot>
24 |     <tr>
25 |       <td colspan="6" class="text-center">
26 |         <div st-pagination="" st-items-by-page="12" st-displayed-pages="5"></div>
27 |       </td>
28 |     </tr>
29 |     </tfoot>
30 |   </table>
31 | </div>


--------------------------------------------------------------------------------
/src/app/pages/tables/widgets/hoverRows.html:
--------------------------------------------------------------------------------
 1 | <div class="horizontal-scroll">
 2 |   <table class="table table-hover">
 3 |     <thead>
 4 |     <tr class="black-muted-bg">
 5 |       <th class="browser-icons"></th>
 6 |       <th>Browser</th>
 7 |       <th class="align-right">Visits</th>
 8 |       <th class="table-arr"></th>
 9 |       <th class="align-right">Purchases</th>
10 |       <th class="table-arr"></th>
11 |       <th class="align-right">%</th>
12 |       <th class="table-arr"></th>
13 |     </tr>
14 |     </thead>
15 |     <tbody>
16 |     <tr ng-repeat="item in metricsTableData" class="no-top-border">
17 |       <td><img ng-src="{{::( item.image | appImage )}}" width="20" height="20"></td>
18 |       <td ng-class="nowrap">{{item.browser}}</td>
19 |       <td class="align-right">{{item.visits}}</td>
20 |       <td class="table-arr"><i ng-class="{'icon-up': item.isVisitsUp, 'icon-down': !item.isVisitsUp }"></i></td>
21 |       <td class="align-right">{{item.purchases}}</td>
22 |       <td class="table-arr"><i ng-class="{'icon-up': item.isPurchasesUp, 'icon-down': !item.isPurchasesUp }"></i></td>
23 |       <td class="align-right">{{item.percent}}</td>
24 |       <td class="table-arr"><i ng-class="{'icon-up': item.isPercentUp, 'icon-down': !item.isPercentUp }"></i></td>
25 |     </tr>
26 |     </tbody>
27 |   </table>
28 | </div>


--------------------------------------------------------------------------------
/src/app/pages/tables/widgets/stripedRows.html:
--------------------------------------------------------------------------------
 1 | <div class="vertical-scroll">
 2 |   <table class="table table-striped">
 3 |     <thead>
 4 |     <tr>
 5 |       <th class="table-id">#</th>
 6 |       <th>First Name</th>
 7 |       <th>Last Name</th>
 8 |       <th>Username</th>
 9 |       <th>Email</th>
10 |       <th>Age</th>
11 |     </tr>
12 |     </thead>
13 |     <tbody>
14 |     <tr ng-repeat="item in smartTableData">
15 |       <td class="table-id">{{item.id}}</td>
16 |       <td>{{item.firstName}}</td>
17 |       <td>{{item.lastName}}</td>
18 |       <td>{{item.username}}</td>
19 |       <td><a class="email-link" ng-href="mailto:{{item.email}}">{{item.email}}</a></td>
20 |       <td>{{item.age}}</td>
21 |     </tr>
22 |     </tbody>
23 |   </table>
24 | </div>


--------------------------------------------------------------------------------
/src/app/pages/ui/alerts/alerts.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.ui.alerts', [])
 9 |       .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider) {
13 |     $stateProvider
14 |         .state('ui.alerts', {
15 |           url: '/alerts',
16 |           templateUrl: 'app/pages/ui/alerts/alerts.html',
17 |           title: 'Alerts',
18 |           sidebarMeta: {
19 |             order: 500,
20 |           },
21 |         });
22 |   }
23 | 
24 | })();
25 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/buttons/ButtonPageCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.ui.buttons')
 9 |       .controller('ButtonPageCtrl', ButtonPageCtrl);
10 | 
11 |   /** @ngInject */
12 |   function ButtonPageCtrl($scope, $timeout) {
13 |     $scope.progressFunction = function() {
14 |       return $timeout(function() {}, 3000);
15 |     };
16 |   }
17 | 
18 | })();
19 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/buttons/buttons.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.ui.buttons', [])
 9 |       .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider) {
13 |     $stateProvider
14 |         .state('ui.buttons', {
15 |           url: '/buttons',
16 |           templateUrl: 'app/pages/ui/buttons/buttons.html',
17 |           controller: 'ButtonPageCtrl',
18 |           title: 'Buttons',
19 |           sidebarMeta: {
20 |             order: 100,
21 |           },
22 |         });
23 |   }
24 | 
25 | })();
26 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/buttons/widgets/buttonGroups.html:
--------------------------------------------------------------------------------
 1 | <div class="btn-group-example">
 2 |   <div class="btn-group" role="group" aria-label="Basic example">
 3 |     <button type="button" class="btn btn-danger">Left</button>
 4 |     <button type="button" class="btn btn-danger">Middle</button>
 5 |     <button type="button" class="btn btn-danger">Right</button>
 6 |   </div>
 7 | </div>
 8 | 
 9 | <div class="btn-toolbar-example">
10 |   <div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups">
11 |     <div class="btn-group" role="group" aria-label="First group">
12 |       <button type="button" class="btn btn-primary">1</button>
13 |       <button type="button" class="btn btn-primary">2</button>
14 |       <button type="button" class="btn btn-primary">3</button>
15 |       <button type="button" class="btn btn-primary">4</button>
16 |     </div>
17 |     <div class="btn-group" role="group" aria-label="Second group">
18 |       <button type="button" class="btn btn-primary">5</button>
19 |       <button type="button" class="btn btn-primary">6</button>
20 |       <button type="button" class="btn btn-primary">7</button>
21 |     </div>
22 |     <div class="btn-group" role="group" aria-label="Third group">
23 |       <button type="button" class="btn btn-primary">8</button>
24 |     </div>
25 |   </div>
26 | </div>


--------------------------------------------------------------------------------
/src/app/pages/ui/buttons/widgets/iconButtons.html:
--------------------------------------------------------------------------------
 1 | <ul class="btn-list clearfix">
 2 |   <li><button type="button" class="btn btn-primary btn-icon"><i class="ion-android-download"></i></button></li>
 3 |   <li><button type="button" class="btn btn-default btn-icon"><i class="ion-stats-bars"></i></button></li>
 4 |   <li><button type="button" class="btn btn-success btn-icon"><i class="ion-android-checkmark-circle"></i></button></li>
 5 |   <li><button type="button" class="btn btn-info btn-icon"><i class="ion-information"></i></button></li>
 6 |   <li><button type="button" class="btn btn-warning btn-icon"><i class="ion-android-warning"></i></button></li>
 7 |   <li><button type="button" class="btn btn-danger btn-icon"><i class="ion-nuclear"></i></button></li>
 8 | </ul>
 9 | 
10 | <h5 class="panel-subtitle">Buttons with icons</h5>
11 | 
12 | <ul class="btn-list clearfix">
13 |   <li><button type="button" class="btn btn-primary btn-with-icon"><i class="ion-android-download"></i>Primary</button></li>
14 |   <li><button type="button" class="btn btn-default btn-with-icon"><i class="ion-stats-bars"></i>Default</button></li>
15 |   <li><button type="button" class="btn btn-success btn-with-icon"><i class="ion-android-checkmark-circle"></i>Success</button></li>
16 |   <li><button type="button" class="btn btn-info btn-with-icon"><i class="ion-information"></i>Info</button></li>
17 |   <li><button type="button" class="btn btn-warning btn-with-icon"><i class="ion-android-warning"></i>Warning</button></li>
18 |   <li><button type="button" class="btn btn-danger btn-with-icon"><i class="ion-nuclear"></i>Danger</button></li>
19 | </ul>


--------------------------------------------------------------------------------
/src/app/pages/ui/buttons/widgets/largeButtons.html:
--------------------------------------------------------------------------------
1 | <div class="row btns-row btns-same-width-lg">
2 |   <div class="col-sm-4 col-xs-6"><button type="button" class="btn btn-primary btn-lg">Primary</button></div>
3 |   <div class="col-sm-4 col-xs-6"><button type="button" class="btn btn-success btn-lg">Success</button></div>
4 |   <div class="col-sm-4 col-xs-6"><button type="button" class="btn btn-info btn-lg">Info</button></div>
5 |   <div class="col-sm-4 col-xs-6"><button type="button" class="btn btn-default btn-lg">Default</button></div>
6 |   <div class="col-sm-4 col-xs-6"><button type="button" class="btn btn-warning btn-lg">Warning</button></div>
7 |   <div class="col-sm-4 col-xs-6"><button type="button" class="btn btn-danger btn-lg">Danger</button></div>
8 | </div>


--------------------------------------------------------------------------------
/src/app/pages/ui/grid/grid.html:
--------------------------------------------------------------------------------
 1 | <div class="widgets">
 2 | 
 3 |   <div class="row">
 4 |     <div class="col-md-12"
 5 |          ba-panel
 6 |          ba-panel-title="Inline Form"
 7 |          ba-panel-class="with-scroll">
 8 |       <div ng-include="'app/pages/ui/grid/baseGrid.html'"></div>
 9 |     </div>
10 |   </div>
11 | 
12 | </div>


--------------------------------------------------------------------------------
/src/app/pages/ui/grid/grid.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.ui.grid', [])
 9 |       .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider) {
13 |     $stateProvider
14 |         .state('ui.grid', {
15 |           url: '/grid',
16 |           templateUrl: 'app/pages/ui/grid/grid.html',
17 |           title: 'Grid',
18 |           sidebarMeta: {
19 |             order: 400,
20 |           },
21 |         });
22 |   }
23 | 
24 | })();
25 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/icons/icons.html:
--------------------------------------------------------------------------------
 1 | <div class="widgets">
 2 | 
 3 |   <div class="row">
 4 |     <div class="col-md-6">
 5 |       <div
 6 |           ba-panel
 7 |           ba-panel-title="Kameleon SVG Icons"
 8 |           ba-panel-class="with-scroll">
 9 |         <div include-with-scope="app/pages/ui/icons/widgets/kameleon.html"></div>
10 |       </div>
11 |       <div
12 |           ba-panel
13 |           ba-panel-title="Socicon"
14 |           ba-panel-class="with-scroll">
15 |         <div include-with-scope="app/pages/ui/icons/widgets/socicon.html"></div>
16 |       </div>
17 |     </div>
18 |     <div class="col-md-6">
19 |       <div
20 |           ba-panel
21 |           ba-panel-title="Icons With Rounded Background"
22 |           ba-panel-class="with-scroll">
23 |         <div include-with-scope="app/pages/ui/icons/widgets/kameleonRounded.html"></div>
24 |       </div>
25 |       <div
26 |           ba-panel
27 |           ba-panel-title="ionicons"
28 |           ba-panel-class="with-scroll">
29 |         <div include-with-scope="app/pages/ui/icons/widgets/ionicons.html"></div>
30 |       </div>
31 |       <div
32 |           ba-panel
33 |           ba-panel-title="Font Awesome Icons"
34 |           ba-panel-class="with-scroll">
35 |         <div include-with-scope="app/pages/ui/icons/widgets/fontAwesomeIcons.html"></div>
36 |       </div>
37 |     </div>
38 |   </div>
39 | 
40 | </div>


--------------------------------------------------------------------------------
/src/app/pages/ui/icons/icons.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.ui.icons', [])
 9 |       .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider) {
13 |     $stateProvider
14 |         .state('ui.icons', {
15 |           url: '/icons',
16 |           templateUrl: 'app/pages/ui/icons/icons.html',
17 |           controller: 'IconsPageCtrl',
18 |           title: 'Icons',
19 |           sidebarMeta: {
20 |             order: 200,
21 |           },
22 |         });
23 |   }
24 | 
25 | })();
26 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/icons/widgets/fontAwesomeIcons.html:
--------------------------------------------------------------------------------
1 | <div class="row icons-list success awesomeIcons">
2 |   <div class="col-xs-2" ng-repeat="icon in icons.fontAwesomeIcons"><i class="fa {{icon}}"></i></div>
3 | </div>
4 | <a href="http://fortawesome.github.io/Font-Awesome/icons/" target="_blank" class="see-all-icons">See all Font Awesome icons</a>


--------------------------------------------------------------------------------
/src/app/pages/ui/icons/widgets/ionicons.html:
--------------------------------------------------------------------------------
1 | <div class="row icons-list primary">
2 |   <div class="col-xs-2" ng-repeat="icon in icons.ionicons"><i class="{{icon}}"></i></div>
3 | </div>
4 | <a href="http://ionicons.com/" target="_blank" class="see-all-icons">See all ionicons icons</a>


--------------------------------------------------------------------------------
/src/app/pages/ui/icons/widgets/kameleon.html:
--------------------------------------------------------------------------------
1 | <div class="row clearfix">
2 |   <div class="kameleon-row" ng-repeat="icon in icons.kameleonIcons">
3 |     <div class="kameleon-icon"><img ng-src="{{:: (icon.img | kameleonImg )}}"><span>{{icon.name}}</span></div>
4 |   </div>
5 | </div>
6 | 
7 | <a href="http://www.kameleon.pics/" target="_blank" class="see-all-icons">See all Kamaleon icons</a>
8 | 
9 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/icons/widgets/kameleonRounded.html:
--------------------------------------------------------------------------------
1 | <div class="row clearfix">
2 |   <div class="kameleon-row" ng-repeat="icon in icons.kameleonRoundedIcons">
3 |     <div class="kameleon-icon with-round-bg {{icon.color}}"><img ng-src="{{::( icon.img | kameleonImg )}}"><span>{{ icon.name }}</span></div>
4 |   </div>
5 | </div>
6 | 
7 | <a href="http://www.kameleon.pics/" target="_blank" class="see-all-icons">See all Kamaleon icons</a>


--------------------------------------------------------------------------------
/src/app/pages/ui/icons/widgets/socicon.html:
--------------------------------------------------------------------------------
1 | <div class="row icons-list danger">
2 |   <div class="col-xs-2" ng-repeat="icon in icons.socicon"><i class="socicon">{{ icon }}</i></div>
3 | </div>
4 | <a href="http://www.socicon.com/chart.php" target="_blank" class="see-all-icons">See all Socicon icons</a>


--------------------------------------------------------------------------------
/src/app/pages/ui/modals/ModalsPageCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 18.01.2016
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.ui.notifications')
 9 |     .controller('ModalsPageCtrl', ModalsPageCtrl);
10 | 
11 |   /** @ngInject */
12 |   function ModalsPageCtrl($scope, $uibModal, baProgressModal) {
13 |     $scope.open = function (page, size) {
14 |       $uibModal.open({
15 |         animation: true,
16 |         templateUrl: page,
17 |         size: size,
18 |         resolve: {
19 |           items: function () {
20 |             return $scope.items;
21 |           }
22 |         }
23 |       });
24 |     };
25 |     $scope.openProgressDialog = baProgressModal.open;
26 |   }
27 | 
28 | 
29 | })();
30 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/modals/modalTemplates/basicModal.html:
--------------------------------------------------------------------------------
 1 | <div class="modal-content">
 2 |   <div class="modal-header">
 3 |     <button type="button" class="close" ng-click="$dismiss()" aria-label="Close">
 4 |       <em class="ion-ios-close-empty sn-link-close"></em>
 5 |     </button>
 6 |     <h4 class="modal-title" id="myModalLabel">Modal title</h4>
 7 |   </div>
 8 |   <div class="modal-body">
 9 |     Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet
10 |     dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper
11 |     suscipit lobortis nisl ut aliquip ex ea commodo consequat.
12 |   </div>
13 |   <div class="modal-footer">
14 |     <button type="button" class="btn btn-primary" ng-click="$dismiss()">Save changes</button>
15 |   </div>
16 | </div>
17 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/modals/modalTemplates/dangerModal.html:
--------------------------------------------------------------------------------
 1 | <div class="modal-content">
 2 |   <div class="modal-header bg-danger">
 3 |     <i class="ion-flame modal-icon"></i><span> Error</span>
 4 |   </div>
 5 |   <div class="modal-body text-center">Your information hasn't been saved!</div>
 6 |   <div class="modal-footer">
 7 |     <button type="button" class="btn btn-danger" ng-click="$dismiss()">OK</button>
 8 |   </div>
 9 | </div>
10 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/modals/modalTemplates/infoModal.html:
--------------------------------------------------------------------------------
 1 | <div class="modal-content">
 2 |   <div class="modal-header bg-info">
 3 |     <i class="ion-information-circled modal-icon"></i><span> Information</span>
 4 |   </div>
 5 |   <div class="modal-body text-center">You've got a new email!</div>
 6 |   <div class="modal-footer">
 7 |     <button type="button" class="btn btn-info" ng-click="$dismiss()">OK</button>
 8 |   </div>
 9 | </div>
10 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/modals/modalTemplates/largeModal.html:
--------------------------------------------------------------------------------
 1 | <div class="modal-content">
 2 |   <div class="modal-header">
 3 |     <button type="button" class="close" ng-click="$dismiss()" aria-label="Close">
 4 |       <em class="ion-ios-close-empty sn-link-close"></em>
 5 |     </button>
 6 |     <h4 class="modal-title">Modal title</h4>
 7 |   </div>
 8 |   <div class="modal-body">
 9 |     Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet
10 |     dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper
11 |     suscipit lobortis nisl ut aliquip ex ea commodo consequat.
12 |   </div>
13 |   <div class="modal-footer">
14 |     <button type="button" class="btn btn-primary" ng-click="$dismiss()">Save changes</button>
15 |   </div>
16 | </div>
17 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/modals/modalTemplates/smallModal.html:
--------------------------------------------------------------------------------
 1 | <div class="modal-content">
 2 |   <div class="modal-header">
 3 |     <button type="button" class="close" ng-click="$dismiss()" aria-label="Close">
 4 |       <em class="ion-ios-close-empty sn-link-close"></em>
 5 |     </button>
 6 |     <h4 class="modal-title">Modal title</h4>
 7 |   </div>
 8 |   <div class="modal-body">
 9 |     Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet
10 |     dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper
11 |     suscipit lobortis nisl ut aliquip ex ea commodo consequat.
12 |   </div>
13 |   <div class="modal-footer">
14 |     <button type="button" class="btn btn-primary" ng-click="$dismiss()">Save changes</button>
15 |   </div>
16 | </div>
17 | 
18 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/modals/modalTemplates/successModal.html:
--------------------------------------------------------------------------------
 1 | <div class="modal-content">
 2 |   <div class="modal-header bg-success">
 3 |     <i class="ion-checkmark modal-icon"></i><span> Success</span>
 4 |   </div>
 5 |   <div class="modal-body text-center">Your information has been saved successfully</div>
 6 |   <div class="modal-footer">
 7 |     <button type="button" class="btn btn-success" ng-click="$dismiss()">OK</button>
 8 |   </div>
 9 | </div>
10 | 
11 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/modals/modalTemplates/warningModal.html:
--------------------------------------------------------------------------------
 1 | <div class="modal-content">
 2 |   <div class="modal-header bg-warning">
 3 |     <i class="ion-android-warning modal-icon"></i><span> Warning</span>
 4 |   </div>
 5 |   <div class="modal-body text-center">Your computer is about to explode!</div>
 6 |   <div class="modal-footer">
 7 |     <button type="button" class="btn btn-warning" ng-click="$dismiss()">OK</button>
 8 |   </div>
 9 | </div>
10 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/modals/modals.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.ui.modals', [])
 9 |       .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider) {
13 |     $stateProvider
14 |         .state('ui.modals', {
15 |           url: '/modals',
16 |           templateUrl: 'app/pages/ui/modals/modals.html',
17 |           controller: 'ModalsPageCtrl',
18 |           title: 'Modals',
19 |           sidebarMeta: {
20 |             order: 300,
21 |           },
22 |         });
23 |   }
24 | 
25 | })();
26 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/modals/notifications/NotificationsCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.ui.modals')
 9 |       .controller('NotificationsCtrl', NotificationsCtrl);
10 | 
11 |   /** @ngInject */
12 |   function NotificationsCtrl($scope, toastr) {
13 |     $scope.showSuccessMsg = function() {
14 |       toastr.success('Your information has been saved successfully!');
15 |     };
16 | 
17 |     $scope.showInfoMsg = function() {
18 |       toastr.info("You've got a new email!", 'Information');
19 |     };
20 | 
21 |     $scope.showErrorMsg = function() {
22 |       toastr.error("Your information hasn't been saved!", 'Error');
23 |     };
24 | 
25 |     $scope.showWarningMsg = function() {
26 |       toastr.warning('Your computer is about to explode!', 'Warning');
27 |     };
28 |   }
29 | 
30 | })();
31 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/modals/notifications/notifications.html:
--------------------------------------------------------------------------------
1 | <div class="modal-buttons same-width clearfix" ng-controller="NotificationsCtrl">
2 |   <button type="button" class="btn btn-success" ng-click="showSuccessMsg()">Success Notification</button>
3 |   <button type="button" class="btn btn-info" ng-click="showInfoMsg()">Info Notification</button>
4 |   <button type="button" class="btn btn-warning" ng-click="showWarningMsg()">Warning Notification</button>
5 |   <button type="button" class="btn btn-danger" ng-click="showErrorMsg()">Danger Notification</button>
6 | </div>


--------------------------------------------------------------------------------
/src/app/pages/ui/modals/progressModal/ProgressModalCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * Created by n.poltoratsky
 3 |  * on 24.06.2016.
 4 |  */
 5 | (function () {
 6 |     'use strict';
 7 | 
 8 |     angular.module('BlurAdmin.pages.ui.modals')
 9 |         .controller('ProgressModalCtrl', ProgressModalCtrl);
10 | 
11 |     function ProgressModalCtrl($timeout, baProgressModal) {
12 | 
13 |         baProgressModal.setProgress(0);
14 | 
15 |         (function changeValue() {
16 |             if (baProgressModal.getProgress() >= 100) {
17 |                 baProgressModal.close();
18 |             } else {
19 |                 baProgressModal.setProgress(baProgressModal.getProgress() + 10);
20 |                 $timeout(changeValue, 300);
21 |             }
22 |         })();
23 |     }
24 | 
25 | })();
26 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/modals/progressModal/progressModal.html:
--------------------------------------------------------------------------------
1 | <div class="modal-content" ng-controller="ProgressModalCtrl">
2 |     <div class="modal-body">
3 |         <progress-bar-round>
4 |         </progress-bar-round>
5 |     </div>
6 |     <div class="modal-footer">
7 |     </div>
8 | </div>


--------------------------------------------------------------------------------
/src/app/pages/ui/notifications/notifications.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.ui.notifications', [])
 9 |       .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider) {
13 |     $stateProvider
14 |         .state('ui.notifications', {
15 |           url: '/notifications',
16 |           templateUrl: 'app/pages/ui/notifications/notifications.html',
17 |           controller: 'NotificationsPageCtrl',
18 |           title: 'Notifications',
19 |           sidebarMeta: {
20 |             order: 700,
21 |           },
22 |         });
23 |   }
24 | 
25 | })();
26 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/panels/panels.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 23.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.ui.panels', [])
 9 |       .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider) {
13 |     $stateProvider
14 |         .state('ui.panels', {
15 |           url: '/panels',
16 |           templateUrl: 'app/pages/ui/panels/panels.html',
17 |           controller: 'NotificationsPageCtrl',
18 |           title: 'Panels',
19 |           sidebarMeta: {
20 |             order: 1100,
21 |           },
22 |         });
23 |   }
24 | 
25 | })();
26 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/progressBars/progressBars.html:
--------------------------------------------------------------------------------
 1 | <div class="widgets">
 2 | 
 3 |   <div class="row">
 4 |     <div class="col-md-6">
 5 |       <div
 6 |           ba-panel
 7 |           ba-panel-title="Basic"
 8 |           ba-panel-class="with-scroll">
 9 |         <div ng-include="'app/pages/ui/progressBars/widgets/basic.html'"></div>
10 |       </div>
11 |       <div
12 |           ba-panel
13 |           ba-panel-title="Striped"
14 |           ba-panel-class="with-scroll">
15 |         <div ng-include="'app/pages/ui/progressBars/widgets/striped.html'"></div>
16 |       </div>
17 |     </div>
18 |     <div class="col-md-6">
19 |       <div
20 |           ba-panel
21 |           ba-panel-title="With label"
22 |           ba-panel-class="with-scroll">
23 |         <div ng-include="'app/pages/ui/progressBars/widgets/label.html'"></div>
24 |       </div>
25 |       <div
26 |           ba-panel
27 |           ba-panel-title="Animated"
28 |           ba-panel-class="with-scroll">
29 |         <div ng-include="'app/pages/ui/progressBars/widgets/animated.html'"></div>
30 |       </div>
31 |     </div>
32 |   </div>
33 | 
34 |   <div class="row">
35 |     <div class="col-md-12"
36 |          ba-panel
37 |          ba-panel-title="Stacked"
38 |          ba-panel-class="with-scroll">
39 |       <div ng-include="'app/pages/ui/progressBars/widgets/stacked.html'"></div>
40 |     </div>
41 |   </div>
42 | 
43 | </div>


--------------------------------------------------------------------------------
/src/app/pages/ui/progressBars/progressBars.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.ui.progressBars', [])
 9 |       .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider) {
13 |     $stateProvider
14 |         .state('ui.progressBars', {
15 |           url: '/progressBars',
16 |           templateUrl: 'app/pages/ui/progressBars/progressBars.html',
17 |           title: 'Progress Bars',
18 |           sidebarMeta: {
19 |             order: 600,
20 |           },
21 |         });
22 |   }
23 | 
24 | })();
25 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/progressBars/widgets/animated.html:
--------------------------------------------------------------------------------
 1 | <div class="progress">
 2 |   <div class="progress-bar progress-bar-success progress-bar-striped active" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 40%">
 3 |     <span class="sr-only">40% Complete (success)</span>
 4 |   </div>
 5 | </div>
 6 | <div class="progress">
 7 |   <div class="progress-bar progress-bar-info progress-bar-striped active" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 20%">
 8 |     <span class="sr-only">20% Complete</span>
 9 |   </div>
10 | </div>
11 | <div class="progress">
12 |   <div class="progress-bar progress-bar-warning progress-bar-striped active" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%">
13 |     <span class="sr-only">60% Complete (warning)</span>
14 |   </div>
15 | </div>
16 | <div class="progress">
17 |   <div class="progress-bar progress-bar-danger progress-bar-striped active" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width: 80%">
18 |     <span class="sr-only">80% Complete (danger)</span>
19 |   </div>
20 | </div>


--------------------------------------------------------------------------------
/src/app/pages/ui/progressBars/widgets/basic.html:
--------------------------------------------------------------------------------
 1 | <div class="progress">
 2 |   <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 40%">
 3 |     <span class="sr-only">40% Complete (success)</span>
 4 |   </div>
 5 | </div>
 6 | <div class="progress">
 7 |   <div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 20%">
 8 |     <span class="sr-only">20% Complete</span>
 9 |   </div>
10 | </div>
11 | <div class="progress">
12 |   <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%">
13 |     <span class="sr-only">60% Complete (warning)</span>
14 |   </div>
15 | </div>
16 | <div class="progress">
17 |   <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width: 80%">
18 |     <span class="sr-only">80% Complete (danger)</span>
19 |   </div>
20 | </div>


--------------------------------------------------------------------------------
/src/app/pages/ui/progressBars/widgets/label.html:
--------------------------------------------------------------------------------
 1 | <div class="progress">
 2 |   <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 40%">
 3 |     40% Complete (success)
 4 |   </div>
 5 | </div>
 6 | <div class="progress">
 7 |   <div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 20%">
 8 |     20% Complete
 9 |   </div>
10 | </div>
11 | <div class="progress">
12 |   <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%">
13 |     60% Complete (warning)
14 |   </div>
15 | </div>
16 | <div class="progress">
17 |   <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width: 80%">
18 |     80% Complete (danger)
19 |   </div>
20 | </div>


--------------------------------------------------------------------------------
/src/app/pages/ui/progressBars/widgets/stacked.html:
--------------------------------------------------------------------------------
 1 | <div class="progress">
 2 |   <div class="progress-bar progress-bar-success" style="width: 35%">
 3 |     <span class="sr-only">35% Complete (success)</span>
 4 |   </div>
 5 |   <div class="progress-bar progress-bar-warning progress-bar-striped" style="width: 20%">
 6 |     <span class="sr-only">20% Complete (warning)</span>
 7 |   </div>
 8 |   <div class="progress-bar progress-bar-danger" style="width: 10%">
 9 |     <span class="sr-only">10% Complete (danger)</span>
10 |   </div>
11 |   <div class="progress-bar progress-bar-info progress-bar-striped active" style="width: 20%">
12 |     <span class="sr-only">20% Complete (warning)</span>
13 |   </div>
14 | </div>


--------------------------------------------------------------------------------
/src/app/pages/ui/progressBars/widgets/striped.html:
--------------------------------------------------------------------------------
 1 | <div class="progress">
 2 |   <div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 40%">
 3 |     <span class="sr-only">40% Complete (success)</span>
 4 |   </div>
 5 | </div>
 6 | <div class="progress">
 7 |   <div class="progress-bar progress-bar-info progress-bar-striped" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 20%">
 8 |     <span class="sr-only">20% Complete</span>
 9 |   </div>
10 | </div>
11 | <div class="progress">
12 |   <div class="progress-bar progress-bar-warning progress-bar-striped" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%">
13 |     <span class="sr-only">60% Complete (warning)</span>
14 |   </div>
15 | </div>
16 | <div class="progress">
17 |   <div class="progress-bar progress-bar-danger progress-bar-striped" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width: 80%">
18 |     <span class="sr-only">80% Complete (danger)</span>
19 |   </div>
20 | </div>


--------------------------------------------------------------------------------
/src/app/pages/ui/slider/slider.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 12/22/15
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.ui.slider', [])
 9 |     .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider) {
13 |     $stateProvider
14 |         .state('ui.slider', {
15 |           url: '/slider',
16 |           templateUrl: 'app/pages/ui/slider/slider.html',
17 |           title: 'Sliders',
18 |           sidebarMeta: {
19 |             order: 1000,
20 |           },
21 |         });
22 |   }
23 | 
24 | })();
25 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/tabs/contextualAccordion.html:
--------------------------------------------------------------------------------
 1 | <uib-accordion>
 2 |   <uib-accordion-group heading="Primary" panel-class="panel-primary bootstrap-panel accordion-panel">
 3 |     Primary <i class="ion-heart"></i>
 4 |   </uib-accordion-group>
 5 |   <uib-accordion-group heading="Success" panel-class="panel-success bootstrap-panel accordion-panel">
 6 |     Success <i class="ion-checkmark-round"></i>
 7 |   </uib-accordion-group>
 8 |   <uib-accordion-group heading="Info" panel-class="panel-info bootstrap-panel accordion-panel">
 9 |     Info <i class="ion-information-circled"></i>
10 |   </uib-accordion-group>
11 |   <uib-accordion-group heading="Warning" panel-class="panel-warning bootstrap-panel accordion-panel">
12 |     Warning <i class="ion-alert"></i>
13 |   </uib-accordion-group>
14 |   <uib-accordion-group  heading="Danger"  panel-class="panel-danger bootstrap-panel accordion-panel">
15 |     Danger <i class="ion-nuclear"></i>
16 |   </uib-accordion-group>
17 | </uib-accordion>


--------------------------------------------------------------------------------
/src/app/pages/ui/tabs/sampleAccordion.html:
--------------------------------------------------------------------------------
 1 | <uib-accordion>
 2 |   <uib-accordion-group is-open="true" heading="Static Header, initially expanded" panel-class="bootstrap-panel accordion-panel panel-default">
 3 |     This content is straight in the template.
 4 |   </uib-accordion-group>
 5 |   <uib-accordion-group heading="Dynamic Body Content" panel-class="bootstrap-panel accordion-panel panel-default">
 6 |     <p>The body of the uib-accordion group grows to fit the contents</p>
 7 |     <button type="button" class="btn btn-primary btn-sm">Add Item</button>
 8 |   </uib-accordion-group>
 9 |   <uib-accordion-group heading="Custom template" panel-class="bootstrap-panel accordion-panel panel-default">
10 |     Hello
11 |   </uib-accordion-group>
12 |   <uib-accordion-group panel-class="bootstrap-panel accordion-panel panel-default">
13 |     <uib-accordion-heading>
14 |       I can have markup, too! <i class="fa pull-right ion-settings"></i>
15 |     </uib-accordion-heading>
16 |     This is just some content to illustrate fancy headings.
17 |   </uib-accordion-group>
18 | </uib-accordion>


--------------------------------------------------------------------------------
/src/app/pages/ui/tabs/tabs.html:
--------------------------------------------------------------------------------
 1 | <div>
 2 |   <div class="row">
 3 |     <div class="col-md-6">
 4 |       <div
 5 |           ba-panel
 6 |           ba-panel-class="with-scroll horizontal-tabs tabs-panel medium-panel">
 7 |         <div ng-include="'app/pages/ui/tabs/mainTabs.html'"></div>
 8 |       </div>
 9 |     </div>
10 |     <div class="col-md-6 tabset-group" ng-include="'app/pages/ui/tabs/sideTabs.html'"></div>
11 |   </div>
12 |   <div class="row accordions-row">
13 |     <div class="col-md-6" ng-include="'app/pages/ui/tabs/sampleAccordion.html'"></div>
14 |     <div class="col-md-6" ng-include="'app/pages/ui/tabs/contextualAccordion.html'"></div>
15 |   </div>
16 | </div>


--------------------------------------------------------------------------------
/src/app/pages/ui/tabs/tabs.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 21.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.ui.tabs', [])
 9 |       .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider) {
13 |     $stateProvider
14 |         .state('ui.tabs', {
15 |           url: '/tabs',
16 |           templateUrl: 'app/pages/ui/tabs/tabs.html',
17 |           title: 'Tabs & Accordions',
18 |           sidebarMeta: {
19 |             order: 800,
20 |           },
21 |         });
22 |   }
23 | 
24 | })();
25 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/typography/typography.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.ui.typography', [])
 9 |       .config(routeConfig);
10 | 
11 |   /** @ngInject */
12 |   function routeConfig($stateProvider) {
13 |     $stateProvider
14 |         .state('ui.typography', {
15 |           url: '/typography',
16 |           templateUrl: 'app/pages/ui/typography/typography.html',
17 |           title: 'Typography',
18 |           sidebarMeta: {
19 |             order: 0,
20 |           },
21 |         });
22 |   }
23 | 
24 | })();
25 | 


--------------------------------------------------------------------------------
/src/app/pages/ui/ui.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author k.danovsky
 3 |  * created on 12.01.2016
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.pages.ui', [
 9 |     'BlurAdmin.pages.ui.typography',
10 |     'BlurAdmin.pages.ui.buttons',
11 |     'BlurAdmin.pages.ui.icons',
12 |     'BlurAdmin.pages.ui.modals',
13 |     'BlurAdmin.pages.ui.grid',
14 |     'BlurAdmin.pages.ui.alerts',
15 |     'BlurAdmin.pages.ui.progressBars',
16 |     'BlurAdmin.pages.ui.notifications',
17 |     'BlurAdmin.pages.ui.tabs',
18 |     'BlurAdmin.pages.ui.slider',
19 |     'BlurAdmin.pages.ui.panels',
20 |   ])
21 |       .config(routeConfig);
22 | 
23 |   /** @ngInject */
24 |   function routeConfig($stateProvider) {
25 |     $stateProvider
26 |         .state('ui', {
27 |           url: '/ui',
28 |           template : '<ui-view  autoscroll="true" autoscroll-body-top></ui-view>',
29 |           abstract: true,
30 |           title: 'UI Features',
31 |           sidebarMeta: {
32 |             icon: 'ion-android-laptop',
33 |             order: 200,
34 |           },
35 |         });
36 |   }
37 | 
38 | })();
39 | 


--------------------------------------------------------------------------------
/src/app/theme/components/baPanel/baPanel.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 23.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   /**
 9 |    * Includes basic panel layout inside of current element.
10 |    */
11 |   angular.module('BlurAdmin.theme')
12 |       .directive('baPanel', baPanel);
13 | 
14 |   /** @ngInject */
15 |   function baPanel(baPanel, baConfig) {
16 |     return angular.extend({}, baPanel, {
17 |       template: function(el, attrs) {
18 |         var res = '<div  class="panel ' + (baConfig.theme.blur ? 'panel-blur' : '') + ' full-invisible ' + (attrs.baPanelClass || '');
19 |         res += '" zoom-in ' + (baConfig.theme.blur ? 'ba-panel-blur' : '') + '>';
20 |         res += baPanel.template(el, attrs);
21 |         res += '</div>';
22 |         return res;
23 |       }
24 |     });
25 |   }
26 | })();
27 | 


--------------------------------------------------------------------------------
/src/app/theme/components/baPanel/baPanel.service.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 23.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme')
 9 |       .factory('baPanel', baPanel);
10 | 
11 |   /** @ngInject */
12 |   function baPanel() {
13 | 
14 |     /** Base baPanel directive */
15 |     return {
16 |       restrict: 'A',
17 |       transclude: true,
18 |       template: function(elem, attrs) {
19 |         var res = '<div class="panel-body" ng-transclude></div>';
20 |         if (attrs.baPanelTitle) {
21 |           var titleTpl = '<div class="panel-heading clearfix"><h3 class="panel-title">' + attrs.baPanelTitle + '</h3></div>';
22 |           res = titleTpl + res; // title should be before
23 |         }
24 | 
25 |         return res;
26 |       }
27 |     };
28 |   }
29 | 
30 | })();
31 | 


--------------------------------------------------------------------------------
/src/app/theme/components/baPanel/baPanelBlur.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 15.01.2016
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme')
 9 |       .directive('baPanelBlur', baPanelBlur);
10 | 
11 |   /** @ngInject */
12 |   function baPanelBlur(baPanelBlurHelper, $window, $rootScope) {
13 |     var bodyBgSize;
14 | 
15 |     baPanelBlurHelper.bodyBgLoad().then(function() {
16 |       bodyBgSize = baPanelBlurHelper.getBodyBgImageSizes();
17 |     });
18 | 
19 |     $window.addEventListener('resize', function() {
20 |       bodyBgSize = baPanelBlurHelper.getBodyBgImageSizes();
21 |     });
22 | 
23 |     return {
24 |       restrict: 'A',
25 |       link: function($scope, elem) {
26 |         if(!$rootScope.$isMobile) {
27 |           baPanelBlurHelper.bodyBgLoad().then(function () {
28 |             setTimeout(recalculatePanelStyle);
29 |           });
30 |           $window.addEventListener('resize', recalculatePanelStyle);
31 | 
32 |           $scope.$on('$destroy', function () {
33 |             $window.removeEventListener('resize', recalculatePanelStyle);
34 |           });
35 |         }
36 | 
37 |         function recalculatePanelStyle() {
38 |           if (!bodyBgSize) {
39 |             return;
40 |           }
41 |           elem.css({
42 |             backgroundSize: Math.round(bodyBgSize.width) + 'px ' + Math.round(bodyBgSize.height) + 'px',
43 |             backgroundPosition: Math.floor(bodyBgSize.positionX) + 'px ' + Math.floor(bodyBgSize.positionY) + 'px'
44 |           });
45 |         }
46 | 
47 |       }
48 |     };
49 |   }
50 | 
51 | })();
52 | 


--------------------------------------------------------------------------------
/src/app/theme/components/baPanel/baPanelBlurHelper.service.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 15.01.2016
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme')
 9 |       .service('baPanelBlurHelper', baPanelBlurHelper);
10 | 
11 |   /** @ngInject */
12 |   function baPanelBlurHelper($q) {
13 |     var res = $q.defer();
14 |     var computedStyle = getComputedStyle(document.body, ':before');
15 |     var image = new Image();
16 |     image.src = computedStyle.backgroundImage.replace(/url\((['"])?(.*?)\1\)/gi, '$2');
17 |     image.onerror = function() {
18 |       res.reject();
19 |     };
20 |     image.onload = function() {
21 |       res.resolve();
22 |     };
23 | 
24 |     this.bodyBgLoad = function() {
25 |       return res.promise;
26 |     };
27 | 
28 |     this.getBodyBgImageSizes = function() {
29 |       var elemW = document.documentElement.clientWidth;
30 |       var elemH = document.documentElement.clientHeight;
31 |       if(elemW <= 640) return;
32 |       var imgRatio = (image.height / image.width);       // original img ratio
33 |       var containerRatio = (elemH / elemW);     // container ratio
34 | 
35 |       var finalHeight, finalWidth;
36 |       if (containerRatio > imgRatio) {
37 |         finalHeight = elemH;
38 |         finalWidth = (elemH / imgRatio);
39 |       } else {
40 |         finalWidth = elemW;
41 |         finalHeight = (elemW * imgRatio);
42 |       }
43 |       return { width: finalWidth, height: finalHeight, positionX: (elemW - finalWidth)/2, positionY: (elemH - finalHeight)/2};
44 |     };
45 |   }
46 | 
47 | })();
48 | 


--------------------------------------------------------------------------------
/src/app/theme/components/baPanel/baPanelSelf.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 23.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   /**
 9 |    * Represents current element as panel, adding all necessary classes.
10 |    */
11 |   angular.module('BlurAdmin.theme')
12 |       .directive('baPanelSelf', baPanelSelf);
13 | 
14 |   /** @ngInject */
15 |   function baPanelSelf(baPanel) {
16 |     return angular.extend({}, baPanel, {
17 |       link: function(scope, el, attrs) {
18 |         el.addClass('panel panel-white');
19 |         if (attrs.baPanelClass) {
20 |           el.addClass(attrs.baPanelClass);
21 |         }
22 |       }
23 |     });
24 |   }
25 | 
26 | })();
27 | 


--------------------------------------------------------------------------------
/src/app/theme/components/baSidebar/BaSidebarCtrl.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme.components')
 9 |     .controller('BaSidebarCtrl', BaSidebarCtrl);
10 | 
11 |   /** @ngInject */
12 |   function BaSidebarCtrl($scope, baSidebarService) {
13 | 
14 |     $scope.menuItems = baSidebarService.getMenuItems();
15 |     $scope.defaultSidebarState = $scope.menuItems[0].stateRef;
16 | 
17 |     $scope.hoverItem = function ($event) {
18 |       $scope.showHoverElem = true;
19 |       $scope.hoverElemHeight =  $event.currentTarget.clientHeight;
20 |       var menuTopValue = 66;
21 |       $scope.hoverElemTop = $event.currentTarget.getBoundingClientRect().top - menuTopValue;
22 |     };
23 | 
24 |     $scope.$on('$stateChangeSuccess', function () {
25 |       if (baSidebarService.canSidebarBeHidden()) {
26 |         baSidebarService.setMenuCollapsed(true);
27 |       }
28 |     });
29 |   }
30 | })();


--------------------------------------------------------------------------------
/src/app/theme/components/baWizard/baWizard.directive.js:
--------------------------------------------------------------------------------
 1 | (function() {
 2 |   'use strict';
 3 | 
 4 |   angular.module('BlurAdmin.theme.components')
 5 |     .directive('baWizard', baWizard);
 6 | 
 7 |   /** @ngInject */
 8 |   function baWizard() {
 9 |     return {
10 |       restrict: 'E',
11 |       transclude: true,
12 |       templateUrl: 'app/theme/components/baWizard/baWizard.html',
13 |       controllerAs: '$baWizardController',
14 |       controller: 'baWizardCtrl'
15 |     }
16 |   }
17 | })();
18 | 


--------------------------------------------------------------------------------
/src/app/theme/components/baWizard/baWizard.html:
--------------------------------------------------------------------------------
 1 | <div class="ba-wizard">
 2 |     <div class="ba-wizard-navigation-container">
 3 |         <div ng-repeat="t in $baWizardController.tabs" class="ba-wizard-navigation {{$baWizardController.tabNum == $index ? 'active' : ''}}" ng-click="$baWizardController.selectTab($index)">
 4 |             {{t.title}}
 5 |         </div>
 6 |     </div>
 7 | 
 8 |     <div class="progress ba-wizard-progress">
 9 |         <div class="progress-bar progress-bar-danger active" role="progressbar"
10 |              aria-valuemin="0" aria-valuemax="100" ng-style="{width: $baWizardController.progress + '%'}">
11 |         </div>
12 |     </div>
13 | 
14 |     <div class="steps" ng-transclude></div>
15 | 
16 |     <nav>
17 |         <ul class="pager ba-wizard-pager">
18 |             <li class="previous"><button  ng-disabled="$baWizardController.isFirstTab()" ng-click="$baWizardController.previousTab()" type="button" class=" btn btn-primary"><span aria-hidden="true">&larr;</span> previous</button></li>
19 |             <li class="next"> <button ng-disabled="$baWizardController.isLastTab()" ng-click="$baWizardController.nextTab()" type="button" class="btn btn-primary">next <span aria-hidden="true">&rarr;</span></button></li>
20 |         </ul>
21 |     </nav>
22 | </div>
23 | 


--------------------------------------------------------------------------------
/src/app/theme/components/baWizard/baWizardCtrl.js:
--------------------------------------------------------------------------------
 1 | (function() {
 2 |   'use strict';
 3 | 
 4 |   angular.module('BlurAdmin.theme.components')
 5 |     .controller('baWizardCtrl', baWizardCtrl);
 6 | 
 7 |   /** @ngInject */
 8 |   function baWizardCtrl($scope) {
 9 |     var vm = this;
10 |     vm.tabs = [];
11 | 
12 |     vm.tabNum = 0;
13 |     vm.progress = 0;
14 | 
15 |     vm.addTab = function(tab) {
16 |       tab.setPrev(vm.tabs[vm.tabs.length - 1]);
17 |       vm.tabs.push(tab);
18 |       vm.selectTab(0);
19 |     };
20 | 
21 |     $scope.$watch(angular.bind(vm, function () {return vm.tabNum;}), calcProgress);
22 | 
23 |     vm.selectTab = function (tabNum) {
24 |       vm.tabs[vm.tabNum].submit();
25 |       if (vm.tabs[tabNum].isAvailiable()) {
26 |         vm.tabNum = tabNum;
27 |         vm.tabs.forEach(function (t, tIndex) {
28 |           tIndex == vm.tabNum ? t.select(true) : t.select(false);
29 |         });
30 |       }
31 |     };
32 | 
33 |     vm.isFirstTab = function () {
34 |       return vm.tabNum == 0;
35 |     };
36 | 
37 |     vm.isLastTab = function () {
38 |       return vm.tabNum == vm.tabs.length - 1 ;
39 |     };
40 | 
41 |     vm.nextTab = function () {
42 |       vm.selectTab(vm.tabNum + 1)
43 |     };
44 | 
45 |     vm.previousTab = function () {
46 |       vm.selectTab(vm.tabNum - 1)
47 |     };
48 | 
49 |     function calcProgress() {
50 |       vm.progress = ((vm.tabNum + 1) / vm.tabs.length) * 100;
51 |     }
52 |   }
53 | })();
54 | 
55 | 


--------------------------------------------------------------------------------
/src/app/theme/components/baWizard/baWizardStep.directive.js:
--------------------------------------------------------------------------------
 1 | (function() {
 2 |   'use strict';
 3 | 
 4 |   angular.module('BlurAdmin.theme.components')
 5 |     .directive('baWizardStep', baWizardStep);
 6 | 
 7 |   /** @ngInject */
 8 |   function baWizardStep() {
 9 |     return {
10 |       restrict: 'E',
11 |       transclude: true,
12 |       require: '^baWizard',
13 |       scope: {
14 |         form: '='
15 |       },
16 |       templateUrl:  'app/theme/components/baWizard/baWizardStep.html',
17 |       link: function($scope, $element, $attrs, wizard) {
18 |         $scope.selected = true;
19 | 
20 |         var tab = {
21 |           title: $attrs.title,
22 |           select: select,
23 |           submit: submit,
24 |           isComplete: isComplete,
25 |           isAvailiable: isAvailiable,
26 |           prevTab: undefined,
27 |           setPrev: setPrev
28 |         };
29 | 
30 |         wizard.addTab(tab);
31 | 
32 |         function select(isSelected) {
33 |           if (isSelected) {
34 |             $scope.selected = true;
35 |           } else {
36 |             $scope.selected = false;
37 |           }
38 |         }
39 | 
40 |         function submit() {
41 |           $scope.form && $scope.form.$setSubmitted(true);
42 |         }
43 | 
44 |         function isComplete() {
45 |           return $scope.form ? $scope.form.$valid : true;
46 |         }
47 | 
48 |         function isAvailiable() {
49 |           return tab.prevTab ? tab.prevTab.isComplete() : true;
50 |         }
51 | 
52 |         function setPrev(pTab) {
53 |           tab.prevTab = pTab;
54 |         }
55 |       }
56 |     };
57 |   }
58 | })();


--------------------------------------------------------------------------------
/src/app/theme/components/baWizard/baWizardStep.html:
--------------------------------------------------------------------------------
1 | <section ng-show="selected" class="step" ng-transclude></section>


--------------------------------------------------------------------------------
/src/app/theme/components/backTop/backTop.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme.components')
 9 |       .directive('backTop', backTop);
10 | 
11 |   /** @ngInject */
12 |   function backTop() {
13 |     return {
14 |       restrict: 'E',
15 |       templateUrl: 'app/theme/components/backTop/backTop.html',
16 |       controller: function () {
17 |         $('#backTop').backTop({
18 |           'position': 200,
19 |           'speed': 100
20 |         });
21 |       }
22 |     };
23 |   }
24 | 
25 | })();


--------------------------------------------------------------------------------
/src/app/theme/components/backTop/backTop.html:
--------------------------------------------------------------------------------
1 | <i class="fa fa-angle-up back-top" id="backTop" title="Back to Top"></i>
2 | 


--------------------------------------------------------------------------------
/src/app/theme/components/backTop/lib/jquery.backTop.min.js:
--------------------------------------------------------------------------------
1 | /* Minified js for jQuery BackTop */
2 | !function(o){o.fn.backTop=function(e){var n=this,i=o.extend({position:400,speed:500,color:"white"},e),t=i.position,c=i.speed,d=i.color;n.addClass("white"==d?"white":"red"==d?"red":"green"==d?"green":"black"),n.css({right:40,bottom:40,position:"fixed"}),o(document).scroll(function(){var e=o(window).scrollTop();e>=t?n.fadeIn(c):n.fadeOut(c)}),n.click(function(){o("html, body").animate({scrollTop:0},{duration:1200})})}}(jQuery);


--------------------------------------------------------------------------------
/src/app/theme/components/components.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | /**
 6 |  * @author v.lugovsky
 7 |  * created on 16.12.2015
 8 |  */
 9 | (function () {
10 |   'use strict';
11 | 
12 |   angular.module('BlurAdmin.theme.components', []);
13 | 
14 | })();
15 | 


--------------------------------------------------------------------------------
/src/app/theme/components/contentTop/contentTop.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme.components')
 9 |       .directive('contentTop', contentTop);
10 | 
11 |   /** @ngInject */
12 |   function contentTop($location, $state) {
13 |     return {
14 |       restrict: 'E',
15 |       templateUrl: 'app/theme/components/contentTop/contentTop.html',
16 |       link: function($scope) {
17 |         $scope.$watch(function () {
18 |           $scope.activePageTitle = $state.current.title;
19 |         });
20 |       }
21 |     };
22 |   }
23 | 
24 | })();


--------------------------------------------------------------------------------
/src/app/theme/components/contentTop/contentTop.html:
--------------------------------------------------------------------------------
1 | <div class="content-top clearfix">
2 |   <h1 class="al-title">{{ activePageTitle }}</h1>
3 | 
4 |   <ul class="breadcrumb al-breadcrumb">
5 |     <li>
6 |       <a href="#/dashboard">Home</a></li>
7 |     <li>{{ activePageTitle }}</li>
8 |   </ul>
9 | </div>


--------------------------------------------------------------------------------
/src/app/theme/components/msgCenter/msgCenter.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme.components')
 9 |       .directive('msgCenter', msgCenter);
10 | 
11 |   /** @ngInject */
12 |   function msgCenter() {
13 |     return {
14 |       restrict: 'E',
15 |       templateUrl: 'app/theme/components/msgCenter/msgCenter.html',
16 |       controller: 'MsgCenterCtrl'
17 |     };
18 |   }
19 | 
20 | })();


--------------------------------------------------------------------------------
/src/app/theme/components/pageTop/pageTop.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme.components')
 9 |       .directive('pageTop', pageTop);
10 | 
11 |   /** @ngInject */
12 |   function pageTop() {
13 |     return {
14 |       restrict: 'E',
15 |       templateUrl: 'app/theme/components/pageTop/pageTop.html'
16 |     };
17 |   }
18 | 
19 | })();


--------------------------------------------------------------------------------
/src/app/theme/components/pageTop/pageTop.html:
--------------------------------------------------------------------------------
 1 | <div class="page-top clearfix" scroll-position="scrolled" max-height="50" ng-class="{'scrolled': scrolled}">
 2 |   <a href="#/dashboard" class="al-logo clearfix"><span>Blur</span>Admin</a>
 3 |   <a href class="collapse-menu-link ion-navicon" ba-sidebar-toggle-menu></a>
 4 | 
 5 |   <div class="search">
 6 |     <i class="ion-ios-search-strong" ng-click="startSearch()"></i>
 7 |     <input id="searchInput" type="text" placeholder="Search for...">
 8 |   </div>
 9 | 
10 |   <div class="user-profile clearfix">
11 |     <div class="al-user-profile" uib-dropdown>
12 |       <a uib-dropdown-toggle class="profile-toggle-link">
13 |         <img ng-src="{{::( 'Nasta' | profilePicture )}}">
14 |       </a>
15 |       <ul  class="top-dropdown-menu profile-dropdown" uib-dropdown-menu>
16 |         <li><i class="dropdown-arr"></i></li>
17 |         <li><a href="#/profile"><i class="fa fa-user"></i>Profile</a></li>
18 |         <li><a href><i class="fa fa-cog"></i>Settings</a></li>
19 |         <li><a href class="signout"><i class="fa fa-power-off"></i>Sign out</a></li>
20 |       </ul>
21 |     </div>
22 |     <msg-center></msg-center>
23 |   </div>
24 | </div>


--------------------------------------------------------------------------------
/src/app/theme/components/progressBarRound/progressBarRound.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * Created by n.poltoratsky
 3 |  * on 28.06.2016.
 4 |  */
 5 | (function () {
 6 |     'use strict';
 7 | 
 8 |     angular.module('BlurAdmin.theme.components')
 9 |         .directive('progressBarRound', progressBarRound);
10 | 
11 |     /** @ngInject */
12 |     function progressBarRound(baProgressModal) {
13 |         return {
14 |             restrict: 'E',
15 |             templateUrl: 'app/theme/components/progressBarRound/progressBarRound.html',
16 |             link:function($scope, element, attrs) {
17 |                 $scope.baProgressDialog = baProgressModal;
18 |                 $scope.$watch(function () {
19 |                     return baProgressModal.getProgress();
20 |                 }, animateBar);
21 | 
22 |                 function animateBar() {
23 |                     var circle = element.find('#loader')[0];
24 |                     circle.setAttribute("stroke-dasharray", baProgressModal.getProgress() * 180 * Math.PI / 100 + ", 20000");
25 |                     $scope.progress = baProgressModal.getProgress();
26 |                 }
27 |             }
28 |         }
29 |     }
30 | })();


--------------------------------------------------------------------------------
/src/app/theme/components/progressBarRound/progressBarRound.html:
--------------------------------------------------------------------------------
1 | <svg class="center-block progress-bar-round" width="200" height="200">
2 |     <circle cx="100" cy="100" r="90" fill="none" stroke="#F8F8FF" stroke-width="8"/>
3 |     <circle cx="100" cy="100" r="90" fill="none" id="loader" class=""
4 |             stroke="#209e91" stroke-width="8" stroke-dasharray="0,20000"
5 |             transform="rotate(-90,100,100)" stroke-linecap="round"/>
6 |     <text text-anchor="middle" class="loading" x="100" y="90">Loading...</text>
7 |     <text class="percentage" text-anchor="middle" x="100" y="130">{{progress}}%</text>
8 | </svg>


--------------------------------------------------------------------------------
/src/app/theme/components/toastrLibConfig.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 15.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme.components')
 9 |       .config(toastrLibConfig);
10 | 
11 |   /** @ngInject */
12 |   function toastrLibConfig(toastrConfig) {
13 |     angular.extend(toastrConfig, {
14 |       closeButton: true,
15 |       closeHtml: '<button>&times;</button>',
16 |       timeOut: 5000,
17 |       autoDismiss: false,
18 |       containerId: 'toast-container',
19 |       maxOpened: 0,
20 |       newestOnTop: true,
21 |       positionClass: 'toast-top-right',
22 |       preventDuplicates: false,
23 |       preventOpenDuplicates: false,
24 |       target: 'body'
25 |     });
26 |   }
27 | })();


--------------------------------------------------------------------------------
/src/app/theme/components/widgets/widgets.directive.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme.components')
 9 |       .directive('widgets', widgets);
10 | 
11 |   /** @ngInject */
12 |   function widgets() {
13 |     return {
14 |       restrict: 'EA',
15 |       scope: {
16 |         ngModel: '='
17 |       },
18 |       templateUrl: 'app/theme/components/widgets/widgets.html',
19 |       replace: true
20 |     };
21 |   }
22 | 
23 | })();


--------------------------------------------------------------------------------
/src/app/theme/components/widgets/widgets.html:
--------------------------------------------------------------------------------
 1 | <div class="widgets">
 2 |   <div ng-repeat="widgetBlock in ngModel" ng-class="{'row': widgetBlock.widgets.length > 1}">
 3 |     <div ng-repeat="widgetCol in widgetBlock.widgets" ng-class="{'col-md-6': widgetBlock.widgets.length === 2}" ng-model="widgetCol" class="widgets-block">
 4 |       <div ba-panel ba-panel-title="{{::widget.title}}" ng-repeat="widget in widgetCol" ba-panel-class="with-scroll {{widget.panelClass}}">
 5 |         <div ng-include="widget.url"></div>
 6 |       </div>
 7 |     </div>
 8 |   </div>
 9 | </div>
10 | 


--------------------------------------------------------------------------------
/src/app/theme/directives/animatedChange.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * Change top "Daily Downloads", "Active Users" values with animation effect
 3 |  */
 4 | (function () {
 5 |   'use strict';
 6 | 
 7 |   angular.module('BlurAdmin.theme')
 8 |       .directive('animatedChange', animatedChange);
 9 | 
10 |   /** @ngInject */
11 |   function animatedChange($timeout) {
12 |     return {
13 |       link: function (scope, element) {
14 |         $timeout(function () {
15 |           var newValue = element.attr('new-value');
16 |           var oldvalue = parseInt(element.html());
17 | 
18 |           function changeValue(val) {
19 |             $timeout(function () {
20 |               element.html(val);
21 |             }, 30);
22 |           }
23 | 
24 |           if (newValue > oldvalue) {
25 |             for (var i = oldvalue; i <= newValue; i++) {
26 |               changeValue(i);
27 |             }
28 |           } else {
29 |             for (var j = oldvalue; j >= newValue; j--) {
30 |               changeValue(j);
31 |             }
32 |           }
33 |           $timeout(function () {
34 |             element.next().find('i').addClass('show-arr');
35 |           }, 500);
36 |         }, 3500);
37 |       }
38 |     };
39 |   }
40 | 
41 | })();


--------------------------------------------------------------------------------
/src/app/theme/directives/autoExpand.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * Auto expand textarea field
 3 |  */
 4 | (function () {
 5 |   'use strict';
 6 | 
 7 |   angular.module('BlurAdmin.theme')
 8 |       .directive('autoExpand', autoExpand);
 9 | 
10 |   /** @ngInject */
11 |   function autoExpand() {
12 |     return {
13 |       restrict: 'A',
14 |       link: function ($scope, elem) {
15 |         elem.bind('keydown', function ($event) {
16 |           var element = $event.target;
17 |           $(element).height(0);
18 |           var height = $(element)[0].scrollHeight;
19 |           height = (height < 16) ? 16 : height;
20 |           $(element).height(height);
21 |         });
22 | 
23 |         // Expand the textarea as soon as it is added to the DOM
24 |         setTimeout(function () {
25 |           var element = elem;
26 |           $(element).height(0);
27 |           var height = $(element)[0].scrollHeight;
28 |           height = (height < 16) ? 16 : height;
29 |           $(element).height(height);
30 |         }, 0)
31 |       }
32 |     };
33 |   }
34 | 
35 | })();


--------------------------------------------------------------------------------
/src/app/theme/directives/autoFocus.js:
--------------------------------------------------------------------------------
 1 | (function () {
 2 |   'use strict';
 3 | 
 4 |   angular.module('BlurAdmin.theme')
 5 |       .directive('autoFocus', autoFocus);
 6 | 
 7 |   /** @ngInject */
 8 |   function autoFocus($timeout, $parse) {
 9 |     return {
10 |       link: function (scope, element, attrs) {
11 |         var model = $parse(attrs.autoFocus);
12 |         scope.$watch(model, function (value) {
13 |           if (value === true) {
14 |             $timeout(function () {
15 |               element[0].focus();
16 |               element[0].select();
17 |             });
18 |           }
19 |         });
20 |         element.bind('blur', function () {
21 |           scope.$apply(model.assign(scope, false));
22 |         });
23 |       }
24 |     };
25 |   }
26 | 
27 | })();


--------------------------------------------------------------------------------
/src/app/theme/directives/includeWithScope.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme')
 9 |       .directive('includeWithScope', includeWithScope);
10 | 
11 |   /** @ngInject */
12 |   function includeWithScope() {
13 |     return {
14 |       restrict: 'AE',
15 |       templateUrl: function(ele, attrs) {
16 |         return attrs.includeWithScope;
17 |       }
18 |     };
19 |   }
20 | 
21 | })();
22 | 


--------------------------------------------------------------------------------
/src/app/theme/directives/ngFileSelect.js:
--------------------------------------------------------------------------------
 1 | (function () {
 2 |   'use strict';
 3 | 
 4 |   angular.module('BlurAdmin.theme')
 5 |       .directive('ngFileSelect', ngFileSelect);
 6 | 
 7 |   /** @ngInject */
 8 |   function ngFileSelect() {
 9 |     return {
10 |       link: function ($scope, el) {
11 |         el.bind('change', function (e) {
12 |           $scope.file = (e.srcElement || e.target).files[0];
13 |           $scope.getFile();
14 |         })
15 |       }
16 |     }
17 |   }
18 | 
19 | })();


--------------------------------------------------------------------------------
/src/app/theme/directives/scrollPosition.js:
--------------------------------------------------------------------------------
 1 | (function () {
 2 |   'use strict';
 3 | 
 4 |   angular.module('BlurAdmin.theme')
 5 |       .directive('scrollPosition', scrollPosition);
 6 | 
 7 |   /** @ngInject */
 8 |   function scrollPosition() {
 9 |     return {
10 |       scope: {
11 |         scrollPosition: '=',
12 |         maxHeight: '='
13 |       },
14 |       link: function (scope) {
15 |         $(window).on('scroll', function() {
16 |           var scrollTop = $(window).scrollTop() > scope.maxHeight;
17 |           if (scrollTop !== scope.prevScrollTop) {
18 |             scope.$apply(function() {
19 |               scope.scrollPosition = scrollTop;
20 |             });
21 |           }
22 |           scope.prevScrollTop = scrollTop;
23 |         });
24 |       }
25 |     };
26 |   }
27 | 
28 | })();


--------------------------------------------------------------------------------
/src/app/theme/directives/trackWidth.js:
--------------------------------------------------------------------------------
 1 | (function () {
 2 |   'use strict';
 3 | 
 4 |   angular.module('BlurAdmin.theme')
 5 |       .directive('trackWidth', trackWidth);
 6 | 
 7 |   /** @ngInject */
 8 |   function trackWidth() {
 9 |     return {
10 |       scope: {
11 |         trackWidth: '=',
12 |         minWidth: '=',
13 |       },
14 |       link: function (scope, element) {
15 |         scope.trackWidth = $(element).width() < scope.minWidth;
16 |         scope.prevTrackWidth = scope.trackWidth;
17 | 
18 |         $(window).resize(function() {
19 |           var trackWidth = $(element).width() < scope.minWidth;
20 |           if (trackWidth !== scope.prevTrackWidth) {
21 |             scope.$apply(function() {
22 |               scope.trackWidth = trackWidth;
23 |             });
24 |           }
25 |           scope.prevTrackWidth = trackWidth;
26 |         });
27 |       }
28 |     };
29 |   }
30 | 
31 | })();


--------------------------------------------------------------------------------
/src/app/theme/directives/zoomIn.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * Animated load block
 3 |  */
 4 | (function () {
 5 |   'use strict';
 6 | 
 7 |   angular.module('BlurAdmin.theme')
 8 |       .directive('zoomIn', zoomIn);
 9 | 
10 |   /** @ngInject */
11 |   function zoomIn($timeout, $rootScope) {
12 |     return {
13 |       restrict: 'A',
14 |       link: function ($scope, elem) {
15 |         var delay = 1000;
16 | 
17 |         if ($rootScope.$pageFinishedLoading) {
18 |           delay = 100;
19 |         }
20 | 
21 |         $timeout(function () {
22 |           elem.removeClass('full-invisible');
23 |           elem.addClass('animated zoomIn');
24 |         }, delay);
25 |       }
26 |     };
27 |   }
28 | 
29 | })();


--------------------------------------------------------------------------------
/src/app/theme/filters/image/appImage.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 17.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme')
 9 |       .filter('appImage', appImage);
10 | 
11 |   /** @ngInject */
12 |   function appImage(layoutPaths) {
13 |     return function(input) {
14 |       return layoutPaths.images.root + input;
15 |     };
16 |   }
17 | 
18 | })();
19 | 


--------------------------------------------------------------------------------
/src/app/theme/filters/image/kameleonImg.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 17.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme')
 9 |       .filter('kameleonImg', kameleonImg);
10 | 
11 |   /** @ngInject */
12 |   function kameleonImg(layoutPaths) {
13 |     return function(input) {
14 |       return layoutPaths.images.root + 'theme/icon/kameleon/' + input + '.svg';
15 |     };
16 |   }
17 | 
18 | })();
19 | 


--------------------------------------------------------------------------------
/src/app/theme/filters/image/profilePicture.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 17.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme')
 9 |       .filter('profilePicture', profilePicture);
10 | 
11 |   /** @ngInject */
12 |   function profilePicture(layoutPaths) {
13 |     return function(input, ext) {
14 |       ext = ext || 'png';
15 |       return layoutPaths.images.profile + input + '.' + ext;
16 |     };
17 |   }
18 | 
19 | })();
20 | 


--------------------------------------------------------------------------------
/src/app/theme/filters/text/removeHtml.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 23.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme')
 9 |     .filter('plainText', plainText);
10 | 
11 |   /** @ngInject */
12 |   function plainText() {
13 |     return function(text) {
14 |       return  text ? String(text).replace(/<[^>]+>/gm, '') : '';
15 |     };
16 |   }
17 | 
18 | })();
19 | 


--------------------------------------------------------------------------------
/src/app/theme/inputs/baSwitcher/baSwitcher.html:
--------------------------------------------------------------------------------
 1 | <label class="switcher-container">
 2 |   <input type="checkbox" ng-model="switcherValue">
 3 |   <div class="switcher" ng-class="::switcherStyle">
 4 |     <div class="handle-container">
 5 |       <span class="handle handle-on">ON</span>
 6 |       <span class="handle"></span>
 7 |       <span class="handle handle-off">OFF</span>
 8 |     </div>
 9 |   </div>
10 | </label>


--------------------------------------------------------------------------------
/src/app/theme/inputs/baSwitcher/baSwitcher.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 10.12.2016
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme.inputs')
 9 |       .directive('baSwitcher', baSwitcher);
10 | 
11 |   /** @ngInject */
12 |   function baSwitcher() {
13 |     return {
14 |       templateUrl: 'app/theme/inputs/baSwitcher/baSwitcher.html',
15 |       scope: {
16 |         switcherStyle: '@',
17 |         switcherValue: '='
18 |       }
19 |     };
20 |   }
21 | 
22 | })();
23 | 


--------------------------------------------------------------------------------
/src/app/theme/inputs/inputs.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 10.12.2016
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme.inputs', []);
 9 | 
10 | })();
11 | 


--------------------------------------------------------------------------------
/src/app/theme/services/baUtil.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 03.05.2016
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme')
 9 |       .service('baUtil', baUtil);
10 | 
11 |   /** @ngInject */
12 |   function baUtil() {
13 | 
14 |     this.isDescendant = function(parent, child) {
15 |       var node = child.parentNode;
16 |       while (node != null) {
17 |         if (node == parent) {
18 |           return true;
19 |         }
20 |         node = node.parentNode;
21 |       }
22 |       return false;
23 |     };
24 | 
25 |     this.hexToRGB = function(hex, alpha) {
26 |       var r = parseInt( hex.slice(1,3), 16 );
27 |       var g = parseInt( hex.slice(3,5), 16 );
28 |       var b = parseInt( hex.slice(5,7), 16 );
29 |       return 'rgba(' + r + ', ' + g + ', ' + b + ', ' + alpha + ')';
30 |     };
31 | 
32 |     this.hasAttr = function (elem, attrName) {
33 |       var attr = $(elem).attr(attrName);
34 |       return (typeof attr !== typeof undefined && attr !== false);
35 |     }
36 |   }
37 | })();
38 | 


--------------------------------------------------------------------------------
/src/app/theme/services/fileReader.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 16.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme')
 9 |       .service('fileReader', fileReader);
10 | 
11 |   /** @ngInject */
12 |   function fileReader($q) {
13 |     var onLoad = function(reader, deferred, scope) {
14 |       return function () {
15 |         scope.$apply(function () {
16 |           deferred.resolve(reader.result);
17 |         });
18 |       };
19 |     };
20 | 
21 |     var onError = function (reader, deferred, scope) {
22 |       return function () {
23 |         scope.$apply(function () {
24 |           deferred.reject(reader.result);
25 |         });
26 |       };
27 |     };
28 | 
29 |     var onProgress = function(reader, scope) {
30 |       return function (event) {
31 |         scope.$broadcast('fileProgress',
32 |             {
33 |               total: event.total,
34 |               loaded: event.loaded
35 |             });
36 |       };
37 |     };
38 | 
39 |     var getReader = function(deferred, scope) {
40 |       var reader = new FileReader();
41 |       reader.onload = onLoad(reader, deferred, scope);
42 |       reader.onerror = onError(reader, deferred, scope);
43 |       reader.onprogress = onProgress(reader, scope);
44 |       return reader;
45 |     };
46 | 
47 |     var readAsDataURL = function (file, scope) {
48 |       var deferred = $q.defer();
49 | 
50 |       var reader = getReader(deferred, scope);
51 |       reader.readAsDataURL(file);
52 | 
53 |       return deferred.promise;
54 |     };
55 | 
56 |     return {
57 |       readAsDataUrl: readAsDataURL
58 |     };
59 |   }
60 | })();


--------------------------------------------------------------------------------
/src/app/theme/services/preloader.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 3/1/16
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme')
 9 |     .service('preloader', preloader);
10 | 
11 |   /** @ngInject */
12 |   function preloader($q) {
13 |     return {
14 |       loadImg: function (src) {
15 |         var d = $q.defer();
16 |         var img = new Image();
17 |         img.src = src;
18 |         img.onload = function(){
19 |           d.resolve();
20 |         };
21 |         return d.promise;
22 |       },
23 |       loadAmCharts : function(){
24 |         var d = $q.defer();
25 |         AmCharts.ready(function(){
26 |           d.resolve();
27 |         });
28 |         return d.promise;
29 |       }
30 |     }
31 |   }
32 | 
33 | })();


--------------------------------------------------------------------------------
/src/app/theme/services/stopableInterval.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author a.demeshko
 3 |  * created on 12/21/15
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme')
 9 |     .service('stopableInterval', stopableInterval);
10 | 
11 |   /** @ngInject */
12 |   function stopableInterval($window) {
13 |     return {
14 |       start: function (interval, calback, time) {
15 |         function startInterval() {
16 |           return interval(calback, time);
17 |         }
18 | 
19 |         var i = startInterval();
20 | 
21 |         angular.element($window).bind('focus', function () {
22 |           if (i) interval.cancel(i);
23 |           i = startInterval();
24 |         });
25 | 
26 |         angular.element($window).bind('blur', function () {
27 |           if (i) interval.cancel(i);
28 |         });
29 |       }
30 |     }
31 |   }
32 | 
33 | })();


--------------------------------------------------------------------------------
/src/app/theme/theme.config.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * Created by k.danovsky on 13.05.2016.
 3 |  */
 4 | 
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme')
 9 |     .config(config);
10 | 
11 |   /** @ngInject */
12 |   function config(baConfigProvider, colorHelper, $provide) {
13 |     $provide.decorator('$uiViewScroll', uiViewScrollDecorator);
14 |     //baConfigProvider.changeTheme({blur: true});
15 |     //
16 |     //baConfigProvider.changeColors({
17 |     //  default: 'rgba(#000000, 0.2)',
18 |     //  defaultText: '#ffffff',
19 |     //  dashboard: {
20 |     //    white: '#ffffff',
21 |     //  },
22 |     //});
23 |   }
24 | 
25 |   /** @ngInject */
26 |   function uiViewScrollDecorator($delegate, $anchorScroll, baUtil) {
27 |     return function (uiViewElement) {
28 |       if (baUtil.hasAttr(uiViewElement, "autoscroll-body-top")) {
29 |         $anchorScroll();
30 |       } else {
31 |         $delegate(uiViewElement);
32 |       }
33 |     };
34 |   }
35 | })();
36 | 


--------------------------------------------------------------------------------
/src/app/theme/theme.module.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovsky
 3 |  * created on 15.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme', [
 9 |       'toastr',
10 |       'chart.js',
11 |       'angular-chartist',
12 |       'angular.morris-chart',
13 |       'textAngular',
14 |       'BlurAdmin.theme.components',
15 |       'BlurAdmin.theme.inputs'
16 |   ]);
17 | 
18 | })();
19 | 


--------------------------------------------------------------------------------
/src/app/theme/theme.run.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @author v.lugovksy
 3 |  * created on 15.12.2015
 4 |  */
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme')
 9 |     .run(themeRun);
10 | 
11 |   /** @ngInject */
12 |   function themeRun($timeout, $rootScope, layoutPaths, preloader, $q, baSidebarService, themeLayoutSettings) {
13 |     var whatToWait = [
14 |       preloader.loadAmCharts(),
15 |       $timeout(3000)
16 |     ];
17 | 
18 |     var theme = themeLayoutSettings;
19 |     if (theme.blur) {
20 |       if (theme.mobile) {
21 |         whatToWait.unshift(preloader.loadImg(layoutPaths.images.root + 'blur-bg-mobile.jpg'));
22 |       } else {
23 |         whatToWait.unshift(preloader.loadImg(layoutPaths.images.root + 'blur-bg.jpg'));
24 |         whatToWait.unshift(preloader.loadImg(layoutPaths.images.root + 'blur-bg-blurred.jpg'));
25 |       }
26 |     }
27 | 
28 |     $q.all(whatToWait).then(function () {
29 |       $rootScope.$pageFinishedLoading = true;
30 |     });
31 | 
32 |     $timeout(function () {
33 |       if (!$rootScope.$pageFinishedLoading) {
34 |         $rootScope.$pageFinishedLoading = true;
35 |       }
36 |     }, 7000);
37 | 
38 |     $rootScope.$baSidebarService = baSidebarService;
39 |   }
40 | 
41 | })();


--------------------------------------------------------------------------------
/src/app/theme/theme.service.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * Created by k.danovsky on 12.05.2016.
 3 |  */
 4 | 
 5 | (function () {
 6 |   'use strict';
 7 | 
 8 |   angular.module('BlurAdmin.theme')
 9 |     .service('themeLayoutSettings', themeLayoutSettings);
10 | 
11 |   /** @ngInject */
12 |   function themeLayoutSettings(baConfig) {
13 |     var isMobile = (/android|webos|iphone|ipad|ipod|blackberry|windows phone/).test(navigator.userAgent.toLowerCase());
14 |     var mobileClass = isMobile ? 'mobile' : '';
15 |     var blurClass = baConfig.theme.blur ? 'blur-theme' : '';
16 |     angular.element(document.body).addClass(mobileClass).addClass(blurClass);
17 | 
18 |     return {
19 |       blur: baConfig.theme.blur,
20 |       mobile: isMobile,
21 |     }
22 |   }
23 | 
24 | })();


--------------------------------------------------------------------------------
/src/assets/fonts/socicon.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/fonts/socicon.eot


--------------------------------------------------------------------------------
/src/assets/fonts/socicon.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/fonts/socicon.ttf


--------------------------------------------------------------------------------
/src/assets/fonts/socicon.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/fonts/socicon.woff


--------------------------------------------------------------------------------
/src/assets/fonts/socicon.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/fonts/socicon.woff2


--------------------------------------------------------------------------------
/src/assets/img/app/browsers/chrome.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" ?><!DOCTYPE svg  PUBLIC '-//W3C//DTD SVG 1.0//EN'  'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'><svg enable-background="new 0 0 32 32" height="32px" id="Layer_1" version="1.0" viewBox="0 0 32 32" width="32px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g><path d="M16,24.188c-1.625,0-3.104-0.438-4.438-1.312c-1.334-0.875-2.334-2-3-3.375L2,8c-1.375,2.459-2,5.209-2,8   c0,4,1.302,7.49,3.906,10.469c2.604,2.979,5.844,4.76,9.719,5.344l4.641-8.031C17.799,23.919,17.02,24.188,16,24.188z" fill="#4AAE48"/><path d="M10.969,9.531C12.447,8.386,14.125,8,16,8c0.25,0,13.75,0,13.75,0c-1.417-2.416-3.344-4.458-5.781-5.875   C21.531,0.709,18.875,0,16,0c-2.5,0-4.834,0.531-7,1.594C6.833,2.656,4.828,4.203,3.359,6.188L8,14   C8.458,12.209,9.489,10.678,10.969,9.531z" fill="#EA3939"/><path d="M30.797,10H21.5c1.625,1.625,2.688,3.709,2.688,6c0,1.709-0.479,3.271-1.438,4.688L16.188,32   c4.375-0.042,8.104-1.625,11.188-4.75C30.458,24.125,32,20.375,32,16C32,13.959,31.656,11.812,30.797,10z" fill="#FED14B"/><circle cx="16" cy="16" fill="#188FD1" r="6"/></g><g/><g/><g/><g/><g/><g/></svg>


--------------------------------------------------------------------------------
/src/assets/img/app/browsers/opera.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" ?><!DOCTYPE svg  PUBLIC '-//W3C//DTD SVG 1.0//EN'  'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'><svg enable-background="new 0 0 32 32" height="32px" id="Layer_1" version="1.0" viewBox="0 0 32 32" width="32px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g><path d="M26.737,4.375c2.842,2.917,4.264,6.75,4.264,11.5c0,4.334-1.422,8.104-4.264,11.312   C23.895,30.396,20.295,32,15.938,32c-4.316,0-7.885-1.604-10.706-4.812C2.41,23.979,1,20.209,1,15.875   c0-4.75,1.39-8.583,4.171-11.5C7.95,1.459,11.54,0,15.938,0C20.295,0,23.895,1.459,26.737,4.375z M21.291,11.062   c-0.124-1.291-0.373-2.552-0.747-3.781c-0.373-1.229-0.944-2.177-1.711-2.844c-0.769-0.666-1.733-1-2.895-1   c-1.162,0-2.116,0.323-2.863,0.969C12.328,5.053,11.778,6,11.426,7.25S10.835,9.75,10.71,11c-0.124,1.25-0.187,2.771-0.187,4.562   c0,1.125,0.021,2.073,0.062,2.844c0.04,0.771,0.113,1.709,0.218,2.812c0.103,1.104,0.27,2.031,0.498,2.781   c0.228,0.75,0.538,1.49,0.934,2.219c0.394,0.729,0.902,1.281,1.524,1.656s1.348,0.562,2.179,0.562c0.829,0,1.565-0.188,2.21-0.562   c0.643-0.375,1.161-0.927,1.556-1.656C20.098,25.49,20.42,24.75,20.669,24s0.436-1.677,0.56-2.781   c0.125-1.104,0.197-2.052,0.219-2.844c0.02-0.791,0.03-1.729,0.03-2.812C21.478,13.854,21.416,12.354,21.291,11.062z" fill="#EA3939"/></g><g/><g/><g/><g/><g/><g/></svg>


--------------------------------------------------------------------------------
/src/assets/img/app/browsers/safari.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" ?><svg enable-background="new 0.907 -0.205 32 32" height="32" viewBox="0.907 -0.205 32 32" width="32" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M16.907-.205c-8.836 0-16 7.164-16 16s7.164 16 16 16 16-7.164 16-16-7.164-16-16-16zm0 29c-7.18 0-13-5.82-13-13s5.82-13 13-13 13 5.82 13 13-5.82 13-13 13z" fill="#26A6D1" fill-rule="evenodd"/><path clip-rule="evenodd" d="M25.221 7.48l-6.192 10.436-4.242-4.243 10.434-6.193z" fill="#E2574C" fill-rule="evenodd"/><path clip-rule="evenodd" d="M8.594 24.11l10.435-6.193-4.242-4.243-6.193 10.436z" fill="#E4E7E7" fill-rule="evenodd"/></svg>


--------------------------------------------------------------------------------
/src/assets/img/app/feed/genom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/feed/genom.png


--------------------------------------------------------------------------------
/src/assets/img/app/feed/my-little-kitten.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/feed/my-little-kitten.png


--------------------------------------------------------------------------------
/src/assets/img/app/feed/new-york-location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/feed/new-york-location.png


--------------------------------------------------------------------------------
/src/assets/img/app/feed/vader-and-me-preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/feed/vader-and-me-preview.png


--------------------------------------------------------------------------------
/src/assets/img/app/my-app-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/my-app-logo.png


--------------------------------------------------------------------------------
/src/assets/img/app/profile/Alexander.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/profile/Alexander.png


--------------------------------------------------------------------------------
/src/assets/img/app/profile/Andrey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/profile/Andrey.png


--------------------------------------------------------------------------------
/src/assets/img/app/profile/Kostya.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/profile/Kostya.png


--------------------------------------------------------------------------------
/src/assets/img/app/profile/Nasta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/profile/Nasta.png


--------------------------------------------------------------------------------
/src/assets/img/app/profile/Nick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/profile/Nick.png


--------------------------------------------------------------------------------
/src/assets/img/app/profile/Vlad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/profile/Vlad.png


--------------------------------------------------------------------------------
/src/assets/img/app/skin-thumbnails/01_default.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/skin-thumbnails/01_default.jpg


--------------------------------------------------------------------------------
/src/assets/img/app/skin-thumbnails/02_transparent.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/skin-thumbnails/02_transparent.jpg


--------------------------------------------------------------------------------
/src/assets/img/app/skin-thumbnails/03_blue.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/skin-thumbnails/03_blue.jpg


--------------------------------------------------------------------------------
/src/assets/img/app/skin-thumbnails/04_peachy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/skin-thumbnails/04_peachy.jpg


--------------------------------------------------------------------------------
/src/assets/img/app/skin-thumbnails/05_material.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/skin-thumbnails/05_material.jpg


--------------------------------------------------------------------------------
/src/assets/img/app/skin-thumbnails/06_transblue.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/skin-thumbnails/06_transblue.jpg


--------------------------------------------------------------------------------
/src/assets/img/app/todo/check-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/todo/check-icon.png


--------------------------------------------------------------------------------
/src/assets/img/app/typography/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/typography/banner.png


--------------------------------------------------------------------------------
/src/assets/img/app/typography/typo01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/typography/typo01.png


--------------------------------------------------------------------------------
/src/assets/img/app/typography/typo03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/typography/typo03.png


--------------------------------------------------------------------------------
/src/assets/img/app/typography/typo04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/typography/typo04.png


--------------------------------------------------------------------------------
/src/assets/img/app/typography/typo05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/typography/typo05.png


--------------------------------------------------------------------------------
/src/assets/img/app/typography/typo06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/typography/typo06.png


--------------------------------------------------------------------------------
/src/assets/img/app/typography/typo07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/app/typography/typo07.png


--------------------------------------------------------------------------------
/src/assets/img/arrow-green-up.svg:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
 3 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 4 | <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 5 | 	 width="5px" height="13px" viewBox="0 0 5 13" enable-background="new 0 0 5 13" xml:space="preserve">
 6 | <g>
 7 | 	<g>
 8 | 		<path fill="#85BA54" d="M0,2.513C0.613,1.95,1.291,1.569,1.611,1.16C1.931,0.75,2.167,0.363,2.325,0h0.292
 9 | 			c0.199,0.419,0.456,0.825,0.771,1.217C3.703,1.61,4.391,1.961,5,2.507v0.487H3V13H2V2.995H0V2.513z"/>
10 | 	</g>
11 | </g>
12 | <g display="none">
13 | 	<g display="inline">
14 | 		<path fill="#85BA54" d="M0,2.518c0.613-0.564,1.291-0.946,1.611-1.356C1.931,0.752,2.167,0.363,2.325,0h0.292
15 | 			c0.199,0.42,0.456,0.826,0.771,1.219C3.703,1.613,4.391,1.965,5,2.512V3H3v10H2V3H0V2.518z"/>
16 | 	</g>
17 | </g>
18 | </svg>
19 | 


--------------------------------------------------------------------------------
/src/assets/img/arrow-red-down.svg:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
 3 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 4 | <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 5 | 	 width="5px" height="13px" viewBox="0 0 5 13" enable-background="new 0 0 5 13" xml:space="preserve">
 6 | <g display="none">
 7 | 	<g display="inline">
 8 | 		<path fill="#9d498c" d="M0,10.005h2V0h1v10.005h2v0.487c-0.609,0.546-1.297,0.897-1.612,1.291C3.073,12.175,2.816,12.581,2.617,13
 9 | 			H2.325c-0.158-0.363-0.395-0.75-0.714-1.16C1.291,11.431,0.613,11.05,0,10.487V10.005z"/>
10 | 	</g>
11 | </g>
12 | <g>
13 | 	<g>
14 | 		<path fill="#9d498c" d="M0,10h2V0h1v10h2v0.488c-0.609,0.547-1.297,0.899-1.611,1.293C3.073,12.174,2.816,12.58,2.617,13H2.325
15 | 			c-0.158-0.363-0.395-0.752-0.714-1.162C1.291,11.428,0.613,11.046,0,10.482V10z"/>
16 | 	</g>
17 | </g>
18 | </svg>
19 | 


--------------------------------------------------------------------------------
/src/assets/img/blue-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/blue-bg.jpg


--------------------------------------------------------------------------------
/src/assets/img/blur-bg-blurred.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/blur-bg-blurred.jpg


--------------------------------------------------------------------------------
/src/assets/img/blur-bg-mobile.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/blur-bg-mobile.jpg


--------------------------------------------------------------------------------
/src/assets/img/blur-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/blur-bg.jpg


--------------------------------------------------------------------------------
/src/assets/img/chernika.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/chernika.png


--------------------------------------------------------------------------------
/src/assets/img/face.svg:
--------------------------------------------------------------------------------
1 | <svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48">
2 |     <path fill="#DDDDDD" d="M23.99 4C12.94 4 4 12.95 4 24s8.94 20 19.99 20C35.04 44 44 35.05 44 24S35.04 4 23.99 4zM24 40c-8.84 0-16-7.16-16-16S15.16 8 24 8s16 7.16 16 16-7.16 16-16 16zm7-18c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3zm-14 0c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3zm7 13c4.66 0 8.61-2.91 10.21-7H13.79c1.6 4.09 5.55 7 10.21 7z"/>
3 | </svg>


--------------------------------------------------------------------------------
/src/assets/img/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/favicon-16x16.png


--------------------------------------------------------------------------------
/src/assets/img/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/favicon-32x32.png


--------------------------------------------------------------------------------
/src/assets/img/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/favicon-96x96.png


--------------------------------------------------------------------------------
/src/assets/img/green-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/green-bg.jpg


--------------------------------------------------------------------------------
/src/assets/img/money.svg:
--------------------------------------------------------------------------------
1 | <svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48">
2 |     <path fill="#DDDDDD" d="M23.6 21.8c-4.54-1.18-6-2.39-6-4.29 0-2.18 2.01-3.71 5.4-3.71 3.56 0 4.88 1.7 5 4.2h4.42c-.13-3.45-2.24-6.59-6.42-7.62V6h-6v4.32c-3.88.85-7 3.35-7 7.22 0 4.62 3.83 6.92 9.4 8.26 5.01 1.2 6 2.95 6 4.83 0 1.37-.97 3.57-5.4 3.57-4.12 0-5.75-1.85-5.96-4.2h-4.41c.25 4.38 3.52 6.83 7.37 7.66V42h6v-4.3c3.89-.75 7-3 7-7.11 0-5.66-4.86-7.6-9.4-8.79z"/>
3 | </svg>


--------------------------------------------------------------------------------
/src/assets/img/peachy-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/peachy-bg.jpg


--------------------------------------------------------------------------------
/src/assets/img/person.svg:
--------------------------------------------------------------------------------
1 | <svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48">
2 |     <path fill="#DDDDDD" d="M24 24c4.42 0 8-3.59 8-8 0-4.42-3.58-8-8-8s-8 3.58-8 8c0 4.41 3.58 8 8 8zm0 4c-5.33 0-16 2.67-16 8v4h32v-4c0-5.33-10.67-8-16-8z"/>
3 | </svg>


--------------------------------------------------------------------------------
/src/assets/img/refresh.svg:
--------------------------------------------------------------------------------
1 | <svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48">
2 |     <path fill="#DDDDDD" d="M35.3 12.7C32.41 9.8 28.42 8 24 8 15.16 8 8.02 15.16 8.02 24S15.16 40 24 40c7.45 0 13.69-5.1 15.46-12H35.3c-1.65 4.66-6.07 8-11.3 8-6.63 0-12-5.37-12-12s5.37-12 12-12c3.31 0 6.28 1.38 8.45 3.55L26 22h14V8l-4.7 4.7z"/>
3 | </svg>


--------------------------------------------------------------------------------
/src/assets/img/shopping-cart.svg:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="iso-8859-1"?>
 2 | <!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
 3 | <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 4 | 	 viewBox="0 0 459.529 459.529" style="enable-background:new 0 0 459.529 459.529;" xml:space="preserve" fill="#348779">
 5 | <g>
 6 | 	<g>
 7 | 		<path d="M17,55.231h48.733l69.417,251.033c1.983,7.367,8.783,12.467,16.433,12.467h213.35c6.8,0,12.75-3.967,15.583-10.2
 8 | 			l77.633-178.5c2.267-5.383,1.7-11.333-1.417-16.15c-3.117-4.817-8.5-7.65-14.167-7.65H206.833c-9.35,0-17,7.65-17,17
 9 | 			s7.65,17,17,17H416.5l-62.9,144.5H164.333L94.917,33.698c-1.983-7.367-8.783-12.467-16.433-12.467H17c-9.35,0-17,7.65-17,17
10 | 			S7.65,55.231,17,55.231z"/>
11 | 		<path d="M135.433,438.298c21.25,0,38.533-17.283,38.533-38.533s-17.283-38.533-38.533-38.533S96.9,378.514,96.9,399.764
12 | 			S114.183,438.298,135.433,438.298z"/>
13 | 		<path d="M376.267,438.298c0.85,0,1.983,0,2.833,0c10.2-0.85,19.55-5.383,26.35-13.317c6.8-7.65,9.917-17.567,9.35-28.05
14 | 			c-1.417-20.967-19.833-37.117-41.083-35.7c-21.25,1.417-37.117,20.117-35.7,41.083
15 | 			C339.433,422.431,356.15,438.298,376.267,438.298z"/>
16 | 	</g>
17 | </g>
18 | <g>
19 | </g>
20 | <g>
21 | </g>
22 | <g>
23 | </g>
24 | <g>
25 | </g>
26 | <g>
27 | </g>
28 | <g>
29 | </g>
30 | <g>
31 | </g>
32 | <g>
33 | </g>
34 | <g>
35 | </g>
36 | <g>
37 | </g>
38 | <g>
39 | </g>
40 | <g>
41 | </g>
42 | <g>
43 | </g>
44 | <g>
45 | </g>
46 | <g>
47 | </g>
48 | </svg>
49 | 


--------------------------------------------------------------------------------
/src/assets/img/theme/icon/feed/feed-location.svg:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="iso-8859-1"?>
 2 | <!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
 3 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 4 | <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 5 | 	 width="395.71px" height="395.71px" viewBox="0 0 395.71 395.71" style="enable-background:new 0 0 395.71 395.71;"
 6 | 	 xml:space="preserve">
 7 | <g>
 8 | 	<path fill="#FFFFFF" d="M197.849,0C122.131,0,60.531,61.609,60.531,137.329c0,72.887,124.591,243.177,129.896,250.388l4.951,6.738
 9 | 		c0.579,0.792,1.501,1.255,2.471,1.255c0.985,0,1.901-0.463,2.486-1.255l4.948-6.738c5.308-7.211,129.896-177.501,129.896-250.388
10 | 		C335.179,61.609,273.569,0,197.849,0z M197.849,88.138c27.13,0,49.191,22.062,49.191,49.191c0,27.115-22.062,49.191-49.191,49.191
11 | 		c-27.114,0-49.191-22.076-49.191-49.191C148.658,110.2,170.734,88.138,197.849,88.138z"/>
12 | </g>
13 | </svg>
14 | 


--------------------------------------------------------------------------------
/src/assets/img/theme/icon/feed/feed-video.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="UTF-8"?>
2 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3 | <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="512" height="512" viewBox="0 0 512 512">
4 |     <path d="M 256.00,0.00C 114.615,0.00,0.00,114.615,0.00,256.00s 114.615,256.00, 256.00,256.00s 256.00-114.615, 256.00-256.00S 397.385,0.00, 256.00,0.00z M 256.00,464.00 c-114.875,0.00-208.00-93.125-208.00-208.00S 141.125,48.00, 256.00,48.00s 208.00,93.125, 208.00,208.00S 370.875,464.00, 256.00,464.00zM 192.00,144.00L 384.00,256.00L 192.00,368.00 z" fill="#FFFFFF"/>
5 | </svg>
6 | 


--------------------------------------------------------------------------------
/src/assets/img/theme/no-photo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/theme/no-photo.png


--------------------------------------------------------------------------------
/src/assets/img/theme/palette.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/theme/palette.png


--------------------------------------------------------------------------------
/src/assets/img/transblue-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/img/transblue-bg.jpg


--------------------------------------------------------------------------------
/src/assets/pictures/pic-andrey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/pictures/pic-andrey.png


--------------------------------------------------------------------------------
/src/assets/pictures/pic-kostia.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/pictures/pic-kostia.png


--------------------------------------------------------------------------------
/src/assets/pictures/pic-nasta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/pictures/pic-nasta.png


--------------------------------------------------------------------------------
/src/assets/pictures/pic-profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/pictures/pic-profile.png


--------------------------------------------------------------------------------
/src/assets/pictures/pic-vova.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/pictures/pic-vova.png


--------------------------------------------------------------------------------
/src/assets/pictures/tinder-logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/assets/pictures/tinder-logo.jpg


--------------------------------------------------------------------------------
/src/sass/404.scss:
--------------------------------------------------------------------------------
 1 | @import "common.scss";
 2 | 
 3 | html {
 4 |   position: relative;
 5 |   min-width: 320px;
 6 | }
 7 | 
 8 | html, body {
 9 |   min-height: 100%;
10 |   height: 100%;
11 | }
12 | 
13 | body {
14 |   font: 12px/16px $font-family;
15 |   color: $default-text;
16 |   @include main-background();
17 |   display: flex;
18 |   align-items: center;
19 | }
20 | 
21 | .page-not-found-modal {
22 |   width: 638px;
23 |   margin: 0 auto;
24 |   @include bg-translucent-dark(0.5);
25 |   border-radius: 5px;
26 |   font-weight: $font-light;
27 |   color: #ffffff;
28 |   padding: 32px;
29 |   text-align: center;
30 | 
31 |   h1 {
32 |     font-weight: $font-light;
33 |     margin-bottom: 32px;
34 |   }
35 |   p {
36 |     font-size: 16px;
37 |     line-height: 24px;
38 |   }
39 |   a {
40 |     text-decoration: none;
41 |     outline: none;
42 |     transition: all 0.2s ease;
43 |     color: $primary;
44 |     display: inline-block;
45 |     &:hover {
46 |       color: $primary-dark;
47 |     }
48 |   }
49 | }


--------------------------------------------------------------------------------
/src/sass/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/sass/README.md


--------------------------------------------------------------------------------
/src/sass/app/_alerts.scss:
--------------------------------------------------------------------------------
 1 | .alert{
 2 |   color: $label-text;
 3 |   font-size: 13px;
 4 |   font-weight: $font-light;
 5 |   strong{
 6 |     font-weight: $font-normal;
 7 |   }
 8 |   .close{
 9 |     margin-top: -3px;
10 |   }
11 |   .alert-link{
12 |     font-weight: $font-normal;
13 |   }
14 |   .control-alert{
15 |     padding-top:10px ;
16 |     button{
17 |       margin-right: 10px;
18 |     }
19 |   }
20 | }
21 | 
22 | .closeable{
23 |   button{
24 |     color: $input-border;
25 |   }
26 | }
27 | 
28 | .bg-success {
29 |   background-color: rgba($success,0.85);
30 |   color: $label-text;
31 |   a{
32 |     color: $danger-dark;
33 |     &:hover{
34 |       color: $danger;
35 |     }
36 |   }
37 | }
38 | .bg-info {
39 |   background-color: rgba($info,0.85);
40 |   color: $label-text;
41 |   a{
42 |     color: $warning-light;
43 |     &:hover{
44 |       color: $warning;
45 |     }
46 |   }
47 | }
48 | .bg-warning {
49 |   background-color: rgba($warning,0.85);
50 |   color: $label-text;
51 |   a{
52 |     color: $danger-dark;
53 |     &:hover{
54 |       color: $danger;
55 |     }
56 |   }
57 | }
58 | .bg-danger {
59 |   background-color: rgba($danger,0.85);
60 |   color: $label-text;
61 |   a{
62 |     color: $warning-light;
63 |     &:hover{
64 |       color: $warning;
65 |     }
66 |   }
67 | }


--------------------------------------------------------------------------------
/src/sass/app/_dashboard.scss:
--------------------------------------------------------------------------------
 1 | @media screen and (min-width: 1620px) {
 2 |   .row.shift-up {
 3 |     > div {
 4 |       margin-top: -573px;
 5 |     }
 6 |   }
 7 | }
 8 | 
 9 | @media screen and (max-width: 1620px) {
10 |  .panel.feed-panel.large-panel {
11 |    height: 824px;
12 |  }
13 | }
14 | 
15 | .user-stats-panel {
16 |   .panel-title {
17 |     padding: 0 0 15px;
18 |   }
19 | }
20 | 
21 | .blurCalendar{
22 |   height: 475px;
23 | }


--------------------------------------------------------------------------------
/src/sass/app/_grid.scss:
--------------------------------------------------------------------------------
 1 | .show-grid div[class^=col-]{
 2 |   padding: 10px;
 3 |   box-sizing: border-box;
 4 |   div {
 5 |     color: $default-text;
 6 |     text-align: center;
 7 |     font-size: 18px;
 8 |     background-color: rgba($default-text, 0.3);
 9 |     padding: 12px 5px;
10 |   }
11 | }
12 | 
13 | .grid-h{
14 |   margin-top: 40px;
15 |   margin-bottom: 0;
16 |   &:first-child{
17 |     margin-top: 0;
18 |   }
19 | }
20 | 


--------------------------------------------------------------------------------
/src/sass/app/_modalNotifications.scss:
--------------------------------------------------------------------------------
 1 | .toast {
 2 |   background-color: $primary;
 3 | }
 4 | 
 5 | .toast-success {
 6 |   background-color: $success;
 7 | }
 8 | 
 9 | .toast-error {
10 |   background-color: $danger;
11 | }
12 | 
13 | .toast-info {
14 |   background-color: $info;
15 | }
16 | 
17 | .toast-warning {
18 |   background-color: $warning;
19 | }
20 | 
21 | #toast-container.toast-top-full-width > div, #toast-container.toast-bottom-full-width > div {
22 |   margin: 5px auto;
23 | }
24 | 


--------------------------------------------------------------------------------
/src/sass/app/_notifications.scss:
--------------------------------------------------------------------------------
 1 | .control {
 2 |   margin-bottom: 10px;
 3 |   .form-control {
 4 |     width: 75%;
 5 |   }
 6 |   span {
 7 |     white-space: pre-line;
 8 |   }
 9 | }
10 | 
11 | .notification-panel {
12 |   .control,
13 |   .radio,
14 |   label,
15 |   label.custom-checkbox > span,
16 |   label.custom-radio > span {
17 |     font-weight: $font-light;
18 |   }
19 | }
20 | 
21 | .radio-controls .custom-radio{
22 |     margin-top: 5px;
23 | }
24 | 
25 | @media (max-width: 991px) {
26 |   .toastr-radio-setup {
27 |     margin-left: 22px;
28 |   }
29 | }
30 | 
31 | .radio-header {
32 | 
33 |   margin-bottom: 0;
34 |   &.position-header {
35 |     margin-top: 15px;
36 |   }
37 | }
38 | 
39 | .button-row {
40 |   line-height: 37px;
41 |   button {
42 |     width: 125px;
43 |   }
44 | }
45 | 
46 | .result-toastr {
47 |   border-radius: 5px;
48 |   color: rgba(255, 255, 255, 0.9);
49 |   background-color: rgba(0, 0, 0, 0.33);
50 |   border: none;
51 | }
52 | 
53 | .sub-label {
54 |   margin-top: 5px;
55 | }
56 | 
57 | .toast-title {
58 |   font-weight: $font-normal;
59 | }
60 | 
61 | .toast-message {
62 |   font-weight: $font-light;
63 | }
64 | 
65 | #toast-container.toast-top-center, #toast-container.toast-bottom-center{
66 |   .toast{
67 |     margin-bottom: 5px;
68 |   }
69 | }
70 | 


--------------------------------------------------------------------------------
/src/sass/app/_slider.scss:
--------------------------------------------------------------------------------
 1 | .slider-box{
 2 |   min-height: 86px;
 3 | }
 4 | 
 5 | .irs-bar,
 6 | .irs-bar-edge,
 7 | .irs-line-left,
 8 | .irs-line-mid,
 9 | .irs-line-right,
10 | .irs-slider {
11 |   background-image: url(../assets/img/theme/vendor/ionrangeslider/img/sprite-skin-flat.png);
12 |   background-repeat: repeat-x;
13 | }


--------------------------------------------------------------------------------
/src/sass/app/_table.scss:
--------------------------------------------------------------------------------
1 | .table-panel {
2 |   height: 295px;
3 | }
4 | 


--------------------------------------------------------------------------------
/src/sass/app/_tabsPage.scss:
--------------------------------------------------------------------------------
 1 | .tabset-group {
 2 |   > div + div {
 3 |     margin-top: 15px;
 4 |   }
 5 | }
 6 | 
 7 | 
 8 | .panel.tabs-panel{
 9 |   .panel-body{
10 |     padding: 0;
11 |   }
12 |   .dropdown-menu{
13 |     min-width: 132px;
14 |     top: auto;
15 |     border: none;
16 |     border-bottom-left-radius: 5px;
17 |     border-bottom-right-radius: 5px;
18 |   }
19 |   &.with-scroll .panel-body{
20 |     height: 100%;
21 |   }
22 | }
23 | 
24 | .xsmall-panel {
25 |   .nav-tabs, .tab-content{
26 |     height: 100%;
27 |   }
28 | }
29 | .inline-icon{
30 |   display: inline-block;
31 |   margin: 20px 5px;
32 | }
33 | .panel.horizontal-tabs {
34 |   .tab-content{
35 |     height: calc(100% - 40px);
36 |   }
37 | }
38 | 
39 | 


--------------------------------------------------------------------------------
/src/sass/app/_tplSkinPanel.scss:
--------------------------------------------------------------------------------
 1 | .tpl-skin-panel {
 2 |   width: 300px;
 3 |   .tpl-skin-option {
 4 |     padding: 10px;
 5 |     line-height: 83px;
 6 |     color: $default-text;
 7 |     &:hover {
 8 |       cursor: pointer;
 9 |       background-color: $primary;
10 |     }
11 |     + .tpl-skin-option {
12 |       border-top: 1px solid $border-light;
13 |     }
14 |   }
15 |   .skin-thumbnail {
16 |     width: 100%;
17 |   }
18 | }


--------------------------------------------------------------------------------
/src/sass/app/_tree.scss:
--------------------------------------------------------------------------------
 1 | .tree-node{
 2 |   line-height: 25px;
 3 |   cursor: pointer;
 4 |   &.selected{
 5 |     background-color: $border-light ;
 6 |   }
 7 |   .control{
 8 |     cursor: pointer;
 9 |     font-size: 16px;
10 |     padding-left: 5px;
11 |   }
12 |   &:hover{
13 |     background-color: $input-border;
14 |   }
15 | }
16 | 
17 | .jstree-default a.jstree-clicked, .jstree-default a.jstree-hovered {
18 |   background-color: rgba(0, 0, 0, 0.25);
19 | }
20 | 
21 | .jstree-default a.jstree-anchor, .jstree-default a.jstree-wholerow{
22 |   &:hover{
23 |     background-color: rgba(0, 0, 0, 0.15);
24 |   }
25 | }
26 | 
27 | .control-side > div {
28 |   margin-top: 5px;
29 |   margin-bottom: 10px;
30 | 
31 |   .btn{
32 |     width: 100px;
33 |   }
34 | }
35 | 
36 | #tree-root{
37 |   border-left: 1px solid $border-light;
38 |   padding-left: 10px;
39 | }
40 | 
41 | .tree-panel{
42 |   height: 500px;
43 | }
44 | 
45 | .search-container{
46 |   margin-top: 10px;
47 | }


--------------------------------------------------------------------------------
/src/sass/app/maps/_google-maps.scss:
--------------------------------------------------------------------------------
1 | #google-maps {
2 |   width: 100%;
3 |   height: calc(100vh - 283px);
4 | }


--------------------------------------------------------------------------------
/src/sass/app/maps/_map-bubbles.scss:
--------------------------------------------------------------------------------
 1 | #map-bubbles {
 2 |   width: 100%;
 3 |   height: calc(100vh - 283px);
 4 |   font-size	: 11px;
 5 | }
 6 | 
 7 | /*
 8 | #chartdiv1 {
 9 |   background: #3f3f4f;
10 |   color:#ffffff;
11 |   width		: 100%;
12 |   height		: 500px;
13 |   font-size	: 11px;
14 | }*/
15 | 


--------------------------------------------------------------------------------
/src/sass/app/maps/_map-lines.scss:
--------------------------------------------------------------------------------
1 | #map-lines {
2 |   width: 100%;
3 |   height: calc(100vh - 283px);
4 | }


--------------------------------------------------------------------------------
/src/sass/common.scss:
--------------------------------------------------------------------------------
1 | @import 'theme/conf/mixins';
2 | @import 'theme/conf/colorScheme/mint';
3 | @import 'theme/conf/variables';
4 | 


--------------------------------------------------------------------------------
/src/sass/main.scss:
--------------------------------------------------------------------------------
1 | @import 'common';
2 | 
3 | // injector
4 | // endinjector


--------------------------------------------------------------------------------
/src/sass/theme/_blur-admin-theme.scss:
--------------------------------------------------------------------------------
 1 | .label {
 2 |   border-radius: 0;
 3 | }
 4 | 
 5 | .label-primary {
 6 |   background: $primary;
 7 | }
 8 | 
 9 | .label-info {
10 |   background: $primary-light;
11 | }
12 | 
13 | .label-success {
14 |   background: $success;
15 | }
16 | 
17 | .label-warning {
18 |   background: $warning;
19 | }
20 | 
21 | .label-danger {
22 |   background: $danger;
23 | }


--------------------------------------------------------------------------------
/src/sass/theme/_datePicker.scss:
--------------------------------------------------------------------------------
 1 | .datepicker {
 2 |   .btn:hover {
 3 |     transform: scale(1);
 4 |   }
 5 | 
 6 |   button.btn.btn-default {
 7 |     background-color: transparent;
 8 |   }
 9 | 
10 |   button.btn.btn-default.active {
11 |     background-color: $info;
12 |     color: white;
13 |   }
14 | 
15 |   button.btn.active span.ng-binding.text-info {
16 |     color: white;
17 |   }
18 | }
19 | 
20 | .uib-datepicker-wrap {
21 |   min-height:270px;
22 | }
23 | 
24 | .uib-datepicker span.ng-binding.text-muted {
25 |   color: $default-text;
26 | }
27 | .uib-datepicker-popup {
28 | 
29 |   background-color: $bootstrap-panel-bg;
30 |   border-width: 0;
31 |   color: black;
32 | 
33 |   button.btn {
34 |     color: black;
35 | 
36 |     .text-muted {
37 |       color: black;
38 |     }
39 |   }
40 | 
41 |   .glyphicon {
42 |     color: rgba($progress-background, 1);
43 |   }
44 | }


--------------------------------------------------------------------------------
/src/sass/theme/_icons.scss:
--------------------------------------------------------------------------------
 1 | @mixin svg-icon($url, $width:'', $height:'') {
 2 |   display: inline-block;
 3 |   background: url($url) no-repeat center;
 4 |   background-size: contain;
 5 |   vertical-align: middle;
 6 |   @if ($width != '') {
 7 |     width: $width + px;
 8 |   }
 9 |   @if ($height != '') {
10 |     height: $height + px;
11 |   }
12 | }
13 | 
14 | @mixin svg-icon-class($iconName, $width:'', $height:'') {
15 |   .#{'i-' + $iconName} {
16 |     @include svg-icon($images-root + $iconName + '.svg', $width, $height);
17 |   }
18 | }
19 | 
20 | @include svg-icon-class('face', 80, 80);
21 | @include svg-icon-class('money', 80, 80);
22 | @include svg-icon-class('person', 80, 80);
23 | @include svg-icon-class('refresh', 80, 80);
24 | 
25 | 
26 | @mixin png-icon($url, $width, $height) {
27 |   display: inline-block;
28 |   width: $width + px;
29 |   height: $height + px;
30 |   background: url($url) no-repeat center center;
31 |   background-size: $width + px $height + px;
32 | }
33 | 
34 | @mixin png-icon-class($iconName, $width, $height) {
35 |   .#{'i-' + $iconName} {
36 |     @include png-icon($images-root + $iconName + '.png', $width, $height);
37 |   }
38 | }
39 | 
40 | //@include icon-png-class('arrival-icon', 11, 11);


--------------------------------------------------------------------------------
/src/sass/theme/_tree.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akveo/blur-admin/7f2596f4abebe8ff05131c67d4bea3d63178e021/src/sass/theme/_tree.scss


--------------------------------------------------------------------------------
/src/sass/theme/components/_accordion.scss:
--------------------------------------------------------------------------------
 1 | /*
 2 | .panel-group {
 3 |   > .panel {
 4 |     > .panel-heading {
 5 |       padding: 0;
 6 | 
 7 |       > h4.panel-title {
 8 |         height: 50px;
 9 |         width: 100%;
10 |         padding: 0;
11 | 
12 |         > a {
13 |           display: block;
14 |           padding: 15px 22px;
15 |           width: 100%;
16 |         }
17 |       }
18 |     }
19 |   }
20 | 
21 | }
22 | 
23 | .panel-collapse {
24 |   transition: height $default-animation-duration $default-animation-style;
25 |   .panel-body {
26 |     padding: 15px;
27 |   }
28 | }*/
29 | 


--------------------------------------------------------------------------------
/src/sass/theme/components/_baWizard.scss:
--------------------------------------------------------------------------------
 1 | .ba-wizard-progress {
 2 |   margin-top: 10px;
 3 |   height: 10px;
 4 | }
 5 | 
 6 | .ba-wizard-pager {
 7 |   .previous {
 8 |     float: left;
 9 |   }
10 |   .next {
11 |     float: right;
12 |   }
13 | }
14 | 
15 | .ba-wizard-navigation-container {
16 |   display: table;
17 |   table-layout: fixed;
18 |   width: 100%;
19 |   padding: 15px 0;
20 |   .ba-wizard-navigation {
21 |     cursor: pointer;
22 |     display: table-cell;
23 |     line-height: 1;
24 |     text-align: center;
25 |     font-weight: $font-light;
26 |     font-size: 18px;
27 |     opacity: 0.7;
28 |     &.active {
29 |       opacity: 0.95;
30 |     }
31 |   }
32 | }


--------------------------------------------------------------------------------
/src/sass/theme/components/_backTop.scss:
--------------------------------------------------------------------------------
 1 | $height: 52px;
 2 | 
 3 | .back-top {
 4 |   width: $height;
 5 |   height: $height;
 6 |   cursor: pointer;
 7 |   z-index: 9999;
 8 |   display: none;
 9 |   text-decoration: none;
10 |   right: (180px - $height) / 2;
11 |   bottom: 40px !important;
12 |   font-size: 45px;
13 |   text-align: center;
14 |   opacity: 0.4;
15 |   color: $primary;
16 |   background-color: rgba(0, 0, 0, 0.75);
17 |   border-radius: 50%;
18 |   line-height: 46px;
19 |   &:hover {
20 |     opacity: 0.8;
21 |   }
22 | }
23 | 


--------------------------------------------------------------------------------
/src/sass/theme/components/_contentTop.scss:
--------------------------------------------------------------------------------
 1 | .content-top {
 2 |   padding-top: 13px;
 3 |   padding-bottom: 27px;
 4 | }
 5 | 
 6 | h1.al-title {
 7 |   font-weight: $font-bold;
 8 |   color: $default-text;
 9 |   float: left;
10 |   width: auto;
11 |   margin: 0;
12 |   padding: 0;
13 |   font-size: 24px;
14 |   text-transform: uppercase;
15 |   opacity: 0.9;
16 | }
17 | 
18 | .al-breadcrumb {
19 |   background: none;
20 |   color: $default-text;
21 |   padding: 0;
22 |   margin: 0;
23 |   float: right;
24 |   padding-top: 11px;
25 |   li {
26 |     font-size: 18px;
27 |     font-weight: $font-normal;
28 |   }
29 | }
30 | 
31 | .al-look {
32 |   float: right;
33 |   margin-right: 10px;
34 |   padding-top: 10px;
35 |   > a {
36 |     font-size: 19px;
37 |   }
38 | }


--------------------------------------------------------------------------------
/src/sass/theme/components/_progressRound.scss:
--------------------------------------------------------------------------------
 1 | svg.progress-bar-round circle {
 2 |   transition: 0.5s;
 3 | }
 4 | .percentage {
 5 |   font-size: 46px;
 6 | }
 7 | .loading {
 8 |   font-size: 16px;
 9 | }
10 | .progress-bar-round {
11 |   margin-top: 15px;
12 | }


--------------------------------------------------------------------------------
/src/sass/theme/components/_widgets.scss:
--------------------------------------------------------------------------------
 1 | .widgets {
 2 |   transform: translate3d(0, 0, 0);
 3 |   backface-visibility: hidden;
 4 | }
 5 | 
 6 | .full-width {
 7 |   margin: 0 -22px -16px;
 8 | }
 9 | 
10 | .horizontal-scroll {
11 |   overflow-x: auto;
12 |   overflow-y: visible;
13 | }
14 | 
15 | .panel-subtitle {
16 |   font-size: 15px;
17 |   margin-bottom: 16px;
18 | }
19 | 
20 | .panel-nav {
21 |   position: absolute;
22 |   top: 12px;
23 |   right: 15px;
24 |   z-index: 2;
25 | 
26 |   i {
27 |     cursor: pointer;
28 |     font-size: 14px;
29 |     color: #bfbfbf;
30 |     margin-left: 11px;
31 |     display: inline-block;
32 | 
33 |     &.fa-minus {
34 |       margin-bottom: -1px;
35 |       vertical-align: bottom;
36 |     }
37 | 
38 |     &:hover {
39 |       color: $default-text;
40 |     }
41 |   }
42 | }


--------------------------------------------------------------------------------
/src/sass/theme/conf/_variables.scss:
--------------------------------------------------------------------------------
 1 | $font-family: 'Roboto', sans-serif;
 2 | 
 3 | $activelink: $primary;
 4 | $hoverlink: $primary-dark;
 5 | 
 6 | $resXXL: 1280px;
 7 | $resXL: 1170px;
 8 | $resL: 991px;
 9 | $resM: 768px;
10 | $resS: 660px;
11 | $resXS: 500px;
12 | $resXXS: 435px;
13 | $resMin: 320px;
14 | 
15 | $top-height: 66px;
16 | 
17 | $small-panel-height: 114px;
18 | $xsmall-panel-height: 187px;
19 | $medium-panel-height: 400px;
20 | $extra-medium-panel-height: 550px;
21 | $large-panel-height: 974px;
22 | 
23 | $default-animation-duration: 0.2s;
24 | $default-animation-style: ease-out;
25 | 
26 | $assets-root: '../assets/';
27 | $images-root: $assets-root + 'img/';
28 | $fonts-root: $assets-root + 'fonts/';
29 | $font-thin: 100;
30 | $font-light: 300;
31 | $font-normal: 400;
32 | $font-bold: 700;
33 | $font-ultraBold: 900;
34 | 
35 | $facebook-color: #3b5998;
36 | $twitter-color: #55acee;
37 | $google-color: #dd4b39;
38 | $linkedin-color: #0177B5;
39 | $github-color: #6b6b6b;
40 | $stackoverflow-color: #2F96E8;
41 | $dribble-color: #F26798;
42 | $behace-color: #0093FA;
43 | 


--------------------------------------------------------------------------------
/src/sass/theme/conf/colorScheme/_blur.scss:
--------------------------------------------------------------------------------
 1 | $default: rgba(#000000, 0.2);
 2 | $body-bg: #F0F3F4;
 3 | $default-text: #ffffff;
 4 | $help-text: #eeeeee;
 5 | $label-text: #ffffff;
 6 | 
 7 | $disabled: #dddddd;
 8 | $disabled-bg: transparent;
 9 | $border: #ffffff;
10 | $border-light: rgba(#ffffff, 0.2);
11 | $input-border: transparent;
12 | $input-background: rgba(#000000, 0.15);
13 | 
14 | $sidebar: rgba(#000000, 0.5);
15 | $sidebar-text: #ffffff;
16 | $dropdown-text: #7d7d7d;
17 | $bootstrap-panel-text: #7d7d7d;
18 | $bootstrap-panel-bg: #ffffff;
19 | $mail-box: whitesmoke;
20 | $auth-panel-background: rgba(#000000, 0.55);
21 | $progress-background: rgba(#000000, 0.15);
22 | $progress-default: #ffffff;
23 | 
24 | $primary: #209e91 !default;
25 | $info: #2dacd1 !default;
26 | $success: #90b900 !default;
27 | $warning: #dfb81c !default;
28 | $danger: #e85656 !default;
29 | 
30 | $primary-light: tint($primary, 30%);
31 | $info-light: tint($info, 30%);
32 | $success-light: tint($success, 30%);
33 | $warning-light: tint($warning, 30%);
34 | $danger-light: tint($danger, 30%);
35 | 
36 | $primary-dark: shade($primary, 15%);
37 | $info-dark: shade($info, 15%);
38 | $success-dark: shade($success, 15%);
39 | $warning-dark: shade($warning, 15%);
40 | $danger-dark: shade($danger, 15%);
41 | 
42 | $primary-bg: tint($primary, 20%);
43 | $info-bg: tint($info, 20%);
44 | $success-bg: tint($success, 20%);
45 | $warning-bg: tint($warning, 20%);
46 | $danger-bg: tint($danger, 20%);
47 | 


--------------------------------------------------------------------------------
/src/sass/theme/conf/colorScheme/_mint.scss:
--------------------------------------------------------------------------------
 1 | $default: #ffffff;
 2 | $body-bg: #F0F3F4;
 3 | $default-text: #666666;
 4 | $help-text: #949494;
 5 | $label-text: #ffffff;
 6 | 
 7 | $disabled: #dddddd;
 8 | $disabled-bg: tint($disabled, 15%);
 9 | $border: #d6d6d6;
10 | $border-light: tint($border, 15%);
11 | $input-border: shade($border, 5%);
12 | $input-background: #ffffff;
13 | 
14 | $sidebar: #1C2B36;
15 | $sidebar-text: #ffffff;
16 | $dropdown-text: #7d7d7d;
17 | $bootstrap-panel-text: #7d7d7d;
18 | $bootstrap-panel-bg: #ffffff;
19 | $mail-box: whitesmoke;
20 | $auth-panel-background: #ffffff;
21 | $progress-background: rgba(#000000, 0.07);
22 | $progress-default: rgba(#000000, 0.15);
23 | 
24 | $primary: #209e91 !default;
25 | $info: #2dacd1 !default;
26 | $success: #90b900 !default;
27 | $warning: #dfb81c !default;
28 | $danger: #e85656 !default;
29 | 
30 | $primary-light: tint($primary, 30%);
31 | $info-light: tint($info, 30%);
32 | $success-light: tint($success, 30%);
33 | $warning-light: tint($warning, 30%);
34 | $danger-light: tint($danger, 30%);
35 | 
36 | $primary-dark: shade($primary, 15%);
37 | $info-dark: shade($info, 15%);
38 | $success-dark: shade($success, 15%);
39 | $warning-dark: shade($warning, 15%);
40 | $danger-dark: shade($danger, 15%);
41 | 
42 | $primary-bg: tint($primary, 20%);
43 | $info-bg: tint($info, 20%);
44 | $success-bg: tint($success, 20%);
45 | $warning-bg: tint($warning, 20%);
46 | $danger-bg: tint($danger, 20%);
47 | 


--------------------------------------------------------------------------------
/src/sass/theme/dashboard/_amChart.scss:
--------------------------------------------------------------------------------
1 | #amchart {
2 |   width: 100%;
3 |   height: 350px;
4 |   margin-top: -20px;
5 | }


--------------------------------------------------------------------------------
/src/sass/theme/dashboard/_amChartMap.scss:
--------------------------------------------------------------------------------
1 | #amChartMap {
2 |   width: 100%;
3 |   height: 315px;
4 | }


--------------------------------------------------------------------------------
/src/sass/theme/dashboard/_popularApp.scss:
--------------------------------------------------------------------------------
 1 | .panel.popular-app {
 2 |   &>.panel-body {
 3 |     padding: 0;
 4 |   }
 5 | 
 6 |   .popular-app-img-container {
 7 |     position: relative;
 8 |     padding: 30px 0;
 9 |     height: 260px;
10 |     border-top-right-radius: 5px;
11 |     border-top-left-radius: 5px;
12 |     .popular-app-img {
13 |       width: 260px;
14 |       position: absolute;
15 |       transform: translateY(-50%) translate(-50%);
16 |       top: 50%;
17 |       left: 50%;
18 | 
19 |       .logo-text {
20 |         display: inline-block;
21 |         margin: 10px;
22 |         font-size: 26px;
23 |         color: $default-text;
24 |       }
25 |     }
26 |   }
27 |   .popular-app-cost {
28 |     font-size: 20px;
29 |     padding: 20px 22px;
30 |     border-bottom: 1px solid $border-light;
31 |     border-top: 1px solid $border-light;
32 |   }
33 |   .popular-app-info {
34 |     padding: 20px 22px;
35 |     font-size: 20px;
36 |     text-align: center;
37 |     .info-label {
38 |       font-size: 12px;
39 |     }
40 |   }
41 |   .row {
42 |     margin: 0;
43 |     > div {
44 |       padding: 0;
45 |     }
46 |   }
47 | }
48 | 
49 | .blur-theme .panel.popular-app .popular-app-img-container {
50 |   background: rgba(0, 0, 0, 0.5);
51 | }


--------------------------------------------------------------------------------
/src/sass/theme/dashboard/_weather.scss:
--------------------------------------------------------------------------------
 1 | .weather-wrapper {
 2 | 
 3 |   height: 100%;
 4 | 
 5 |   .weather-main-info {
 6 |     min-height: 140px;
 7 | 
 8 |     div i {
 9 |       display: inline-block;
10 |       width: 48px;
11 |       text-align: center;
12 |     }
13 | 
14 |     .city-date {
15 |       display: flex;
16 |       flex-wrap: wrap;
17 |       justify-content: space-between;
18 |     }
19 |   }
20 | 
21 |   .temp-by-time {
22 |     height: calc(100% - 210px);
23 |   }
24 | 
25 |   .select-day {
26 |     display: table;
27 |     table-layout: fixed;
28 |     width: 100%;
29 |     height: 70px;
30 | 
31 |     .day {
32 |       display: table-cell;
33 |       line-height: 1;
34 |       text-align: center;
35 |       cursor: pointer;
36 | 
37 |       i.weatherIcon {
38 |         transition: color 0.5s ease;
39 |       }
40 | 
41 |       .select-day-info {
42 |         vertical-align: super;
43 |       }
44 |     }
45 | 
46 |     .day:hover {
47 |       i.weatherIcon {
48 |         color: #40BDE8;
49 |       }
50 |     }
51 |   }
52 | 
53 |   .rightHeading {
54 |     display: block;
55 |     float: right;
56 |   }
57 | 
58 |   .weather-info {
59 |     display: inline-block;
60 |     vertical-align: super;
61 |   }
62 | 
63 |   .font-x1dot25 {
64 |     font-size: 1.5em;
65 |   }
66 | 
67 |   .font-x1dot5 {
68 |     font-size: 1.5em;
69 |   }
70 | 
71 |   .font-x2 {
72 |     font-size: 2em;
73 |   }
74 | 
75 |   .font-x3 {
76 |     font-size: 3em;
77 |   }
78 | 
79 | }
80 | 
81 | 
82 | 


--------------------------------------------------------------------------------