digraph dependencies {
  node[shape="component",style="filled",colorscheme={scheme}]

    node[shape="{1}"]
    {{~it.modules :module}}
      "{{= module.name }}"[label="{{= module.name }}", fillcolor=1]
    {{~}}

    {{~it.modules :module}}
      {{~module.modules :dependency}}
        "{{= module.name }}" -> "{{= dependency }}"
      {{~}}
    {{~}}

    node[shape="{2}"]


    {{~it.modules :module}}
      {{~module.providers :provider}}
        "{{= provider.name }}"[label="{{= provider.name }}", fillcolor=2]
      {{~}}

      {{~module.controllers :controller}}
        "{{= controller.name }}"[label="{{= controller.name }}", fillcolor=4]
      {{~}}

      {{~module.services :service}}
        "{{= service.name }}"[label="{{= service.name }}", fillcolor=5]
      {{~}}

      {{~module.factories :factory}}
        "{{= factory.name }}"[label="{{= factory.name }}", fillcolor=6]
      {{~}}


      node[shape="{5}"]
      {{~module.filters :filter}}
        "{{= filter.name }}"[label="{{= filter.name }}", fillcolor=7]
      {{~}}

      node[shape="{3}"]
      {{~module.directives :directive}}
        "{{= directive.name }}"[label="{{= directive.name }}", fillcolor=3]
      {{~}}

      node[shape="{4}"]
      {{~module.components :component}}
        "{{= component.name }}"[label="{{= component.name }}", fillfillcolor=8, style="filled"]
      {{~}}


      node[shape="{2}"]
      {{~module.providers :provider}}
        "{{= module.name }}" -> "{{= provider.name }}"
      {{~}}

      {{~module.directives :directive}}
        "{{= module.name }}" -> "{{= directive.name }}"
      {{~}}

      {{~module.components :component}}
        "{{= module.name }}" -> "{{= component.name }}"
      {{~}}

      {{~module.controllers :controller}}
        "{{= module.name }}" -> "{{= controller.name }}"
      {{~}}

      {{~module.services :service}}
        "{{= module.name }}" -> "{{= service.name }}"
      {{~}}

      {{~module.factories :factory}}
        "{{= module.name }}" -> "{{= factory.name }}"
      {{~}}

      {{~module.filters :filter}}
        "{{= module.name }}" -> "{{= filter.name }}"
      {{~}}











      node[shape="{2}",style="filled", fillcolor=11]
      {{~module.providers :provider}}
        {{~provider.deps :dep}}
          "{{= dep }}"[label="{{= dep }}"]
          "{{= dep }}" -> "{{= provider.name }}"
        {{~}}
      {{~}}

      {{~module.directives :directive}}
        {{~directive.deps :dep}}
          "{{= dep }}"[label="{{= dep }}"]
          "{{= dep }}" -> "{{= directive.name }}"
        {{~}}
      {{~}}

      {{~module.components :component}}
        {{~component.deps :dep}}
          "{{= dep }}"[label="{{= dep }}"]
          "{{= dep }}" -> "{{= component.name }}"
        {{~}}
      {{~}}

      {{~module.controllers :controller}}
        {{~controller.deps :dep}}
          "{{= dep }}"[label="{{= dep }}"]
          "{{= dep }}" -> "{{= controller.name }}"
        {{~}}
      {{~}}

      {{~module.services :service}}
        {{~service.deps :dep}}
          "{{= dep }}"[label="{{= dep }}"]
          "{{= dep }}" -> "{{= service.name }}"
        {{~}}
      {{~}}

      {{~module.factories :factory}}
        {{~factory.deps :dep}}
          "{{= dep }}"[label="{{= dep }}"]
          "{{= dep }}" -> "{{= factory.name }}"
        {{~}}
      {{~}}

      {{~module.filters :filter}}
        {{~filter.deps :dep}}
          "{{= dep }}"[label="{{= dep }}"]
          "{{= dep }}" -> "{{= filter.name }}"
        {{~}}
      {{~}}

    {{~}}
}
