├── .bowerrc ├── .editorconfig ├── .gitattributes ├── .github ├── PULL_REQUEST_TEMPLATE └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── .htmlhintrc ├── .npmignore ├── .openshift ├── README.md ├── action_hooks │ └── README.md ├── cron │ ├── README.cron │ ├── daily │ │ └── .gitignore │ ├── hourly │ │ └── .gitignore │ ├── minutely │ │ └── .gitignore │ ├── monthly │ │ └── .gitignore │ └── weekly │ │ ├── README │ │ ├── chronograph │ │ ├── jobs.allow │ │ └── jobs.deny └── markers │ ├── README.md │ └── hot_deploy ├── .travis.yml ├── Gruntfile.js ├── LICENSE.txt ├── README.md ├── bower.json ├── component-conversion.md ├── contributing.md ├── deploy_key.enc ├── eslint.yaml ├── grunt-uidocs-index.tmpl ├── index.js ├── misc ├── angular-bootstrap-prettify.js ├── canvas-dot-grid.png ├── examples.css ├── grid-sidebar.png ├── logo-alt.svg ├── ng-docs.css ├── patternfly-logo.svg ├── patternfly-orb.svg ├── patternfly-showcase.css └── test-lib │ └── helpers.js ├── package-lock.json ├── package.json ├── scripts └── publish-ghpages.sh ├── server.js ├── src ├── autofocus │ └── autofocus.js ├── canvas-view │ ├── canvas-editor │ │ ├── canvas-editor.component.js │ │ ├── canvas-editor.html │ │ ├── canvas-editor.less │ │ ├── toolbox-items.component.js │ │ └── toolbox-items.html │ ├── canvas.module.js │ ├── canvas │ │ ├── canvas-component.js │ │ ├── canvas-viewmodel.js │ │ ├── canvas.html │ │ ├── canvas.less │ │ ├── dragging-service.js │ │ ├── mouse-capture-service.js │ │ ├── node-toolbar.component.js │ │ └── node-toolbar.html │ └── examples │ │ ├── canvas.js │ │ └── canvasEditor.js ├── card │ ├── aggregate-status │ │ ├── aggregate-status-card.component.js │ │ └── aggregate-status-card.html │ ├── basic │ │ ├── card-filter.html │ │ ├── card.component.js │ │ └── card.html │ ├── card.less │ ├── card.module.js │ ├── examples │ │ ├── card-timeframe.js │ │ └── card-trend.js │ └── info-status │ │ ├── info-status-card.component.js │ │ └── info-status-card.html ├── charts │ ├── c3 │ │ ├── c3-chart-defaults.js │ │ └── c3-chart.component.js │ ├── charts.less │ ├── charts.module.js │ ├── donut │ │ ├── donut-chart-component.js │ │ ├── donut-chart.html │ │ ├── donut-pct-chart-component.js │ │ ├── donut-pct-chart.html │ │ └── examples │ │ │ ├── donut-chart.js │ │ │ └── donut-pct-chart.js │ ├── empty-chart.component.js │ ├── empty-chart.html │ ├── heatmap │ │ ├── heatmap-legend.component.js │ │ ├── heatmap-legend.html │ │ ├── heatmap.component.js │ │ └── heatmap.html │ ├── line │ │ ├── line-chart.component.js │ │ └── line-chart.html │ ├── sparkline │ │ ├── sparkline-chart.component.js │ │ └── sparkline-chart.html │ ├── topology-map │ │ ├── examples │ │ │ └── topology-map-view.js │ │ ├── topology-map.html │ │ └── topologyMap.component.js │ ├── topology │ │ ├── examples │ │ │ └── topology-view.js │ │ └── topology.component.js │ ├── trends │ │ ├── trends-chart.component.js │ │ └── trends-chart.html │ ├── utilization-bar │ │ ├── utilization-bar-chart.component.js │ │ └── utilization-bar-chart.html │ └── utilization-trend │ │ ├── utilization-trend-chart-component.js │ │ └── utilization-trend-chart.html ├── datepicker │ ├── bootstrap-datepicker.component.js │ ├── datepicker.html │ ├── datepicker.less │ ├── datepicker.module.js │ └── examples │ │ └── bootstrap.datepicker.js ├── filters │ ├── examples │ │ ├── filter-panel.js │ │ └── filter.js │ ├── filter-panel │ │ ├── filter-panel-component.js │ │ ├── filter-panel-results-component.js │ │ ├── filter-panel-results.html │ │ └── filter-panel.html │ ├── filters.less │ ├── filters.module.js │ └── simple-filter │ │ ├── filter-component.js │ │ ├── filter-fields-component.js │ │ ├── filter-fields.html │ │ ├── filter-results-component.js │ │ ├── filter-results.html │ │ └── filter.html ├── form │ ├── examples │ │ ├── form-buttons.js │ │ ├── form-group.js │ │ └── remaining-chars-count.directive.js │ ├── form-buttons │ │ ├── form-buttons.component.js │ │ └── form-buttons.html │ ├── form-group │ │ ├── form-group.component.js │ │ └── form-group.html │ ├── form.module.js │ └── remaining-chars-count │ │ └── remaining-chars-count.directive.js ├── modals │ ├── about-modal │ │ ├── about-modal.component.js │ │ └── about-modal.html │ ├── examples │ │ ├── about-modal.js │ │ └── modal-overlay.js │ ├── modal-overlay │ │ ├── modal-overlay.component.js │ │ ├── modal-overlay.html │ │ └── modal-overlay.less │ └── modals.module.js ├── navigation │ ├── application-launcher.component.js │ ├── application-launcher.html │ ├── examples │ │ ├── vertical-navigation-basic.js │ │ └── vertical-navigation-router.js │ ├── navigation.module.js │ ├── vertical-navigation.component.js │ ├── vertical-navigation.html │ └── vertical-navigation.less ├── notification │ ├── examples │ │ └── notification-drawer.js │ ├── inline-notification.component.js │ ├── inline-notification.html │ ├── notification-drawer.component.js │ ├── notification-drawer.html │ ├── notification-list.html │ ├── notification.js │ ├── notification.less │ ├── notification.module.js │ ├── toast-notification-list.component.js │ ├── toast-notification-list.html │ ├── toast-notification.component.js │ └── toast-notification.html ├── pagination │ ├── pagination.component.js │ ├── pagination.html │ ├── pagination.less │ └── pagination.module.js ├── patternfly.module.js ├── select │ ├── bootstrap-select.directive.js │ ├── examples │ │ ├── bootstrap.select.js │ │ └── select.js │ ├── select.component.js │ ├── select.html │ └── select.module.js ├── sort │ ├── examples │ │ └── sort.js │ ├── sort-component.js │ ├── sort.html │ ├── sort.less │ └── sort.module.js ├── table │ ├── table.less │ ├── table.module.js │ └── tableview │ │ ├── examples │ │ ├── table-view-basic.js │ │ └── table-view-with-toolbar.js │ │ ├── table-view.component.js │ │ └── table-view.html ├── toolbars │ ├── examples │ │ └── toolbar.js │ ├── toolbar-component.js │ ├── toolbar.html │ ├── toolbars.less │ └── toolbars.module.js ├── utils │ ├── fixed-accordion.directive.js │ ├── transclude-directive.js │ ├── utils.js │ └── utils.module.js ├── validation │ └── validation.js ├── views │ ├── cardview │ │ ├── card-view.component.js │ │ └── card-view.html │ ├── empty-state.component.js │ ├── empty-state.html │ ├── listview │ │ ├── examples │ │ │ ├── clusters-content.html │ │ │ ├── hosts-content.html │ │ │ ├── images-content.html │ │ │ ├── list-view.js │ │ │ └── nodes-content.html │ │ ├── list-view.component.js │ │ ├── list-view.html │ │ └── list-view.less │ ├── view-utils.js │ ├── views.less │ └── views.module.js └── wizard │ ├── examples │ └── wizard.js │ ├── wizard-buttons.js │ ├── wizard-review-page.component.js │ ├── wizard-review-page.html │ ├── wizard-step.component.js │ ├── wizard-step.html │ ├── wizard-substep.component.js │ ├── wizard-substep.html │ ├── wizard.component.js │ ├── wizard.html │ ├── wizard.less │ └── wizard.module.js ├── styles ├── _angular-patternfly.scss ├── angular-patternfly.less ├── build.scss └── misc.less ├── test ├── autofocus │ └── autofocus.spec.js ├── card │ ├── aggregate-status │ │ └── aggregate-status-card.component.spec.js │ ├── basic │ │ └── card.spec.js │ └── info-status │ │ └── info-status-card.component.spec.js ├── charts │ ├── c3 │ │ └── c3.spec.js │ ├── donut │ │ └── donut-pct.spec.js │ ├── heatmap │ │ ├── heatmap-legend.spec.js │ │ └── heatmap.spec.js │ ├── sparkline │ │ └── sparkline-chart.spec.js │ ├── topology-map │ │ └── topology-map.spec.js │ ├── topology │ │ └── topology.spec.js │ ├── trends │ │ └── trends-chart.spec.js │ ├── utilization-bar │ │ └── utilization-bar.spec.js │ └── utilization-trend │ │ └── utilization-trend-chart.spec.js ├── datepicker │ └── bootstrap-datepicker.spec.js ├── eslint.yaml ├── filters │ ├── filter-panel.spec.js │ └── filter.spec.js ├── form │ ├── form-buttons │ │ └── form-buttons.component.spec.js │ ├── form-group │ │ └── form-group.component.spec.js │ └── remaining-chars-count │ │ └── remaining-chars-count.directive.spec.js ├── karma.conf.js ├── modals │ ├── about-modal.spec.js │ └── modal-overlay.spec.js ├── navigation │ ├── application-launcher.spec.js │ └── vertical-navigation.spec.js ├── notification │ ├── heading.html │ ├── notification-body.html │ ├── notification-drawer.spec.js │ ├── notification-footer.html │ ├── notification.spec.js │ ├── subheading.html │ ├── title.html │ ├── toast-notification-list.spec.js │ └── toast-notification.spec.js ├── pagination │ └── pagination.spec.js ├── select │ ├── bootstrap-select.spec.js │ └── select.spec.js ├── sort │ └── sort.spec.js ├── table │ └── tableview │ │ └── table-view.spec.js ├── toolbars │ └── toolbar.spec.js ├── utils │ ├── fixed-accordion.spec.js │ ├── specUtils.js │ ├── transclude-directive.spec.js │ └── utils.spec.js ├── validation │ └── validation.spec.js ├── views │ ├── cardview │ │ └── card-view.spec.js │ ├── empty-state.spec.js │ └── listview │ │ └── list-view.spec.js └── wizard │ ├── deployment.html │ ├── detail-page.html │ ├── review-second-template.html │ ├── review-template.html │ ├── script.js │ ├── summary.html │ ├── wizard-container-hidden.html │ ├── wizard-container-hide-back.html │ ├── wizard-container-step-class.html │ ├── wizard-container-step-side-class.html │ ├── wizard-container.html │ ├── wizard-test-steps.html │ └── wizard.spec.js └── wiki └── Community_Meetings ├── Angular_PF_Community_Meeting_Aug17.md └── Angular_PF_Community_Meeting_NOV2017.md /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "lib" 3 | } 4 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is for unifying the coding style for different editors and IDEs 2 | # editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | indent_style = space 12 | indent_size = 2 13 | 14 | [*.md] 15 | trim_trailing_whitespace = false 16 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text=auto 3 | 4 | # Explicitly declare text files you want to always be normalized and converted 5 | # to native line endings on checkout. 6 | *.c text 7 | *.h text 8 | 9 | # Declare files that will always have CRLF line endings on checkout. 10 | *.sln text eol=crlf 11 | 12 | # Denote all files that are truly binary and should not be modified. 13 | *.png binary 14 | *.jpg binary 15 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE: -------------------------------------------------------------------------------- 1 | ## Description 2 | State the overall goal of the pull request. Describe the list of changes the PR introduces and include any related PRs, Issues and/or Jira stories. 3 | 4 | ## PR Checklist 5 | 6 | - [ ] Unit tests are included 7 | - [ ] Screenshots are attached (if there are visual changes in the UI) 8 | - [ ] A Designer (@beanh66) is assigned as a reviewer (if there are visual changes in the UI) 9 | - [ ] A CSS rep (@cshinn) is assigned as a reviewer (if there are visual changes in the UI) 10 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | State the overall goal of the pull request. Describe the list of changes the PR introduces and include any related PRs, Issues and/or Jira stories. 3 | 4 | ## PR Checklist 5 | 6 | - [ ] Unit tests are included 7 | - [ ] Screenshots are attached (if there are visual changes in the UI) 8 | - [ ] A Designer (@beanh66) is assigned as a reviewer (if there are visual changes in the UI) 9 | - [ ] A CSS rep (@cshinn) is assigned as a reviewer (if there are visual changes in the UI) 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | lib 3 | .tmp 4 | coverage 5 | docs 6 | dist 7 | test-results.xml 8 | npm-debug.log 9 | 10 | .idea/* 11 | *.iml 12 | .vscode 13 | -------------------------------------------------------------------------------- /.htmlhintrc: -------------------------------------------------------------------------------- 1 | { 2 | "tagname-lowercase": true, 3 | "attr-lowercase": true, 4 | "attr-value-doublequotes": true, 5 | "tag-pair": true, 6 | "tag-self-close": true, 7 | "id-unique": true, 8 | "src-not-empty": true, 9 | "style-disabled": true, 10 | "img-alt-require": true, 11 | "spec-char-escape": true 12 | } 13 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # generic (system) files/extensions we don't want 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | .idea/* 10 | *.iml 11 | *.DS_Store 12 | lib-cov 13 | pids 14 | logs 15 | results 16 | test-results.xml 17 | dist/docs/components 18 | dist/docs/font* 19 | dist/docs/grunt-styles 20 | dist/docs/img 21 | dist/docs/index.html 22 | 23 | 24 | docs 25 | node_modules 26 | npm-debug.log 27 | lib 28 | .bower 29 | 30 | 31 | .openshift 32 | /misc 33 | /scripts 34 | /src 35 | /styles 36 | test 37 | .bowerrc 38 | .editorconfig 39 | .gitattributes 40 | .htmlhintrc 41 | .travis.yml 42 | bower.json 43 | deploy_key.enc 44 | eslint.yaml 45 | grunt-ngdocs-index.tmpl 46 | Gruntfile.js 47 | /server.js 48 | -------------------------------------------------------------------------------- /.openshift/README.md: -------------------------------------------------------------------------------- 1 | For information about .openshift directory, consult the documentation: 2 | 3 | http://openshift.github.io/documentation/oo_user_guide.html#the-openshift-directory 4 | -------------------------------------------------------------------------------- /.openshift/action_hooks/README.md: -------------------------------------------------------------------------------- 1 | For information about action hooks, consult the documentation: 2 | 3 | http://openshift.github.io/documentation/oo_user_guide.html#action-hooks 4 | -------------------------------------------------------------------------------- /.openshift/cron/README.cron: -------------------------------------------------------------------------------- 1 | Run scripts or jobs on a periodic basis 2 | ======================================= 3 | Any scripts or jobs added to the minutely, hourly, daily, weekly or monthly 4 | directories will be run on a scheduled basis (frequency is as indicated by the 5 | name of the directory) using run-parts. 6 | 7 | run-parts ignores any files that are hidden or dotfiles (.*) or backup 8 | files (*~ or *,) or named *.{rpmsave,rpmorig,rpmnew,swp,cfsaved} 9 | 10 | The presence of two specially named files jobs.deny and jobs.allow controls 11 | how run-parts executes your scripts/jobs. 12 | jobs.deny ===> Prevents specific scripts or jobs from being executed. 13 | jobs.allow ===> Only execute the named scripts or jobs (all other/non-named 14 | scripts that exist in this directory are ignored). 15 | 16 | The principles of jobs.deny and jobs.allow are the same as those of cron.deny 17 | and cron.allow and are described in detail at: 18 | http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-Automating_System_Tasks.html#s2-autotasks-cron-access 19 | 20 | See: man crontab or above link for more details and see the the weekly/ 21 | directory for an example. 22 | 23 | PLEASE NOTE: The Cron cartridge must be installed in order to run the configured jobs. 24 | 25 | For more information about cron, consult the documentation: 26 | http://openshift.github.io/documentation/oo_cartridge_guide.html#cron 27 | http://openshift.github.io/documentation/oo_user_guide.html#cron 28 | -------------------------------------------------------------------------------- /.openshift/cron/daily/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patternfly/angular-patternfly/6d989914831096425788abbaa1be7a1c6cf14ce0/.openshift/cron/daily/.gitignore -------------------------------------------------------------------------------- /.openshift/cron/hourly/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patternfly/angular-patternfly/6d989914831096425788abbaa1be7a1c6cf14ce0/.openshift/cron/hourly/.gitignore -------------------------------------------------------------------------------- /.openshift/cron/minutely/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patternfly/angular-patternfly/6d989914831096425788abbaa1be7a1c6cf14ce0/.openshift/cron/minutely/.gitignore -------------------------------------------------------------------------------- /.openshift/cron/monthly/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patternfly/angular-patternfly/6d989914831096425788abbaa1be7a1c6cf14ce0/.openshift/cron/monthly/.gitignore -------------------------------------------------------------------------------- /.openshift/cron/weekly/README: -------------------------------------------------------------------------------- 1 | Run scripts or jobs on a weekly basis 2 | ===================================== 3 | Any scripts or jobs added to this directory will be run on a scheduled basis 4 | (weekly) using run-parts. 5 | 6 | run-parts ignores any files that are hidden or dotfiles (.*) or backup 7 | files (*~ or *,) or named *.{rpmsave,rpmorig,rpmnew,swp,cfsaved} and handles 8 | the files named jobs.deny and jobs.allow specially. 9 | 10 | In this specific example, the chronograph script is the only script or job file 11 | executed on a weekly basis (due to white-listing it in jobs.allow). And the 12 | README and chrono.dat file are ignored either as a result of being black-listed 13 | in jobs.deny or because they are NOT white-listed in the jobs.allow file. 14 | 15 | For more details, please see ../README.cron file. 16 | 17 | -------------------------------------------------------------------------------- /.openshift/cron/weekly/chronograph: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "`date`: `cat $(dirname \"$0\")/chrono.dat`" 4 | -------------------------------------------------------------------------------- /.openshift/cron/weekly/jobs.allow: -------------------------------------------------------------------------------- 1 | # 2 | # Script or job files listed in here (one entry per line) will be 3 | # executed on a weekly-basis. 4 | # 5 | # Example: The chronograph script will be executed weekly but the README 6 | # and chrono.dat files in this directory will be ignored. 7 | # 8 | # The README file is actually ignored due to the entry in the 9 | # jobs.deny which is checked before jobs.allow (this file). 10 | # 11 | chronograph 12 | 13 | -------------------------------------------------------------------------------- /.openshift/cron/weekly/jobs.deny: -------------------------------------------------------------------------------- 1 | # 2 | # Any script or job files listed in here (one entry per line) will NOT be 3 | # executed (read as ignored by run-parts). 4 | # 5 | 6 | README 7 | 8 | -------------------------------------------------------------------------------- /.openshift/markers/README.md: -------------------------------------------------------------------------------- 1 | For information about markers, consult the documentation: 2 | 3 | http://openshift.github.io/documentation/oo_user_guide.html#markers 4 | 5 | NOTE: To enable hot deploy, simpy create a file named hot_deploy. 6 | -------------------------------------------------------------------------------- /.openshift/markers/hot_deploy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patternfly/angular-patternfly/6d989914831096425788abbaa1be7a1c6cf14ce0/.openshift/markers/hot_deploy -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - '8' 4 | 5 | cache: 6 | directories: 7 | - node_modules 8 | 9 | notifications: 10 | email: false 11 | 12 | env: 13 | global: 14 | - ENCRYPTION_LABEL: "aa286ccd339e" 15 | - COMMIT_AUTHOR_EMAIL: "patternfly-build@redhat.com" 16 | - TRIGGER_REPO_SLUG: "patternfly/angular-patternfly" 17 | - TRIGGER_REPO_BRANCH: "master" 18 | 19 | before_install: 20 | - npm install -g npm@5.4.0 21 | - npm install -g bower grunt-cli 22 | - npm install patternfly-eng-release 23 | 24 | install: true 25 | 26 | script: 27 | - sh -x ./node_modules/patternfly-eng-release/scripts/_build.sh -a 28 | 29 | after_success: 30 | - 'if [[ "$TRAVIS_SECURE_ENV_VARS" = "true" && "$TRAVIS_BRANCH" = "master-dist" ]]; then 31 | npm prune; 32 | npm run semantic-release-pre; 33 | sh -x ./node_modules/patternfly-eng-release/scripts/semantic-release/_bump.sh -a; 34 | sh -x ./node_modules/patternfly-eng-release/scripts/semantic-release/_publish-npm.sh || travis_terminate 0; 35 | npm run semantic-release-post; 36 | - sh -x ./node_modules/patternfly-eng-release/scripts/semantic-release/_publish-webjar.sh -a; 37 | fi' 38 | - ./scripts/publish-ghpages.sh -t docs 39 | 40 | branches: 41 | except: 42 | - /^v\d+\.\d+\.\d+$/ 43 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Red Hat, Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-patternfly", 3 | "version": "0.0.0-semantically-released", 4 | "authors": [ 5 | "Red Hat" 6 | ], 7 | "description": "Angular extension of the PatternFly project.", 8 | "keywords": [ 9 | "angular", 10 | "patternfly" 11 | ], 12 | "license": "MIT", 13 | "ignore": [ 14 | "**/.*", 15 | "docs", 16 | "lib", 17 | "misc", 18 | "node_modules", 19 | "scripts", 20 | "src", 21 | "/styles", 22 | "test", 23 | "deploy_key.enc", 24 | "eslint.yaml", 25 | "grunt-ngdocs-index.tmpl", 26 | "Gruntfile.js", 27 | "/index.js", 28 | "npm-shrinkwrap.json", 29 | "/server.js" 30 | ], 31 | "main": [ 32 | "dist/angular-patternfly.js", 33 | "dist/styles/angular-patternfly.css" 34 | ], 35 | "repository": { 36 | "type": "git", 37 | "url": "git://github.com/patternfly/angular-patternfly.git" 38 | }, 39 | "dependencies": { 40 | "angular": "^1.7.7", 41 | "angular-animate": "^1.7.7", 42 | "angular-sanitize": "^1.7.7", 43 | "angular-svg-base-fix": "2.0.0", 44 | "angular-ui-bootstrap": "2.3.x", 45 | "lodash": "4.x", 46 | "patternfly": "^3.37.1" 47 | }, 48 | "devDependencies": { 49 | "angular-mocks": "^1.7.7", 50 | "angular-ui-router": "^1.0.20" 51 | }, 52 | "overrides": { 53 | "datatables": { 54 | "main": [ 55 | "media/css/jquery.dataTables.css", 56 | "media/images/sort_asc.png", 57 | "media/images/sort_asc_disabled.png", 58 | "media/images/sort_both.png", 59 | "media/images/sort_desc.png", 60 | "media/images/sort_desc_disabled.png" 61 | ] 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /component-conversion.md: -------------------------------------------------------------------------------- 1 | # Converting Angular 1.4 style directives to Angular 1.5 2 | 3 | ## Directive Conversion 4 | 1. Rename file from name-directive.js to name.component.js 5 | 2. In the directive - modify the following: 6 | ``` 7 | angular.module('patternfly.notification').directive('pfNotificationDrawer', function ($window, $timeout) { 8 | 'use strict'; 9 | return { 10 | restrict: 'A', 11 | scope: { 12 | scrollSelector: '@', 13 | groupHeight: '@', 14 | groupClass: '@' 15 | }, 16 | controller: function($window, $timeout) { 17 | $scope.toggle = function () { 18 | 19 | 20 | 21 | angular.module('patternfly.notification').component('pfNotificationDrawer', { 22 | bindings: { 23 | scrollSelector: '@', 24 | groupHeight: '@', 25 | groupClass: '@' 26 | }, 27 | controller: function ($window, $timeout) { 28 | 'use strict'; 29 | var ctrl = this; 30 | 31 | ctrl.toggle = function () { 32 | ``` 33 | 3. Any initialization logic should be moved out of link functions and into $onInit functions 34 | 4. Any event listeners that are added for $window or $timeout events should be cleaned up in $onDestroy 35 | 5. $scope watchers should be moved to $onChanges for bound properties (defined in bindings object) 36 | 6. If DOM manipulation still must happen, there is a $postLink function. A bit more investigation will be necessary to see if these components can be upgraded to Angular 2. 37 | 38 | ## View Conversion 39 | In the template referenced by the templateUrl in the component, some changes have to be made. Anywhere a former $scope variable is referenced, you'll need to prepend $ctrl 40 | ``` 41 |
2 | 11 | 12 | 13 | 14 |
15 | -------------------------------------------------------------------------------- /src/datepicker/datepicker.less: -------------------------------------------------------------------------------- 1 | .uib-datepicker-popup { 2 | padding: 4px; 3 | 4 | *:focus { 5 | outline: none; 6 | } 7 | 8 | button { 9 | background: @color-pf-white; 10 | border: none; 11 | box-shadow: none; 12 | } 13 | 14 | th { 15 | height: 30px; 16 | } 17 | 18 | .uib-title { 19 | font-size: 14px; 20 | font-weight: 500; 21 | padding: 5px; 22 | 23 | strong { 24 | font-weight: normal; 25 | } 26 | } 27 | 28 | .uib-left { 29 | height: 30px; 30 | 31 | .glyphicon { 32 | display: none; 33 | } 34 | 35 | &::before { 36 | content: "\00AB"; 37 | } 38 | } 39 | 40 | .uib-right { 41 | height: 30px; 42 | 43 | .glyphicon { 44 | display: none; 45 | } 46 | 47 | &::before { 48 | content: "\00BB"; 49 | } 50 | } 51 | 52 | .uib-day { 53 | 54 | button.btn.btn-default { 55 | height: 30px; 56 | width: 30px; 57 | 58 | &:hover { 59 | background: @color-pf-blue-50; 60 | } 61 | 62 | &.active { 63 | background: @color-pf-blue-400; 64 | border-color: @color-pf-blue-600; 65 | color: @color-pf-white; 66 | box-shadow: none; 67 | padding: 0; 68 | 69 | .text-info { // this is today's date 70 | color: @color-pf-white; 71 | } 72 | } 73 | 74 | &:not(.active){ 75 | .text-info { // this is today's date 76 | color: @color-pf-black-800; 77 | background: @color-pf-gold-200; 78 | height: 30px; 79 | width: 30px; 80 | padding: 7px; 81 | display: inline-block; 82 | margin: -1px -7px -2px -7px; 83 | 84 | &:hover { 85 | background: @color-pf-blue-50; 86 | } 87 | } 88 | } 89 | } 90 | 91 | } 92 | 93 | .uib-button-bar { 94 | padding: 0; 95 | 96 | .btn-group { 97 | width: 100%; 98 | 99 | .uib-clear { 100 | display: none; 101 | } 102 | 103 | .uib-datepicker-current { 104 | color: @color-pf-black; 105 | width: 100%; 106 | font-size: 14px; 107 | font-weight: 500; 108 | height: 30px; 109 | 110 | &:hover { 111 | background: @color-pf-blue-50; 112 | } 113 | } 114 | } 115 | 116 | .uib-close { 117 | display: none; 118 | } 119 | } 120 | } 121 | -------------------------------------------------------------------------------- /src/datepicker/datepicker.module.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @name patternfly datepicker 3 | * 4 | * @description 5 | * Datepicker module for patternfly. 6 | * 7 | */ 8 | angular.module('patternfly.datepicker', ['ui.bootstrap']); 9 | 10 | -------------------------------------------------------------------------------- /src/datepicker/examples/bootstrap.datepicker.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @ngdoc directive 3 | * @name patternfly.datepicker.componenet:pfBootstrapDatepicker 4 | * @element pf-bootstrap-datepicker 5 | * 6 | * @param {date} date Must be a Javascript Date - to be displayed in the input. Can be left empty. 7 | * @param {string} format Optional date format for displayed dates ('MM/dd/yyyy' by default). 8 | * @param {function} on-date-change Optional user defined function which is called when the date is changed by the picker.onFilterChange
function where it can be used to filter a set of items.
14 | * changedFilterId
and changedFilterValue
are returned after user clicks on an 'x' in a tag to
25 | * denote which filter and filter value was cleared. changedFilterId
and changedFilterValue
are
26 | * not returned when 'Clear All Filters' link is clicked.
27 | * Saved?
23 |{{ status }}
24 | 31 |