{
  "dirs": {
    "css": {
      "src": "rhodecode/public/css",
      "dest": "rhodecode/public/css"
    },
    "js": {
      "src": "rhodecode/public/js/src",
      "src_rc": "rhodecode/public/js/rhodecode",
      "dest": "rhodecode/public/js",
      "node_modules": "node_modules"
    }
  },
  "copy": {
    "main": {
      "files": [
        {
          "expand": true,
          "cwd": "node_modules/@webcomponents",
          "src": "webcomponentsjs/*.*",
          "dest": "<%= dirs.js.dest %>/vendors"
        },
        {
          "src": "<%= dirs.css.src %>/style-lit.css",
          "dest": "<%= dirs.js.dest %>/src/components/style-lit.css"
        },
        {
          "src": "<%= dirs.js.node_modules %>/filepond/dist/filepond.css",
          "dest": "<%= dirs.css.dest %>/filepond.css"
        }
      ]
    }
  },
  "concat": {
    "dist": {
      "options": {
        "separator": ";"
      },
      "src": [
        "<%= dirs.js.node_modules %>/jquery/dist/jquery.min.js",
        "<%= dirs.js.node_modules %>/mousetrap/mousetrap.min.js",
        "<%= dirs.js.node_modules %>/luxon/build/global/luxon.min.js",
        "<%= dirs.js.node_modules %>/clipboard/dist/clipboard.min.js",
        "<%= dirs.js.node_modules %>/favico.js/favico-0.3.10.min.js",
        "<%= dirs.js.node_modules %>/sweetalert2/dist/sweetalert2.min.js",
        "<%= dirs.js.node_modules %>/sticky-sidebar/dist/sticky-sidebar.min.js",
        "<%= dirs.js.node_modules %>/sticky-sidebar/dist/jquery.sticky-sidebar.min.js",
        "<%= dirs.js.node_modules %>/waypoints/lib/noframework.waypoints.min.js",
        "<%= dirs.js.node_modules %>/waypoints/lib/jquery.waypoints.min.js",
        "<%= dirs.js.node_modules %>/filepond/dist/filepond.min.js",
        "<%= dirs.js.src %>/logging.js",
        "<%= dirs.js.src %>/bootstrap.js",
        "<%= dirs.js.src %>/i18n_utils.js",
        "<%= dirs.js.src %>/deform.js",
        "<%= dirs.js.src %>/ejs.js",
        "<%= dirs.js.src %>/ejs_templates/utils.js",
        "<%= dirs.js.src %>/plugins/jquery.pjax.js",
        "<%= dirs.js.src %>/plugins/jquery.dataTables.js",
        "<%= dirs.js.src %>/plugins/flavoured_checkbox.js",
        "<%= dirs.js.src %>/plugins/within_viewport.js",
        "<%= dirs.js.src %>/plugins/jquery.auto-grow-input.js",
        "<%= dirs.js.src %>/plugins/jquery.autocomplete.js",
        "<%= dirs.js.src %>/plugins/jquery.debounce.js",
        "<%= dirs.js.src %>/plugins/jquery.scrollstop.js",
        "<%= dirs.js.src %>/plugins/jquery.within-viewport.js",
        "<%= dirs.js.node_modules %>/mark.js/dist/jquery.mark.min.js",
        "<%= dirs.js.src %>/plugins/jquery.timeago.js",
        "<%= dirs.js.src %>/plugins/jquery.timeago-extension.js",
        "<%= dirs.js.src %>/select2/select2.js",
        "<%= dirs.js.src_rc %>/i18n/select2/translations.js",
        "<%= dirs.js.src %>/rhodecode/utils/array.js",
        "<%= dirs.js.src %>/rhodecode/utils/string.js",
        "<%= dirs.js.src %>/rhodecode/utils/trimText.js",
        "<%= dirs.js.src %>/rhodecode/utils/pyroutes.js",
        "<%= dirs.js.src %>/rhodecode/utils/ajax.js",
        "<%= dirs.js.src %>/rhodecode/utils/autocomplete.js",
        "<%= dirs.js.src %>/rhodecode/utils/colorgenerator.js",
        "<%= dirs.js.src %>/rhodecode/utils/ie.js",
        "<%= dirs.js.src %>/rhodecode/utils/os.js",
        "<%= dirs.js.src %>/rhodecode/utils/topics.js",
        "<%= dirs.js.src %>/rhodecode/init.js",
        "<%= dirs.js.src %>/rhodecode/changelog.js",
        "<%= dirs.js.src %>/rhodecode/comments.js",
        "<%= dirs.js.src %>/rhodecode/constants.js",
        "<%= dirs.js.src %>/rhodecode/files.js",
        "<%= dirs.js.src %>/rhodecode/followers.js",
        "<%= dirs.js.src %>/rhodecode/menus.js",
        "<%= dirs.js.src %>/rhodecode/notifications.js",
        "<%= dirs.js.src %>/rhodecode/permissions.js",
        "<%= dirs.js.src %>/rhodecode/pjax.js",
        "<%= dirs.js.src %>/rhodecode/pullrequests.js",
        "<%= dirs.js.src %>/rhodecode/settings.js",
        "<%= dirs.js.src %>/rhodecode/select2_widgets.js",
        "<%= dirs.js.src %>/rhodecode/tooltips.js",
        "<%= dirs.js.src %>/rhodecode/users.js",
        "<%= dirs.js.src %>/rhodecode/appenlight.js",
        "<%= dirs.js.src %>/rhodecode.js",
        "<%= dirs.js.dest %>/rhodecode-components.js"
      ],
      "dest": "<%= dirs.js.dest %>/scripts.js",
      "nonull": true
    },
    "ext": {
      "options": {
        "separator": ";"
      },
      "src": [
        "<%= dirs.js.src %>/codemirror/codemirror.js",
        "<%= dirs.js.src %>/codemirror/codemirror_loadmode.js",
        "<%= dirs.js.src %>/codemirror/codemirror_hint.js",
        "<%= dirs.js.src %>/codemirror/codemirror_overlay.js",
        "<%= dirs.js.src %>/codemirror/codemirror_placeholder.js",
        "<%= dirs.js.src %>/codemirror/codemirror_simplemode.js",
        "<%= dirs.js.dest %>/mode/meta.js",
        "<%= dirs.js.dest %>/mode/meta_ext.js",
        "<%= dirs.js.src %>/rhodecode/codemirror.js"
      ],
      "dest": "<%= dirs.js.dest %>/codemirror-dist.js",
      "nonull": true
    }
  },
  "terser": {
    "dist": {
      "options": {
        "compress": {
          "ecma": 6
        },
        "mangle": {
          "reserved": ["T", "A", "noChange", "nothing", "html", "css", "svg", "render", "LitElement", "ReactiveElement", "customElements"]
        },
        "output": {
          "ecma": 6
        }
      },
      "files": {
        "<%= dirs.js.dest %>/scripts.min.js": "<%= dirs.js.dest %>/scripts.js"
      },
      "src": "<%= dirs.js.dest %>/scripts.js",
      "dest": "<%= dirs.js.dest %>/scripts.min.js"
    },
    "ext": {
      "options": {
        "compress": {
          "ecma": 6
        },
        "mangle": {
          "reserved": ["T", "A"]
        },
        "output": {
          "ecma": 6
        }
      },
      "files": {
        "<%= dirs.js.dest %>/scripts.min.js": "<%= dirs.js.dest %>/codemirror-dist.js"
      },
      "src": "<%= dirs.js.dest %>/codemirror-dist.js",
      "dest": "<%= dirs.js.dest %>/codemirror-dist.min.js"
    }

  },
  "less": {
    "development": {
      "options": {
        "compress": false,
        "yuicompress": false,
        "optimization": 0,
        "math": "always"
      },
      "files": {
        "<%= dirs.css.dest %>/style.css": "<%= dirs.css.src %>/main.less",
        "<%= dirs.css.dest %>/style-lit.css": "<%= dirs.css.src %>/lit-components.less",
        "<%= dirs.css.dest %>/style-ipython.css": "<%= dirs.css.src %>/ipython.less"
      }
    },
    "production": {
      "options": {
        "compress": true,
        "yuicompress": true,
        "optimization": 2,
        "math": "always"
      },
      "files": {
        "<%= dirs.css.dest %>/style.css": "<%= dirs.css.src %>/main.less",
        "<%= dirs.css.dest %>/style-lit.css": "<%= dirs.css.src %>/lit-components.less",
        "<%= dirs.css.dest %>/style-ipython.css": "<%= dirs.css.src %>/ipython.less"
      }
    },
    "components": {
      "options": {
        "math": "always"
      },
      "files": [
        {
          "cwd": "<%= dirs.js.src %>/components/",
          "dest": "<%= dirs.js.src %>/components/",
          "src": [
            "**/*.less"
          ],
          "expand": true,
          "ext": ".css"
        }
      ]
    }
  },
  "watch": {
    "less": {
      "files": [
        "<%= dirs.css.src %>/**/*.less",
        "<%= dirs.js.src %>/components/**/*.less"
      ],
      "tasks": [
        "less:development",
        "less:components",
        "webpack",
        "concat:dist"
      ]
    },
    "js": {
      "files": [
        "!<%= dirs.js.src %>/components/root-styles.gen.html",
        "<%= dirs.js.src %>/**/*.js",
        "<%= dirs.js.src %>/components/**/*.html"
      ],
      "tasks": [
        "less:components",
        "webpack",
        "concat:dist"
      ]
    }
  },
  "jshint": {
    "rhodecode": {
      "src": "<%= dirs.js.src %>/rhodecode/**/*.js",
      "options": {
        "jshintrc": ".jshintrc"
      }
    }
  }
}
