added react-based gallery

This commit is contained in:
FrankLeeeee 2024-04-24 13:59:00 +08:00
parent 35911693f5
commit dd5a4a3062
39 changed files with 31994 additions and 3689 deletions

23
.gitignore vendored Normal file
View file

@ -0,0 +1,23 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

70
README.md Normal file
View file

@ -0,0 +1,70 @@
# Getting Started with Create React App
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
## Available Scripts
In the project directory, you can run:
### `npm start`
Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
The page will reload when you make changes.\
You may also see any lint errors in the console.
### `npm test`
Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
### `npm run build`
Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
### `npm run eject`
**Note: this is a one-way operation. Once you `eject`, you can't go back!**
If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
## Learn More
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
To learn React, check out the [React documentation](https://reactjs.org/).
### Code Splitting
This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
### Analyzing the Bundle Size
This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
### Making a Progressive Web App
This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
### Advanced Configuration
This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
### Deployment
This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
### `npm run build` fails to minify
This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)

View file

@ -1,347 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="description" content="Open-Sora: Democratizing Efficient Video Production for All">
<meta name="keywords" content="Sora, video generation, text to video">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Gallery for Open-Sora: Democratizing Efficient Video Production for All</title>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-MFK9GLTF37"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-MFK9GLTF37');
</script>
<link href="https://fonts.googleapis.com/css?family=Google+Sans|Noto+Sans|Castoro" rel="stylesheet">
<link rel="stylesheet" href="./static/css/bulma.min.css">
<link rel="stylesheet" href="./static/css/bulma-carousel.min.css">
<link rel="stylesheet" href="./static/css/bulma-slider.min.css">
<link rel="stylesheet" href="./static/css/fontawesome.all.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/jpswalsh/academicons@1/css/academicons.min.css">
<link rel="stylesheet" href="./static/css/index.css">
<link rel="icon" href="./static/images/favicon.svg">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script defer src="./static/js/fontawesome.all.min.js"></script>
<script src="./static/js/bulma-carousel.min.js"></script>
<script src="./static/js/bulma-slider.min.js"></script>
<script src="./static/js/index.js"></script>
</head>
<body>
<section class="hero">
<div class="hero-body">
<div class="container is-max-desktop">
<div class="columns is-centered">
<div class="column has-text-centered">
<h1 class="title is-1 publication-title"><u>
<font color="#F4D03F">G</font><font color="#9B59B6">a</font><font color="#2980B9">l</font><font color="#BA4A00">l</font><font color="#5DADE2">e</font><font color="#EC7063">r</font><font color="#C0392B">y</font>
</u> </h1>
<h1 class="title is-3 publication-title">Open-Sora: Democratizing Efficient Video Production for All</h1>
<div class="column has-text-centered">
<div class="publication-links">
<!-- Video Link. -->
<span class="link-block">
<a href="https://hpcaitech.github.io/Open-Sora/"
class="external-link button is-normal is-rounded is-dark">
<span class="icon">
<i class="fab fa-youtube"></i>
</span>
<span>Gallery</span>
</a>
</span>
<!-- Code Link. -->
<span class="link-block">
<a href="https://github.com/hpcaitech/Open-Sora" class="external-link button is-normal is-rounded is-dark">
<span class="icon">
<i class="fab fa-github"></i>
</span>
<span>Repo</span>
</a>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="section">
<div class="container is-max-desktop">
<!-- Animation. -->
<div class="is-centered">
<div class="column is-full-width">
<h2 class="title is-3">OpenSora v1.0 Results</h2>
<!-- Customed Videos. -->
<div class="content has-text-centered">
<div class="video-container equalHMWrap">
<!-- First video -->
<div class="video equalHW">
<div style="position:relative; width:100%; height:0px; padding-bottom:100.000%"><iframe
allow="fullscreen;autoplay" allowfullscreen height="100%"
src="https://streamable.com/e/k4a0l1?autoplay=1&muted=1" width="100%"
style="border:none; width:100%; height:100%; position:absolute; left:0px; top:0px; overflow:hidden;"></iframe>
</div>
<div class="video-description">
<p class="caption">A bustling city street at night, filled with the glow of car headlights and the
ambient light of streetlights. The scene is a blur of motion, with cars speeding by and pedestrians
navigating the crosswalks. The cityscape is a mix of towering buildings and illuminated signs,
creating a vibrant and dynamic atmosphere. The perspective of the video is from a high angle,
providing a bird's eye view of the street and its surroundings. The overall style of the video is
dynamic and energetic, capturing the essence of urban life at night.</p>
</div>
</div>
<!-- Second video -->
<div class="video equalHW">
<div style="position:relative; width:100%; height:0px; padding-bottom:100.000%"><iframe
allow="fullscreen;autoplay" allowfullscreen height="100%"
src="https://streamable.com/e/xibkyx?autoplay=1&muted=1" width="100%"
style="border:none; width:100%; height:100%; position:absolute; left:0px; top:0px; overflow:hidden;"></iframe>
</div>
<div class="video-description">
<p class="caption">A vibrant scene of a snowy mountain landscape. The sky is filled with a multitude
of colorful hot air balloons, each floating at different heights, creating a dynamic and lively
atmosphere. The balloons are scattered across the sky, some closer to the viewer, others further
away, adding depth to the scene. Below, the mountainous terrain is blanketed in a thick layer of
snow, with a few patches of bare earth visible here and there. The snow-covered mountains provide a
stark contrast to the colorful balloons, enhancing the visual appeal of the scene.</p>
</div>
</div>
<!-- Third video -->
<div class="video equalHW">
<div style="position:relative; width:100%; height:0px; padding-bottom:100.000%"><iframe
allow="fullscreen;autoplay" allowfullscreen height="100%"
src="https://streamable.com/e/pbbb1s?autoplay=1&muted=1" width="100%"
style="border:none; width:100%; height:100%; position:absolute; left:0px; top:0px; overflow:hidden;"></iframe>
</div>
<div class="video-description">
<p class="caption">The vibrant beauty of a sunflower field. The sunflowers, with their bright yellow
petals and dark brown centers, are in full bloom, creating a stunning contrast against the green
leaves and stems. The sunflowers are arranged in neat rows, creating a sense of order and symmetry.
The sun is shining brightly, casting a warm glow on the flowers and highlighting their intricate
details. The video is shot from a low angle, looking up at the sunflowers, which adds a sense of
grandeur and awe to the scene. The sunflowers are the main focus of the video, with no other objects
or people present. The video is a celebration of nature's beauty and the simple joy of a sunny day
in the countryside.</p>
</div>
</div>
</div>
</div>
<div class="video-container equalHMWrap">
<!-- First video -->
<div class="video equalHW">
<div style="position:relative; width:100%; height:0px; padding-bottom:100.000%"><iframe
allow="fullscreen;autoplay" allowfullscreen height="100%"
src="https://streamable.com/e/gmzjn5?autoplay=1&muted=1" width="100%"
style="border:none; width:100%; height:100%; position:absolute; left:0px; top:0px; overflow:hidden;"></iframe>
</div>
<div class="video-description">
<p class="caption">A soaring drone footage captures the majestic beauty of a coastal cliff, its red and
yellow stratified rock faces rich in color and against the vibrant turquoise of the sea. Seabirds can
be seen taking flight around the cliff's precipices. As the drone slowly moves from different angles,
the changing sunlight casts shifting shadows that highlight the rugged textures of the cliff and the
surrounding calm sea. The water gently laps at the rock base and the greenery that clings to the top
of the cliff, and the scene gives a sense of peaceful isolation at the fringes of the ocean. The video
captures the essence of pristine natural beauty untouched by human structures.</p>
</div>
</div>
<!-- Second video -->
<div class="video equalHW">
<div style="position:relative; width:100%; height:0px; padding-bottom:100.000%"><iframe
allow="fullscreen;autoplay" allowfullscreen height="100%"
src="https://streamable.com/e/l0fdwl?autoplay=1&muted=1" width="100%"
style="border:none; width:100%; height:100%; position:absolute; left:0px; top:0px; overflow:hidden;"></iframe>
</div>
<div class="video-description">
<p class="caption">The video captures the majestic beauty of a waterfall cascading down a cliff into a
serene lake. The waterfall, with its powerful flow, is the central focus of the video. The surrounding
landscape is lush and green, with trees and foliage adding to the natural beauty of the scene. The
camera angle provides a bird's eye view of the waterfall, allowing viewers to appreciate the full
height and grandeur of the waterfall. The video is a stunning representation of nature's power and
beauty.</p>
</div>
</div>
<!-- Third video -->
<div class="video equalHW">
<div style="position:relative; width:100%; height:0px; padding-bottom:100.000%"><iframe
allow="fullscreen;autoplay" allowfullscreen height="100%"
src="https://streamable.com/e/j4koj6?autoplay=1&muted=1" width="100%"
style="border:none; width:100%; height:100%; position:absolute; left:0px; top:0px; overflow:hidden;"></iframe>
</div>
<div class="video-description">
<p class="caption">The video captures the majestic beauty of a waterfall cascading down a cliff into a
serene lake. The waterfall, with its powerful flow, is the central focus of the video. The surrounding
landscape is lush and green, with trees and foliage adding to the natural beauty of the scene. The
camera angle provides a bird's eye view of the waterfall, allowing viewers to appreciate the full
height and grandeur of the waterfall. The video is a stunning representation of nature's power and
beauty.</p>
</div>
</div>
</div>
</div>
<div class="video-container equalHMWrap">
<!-- First video -->
<div class="video equalHW">
<div style="position:relative; width:100%; height:0px; padding-bottom:100.000%"><iframe
allow="fullscreen;autoplay" allowfullscreen height="100%"
src="https://streamable.com/e/a1rlm1?autoplay=1&muted=1" width="100%"
style="border:none; width:100%; height:100%; position:absolute; left:0px; top:0px; overflow:hidden;"></iframe>
</div>
<div class="video-description">
<p class="caption">A serene night scene in a forested area. The first frame shows a tranquil lake
reflecting the star-filled sky above. The second frame reveals a beautiful sunset, casting a warm glow
over the landscape. The third frame showcases the night sky, filled with stars and a vibrant Milky Way
galaxy. The video is a time-lapse, capturing the transition from day to night, with the lake and forest
serving as a constant backdrop. The style of the video is naturalistic, emphasizing the beauty of the
night sky and the peacefulness of the forest.</p>
</div>
</div>
<!-- Second video -->
<div class="video equalHW">
<div style="position:relative; width:100%; height:0px; padding-bottom:100.000%"><iframe
allow="fullscreen;autoplay" allowfullscreen height="100%"
src="https://streamable.com/e/9dsy9f?autoplay=1&muted=1" width="100%"
style="border:none; width:100%; height:100%; position:absolute; left:0px; top:0px; overflow:hidden;"></iframe>
</div>
<div class="video-description">
<p class="caption">A serene beach scene at sunset. The sky is painted with hues of orange and pink, and
the sun is setting on the horizon. The ocean is calm, with gentle waves lapping against the shore. A few
people can be seen walking along the beach, enjoying the tranquil atmosphere. In the distance, a city
skyline can be seen, adding a touch of urban life to the otherwise natural landscape. The overall style
of the video is peaceful and calming, with a focus on the beauty of nature and the simple joys of a
beach sunset.</p>
</div>
</div>
<!-- Third video -->
<div class="video equalHW">
<div style="position:relative; width:100%; height:0px; padding-bottom:100.000%"><iframe
allow="fullscreen;autoplay" allowfullscreen height="100%"
src="https://streamable.com/e/d05uf9?autoplay=1&muted=1" width="100%"
style="border:none; width:100%; height:100%; position:absolute; left:0px; top:0px; overflow:hidden;"></iframe>
</div>
<div class="video-description">
<p class="caption">A herd of deer is seen running through a snowy forest. The deer are brown and white,
and they are moving quickly through the snow-covered trees and bushes. The snow is falling heavily,
creating a white blanket over the landscape. The deer are running in a group, with some leading the way
and others following behind. The forest is dense with trees and bushes, and the snow is deep, making it
difficult for the deer to move quickly. The scene is full of action and movement, as the deer try to
escape the falling snow.</p>
</div>
</div>
</div>
</div>
<div class="video-container equalHMWrap">
<!-- First video -->
<div class="video equalHW">
<div style="position:relative; width:100%; height:0px; padding-bottom:100.000%"><iframe
allow="fullscreen;autoplay" allowfullscreen height="100%"
src="https://streamable.com/e/wu6k12?autoplay=1&muted=1" width="100%"
style="border:none; width:100%; height:100%; position:absolute; left:0px; top:0px; overflow:hidden;"></iframe>
</div>
<div class="video-description">
<p class="caption">A snowy forest landscape with a dirt road running through it. The road is flanked by
trees covered in snow, and the ground is also covered in snow. The sun is shining, creating a bright and
serene atmosphere. The road appears to be empty, and there are no people or animals visible in the video.
The style of the video is a natural landscape shot, with a focus on the beauty of the snowy forest and the
peacefulness of the road.</p>
</div>
</div>
<!-- Second video -->
<div class="video equalHW">
<div style="position:relative; width:100%; height:0px; padding-bottom:100.000%"><iframe
allow="fullscreen;autoplay" allowfullscreen height="100%"
src="https://streamable.com/e/qmwilt?autoplay=1&muted=1" width="100%"
style="border:none; width:100%; height:100%; position:absolute; left:0px; top:0px; overflow:hidden;"></iframe>
</div>
<div class="video-description">
<p class="caption">A vibrant scene of a snowy mountain landscape. The sky is filled with a multitude of
colorful hot air balloons, each floating at different heights, creating a dynamic and lively atmosphere.
The balloons are scattered across the sky, some closer to the viewer, others further away, adding depth
to the scene. Below, the mountainous terrain is blanketed in a thick layer of snow, with a few patches
of bare earth visible here and there. The snow-covered mountains provide a stark contrast to the
colorful balloons, enhancing the visual appeal of the scene.</p>
</div>
</div>
<!-- Third video -->
<div class="video equalHW">
<div style="position:relative; width:100%; height:0px; padding-bottom:100.000%"><iframe
allow="fullscreen;autoplay" allowfullscreen height="100%"
src="https://streamable.com/e/8bxakh?autoplay=1&muted=1" width="100%"
style="border:none; width:100%; height:100%; position:absolute; left:0px; top:0px; overflow:hidden;"></iframe>
</div>
<div class="video-description">
<p class="caption">The vibrant beauty of a sunflower field. The sunflowers, with their bright yellow
petals and dark brown centers, are in full bloom, creating a stunning contrast against the green leaves
and stems. The sunflowers are arranged in neat rows, creating a sense of order and symmetry. The sun is
shining brightly, casting a warm glow on the flowers and highlighting their intricate details. The video
is shot from a low angle, looking up at the sunflowers, which adds a sense of grandeur and awe to the
scene. The sunflowers are the main focus of the video, with no other objects or people present. The
video is a celebration of nature's beauty and the simple joy of a sunny day in the countryside.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="footer">
<div class="container">
<div class="content has-text-centered">
<a class="icon-link" href="./static/videos/nerfies_paper.pdf">
<i class="fas fa-file-pdf"></i>
</a>
<a class="icon-link" href="https://github.com/keunhong" class="external-link" disabled>
<i class="fab fa-github"></i>
</a>
</div>
<div class="columns is-centered">
<div class="column is-8">
<div class="content">
<p>
This website is licensed under a <a rel="license"
href="http://creativecommons.org/licenses/by-sa/4.0/">Creative
Commons Attribution-ShareAlike 4.0 International License</a>.
</p>
<p>
This means you are free to borrow the <a href="https://github.com/nerfies/nerfies.github.io">source
code</a> of this website,
we just ask that you link back to this page in the footer.
Please remember to remove the analytics code included in the header of the website which
you do not want on your website.
</p>
</div>
</div>
</div>
</div>
</footer>
</body>
</html>

