<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 2019 TWO SIGMA OPEN SOURCE, LLC
  ~
  ~ Licensed 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.
  -->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.twosigma.znai</groupId>
        <artifactId>znai-parent</artifactId>
        <version>1.21</version>
    </parent>

    <artifactId>znai-reactjs</artifactId>

    <build>
        <plugins>
            <plugin>
                <groupId>com.github.eirslett</groupId>
                <artifactId>frontend-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>package-react-bundle</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <target name="copy-react-bundle">
                        <copy verbose="true" todir="${project.build.outputDirectory}/static">
                            <fileset file="build/static/js/*.js" />
                            <fileset file="build/static/css/*.css" />
                            <mapper type="regexp" from="(.*)\.[^\.]+\.(.*)" to="\1.\2" />
                        </copy>

                        <copy verbose="true" todir="${project.build.outputDirectory}/static">
                            <fileset file="build/static/js/*.js.map" />
                            <fileset file="build/static/css/*.css.map" />
                            <mapper type="regexp" from="(.*)\.[^\.]+\.(.*)\.(.*)" to="\1.\2.\3" />
                        </copy>

                        <copy verbose="true" todir="${project.build.outputDirectory}/static/fonts">
                            <fileset id="fonts" dir="node_modules/katex/dist/fonts">
                                <include name="KaTeX_Main-*.*" />
                                <include name="KaTeX_Math-*.*" />
                            </fileset>
                        </copy>

                        <copy toDir="${project.build.outputDirectory}/static">
                            <fileset dir="${project.basedir}/node_modules/bootstrap/dist" />
                        </copy>

                        <copy toDir="${project.build.outputDirectory}/static/css">
                            <fileset file="${project.basedir}/node_modules/katex/dist/katex.min.css" />
                        </copy>

                        <copy file="${project.basedir}/node_modules/react/umd/react.production.min.js" toFile="${project.build.outputDirectory}/static/react.min.js" />
                        <copy file="${project.basedir}/node_modules/react-dom/umd/react-dom.production.min.js" toFile="${project.build.outputDirectory}/static/react-dom.min.js" />
                    </target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
