Coder Social home page Coder Social logo

dynatrace-oss / barista Goto Github PK

View Code? Open in Web Editor NEW
139.0 139.0 77.0 72.98 MB

Barista - the Dynatrace design system. Tailored to scale.

Home Page: https://barista.dynatrace.com

License: Apache License 2.0

JavaScript 0.15% TypeScript 87.01% HTML 8.51% Dockerfile 0.08% Shell 0.02% SCSS 4.22% Handlebars 0.01%
angular angular-components component-library design-system typescript web

barista's People

Contributors

alexlagler avatar allexcd avatar andreas-doppelhofer avatar bardosmisi avatar bartoszbobin avatar ddprrt avatar dependabot-preview[bot] avatar dependabot[bot] avatar dorotkamakotka avatar dt-danielkaneider avatar ffriedl89 avatar furtnerl avatar laubi avatar lordrip avatar lukasholzer avatar mdelfabro-dt avatar moertenschlag avatar ninakammerlander avatar pawelmy avatar pedromosquera avatar peter-affenzeller avatar piotrl avatar rebu-dt avatar rowa-audil avatar rowaaudil avatar sherif-elhefnawy avatar subarroca avatar szymonbultrowicz avatar thomaspink avatar tomheller avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

barista's Issues

Barista: Handle internal environment

Make a setup to be able to build both Barista versions, internal and external. Use e.g. environment files to be able to also check within the content if parts of the content should be rendered or not. (ngIf="environment.internal").

Legend: Fix incompatibility with Angular's ivy renderer

Since we upgraded to angular version 8.2.12, I tried to build app with enabled Ivy to see how much needs to be done.

I found it tries to compile Angular Components modules and breaks on dt-legend with message:

ERROR in Cannot combine @Input decorators with query decorators

Googling it a bit and it looks we cannot use @Input() and @ContentChild() on one class field at once. I found in codebase following place where it should be fixed:
legend-item.ts#56-58

Fixing this issue would help us further investigation on Ivy upgrade.

Barista: Render table correctly

Check whether we can omit a css class on the table if the table is in the content area of the page.
Style table in content correctly

Barista: Generate overview pages json output

We already have a layout for overview pages, but still have to automatically create the JSON source for those pages. The output should be as shown in the code snipped below.

{
  "title": "Components",
  "id": "components",
  "layout": "overview",
  "description": "Read all about development with/of our Angular components in how to get started. If you run into any troubles, please join us in our Slack channel #help-ng-components.",
  "sections": [
    {
      "title": "Documentation",
      "items": [
        {
          "identifier": "Ge",
          "title": "Get started",
          "category": "Documentation",
          "badge": "favorite",
          "link": "/components/icon",
          "description": "This guide provides an overview how to get started with the Dynatrace Angular components library."
        },
        {
          "identifier": "Ho",
          "title": "How to contribute",
          "category": "Documentation",
          "badge": "deprecated",
          "link": "/components/icon",
          "description": "Find all the information about contributing to the Angular components library summarized on this page."
        },
        {
          "identifier": "De",
          "title": "Development",
          "category": "Documentation",
          "link": "/components/icon",
          "badge": "workinprogress",
          "description": "All useful commands to develop Angular components features are collected on this page."
        },
        {
          "identifier": "Co",
          "title": "Coding standards",
          "category": "Documentation",
          "link": "/components/icon",
          "badge": "experimental",
          "description": "To ensure good code quality we provide some coding standards that should be kept in mind when developing Angular components."
        },
        {
          "identifier": "Be",
          "title": "Best practices and patterns",
          "category": "Documentation",
          "link": "/components/icon"
        }
      ]
    },
    {
      "title": "Components",
      "items": [
        {
          "identifier": "Ge",
          "title": "Get started",
          "category": "Documentation",
          "badge": "favorite",
          "link": "/components/icon",
          "description": "This guide provides an overview how to get started with the Dynatrace Angular components library."
        },
        {
          "identifier": "Ho",
          "title": "How to contribute",
          "category": "Documentation",
          "link": "/components/icon",
          "description": "Find all the information about contributing to the Angular components library summarized on this page."
        },
        {
          "identifier": "Ho",
          "title": "How to contribute",
          "category": "Documentation",
          "link": "/components/icon",
          "description": "Find all the information about contributing to the Angular components library summarized on this page."
        },
        {
          "identifier": "De",
          "title": "Development",
          "category": "Documentation",
          "link": "/components/icon",
          "description": "All useful commands to develop Angular components features are collected on this page."
        },
        {
          "identifier": "Co",
          "title": "Coding standards",
          "category": "Documentation",
          "link": "/components/icon",
          "description": "To ensure good code quality we provide some coding standards that should be kept in mind when developing Angular components."
        },
        {
          "identifier": "Ho",
          "title": "How to contribute",
          "category": "Documentation",
          "link": "/components/icon",
          "description": "Find all the information about contributing to the Angular components library summarized on this page."
        }
      ]
    }
  ]
}