31456
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

43
package.json Normal file
View file

@ -0,0 +1,43 @@
{
"name": "my-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"classnames": "^2.5.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-icons": "^5.1.0",
"react-scripts": "5.0.1",
"web-vitals": "^2.1.4"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"tailwindcss": "^3.4.3"
}
}

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

43
public/index.html Normal file
View file

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>React App</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</html>

BIN
public/logo192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
public/logo512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

25
public/manifest.json Normal file
View file

@ -0,0 +1,25 @@
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}

3
public/robots.txt Normal file
View file

@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:

38
src/App.css Normal file
View file

@ -0,0 +1,38 @@
.App {
text-align: center;
}
.App-logo {
height: 40vmin;
pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
.App-logo {
animation: App-logo-spin infinite 20s linear;
}
}
.App-header {
background-color: #282c34;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(10px + 2vmin);
color: white;
}
.App-link {
color: #61dafb;
}
@keyframes App-logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}

44
src/App.js Normal file
View file

@ -0,0 +1,44 @@
import "./App.css";
import Title from "./components/Title";
import PubButtonList from "./components/PubButtonList";
import pub_links from "./data/pub_links";
import videos from "./data/videos";
import VideoGrid from "./components/VideoGrid";
import Footer from "./components/Footer";
function App() {
return (
<div className="text-center">
{/* head section */}
<div>
<div className="py-4">
<Title />
</div>
<div className="text-3xl font-semibold py-6">
<span>
Open-Sora: Democratizing Efficient Video Production for All
</span>
</div>
<div>
<PubButtonList links={pub_links} />
</div>
</div>
{/* video sections */}
<div className="container mx-auto my-8 px-8 md:px-16 md:pt-12 lg:px-36">
{videos.map((videoGroup) => (
<VideoGrid videoGroup={videoGroup} />
))}
</div>
{/* Footer */}
<div>
<Footer />
</div>
</div>
);
}
export default App;

8
src/App.test.js Normal file
View file

