<?xml version="1.0" encoding="UTF-8"?>

<!--
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
-->

<tobago-config
    xmlns="http://myfaces.apache.org/tobago/tobago-config"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://myfaces.apache.org/tobago/tobago-config http://myfaces.apache.org/tobago/tobago-config-5.0.xsd"
    version="5.0">

  <name>tobago-theme-standard</name>

  <ordering>
    <after>
      <name>tobago-core</name>
    </after>
  </ordering>

  <theme-definitions>
    <theme-definition>
      <name>standard</name>
      <display-name>Standard Theme</display-name>
      <versioned>true</versioned>
      <resources production="true">
        <includes>
          <script name="/webjars/webcomponents__custom-elements/1.2.1/custom-elements.min.js"/>
          <script name="/webjars/jquery/3.4.1/jquery.min.js"/>
          <script name="/webjars/tether/1.4.0/js/tether.min.js"/>
          <script name="/webjars/popper.js/1.14.3/umd/popper.min.js"/>
          <script name="/webjars/bootstrap/4.3.1/js/bootstrap.min.js"/>
          <script name="/webjars/momentjs/2.24.0/min/moment-with-locales.min.js"/>
<!--          <script name="/tobago/standard/tobago-bootstrap/${project.version}/node_modules/@babel/polyfill/dist/polyfill.js"/>-->
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-polyfill.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago.min.js"/>
          <script name="/tobago/pack/typeahead/0.11.1-patched-with-1212/typeahead.min.js"/>
          <style name="/webjars/tether/1.4.0/css/tether.min.css"/>
          <style name="/tobago/standard/tobago-bootstrap/${project.version}/css/tobago.min.css"/>
          <style name="/webjars/font-awesome/4.7.0/css/font-awesome.min.css"/>
        </includes>
      </resources>
      <resources production="false">
        <includes>
          <script name="/webjars/webcomponents__custom-elements/1.2.1/externs/custom-elements.js"/>
          <script name="/webjars/jquery/3.4.1/jquery.js"/>
          <script name="/webjars/tether/1.4.0/js/tether.js"/>
          <script name="/webjars/popper.js/1.14.3/umd/popper.js"/>
          <script name="/webjars/bootstrap/4.3.1/js/bootstrap.js"/>
          <script name="/webjars/momentjs/2.24.0/min/moment-with-locales.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-myfaces.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-deltaspike.js"/>
<!--          <script name="/tobago/standard/tobago-bootstrap/${project.version}/node_modules/@babel/polyfill/dist/polyfill.js"/>-->
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-polyfill.js"/>
          <script type="module" name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-bundle.js"/>
<!--
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/ext-bootstrap.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-listener.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-core.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-dropdown.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-date.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-command.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-file.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-focus.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-header-footer.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-in.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-jsf.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-overlay.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-panel.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-popover.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-popup.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-reload.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-scroll.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-select-....js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-sheet.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-split-layout.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-stars.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-suggest.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-tab.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-tree.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-tree-listbox.js"/>
          <script name="/tobago/standard/tobago-bootstrap/${project.version}/js/tobago-utils.js"/>
-->
          <script name="/tobago/pack/typeahead/0.11.1-patched-with-1212/typeahead.js"/>
          <style name="/webjars/tether/1.4.0/css/tether.css"/>
          <style name="/tobago/standard/tobago-bootstrap/${project.version}/css/tobago.css"/>
          <style name="/webjars/font-awesome/4.7.0/css/font-awesome.css"/>
        </includes>
      </resources>
    </theme-definition>
  </theme-definitions>
</tobago-config>