Barista: Recently ordered

Create service for recently ordered pages. To fill the recently ordered pages section on Barista's homepage with items, create a service that gets and sets the information in local storage.

Remove import sorting

Since this tool is not really extensible with the things we want we should remove it

Repository cleanup

  • Remove gradle, jenkinsfile, remove .npmrc using BFE
java -jar bfg.jar --delete-files Jenkinsfile, gradle, .npmrc --replace-text banned.txt angular-components.git
  • Remove templates folder in tools
  • Cleanup branches
  • Squash until 1.0.0
  • Rewrite git history
  • Adjust owners file
  • delete yarn.lock
  • use npm

KeyValueList - Improve responsive behaviour

Currently the max-width is set for the columns in the key value list. I think it would be best that the key value list columns span the entire width - if limiting the width makes sense - the developer can do so by adjusting the parents width.

Barista: Generate sidebar content for each page

Each page needs information what to show in the sidebar. Create this during the content generation (page building --> see Barista tools) and store sidenav items to BaBaristaPage (i.e. json files that define a page).

Sync with Kammerlander, Nina – she knows how the JSON structure should look like.

Migrate to Nx workspace folder structure

Create a custom script/schematic that let reorganize our workspace to an nx workspace structure.

Proposed Structure

- apps
	- barista
	- barista-examples
	- dev
	- a11y
	- e2e
	- universal
- components
	- alert
		- src/{index.ts, ...}
		› jest.config.js
		› package.json
		› README.md
		› tsconfig.json
		› tsconfig.lib.json
		› tsconfig.spec.json
		› tslint.json
	- autocomplete
	- core
	- ...
- tools
	- release
	- schematics
	- linting
- libs
	... other libraries
- experimental
	- filter-friedl
	...
› tsconfig.json
› tslint.json
› nx.json
› angular.json
› jest.config.js
...

Use Apache 2 as the license

Create the apache 2 license file in the root of the project and also check for the link to the license in the footer of barista. We should remove the custom license we currently have internally

Prepare markdown files for open source release

We have a couple of internal links and description to internal resources that we need to clean up before we release this to the public.

Update the 'How to contribute' page and think about the contribution section on the index page.

Improve Time-Formatter

Add functionality to set the Output unit. Example outputUnit is min so format input to min only.
Add less than functionality additionally to the outputUnit.

Replace lodash dependency with lodash-es

Description
Currently, we have a dependency to lodash but we are not exposing it as peer dependency in case that angular ships lodash.
Lodash is not tree-shakeable so we are always forcing the consumer to ship the whole lodash. That is the reason why we should change to a tree-shakeable version of lodashlodash-es.

Expected behaviour 🌈
Using all lodash methods like before only from the tree-shakeable version.

Additional context

When using lodash-es it will work with the library but not with our unit tests that are written in jest. In case that jest cannot scope with es-modules.

Create Circle CI Pipeline

We need the following steps for the CI build:

  • lint (parallelize linting different apps / libs)
  • build library
  • test
  • e2e
  • a11y
  • aot barista-examples
  • test-linting rules
  • universal

Rework custom schematics

Rework how custom schematics are built, move from post install, use builder / node script, ...

Barista: Integrate examples into barista

  • Generate metadata for page-builder
  • Inject sources into live-example tags in page-builder
  • Instantiate and run demo in live-example
  • Display sources in live-example
  • Style and build basic live-example
  • Add scss, issue #285 PR: #484
  • Add copy to clipboard (for ts, html and scss) PR: #366
  • Add show-more functionality for long examples PR: #366
  • Add syntax highlighting for ts, html and scss PR: #366

Evaluate pullpanda

Check with open source team whether we can add pullpanda to our organisation

Add greenkeeper

To avoid dependency hell like we recently had we should evaluate greenkeeper for this repository

Barista: Add search

We need a search for Barista. Make a plan:

  • how to generate the search index?
  • how to implement the search?
  • how to implement the search input field in the nav?
  • how to implement the search page?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.