@ -0,0 +1,8 @@
import { render, screen } from '@testing-library/react';
import App from './App';
test('renders learn react link', () => {
render(<App />);
const linkElement = screen.getByText(/learn react/i);
expect(linkElement).toBeInTheDocument();
});

55
src/components/Footer.js Normal file
View file

@ -0,0 +1,55 @@
import { GrDocumentPdf, GrGithub } from "react-icons/gr";
const Footer = () => {
return (
<footer className="py-8 bg-slate-300 text-center">
<div className="text-center">
<div className="flex justify-center space-x-4">
<a
href="./static/videos/nerfies_paper.pdf"
target="_blank"
rel="noopener noreferrer"
>
<GrDocumentPdf size={24} />
</a>
<a
href="https://github.com/keunhong"
target="_blank"
rel="noopener noreferrer"
>
<GrGithub size={24} />
</a>
</div>
<div>
<div className="flex justify-center mx-auto text-center">
<div className="p-4 md:w-2/3 lg:w-1/2 text-left">
<p>
This website is licensed under a{" "}
<a
rel="license"
href="http://creativecommons.org/licenses/by-sa/4.0/"
>
Creative Commons Attribution-ShareAlike 4.0 International
License
</a>
.
</p>
<p>
This means you are free to borrow the{" "}
<a href="https://github.com/nerfies/nerfies.github.io">
source code
</a>{" "}
of this website, we just ask that you link back to this page in
the footer. Please remember to remove the analytics code
included in the header of the website which you do not want on
your website.
</p>
</div>
</div>
</div>
</div>
</footer>
);
};
export default Footer;

View file

@ -0,0 +1,23 @@
const Button = (item) => {
return (
<a href={item.link} class="flex rounded-full bg-black text-white p-2 items-center gap-x-1 px-4">
<item.iconType />
<span>{item.name}</span>
</a>
);
};
const ButtonList = ({ links }) => {
return (
<div className="flex justify-center">
{links.map((link) => (
<div className="mx-1">
<Button {...link} />
</div>
))}
</div>
);
};
export default ButtonList;

17
src/components/Title.js Normal file
View file

@ -0,0 +1,17 @@
const Title = () => {
return (
<div class="text-5xl font-semibold">
<u>
<font color="#F4D03F">G</font>
<font color="#9B59B6">a</font>
<font color="#2980B9">l</font>
<font color="#BA4A00">l</font>
<font color="#5DADE2">e</font>
<font color="#EC7063">r</font>
<font color="#C0392B">y</font>
</u>
</div>
);
};
export default Title;

View file

@ -0,0 +1,48 @@
const VideoItem = ({ video }) => {
return (
<div>
<div
style={{
position: "relative",
width: "100%",
height: "0px",
"padding-bottom": "100.000%",
}}
>
<iframe
title={video.prompt}
allow="fullscreen;autoplay"
allowfullscreen
height="100%"
src={video.link}
width="100%"
style={{
border: "none",
width: "100%",
height: "100%",
position: "absolute",
left: "0px",
top: "0px",
overflow: "hidden",
}}
></iframe>
</div>
<p className="leading-tight text-justify text-sm">{video.prompt}</p>
</div>
);
};
const VideoGrid = ({ videoGroup }) => {
return (
<div>
<span className="text-3xl text-semibold">{videoGroup.title}</span>
<div className="grid mt-4 gap-4 grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4">
{videoGroup.items.map((video) => (
<VideoItem video={video} />
))}
</div>
</div>
);
};
export default VideoGrid;

16
src/data/pub_links.js Normal file
View file

@ -0,0 +1,16 @@
import { FiYoutube, FiGithub } from "react-icons/fi";
const links = [
{
name: "Gallery",
iconType: FiYoutube,
link: "https://hpcaitech.github.io/Open-Sora/",
},
{
name: "Repository",
iconType: FiGithub,
link: "https://github.com/hpcaitech/Open-Sora",
},
];
export default links;

19
src/data/videos.js Normal file
View file

@ -0,0 +1,19 @@
const videos = [
// this represents a group of videos under the same title
{
"title": "v1.1 Results",
"items": [
{
prompt: "A bustling city street at night, filled with the glow of car headlights and the ambient light of streetlights. The scene is a blur of motion, with cars speeding by and pedestrians navigating the crosswalks. The cityscape is a mix of towering buildings and illuminated signs, creating a vibrant and dynamic atmosphere. The perspective of the video is from a high angle, providing a bird's eye view of the street and its surroundings. The overall style of the video is dynamic and energetic, capturing the essence of urban life at night.",
link: "https://streamable.com/e/k4a0l1?quality=highest",
},
// add more items here
]
}
// add more groups here
]
export default videos;

17
src/index.css Normal file
View file

@ -0,0 +1,17 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
code {
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
monospace;
}

17
src/index.js Normal file
View file

@ -0,0 +1,17 @@
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

1
src/logo.svg Normal file
View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.9 595.3"><g fill="#61DAFB"><path d="M666.3 296.5c0-32.5-40.7-63.3-103.1-82.4 14.4-63.6 8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6 0 8.3.9 11.4 2.6 13.6 7.8 19.5 37.5 14.9 75.7-1.1 9.4-2.9 19.3-5.1 29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50 32.6-30.3 63.2-46.9 84-46.9V78c-27.5 0-63.5 19.6-99.9 53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7 0 51.4 16.5 84 46.6-14 14.7-28 31.4-41.3 49.9-22.6 2.4-44 6.1-63.6 11-2.3-10-4-19.7-5.2-29-4.7-38.2 1.1-67.9 14.6-75.8 3-1.8 6.9-2.6 11.5-2.6V78.5c-8.4 0-16 1.8-22.6 5.6-28.1 16.2-34.4 66.7-19.9 130.1-62.2 19.2-102.7 49.9-102.7 82.3 0 32.5 40.7 63.3 103.1 82.4-14.4 63.6-8 114.2 20.2 130.4 6.5 3.8 14.1 5.6 22.5 5.6 27.5 0 63.5-19.6 99.9-53.6 36.4 33.8 72.4 53.2 99.9 53.2 8.4 0 16-1.8 22.6-5.6 28.1-16.2 34.4-66.7 19.9-130.1 62-19.1 102.5-49.9 102.5-82.3zm-130.2-66.7c-3.7 12.9-8.3 26.2-13.5 39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4 14.2 2.1 27.9 4.7 41 7.9zm-45.8 106.5c-7.8 13.5-15.8 26.3-24.1 38.2-14.9 1.3-30 2-45.2 2-15.1 0-30.2-.7-45-1.9-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8 6.2-13.4 13.2-26.8 20.7-39.9 7.8-13.5 15.8-26.3 24.1-38.2 14.9-1.3 30-2 45.2-2 15.1 0 30.2.7 45 1.9 8.3 11.9 16.4 24.6 24.2 38 7.6 13.1 14.5 26.4 20.8 39.8-6.3 13.4-13.2 26.8-20.7 39.9zm32.3-13c5.4 13.4 10 26.8 13.8 39.8-13.1 3.2-26.9 5.9-41.2 8 4.9-7.7 9.8-15.6 14.4-23.7 4.6-8 8.9-16.1 13-24.1zM421.2 430c-9.3-9.6-18.6-20.3-27.8-32 9 .4 18.2.7 27.5.7 9.4 0 18.7-.2 27.8-.7-9 11.7-18.3 22.4-27.5 32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9 3.7-12.9 8.3-26.2 13.5-39.5 4.1 8 8.4 16 13.1 24 4.7 8 9.5 15.8 14.4 23.4zM420.7 163c9.3 9.6 18.6 20.3 27.8 32-9-.4-18.2-.7-27.5-.7-9.4 0-18.7.2-27.8.7 9-11.7 18.3-22.4 27.5-32zm-74 58.9c-4.9 7.7-9.8 15.6-14.4 23.7-4.6 8-8.9 16-13 24-5.4-13.4-10-26.8-13.8-39.8 13.1-3.1 26.9-5.8 41.2-7.9zm-90.5 125.2c-35.4-15.1-58.3-34.9-58.3-50.6 0-15.7 22.9-35.6 58.3-50.6 8.6-3.7 18-7 27.7-10.1 5.7 19.6 13.2 40 22.5 60.9-9.2 20.8-16.6 41.1-22.2 60.6-9.9-3.1-19.3-6.5-28-10.2zM310 490c-13.6-7.8-19.5-37.5-14.9-75.7 1.1-9.4 2.9-19.3 5.1-29.4 19.6 4.8 41 8.5 63.5 10.9 13.5 18.5 27.5 35.3 41.6 50-32.6 30.3-63.2 46.9-84 46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7 38.2-1.1 67.9-14.6 75.8-3 1.8-6.9 2.6-11.5 2.6-20.7 0-51.4-16.5-84-46.6 14-14.7 28-31.4 41.3-49.9 22.6-2.4 44-6.1 63.6-11 2.3 10.1 4.1 19.8 5.2 29.1zm38.5-66.7c-8.6 3.7-18 7-27.7 10.1-5.7-19.6-13.2-40-22.5-60.9 9.2-20.8 16.6-41.1 22.2-60.6 9.9 3.1 19.3 6.5 28.1 10.2 35.4 15.1 58.3 34.9 58.3 50.6-.1 15.7-23 35.6-58.4 50.6zM320.8 78.4z"/><circle cx="420.9" cy="296.5" r="45.7"/><path d="M520.5 78.1z"/></g></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

13
src/reportWebVitals.js Normal file
View file

@ -0,0 +1,13 @@
const reportWebVitals = onPerfEntry => {
if (onPerfEntry && onPerfEntry instanceof Function) {
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
getCLS(onPerfEntry);
getFID(onPerfEntry);
getFCP(onPerfEntry);
getLCP(onPerfEntry);
getTTFB(onPerfEntry);
});
}
};
export default reportWebVitals;

5
src/setupTests.js Normal file
View file

@ -0,0 +1,5 @@
// jest-dom adds custom jest matchers for asserting on DOM nodes.
// allows you to do things like:
// expect(element).toHaveTextContent(/react/i)
// learn more: https://github.com/testing-library/jest-dom
import '@testing-library/jest-dom';

View file

@ -1 +0,0 @@
@-webkit-keyframes spinAround{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spinAround{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.slider{position:relative;width:100%}.slider-container{display:flex;flex-wrap:nowrap;flex-direction:row;overflow:hidden;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);min-height:100%}.slider-container.is-vertical{flex-direction:column}.slider-container .slider-item{flex:none}.slider-container .slider-item .image.is-covered img{-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center;height:100%;width:100%}.slider-container .slider-item .video-container{height:0;padding-bottom:0;padding-top:56.25%;margin:0;position:relative}.slider-container .slider-item .video-container.is-1by1,.slider-container .slider-item .video-container.is-square{padding-top:100%}.slider-container .slider-item .video-container.is-4by3{padding-top:75%}.slider-container .slider-item .video-container.is-21by9{padding-top:42.857143%}.slider-container .slider-item .video-container embed,.slider-container .slider-item .video-container iframe,.slider-container .slider-item .video-container object{position:absolute;top:0;left:0;width:100%!important;height:100%!important}.slider-navigation-next,.slider-navigation-previous{display:flex;justify-content:center;align-items:center;position:absolute;width:42px;height:42px;background:#fff center center no-repeat;background-size:20px 20px;border:1px solid #fff;border-radius:25091983px;box-shadow:0 2px 5px #3232321a;top:50%;margin-top:-20px;left:0;cursor:pointer;transition:opacity .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s;transition:transform .3s,opacity .3s,-webkit-transform .3s}.slider-navigation-next:hover,.slider-navigation-previous:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.slider-navigation-next.is-hidden,.slider-navigation-previous.is-hidden{display:none;opacity:0}.slider-navigation-next svg,.slider-navigation-previous svg{width:25%}.slider-navigation-next{left:auto;right:0;background:#fff center center no-repeat;background-size:20px 20px}.slider-pagination{display:none;justify-content:center;align-items:center;position:absolute;bottom:0;left:0;right:0;padding:.5rem 1rem;text-align:center}.slider-pagination .slider-page{background:#fff;width:10px;height:10px;border-radius:25091983px;display:inline-block;margin:0 3px;box-shadow:0 2px 5px #3232321a;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;cursor:pointer}.slider-pagination .slider-page.is-active,.slider-pagination .slider-page:hover{-webkit-transform:scale(1.4);transform:scale(1.4)}@media screen and (min-width:800px){.slider-pagination{display:flex}}.hero.has-carousel{position:relative}.hero.has-carousel+.hero-body,.hero.has-carousel+.hero-footer,.hero.has-carousel+.hero-head{z-index:10;overflow:hidden}.hero.has-carousel .hero-carousel{position:absolute;top:0;left:0;bottom:0;right:0;height:auto;border:none;margin:auto;padding:0;z-index:0}.hero.has-carousel .hero-carousel .slider{width:100%;max-width:100%;overflow:hidden;height:100%!important;max-height:100%;z-index:0}.hero.has-carousel .hero-carousel .slider .has-background{max-height:100%}.hero.has-carousel .hero-carousel .slider .has-background .is-background{-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center;height:100%;width:100%}.hero.has-carousel .hero-body{margin:0 3rem;z-index:10}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,188 +0,0 @@
body {
font-family: 'Noto Sans', sans-serif;
}
.footer .icon-link {
font-size: 25px;
color: #000;
}
.link-block a {
margin-top: 5px;
margin-bottom: 5px;
}
.dnerf {
font-variant: small-caps;
}
.teaser .hero-body {
padding-top: 0;
padding-bottom: 3rem;
}
.teaser {
font-family: 'Google Sans', sans-serif;
}
.publication-title {
}
.publication-banner {
max-height: parent;
}
.publication-banner video {
position: relative;
left: auto;
top: auto;
transform: none;
object-fit: fit;
}
.publication-header .hero-body {
}
.publication-title {
font-family: 'Google Sans', sans-serif;
}
.publication-authors {
font-family: 'Google Sans', sans-serif;
}
.publication-venue {
color: #555;
width: fit-content;
font-weight: bold;
}
.publication-awards {
color: #ff3860;
width: fit-content;
font-weight: bolder;
}
.publication-authors {
}
.publication-authors a {
color: hsl(204, 86%, 53%) !important;
}
.publication-authors a:hover {
text-decoration: underline;
}
.author-block {
display: inline-block;
}
.publication-banner img {
}
.publication-authors {
/*color: #4286f4;*/
}
.publication-video {
position: relative;
width: 100%;
height: 0;
padding-bottom: 56.25%;
overflow: hidden;
border-radius: 10px !important;
}
.publication-video iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.publication-body img {
}
.results-carousel {
overflow: hidden;
}
.results-carousel .item {
margin: 5px;
overflow: hidden;
border: 1px solid #bbb;
border-radius: 10px;
padding: 0;
font-size: 0;
}
.results-carousel video {
margin: 0;
}
.interpolation-panel {
background: #f5f5f5;
border-radius: 10px;
}
.interpolation-panel .interpolation-image {
width: 100%;
border-radius: 5px;
}
.interpolation-video-column {
}
.interpolation-panel .slider {
margin: 0 !important;
}
.interpolation-panel .slider {
margin: 0 !important;
}
#interpolation-image-wrapper {
width: 100%;
}
#interpolation-image-wrapper img {
border-radius: 5px;
}
.video-container {
display: flex;
justify-content: center;
}
.video {
margin: 10px;
}
.video iframe {
width: 560px;
height: 315px;
}
.video-description {
text-align: center;
}
.equalHW {
flex: 1;
}
.equalHMWrap {
justify-content: space-between;
display: flex;
}
.caption {
text-align: left;
line-height: 100%;
font-size: 80%;
}

View file

@ -1,228 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="1400.000000pt" height="1400.000000pt" viewBox="0 0 1400.000000 1400.000000"
preserveAspectRatio="xMidYMid meet">
<g transform="translate(0.000000,1400.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M10776 13259 c-2 -8 -7 -30 -10 -49 -12 -76 -83 -284 -151 -445 -7
-16 -17 -41 -23 -55 -11 -26 -45 -102 -94 -210 -96 -212 -249 -500 -270 -508
-4 -2 -8 -7 -8 -12 0 -12 -118 -196 -177 -275 -55 -75 -156 -200 -201 -250
-15 -16 -54 -66 -87 -110 -32 -44 -84 -107 -115 -140 -31 -33 -67 -76 -82 -95
-58 -79 -326 -363 -759 -804 -278 -283 -359 -368 -410 -433 -73 -91 -123 -150
-158 -187 -38 -42 -64 -74 -206 -262 -49 -65 -96 -126 -105 -134 -8 -9 -37
-49 -65 -89 -27 -41 -74 -99 -104 -130 l-53 -55 -19 23 c-12 14 -19 39 -19 65
-1 22 -7 57 -14 76 -8 19 -24 62 -36 95 -12 33 -33 82 -46 108 -13 27 -24 57
-24 67 0 10 -4 22 -10 25 -5 3 -10 16 -10 29 0 12 -5 27 -11 33 -13 13 -24 32
-59 100 -13 26 -30 55 -36 63 -7 8 -33 56 -59 105 -26 50 -54 98 -63 108 -8 9
-20 26 -26 36 -28 48 -99 151 -106 151 -3 0 -14 15 -23 33 -22 40 -61 96 -86
122 -10 11 -42 49 -69 85 -28 36 -56 72 -64 80 -7 9 -26 31 -42 50 -92 113
-331 364 -366 386 -8 5 -27 25 -41 44 -15 19 -39 49 -53 65 -14 17 -29 38 -32
48 -3 9 -9 17 -13 17 -6 0 -29 19 -123 105 -87 79 -105 65 -54 -40 20 -41 36
-78 36 -83 0 -5 18 -42 40 -82 22 -40 40 -76 40 -80 0 -12 40 -89 50 -95 5 -3
10 -24 10 -45 0 -21 5 -42 10 -45 6 -3 10 -17 10 -30 0 -13 6 -44 13 -67 8
-24 22 -79 32 -123 10 -44 23 -86 29 -94 6 -8 14 -41 17 -75 4 -34 15 -88 24
-121 20 -73 42 -178 54 -265 6 -36 15 -78 20 -94 6 -15 11 -60 11 -99 0 -40 5
-90 10 -112 9 -33 21 -247 32 -560 2 -71 -20 -434 -28 -446 -8 -14 -27 -154
-25 -194 1 -29 -43 -194 -60 -227 -5 -10 -9 -28 -9 -41 0 -12 -6 -31 -14 -42
-7 -11 -16 -39 -19 -62 -3 -24 -14 -62 -26 -86 -12 -24 -21 -48 -21 -54 0 -7
-6 -18 -14 -26 -16 -16 -23 -118 -11 -154 6 -18 3 -23 -19 -29 -30 -7 -35 -24
-7 -24 30 0 35 -19 6 -26 -27 -7 -32 -18 -13 -30 14 -9 -15 -22 -53 -23 -14
-1 -50 -14 -80 -30 -92 -48 -201 -76 -361 -91 -47 -4 -91 -11 -97 -15 -43 -26
-1409 -48 -1621 -26 -58 6 -192 13 -297 15 -106 3 -231 10 -277 17 -46 6 -92
9 -102 5 -16 -6 -14 -9 11 -26 17 -11 40 -20 53 -20 23 0 54 -8 207 -56 44
-14 141 -40 215 -58 74 -19 187 -48 250 -66 63 -17 131 -35 150 -40 19 -4 62
-15 95 -25 33 -9 80 -21 105 -27 25 -6 49 -14 55 -19 5 -5 18 -9 30 -9 11 0
40 -6 65 -14 25 -8 68 -21 96 -30 29 -9 59 -16 67 -16 9 0 64 -16 124 -36 59
-20 124 -40 143 -44 19 -4 49 -13 65 -18 17 -6 55 -18 85 -27 30 -9 64 -20 75
-25 49 -20 112 -40 124 -40 7 0 27 -6 44 -14 18 -8 43 -17 57 -20 14 -2 48
-12 75 -20 111 -34 235 -69 305 -85 19 -5 71 -18 115 -30 44 -13 100 -27 125
-32 123 -27 192 -40 259 -50 41 -5 79 -13 84 -16 14 -9 193 -23 367 -30 149
-5 354 7 465 28 28 5 79 13 115 19 58 8 133 24 240 50 19 4 51 14 70 20 82 29
116 40 128 40 6 0 35 11 64 24 29 13 89 38 133 56 105 42 129 53 195 84 30 14
59 26 64 26 5 0 38 13 73 30 34 16 69 30 77 30 7 0 19 7 26 15 7 8 19 15 26
15 8 0 22 4 32 9 9 4 33 15 52 23 19 8 52 23 73 32 21 9 46 16 55 16 10 0 22
4 28 8 12 11 88 39 144 52 25 6 72 18 105 26 33 8 97 19 141 23 45 5 86 11 92
15 18 11 344 7 405 -4 83 -16 96 -8 55 33 -18 18 -58 51 -88 74 -30 23 -87 73
-125 110 -167 161 -328 261 -475 293 -19 4 -55 13 -80 20 -32 10 -111 13 -277
12 -128 0 -235 3 -238 7 -4 8 40 100 54 111 3 3 29 39 56 80 28 41 72 102 99
135 26 33 66 83 88 110 22 28 54 68 72 89 17 22 42 51 56 66 14 14 32 35 40
47 8 12 51 65 95 118 44 54 98 121 120 149 21 28 55 68 74 88 19 21 39 47 45
57 11 20 215 292 226 301 3 3 31 44 63 91 32 48 64 92 72 99 8 7 15 18 15 25
0 7 24 46 54 86 29 41 56 84 60 97 4 12 11 22 15 22 4 0 18 19 31 43 12 23 37
62 55 87 17 25 34 52 38 60 4 8 21 38 37 65 17 28 42 73 55 102 14 28 30 55
35 58 6 3 10 13 10 21 0 8 11 31 24 52 12 20 27 48 31 62 4 14 10 27 14 30 3
3 23 39 44 80 21 41 42 82 46 90 5 8 13 26 18 40 11 27 37 84 77 171 14 31 26
61 26 68 0 6 4 19 10 29 14 27 36 81 59 147 11 33 34 98 52 145 17 47 36 102
43 122 6 20 15 40 19 44 4 4 7 14 7 22 0 8 6 28 14 45 8 18 17 43 20 57 2 14
12 48 20 75 8 28 24 86 36 130 11 44 27 101 35 126 8 26 15 59 15 73 0 15 6
48 14 74 17 58 36 156 47 242 4 36 15 115 25 175 9 61 18 142 20 180 2 39 11
142 20 230 23 229 17 786 -8 811 -14 15 -18 15 -22 3z m-3209 -4461 c-3 -7 -5
-2 -5 12 0 14 2 19 5 13 2 -7 2 -19 0 -25z m-119 -205 c-9 -2 -19 -12 -21 -21
-3 -12 -5 -10 -6 6 -1 17 4 22 22 21 15 -1 17 -3 5 -6z m-288 -418 c0 -8 0
-18 1 -22 0 -4 -4 -9 -10 -11 -6 -2 -11 8 -11 22 0 14 5 26 10 26 6 0 10 -7
10 -15z m-90 -103 c0 -4 -9 -13 -20 -20 -16 -10 -20 -10 -20 1 0 8 3 17 7 20
9 9 33 9 33 -1z m-490 -109 c0 -7 -9 -13 -20 -13 -22 0 -26 20 -8 38 13 13 28
-1 28 -25z m440 2 c0 -16 -27 -45 -41 -45 -12 0 -12 17 0 24 5 3 7 15 4 25 -4
16 -1 19 16 14 12 -3 21 -11 21 -18z m-223 -60 c3 -10 -36 -40 -43 -33 -2 2
-1 14 3 26 6 23 33 27 40 7z m167 7 c2 -4 -6 -18 -20 -31 -25 -24 -32 -14 -14
20 11 20 25 25 34 11z m-464 -16 c0 -8 -4 -18 -10 -21 -5 -3 -10 3 -10 14 0
12 5 21 10 21 6 0 10 -6 10 -14z m347 -31 c-10 -7 -17 -20 -17 -29 0 -9 -8
-16 -20 -16 -13 0 -20 7 -20 20 0 11 6 20 14 20 7 0 19 7 26 15 7 8 17 12 23
8 6 -4 4 -11 -6 -18z m-107 -21 c0 -8 -5 -12 -10 -9 -6 4 -8 11 -5 16 9 14 15
11 15 -7z m150 2 c0 -10 -51 -59 -55 -54 -7 6 36 58 48 58 4 0 7 -2 7 -4z
m-90 -66 c6 -12 7 -20 1 -20 -5 0 -17 -8 -26 -17 -13 -12 -21 -14 -34 -6 -25
16 -26 43 -2 43 11 0 23 5 26 10 10 16 23 12 35 -10z m-325 -60 c3 -11 12 -20
18 -20 7 0 22 -3 33 -6 16 -4 23 0 27 15 7 29 57 30 57 1 0 -15 -7 -20 -25
-20 -16 0 -25 -6 -25 -15 0 -13 4 -13 38 1 54 24 69 27 75 17 9 -14 -113 -73
-149 -73 -17 0 -37 -7 -44 -15 -14 -17 -60 -21 -60 -5 0 6 14 10 30 10 17 0
30 4 30 8 0 5 12 14 26 20 28 13 24 32 -7 32 -28 0 -61 33 -53 53 8 23 21 21
29 -3z m259 2 c11 -6 -14 -22 -35 -22 -9 0 -19 9 -22 20 -4 17 -1 19 21 14 15
-4 31 -9 36 -12z m-264 -67 c0 -9 -9 -15 -25 -15 -16 0 -25 6 -25 15 0 9 9 15
25 15 16 0 25 -6 25 -15z m2811 -204 c9 -9 22 -32 29 -51 17 -49 -10 -107 -63
-135 l-37 -20 -37 21 c-75 43 -67 173 12 204 26 10 75 1 96 -19z"/>
<path d="M6525 12370 c-123 -8 -278 -26 -343 -40 -23 -6 -56 -10 -73 -10 -16
0 -62 -7 -102 -15 -40 -8 -108 -22 -152 -31 -80 -16 -163 -36 -221 -54 -17 -6
-37 -10 -46 -10 -22 0 -282 -78 -333 -100 -11 -5 -47 -18 -80 -29 -33 -11 -85
-30 -115 -42 -30 -11 -65 -23 -78 -26 -12 -3 -25 -9 -28 -14 -3 -5 -13 -9 -22
-9 -9 0 -30 -7 -47 -16 -16 -8 -62 -29 -102 -45 -40 -17 -130 -60 -200 -96
-70 -36 -155 -79 -188 -95 -33 -16 -67 -33 -75 -38 -8 -6 -33 -19 -54 -31 -22
-12 -64 -38 -95 -59 -31 -20 -75 -48 -97 -61 -98 -57 -360 -238 -403 -279 -31
-29 -108 -90 -115 -90 -3 0 -14 -8 -24 -17 -10 -10 -45 -40 -78 -68 -71 -60
-388 -377 -499 -500 -130 -144 -292 -348 -380 -480 -18 -28 -40 -57 -49 -64
-9 -7 -16 -17 -16 -22 0 -5 -28 -51 -63 -102 -139 -208 -406 -674 -407 -709 0
-7 -55 -132 -70 -160 -6 -10 -10 -23 -10 -29 0 -6 -7 -27 -16 -47 -8 -21 -21
-50 -28 -67 -7 -16 -21 -55 -30 -85 -10 -30 -21 -64 -26 -75 -10 -25 -33 -89
-50 -135 -6 -19 -16 -51 -20 -70 -4 -19 -13 -48 -18 -65 -6 -16 -16 -50 -22
-75 -6 -25 -17 -67 -25 -95 -43 -155 -53 -194 -84 -345 -32 -153 -58 -351 -71
-541 -5 -80 -14 -197 -20 -260 -13 -146 -13 -424 0 -559 5 -58 14 -172 20
-255 15 -229 46 -441 92 -635 6 -25 14 -63 19 -85 21 -101 56 -251 68 -285 4
-14 16 -52 26 -85 33 -111 76 -240 86 -257 5 -10 9 -23 9 -29 0 -6 6 -25 14
-42 7 -18 21 -52 31 -77 10 -25 24 -58 31 -75 7 -16 26 -59 41 -95 36 -84 191
-392 248 -495 25 -44 48 -87 51 -95 4 -8 30 -51 59 -95 50 -78 134 -210 158
-250 25 -41 275 -378 352 -475 20 -25 48 -61 63 -80 86 -112 511 -529 592
-581 14 -9 61 -46 105 -83 44 -37 105 -83 135 -103 30 -20 57 -40 60 -43 8
-11 292 -201 309 -208 9 -3 18 -8 21 -12 11 -13 120 -75 275 -155 244 -126
384 -195 394 -195 7 0 40 -13 74 -29 34 -16 98 -41 142 -56 44 -15 94 -33 110
-40 17 -7 48 -18 70 -24 22 -7 56 -18 75 -26 39 -15 221 -70 260 -79 14 -3 54
-13 90 -21 36 -9 76 -19 90 -21 14 -3 54 -11 90 -19 74 -16 189 -39 271 -55
180 -35 580 -65 844 -64 276 1 719 37 789 64 15 5 42 10 61 10 19 0 46 5 62
11 15 6 57 15 93 20 36 5 94 16 130 25 36 8 88 20 115 25 28 5 59 13 70 18 11
4 47 16 80 25 33 10 80 24 105 32 25 8 53 14 63 14 9 0 25 4 35 10 9 5 80 30
157 55 77 26 154 53 172 61 17 8 38 14 47 14 9 0 24 4 34 10 31 17 111 50 122
50 9 0 33 10 70 32 8 4 22 11 30 14 8 3 42 19 75 34 33 16 80 38 105 49 25 11
77 39 115 60 39 22 93 52 120 66 28 14 73 40 100 56 28 16 61 34 75 40 14 6
39 21 57 35 17 13 34 24 37 24 7 0 282 186 331 224 22 17 45 34 50 38 6 4 39
31 75 60 36 29 87 71 114 93 78 62 453 441 536 540 41 50 89 106 107 125 17
19 46 55 63 80 18 25 37 50 44 55 6 6 17 21 24 36 7 14 26 39 43 57 16 17 29
33 29 36 0 3 19 32 43 65 23 32 49 68 57 81 8 12 26 39 41 59 14 20 51 79 82
131 32 52 62 102 67 110 5 8 23 42 41 75 17 33 44 79 60 103 16 24 29 49 29
56 0 6 4 16 9 22 7 7 38 64 90 161 12 24 64 136 90 195 12 26 30 76 42 110 12
35 25 68 29 73 5 6 18 39 30 75 13 36 26 69 31 74 5 6 9 19 9 29 0 10 6 33 13
50 15 35 35 98 62 192 9 33 20 71 25 85 4 14 15 54 25 90 9 36 21 81 27 100 7
19 15 55 19 80 7 42 18 90 39 180 13 57 31 170 40 252 4 42 12 82 16 90 5 7
12 60 16 118 4 58 12 152 17 210 13 137 13 737 0 860 -5 52 -14 152 -19 223
-5 70 -11 131 -14 136 -3 5 -10 44 -15 87 -13 104 -28 195 -46 274 -9 36 -20
85 -26 110 -6 25 -16 70 -24 100 -8 30 -22 87 -31 125 -9 39 -27 102 -40 141
-13 39 -24 78 -24 87 0 9 -6 31 -14 49 -7 18 -21 60 -31 93 -10 33 -24 74 -31
92 -8 17 -14 38 -14 46 0 9 -4 19 -10 22 -5 3 -10 13 -10 21 0 9 -13 45 -30
81 -16 35 -30 66 -30 68 0 18 -198 422 -241 491 -20 34 -51 88 -69 120 -62
116 -286 446 -347 512 -7 7 -27 33 -45 58 -18 25 -43 47 -57 51 -34 8 -49 20
-76 63 -28 43 -163 200 -173 200 -10 0 -32 -51 -32 -75 0 -12 -15 -68 -34
-126 -19 -57 -37 -127 -41 -154 -5 -44 -3 -55 21 -90 49 -73 59 -84 72 -85 7
0 20 -16 29 -35 9 -19 19 -35 23 -35 6 0 35 -55 71 -134 12 -27 47 -86 77
-130 30 -44 68 -105 84 -135 17 -31 47 -80 67 -111 61 -95 165 -296 222 -430
22 -50 39 -91 53 -122 27 -61 43 -103 70 -178 15 -41 33 -91 41 -110 7 -19 19
-53 28 -75 15 -40 57 -178 82 -270 7 -27 19 -70 26 -95 7 -25 16 -63 20 -85 4
-22 16 -76 27 -120 22 -88 44 -207 66 -360 8 -55 20 -136 27 -180 17 -114 24
-787 9 -945 -24 -254 -26 -276 -34 -288 -4 -6 -11 -44 -16 -84 -6 -40 -17
-107 -26 -148 -8 -41 -19 -102 -25 -135 -5 -33 -13 -69 -18 -80 -10 -24 -29
-94 -40 -150 -5 -22 -16 -65 -24 -95 -9 -30 -25 -89 -37 -130 -11 -41 -26 -91
-34 -110 -7 -19 -21 -60 -31 -90 -9 -30 -23 -68 -30 -85 -7 -16 -21 -55 -31
-85 -9 -30 -21 -59 -25 -64 -5 -6 -9 -16 -9 -24 0 -7 -13 -40 -30 -74 -16 -33
-30 -64 -30 -70 0 -5 -31 -74 -70 -154 -38 -79 -70 -148 -70 -153 0 -5 -3 -11
-7 -13 -8 -3 -29 -39 -74 -127 -15 -30 -32 -57 -36 -60 -5 -3 -19 -26 -32 -51
-29 -57 -262 -407 -293 -439 -13 -14 -40 -47 -60 -74 -21 -28 -57 -71 -81 -96
-23 -25 -64 -73 -90 -106 -25 -33 -95 -110 -154 -172 -82 -85 -119 -116 -152
-128 -57 -20 -59 -20 -73 13 -28 63 -180 239 -415 479 -51 52 -93 97 -93 101
0 4 -12 13 -28 19 -15 7 -36 28 -46 47 -10 20 -23 33 -28 30 -9 -6 -428 411
-428 427 0 4 -19 36 -41 69 -30 43 -48 60 -64 60 -15 0 -48 -27 -98 -77 -344
-355 -444 -443 -502 -443 -6 0 -27 24 -45 52 -28 44 -860 888 -995 1009 -94
84 -275 279 -315 339 -54 81 -148 180 -170 180 -9 0 -42 -26 -72 -57 -85 -88
-664 -660 -823 -813 -160 -155 -535 -515 -673 -646 -136 -130 -170 -140 -224
-71 -18 23 -67 76 -108 118 -185 188 -249 258 -279 307 -36 56 -65 82 -93 82
-10 0 -282 -265 -617 -601 -507 -507 -603 -600 -621 -594 -29 9 -206 193 -288
300 -26 33 -55 69 -65 80 -10 11 -57 76 -105 144 -48 68 -124 175 -170 238
-45 63 -89 127 -96 141 -8 15 -31 52 -51 82 -21 30 -41 64 -46 75 -5 11 -23
43 -39 70 -17 28 -35 59 -40 70 -6 11 -14 27 -18 35 -5 8 -14 24 -20 35 -40
71 -156 314 -199 415 -8 19 -21 48 -29 63 -8 16 -14 35 -14 42 0 8 -7 31 -16
52 -9 21 -20 47 -24 58 -26 73 -33 93 -40 120 -8 28 -16 54 -45 135 -7 19 -18
53 -24 75 -5 22 -19 72 -30 110 -11 39 -25 95 -31 125 -6 30 -18 81 -26 112
-8 32 -14 74 -14 94 0 19 -5 45 -12 57 -6 12 -15 56 -19 97 -3 41 -11 102 -17
135 -40 229 -60 678 -43 970 12 203 13 213 36 375 8 58 19 138 24 178 6 40 15
81 21 92 5 10 10 35 10 55 0 19 7 52 15 72 8 19 15 53 15 75 0 22 5 48 11 59
6 11 14 41 19 67 22 119 39 184 63 242 5 14 13 41 18 60 14 63 64 200 95 263
8 16 14 32 14 37 0 5 13 38 30 73 16 36 30 70 30 75 0 6 11 32 24 59 13 26 34
69 46 95 12 27 26 50 31 54 5 3 9 15 10 27 0 12 9 36 19 52 17 27 29 49 61
120 5 11 13 27 18 35 8 15 37 70 52 100 4 8 10 22 13 30 4 8 15 29 26 45 10
17 28 48 40 70 12 22 34 58 50 80 16 22 46 69 68 105 22 36 52 78 66 93 14 15
26 30 26 33 0 4 103 142 188 252 27 34 68 82 90 106 23 24 63 70 90 102 69 82
382 390 468 461 98 80 233 185 254 198 10 5 44 29 76 53 132 95 230 163 244
170 8 3 30 16 48 28 18 12 52 32 75 44 23 12 65 34 92 50 76 43 358 180 371
180 2 0 41 18 87 40 86 41 204 88 247 97 14 3 30 9 35 13 6 4 44 18 85 30 41
13 79 27 85 32 5 4 20 8 33 8 13 0 38 6 55 14 18 8 46 17 62 20 45 8 138 32
155 39 22 10 106 27 176 36 34 5 68 12 75 17 8 5 37 11 64 15 129 17 225 31
275 39 30 6 158 15 285 22 330 17 888 -8 1065 -47 36 -9 84 -15 106 -15 23 0
61 -7 84 -15 23 -8 53 -15 66 -15 26 0 183 -39 375 -94 31 -9 79 -16 107 -16
28 0 54 -4 57 -10 3 -5 14 -10 24 -10 10 0 24 -7 31 -15 7 -8 23 -15 36 -15
12 0 26 -4 29 -10 3 -5 16 -10 29 -10 12 0 31 -7 42 -15 10 -8 27 -15 37 -15
10 0 20 -7 23 -15 4 -10 21 -15 53 -15 33 -1 60 -9 96 -30 28 -16 57 -32 65
-36 8 -3 30 -12 48 -20 53 -23 105 -17 188 21 41 19 86 38 100 41 13 3 27 10
30 15 3 5 16 9 28 9 13 0 29 6 35 14 6 7 24 16 39 19 63 13 82 66 29 83 -12 4
-42 21 -68 38 -63 42 -105 66 -159 91 -25 11 -66 32 -90 46 -25 15 -72 39
-105 53 -33 15 -68 31 -77 37 -10 5 -46 19 -80 30 -35 12 -79 32 -98 44 -39
23 -94 44 -185 70 -33 9 -78 23 -100 30 -22 7 -69 20 -105 30 -36 9 -76 21
-90 26 -14 4 -47 13 -75 18 -27 5 -81 17 -120 26 -38 9 -98 20 -133 25 -35 5
-68 13 -74 16 -7 4 -44 11 -82 15 -296 31 -400 41 -536 49 -175 10 -589 10
-755 0z"/>
<path d="M7882 11067 c-23 -17 -43 -38 -46 -45 -8 -19 83 -122 101 -115 7 3
21 19 29 35 8 16 24 38 34 48 19 19 19 20 -12 55 -50 57 -60 59 -106 22z"/>
<path d="M5498 10769 c-27 -15 -22 -47 6 -55 14 -3 30 -3 35 1 17 10 13 52 -5
59 -19 7 -15 8 -36 -5z"/>
<path d="M4435 10180 c-108 -23 -231 -67 -266 -97 -8 -7 -19 -13 -23 -13 -43
0 -304 -230 -340 -299 -7 -14 -33 -64 -58 -111 -24 -47 -52 -112 -62 -145 -9
-33 -22 -76 -28 -95 -16 -49 -16 -386 0 -402 7 -7 12 -23 12 -37 0 -15 7 -39
15 -55 8 -15 15 -33 15 -38 0 -9 44 -100 71 -148 82 -143 245 -296 396 -370
170 -83 225 -95 433 -95 213 0 278 15 458 103 149 73 293 210 368 347 5 11 23
42 38 69 30 54 53 112 67 171 19 77 38 220 38 280 -1 100 -36 311 -58 340 -4
5 -18 35 -30 65 -46 107 -124 209 -251 324 -88 80 -231 153 -371 191 -72 20
-355 30 -424 15z"/>
<path d="M10776 8483 c-3 -4 -6 -13 -6 -20 0 -8 -16 -39 -35 -69 -25 -39 -54
-67 -105 -100 -39 -25 -70 -49 -70 -54 0 -12 37 -50 48 -50 28 -1 118 -119
137 -181 4 -13 14 -32 23 -42 14 -16 16 -16 34 -1 10 10 18 22 18 28 0 38 82
155 130 187 71 46 72 49 46 70 -13 11 -28 19 -34 19 -10 0 -41 24 -83 65 -29
28 -55 76 -63 116 -6 26 -28 44 -40 32z"/>
<path d="M2868 8219 c-26 -14 -23 -65 3 -79 16 -9 26 -8 45 5 30 19 31 49 2
69 -26 19 -27 19 -50 5z"/>
<path d="M10466 6591 c-20 -33 -51 -69 -69 -80 -65 -42 -71 -49 -57 -66 7 -8
28 -23 47 -31 24 -12 45 -37 74 -85 l40 -69 42 63 c101 152 97 137 47 194 -23
26 -46 57 -52 68 -33 72 -32 72 -72 6z"/>
<path d="M3084 6319 c-25 -28 -8 -53 39 -57 32 -3 37 0 43 24 12 48 -46 72
-82 33z"/>
<path d="M4713 6191 c-12 -21 -38 -48 -57 -62 -20 -13 -38 -30 -41 -38 -3 -9
16 -35 48 -66 30 -28 58 -61 61 -73 11 -33 21 -27 64 31 22 28 49 61 61 71 11
11 21 22 21 26 0 4 -30 39 -68 78 l-68 70 -21 -37z"/>
<path d="M8999 6061 c-20 -16 -22 -23 -14 -47 11 -32 46 -44 71 -24 21 18 18
67 -5 80 -25 13 -25 13 -52 -9z"/>
<path d="M8160 5789 c-24 -44 15 -98 60 -84 25 8 36 49 21 81 -14 32 -65 34
-81 3z"/>
<path d="M5816 5671 c-28 -31 -9 -75 32 -79 26 -3 34 1 43 22 10 20 9 30 -5
51 -20 30 -46 32 -70 6z"/>
<path d="M3947 5312 c-22 -24 -22 -61 1 -82 16 -16 19 -16 45 -2 33 20 36 53
7 82 -25 25 -32 25 -53 2z"/>
<path d="M10000 4851 c-21 -6 -25 -13 -22 -41 1 -19 8 -37 13 -41 14 -8 47 0
55 13 8 12 -5 78 -14 77 -4 -1 -18 -4 -32 -8z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -1,461 +0,0 @@
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["bulmaSlider"] = factory();
else
root["bulmaSlider"] = factory();
})(typeof self !== 'undefined' ? self : this, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isString", function() { return isString; });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__events__ = __webpack_require__(1);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var isString = function isString(unknown) {
return typeof unknown === 'string' || !!unknown && (typeof unknown === 'undefined' ? 'undefined' : _typeof(unknown)) === 'object' && Object.prototype.toString.call(unknown) === '[object String]';
};
var bulmaSlider = function (_EventEmitter) {
_inherits(bulmaSlider, _EventEmitter);
function bulmaSlider(selector) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
_classCallCheck(this, bulmaSlider);
var _this = _possibleConstructorReturn(this, (bulmaSlider.__proto__ || Object.getPrototypeOf(bulmaSlider)).call(this));
_this.element = typeof selector === 'string' ? document.querySelector(selector) : selector;
// An invalid selector or non-DOM node has been provided.
if (!_this.element) {
throw new Error('An invalid selector or non-DOM node has been provided.');
}
_this._clickEvents = ['click'];
/// Set default options and merge with instance defined
_this.options = _extends({}, options);
_this.onSliderInput = _this.onSliderInput.bind(_this);
_this.init();
return _this;
}
/**
* Initiate all DOM element containing selector
* @method
* @return {Array} Array of all slider instances
*/
_createClass(bulmaSlider, [{
key: 'init',
/**
* Initiate plugin
* @method init
* @return {void}
*/
value: function init() {
this._id = 'bulmaSlider' + new Date().getTime() + Math.floor(Math.random() * Math.floor(9999));
this.output = this._findOutputForSlider();
this._bindEvents();
if (this.output) {
if (this.element.classList.contains('has-output-tooltip')) {
// Get new output position
var newPosition = this._getSliderOutputPosition();
// Set output position
this.output.style['left'] = newPosition.position;
}
}
this.emit('bulmaslider:ready', this.element.value);
}
}, {
key: '_findOutputForSlider',
value: function _findOutputForSlider() {
var _this2 = this;
var result = null;
var outputs = document.getElementsByTagName('output') || [];
Array.from(outputs).forEach(function (output) {
if (output.htmlFor == _this2.element.getAttribute('id')) {
result = output;
return true;
}
});
return result;
}
}, {
key: '_getSliderOutputPosition',
value: function _getSliderOutputPosition() {
// Update output position
var newPlace, minValue;
var style = window.getComputedStyle(this.element, null);
// Measure width of range input
var sliderWidth = parseInt(style.getPropertyValue('width'), 10);
// Figure out placement percentage between left and right of input
if (!this.element.getAttribute('min')) {
minValue = 0;
} else {
minValue = this.element.getAttribute('min');
}
var newPoint = (this.element.value - minValue) / (this.element.getAttribute('max') - minValue);
// Prevent bubble from going beyond left or right (unsupported browsers)
if (newPoint < 0) {
newPlace = 0;
} else if (newPoint > 1) {
newPlace = sliderWidth;
} else {
newPlace = sliderWidth * newPoint;
}
return {
'position': newPlace + 'px'
};
}
/**
* Bind all events
* @method _bindEvents
* @return {void}
*/
}, {
key: '_bindEvents',
value: function _bindEvents() {
if (this.output) {
// Add event listener to update output when slider value change
this.element.addEventListener('input', this.onSliderInput, false);
}
}
}, {
key: 'onSliderInput',
value: function onSliderInput(e) {
e.preventDefault();
if (this.element.classList.contains('has-output-tooltip')) {
// Get new output position
var newPosition = this._getSliderOutputPosition();
// Set output position
this.output.style['left'] = newPosition.position;
}
// Check for prefix and postfix
var prefix = this.output.hasAttribute('data-prefix') ? this.output.getAttribute('data-prefix') : '';
var postfix = this.output.hasAttribute('data-postfix') ? this.output.getAttribute('data-postfix') : '';
// Update output with slider value
this.output.value = prefix + this.element.value + postfix;
this.emit('bulmaslider:ready', this.element.value);
}
}], [{
key: 'attach',
value: function attach() {
var _this3 = this;
var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'input[type="range"].slider';
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var instances = new Array();
var elements = isString(selector) ? document.querySelectorAll(selector) : Array.isArray(selector) ? selector : [selector];
elements.forEach(function (element) {
if (typeof element[_this3.constructor.name] === 'undefined') {
var instance = new bulmaSlider(element, options);
element[_this3.constructor.name] = instance;
instances.push(instance);
} else {
instances.push(element[_this3.constructor.name]);
}
});
return instances;
}
}]);
return bulmaSlider;
}(__WEBPACK_IMPORTED_MODULE_0__events__["a" /* default */]);
/* harmony default export */ __webpack_exports__["default"] = (bulmaSlider);
/***/ }),
/* 1 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var EventEmitter = function () {
function EventEmitter() {
var listeners = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
_classCallCheck(this, EventEmitter);
this._listeners = new Map(listeners);
this._middlewares = new Map();
}
_createClass(EventEmitter, [{
key: "listenerCount",
value: function listenerCount(eventName) {
if (!this._listeners.has(eventName)) {
return 0;
}
var eventListeners = this._listeners.get(eventName);
return eventListeners.length;
}
}, {
key: "removeListeners",
value: function removeListeners() {
var _this = this;
var eventName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
var middleware = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (eventName !== null) {
if (Array.isArray(eventName)) {
name.forEach(function (e) {
return _this.removeListeners(e, middleware);
});
} else {
this._listeners.delete(eventName);
if (middleware) {
this.removeMiddleware(eventName);
}
}
} else {
this._listeners = new Map();
}
}
}, {
key: "middleware",
value: function middleware(eventName, fn) {
var _this2 = this;
if (Array.isArray(eventName)) {
name.forEach(function (e) {
return _this2.middleware(e, fn);
});
} else {
if (!Array.isArray(this._middlewares.get(eventName))) {
this._middlewares.set(eventName, []);
}
this._middlewares.get(eventName).push(fn);
}
}
}, {
key: "removeMiddleware",
value: function removeMiddleware() {
var _this3 = this;
var eventName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
if (eventName !== null) {
if (Array.isArray(eventName)) {
name.forEach(function (e) {
return _this3.removeMiddleware(e);
});
} else {
this._middlewares.delete(eventName);
}
} else {
this._middlewares = new Map();
}
}
}, {
key: "on",
value: function on(name, callback) {
var _this4 = this;
var once = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
if (Array.isArray(name)) {
name.forEach(function (e) {
return _this4.on(e, callback);
});
} else {
name = name.toString();
var split = name.split(/,|, | /);
if (split.length > 1) {
split.forEach(function (e) {
return _this4.on(e, callback);
});
} else {
if (!Array.isArray(this._listeners.get(name))) {
this._listeners.set(name, []);
}
this._listeners.get(name).push({ once: once, callback: callback });
}
}
}
}, {
key: "once",
value: function once(name, callback) {
this.on(name, callback, true);
}
}, {
key: "emit",
value: function emit(name, data) {
var _this5 = this;
var silent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
name = name.toString();
var listeners = this._listeners.get(name);
var middlewares = null;
var doneCount = 0;
var execute = silent;
if (Array.isArray(listeners)) {
listeners.forEach(function (listener, index) {
// Start Middleware checks unless we're doing a silent emit
if (!silent) {
middlewares = _this5._middlewares.get(name);
// Check and execute Middleware
if (Array.isArray(middlewares)) {
middlewares.forEach(function (middleware) {
middleware(data, function () {
var newData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
if (newData !== null) {
data = newData;
}
doneCount++;
}, name);
});
if (doneCount >= middlewares.length) {
execute = true;
}
} else {
execute = true;
}
}
// If Middleware checks have been passed, execute
if (execute) {
if (listener.once) {
listeners[index] = null;
}
listener.callback(data);
}
});
// Dirty way of removing used Events
while (listeners.indexOf(null) !== -1) {
listeners.splice(listeners.indexOf(null), 1);
}
}
}
}]);
return EventEmitter;
}();
/* harmony default export */ __webpack_exports__["a"] = (EventEmitter);
/***/ })
/******/ ])["default"];
});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,78 +0,0 @@
window.HELP_IMPROVE_VIDEOJS = false;
var INTERP_BASE = "./static/interpolation/stacked";
var NUM_INTERP_FRAMES = 240;
var interp_images = [];
function preloadInterpolationImages() {
for (var i = 0; i < NUM_INTERP_FRAMES; i++) {
var path = INTERP_BASE + '/' + String(i).padStart(6, '0') + '.jpg';
interp_images[i] = new Image();
interp_images[i].src = path;
}
}
function setInterpolationImage(i) {
var image = interp_images[i];
image.ondragstart = function() { return false; };
image.oncontextmenu = function() { return false; };
$('#interpolation-image-wrapper').empty().append(image);
}
$(document).ready(function() {
// Check for click events on the navbar burger icon
$(".navbar-burger").click(function() {
// Toggle the "is-active" class on both the "navbar-burger" and the "navbar-menu"
$(".navbar-burger").toggleClass("is-active");
$(".navbar-menu").toggleClass("is-active");
});
var options = {
slidesToScroll: 1,
slidesToShow: 3,
loop: true,
infinite: true,
autoplay: false,
autoplaySpeed: 3000,
}
// Initialize all div with carousel class
var carousels = bulmaCarousel.attach('.carousel', options);
// Loop on each carousel initialized
for(var i = 0; i < carousels.length; i++) {
// Add listener to event
carousels[i].on('before:show', state => {
console.log(state);
});
}
// Access to bulmaCarousel instance of an element
var element = document.querySelector('#my-element');
if (element && element.bulmaCarousel) {
// bulmaCarousel instance is available as element.bulmaCarousel
element.bulmaCarousel.on('before-show', function(state) {
console.log(state);
});
}
/*var player = document.getElementById('interpolation-video');
player.addEventListener('loadedmetadata', function() {
$('#interpolation-slider').on('input', function(event) {
console.log(this.value, player.duration);
player.currentTime = player.duration / 100 * this.value;
})
}, false);*/
preloadInterpolationImages();
$('#interpolation-slider').on('input', function(event) {
setInterpolationImage(this.value);
});
setInterpolationImage(0);
$('#interpolation-slider').prop('max', NUM_INTERP_FRAMES - 1);
bulmaSlider.attach();
})

10
tailwind.config.js Normal file
View file

@ -0,0 +1,10 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./src/**/*.{js,jsx,ts,tsx}",
],
theme: {
extend: {},
},
plugins: [],
}