From ad3ce54a3c63d8ea558446a703ba9bc5bb673953 Mon Sep 17 00:00:00 2001 From: bill bittner Date: Wed, 30 May 2018 15:00:09 -0700 Subject: [PATCH 01/24] added scss files --- .../build/components/ActiveStatusBar/index.js | 4 +- client/build/components/AssetPreview/view.js | 6 +- .../components/InactiveStatusBar/index.js | 4 +- .../build/components/PublishPreview/index.js | 4 +- client/build/scss/_align.scss | 19 ++++ client/build/scss/_body.scss | 17 +++ client/build/scss/_button.scss | 60 +++++++++++ client/build/scss/_column.scss | 45 ++++++++ client/build/scss/_flex-container.scss | 44 ++++++++ client/build/scss/_font.scss | 18 ++++ client/build/scss/_html.scss | 5 + client/build/scss/_info-message.scss | 15 +++ client/build/scss/_input.scss | 88 +++++++++++++++ client/build/scss/_link.scss | 35 ++++++ client/build/scss/_row.scss | 38 +++++++ client/build/scss/_text.scss | 39 +++++++ client/build/scss/_tooltip.scss | 34 ++++++ client/build/scss/all.scss | 13 +++ client/build/scss/containers/_dropzone.scss | 28 +++++ client/build/scss/containers/_nav-bar.scss | 20 ++++ client/build/scss/font/Lekton/Lekton-Bold.ttf | Bin 0 -> 113684 bytes .../build/scss/font/Lekton/Lekton-Italic.ttf | Bin 0 -> 34212 bytes .../build/scss/font/Lekton/Lekton-Regular.ttf | Bin 0 -> 114320 bytes client/build/scss/font/Lekton/OFL.txt | 93 ++++++++++++++++ client/build/scss/icon/downArrow.svg | 16 +++ client/build/scss/icon/search.svg | 15 +++ client/build/scss/icon/upload.svg | 22 ++++ .../src/components/ActiveStatusBar/index.jsx | 2 +- .../components/InactiveStatusBar/index.jsx | 2 +- .../src/components/PublishPreview/index.jsx | 2 +- .../AssetPreview/index.js | 0 .../AssetPreview/view.jsx | 6 +- .../{components => containers}/SEO/index.js | 0 .../{components => containers}/SEO/view.jsx | 0 client/src/scss/_align.scss | 19 ++++ client/src/scss/_body.scss | 17 +++ client/src/scss/_button.scss | 60 +++++++++++ client/src/scss/_column.scss | 45 ++++++++ client/src/scss/_flex-container.scss | 44 ++++++++ client/src/scss/_font.scss | 18 ++++ client/src/scss/_html.scss | 5 + client/src/scss/_info-message.scss | 15 +++ client/src/scss/_input.scss | 92 ++++++++++++++++ client/src/scss/_link.scss | 35 ++++++ client/src/scss/_media-queries.scss | 100 ++++++++++++++++++ client/src/scss/_reset.scss | 0 client/src/scss/_row.scss | 38 +++++++ client/src/scss/_span.scss | 9 ++ client/src/scss/_text.scss | 39 +++++++ client/src/scss/_tooltip.scss | 34 ++++++ client/src/scss/_video.scss | 12 +++ client/src/scss/all.scss | 24 +++++ client/src/scss/components/_progress-bar.scss | 7 ++ .../src/scss/components/_publish-preview.scss | 3 + .../src/scss/containers/_asset-preview.scss | 22 ++++ client/src/scss/containers/_dropzone.scss | 28 +++++ client/src/scss/containers/_nav-bar.scss | 20 ++++ .../src/scss/containers/_show-asset-lite.scss | 20 ++++ client/src/scss/font/Lekton/Lekton-Bold.ttf | Bin 0 -> 113684 bytes client/src/scss/font/Lekton/Lekton-Italic.ttf | Bin 0 -> 34212 bytes .../src/scss/font/Lekton/Lekton-Regular.ttf | Bin 0 -> 114320 bytes client/src/scss/font/Lekton/OFL.txt | 93 ++++++++++++++++ client/src/scss/icon/downArrow.svg | 16 +++ client/src/scss/icon/search.svg | 15 +++ client/src/scss/icon/upload.svg | 22 ++++ 65 files changed, 1531 insertions(+), 15 deletions(-) create mode 100644 client/build/scss/_align.scss create mode 100644 client/build/scss/_body.scss create mode 100644 client/build/scss/_button.scss create mode 100644 client/build/scss/_column.scss create mode 100644 client/build/scss/_flex-container.scss create mode 100644 client/build/scss/_font.scss create mode 100644 client/build/scss/_html.scss create mode 100644 client/build/scss/_info-message.scss create mode 100644 client/build/scss/_input.scss create mode 100644 client/build/scss/_link.scss create mode 100644 client/build/scss/_row.scss create mode 100644 client/build/scss/_text.scss create mode 100644 client/build/scss/_tooltip.scss create mode 100644 client/build/scss/all.scss create mode 100644 client/build/scss/containers/_dropzone.scss create mode 100644 client/build/scss/containers/_nav-bar.scss create mode 100644 client/build/scss/font/Lekton/Lekton-Bold.ttf create mode 100644 client/build/scss/font/Lekton/Lekton-Italic.ttf create mode 100644 client/build/scss/font/Lekton/Lekton-Regular.ttf create mode 100644 client/build/scss/font/Lekton/OFL.txt create mode 100644 client/build/scss/icon/downArrow.svg create mode 100644 client/build/scss/icon/search.svg create mode 100644 client/build/scss/icon/upload.svg rename client/src/{components => containers}/AssetPreview/index.js (100%) rename client/src/{components => containers}/AssetPreview/view.jsx (87%) rename client/src/{components => containers}/SEO/index.js (100%) rename client/src/{components => containers}/SEO/view.jsx (100%) create mode 100644 client/src/scss/_align.scss create mode 100644 client/src/scss/_body.scss create mode 100644 client/src/scss/_button.scss create mode 100644 client/src/scss/_column.scss create mode 100644 client/src/scss/_flex-container.scss create mode 100644 client/src/scss/_font.scss create mode 100644 client/src/scss/_html.scss create mode 100644 client/src/scss/_info-message.scss create mode 100644 client/src/scss/_input.scss create mode 100644 client/src/scss/_link.scss create mode 100644 client/src/scss/_media-queries.scss create mode 100644 client/src/scss/_reset.scss create mode 100644 client/src/scss/_row.scss create mode 100644 client/src/scss/_span.scss create mode 100644 client/src/scss/_text.scss create mode 100644 client/src/scss/_tooltip.scss create mode 100644 client/src/scss/_video.scss create mode 100644 client/src/scss/all.scss create mode 100644 client/src/scss/components/_progress-bar.scss create mode 100644 client/src/scss/components/_publish-preview.scss create mode 100644 client/src/scss/containers/_asset-preview.scss create mode 100644 client/src/scss/containers/_dropzone.scss create mode 100644 client/src/scss/containers/_nav-bar.scss create mode 100644 client/src/scss/containers/_show-asset-lite.scss create mode 100644 client/src/scss/font/Lekton/Lekton-Bold.ttf create mode 100644 client/src/scss/font/Lekton/Lekton-Italic.ttf create mode 100644 client/src/scss/font/Lekton/Lekton-Regular.ttf create mode 100644 client/src/scss/font/Lekton/OFL.txt create mode 100644 client/src/scss/icon/downArrow.svg create mode 100644 client/src/scss/icon/search.svg create mode 100644 client/src/scss/icon/upload.svg diff --git a/client/build/components/ActiveStatusBar/index.js b/client/build/components/ActiveStatusBar/index.js index 1e0769d9..a1b6b88a 100644 --- a/client/build/components/ActiveStatusBar/index.js +++ b/client/build/components/ActiveStatusBar/index.js @@ -11,9 +11,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de var ActiveStatusBar = function ActiveStatusBar() { return _react.default.createElement("span", { - className: "progress-bar progress-bar--active" + className: "progress-bar--active" }, "| "); }; var _default = ActiveStatusBar; -exports.default = _default; \ No newline at end of file +exports.default = _default; diff --git a/client/build/components/AssetPreview/view.js b/client/build/components/AssetPreview/view.js index eec62e71..b5a66273 100644 --- a/client/build/components/AssetPreview/view.js +++ b/client/build/components/AssetPreview/view.js @@ -32,14 +32,14 @@ var AssetPreview = function AssetPreview(_ref) { case 'image/png': case 'image/gif': return _react.default.createElement("img", { - className: 'asset-preview', + className: 'asset-preview-image', src: directSourceLink, alt: name }); case 'video/mp4': return _react.default.createElement("img", { - className: 'asset-preview video', + className: 'asset-preview-video', src: thumbnail || defaultThumbnail, alt: name }); @@ -51,4 +51,4 @@ var AssetPreview = function AssetPreview(_ref) { }; var _default = AssetPreview; -exports.default = _default; \ No newline at end of file +exports.default = _default; diff --git a/client/build/components/InactiveStatusBar/index.js b/client/build/components/InactiveStatusBar/index.js index 55f3176a..dfca5167 100644 --- a/client/build/components/InactiveStatusBar/index.js +++ b/client/build/components/InactiveStatusBar/index.js @@ -11,9 +11,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de var InactiveStatusBar = function InactiveStatusBar() { return _react.default.createElement("span", { - className: "progress-bar progress-bar--inactive" + className: "progress-bar--inactive" }, "| "); }; var _default = InactiveStatusBar; -exports.default = _default; \ No newline at end of file +exports.default = _default; diff --git a/client/build/components/PublishPreview/index.js b/client/build/components/PublishPreview/index.js index 45be4308..eb3f2b67 100644 --- a/client/build/components/PublishPreview/index.js +++ b/client/build/components/PublishPreview/index.js @@ -102,7 +102,7 @@ function (_React$Component) { return _react.default.createElement("img", { id: "dropzone-preview", src: this.state.imgSource, - className: this.props.dimPreview ? 'dim' : '', + className: this.props.dimPreview ? 'publish-preview-dim' : '', alt: "publish preview" }); } @@ -120,4 +120,4 @@ PublishPreview.propTypes = { thumbnail: _propTypes.default.object }; var _default = PublishPreview; -exports.default = _default; \ No newline at end of file +exports.default = _default; diff --git a/client/build/scss/_align.scss b/client/build/scss/_align.scss new file mode 100644 index 00000000..1c462277 --- /dev/null +++ b/client/build/scss/_align.scss @@ -0,0 +1,19 @@ +.align-content-left { + text-align: left; +} + +.align-content-center { + text-align: center; +} + +.align-content-right { + text-align: right; +} + +.align-content-top { + vertical-align: top; +} + +.align-content-bottom { + vertical-align: bottom; +} diff --git a/client/build/scss/_body.scss b/client/build/scss/_body.scss new file mode 100644 index 00000000..bfb813da --- /dev/null +++ b/client/build/scss/_body.scss @@ -0,0 +1,17 @@ +body { + margin: 0; + padding: 0; + height: 100%; + word-wrap: break-word; +} + + +body { + display: -webkit-flex; + display: flex; +} + +body { + -webkit-flex-direction: column; + flex-direction: column; +} diff --git a/client/build/scss/_button.scss b/client/build/scss/_button.scss new file mode 100644 index 00000000..2d458d7a --- /dev/null +++ b/client/build/scss/_button.scss @@ -0,0 +1,60 @@ +button { + cursor: pointer; +} + +.button--primary, .button--primary:focus { + border: 1px solid black; + padding: 0.5em; + margin: 0.5em 0.3em 0.5em 0.3em; + color: black; + background-color: white; + outline: 0px; +} + +.button--primary:hover { + border: 1px solid #4156C5; + color: white; + background-color: #4156C5; +} + +.button--primary:active{ + border: 1px solid #ffffff; + color: #d0d0d0; + background-color: #ffffff; +} + +.button--secondary, .button--secondary:focus { + border: 0px; + border-bottom: 1px solid black; + padding: 0.5em; + margin: 0.5em 0.3em 0.5em 0.3em; + color: black; + background-color: white; + outline: 0px; +} + +.button--secondary:hover { + border-bottom: 1px solid #9b9b9b; + color: #4156C5; +} + +.button--secondary:active { + color: #ffffff;; +} + +.button--large{ + margin: 0px; + width: calc(100% - 2px); + padding: 2rem; + font-size: x-large; +} + +.button--cancel{ + border: 0px; + background-color: white; + color: #9b9b9b; +} + +.button--wide { + width: 100%; +} diff --git a/client/build/scss/_column.scss b/client/build/scss/_column.scss new file mode 100644 index 00000000..7f2ca1e1 --- /dev/null +++ b/client/build/scss/_column.scss @@ -0,0 +1,45 @@ +.column { + display: inline-block; + padding: 0px; + margin: 0px; +} + +.column--1 { + width: 10%; +} + +.column--2 { + width: 20%; +} + +.column--3 { + width: 30%; +} + +.column--4 { + width: 40%; +} + +.column--5 { + width: 50%; +} + +.column--6 { + width: 60%; +} + +.column--7 { + width: 70%; +} + +.column--8 { + width: 80%; +} + +.column--9 { + width: 90%; +} + +.column--10 { + width: 100%; +} diff --git a/client/build/scss/_flex-container.scss b/client/build/scss/_flex-container.scss new file mode 100644 index 00000000..767df318 --- /dev/null +++ b/client/build/scss/_flex-container.scss @@ -0,0 +1,44 @@ +.flex-container--column, .flex-container--row { + display: -webkit-flex; + display: flex; +} + +.flex-container--column { + -webkit-flex-direction: column; + flex-direction: column; +} + +.flex-container--row { + -webkit-flex-direction: row; + flex-direction: row; +} + +.flex-container--wrap { + -webkit-flex-wrap: wrap; + flex-wrap: wrap; +} + +.flex-container--left-bottom { + justify-content: flex-start; + align-items: baseline; +} + +.flex-container--left-center { + justify-content: flex-start; + align-items: center; +} + +.flex-container--center-center { + justify-content: center; + align-items: center; +} + +.flex-container--space-between-bottom { + justify-content: space-between; + align-items: baseline; +} + +.flex-container--space-between-center { + justify-content: space-between; + align-items: center; +} diff --git a/client/build/scss/_font.scss b/client/build/scss/_font.scss new file mode 100644 index 00000000..a62312a0 --- /dev/null +++ b/client/build/scss/_font.scss @@ -0,0 +1,18 @@ +@font-face { + font-family: 'Lekton'; + src: url('./font/Lekton/Lekton-Regular.ttf'); +} + +@font-face { + font-family: 'Lekton'; + src: url('./font/Lekton/Lekton-Bold.ttf'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'Lekton'; + src: url('./font/Lekton/Lekton-Italic.ttf'); + font-weight: normal; + font-style: italic; +} diff --git a/client/build/scss/_html.scss b/client/build/scss/_html.scss new file mode 100644 index 00000000..2c4c4311 --- /dev/null +++ b/client/build/scss/_html.scss @@ -0,0 +1,5 @@ +html { + margin: 0; + padding: 0; + height: 100%; +} diff --git a/client/build/scss/_info-message.scss b/client/build/scss/_info-message.scss new file mode 100644 index 00000000..91f39305 --- /dev/null +++ b/client/build/scss/_info-message.scss @@ -0,0 +1,15 @@ +.info-message, .info-message--success, .info-message--failure { + + font-size: medium; + margin: 0px; + padding: 0.3em; + color: #9b9b9b; +} + +.info-message--success { + color: green; +} + +.info-message--failure { + color: red; +} diff --git a/client/build/scss/_input.scss b/client/build/scss/_input.scss new file mode 100644 index 00000000..b8f395ca --- /dev/null +++ b/client/build/scss/_input.scss @@ -0,0 +1,88 @@ +input:-webkit-autofill { + -webkit-box-shadow: 0 0 0px 1000px white inset; +} + +.label, .input-text, .select, .textarea, .text--large { + margin: 0px; + padding: 0.3em; + outline: none; + border: 0px; + background-color: white; + display: inline-block; +} + +.input-disabled { + border: 1px solid black; + padding: 0.5em; + margin: 0px; + color: black; + background-color: white; +} + +option { + font-family: monospace; +} + + +.input-checkbox { + border: 1px solid black; + background: white; +} + +.input-file { + width: 0.1px; + height: 0.1px; + opacity: 0; + overflow: hidden; + position: absolute; + z-index: -1; +} + +.input-radio, .label--pointer { + cursor: pointer; +} + +.select--arrow { + -moz-appearance:none; + -webkit-appearance: none; + background: url('./icon/downArrow.svg') no-repeat right; + cursor: pointer; + padding-right: 1.5em; +} + +.input-text--primary, .select--primary { + border-bottom: 1px solid #9b9b9b; +} + +.input-text--primary:focus, .select--primary:focus { + border-bottom: 1px solid #9b9b9b; +} + +.textarea--primary { + border-bottom: 1px solid #9b9b9b; +} + +.textarea--primary:focus { + border-bottom: 1px solid #9b9b9b; +} + +.input-text--full-width, .textarea--full-width { + width: calc(100% - 0.6em); +} + +.input-disabled--full-width { + width: calc(100% - 1em - 2px); +} + +.url-text--primary, .url-text--secondary { + margin:0px; + padding:0px; +} + +.url-text--primary { + color: black; +} + +.url-text--secondary { + color: #9b9b9b; +} diff --git a/client/build/scss/_link.scss b/client/build/scss/_link.scss new file mode 100644 index 00000000..71a1bce8 --- /dev/null +++ b/client/build/scss/_link.scss @@ -0,0 +1,35 @@ +/* LINKS */ + +a, a:visited { + text-decoration: none; +} + +.link--primary, .link--primary:visited { + color: #4156C5; +} + +.link--secondary, .link--secondary:visited { + font-size: medium; + margin: 0px; + padding: 0.3em; + color: #9b9b9b; +} + +.link--disabled-text { + color: #9b9b9b; + text-decoration: underline; +} + +.link--nav { + color: black; + border-bottom: 2px solid white; +} + +.link--nav:hover { + color: #4156C5; +} + +.link--nav-active { + color: #4156C5; + border-bottom: 2px solid #4156C5; +} diff --git a/client/build/scss/_row.scss b/client/build/scss/_row.scss new file mode 100644 index 00000000..169518ec --- /dev/null +++ b/client/build/scss/_row.scss @@ -0,0 +1,38 @@ +.row { + clear: both; + margin: 0px; +} + +.row--padded { + padding: 3rem; +} + +.row--margined { + margin: 3rem; +} + +.row--wide { + padding-right: 0px; + padding-left: 0px; +} + +.row--short { + padding-top: 0px; + padding-bottom: 0px; +} + +.row--tall { + flex: 1 0 auto; +} + +.row--no-top { + padding-top: 0px; +} + +.row--no-bottom { + padding-bottom: 0px; +} + +.row--no-right { + padding-right: 0px; +} diff --git a/client/build/scss/_text.scss b/client/build/scss/_text.scss new file mode 100644 index 00000000..2d3a1b79 --- /dev/null +++ b/client/build/scss/_text.scss @@ -0,0 +1,39 @@ +body, button, input, textarea, label, select, option, #channel-publish-in-progress > p, #channel-publish-done > p { + font-family: 'Lekton', monospace; + font-size: large; +} + +h3, p { + + font-size: x-large; +} + +.text--large { + font-size: 2rem; +} + +.text--disabled { + color: #9b9b9b; +} + +.pull-quote { + font-size: 3rem; + margin-top: 1rem; +} + +.fine-print { + font-size: small; +} + +#show-body > .fine-print { + text-align: center; +} + +.blue { + color: #4156C5; +} + +.blue--underlined { + color: #4156C5; + text-decoration: underline; +} diff --git a/client/build/scss/_tooltip.scss b/client/build/scss/_tooltip.scss new file mode 100644 index 00000000..93b5e93c --- /dev/null +++ b/client/build/scss/_tooltip.scss @@ -0,0 +1,34 @@ +/* Tooltip container */ +.tooltip { + position: relative; +} +/* Tooltip text */ +.tooltip > .tooltip-text { + visibility: hidden; + width: 15em; + background-color: #9b9b9b; + color: #fff; + text-align: center; + padding: 0.5em; + /* Position the tooltip text */ + position: absolute; + z-index: 1; + bottom: 110%; + left: 50%; + margin-left: -8em; /* Use half of the width (120/2 = 60), to center the tooltip */ +} +/* Show the tooltip text when you mouse over the tooltip container */ +.tooltip:hover > .tooltip-text { + visibility: visible; +} +/* arrow at bottom of tooltip text */ +.tooltip > .tooltip-text::after { + content: " "; + position: absolute; + top: 100%; + left: 50%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: #9b9b9b transparent transparent transparent; +} diff --git a/client/build/scss/all.scss b/client/build/scss/all.scss new file mode 100644 index 00000000..ebd4a3f9 --- /dev/null +++ b/client/build/scss/all.scss @@ -0,0 +1,13 @@ +@import '_font'; +@import '_html'; +@import '_body'; +@import '_text'; +@import '_flex-container'; +@import '_tooltip'; +@import '_link'; +@import '_row'; +@import '_column'; +@import '_info-message'; +@import '_input'; +@import '_button'; +@import 'containers/_nav-bar.scss'; diff --git a/client/build/scss/containers/_dropzone.scss b/client/build/scss/containers/_dropzone.scss new file mode 100644 index 00000000..9d083d26 --- /dev/null +++ b/client/build/scss/containers/_dropzone.scss @@ -0,0 +1,28 @@ +.dropzone, .dropzone--disabled { + border: 2px dashed #9b9b9b; + text-align: center; + position: relative; +} + +.dropzone:hover, .dropzone--drag-over { + border: 2px dashed #4156C5; + cursor: pointer; +} + +#dropzone-text-holder { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} + +#dropzone-dragover, #dropzone-instructions { + padding: 1em; +} + +#dropzone-preview { + display: block; + width: 100%; +} + diff --git a/client/build/scss/containers/_nav-bar.scss b/client/build/scss/containers/_nav-bar.scss new file mode 100644 index 00000000..68dd89ff --- /dev/null +++ b/client/build/scss/containers/_nav-bar.scss @@ -0,0 +1,20 @@ +.nav-bar { + border-bottom: 0.5px solid #cacaca; +} + +.nav-bar--left { + align-self: center; +} + +.nav-bar-tagline { + font-size: small; +} + +.nav-bar-link { + padding: 1.5rem; + display: inline-block; +} + +.nav-bar-logo { + cursor: pointer; +} diff --git a/client/build/scss/font/Lekton/Lekton-Bold.ttf b/client/build/scss/font/Lekton/Lekton-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b46b56b2c83f4c295d345ef9953ac3eccea91e78 GIT binary patch literal 113684 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

b2?4EbKk~a7A9*J_5SFO!$PhHxbcB9#n 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 Ab^rhX literal 0 HcmV?d00001 diff --git a/client/build/scss/font/Lekton/Lekton-Italic.ttf b/client/build/scss/font/Lekton/Lekton-Italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a23c4ce419d80ec52f27cdf146efe11510aee565 GIT binary patch literal 34212 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

_(TPW6l9ZSvxj!>HF*ZF({3qT_ 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 + + + Shape + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/client/build/scss/icon/search.svg b/client/build/scss/icon/search.svg new file mode 100644 index 00000000..a7eda5c2 --- /dev/null +++ b/client/build/scss/icon/search.svg @@ -0,0 +1,15 @@ + + + + Fill 5114 + Fill 5115 + Fill 5116 + Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/client/build/scss/icon/upload.svg b/client/build/scss/icon/upload.svg new file mode 100644 index 00000000..8b5637c1 --- /dev/null +++ b/client/build/scss/icon/upload.svg @@ -0,0 +1,22 @@ + + + + upload + Created with Sketch. + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/client/src/components/ActiveStatusBar/index.jsx b/client/src/components/ActiveStatusBar/index.jsx index 69a98440..51f96957 100644 --- a/client/src/components/ActiveStatusBar/index.jsx +++ b/client/src/components/ActiveStatusBar/index.jsx @@ -1,7 +1,7 @@ import React from 'react'; const ActiveStatusBar = () => { - return | ; + return | ; }; export default ActiveStatusBar; diff --git a/client/src/components/InactiveStatusBar/index.jsx b/client/src/components/InactiveStatusBar/index.jsx index 353477be..8c8d78f9 100644 --- a/client/src/components/InactiveStatusBar/index.jsx +++ b/client/src/components/InactiveStatusBar/index.jsx @@ -1,7 +1,7 @@ import React from 'react'; const InactiveStatusBar = () => { - return | ; + return | ; }; export default InactiveStatusBar; diff --git a/client/src/components/PublishPreview/index.jsx b/client/src/components/PublishPreview/index.jsx index 3699ba4e..b6f475ab 100644 --- a/client/src/components/PublishPreview/index.jsx +++ b/client/src/components/PublishPreview/index.jsx @@ -46,7 +46,7 @@ class PublishPreview extends React.Component { publish preview ); diff --git a/client/src/components/AssetPreview/index.js b/client/src/containers/AssetPreview/index.js similarity index 100% rename from client/src/components/AssetPreview/index.js rename to client/src/containers/AssetPreview/index.js diff --git a/client/src/components/AssetPreview/view.jsx b/client/src/containers/AssetPreview/view.jsx similarity index 87% rename from client/src/components/AssetPreview/view.jsx rename to client/src/containers/AssetPreview/view.jsx index d98a1f4c..62e14ede 100644 --- a/client/src/components/AssetPreview/view.jsx +++ b/client/src/containers/AssetPreview/view.jsx @@ -5,7 +5,7 @@ const AssetPreview = ({ defaultThumbnail, claimData: { name, claimId, fileExt, c const directSourceLink = `${claimId}/${name}.${fileExt}`; const showUrlLink = `/${claimId}/${name}`; return ( -

+
{(() => { switch (contentType) { @@ -15,7 +15,7 @@ const AssetPreview = ({ defaultThumbnail, claimData: { name, claimId, fileExt, c case 'image/gif': return ( {name} @@ -23,7 +23,7 @@ const AssetPreview = ({ defaultThumbnail, claimData: { name, claimId, fileExt, c case 'video/mp4': return ( {name} diff --git a/client/src/components/SEO/index.js b/client/src/containers/SEO/index.js similarity index 100% rename from client/src/components/SEO/index.js rename to client/src/containers/SEO/index.js diff --git a/client/src/components/SEO/view.jsx b/client/src/containers/SEO/view.jsx similarity index 100% rename from client/src/components/SEO/view.jsx rename to client/src/containers/SEO/view.jsx diff --git a/client/src/scss/_align.scss b/client/src/scss/_align.scss new file mode 100644 index 00000000..1c462277 --- /dev/null +++ b/client/src/scss/_align.scss @@ -0,0 +1,19 @@ +.align-content-left { + text-align: left; +} + +.align-content-center { + text-align: center; +} + +.align-content-right { + text-align: right; +} + +.align-content-top { + vertical-align: top; +} + +.align-content-bottom { + vertical-align: bottom; +} diff --git a/client/src/scss/_body.scss b/client/src/scss/_body.scss new file mode 100644 index 00000000..bfb813da --- /dev/null +++ b/client/src/scss/_body.scss @@ -0,0 +1,17 @@ +body { + margin: 0; + padding: 0; + height: 100%; + word-wrap: break-word; +} + + +body { + display: -webkit-flex; + display: flex; +} + +body { + -webkit-flex-direction: column; + flex-direction: column; +} diff --git a/client/src/scss/_button.scss b/client/src/scss/_button.scss new file mode 100644 index 00000000..2d458d7a --- /dev/null +++ b/client/src/scss/_button.scss @@ -0,0 +1,60 @@ +button { + cursor: pointer; +} + +.button--primary, .button--primary:focus { + border: 1px solid black; + padding: 0.5em; + margin: 0.5em 0.3em 0.5em 0.3em; + color: black; + background-color: white; + outline: 0px; +} + +.button--primary:hover { + border: 1px solid #4156C5; + color: white; + background-color: #4156C5; +} + +.button--primary:active{ + border: 1px solid #ffffff; + color: #d0d0d0; + background-color: #ffffff; +} + +.button--secondary, .button--secondary:focus { + border: 0px; + border-bottom: 1px solid black; + padding: 0.5em; + margin: 0.5em 0.3em 0.5em 0.3em; + color: black; + background-color: white; + outline: 0px; +} + +.button--secondary:hover { + border-bottom: 1px solid #9b9b9b; + color: #4156C5; +} + +.button--secondary:active { + color: #ffffff;; +} + +.button--large{ + margin: 0px; + width: calc(100% - 2px); + padding: 2rem; + font-size: x-large; +} + +.button--cancel{ + border: 0px; + background-color: white; + color: #9b9b9b; +} + +.button--wide { + width: 100%; +} diff --git a/client/src/scss/_column.scss b/client/src/scss/_column.scss new file mode 100644 index 00000000..7f2ca1e1 --- /dev/null +++ b/client/src/scss/_column.scss @@ -0,0 +1,45 @@ +.column { + display: inline-block; + padding: 0px; + margin: 0px; +} + +.column--1 { + width: 10%; +} + +.column--2 { + width: 20%; +} + +.column--3 { + width: 30%; +} + +.column--4 { + width: 40%; +} + +.column--5 { + width: 50%; +} + +.column--6 { + width: 60%; +} + +.column--7 { + width: 70%; +} + +.column--8 { + width: 80%; +} + +.column--9 { + width: 90%; +} + +.column--10 { + width: 100%; +} diff --git a/client/src/scss/_flex-container.scss b/client/src/scss/_flex-container.scss new file mode 100644 index 00000000..767df318 --- /dev/null +++ b/client/src/scss/_flex-container.scss @@ -0,0 +1,44 @@ +.flex-container--column, .flex-container--row { + display: -webkit-flex; + display: flex; +} + +.flex-container--column { + -webkit-flex-direction: column; + flex-direction: column; +} + +.flex-container--row { + -webkit-flex-direction: row; + flex-direction: row; +} + +.flex-container--wrap { + -webkit-flex-wrap: wrap; + flex-wrap: wrap; +} + +.flex-container--left-bottom { + justify-content: flex-start; + align-items: baseline; +} + +.flex-container--left-center { + justify-content: flex-start; + align-items: center; +} + +.flex-container--center-center { + justify-content: center; + align-items: center; +} + +.flex-container--space-between-bottom { + justify-content: space-between; + align-items: baseline; +} + +.flex-container--space-between-center { + justify-content: space-between; + align-items: center; +} diff --git a/client/src/scss/_font.scss b/client/src/scss/_font.scss new file mode 100644 index 00000000..a62312a0 --- /dev/null +++ b/client/src/scss/_font.scss @@ -0,0 +1,18 @@ +@font-face { + font-family: 'Lekton'; + src: url('./font/Lekton/Lekton-Regular.ttf'); +} + +@font-face { + font-family: 'Lekton'; + src: url('./font/Lekton/Lekton-Bold.ttf'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'Lekton'; + src: url('./font/Lekton/Lekton-Italic.ttf'); + font-weight: normal; + font-style: italic; +} diff --git a/client/src/scss/_html.scss b/client/src/scss/_html.scss new file mode 100644 index 00000000..2c4c4311 --- /dev/null +++ b/client/src/scss/_html.scss @@ -0,0 +1,5 @@ +html { + margin: 0; + padding: 0; + height: 100%; +} diff --git a/client/src/scss/_info-message.scss b/client/src/scss/_info-message.scss new file mode 100644 index 00000000..91f39305 --- /dev/null +++ b/client/src/scss/_info-message.scss @@ -0,0 +1,15 @@ +.info-message, .info-message--success, .info-message--failure { + + font-size: medium; + margin: 0px; + padding: 0.3em; + color: #9b9b9b; +} + +.info-message--success { + color: green; +} + +.info-message--failure { + color: red; +} diff --git a/client/src/scss/_input.scss b/client/src/scss/_input.scss new file mode 100644 index 00000000..18a139bc --- /dev/null +++ b/client/src/scss/_input.scss @@ -0,0 +1,92 @@ +input:-webkit-autofill { + -webkit-box-shadow: 0 0 0px 1000px white inset; +} + +.label, .input-text, .select, .textarea, .text--large { + margin: 0px; + padding: 0.3em; + outline: none; + border: 0px; + background-color: white; + display: inline-block; +} + +.input-disabled { + border: 1px solid black; + padding: 0.5em; + margin: 0px; + color: black; + background-color: white; +} + +option { + font-family: monospace; +} + + +.input-checkbox { + border: 1px solid black; + background: white; +} + +.input-file { + width: 0.1px; + height: 0.1px; + opacity: 0; + overflow: hidden; + position: absolute; + z-index: -1; +} + +.input-radio, .label--pointer { + cursor: pointer; +} + +.select--arrow { + -moz-appearance:none; + -webkit-appearance: none; + background: url('./icon/downArrow.svg') no-repeat right; + cursor: pointer; + padding-right: 1.5em; +} + +.input-text--primary, .select--primary { + border-bottom: 1px solid #9b9b9b; +} + +.input-text--primary:focus, .select--primary:focus { + border-bottom: 1px solid #9b9b9b; +} + +.textarea--primary { + border-bottom: 1px solid #9b9b9b; +} + +.textarea--primary:focus { + border-bottom: 1px solid #9b9b9b; +} + +.input-text--full-width, .textarea--full-width { + width: calc(100% - 0.6em); +} + +.input-disabled--full-width { + width: calc(100% - 1em - 2px); +} + +.url-text--primary, .url-text--secondary { + margin:0px; + padding:0px; +} + +.url-text--primary { + color: black; +} + +.url-text--secondary { + color: #9b9b9b; +} + +.slider { + width: 100% +} diff --git a/client/src/scss/_link.scss b/client/src/scss/_link.scss new file mode 100644 index 00000000..71a1bce8 --- /dev/null +++ b/client/src/scss/_link.scss @@ -0,0 +1,35 @@ +/* LINKS */ + +a, a:visited { + text-decoration: none; +} + +.link--primary, .link--primary:visited { + color: #4156C5; +} + +.link--secondary, .link--secondary:visited { + font-size: medium; + margin: 0px; + padding: 0.3em; + color: #9b9b9b; +} + +.link--disabled-text { + color: #9b9b9b; + text-decoration: underline; +} + +.link--nav { + color: black; + border-bottom: 2px solid white; +} + +.link--nav:hover { + color: #4156C5; +} + +.link--nav-active { + color: #4156C5; + border-bottom: 2px solid #4156C5; +} diff --git a/client/src/scss/_media-queries.scss b/client/src/scss/_media-queries.scss new file mode 100644 index 00000000..a6251529 --- /dev/null +++ b/client/src/scss/_media-queries.scss @@ -0,0 +1,100 @@ +@media (max-width: 1120px) { + + .nav-bar--center { + display: none; + } + + .column--med-10 { + width: 100%; + } + +} + +@media (max-width: 800px ) { + + body, button, input, textarea, label, select, option, p, h3 { + font-size: medium; + } + + .pull-quote { + font-size: 1.5rem; + } + + .column--sml-10 { + width: 100%; + } + + .nav-bar-logo { + height: 1rem; + } + + .link--nav, .link--nav-active { + padding: 1rem 0.5rem 1rem 0.5rem; + } + + .select--arrow { + padding-right: 1.5em; + } + + #showlite-body #asset-display-component { + max-width: 100%; + } + + #showlite-body #asset-status { + padding: 2em; + } + +} + +@media (max-width: 500px) { + + .nav-bar-logo { + height: 1rem; + } + + .row--padded { + padding: 1rem; + } + + .row--short { + padding-top: 0px; + padding-bottom: 0px; + } + + .row--margined { + margin: 1rem; + } + + body, button, input, textarea, label, select, option, p, h3, .fine-print { + font-size: small; + } + + .pull-quote, .text--large, .button--large { + font-size: medium; + } + + .grid-item { + width: calc(100% - 2em); + float: none; + padding: 1em; + margin: 0px; + } + + .info-message--success, .info-message--failure { + font-size: small; + } + + +} + +@media (max-width: 360px) { + + body, button, input, textarea, label, select, option, p, h3, .fine-print { + font-size: x-small; + } + + .pull-quote, .text--large, .button--large { + font-size: small; + } + +} diff --git a/client/src/scss/_reset.scss b/client/src/scss/_reset.scss new file mode 100644 index 00000000..e69de29b diff --git a/client/src/scss/_row.scss b/client/src/scss/_row.scss new file mode 100644 index 00000000..169518ec --- /dev/null +++ b/client/src/scss/_row.scss @@ -0,0 +1,38 @@ +.row { + clear: both; + margin: 0px; +} + +.row--padded { + padding: 3rem; +} + +.row--margined { + margin: 3rem; +} + +.row--wide { + padding-right: 0px; + padding-left: 0px; +} + +.row--short { + padding-top: 0px; + padding-bottom: 0px; +} + +.row--tall { + flex: 1 0 auto; +} + +.row--no-top { + padding-top: 0px; +} + +.row--no-bottom { + padding-bottom: 0px; +} + +.row--no-right { + padding-right: 0px; +} diff --git a/client/src/scss/_span.scss b/client/src/scss/_span.scss new file mode 100644 index 00000000..323f2bd6 --- /dev/null +++ b/client/src/scss/_span.scss @@ -0,0 +1,9 @@ +.span--relative { + position: relative; +} + +.span--absolute { + position: absolute; + bottom: 0px; + right: 0px; +} diff --git a/client/src/scss/_text.scss b/client/src/scss/_text.scss new file mode 100644 index 00000000..2d3a1b79 --- /dev/null +++ b/client/src/scss/_text.scss @@ -0,0 +1,39 @@ +body, button, input, textarea, label, select, option, #channel-publish-in-progress > p, #channel-publish-done > p { + font-family: 'Lekton', monospace; + font-size: large; +} + +h3, p { + + font-size: x-large; +} + +.text--large { + font-size: 2rem; +} + +.text--disabled { + color: #9b9b9b; +} + +.pull-quote { + font-size: 3rem; + margin-top: 1rem; +} + +.fine-print { + font-size: small; +} + +#show-body > .fine-print { + text-align: center; +} + +.blue { + color: #4156C5; +} + +.blue--underlined { + color: #4156C5; + text-decoration: underline; +} diff --git a/client/src/scss/_tooltip.scss b/client/src/scss/_tooltip.scss new file mode 100644 index 00000000..93b5e93c --- /dev/null +++ b/client/src/scss/_tooltip.scss @@ -0,0 +1,34 @@ +/* Tooltip container */ +.tooltip { + position: relative; +} +/* Tooltip text */ +.tooltip > .tooltip-text { + visibility: hidden; + width: 15em; + background-color: #9b9b9b; + color: #fff; + text-align: center; + padding: 0.5em; + /* Position the tooltip text */ + position: absolute; + z-index: 1; + bottom: 110%; + left: 50%; + margin-left: -8em; /* Use half of the width (120/2 = 60), to center the tooltip */ +} +/* Show the tooltip text when you mouse over the tooltip container */ +.tooltip:hover > .tooltip-text { + visibility: visible; +} +/* arrow at bottom of tooltip text */ +.tooltip > .tooltip-text::after { + content: " "; + position: absolute; + top: 100%; + left: 50%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: #9b9b9b transparent transparent transparent; +} diff --git a/client/src/scss/_video.scss b/client/src/scss/_video.scss new file mode 100644 index 00000000..a0a52464 --- /dev/null +++ b/client/src/scss/_video.scss @@ -0,0 +1,12 @@ +video:-moz-full-screen { + border:none; + padding:0; +} +video:-webkit-full-screen { + border:none; + padding:0; +} +video:fullscreen { + border:none; + padding:0; +} diff --git a/client/src/scss/all.scss b/client/src/scss/all.scss new file mode 100644 index 00000000..1319e073 --- /dev/null +++ b/client/src/scss/all.scss @@ -0,0 +1,24 @@ +@import '_reset'; +@import '_font'; +@import '_html'; +@import '_body'; +@import '_text'; +@import '_flex-container'; +@import '_tooltip'; +@import '_link'; +@import '_row'; +@import '_column'; +@import '_info-message'; +@import '_input'; +@import '_button'; +@import '_span'; +@import '_video'; +@import 'containers/_nav-bar.scss'; +@import 'containers/_dropzone.scss'; +@import 'containers/_asset-preview.scss'; +@import 'containers/_show-asset-lite.scss'; +@import 'components/_progress-bar'; +@import 'components/_publish-preview'; +@import 'media-queries'; + + diff --git a/client/src/scss/components/_progress-bar.scss b/client/src/scss/components/_progress-bar.scss new file mode 100644 index 00000000..f3dc40eb --- /dev/null +++ b/client/src/scss/components/_progress-bar.scss @@ -0,0 +1,7 @@ +.progress-bar--inactive { + color: lightgrey; +} + +.progress-bar--active { + color: #4156C5; +} diff --git a/client/src/scss/components/_publish-preview.scss b/client/src/scss/components/_publish-preview.scss new file mode 100644 index 00000000..b1938c70 --- /dev/null +++ b/client/src/scss/components/_publish-preview.scss @@ -0,0 +1,3 @@ +.publish-preview-dim { + opacity: 0.2; +} diff --git a/client/src/scss/containers/_asset-preview.scss b/client/src/scss/containers/_asset-preview.scss new file mode 100644 index 00000000..2557dc34 --- /dev/null +++ b/client/src/scss/containers/_asset-preview.scss @@ -0,0 +1,22 @@ +.asset-preview-holder { + clear : both; + display: inline-block; + width : 31%; + padding: 0px; + margin : 1%; +} + +.asset-preview-image { + width : 100%; + padding: 0px; + margin : 0px +} + +.asset-preview-video { + cursor: pointer; + background-color: #ffffff; + width: calc(100% - 12px - 12px - 2px); + margin: 6px; + padding: 6px; + border: 1px solid #d0d0d0; +} diff --git a/client/src/scss/containers/_dropzone.scss b/client/src/scss/containers/_dropzone.scss new file mode 100644 index 00000000..9d083d26 --- /dev/null +++ b/client/src/scss/containers/_dropzone.scss @@ -0,0 +1,28 @@ +.dropzone, .dropzone--disabled { + border: 2px dashed #9b9b9b; + text-align: center; + position: relative; +} + +.dropzone:hover, .dropzone--drag-over { + border: 2px dashed #4156C5; + cursor: pointer; +} + +#dropzone-text-holder { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} + +#dropzone-dragover, #dropzone-instructions { + padding: 1em; +} + +#dropzone-preview { + display: block; + width: 100%; +} + diff --git a/client/src/scss/containers/_nav-bar.scss b/client/src/scss/containers/_nav-bar.scss new file mode 100644 index 00000000..68dd89ff --- /dev/null +++ b/client/src/scss/containers/_nav-bar.scss @@ -0,0 +1,20 @@ +.nav-bar { + border-bottom: 0.5px solid #cacaca; +} + +.nav-bar--left { + align-self: center; +} + +.nav-bar-tagline { + font-size: small; +} + +.nav-bar-link { + padding: 1.5rem; + display: inline-block; +} + +.nav-bar-logo { + cursor: pointer; +} diff --git a/client/src/scss/containers/_show-asset-lite.scss b/client/src/scss/containers/_show-asset-lite.scss new file mode 100644 index 00000000..0c9c947a --- /dev/null +++ b/client/src/scss/containers/_show-asset-lite.scss @@ -0,0 +1,20 @@ +.show-lite-container { + text-align: center; +} + +.show-lite-container #asset-display-component { + max-height: calc(100vh - 3em); +} + +.show-details-container #asset-display-component .asset { + width: 100% +} + +.show-lite-container #asset-display-component .asset { + max-height: calc(100vh - 3em); + max-width: 100vw; +} + +#asset-boilerplate { + max-height: 3em; +} diff --git a/client/src/scss/font/Lekton/Lekton-Bold.ttf b/client/src/scss/font/Lekton/Lekton-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b46b56b2c83f4c295d345ef9953ac3eccea91e78 GIT binary patch literal 113684 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

b2?4EbKk~a7A9*J_5SFO!$PhHxbcB9#n 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 Ab^rhX literal 0 HcmV?d00001 diff --git a/client/src/scss/font/Lekton/Lekton-Italic.ttf b/client/src/scss/font/Lekton/Lekton-Italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a23c4ce419d80ec52f27cdf146efe11510aee565 GIT binary patch literal 34212 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

_(TPW6l9ZSvxj!>HF*ZF({3qT_ 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 + + + Shape + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/client/src/scss/icon/search.svg b/client/src/scss/icon/search.svg new file mode 100644 index 00000000..a7eda5c2 --- /dev/null +++ b/client/src/scss/icon/search.svg @@ -0,0 +1,15 @@ + + + + Fill 5114 + Fill 5115 + Fill 5116 + Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/client/src/scss/icon/upload.svg b/client/src/scss/icon/upload.svg new file mode 100644 index 00000000..8b5637c1 --- /dev/null +++ b/client/src/scss/icon/upload.svg @@ -0,0 +1,22 @@ + + + + upload + Created with Sketch. + + + + + + + + + + + + + + + + + \ No newline at end of file -- 2.45.3 From 556daf69d76135742442aac8a71c98055501f7b7 Mon Sep 17 00:00:00 2001 From: bill bittner Date: Wed, 30 May 2018 15:02:40 -0700 Subject: [PATCH 02/24] re-built components --- .../build/components/ActiveStatusBar/index.js | 2 +- .../components/InactiveStatusBar/index.js | 2 +- .../build/components/PublishPreview/index.js | 2 +- client/build/containers/AssetPreview/index.js | 23 +++++ client/build/containers/AssetPreview/view.js | 54 +++++++++++ client/build/containers/SEO/index.js | 34 +++++++ client/build/containers/SEO/view.js | 95 +++++++++++++++++++ 7 files changed, 209 insertions(+), 3 deletions(-) create mode 100644 client/build/containers/AssetPreview/index.js create mode 100644 client/build/containers/AssetPreview/view.js create mode 100644 client/build/containers/SEO/index.js create mode 100644 client/build/containers/SEO/view.js diff --git a/client/build/components/ActiveStatusBar/index.js b/client/build/components/ActiveStatusBar/index.js index a1b6b88a..c5ffafcf 100644 --- a/client/build/components/ActiveStatusBar/index.js +++ b/client/build/components/ActiveStatusBar/index.js @@ -16,4 +16,4 @@ var ActiveStatusBar = function ActiveStatusBar() { }; var _default = ActiveStatusBar; -exports.default = _default; +exports.default = _default; \ No newline at end of file diff --git a/client/build/components/InactiveStatusBar/index.js b/client/build/components/InactiveStatusBar/index.js index dfca5167..9fe4aa51 100644 --- a/client/build/components/InactiveStatusBar/index.js +++ b/client/build/components/InactiveStatusBar/index.js @@ -16,4 +16,4 @@ var InactiveStatusBar = function InactiveStatusBar() { }; var _default = InactiveStatusBar; -exports.default = _default; +exports.default = _default; \ No newline at end of file diff --git a/client/build/components/PublishPreview/index.js b/client/build/components/PublishPreview/index.js index eb3f2b67..e1c2bba1 100644 --- a/client/build/components/PublishPreview/index.js +++ b/client/build/components/PublishPreview/index.js @@ -120,4 +120,4 @@ PublishPreview.propTypes = { thumbnail: _propTypes.default.object }; var _default = PublishPreview; -exports.default = _default; +exports.default = _default; \ No newline at end of file diff --git a/client/build/containers/AssetPreview/index.js b/client/build/containers/AssetPreview/index.js new file mode 100644 index 00000000..f0afdc19 --- /dev/null +++ b/client/build/containers/AssetPreview/index.js @@ -0,0 +1,23 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _reactRedux = require("react-redux"); + +var _view = _interopRequireDefault(require("./view")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var mapStateToProps = function mapStateToProps(_ref) { + var defaultThumbnail = _ref.site.defaultThumbnail; + return { + defaultThumbnail: defaultThumbnail + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps, null)(_view.default); + +exports.default = _default; \ No newline at end of file diff --git a/client/build/containers/AssetPreview/view.js b/client/build/containers/AssetPreview/view.js new file mode 100644 index 00000000..2f0024f7 --- /dev/null +++ b/client/build/containers/AssetPreview/view.js @@ -0,0 +1,54 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _reactRouterDom = require("react-router-dom"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var AssetPreview = function AssetPreview(_ref) { + var defaultThumbnail = _ref.defaultThumbnail, + _ref$claimData = _ref.claimData, + name = _ref$claimData.name, + claimId = _ref$claimData.claimId, + fileExt = _ref$claimData.fileExt, + contentType = _ref$claimData.contentType, + thumbnail = _ref$claimData.thumbnail; + var directSourceLink = "".concat(claimId, "/").concat(name, ".").concat(fileExt); + var showUrlLink = "/".concat(claimId, "/").concat(name); + return _react.default.createElement("div", { + className: "asset-preview-holder" + }, _react.default.createElement(_reactRouterDom.Link, { + to: showUrlLink + }, function () { + switch (contentType) { + case 'image/jpeg': + case 'image/jpg': + case 'image/png': + case 'image/gif': + return _react.default.createElement("img", { + className: 'asset-preview-image', + src: directSourceLink, + alt: name + }); + + case 'video/mp4': + return _react.default.createElement("img", { + className: 'asset-preview-video', + src: thumbnail || defaultThumbnail, + alt: name + }); + + default: + return _react.default.createElement("p", null, "unsupported file type"); + } + }())); +}; + +var _default = AssetPreview; +exports.default = _default; \ No newline at end of file diff --git a/client/build/containers/SEO/index.js b/client/build/containers/SEO/index.js new file mode 100644 index 00000000..68ed79ed --- /dev/null +++ b/client/build/containers/SEO/index.js @@ -0,0 +1,34 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _reactRedux = require("react-redux"); + +var _view = _interopRequireDefault(require("./view")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var mapStateToProps = function mapStateToProps(_ref) { + var site = _ref.site; + var defaultDescription = site.defaultDescription, + defaultThumbnail = site.defaultThumbnail, + siteDescription = site.description, + siteHost = site.host, + siteTitle = site.title, + siteTwitter = site.twitter; + return { + defaultDescription: defaultDescription, + defaultThumbnail: defaultThumbnail, + siteDescription: siteDescription, + siteHost: siteHost, + siteTitle: siteTitle, + siteTwitter: siteTwitter + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps, null)(_view.default); + +exports.default = _default; \ No newline at end of file diff --git a/client/build/containers/SEO/view.js b/client/build/containers/SEO/view.js new file mode 100644 index 00000000..bbacc8aa --- /dev/null +++ b/client/build/containers/SEO/view.js @@ -0,0 +1,95 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _reactHelmet = _interopRequireDefault(require("react-helmet")); + +var _propTypes = _interopRequireDefault(require("prop-types")); + +var _pageTitle = require("../../utils/pageTitle"); + +var _metaTags = require("../../utils/metaTags"); + +var _canonicalLink = require("../../utils/canonicalLink"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +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); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } + +var SEO = +/*#__PURE__*/ +function (_React$Component) { + function SEO() { + _classCallCheck(this, SEO); + + return _possibleConstructorReturn(this, _getPrototypeOf(SEO).apply(this, arguments)); + } + + _createClass(SEO, [{ + key: "render", + value: function render() { + // props from state + var _this$props = this.props, + defaultDescription = _this$props.defaultDescription, + defaultThumbnail = _this$props.defaultThumbnail, + siteDescription = _this$props.siteDescription, + siteHost = _this$props.siteHost, + siteTitle = _this$props.siteTitle, + siteTwitter = _this$props.siteTwitter; // props from parent + + var _this$props2 = this.props, + asset = _this$props2.asset, + channel = _this$props2.channel, + pageUri = _this$props2.pageUri; + var pageTitle = this.props.pageTitle; // create page title, tags, and canonical link + + pageTitle = (0, _pageTitle.createPageTitle)(siteTitle, pageTitle); + var metaTags = (0, _metaTags.createMetaTags)(siteDescription, siteHost, siteTitle, siteTwitter, asset, channel, defaultDescription, defaultThumbnail); + var canonicalLink = (0, _canonicalLink.createCanonicalLink)(asset, channel, pageUri, siteHost); // render results + + return _react.default.createElement(_reactHelmet.default, { + title: pageTitle, + meta: metaTags, + link: [{ + rel: 'canonical', + href: canonicalLink + }] + }); + } + }]); + + _inherits(SEO, _React$Component); + + return SEO; +}(_react.default.Component); + +; +SEO.propTypes = { + pageTitle: _propTypes.default.string, + pageUri: _propTypes.default.string, + channel: _propTypes.default.object, + asset: _propTypes.default.object +}; +var _default = SEO; +exports.default = _default; \ No newline at end of file -- 2.45.3 From 30462a9d05bd0118ce9dea468412366ab6d0d3ff Mon Sep 17 00:00:00 2001 From: bill bittner Date: Wed, 30 May 2018 15:18:03 -0700 Subject: [PATCH 03/24] updated html render to use new style.css --- server/render/renderFullPage.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/server/render/renderFullPage.js b/server/render/renderFullPage.js index 4786da58..9124aa5d 100644 --- a/server/render/renderFullPage.js +++ b/server/render/renderFullPage.js @@ -12,9 +12,7 @@ module.exports = (helmet, html, preloadedState) => { ${helmet.meta.toString()} ${helmet.link.toString()} - - - + -- 2.45.3 From 6132ef2959ddf992a45d46ca20c1fe8d87501cc9 Mon Sep 17 00:00:00 2001 From: bill bittner Date: Wed, 30 May 2018 18:07:24 -0700 Subject: [PATCH 04/24] moved scss folder --- client/build/scss/_input.scss | 88 ----------------- client/build/scss/all.scss | 13 --- client/{build => }/scss/_align.scss | 0 client/{build => }/scss/_body.scss | 0 client/{build => }/scss/_button.scss | 0 client/{build => }/scss/_column.scss | 0 client/{build => }/scss/_flex-container.scss | 0 client/{build => }/scss/_font.scss | 6 +- client/{build => }/scss/_html.scss | 0 client/{build => }/scss/_info-message.scss | 0 client/{src => }/scss/_input.scss | 2 +- client/{build => }/scss/_link.scss | 0 client/{src => }/scss/_media-queries.scss | 0 client/{src => }/scss/_reset.scss | 0 client/{build => }/scss/_row.scss | 0 client/{src => }/scss/_span.scss | 0 client/{build => }/scss/_text.scss | 0 client/{build => }/scss/_tooltip.scss | 0 client/{src => }/scss/_video.scss | 0 client/{src => }/scss/all.scss | 0 .../scss/components/_progress-bar.scss | 0 .../scss/components/_publish-preview.scss | 0 .../scss/containers/_asset-preview.scss | 0 .../scss/containers/_dropzone.scss | 0 .../{build => }/scss/containers/_nav-bar.scss | 0 .../scss/containers/_show-asset-lite.scss | 0 .../scss/font/Lekton/Lekton-Bold.ttf | Bin .../scss/font/Lekton/Lekton-Italic.ttf | Bin .../scss/font/Lekton/Lekton-Regular.ttf | Bin client/{build => }/scss/font/Lekton/OFL.txt | 0 client/{build => }/scss/icon/downArrow.svg | 0 client/{build => }/scss/icon/search.svg | 0 client/{build => }/scss/icon/upload.svg | 0 client/src/scss/_align.scss | 19 ---- client/src/scss/_body.scss | 17 ---- client/src/scss/_button.scss | 60 ----------- client/src/scss/_column.scss | 45 --------- client/src/scss/_flex-container.scss | 44 --------- client/src/scss/_font.scss | 18 ---- client/src/scss/_html.scss | 5 - client/src/scss/_info-message.scss | 15 --- client/src/scss/_link.scss | 35 ------- client/src/scss/_row.scss | 38 ------- client/src/scss/_text.scss | 39 -------- client/src/scss/_tooltip.scss | 34 ------- client/src/scss/containers/_dropzone.scss | 28 ------ client/src/scss/containers/_nav-bar.scss | 20 ---- client/src/scss/font/Lekton/Lekton-Bold.ttf | Bin 113684 -> 0 bytes client/src/scss/font/Lekton/Lekton-Italic.ttf | Bin 34212 -> 0 bytes .../src/scss/font/Lekton/Lekton-Regular.ttf | Bin 114320 -> 0 bytes client/src/scss/font/Lekton/OFL.txt | 93 ------------------ client/src/scss/icon/downArrow.svg | 16 --- client/src/scss/icon/search.svg | 15 --- client/src/scss/icon/upload.svg | 22 ----- server/render/renderFullPage.js | 2 +- 55 files changed, 5 insertions(+), 669 deletions(-) delete mode 100644 client/build/scss/_input.scss delete mode 100644 client/build/scss/all.scss rename client/{build => }/scss/_align.scss (100%) rename client/{build => }/scss/_body.scss (100%) rename client/{build => }/scss/_button.scss (100%) rename client/{build => }/scss/_column.scss (100%) rename client/{build => }/scss/_flex-container.scss (100%) rename client/{build => }/scss/_font.scss (60%) rename client/{build => }/scss/_html.scss (100%) rename client/{build => }/scss/_info-message.scss (100%) rename client/{src => }/scss/_input.scss (95%) rename client/{build => }/scss/_link.scss (100%) rename client/{src => }/scss/_media-queries.scss (100%) rename client/{src => }/scss/_reset.scss (100%) rename client/{build => }/scss/_row.scss (100%) rename client/{src => }/scss/_span.scss (100%) rename client/{build => }/scss/_text.scss (100%) rename client/{build => }/scss/_tooltip.scss (100%) rename client/{src => }/scss/_video.scss (100%) rename client/{src => }/scss/all.scss (100%) rename client/{src => }/scss/components/_progress-bar.scss (100%) rename client/{src => }/scss/components/_publish-preview.scss (100%) rename client/{src => }/scss/containers/_asset-preview.scss (100%) rename client/{build => }/scss/containers/_dropzone.scss (100%) rename client/{build => }/scss/containers/_nav-bar.scss (100%) rename client/{src => }/scss/containers/_show-asset-lite.scss (100%) rename client/{build => }/scss/font/Lekton/Lekton-Bold.ttf (100%) rename client/{build => }/scss/font/Lekton/Lekton-Italic.ttf (100%) rename client/{build => }/scss/font/Lekton/Lekton-Regular.ttf (100%) rename client/{build => }/scss/font/Lekton/OFL.txt (100%) rename client/{build => }/scss/icon/downArrow.svg (100%) rename client/{build => }/scss/icon/search.svg (100%) rename client/{build => }/scss/icon/upload.svg (100%) delete mode 100644 client/src/scss/_align.scss delete mode 100644 client/src/scss/_body.scss delete mode 100644 client/src/scss/_button.scss delete mode 100644 client/src/scss/_column.scss delete mode 100644 client/src/scss/_flex-container.scss delete mode 100644 client/src/scss/_font.scss delete mode 100644 client/src/scss/_html.scss delete mode 100644 client/src/scss/_info-message.scss delete mode 100644 client/src/scss/_link.scss delete mode 100644 client/src/scss/_row.scss delete mode 100644 client/src/scss/_text.scss delete mode 100644 client/src/scss/_tooltip.scss delete mode 100644 client/src/scss/containers/_dropzone.scss delete mode 100644 client/src/scss/containers/_nav-bar.scss delete mode 100644 client/src/scss/font/Lekton/Lekton-Bold.ttf delete mode 100644 client/src/scss/font/Lekton/Lekton-Italic.ttf delete mode 100644 client/src/scss/font/Lekton/Lekton-Regular.ttf delete mode 100644 client/src/scss/font/Lekton/OFL.txt delete mode 100644 client/src/scss/icon/downArrow.svg delete mode 100644 client/src/scss/icon/search.svg delete mode 100644 client/src/scss/icon/upload.svg diff --git a/client/build/scss/_input.scss b/client/build/scss/_input.scss deleted file mode 100644 index b8f395ca..00000000 --- a/client/build/scss/_input.scss +++ /dev/null @@ -1,88 +0,0 @@ -input:-webkit-autofill { - -webkit-box-shadow: 0 0 0px 1000px white inset; -} - -.label, .input-text, .select, .textarea, .text--large { - margin: 0px; - padding: 0.3em; - outline: none; - border: 0px; - background-color: white; - display: inline-block; -} - -.input-disabled { - border: 1px solid black; - padding: 0.5em; - margin: 0px; - color: black; - background-color: white; -} - -option { - font-family: monospace; -} - - -.input-checkbox { - border: 1px solid black; - background: white; -} - -.input-file { - width: 0.1px; - height: 0.1px; - opacity: 0; - overflow: hidden; - position: absolute; - z-index: -1; -} - -.input-radio, .label--pointer { - cursor: pointer; -} - -.select--arrow { - -moz-appearance:none; - -webkit-appearance: none; - background: url('./icon/downArrow.svg') no-repeat right; - cursor: pointer; - padding-right: 1.5em; -} - -.input-text--primary, .select--primary { - border-bottom: 1px solid #9b9b9b; -} - -.input-text--primary:focus, .select--primary:focus { - border-bottom: 1px solid #9b9b9b; -} - -.textarea--primary { - border-bottom: 1px solid #9b9b9b; -} - -.textarea--primary:focus { - border-bottom: 1px solid #9b9b9b; -} - -.input-text--full-width, .textarea--full-width { - width: calc(100% - 0.6em); -} - -.input-disabled--full-width { - width: calc(100% - 1em - 2px); -} - -.url-text--primary, .url-text--secondary { - margin:0px; - padding:0px; -} - -.url-text--primary { - color: black; -} - -.url-text--secondary { - color: #9b9b9b; -} diff --git a/client/build/scss/all.scss b/client/build/scss/all.scss deleted file mode 100644 index ebd4a3f9..00000000 --- a/client/build/scss/all.scss +++ /dev/null @@ -1,13 +0,0 @@ -@import '_font'; -@import '_html'; -@import '_body'; -@import '_text'; -@import '_flex-container'; -@import '_tooltip'; -@import '_link'; -@import '_row'; -@import '_column'; -@import '_info-message'; -@import '_input'; -@import '_button'; -@import 'containers/_nav-bar.scss'; diff --git a/client/build/scss/_align.scss b/client/scss/_align.scss similarity index 100% rename from client/build/scss/_align.scss rename to client/scss/_align.scss diff --git a/client/build/scss/_body.scss b/client/scss/_body.scss similarity index 100% rename from client/build/scss/_body.scss rename to client/scss/_body.scss diff --git a/client/build/scss/_button.scss b/client/scss/_button.scss similarity index 100% rename from client/build/scss/_button.scss rename to client/scss/_button.scss diff --git a/client/build/scss/_column.scss b/client/scss/_column.scss similarity index 100% rename from client/build/scss/_column.scss rename to client/scss/_column.scss diff --git a/client/build/scss/_flex-container.scss b/client/scss/_flex-container.scss similarity index 100% rename from client/build/scss/_flex-container.scss rename to client/scss/_flex-container.scss diff --git a/client/build/scss/_font.scss b/client/scss/_font.scss similarity index 60% rename from client/build/scss/_font.scss rename to client/scss/_font.scss index a62312a0..d3c8fe32 100644 --- a/client/build/scss/_font.scss +++ b/client/scss/_font.scss @@ -1,18 +1,18 @@ @font-face { font-family: 'Lekton'; - src: url('./font/Lekton/Lekton-Regular.ttf'); + src: url('font/Lekton/Lekton-Regular.ttf'); } @font-face { font-family: 'Lekton'; - src: url('./font/Lekton/Lekton-Bold.ttf'); + src: url('font/Lekton/Lekton-Bold.ttf'); font-weight: bold; font-style: normal; } @font-face { font-family: 'Lekton'; - src: url('./font/Lekton/Lekton-Italic.ttf'); + src: url('font/Lekton/Lekton-Italic.ttf'); font-weight: normal; font-style: italic; } diff --git a/client/build/scss/_html.scss b/client/scss/_html.scss similarity index 100% rename from client/build/scss/_html.scss rename to client/scss/_html.scss diff --git a/client/build/scss/_info-message.scss b/client/scss/_info-message.scss similarity index 100% rename from client/build/scss/_info-message.scss rename to client/scss/_info-message.scss diff --git a/client/src/scss/_input.scss b/client/scss/_input.scss similarity index 95% rename from client/src/scss/_input.scss rename to client/scss/_input.scss index 18a139bc..13d1e207 100644 --- a/client/src/scss/_input.scss +++ b/client/scss/_input.scss @@ -45,7 +45,7 @@ option { .select--arrow { -moz-appearance:none; -webkit-appearance: none; - background: url('./icon/downArrow.svg') no-repeat right; + background: url('icon/downArrow.svg') no-repeat right; cursor: pointer; padding-right: 1.5em; } diff --git a/client/build/scss/_link.scss b/client/scss/_link.scss similarity index 100% rename from client/build/scss/_link.scss rename to client/scss/_link.scss diff --git a/client/src/scss/_media-queries.scss b/client/scss/_media-queries.scss similarity index 100% rename from client/src/scss/_media-queries.scss rename to client/scss/_media-queries.scss diff --git a/client/src/scss/_reset.scss b/client/scss/_reset.scss similarity index 100% rename from client/src/scss/_reset.scss rename to client/scss/_reset.scss diff --git a/client/build/scss/_row.scss b/client/scss/_row.scss similarity index 100% rename from client/build/scss/_row.scss rename to client/scss/_row.scss diff --git a/client/src/scss/_span.scss b/client/scss/_span.scss similarity index 100% rename from client/src/scss/_span.scss rename to client/scss/_span.scss diff --git a/client/build/scss/_text.scss b/client/scss/_text.scss similarity index 100% rename from client/build/scss/_text.scss rename to client/scss/_text.scss diff --git a/client/build/scss/_tooltip.scss b/client/scss/_tooltip.scss similarity index 100% rename from client/build/scss/_tooltip.scss rename to client/scss/_tooltip.scss diff --git a/client/src/scss/_video.scss b/client/scss/_video.scss similarity index 100% rename from client/src/scss/_video.scss rename to client/scss/_video.scss diff --git a/client/src/scss/all.scss b/client/scss/all.scss similarity index 100% rename from client/src/scss/all.scss rename to client/scss/all.scss diff --git a/client/src/scss/components/_progress-bar.scss b/client/scss/components/_progress-bar.scss similarity index 100% rename from client/src/scss/components/_progress-bar.scss rename to client/scss/components/_progress-bar.scss diff --git a/client/src/scss/components/_publish-preview.scss b/client/scss/components/_publish-preview.scss similarity index 100% rename from client/src/scss/components/_publish-preview.scss rename to client/scss/components/_publish-preview.scss diff --git a/client/src/scss/containers/_asset-preview.scss b/client/scss/containers/_asset-preview.scss similarity index 100% rename from client/src/scss/containers/_asset-preview.scss rename to client/scss/containers/_asset-preview.scss diff --git a/client/build/scss/containers/_dropzone.scss b/client/scss/containers/_dropzone.scss similarity index 100% rename from client/build/scss/containers/_dropzone.scss rename to client/scss/containers/_dropzone.scss diff --git a/client/build/scss/containers/_nav-bar.scss b/client/scss/containers/_nav-bar.scss similarity index 100% rename from client/build/scss/containers/_nav-bar.scss rename to client/scss/containers/_nav-bar.scss diff --git a/client/src/scss/containers/_show-asset-lite.scss b/client/scss/containers/_show-asset-lite.scss similarity index 100% rename from client/src/scss/containers/_show-asset-lite.scss rename to client/scss/containers/_show-asset-lite.scss diff --git a/client/build/scss/font/Lekton/Lekton-Bold.ttf b/client/scss/font/Lekton/Lekton-Bold.ttf similarity index 100% rename from client/build/scss/font/Lekton/Lekton-Bold.ttf rename to client/scss/font/Lekton/Lekton-Bold.ttf diff --git a/client/build/scss/font/Lekton/Lekton-Italic.ttf b/client/scss/font/Lekton/Lekton-Italic.ttf similarity index 100% rename from client/build/scss/font/Lekton/Lekton-Italic.ttf rename to client/scss/font/Lekton/Lekton-Italic.ttf diff --git a/client/build/scss/font/Lekton/Lekton-Regular.ttf b/client/scss/font/Lekton/Lekton-Regular.ttf similarity index 100% rename from client/build/scss/font/Lekton/Lekton-Regular.ttf rename to client/scss/font/Lekton/Lekton-Regular.ttf diff --git a/client/build/scss/font/Lekton/OFL.txt b/client/scss/font/Lekton/OFL.txt similarity index 100% rename from client/build/scss/font/Lekton/OFL.txt rename to client/scss/font/Lekton/OFL.txt diff --git a/client/build/scss/icon/downArrow.svg b/client/scss/icon/downArrow.svg similarity index 100% rename from client/build/scss/icon/downArrow.svg rename to client/scss/icon/downArrow.svg diff --git a/client/build/scss/icon/search.svg b/client/scss/icon/search.svg similarity index 100% rename from client/build/scss/icon/search.svg rename to client/scss/icon/search.svg diff --git a/client/build/scss/icon/upload.svg b/client/scss/icon/upload.svg similarity index 100% rename from client/build/scss/icon/upload.svg rename to client/scss/icon/upload.svg diff --git a/client/src/scss/_align.scss b/client/src/scss/_align.scss deleted file mode 100644 index 1c462277..00000000 --- a/client/src/scss/_align.scss +++ /dev/null @@ -1,19 +0,0 @@ -.align-content-left { - text-align: left; -} - -.align-content-center { - text-align: center; -} - -.align-content-right { - text-align: right; -} - -.align-content-top { - vertical-align: top; -} - -.align-content-bottom { - vertical-align: bottom; -} diff --git a/client/src/scss/_body.scss b/client/src/scss/_body.scss deleted file mode 100644 index bfb813da..00000000 --- a/client/src/scss/_body.scss +++ /dev/null @@ -1,17 +0,0 @@ -body { - margin: 0; - padding: 0; - height: 100%; - word-wrap: break-word; -} - - -body { - display: -webkit-flex; - display: flex; -} - -body { - -webkit-flex-direction: column; - flex-direction: column; -} diff --git a/client/src/scss/_button.scss b/client/src/scss/_button.scss deleted file mode 100644 index 2d458d7a..00000000 --- a/client/src/scss/_button.scss +++ /dev/null @@ -1,60 +0,0 @@ -button { - cursor: pointer; -} - -.button--primary, .button--primary:focus { - border: 1px solid black; - padding: 0.5em; - margin: 0.5em 0.3em 0.5em 0.3em; - color: black; - background-color: white; - outline: 0px; -} - -.button--primary:hover { - border: 1px solid #4156C5; - color: white; - background-color: #4156C5; -} - -.button--primary:active{ - border: 1px solid #ffffff; - color: #d0d0d0; - background-color: #ffffff; -} - -.button--secondary, .button--secondary:focus { - border: 0px; - border-bottom: 1px solid black; - padding: 0.5em; - margin: 0.5em 0.3em 0.5em 0.3em; - color: black; - background-color: white; - outline: 0px; -} - -.button--secondary:hover { - border-bottom: 1px solid #9b9b9b; - color: #4156C5; -} - -.button--secondary:active { - color: #ffffff;; -} - -.button--large{ - margin: 0px; - width: calc(100% - 2px); - padding: 2rem; - font-size: x-large; -} - -.button--cancel{ - border: 0px; - background-color: white; - color: #9b9b9b; -} - -.button--wide { - width: 100%; -} diff --git a/client/src/scss/_column.scss b/client/src/scss/_column.scss deleted file mode 100644 index 7f2ca1e1..00000000 --- a/client/src/scss/_column.scss +++ /dev/null @@ -1,45 +0,0 @@ -.column { - display: inline-block; - padding: 0px; - margin: 0px; -} - -.column--1 { - width: 10%; -} - -.column--2 { - width: 20%; -} - -.column--3 { - width: 30%; -} - -.column--4 { - width: 40%; -} - -.column--5 { - width: 50%; -} - -.column--6 { - width: 60%; -} - -.column--7 { - width: 70%; -} - -.column--8 { - width: 80%; -} - -.column--9 { - width: 90%; -} - -.column--10 { - width: 100%; -} diff --git a/client/src/scss/_flex-container.scss b/client/src/scss/_flex-container.scss deleted file mode 100644 index 767df318..00000000 --- a/client/src/scss/_flex-container.scss +++ /dev/null @@ -1,44 +0,0 @@ -.flex-container--column, .flex-container--row { - display: -webkit-flex; - display: flex; -} - -.flex-container--column { - -webkit-flex-direction: column; - flex-direction: column; -} - -.flex-container--row { - -webkit-flex-direction: row; - flex-direction: row; -} - -.flex-container--wrap { - -webkit-flex-wrap: wrap; - flex-wrap: wrap; -} - -.flex-container--left-bottom { - justify-content: flex-start; - align-items: baseline; -} - -.flex-container--left-center { - justify-content: flex-start; - align-items: center; -} - -.flex-container--center-center { - justify-content: center; - align-items: center; -} - -.flex-container--space-between-bottom { - justify-content: space-between; - align-items: baseline; -} - -.flex-container--space-between-center { - justify-content: space-between; - align-items: center; -} diff --git a/client/src/scss/_font.scss b/client/src/scss/_font.scss deleted file mode 100644 index a62312a0..00000000 --- a/client/src/scss/_font.scss +++ /dev/null @@ -1,18 +0,0 @@ -@font-face { - font-family: 'Lekton'; - src: url('./font/Lekton/Lekton-Regular.ttf'); -} - -@font-face { - font-family: 'Lekton'; - src: url('./font/Lekton/Lekton-Bold.ttf'); - font-weight: bold; - font-style: normal; -} - -@font-face { - font-family: 'Lekton'; - src: url('./font/Lekton/Lekton-Italic.ttf'); - font-weight: normal; - font-style: italic; -} diff --git a/client/src/scss/_html.scss b/client/src/scss/_html.scss deleted file mode 100644 index 2c4c4311..00000000 --- a/client/src/scss/_html.scss +++ /dev/null @@ -1,5 +0,0 @@ -html { - margin: 0; - padding: 0; - height: 100%; -} diff --git a/client/src/scss/_info-message.scss b/client/src/scss/_info-message.scss deleted file mode 100644 index 91f39305..00000000 --- a/client/src/scss/_info-message.scss +++ /dev/null @@ -1,15 +0,0 @@ -.info-message, .info-message--success, .info-message--failure { - - font-size: medium; - margin: 0px; - padding: 0.3em; - color: #9b9b9b; -} - -.info-message--success { - color: green; -} - -.info-message--failure { - color: red; -} diff --git a/client/src/scss/_link.scss b/client/src/scss/_link.scss deleted file mode 100644 index 71a1bce8..00000000 --- a/client/src/scss/_link.scss +++ /dev/null @@ -1,35 +0,0 @@ -/* LINKS */ - -a, a:visited { - text-decoration: none; -} - -.link--primary, .link--primary:visited { - color: #4156C5; -} - -.link--secondary, .link--secondary:visited { - font-size: medium; - margin: 0px; - padding: 0.3em; - color: #9b9b9b; -} - -.link--disabled-text { - color: #9b9b9b; - text-decoration: underline; -} - -.link--nav { - color: black; - border-bottom: 2px solid white; -} - -.link--nav:hover { - color: #4156C5; -} - -.link--nav-active { - color: #4156C5; - border-bottom: 2px solid #4156C5; -} diff --git a/client/src/scss/_row.scss b/client/src/scss/_row.scss deleted file mode 100644 index 169518ec..00000000 --- a/client/src/scss/_row.scss +++ /dev/null @@ -1,38 +0,0 @@ -.row { - clear: both; - margin: 0px; -} - -.row--padded { - padding: 3rem; -} - -.row--margined { - margin: 3rem; -} - -.row--wide { - padding-right: 0px; - padding-left: 0px; -} - -.row--short { - padding-top: 0px; - padding-bottom: 0px; -} - -.row--tall { - flex: 1 0 auto; -} - -.row--no-top { - padding-top: 0px; -} - -.row--no-bottom { - padding-bottom: 0px; -} - -.row--no-right { - padding-right: 0px; -} diff --git a/client/src/scss/_text.scss b/client/src/scss/_text.scss deleted file mode 100644 index 2d3a1b79..00000000 --- a/client/src/scss/_text.scss +++ /dev/null @@ -1,39 +0,0 @@ -body, button, input, textarea, label, select, option, #channel-publish-in-progress > p, #channel-publish-done > p { - font-family: 'Lekton', monospace; - font-size: large; -} - -h3, p { - - font-size: x-large; -} - -.text--large { - font-size: 2rem; -} - -.text--disabled { - color: #9b9b9b; -} - -.pull-quote { - font-size: 3rem; - margin-top: 1rem; -} - -.fine-print { - font-size: small; -} - -#show-body > .fine-print { - text-align: center; -} - -.blue { - color: #4156C5; -} - -.blue--underlined { - color: #4156C5; - text-decoration: underline; -} diff --git a/client/src/scss/_tooltip.scss b/client/src/scss/_tooltip.scss deleted file mode 100644 index 93b5e93c..00000000 --- a/client/src/scss/_tooltip.scss +++ /dev/null @@ -1,34 +0,0 @@ -/* Tooltip container */ -.tooltip { - position: relative; -} -/* Tooltip text */ -.tooltip > .tooltip-text { - visibility: hidden; - width: 15em; - background-color: #9b9b9b; - color: #fff; - text-align: center; - padding: 0.5em; - /* Position the tooltip text */ - position: absolute; - z-index: 1; - bottom: 110%; - left: 50%; - margin-left: -8em; /* Use half of the width (120/2 = 60), to center the tooltip */ -} -/* Show the tooltip text when you mouse over the tooltip container */ -.tooltip:hover > .tooltip-text { - visibility: visible; -} -/* arrow at bottom of tooltip text */ -.tooltip > .tooltip-text::after { - content: " "; - position: absolute; - top: 100%; - left: 50%; - margin-left: -5px; - border-width: 5px; - border-style: solid; - border-color: #9b9b9b transparent transparent transparent; -} diff --git a/client/src/scss/containers/_dropzone.scss b/client/src/scss/containers/_dropzone.scss deleted file mode 100644 index 9d083d26..00000000 --- a/client/src/scss/containers/_dropzone.scss +++ /dev/null @@ -1,28 +0,0 @@ -.dropzone, .dropzone--disabled { - border: 2px dashed #9b9b9b; - text-align: center; - position: relative; -} - -.dropzone:hover, .dropzone--drag-over { - border: 2px dashed #4156C5; - cursor: pointer; -} - -#dropzone-text-holder { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; -} - -#dropzone-dragover, #dropzone-instructions { - padding: 1em; -} - -#dropzone-preview { - display: block; - width: 100%; -} - diff --git a/client/src/scss/containers/_nav-bar.scss b/client/src/scss/containers/_nav-bar.scss deleted file mode 100644 index 68dd89ff..00000000 --- a/client/src/scss/containers/_nav-bar.scss +++ /dev/null @@ -1,20 +0,0 @@ -.nav-bar { - border-bottom: 0.5px solid #cacaca; -} - -.nav-bar--left { - align-self: center; -} - -.nav-bar-tagline { - font-size: small; -} - -.nav-bar-link { - padding: 1.5rem; - display: inline-block; -} - -.nav-bar-logo { - cursor: pointer; -} diff --git a/client/src/scss/font/Lekton/Lekton-Bold.ttf b/client/src/scss/font/Lekton/Lekton-Bold.ttf deleted file mode 100644 index b46b56b2c83f4c295d345ef9953ac3eccea91e78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113684 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

b2?4EbKk~a7A9*J_5SFO!$PhHxbcB9#n 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 Ab^rhX diff --git a/client/src/scss/font/Lekton/Lekton-Italic.ttf b/client/src/scss/font/Lekton/Lekton-Italic.ttf deleted file mode 100644 index a23c4ce419d80ec52f27cdf146efe11510aee565..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34212 zcmdtL2Yg%A`8R&gl`YA8DBg~JZF$F2k|o=5hG*KbtTIO6?MNz$P_yLrs9Yl6i~wYaAC zDC3SX=gABA-&rY{GF5%Kr`LB{<4(m~n*TD8-S2qXb6>jzk>YIBvyp84h}%jH3ug z9}WxPe1fwguBB+43DzRtIRa;@lY}D`MFpf+d zM0*pCM&A*J^R+mDpV!@hGvTCmR^y1mK{Rg1QHO)@UIJRb#F^Sl&xn^)b`K6}OFs^R zzYz!VC5yczF`Sp-pfcaUk&DBK;}#s$W};(1jtLy2KKO@mP5dWb+=inQ$7;bR;?=z4 zW4xz!5Z?k1;#=UM@{ITuco4q=4}x{7BOA|&PsF3ZgLp(oFOF?ERQ?c;0*`dutNa&d z!5^wie9+^_#NpJ`aQR*$4M@*O-;=gV(^8uE*HR^X$feQ&NsE6WusXApDH*+=dq0!P zr5ed9rAgURoKzxp;jhvL@Vc`*xQPDB6h6Qo)35iL`DX9z7(v^%%V^(%fZeD)DqQau$lF~Ah z*-~z`Ra90ju3oZq*>b6-whrNFMN{+27JF-3dq-zicTaEMs?}@Ou3NuhBx{SAk2JaW@FZoc)KM{j#*Na~lMM3VH~;lZb-Bx%dj z&kT%65C{ETA&oh3dQx(ZJ|c~8zu;SUO40)l-go~k((QLik3ag@_rCuyUVmp|muvTq zbI$$Rp7Zxfdk0noomLgVqP_2)Zxmc+kIs z7X%js_XJM_UlM#@@Uh@ep!&($KJ6auQ`%2;3v_w9mAZ|(^K>`s9@V|3JE8lFK1d&{ zSM)vl^YwS?e;T3KN~d%|xFe<=J{5up)z5seW;5f?>V8}a>!-$VvQW=8f!?uxuI^81mWMWsfy zMY*FMi8>zjMRansJ$gL)%IHUvzpCV}L45i$h@salE z;+DyXh6wo~PdNMh&Zsl90?U;a)^NGG9A}H=fbJ5@CAuq$EyY(AS&A;y zecf{K53jyj_$>YkUtRP7{uaGT7PQcN2YXI_2OdR|;v-oUGum=;ZSkh1tXN*kmNBy~ zK0%jb%+zV)+4_3JmX^@cuw@;wYj*cVn(wTQ-CP@18oIK{&|ZH*gx19D?KeAgy*)um zriCl^mL#`I> zHk+*M!kWCixXy>xg@)gls|)HITM<^@JzSVulyzf8NPewF7n87V-=0wYvgO9M>8(md ze&1OC6-ztIt*xz7O~yA{_vtS_wz#9LtlpOA`RGftdu8t;@cvEcK|0q1i9xU|-6wvM z%M;$s>>f?36oH!rP$82Ta&uy>Y+rs$Noi(@rL;0JIcrFhn$kZ!;yH1wKXsdHoE3hI zy3O7}R-sW4b)}y4ij6KdmsFHx4c?r(>FukoI@X^ue8O}5=a3CU z+}+5I$j?cUl4P)%b8QK>1YLqISC?zE2Va(4n0!v$xx?vOs`IMZ{}f#ob;YWz)xEi^ zFN?mE>SiD-d7J$cQk9shq0mnD^3xe*%2OdvW|S)5XF)H$RQ%$L9M=)=c9tSdAks>t z!dhLf)%I}Iy0Ea`1WV{d*XrKH8fXkdoO_2|#E_AKrVL%iFiQ*Ze8NHydYN<&K4Jj_ z?+C^{k!vF-CM4$loA+JzANfUk9>Q`N`;R9rkNsSJ=wxoZ{2uIYiT88%lzb5^75Q`Q zQWh^m3#?E(a4J)~*7f7s%I&Y#F3q{7Jux}w`d0RjE9IL#H(qrleczrNuH1hfr@sui z56kCBp^}u(Y-R(PWY(D3m7b&eqkZ>=y=dBekx7oUm##YbU0&Xd^3TfqCGZ z^_A*%6;)MbVQFvn3?}p**$`jd#Bz$ml13_R@w%dBdqI0uO}rf1TmNKUiLvJ5*@`p2+iz376i(+J zDIQSJ&Ka6Ab-5%{oz=|xJ5qLRYTlUCb6}OB^4yhKR<=CU^SN>PVs_ogbJGRp{B>8_ ztHM}Q`3H-L7Fj9*%pb^?LW0R?z13`rr^b>U+Y%yKg4LJ_qk-ifY-s6UZCLcm>YnI@ zcRn0)aQFL(moIUIr(M^uimj{MviV*2@B=S3nwE{7xW-<8C)_jW?ZC&IXy*c)wNVVb zH2Q>PgqSn5>}f+`Pu_}<#rm{`IW24TU&NKBv&|Ygy==w4s-rDUEiFqX511>1M)HYP zjg$yle*)RZAZyHo#zERpcoLG&`G6_padTuklN`6WzS|XU7#xg?-0{Mi$he8_m^G{7 zmR*KpO`E}X&>k9Mlk?YZvTw`H`&#GPO`SXP%7!0l++AC{yOCurA8V+qs8~k0WvScy zXY|kZgHK85{KB(A(_|fa1qedLXS}g5?Q4(srnPVBt8ouyWK`zrS0z~YuMbT;_~$K8 zyT`wG%bw1#t>-kQrn1dFhnl;V-ppa&3jP$b>(D~PJa`Np#k`jzRz>W^!AgdPJZ}vR zfriUq>*c&0Jd#?DTl}$z)sg2%t`3dpPB4f0YBa6w_St@^l+KRH=@R9E5lokD%Vx(s zH?e{=&yzvyV)n(`ALjo<`MqdovUEH9gzXfx*q~K(WUza5p1w5x`DWqqLddoV=K7kP zPcUso%oeN*E@A_ochgy8kY{(73Q?Az3G6ocVZcih-o>ERMQWlLMT?~xxC!DRwC-Sd zN7yUc`1px5Ju_)ETEl{g%<%HQ6{f_+J;e>(8#c%(RmQBr!uoVM-dvcPGFY+Jnw^th zSkO*%Gs)t;hW$*Akn&(t27s00O^86yh^QfGNw(bq2UROTcRT4OR~~dvGE0$cupQjF{d77*4quCA)fY> z@7*63WQyEV)uBa>@d=1{1UZI|Ja>jMH$!J+uxX8vJ+e5)^JQ%%%ijF?9~VX5aD#lv zQ^jr|eO6HCJ=BSSMH6=nWPPv_`Y;-hitvc2fh{a3F|PHoE{SmEqi*I_T-gzQm1boim?8?sX6 z4JY4;FM9iyT_ij5>AwIha4w&5PliNJlfm|Qo*ZShde7hTztDeCz+&Y?rhl3|UM_FA zFU~s*PMM8VM}s<>EZbO}-t*UzPxYUou;&vKFKfn#z&}OX5n@OaxK{9d42nYWgC&RD zQL?pds<-0cxt%@neKi}MmL=;J*JrR$ljrAI-(-W|RLtoIJjX7US^UeOnevI>37Rtu z8OT%3nhYFlWtr#8GRroLiG`RzO`+#F8Pi#r6XTLxw29J`SO`Eip5kW;!$Gx$l#gV!8lZ+L!Ddk3kC zlmpv)4YC1_z?_9TMeshnd%%Y37VPe;*%Z5eXK!TLw;BxY+dB;_541&?S!e6L{R>U0 z4d+%Z>b_-lx+$&NwU~Iu&~KN}{~>?Ndx_kJ%mbEz+x6^R9n9x;c>~w`0^o;&aet+O zRv=S=nNmh$GqB&=V=5}1Xo<30T2d~q>kPL;tx6nb^VSXQEsyEO-Ujvt;X;U!;{-0Q z#pq|XTO0H&q{{R2P0;$=VeH^`_`peQ?&b6WN1-o zJFE7*KqkYMd!7|-f=#i{P#<;!t1*bG8hF&t@2h)vu%;vUNZk+JbsL!CIl+2amFJJl z;Ca&X1XF+;`4D>_b>R>Fbw4h$6&+ZzHTd;qEXDI{mcphyKVrl{>Sss{Rz&4l9E1NX zXBjs3w&xHl)_M*zm*-bH`B2`;mrL?wTPeynp)YiYCQ0xcuGRq06Lsm;;m_anoL>Iz ze;zbx9^<~M5q*Z6M4us;*%;gE`Ow6S`SN@5CvypJqaRKJ`7e#p_R*!+guQUn5A|C$ zou>b^01A~0^PbOs=e-wEQc8e-4AZioY0qB-ua9@v%F9`&{5riepkMXiZAo{?ulFy4 zO326qzGTm_Um%vG!zN8|?G)eQ7Q`oH=9F7_(2Gw1TGWeVuO|=2WLxuAZ7#O7wpOHW ztTrq)Xv?c*lRmzwa3uZ1)FYb~x0Y}28{1gC*butFbNz(YnX?=;z-EBwe&}^1X*Ohx z96!04_V;iZQB624}<CD~hSHY=9UF=%PT89tS=Er=sc)~`&=r&QXwBjT zwtOJ$xz*bin$q@9ejaxjr*RSd;?KBWB)dk^l}n+Ir&|d&2?>&+7zBf}n`D#RZtiVM z*||2kd4bXM9jm*kEZQDlw+iC{Pp#6HTQ29o?5iKxvyidT(+Y#r1QG&!i3Q2>LqI$n%Rpf%iVop zF)b?=n$ic?O{^|{HYQ|o&dLeSi)!z3_ON`Eau!k*-h5&S)K4p8gk>p z<*}BGH8FSV?@X~oM3e`kcmHkEi!tWtt4)9Oyq1*}TE(hBZn)3eEuEp0*RM}lJ<*j~W;53n7A~;56PM*I zS^BGe#)Y29HLLSXIn__H>|C?uAqRA{2poTm^Pbxy^aHsaj2b=TqsuL0mh6q^RfgD1 zAYzzZ=s8zD@<~Boo9BmYiFpapL~^|Ow?RcQ=yn%G zCmz%mB$~q`O!w(`73$>D#qw~$g7~6@lMk6fO^vM5Wqc87EqR! zwP;a$kLP)|w6rE8r{K;zU5aOteSkL7n8j1Tfi@auo>DqP7^QWqjR+FJAxos2s!O4A}nTOZyz1wqh*AiyZM_ty> zWh3nYq#pq$<<4LgWv@^=7#owTEe#v=SBGXy6zFnyAo^Sd1Fnk84O*;0U_)`K55DGc z_DdS2SVo=ua!avHP=7iwa3^NHX3={6dV@9YR{gE{ zOv_|BShvcmtr{z3w=&r@8TvJoR|?OKN(u^#RF#lo+?VVa0^x11MW&V&{3tK$)}=AMc<(jRx@aL1WxlxiseS$~QK__Ila9 zzH;ys?6(3Bo~`^`70`d|M_II{5Z66&JQ zWiZ15>Jp5(=nOh)HXK}j&z|M|SJphnK6v4U&;I)3AM^6eYhur%JZ#cO6FMSr@5|W6 z%EiIosW@qD>C;wJEl355QFiUgEAhYEzWB9c4d+1FRd!#*VkygK` zUpKTdN}C&I58fDI&_rz<()AbVgW@CBvAP`l$2m6BK=zO9rXo|{lSu<6+rneLImCl+ zc*EI{{9DQ+NFUkI_2%o5%VcZFMDacsbX*|lU%wpn3GXbB<#g;$;S zMwYGjjOeS)^`1j%{FBvrzQ^jA-Sb

_(TPW6l9ZSvxj!>HF*ZF({3qT_ zU{%6r>{g6Z!Rus0f1+4A|# z%KpvA@=-rRdppUL^mehQK!+*E!o!Cb9X;y#IVM#|R)^6^YLk!g zJQq_4hwq5}mOS2XrLGU=V3xB_VN=MBNa7SBaWc|qWM(de2=%P&w3+o8=XX?>x0r*| zyR%m&ghl4(CPbCV;hrB@m(()1C%ZT~ZBcKZ)sSxi7K+&?PB6tSKm8!j#Ic!o|8p!Hctl^J%S4Cssea z&K?nRBkNnnO2jFb<$X){Vc566cGX?F55jNX%O1Jca&Ob#3l<$MJ=!$619ew>E7=|F zGqeL*PBTIp8f!$@0AC_Cl;jC3W9~B#IC1 zGxC>%Zi+hk$J%&zMN(lrd@2~|@ayKlXoU)>F#gOn0k+2JcnhnXhz{^NaP$$gDdgDa zfVtpE(NNV&mkQ~%+iu&l#|P(K%^e&L^ePaJfl_*MO5~Dek7(Y!U`cIlp*f+psXj}E z$ZQ!lYksD+9C{GM={u&moWrHL%2|+e(Yu&s&vU@n1(>%A{+BE>+Gpdi^cftFYM$aa z4AR2cIMhi{-2(K}^Wbheecr&EpNE*!97|3Hk{A0?s4ON&cE7m_ycumMPMGt%KzQ~?V5KI46>iPE( z4E$0bHPSa03qwEMXsm9&#hiA4cJ*vinloNI7-(7K*Z6oV^p2*J!wL!DXF-X(|jK&jMj^ zOP>wnW#ZTjjK9tBjOcg?w$3emHVk3uv%#G7acl>PqVZI#5 zu^GU>na?u{0)K-)38g+nz-aC)XA&^7Yx8-M8hDafqr93M{O$x^osaiI7Bt>VgGy%` z@ufkcuQcjAK!Q8V$S?b*&jwUF9{%cdkZF9C(dQNt{@LhQuKIt@j}y=d;s-p++4UXg5m0htpmC0~ISEXwc)majq(D^Rthx!!nICLQ!EP7vqQap*kJ zR!FN3&(5iNrtnorYzQ=vvoX#x-){JrHS{~0&z#R4wdM|I-pKXS+)K|Ly=LjE?-4K` zJ`GInfabw`g?sI}FrS_AMFQpuP z9H$>amVY|qL-=?#a{RA|R|6MvCcMcI*%|Qeobefi_a*s{94|VGd<5ZsSNB`;SLNJXCmNufMYlV6+iI11njdQT3$rolK7uTQT}YyXy*1m z&qPvOfD)d8q;0c%t+f9`=*6d;u3Q>%JR4o}bKEl#b|^66Jp*Nbos|N^F0;K~$kFTs zW-7}h8~Sy8P;fEBur}`;B=FeGNTk<#Nv*_T`q$FeY(0LV>hKTS87Shv%u{~MZfE-)QqhLkIsb^9&r^v8R zJ-PDa?EHGpT#M)8SqZjA%!|O6(7cF(5eweEInB%nIg-=Oj;x0hIqeJyyKKgX@Oc>c zkgtRf4&-$B%HcdtkFRLPcM!hk;X4Q)eC3(jCmhG=P=*SpaeAzw+-C%Fo<0IQC7jtb zyK-i%bB*+L_^Sd8^z=kz%(YKh67w^!BR-)om_27!hKJ~}ITJFI6rlqrW8`79fIJIguP+#Dq-}t?1HAXe z;(1W#GJ77m*9CBSHrb=IIVRUd%(c#+fgu^rpM^OLAu31* zZ4BmbFrhOa)4ZrUAKgO%N;Dtcj#-LCEB)7FO#Lmijc3s|i&=Pk1HYj4y&1O0Oqub? zSw*JIGUL;F_JID}s;tyxR$ZB8tuHP{4B_)Q&=E1-V}t6^7^@g+4P(@)oI9Iy4b)@K zjE-+*0>vZ&&u8ZubK#Ml&xLnCRAVkYF#_y|=d<%Srsx1~&-F=igEj=EvCACn)DC>B3%(JnSDE|qnKyY%;&BErpy7E^e(y%Nj#JXqI^ zK8cK6Op-$}{wMl781)k)f0&!f&9TKMFI`ky;0suHb#dCHW~ z*&gN_0xWG>`4n4W)p~w+-9Z^(!2>;f(WjUfU4%VyOThz-XC%bOm14{qQ@O~cv@@9$ zb}p1-jRmG>u*m~!+n5;8%rRm^+%*x!x0w+I5_!n)t@ox8SD@1k#9xoF}sj!V?FDZxa8~J zjClpHzK23C6; zoo3(19+G=RS%Q>+W7=1gec&$&oN3-mu+IJqqCbHY8nd}HBt13wlC7!_U!#k5HU z)$L8oCa~M7U?pxrCibu9vN3iC>71A`OkibqYCjCU^Ss=)SYu4TB?Oz|4F`(^9VChv`U#~KAD((!hANZ=i*DSu*%C6!8YhT zwFY+>Q;g`SVhVKFy6e)o}Nvp#0;6*ulB z-O{pb;A(?3Fmne>f&7hzY)lC1XkMSD__g}`^aZ9;6T7}DZ;?Bxd{KT?X~k|iH#gVg zVREkL-47mq4eVLcm>KKv%Pq9> zK^wPa`_1+;*Ej8z=EYU{D@+v?1$Oq}$c|^O-njMg!@aDy{czL9(p5*$2J9)9*qw6J z-2G#>cy8BURdajP^W`m9S=dcBYmINsj1}cyl9LHLmT4ktitQ(uokm6oEm|tG%Wa(v z21A_EpWV_?xa?)7=slO{UfYn%9tK>9sAzuCc+&zc1=-aetj?p?za7%g2!$BkI#AP;@rjnhpX5 zBn=5sq$clmtYsHR?!Tm9<&CQ@C~GjAcXg}}9qeP150@=D>RjH{w*3g(VKJ?|dRHIT zTrjE2doA{(MUh{H8Nv#U>>SU#A#70Z`R8)>)5?mI--F~dXwMhyWBD71VJUp?E8*4o zIE{rNHXJhF0&B^URa%T#64A4BQQ6nWRylf>Hch2&X}WZ%X`_9ry=6-NMqAD9l9&$5 z`n?;j7>m!lW6blw;O_d3dzx9=O6#b7`DUO+yF0yA>^IO~z7LEMR+;YtgPmX=8@rCI zV5>HcnR++f^?b|)7aALGU%zL0&0a^%C4F+@(E3L_e_dC$^v2E0*7v%u_585Td0mIQ z4{(#vp5yHI@ZXdLV|~O@X35cr)w*bz6)Pv8q1ps)lke<~8m=lzZ`#nBx^B&MNWb13 ze%&E=P-5b)?x;@o;0rM!l^q$L6?^}5?#`5jOWfgOhm#gG8;w|F%Xt@zy~@ABUgd>Y z1&$SG*)uCMpt=F8>f#op$+QE54)*PXTN(!992ISwY}YoQ|3r7Z{o2*GYnz&C%WKnD zmajZMv=i&}d+dd#tfnQKhp|$>scw-uZ#jDwD<1cG_If(lL!5s!uK9hwt}x})W16M} z>UoQ`*|`PQnYGy$cUG$FvVRv9ur52rbGN!Gn?Yw*Lx*hAv)G?<3H)j_*5Kqw4c>oY zY&VL3(vv*w);@_(8-LQ^{kxQpx4*?Fz0Jp4deY$i2R?gICSO{`KiBfl_4q7C$v@)L z%C8Adu~Y$=#nNK_SQEr(xrC+CV2gCpv9_OrJzy1xkJ?Ek?<|;FIXA#*_E) z8SOoRPikW|uUpOQR-@LJ(h?4N2`|5d^KA)#i>#VOg0tdpH@>q*Tr=by=lZTG2f503 zjrkk)C*O6D6d{-Uu7h#C$#;zvS@PF?*C8w|=w07+xMa|#`K}|P_vX^>CHjk$l5L;D z@>vkp5lVlpI`H7T06G>kxUVe1q>g zT*?Xl!gn2^c(f+pb);mmJtEafF03otExDx;X^S*0O-Ty0X#jen;QN0{@vj2&i|Tdd z%yk*w(DNFU9grOO-XW(n1{e-J8^l?`w;?&DQT%iAQf@$|r{Y~N@b%+<9N3HT)Q;-` zlpL2P@i~Ym)3_#>Zd^}+E`ri6HKU{=wS!_Rt4NKgKh9~M4S^`@+YJ~23 z-Tfouu42VLGT^TGsRas^KBs$f#5Jyz6_)|E z9W-qNy+n~@cW#?<;oOV|4ls&XAT>`pMn`Z~TSjL$Btz{tp#`NlSK$bRq|5>#-j_jc zMQE=HpCm_;mqesBy4+iwim8~sL`G1c2%NYtt0*eN+D>p`HmOCk5cmi$Qc0c5Xfr31 zR7X-EOa9wvvKTi7vbw z!aoPz2qkR9*&%&{v!6;d@aN-rM)e&~DhJe$6ox(>97+RMYLbmg390)q$4oFT}x`L7(+>^2sbW&m`{*kE&<8b?^B{*bAZnS`K+41Q{D~T2tFVl^;{T!;G zxeoVZoa!xTw@NS3O4O5Sk~vM|ejJCOmf#DnkxB`g>+ys*K;=j^sU+1EYARYzxOSih z(KZ{}0G=q^jf|npBxrD6>t2tyHV1~2{3|;z5^VXvpD& zWjBsGrd)+e!>DuIp>#MV9FvnHlamfS852|_bz)83Pbp)=%J?K*GF8B20B;a;C`rRXdT;~{@aBLYTxT7PJ4y9&%a(ZMO zKw2GcP_~62*N-S2BjZF(4L-+#yw0)1IfyG>YykJJF~{T-;kHk6pt#|$yQiE()V@ZC z%Z>W=j`0y{T%BVAcPky^N|STkJ+cjcY}_>p{*a%a0z<11olC$nzgH^eYA^&wV#Ukw z)YL>(Ny#X8RK+9XLoPh*;p$JStokTYY8ON~CGCW0+<>M43Y8E}?SF?~FGfEi0>1A5 z#6QC9k4+tLENz@S?Kt<~$`1Eg$DelN^K_9(0qx}Dt-P+2oBA~8=WhO-9IEaAa4V^$ z9dNA;a1gDC@OE6$Gtvo?`WEN`g))*oX@oy^pFL(%-q8-7vh&fv%CeAamadZKGU)vI{47QxrHRP@Xi8G8#b(xhitH4Qt~6x>k|5;go>ad20!=1c=9NA8aD z9S#)Mlbxg-?=FDG_f3ObW2Xxp9gvrIv;;pb~RkMU<5Dt={3w4MZszr3n_cN+YL@ClCK`{kXqKTwR{GG-%aZ@}Q z17x}%@;&pnNwiVOgaTYYYEl5BcB>p7<(v^=o@gXF5(Gb`#5q;7DOiyfQFtdUCJO1j zXww*{bChf6B+rpmPWW3!Z6MALpuT8_igBDnA{`)FcL1kf(}mq^1AMAaDF?}0aEDq& zdPosLaD-A7dN+uF>a#QPLg+vV+C-VVzioaQQweG(y_+2~RGkspOB^9y5bZ(^REuzv z1l^o7REAOv(qQ89T;8hER(X3ijuZpNd_D{8gzHrG1s{jenw_A6k|dGR3C^lg7W^gZ ziMON^LU#iDIVxxTRzMus&8=1SVY4+okY0kl9r7FDJo5WK;eBRXvG5jDgX~#YXCNiS z_fti1;(!aah}UY%C^4HrtAy^7rK#*<>PXm}|L> z;Dd;{ZJ?jD8+Rj#BnjQbXT02$woXS56?W8xV7pBo7!lK%}=<-ns(rSuS^oBG~jUv;~L6Hqn z#8yjC#!NXgm8ZN-WEW~J@s#oyvNpmlN~^RA?gvVUvXAml;4qN?8KS$gEBwLUdLzjSe0xI=Ns|DeO4ZS8om$_PQ>dixFhQ&%Ms7Xj)()4t5Ossd)bM1l;sIq6s-@8bCi*i z=Ox-j_DTMi^q;hTu8z<4&Zp;-XuasQG{6J3A|iD2z8b{^1>@=Dq3ODQUc3-PN;FU- z289G=!i$o8$ny*N2@VjQYKEj{glfbP`XI*fNJ~`diA-pA+i9?fyb)=Gsu3h-)o-aV zRn0wp>;0HS9z^$Q&b!-}{Rv-4Z-o44ScvZYd7pTv`UO#s+I}kkLuEaz2{Yjn{WR+16PJjNxgLmGM5SrWn`|I3 z0tp*Bo5vQ}sT%b~7D`qY*y9j%k+g<<(b~jY{@>#~ozzY>QZ$>k`8|-+=^E*n(6#@j zw?UjeQ-6bUbh6q&yAztC+9pX-)dex4K)JuaypWfeQ4zT^c|$6pS_st^{^WF7J>{JQ zk!q-YG|~sP$0zc=+4`wwe?%wgSrN{nH%hR`NA1EVMWnzSZy0t%k{CyM;yA@KHgX>Z!S%stsf-Zu}!$BCGOee05w$X3seW_KAvtxo5^U1PqY_(1@Hrdmi`6M(u&B z5o30CAheNmTh$PeQ}{;?R866hf|qJ6pBq0^Nz;f7MF;x zt-#(&VBY305je8ym-gIvNYRk;P!WaI{eB2iQ0Ty^`SDfx zEWD#1%c(g{vQYhxT2_oi{CCzP^rn24-ke^7#4(Zy*^a-LD@m}YC?=`aSuSG6m!w{W_6DaK>|Zx{tT zy-xW1G(8yW5`CIB%*UvsUF4Vi-g7pmgrvzgQ_Q6pFb>HG|Dei>rmtxPmNbd{jGzC3 zUT1E`BQjdmI}>E`x56uuhUBKCFl*k&*WZg6|Q?QRopK1;;i^!bfFy0&8@)` zf=v_NZTzkU<*7GF+S?$l_RV%tpOH#-;ge|X;B$HnzH(H9+R@9~)F!P!sahYtHq;`# zGzUn%Pm&o?+JonQtfFNqRm~_P@DXK#Gj(W#pt%OHX&nr~TEpq2@y;I5K((kIagHdh z!O?-wF1)1~$X?WBLDlPP#bJ?0MJrV=Ya zR}ZIxFj4EMByq0??`r^+>J!!${!~y#JRvC)Eq*8z_X)S4gZSU)gGc=aYQG)-2(r+S z`E<~tfOeE2tOUCjXTf{o8qHP)az{wquYp8$J+KhH)Na4b1L-Bs&zHfebU@W9f<@9H ze%Lt|y1~B&NQ5AXCsdy-g7mx2$3X#8Xg6_HEh~5^#w|#Gosg#ByMQ;h71XX(oM(Qn z3qBKtq$h+?jFqeQAfO8ws`QY~k}j#1;O7ci8Bs!*NY->m7|0SxliI;kdZ${U&?8lj zy}YgpmFmsruWBu7Ikn!IJcQtpiko2j+fLd+yc86Ylm$1=4!2m6dWJ_P#Tu_}*U;2X zhuf*(0oH8&uP+EIj)*Aw@Bbnq_>!}ZhBl?Ky{$*FH`g_^bvFdAI8%xglT~SS_PeJY z?%lM=&G!EiWkf_rS3^x}t-T>4q6e$qwzwRllZtDIFM*r4{7uPgZ?xwt#G@&fGC4Ie zHa+T?awY5mHV$B?&47f%|9sMr1V`^lFQyHR_bQ5mZR_DOf zWFZGJJu%^OPjPJg?SR{fvRGf|92&w4PKrY;-y2XI-2cH)GmE?UGl5|1|=sP?x}IC_!}OXPA?}Y7;_Dd4B?7n0!FmNJ<>ltg(pPt=x)UU<#Ua1p)+vd9?TwhO(~OD=%e)S zriWvb&e0vt$zp|w;K&L=?7%2+P{r}x5QBSUhhRE28vGe>j1xKiSl~EHggD3gor8mP zHJb`>ti`|H4cnhKoR%+CAYU4f8Qwz;!#fPmj2rT>GFtJ`qC@c;fnnkZ+DZB?bOQ)o)9wMZfDjf!6-J;@lLPLN31}+;8uYcA zTOeAK*`*4Xx1$Xb4r~K4N=SWj!a3kmYk^#G3{Cmg(GJWsWO53=g1Cyd5cGB|+QnMB zQPsl*!Y2NZ^MI!yZva8hVkO!BglinIK=~wA^7_r_^!y{7t*ZU`R3$OpRVF*!5dlvWvc?o^!PJ4Ud8ka$dut(l%0cDd&_adKn} zoEm%pp>fg`?0O442!{s`(JrcFa2egz_jugn+_D$G@E7`PhRe1QY7oTEb!j4A)jH3OSANClUoD3G`g7=7(2C7REi(6uGiMS3ik@BBJ@6 z+o0m(C%L~Vc(Wo0!YJ|-=dLN$;|))bImU~SVGKI@VVv}<(d3T7Jus6z4q|}YHGu`Z z$Z5tvB&@?ShEYB9Sk!paeXC&pnS*;(`E5hT(GuU?Tz&7(yYC!UQ>L{808J zoD(U6h=J5-3Y?aFp3G1=BHL%vb5ZkGJn|~Sw*{1)Z9~ZCV8Xs60!Y;4aLhFYr{EkP zbh*JdGPFTt98)8>As;iB?I^lyz&XLq*)gzf+_e+Q6Si9jF8N#_Y&w9BQ_)Ppm8t{~ z?H2hYo+61jgLuH3a>1Kf4fJ_0$|TVUzjxw(fwESgR>N11qQPU+lRTXY43v-qawQ0E zepV#BAg|2GQoL#C z1Ib~BYXqtNkm_McEUM#C9rR2V3zO&I>zljl>^04;4PAiV)FAq2-R+G%t7^I$l;&=w zqpQ8IxxS%Z$*k$deP*Gus=24By|+g}iLRQqo;Bz!C^cI2o>fO?Gzh^cD=C zHLqyuDMY0nJj70juA2IW)|#%CLZYx8P3}^7kz!B@7)nDQRqk%8vD+15$P5gnsoh?W z(zOksz6RY&K@J+u8HlY6HLW!(s0AuqD&}i}p993H6%B0-T{U*>x#(!9Yo-gZuDPqB z4g{hk*p0^HDIg)Y=x*rj#RHU6Q9uSw4V-k)T!a60q#mNhZD=9E>1po*4}7GoYVK~p zUX8BiZW021hqD#HAqwz_+Sm&gqA1i%&`V;WXY`JD*k=?1rKq-#arF%~b^wH4w9PMz z0f^aqH)gNLE5?{E%~%#=43}1$lwjP0R@AFIIegiBF~UhP_JNh4M@rifv1eEEe(@c% z_c820IMv_lc*syngKzT-#(riUz8@h3d+EaPO#>0w%@~C}#4-5R6a&7oAr9Zxm4NSe zO2TgH6nyj5LVR<1I>uNsFd}P|vam}x2j6s?hZ&Fpd`nCrW`v7DC+$!(;oA``_}&;R z_BmAGTREz*+p`+`IG5sA7nWoEu8xoEHS#gXW@#lx6zv#SqA|-3jDdAw6sZRzVSO0u zT8+`kwbDBLvepLt0>vh2Ge)Ct$M;-ZkDuTEwzOZmM!H@Ah6S-;re!*YU+Q9^ zER2QY`yJ>Nu1j0jg-v#4;$#vhvp8AAsa%|_;$#!23UR9Br?OJbCUaR> zF`W3IbBMqNJLr?7k8eGJmiYFsGF(OC;NNG8=M4W|!x4mMYAGs1M<{dvdtgT$Q{&JY zDk1UTtEUU`J`Gwh_dTz@&FQ8(q8vdNu=NsSu^dvEq(F<7Lvq(bl21T7A40rL^nC@twH0^GtJ<@tS{Vgv;dxvRvH0?R2ozb-GnD!ipg#r^vzePUK=+S?q&VbD%!Y9mpCUm1g4kyVj32@4X|*N_NuWS(5*;V))Rb5e8%Rb6a&& zW6Po&R_({{t@s>M-7>Z8rXT%36xbudg5Xos*pg}9@L}gJfIN!dJ9`#)ExS-7^a_Ii z2|>`Eo!7N;+2Ej{1H4oC-E-ceb$zeQdd^c2B0msV<{SNUyL!JF_~BX9kHYWvethA! z(CrvLQ+x6Ki&w49x&QQeeEvZYd>>r2w5RLg&|b431TPZ=k0pz{)-H2n!U6og7Wc<2 z=~_JZ<`-jD2yD`6LCE=f+0vD(j`wZA=WX{0Lc0616?2#M>-TI&{eIl<0ZO2%AY|^o z<*_+_1>XtYx=-@#c)U8{h4buk6o)S@?0NDM7eX5cZb{ zF?C8kp{cL37f@pU<0j+a)+W}*2<#C3&Mt`iafuOh>|6PMHW}aIJ<4+^`<3?&> zpHWVuY(l9*2}8LDWeLhJP{L92P>N7WQ8G|cQF2l2C^;x*lwyT`MpwcEl;rJ9z?JYP9Q;w% zqENr7t;r};PzWC3K<}+64Ja#7sO>J4`6xz|dX#(=!kz9TeCS^Kz7EBPLibU>=so?` zkMaRZ2TBCW6DZUU-4lXB_`Q!p_j;jRk3#syqY$2igC7d@i~9T$%0?8rhwvc!jaI0y z)CSR0TL>PNh02w1Qt3(XwT0+TpQ&waA)IN zbuC0o`i^L;Eks)yJGxTeseRWg^_|)u>q>QqMnq%kKhcQrywa8CC5`=9SE3X3hu~6~ zqm+JJRoYYk={;R(t`ePz9yG^kzRg6TIp=z%`9a?kzBK2?y3&{t-CVDPGtr6G3&D21 zs<@AJrS(Pax?bsi8lRtfrL{?8OY?}vkghbJiEge};uq@J(s%`-sQps$r0?lF1BwdU z^{Tc-@M&Dmp!^!8ALS~P45hq_D~&JRvrj2BC;U)+QA$v#y-XD91GP!~G8=`~65$)C zDSEtTkRU6m;61gs0`F<;sGUxf7L+!WK9qSVgyS@nYfu)U5bvORM0=u94NA9ioq;PA z`kwHl-;z*jQD~0SI8!_SO(A?-OB23}MIjv3(yP2zuj==NzqU|ch-TCuD#UvTXQDgR zU5TRoP3YuhyKYvOw<35!}bftCXTC{M9hCihw;XZ94T5Ai@T`dHkXh&m4 z^UH=pxYL@+M@dAXc|dcBz9*b5D8##ne-K}wwun~{U1=6q3F4 zo67sB4$0|#D0iT=qNuWya3h{Vb%{PxmCxVQwN`0ZVK=d%66rvDK;!%oG&Y@JGP@jnI8OoJtLZ5Yj;f_*_Qi?+T3r7i5u5=I4 zoA?W@8yc5r6sBDHd#vFGlx`Girwm0vAspyB8*qJ<_aggt@JGDImE#oV%a!n=-_q|DFcwnEh|B|7SGE8iQ5!Q_JAsPrY|&Ua0fr z{|wLnp059Gdt6r{UFLsVT-NY^JD&e7zQgaQaT)Co{s6LrUH{RoI;BM6SNyTlo2BXOu3kJ(R9&xG2&w2#c?0p{XzN%{_i)upZR{-`=#&az3+HG z^?kqhet7S@3peOz$}}W8{$Kpli(UjBgTzNn(-L#~O33qZxj(t44w`|xpodS!6CM*U z!CUZwKH)3)3I0NW5GVu*!Gb{u5kiG9AzX+MA~7o_2+_hsj8rVD@7?2%7qG{652_% zP$Sd|b;2Z}9(qm#^qeMP3N)D(p;eeFOoI;8Cd?4pg_*)E%*77O6ao6tI$?uwwXj{- z4S&=T;jnO{a8$TSxLLSWxJ@`F+%DXK*>tCHx9~IJUd-L&!U^FdpIr|KzkpP)5*A^; zbwl5-5ta&vgoUsU8Ua^eZNhqC51T41W;0kjd}~Ws6KiHuFx#gI{g9z{;TEifl|rYm zfVE;BOlLM>KICdGDz6gO2)l$qEVdHN+6q?5%2>JZb2d}>B}-tFSp%EI>e(zdn^g<& zsG+qwVKvs)Rl;Urqi~I|Rk&8zB3viz#7{efeZqeDv;IQ&jr@Cp4Q_wPZLju+V2sB! z)P0`$urRF8dbWUV!OFRvon%k3ci7irgjg^3iTlK-#CLUpx&mE;u3xuNcR+WK?sd07 zw+y!qx2E`|4ZuTl6RNPwC&%f9~Psk>pY0 z(dMzhW4*^7kE0&1czo*_=2_vnz;lo1v!3sHO5@_jm5pl~w{zU_ac9PT;^pg=;nnW7 z(d($!DX*8jKJ*s6!@MiJo4q%A-|qd0_d7l*KHWY$d~WgiaD3GGy77JESC2nE{`~ka zeM5YUd>ee1`0n<7!uMT2!7s_L&2Nw2IlmA6qy3BgJN&o$KjQzo|Ca&&0Yw1|0*(f} z6BrfP9r#d?7!(!M8MH0vM9}NOZozTE^}*YM&jnvH6d1M{UJr=~Srl?26Z$9IIpNg_Qgn25UG$3Rq|SBb~f#s zbW?g$`o{EA=^teHWY{y>GPY(sl<{iDmzjZ?_RRLoO_|3tKgcp?&B}T#TgWcTUX^_! z`>a_ohnY*vedc}U)8;QMah4KGpJkP0i)EkXnB@`6i?z*?}R;Ff}?3O+3KDa6U#b$S@~Re9-Cgx|bwqV@^|I;%)hDZ8ss6GixTd6L zMa{vQr)oa04XmxGT~K?V_Nm&h>wM~x>T2p%)g7!mUH4Yq50jE6)l8Z;Y1O3NlOCD$ zQN2(fUq7wBzy9v}SL(l1TdCBChlW&=PX7YOtfel#=?F}0n4m3Q}@J7R@jrzvC z#G2(HvNg|pS0=Q zR<*q~BV$JUj8!xC%{V#ZjTt|-N3_?pFKOS`{_afE%vCcF&+409GW%qQe@AD>s*ar< z$2uPBc%kFHj&JAq%!!zjG^b=v+ngnHw#_*>=fs?|bKaQq`J5j+y*eX0Q#va;J37~P z9`1ai^W83?%hXlVwV-Qv*Qu^EU9WV#+x11aTX%GKPIpsxU-!oDgWV^(&vn1r{Z98M z-9PsD_r&+)^fdJJ_N?zY&~v=!OwakAPkW@^;NFzplHR7?&faCcTY3-n-rf61@3Xxh z^nO1#YHt19zPWqmJ~sD_KCeD&UrAp>UwdC)--^C1ef#>3^_}c{qVI*i5BsEf{`2DI z<;?4tcgwuj`-A&?`;Ya1Fh6O2@BAkg2n*sDbS^l&;O&K`g&hm;UikSU)1vi@o?Z0L zVz0&K#S0dnTKx7B|0VTHHZFO7sjxI`Y0c7QOHVBQd|Ak{hGn~#J+)k1UbMV<`KIM} zFMn%A@QQ*J%T}CN@y5!ql}#%btlYNp_LWbpJiqdbRpP3wRnu1OS@qJYZ>}<3)p^yP zt6pF2xjJrj(dzcqt5zRa{ov}4)&#C;T61*Gi)-E1R;}H*_N8?`>$29hu3NkA*t&D; z-di8MzHI%b^)IadVS{zU>J2A1{ID@+ zeYQ7m-?IIQ?ceV(?O3tnp&c*nxOAQAy3Xs4U-!mNpPh9(*YA8`m)owuT{*j^?b^2M z?5+=X`|K{--Mjmq-EZywe7AIc;Ps~K^R92We%AF{ufOy9SNC}CN!ru8XUCqCdp_M8 zu{UFH+1_b;7wp}%_u$^Mdq3P4vTxeHjr$(l_sM?${jK}=>_5K$-2Qj=e|y09K-__b z11k<3Kk&&7zBiQIu=a+#Z}{Y3^ue5iO$Qeo+;;HxgHIg%;!wz;)wWAxZ?2I z!_OZPk0c%GKXUt#Pj4)^arKR7ZqnaWbJLwSeGYLe3eUmg;3qx=ZP`N*LTwg9qRygw zuD%EYPd{ziv+P^Rhu^oKy~cXQ6Y_mQxX*&J-?q@kUi%aN_&s=G-y(*jgJvZpIE)_d zMh_z{C^ic(77vR9#bETXu$+(sAXss$mbC8?<; zcWd5@HxJBXe^^^pwYKVHQ(9V6+Q7$}4`@;+xDWn~eTH_!p^v5tg2U=C$xV2K+8v>K zkC2JX!;}aF1ZrL%j9vzZSj=`uqTc;jcEi>6C9T`zqq4(t#s_C6W<}ONxtJMjY4w?* zQMc8XCp1Ldz5X}*3mcc#)vl~Hy*BAu&uxng5&1DW${ zNr1TCYb=nDw?L!)XFkptgVTeZY_%>5)DhfF{y@!_`2!cGYiz7dDXXn3O|ievQs18+ z+4Z{g=ks$Anq|T!)G3kcgxLKtT+z&5?~(X)U2R!PE!9gn&y25kMb3X;dh`7S6wPJu z({!+-;xo|Vsr^Jps3X)P)FaU&(NT3cJw0tr-!?U|ZIA!; zylxmgeHRe*1&+*!34+;26P8{0o%zKV&A(%Azx{2-3opq1yk~GZ^MU^ADF}2^ut%cZ z@xYwPk?C&Bn%i5#%51=8iSQ=d%e*m4g2NVTSi&a0X}9D1UjY6D=i%NMx^=w$ z@WDSImU@o94`rb&oZXfnb%%?83K>Ym@1l@5_%HUPxD6}LPY?nzvHUTvm{IK?nQt#v7%(jvnpZ!jd;$Exj${T!eOC5I4Zm5t5nB5&)uD0xawWY1hy1 z4Sm*jgGKbLw@n{-0=JQM!p@1;!uAoE-b3#ZYlyWKv0`SoVH%;cnANP+Wa^G&HfdMj zq{RBxs`*_}^KYKZ4Dqq8<+<6Gj<|}3srj|#DU-W?CAXh3_&qxVm@yceL`MqHg~04H@w!eC~)qcrivPtknZhMyuy~285G^n zlv5lbM(lbr$&y&MqZoLnqK%iu^)&to1{%azTaZOZWM(h7JEVWylY7S>9KW>g+Lg&( zk#f&dm|w_6owKMD0yME$ok*acLFl)K-NI(}EbeLS3!1gBq59g21TWSgedJM4%#QRw zdsT`hdFFxoJa1Ox_!Cwj#>ozNFNoJ;l)`0*aVBdKqbUzip;lv@-Vlr>$U6J_f4#7H z%ZiY#3qwjO_wLPa-CtS54)^_L<%)N2U!Id)y1cdIw})B^k52;_;F*J$2Z3iG=;w$v z=skRy!Dw~ZF)HAeIYF#Pzc8^hKPD!rK3*sJiUIR;3ZAZdyl(QGj+%W{F>qPx1T%2^ zEyf@KxW&r+!bS`OGnhsp&SVFVAXX(RSM!3|J&$&GESmp(|Mp3BdnVQGE-k&Tr1bde zq>R4$Idke4CMK<&GH1?PRqM;j*Hy8Ek|mX8%S(W-C=?HV1v*?S)4|U95)E`BXrVVI z5(#WXjC=bQJ=)i?puD3cq@-lmuKdPbrL|wp`_+mi-PgT%m3QB^NgzUV(Xmzz^Fh!c zirtEyKQEkBvIJ|0#qo6{3Vdy{Be(}LC`h?SUZJyQ@ioda`}(9ms4JCdncQJoMpTdQo!HQfXw~s-H#lnsaXU|B* zR9;JaBMoS}z)Ntr8{8Aw4(WI#+aPU^VDaaZ{}%IIGSR34a`dG5bHIy`l zS!68|iDMJFEYD5N?uuU!DOx?_7ECB?ugZ?jY0c8lo-IDycujRrT1mVZGu6?X({4{N zC8wnjT*u%c_MA8#5)~gqz;Ut4Cb9rbZin4r4>gC{Od!2~h#5k{s3Vb3%;>9!)@@jk z+2|jT+prN*mb5=~-CZCW`wTXRe6zt14g6_~d#?%4Z)0{+N4|kBtLs;Mb6u z29+|Qqz!O#SU5fITefITL!%=tuf3tQwV1l@btmh-D}37w{~gjBJ0qW^gcEC>Ieq{OZ`vagD1x#bp zq>JBwFYdQUADSf!rU)kV^9=e49xl%S%qq2)B-}6?Zd|rxCcVLN zT#Ea5DEFf!@L}L+F)UraoP{o3Y8F$?=7BenR7J4!2EStqaWBo605FI+Su?ZoS}Z4X zdO&NCcg3uzyO_5)TUx(!2J>;Z1{AJh*O~!=!FMLGS5O~(ky*IPV>Bgt06$9rCOg|v z+}jwPv7~&NeXhgNRb3_Se{pqs>+2V$c}af)-Y>jH?XCk#U<$<%wK{u zM_s5#>>1PrM~byERD<9JkN~z@`istCXVE&xJa%q?5Xxu28CXv9D+%NG3dS!0enue( zjNW0lgoHvudFUadObONuT^wWzDRo%C4ttW9S4jGXJ!uiaAsOq}W~Q?F?tv3?n{p?P z^Y!+d*wGms!5SKJb2DbMt&?6}o7LStd$Z|WYz!jPj5oOjGL+$Knb5{H9-xq|jn5YRUlQulx+{RwY>6x7|JH%nFsJwS;PEnvw zXqp*)DMVk+f$k*lpvhoa^4^df3JEou)IKpEyMMFe(E1g*#T7XPj?L{&v%06V@j3|$ zs&zs2w8(3Y9%L^|@0Z_`M}5S4z}P&Du?d4FMv@In3)(fA7EbkHSIgp4GkjaFuPgXv z)5@6@{p0&KHs!IVmfPDVTB7rp0c(?6Qux=FRU<=$m$WX}UpCAaLvScmLkDJ$tW;x}O<=HAeAzn*(}T;_ z7R;?}&B!>Km$qZ3-|R^}Rh|~F(ALz<;5F`+)Gq6!-7xHCl*X9j+LoNJcP|J|Mmv+y z&I{sEi~+bl7>t1gKcAEy0u=XvXsFxv$+k&_?cGb}xPf6 zpAgI@b>~WNcm=^Z&x9#}cQ5dUgyZ@F7OpHKfjB^i8rZz-2{qL<)#*)sjRoEF`g+Pr zSxJv~-|6{L=ICobzuG{|RTL~(FOLB)Us^FN0G-4_kwMr5XdwX^45Eph^0IhMDxT4^ zWKK@8^qq`ab)$H6;8)Z2HtV*(TpM|QKw6l~(!7G^ak%Bc?_uEQ2X4b{B7;Y4G~-e{ z&J+~qVX>Cad2EJGdeyyZLyO;(>h5`GH+fuQo!6}GHBXv7!94L=X1)J@dF-YDvxmjI z$PNgCc(kH>TwoeVzFIKBET`wpIh2*>lM`=Ed-T!ArH6ai{pJ?}EdEvXW@#6MktkRP zbJ#C{PZ*7JLMYZIw`gEB*_<7ASa^?3yu-SMx6cjixvEiDTio8YsMA&^TBK(xwpJ85 zsvB1Bp3#uWz{AH_gf^?=kmxU!#-x;Dr0($^71wRNPwnk%Zz#B}aYi+iU z!u__iMQoe2Q9ODvD7zpFm9!tc}0`|1P}T5B&XcCAkfLoCwDZSQ-T4yn?EkMe_@q zN~>(P(rR{L`Qo;Fx6T~*hImw3U8 zW_A4=aqk~7F3=}~LTTcngeb)Fz^XIatdK#ZG)&c*Bg?{bQcAOIVHIY*&1ZZ?nvGqE zj!#W(YLT90MY)ccxQye+b0ec-q!sLf+?RU5|2g2JFMzLrRv>N`ySCKY!ooV|0!~s! zTRn|McFe>yX)~&eLO$m3lc>vWn!p(Um_Yv+|9rMd+M0_f)_d4Sg$9uPR2R5Gv%trh$JLh2=w8&BQ_Q?7HdkYXS2vs!E2r!2wyhs+i##v7&F71} zA26+hW$YB%A5SwM+*dPGH51iVTTB2kL8Wgiui^8PT^N}6sb$+oG%=rAkjvs|Vlu=i z1@;i&$+IgI=AHp+iZVVk4~a3W(vsIj-zmM^f$5bOoaC0Tiwl&VqiM#+wE^_Fjs1lz zqGCqIXa-AEWh}HE2w4w(T*LUDMfsVB6B1?~X!V`iA02HwT9TS_EYupC*^m$y6TP-L zCNnB9xWZ)0-;@9q7I@Wz2i+o0Aznu7+vcE!ZGgE88z?SAwB6a-YCC&&VrQODUT>TPr{-|QrR&Z_Lrh*%Ku|B4i_r$)pg+IEb4kw8=-KRh8h#$L@lUXx3>Jo zJ1Vw73bPB(KmYkZUVfS1ZyPjooM5dfIANH$m&aDH*KoUfETgD18+2@ zi53=}Md~5vJ@=w5S^kES{7pm{xXNAnCv@J2Juz|bHz!M5%*kvE-QN${xdXBj&e9<8 z3Fw3Qa9+S08)EPg_~7fZ8dv_2NyV|K*8+7j=X zPA*^zpoF2N(A<<(d;7X4UjrX{oP`J^6#8zH<7AHZbJx8T%? zgXl8BB?hJvVrGvU6C5S=WnnRS@wK+3va%dj5S?U7Ok~9q8xj*S#-i{9*03AWzABiZ`|yH`vg%@uxK_%X;u4WXfkVDe#Suqmf(_O$W#97P7_ zIc(F~{{BH=Ri*oQb70@;1ySY@eM!liin6Rtz*o~Bg#|n>6sqSe1pS0bG>u2 z!t#naT|$t5@F%eoT!?0gJru6nXhz;!Uq%jGD7lcO`e^2`XNX%@tSe8d%x2k@$yIp^ zORAFj`=l5)bFB>$W|QdGG^IJFCHGj~)VNj?OKgdqns-}nbIem)XRyrFt?eS{q3WE_ zl*mWOm0jWpRAle3v2^FD%A?{f#rN+xcI=qr_S{n$)uC9r(#-*0W-ff5&=cNzy8K0UOm1yve1G#~%7kp2jV}5zUa)yN| z`v@S;8BH*(7GqqX>>pATH4l?7+q!n+RbOq9e&5^qY;VW&TVg5_eBzSJ^K2!_DLxY? zPtf1M#@!%&w(EKpeD%^VHZPOjO!7|lExNbbH`$w|fd<#JKDG*WlLvBXgg{JXGc;k$ zGvcLWM#+jW>A@G`CX^+mbR@ay(_8Ji-4T&xW#dcdXR#k5Goy{=;`Q#a#_SoHy3F{{ z;R$6!sQNIeIkpuDhg* z@D+j{cJQbBz}umz!&Xwo8-@s~U1BKu33YFhEu**7W)ZvX6K&(&qf^FvW{W=3)7iyY z>>4S-lob|KVrVx9#iV1NB?0Jf#WQ&4L$Ws(8XoL!zwm?6AysF^M0nJsPO7igUM8Hn#B5=Z)iGN+ni$Fm~F{lj_R)S zC4g%b{VtQO8auLQk%&u};qZ5gct{$s(>LlcGHEeHw=a5HqewA85Fn)-O@nPJd%Gh-c*k;!p( z+oj(RL)cBB-xRDPf50c+BZo=j>|}ov=he1yRd7sjaLfZ#jZBCR38DYq z-nd-)x3(d*or8S6h9V9OwhGvogU~Z5-VvuI5lha^os*mE7n>Km@#OGE4q9ed@V_%M zIyy4<(h+SVe2$XMbdmdNV1rqRZ7EhN1eb>cUP=G6%>SNUyY72$f69~ItHu3UKW0h) z$s#}dO%e4+L@~Xq0C$jl%Z+s1cTOPJmfhw+KkeoHEc%xpuum%Y*JeQ z??*p(45JhGI$^9~OWg!I8Dwv|LL-e+U9GF7k*4lm&?r->E7NCK-Gyj(Kj=G*KAP$Z zee5y>l{Oj>ppA_CWoV;;H;gtH6ueyMG6Y@Z+?C=kex$)sYylpO;jtI4!dc8scKeE9 z5t#hdt8*u_Ogl@_hGBlN5AgNCee^owLF6mea-g7LF8g6DD9`D?*K!{hUp{0Y`SST# z8b}`US$}1Z{+$@)xmWb+^YNF)UBR`l;y`mk#(`GOm2tQglV#hLaiDo5b^K%;^x(p9 zjH+_u%4jH)?&>RIBG1Pwq5>+&W6}?aI)TS_Fyc;;b7h1ei7e%l(o>^yY9WZ;z9L>U zJ?tc#q{u5!iF8gGH(Eb_@FZHb@=6g`SH@6TSB8lO!$j%NS4L1>awOiQ>MJ3MxE*$h zon{}CzafDPG$q@H9lZ6{xMRoS`0JuuZ;d^6Yb;)GJw|$r9Mif5GmvZ26xBj78Z$A( z;LpQaWaxzk!S>*hEvADh;;@^N7NiulTA~sXG8d*4&M-&EC#5(2%~YO5u`L$*g|U`` zTdavfLfPh!lE!l|_EG%iEMJe1pRx=Z9#J`h zrB|;;Rrm@USUV!NBIkOX<+6z2a9K1Q&K+1j>z!~oxBdNP;OM#cS<$9Q`KBxhx?*lB zOJJ!AP2s#F!GX?l|789fqn$mfw&MbO7!Q`dP@B-HbAl^71CP02F3L8vt^+Mn)Cc`1 z+gG-wZ+|rO@h&BRBmUT%-7eK=qc|eZF}f3c+?RVexKtxPju3hfB%HZO%n;W)9E)u& zDS?KxW{bFZVSHY+@A&B4tFIRKugs{O(N>#5fk&gGyuty;8JMTyqeUgRh?E<6`m9KH;CVO!mF@Sp6i$jrxF+jhc7yMvl(yKbb5>-p&MRPV&g!39 z*sAxB$v39ha}GpUBWFTC$}`XR)5k2Tua#iKqt`sHBmN$KuvqK``3aF79rT^cM0Z*r zH9UTq2#@$yZ({rZu3e1HW!hbf!Ma?#D=>aT?S9Go3psY>NLG;SguG1Cfm`xs&(7O& zxz_)6_xkmBYv}zPZyzJ@Q`*;95|_bZnbxkj94=3*HU{uR&Ym_+gdINaHK;Ou6#mnhwf#X66IR?5IDuh+(ItoF~ym@#8GG)kW z(V#SWcq~%RhF z5luFc7zJ{vzz-k30$j*#kI~?M2A<#w_g4xZkl}vG@r9K;2EIK0FdFE2@|t&r&PwEk z?xx^Mol$9fk zw}2d09vc>Q+oFm>^K7%io2v`mI_5t8ba__9`#Y+N z-3sf)$yM=1!EtF(Nu}|5CHJp9a2@+Rwy|5Sh)Wt(IckFWAE<(Y_Tgq4<)8fATxmXI^j%3`>by-Zyi zSG6u*CeFHNXlT_ozr;Ha=r_Vpn|w*ARhKFw>#WU6`OvEMpX2o@vmr)~3hT61sR~7> z6ZXbjK2Z);H>r++W(Lt>rDBBZz7MKe34;1(xd4A$QO(R-;*+6}^dle&P6ny!{X;=&=@sn&yEZY5HORE& z@nX*Q*>$ScrB5C>|rkC0Y>hwL2_Y7dTt>t#5`td0LV_Q`$eQGvYVvl1&LI zu1;ySKWBJ<;M=*fZXW1t`7*t_%8AG2x>nC|qIrt(8T8lr!?BCTB7T6^Cm`0#lyP!l^4tFXt2a)l}sqo|7Q5$Q9hps&*w8@$G_SF;?z8+ z%{(lfPiZz01h(;QI&2AN}04{;pnoitG4}@YL(LJ3>F2kDllKVXYguFO+A;D`^L6+Ma=P zy^+~}(!Xfo4^IJP$?CdS@zrx#FZ(%0M|r&*KN>#*YsKv`3fiEDjQ5wo8@j~k`nyiH zNJmlH_bB4n1^EX#w^eCPJ{9<#RZVMj*31=7d*)$GM3T_x=(F2F{QT+D&y4KAimh8`%(%2|Z2Zq( zmiBV1qhKE(x9E!fL23?bx&Rb;Nr_3&$jWeZu8x0vW~*gLgCjOy=w#gYjogHx6Z~PD zekPuT{NS0JE*YvKWq2XY2N|kJ!$ANX+Y0)|WsfV%YnstB)spjd@v6eWGDArlu#c0o|KeWT3YJtiP(7Eb(1Hjv`tH4 zwoI0)1TnUj_2Bbi@Zpk5Xe^<@>v{XW!(O2VBpcwb8aUkuO2n) zR*k=r{G<3ANk2{Sj7z@|O@K=leQH#T@RM!F+faLKTQ>nd1!#rTL*Ua5FbK^_ii`dnkf z3fB_#O?hb_9l}^e|Dnmq^)W_`iu*G9d#f-=8V`YZ8Hg|jeiSN6*sMUsX(F~mz$_je76&mPxpUYI{T ze;xh^;)3w+UO9tZ@l>!=mrG>7M;5GO=d-gDij0-}NNYG2EYi8S6frfTn{1PFg?&Ft zR~1e5`cbyDIs1Bs_Z9l;mHQg+#OLzeWgbqf#_sZf!U5EACA|W^78ku@M2|n?3$%Y^ zXEmzDh=End^%U=G@=xijipS-9x`tyjb|;yc8&4$esGpI1KcW}TDiA{Lg-E)GFx7h~ zi6$eu`bBtHdBB84BfI)qc$jB{B{41Z!YBi)_VrWjb2nmNFLr%RU=V>wcXb3^c|(SY zH+t-HvspZ^wm)$F*gG^38${a_8yuELfw-Hxd9q(#ql?r%l+N6!VS6bR|CsI|_zJ|k z>rM}4{W&*$WGg!C@O>ZbV`Y7j-XWj00ohGF4!Mg?gy_@`=Z;R6EG4;Y>%s$T=?~^$%^QhOAlX3nhO>HK&L5XDQ?$?VlZ8&T1iEJxtF2AOm%ku^QO$8N+s^ z{XeAZ#yF*{Y99|dywx;UwjWk? z*|Y!6RywY^+vEEFzq3^t8PcAN40g9djI>aqpe$v}0hM%@c73SDU96yKW#O=iUIEZq?E z#zw9BmYU9DWusOFZ;xGA-`jW7&~~kX->Mvw#t2@2_A}5{ht7L4zsWKpBHirZy9v*q1|Pgjw?;O^9~O+e(9y5uBv^7UCD7!jK?gDOOU+5JRjzwAwaAF z7UJ}l{IYU7HFV%z1r5|kswR6C^(jXmJ^{t}OmGr`ZQ}-~^gCtS8-Q>V)6cp6O+?%B zzIIM;=59++8n;Tw{9cNtSzC>zMmiz4s?eMBc-z{FlU_@4a99vTr3B6CBtqppU#nO%3) z?Nj|tIM0;tyZ55~u$npG(4r+zg=0>{oD<^Xk+=aK?ep^^&*Bhnh+t#I1r05W&0_cF zT3cqi*Gcb=xGU2|2Ci@R2V<&S`{v{s}pa+(}V#<&3zpbSd{rd2nj1?l#~sEWSuC z3}-OyQ?4#J<9uK9eG!mVujoi$h@>4sL)H$va&8~fC=&Nxu_KCqW8g1W=#1JI+NyqzHGi>-!wDxXoOl5(-JdWz^KXp3?b@4SZu{ZN{rY%g z@~YSkNvovYSLhk#>QEf`*Ek1G9w+F(YE(5r!A;8Qknh77V&Plzpn#YXX$LGF)f6q7Ax!8H zyEuIU_UZY$!6jk}aNKDSeZsaE>R$C~k4f|OD`>X)1mc^6jzTv#zlmA?zMejAe$m+H zr;ql=nQHDLV@D^l1#3DD;pT-4%?~0$#vB$MiXGt51#7=9npcz)?lV3r^~NGcSXh{M zpg!6^**~nM5t9};7lIz=IL|i_ML5?V^Q4W95CNMJYofX z++|lW=>poF#hr;H7F>51^Rx@#3m#5qf_Q<-$Sl!Fg`hFfmPJJLD2O|S1^Z@H%V91tAB7ay}9Y=g|}t)uir7AOO^j@k`H zmw8A$&*S!^^+RrZSRekNNEX*luw*V-|#pIP<;am^TrmE04XKoWj>*>?jXI!(;3!7v-!-;tBjb7_0$3&uCD6bE9`f z$>WV0wKv>)kUB^0j%Jv)dU0On;W|1P zVA}K$I}QezcI*7%I4NB(UPGq@;An!0bWA{9mNqNTWlWWoHD;%`%QO9%(K@RvtoKIi zrgKcsUvW(3^)<$rejv9$)|g&U)>{^MADz+TMVg$3^XZgBhh#o?mX02BGB#bQdIk}6 zbJUm5Pyn|X^%MmSJ5vr+=*soU>&c7sY>*k6>#+*b1}8%k`96$i`8q<@l~!m!+vMJ&g%yATbkn^ zFjmN<<@BT64<7qURFLB;Wey?6UPymVK}tPy;&)swsz{K=K;aVjrZPnC1+^LL>F5c~ z;S;T`t>UCrUYpY9q`m9J;Jq}sx#W3ymix~r5~}rZ;n2BZI|hdP(4`=>sQR zu_QXkcv2h@a9r`E6Dc(4Nl%jk?uyrKJZ>oOl^{Kw4yGCM@w*aJlM!=TMNZYMn@1q1 z;z#jAz;(q>9BOAMCClbis$DTHS5<3JO~zN=V>%HSyCiNSC_a1=Xm*)ySMk;j+h95{ z5`DBI)At+T&$B>B^uVQE4YjunWr(|WttJjELKGuckRbAMJfM>+6Ph9 z{s;c;LVX!`()DR>0H!PMl)FOKhz4iroC4n!;~7rXANH$#a2#xi{iIDO(Mbd+`34=@ zr^Mgzz1|MC4}RI0|36qljm`8Xw`$!7PtLwCw zH95w^@(3v4`th@7(RHEHg_ z?$+pNdoT0GIWz@UwoZ!U*+XasYX_cu=&Pi!P)tGASG*a|n&anS7;)&EqNlXGp8e*G zQ;awRPL$8Dfsd2NDqK&nQ8RB`53*@Ag91C$g%g+(HLr%YblP4T%Pqo`8Zzty)%R_)KKi|&j^Q25#@G~16 zaiJcXQ|?}cZaQ?*-EE5BvjMo=3!PVqUBoJ<^HAMkC-l4^+epeOJwrL^a@%shpy#V? z^B6oCo*D#hk`oh#a5$%A8_^t-@u0mi&@})@!NUn>7&6?P-^L9aRUmSlWru44Q( zI)O|Qr&jRI(CL4QZtyql8GtH2=YbE+BPTveNPZYLcBkEBOH*F8o!SW6H{M^6PdEaoOHssf*$}Py7A)H(EyPlC0@2 z?_1Js1os^e8#s-2m~y+_nWe~g=M2weq=R?@U67(p5vf0Ar;skJH?4iZHgtHQCaaOo zE)?I^;tM(>Cku4Ah;^^>a5~z+ICRtj(MX4QA-jk(4)T=a4y511zfgFM_f0n`P8RWV zI=|vi>?Y!SZUWzfgtYG{K(Z|bbh!qgC7gR!G>k= zlZDMrIMeu_MpD1@FKsUW7sQP|(@(;o zvK2(<8S{Sz_C|;8L0bpAfLJiQp9Kk-^4e9*Ycj2mR&`}3vE}Dk(@DEo-L)9~A zzZ}I&Tu#d4`#M~ejI*@GM{{DHc$>V*N5zfS7vY9^>WUk!p)Ob4c13mAKJGzRoQLh^=112IN1pcb;QT?+xu3+9vLiN9 zjOfa@E_*44G`bp|3Z$HyLvupb>u63;js@n#kWxpp;W|a5lQ-YLrB&!ueQu1sC;&BF znah#Kez+$0hCKfC%n*0>0Lum*T-&K)^O$=YLKYwe{^RM}@^1m834P0dVtBsy3(PLw zNp)y<9JA+@G>J!E3-}%C{F?oqImG)oJdF0Q@e_NSenOx7*)wdp_yB&xI;Wbn<%uoF zEprLN0o>-nZ^gY=;WWohi2d?=X2AOFa**uae0wM9ZHm!c4=TQ*K48^Z>lpN(R zQPDg?=l;03{)&qJ;KY*TJ9tKr{0ty^)(?L3LyYPfJTn7vi69F_ ze#qI0ZO;ayoW(|YukiTblsSx+)nW9@^0C{_)cQ5-Y4G~yJNErQy<2unAK!9%nNMaK zOJ|2ScGVKOzSg`y}q>LSmO=Nbuvx;2YWG&o*$!1gc?bclCTk?+qO z+{t6rxSt`xO-Ghfkj{n&bewwiRn{Uc{oU`7b1a>f?#s?$&8*4+x*M_1|1iV@jO@W7 z9ze2=&QBl5sic_4hFvWo`)#-PPGj9^((Pgo&Oz_Sh`I~w*jMcLuy~^IBubo5hb^)p z2v*VgfS>_1X#U_6M+S@2yAv^R#HGc&X2qHuYh;jpW!91$92A_pqB6lWVPZmc9NRjv z!Wd;piZ5NqTGJ|X9c``m+4A%3_pi;aZcHuDEzQrUtfOZQW#jC*6FPprUJy~9CsP^% zNF#F~E!b{5e<*(9_{eZ;ntBzhUhuH!tLg`ykgxI>Mqn@JJ9xf|KgAaqa>9n4ZaR^< zd@=I4)BF+VpYGP2f4W`s9t|>Rv=h+Y0GGV6U~ia&D6wFQnBWd$I168zFn!^H`Tv$K zE=g#gzjy98Y|W17{06CE%(Uy}~AMS;>> zc5AtG9uE)8@L(TZeQ%PQsI4iieUP_RaDRXzPAC9S{ zCm9Ru5e1ICA~*n?KnZ{_MMIhWE)Jn|N~EpYzKAIr82~UZ-N0h8-}4CdeI*!nE#OR` z(@Tb9M3~7~(HYYdnLE(6;LuWCWZ~xu4t4+vd-o-;zJWlv>{zV{5lB zvc=TK6xV4~O*9o2=Iq|oY`@7h)E?z>?$v4btAN)z(@eRq*+WS_q`fNIyhBk~fx1U= zcI7xeLs3sY3&8I5-pVW{iqNG$n>{_%Dw@yPPJ$>MV#q>sN>Q;@ z>N{uYNm<}1IvHgb?+OV4DW3Rv<#l1f^5o&8(b@NdbVu02)9vQHo;5Y~wbQeqeBlgm z^z)qP4p{)MN$xQ^dfEXep!JTnBe}6}$9^&0vqN+r_|Nj?KVuf@_ax^#QRf$^LuWQZ zmji8x%kk$(@yGO_dv+aidvGGE#oT%QtQj*G^zSvsr9nZlEtt$^}@V1!vRVDSA@|nDXozXc;sWf%YC{(>o%C-)D-c=WO}ZS9zBAmhOpx{68tm#2|a`tzO%QjYR>4$jc&+4 z6zm%wl2DzOn~@{x4XMxFYL5z;KXt?844+^o&4R=vy!!C64}B&oA^n-Ben4mHV+mjV z=}+H??%Aia&t~JkdAM&c?t{!2x^Escef|62i|*z>X1$Jks?f)~&__sL?elr~K1&-` zgF$b+cTUIr%1J)eg_BDwDl@Geha2nkSF_No!?Qwr{?g}vL)NDV(GXtK@N%Du7qmD& z!;OY%_K)rMk45*t{&nC#fB!q~y9W2IQtp#=KCC~B;hN6Qf6ktrjU&&^QU~F`2ze;i z%J;!jrl!sYEMlR{j(BXE&i-hY9_X5cL;Y=)EEe~70PfFmKRkW3M(6;Sp-1r;I_!0I zS^kA3)2d4hC6yHoqWhN~{T;EJuI}BKvTwHjW4RBsP7eSE7#v^#O26YDqPvt%_GUeP zJAvPjwS!+s1`~TiMAR5iZ(ZkkmD#3iEo#@{_77Ohz<=28^XH}2s7F4?}64}AEu7l08dv^XkQJu$d@dv8Z)cjJ+YirV^m(Y^ZN#(*dQ&Hy(* zt{p-frrLBqHdqLMZX16L5Zt_c-(Vt6P?OO#nq#t)YI>Rq-NyNZ*QZ5R#*~IcPbiAX z4407|EKN>IG3|ZJ+*}z~9bRlIu*_eXmChn)pW+PQ`!Mk39&U~=?bwhHIwr&e!KCP@ z;~CrM&C0V_a{`KNCDGBA9nEEv>vBZ*@}``|@eNDjR?QLrz;xE-X@9_&%m9s#p&!r^ z)o14@M_>~#Kzv21H)cve`ODJ7wJcU@?9 zsAYO8P*i-)#J{)=NBp#bO~1j8iE5V8*&peiX0-b=^aTu$&g&<2l!7Yym}dLRyc|1| z9=e^)lkQkkYG+;2&G&%j3{PdJ{SF+idPMk3Tl1IuEz8@Asgue6Fz_FKUlQ)a%I5P^ zJ+PmiodYh~TaaTJSDjJiWz8v=m8Z)`y^L?ZVdn?_^X8kpZY}E4+9kZ;;Ka6EsNWvo z!2jqg+p)R4Th~>3&A!T|@4UmtU3%@cOVYpIK{eo3fS1QnkMvSrM+Y8RP`2Jzn2KEHDb;_|{nrUHY%SVksV9{wI;0!a@C0vk9hbyPXrCP1}%(_vwIUYcs$PWAf7S|4-4k}FjO+u zSl3RtYNZy^@g+;*=FZi?I>}*?B+$Zw@yHD-I)h5vIftd8KFt`OR%bF<$2Q?6f#+CG#QO|skA!&EVKBATTa`btiLJL&w`$wbqov&;#H}D7km*!ko(ThIN{#!p)u5rXz4CY%&i*qwXNxVDGU*O znMUb(DC1y1xDwn~S!p%{aTE8#>Zgo-C)m zGI`!|Y9gZ~x>(QpxxystSg!&u_gP{VI<*J&%x3EyKODOH>Kk8K6?=q~Ev`#w^ev*r zt5}=lrzDFV>k%=b5m0VJ_cslLG!-jz;Jgb!QPHuUl>0fVmPJnc5t`N_z<1HM#F?sZ zp7gf+#K!>>`$ooq$(Qd4u>0jT>v#bRSQEYSstIddVW$)5 zxFss=JF({>nAY&9c&m$f1mX#N52P#X1?t8}!rNETW#JJR6*fH-mLGxV%w-$VN{oEk zwlj^*rM-Rpv~7OyHfW_2nlM*Rf>xyaBA!T+dsOXLCsS-RCAd!}+Gx5k`&6YI(T+R? zq-XoV!XZy0o~@#^h3Bk<$dB(K8-Ql2*&bW8SW&naO0vdnnLpp0k@L^2zbH!gKX)ry z_aj-)`U1YJb3Z9_zaecJ&wj;NE1LIzxG>@?Mx^OZc>R=m-*W*Z*W1a3k6Mpt$Fgbc_b|Kxe(+IbRS|b4H>ie0YI4ke zu;+On$#z*yHn=l!=Je^1H=H<`#bC_<2b#!s*yG@-kU7fwJkVa`@i<71!TB%hN!_;<;q8+UGvD#7D*eI>Ub4E6z1%;ET z@M&K)lpoEmYVGEHEy-9G4}D%W(uURSpbm63XGO)9b*{f5YgQQp*{F?GSD$R#ipuiC zcv39&Bg_vjCCT0cMQ}m z+F9MnbI4BHhggvh=`2B7tu{ylY=%~=9nWokahJV*mXok7m? zYh~O9wH!!=Bo1dmGXL2ns{DsTm7ixo{Acm1RV;G(a_L>-KTZ%}K=S#T*TN4c^B)a1 zL+eIHgE^Oq6M&Zg$m65(9}OH)0`3!qD=cYruc58qR+-fQbJ%%no)H@tUN1}?C(jrxgbtXb++WB-?-JvraP`6W4*LfBL;mE+7WFHc2X^RaH?!l^e;0bf^ zC3SQ-jvV>Nw;`60_g;^;#J_IlZOQ&2(y4(b*Qm+6qP;$bhumUA+#29ODcMK%B=?cUfNHWQY7{RS>1Shm%ANsn$M%+qdfBA- z|F69>;JcS;FIRRwINN)i_YWbW%k_`zgJXB`6J^DY=@Vo>s%{EryR=t4igJ7|)2=!l z;ItUK@vksH(&OO5m}HB;Outh&|4&x@8S>cP#Brd!z{_AUBnN;Fl3d5emapiuW;cb~N*Xtp9Gj@wHP8l?IZ`rrb z_z<=Iy!evR&-lx=PAiJ?*2ix9BX#TQm>p(=&V+XA_y54ZnFvcKl5&4&&dJB|`jamf zVOV+?hw_wpJOEOMR1CDeG9}s+pVH73&x%4&Q#Y6|(k|K=I^@ProG13n=)q@qyz zeotgkaBYbPYm6p0_$i;tomtYOk?11%&g8Z!R!(QO!tXaq>#~#MN*L6Gl>}Z13-%p2 zij+DUE+U=W&o1Iwc|oK*#~Km!1|=Lw3RT@J@!DOz7k{j1iT3miPMZI(M~)qPRN4v0 z`s4t2pQfRl`Y4P?RbeLCvhBkU*c7= zEIX?m?~a$mc2=^!)^c3MhHDP3p_Wot`^WuS$og?6T8N;~wO zvUR2%XenQT`1<`n=iIA%C0*GWzTf-3zu!l&t>v6&JJ0z)&sp#7thomMCFaqegs%J~ zB2bvt%8X{xsfi6|)15rXhR>+89*&eMkHvN=uxSx&=#CcR z@i=(Ef^+fU$ZyQ%Wd-$()+(4!1^f%=C6WkZUOPl<8Ee&|&e9OCMCe6pF2M9T^a`7Z zGG@ClWH!o>zkHp3Qi^0)rpN$~nL`FGPc&xU%RR=J<>o*tDe@_rFXT6{Bd_K=4V0%8 z@x`GS#dyjZQJ-oqenom0buovd*44Q(ufI+RqAoGb26$`hQCLIawZ+(zk435K zkt5ZI4$<1w?WOWxSz_t!lwXVWsVA`xgcAY5D^vu7fmNz{xN*=*l{)?UKcLZ!WGI-% z872Qw<#-%&V2&nK4(|5>Q8I+92UDVn55Dvgkmu{5MSH@6R^5U|sR4>H`m8pX?s0Xb z3Op6IIt#k|w%lOK>fLpL5o&;Xj((6DOx+hUS*F_IxM6!B;|LHJ{zXXHn?_^P9}e}sJ*>yEVksNEUJ{whEGzyr8z@;kH?*}YjL3aZY3G}3vo zo%bjGdW#TG{`OJbT1&8yD}z>B1bxaw$p0|Q7i?4VK*~GFIwxo2Gk9##;*qT6h1HYWlVhuMhUuuB1&7-#Y|V-$7jw(^9&XNE z%N+7g_H6dhS-E1mL$n??7VEB0Dr+hsE3Xs@LRVjlc@))FV3iRo^}qiytvo(?tfM7n zb2M6yLoRGZ;VZ`&%VT87SA>;$tWeRqMQ75l4+mzoXxt^_I}4h89W0cpmX9m@WJBq< z>YYD`OYkfW$uHKHpTtNXBWZ1QnJlWVFn4lGidANImrFAga8VbdeK`0>Z9l3+Axse^9 zy*aRgPLl&I>MA;SqnX!qi|J}zMJH|LU0DSPEWkf1qL5lOFd={(S*3A1^rE$d0PnzT zRe;J*#DrCVN?^hYu?TlA(H9q~DmRWu3Uh334DC`ainHqwb5LH4n-ru~HPWGsfK&v^8cs_Qnj|uI!CrrpWuz z>8!v<>=`K?cc@V`rfrtVNjcf9%1+M%aP8Uu!aqOHdgQmSJHrx>T`zw`k9YsgZ{DUc zirD}0&(b1{&2TCQvwRp4K|1!&@|SPC%l3rp#wvD~ySiRRLW8rr`1NCHDb2E^W?L39 zT#-duEaK-BtKGE6=Ra4}CnslQ?9SV=yZc+rE`Q;^)!CW#?CtdU_?2n7+wbf8QdP-~ zt8-mj>OgPx>}K|~w2Ve1c~v>!jD0;A@e8svcu31+G5CWI*cGQoqFe82nHWqhIFQrh zDRZu_WA{B9{q5t98{*1h)BUxslJeBdu1&Q~OQnR1nhxzwsZ6DN4hv>)WxtnFpkE>o zpJuKw;K3FV+W%efx3R5T-SQi&-&=B!Jt*&Se(h^cHZJV4Z*~**1*K4H*}$JJDled; zc`+C!L9_#LHy=sLeJPn$e7f*Qg{h|=aje+YP`0!th1EI#nB0-OYRAPyN5a14kJz)) zuh46;_7a7o)bykVI=8fr(YEnC+WSwB>`Ro`jvtKNaKH8V8i%do@IZt7Q2Q6!RyfzJ zb*_lJ^uYH%>aMKc)wR7WJ%6Ba$hT$pzV70>6^Y4NYpD%qZ^2!Li?Bb~#PHwy9}>1YAjgZ+Jz%K`=YMerljoaw;VX|r|y%TomX|S z>~-TC4zFG-ba&3K!ni*jh=)0QaoHxdY5~TbZc7faA$E7}_dPud#ZRoNOvm22w${u0 z+6Ts8JpMV~_x|2pS+})yXB|7f_m1A}XLmtYH_i_{j@2)s6_Ws5<&r3g7^L0M`a@?g?lz#X0 zi94&meMOx7I**s&NzZLu%+ELSvA2`ElCr<8AY_AEHT(^;0#c!RM_5^9VPR$8CFLvE znHMfvv1d(gdw$(AmcDf5(hcb7tV_Kg?AX`)YH}+p`*(a=GqAgCck%X|j>a!sQL`>3 z-d5rezD*m-Xum)9lBs*Xesb@sGbv|k?xo{i((V~@UhLn*uOF%B0@TyZ&CFww{|zb2 z^)W0TXA_ENeYTvUD&+U85R+Y4>OwDm>aN(4&m_V{(K)|S?miq@pIb^XIb1MAt# zRaWn#zNL~$2<(mDV!TwIXdd(%xX-t>lTaZ%Aq5>npgkcJmqw=-UM7h=|sbhGFi+zaU}BS9Ty zj|EVgj#KPnQH7b??QYAC4GEdcN{WlqZ0zfm^0L-qdx~X2Re~*kc_n-FM=N(=LY!5}ighQP1IFQ# z0yFKZ<2&2kgz4*SnxEq4=cBB)d_KjBPDjf`x^q%E zzl(kUeGiwo(=uxOi}tXdyvD4yMKzU0-`TchmA`)3vh|lZp8tv6esEn;aW-qstI1xr za`D=mCSM)jdrx7}4SgHIkFer7;8TR0D%sgobJ4Mh$xC)U*|&M$u3gggzMkLjJ^Pd9 zZ`8{F!ZF!YjXkZMh=|BQu#(1)lr>P+-3D2UgTIbiJxusI?0hV ziJwmEr1b|S&#XL#|5iRzauxpj&u5N?}N_F4yvD!bu^ zvKw!N9zN5T*)8laqBOkNjR2m9A0JyO{|j6B<&u)Gsb@9!;tbcV%!zU)iu3GN`KPR! zMVH|%=3lR6cd=K9*Lu1|1Lmf!JUdQYYQOA6)``oqE<65>6UVYIJ)U*^vh2%_Lq4-< z3(i8_$IgK(x1c(!5CiTOafyZH9Ii-A&$)rMKW(K~>`Y<0wa7MER`yVOKE2|4`b?`K z|34G%t5#GGI#E{VyQuHmueeqeRc-G3%5zOCYQK!bP2Fj$@OwB75Gt8=q8;vJ{|i#^ z*(A+UB+1TGj*}-Hr&t{;UU~ZT%B!#bu(%j?dQs;tCic7{is#v))1qUdQNEY0N|fJW z)_D14)R9(?7VliRv#1}H@Sj$X-*3fjU6ALZBT?H}o&0he*`A-C+E14z@f*}fgus&Y&7o%C`irb_=P*UofTz|mN-&k*Q{(4F{(EbxjHi;}HjD#?V zVVqyu;?!hpI7RN@xRZ6&?)RN5DOuRHv#=v(ZN-MlcYflF&dI%nUF(z|v;LyB$F^>% zXE>oMp=)EBd<9!^V;|q94}am$p#U$;gXnkCh(~PD12%38ek_4||He4|!w5c>-vqEy ze*F>d3Z;Au`wCMXHiB{dP?{~WGphwODb9Yp#QqJsEA;Edix2J}w6}F^T%2r{?ue`S zq(c6*BJQhf&wW)_%0IuFNwpLr;h*YVp?P@HKpiqjG6HtyBYmXB1^ysirvq~~{Q4l| zO9-Gj*(sLAHWw(O+7xw*} z`^vW2PfTBy9ub(4YR*|mcW2)lTM--GAw5E;glF2fZUxQtvlp8lG)-V^$j>P+rtG_Q zZ|AbosEMAPz3Ch1Y-J}XegkEIE7bQo_fAZ39^Lr;FuPUZfp5(C>E5+#7b_ncl3yJf zLi=<2ybMmDq$*`NmyIY$e3Zhif*a|HSy$6r9Jleb2RMqzoYL;-c(tqRRb-$4;^1f0 zP>Ruc64Mj-Qg@}olV(c-bupev{%KKLX_U>n zINr*L=jknGrxb5H!yXenqrrF~^4b*CgTioSr8`q+$!V^yuW4(HE=((5apjdR9I?B2 zOLSFq?G7Z3kQd#7*9A(1*X8yLs(hOG+ z>WH@0>TP{*k5+S=18JdJclMLnTGMv}bzxabg?S>(dEUQvcVc6CK+vSF=1hkTn~>f= z&6!K4D5XA+WYjXEevS+0v^j-ua0=VjsJaG7JX0xX(0R3wOn-u3(74b^$7gto=W2F2 zGnYg!&l!a4{i-&qD(aw#&3=TkvUC?kEX;Rlg_CjFaP%EYg%v5%?ux{jmv|*9I*Q{O z>cUQUU@tc8MRjwMF^%lvH|!5fbVhyv-`@^7$md~rv=BKxKE!ueyEpxn$4Z*5t9GYh z9tITht75mit2U&&*c+Dm%0+AAGZ)G?vdej$*+26-f1opB=)qd0)M;s(yP_GDaD8p% zqBRTcROun&GkYFVex&5*@K-HChfQ$I8~T1{LKfk1?#ggArk`RwuMU{cz}G zs0&Zd%1Jioh$%vh6{KUXZ?1i`y6z?R>^e*UJ;_?+9ax zSExi=u53xXYKcGi0e)AXbGy$8zU#pE5!8o|P<{T7k5RyR zdi9~+(ddbu=~V;K{`QNbsXqIXycd7#APSbB=`PZb*kkaMh5Qb?G#>TPWebvRI95*w zXfa1~`KF?wE$6yB9^R%CEfmq!b6vR6ffQO=Oqd9H)5V00x5XX%Gq3;|9=~q zMJYYECkln^T^t<#|EL!v*?(15Nqoi|}k z{CCZ5dD|^(zf)29 zUCmGaK%>K4%rH>iqpk#D7)y_|pti!y5&MO6(&4D6b5yS>%C}TU%b$9gxV9E z3s>jvY;cuaF~Ba7Q#S9!Ft@H|L#C~FABg{|!zFz3$FuLSWf(1BuF!^OSYt}$&!rco zE%C2jj#UNlY{ai8q+$A=)^*J}sf}#vgXTX=rK<~Pek_$z8JZ(FA#f5GvIgQeOC5b{ z-O<15132UJ>OY4LcGTey!-8oGax@FuoYmB!toZ9-ySdW^Ti(2Jp*}96l(&hQ$MX`J-+KXh$0quXn zYa^Ymt-fUc!G&YqL)8bYlO295wH&)vp5~KBH_GFLol9mP#2p@=qJOXFbHOwS!9(2u zi7^&2(!d}jQ9`#*sTSAQ6bKl=k_gQ_##oR_xKc5z5R(&Q$+u$6g2@jYD&C!zwm9AE z+}s~!Szq1hEG=7{mJpLMTsQKC_{$kfUmTa-5uef;XUp!6iK=c`8k?CUr6eXLm6|t1 zuaA-5Of0u0B$j2ePnX2UmnSbfcIeD%$HKVy_!3LX@|#%ME%J22VhmbV*pD`KEw}yH zzQD{Zj-or478Nf$lgjZxGNsJ^n0+Lfa8n>!AXgj}4G|u)yQ}kswhnqkL!yLxouL~> zVT%~)L^IV4=S zo?4U{1AVRxmH6LFt1tJzE!h?>EU_dnU%vkErZ3#Qtv0FXPH3>Z7-#ShCzs5=fVuTTo$RaV*KVdDWWtM;X?*DlJJF zrbm{DYYr`TfGq4# zIQtT?o1SfgOb=IVI8FT8NAw!@gwrYi>(I!tLT8Qip}b|!dxJCatPXXM3-G&y#Gdy8 zzyk>&n(FKCS<|s_ z2{_pi%!oRESi8&w1U9}N}Kt0t=SoMkj*AE zcZBMhl}r?%WU!)m$2_GY6o#txc4W}1P$|ur_wOGX$gEoWt-ivgIV?A8QGH9>nvNOq zs5Lfva;2kTcwphsqdv@_W5p=;Xv~7jB^x*U;&xqp6skeC{@IVrKa!5nxoWFmPB^uK zi2+QqeucqBc2p!5Q+Jrr{|N-hFH3A_s;*AKjrFCq*4@eRDf?|Z>pLzks;;)(w6UeA zcTxB1xGUc~9#@LVpIveLUGi@?HZHO_VitM!vchF0jco(*&u$-C?tpVrzuY@pXZ`_# za~a)@V@t;DY_&~vdK)z(cyruEu1F&-o@(<&X5=mW;tV`{%jz7Cb;Ncwrj0$mpS|@~ z$<;d(h8}40c+NERWKSO4S6%;uP0g3JH8_4OHEpw0*O*HxdnU#P_c`8bZ_KQ;U$p;^ zj=lHyeXgkD3IFFaUVHc8cMh(We`P1xHo$1VK)mL+^yb0moyqz+8TJd=UwwYpTYY_R zVN!B^gfRzIJ%!a_4B5=?_vwD~ea9FWZ8|Bt9o2wd| ztzvA|1^F?!AjG;3cT!p1)ja6htnLET#p<>@A7Q}8PNXLmr`VE{ZE5APWvf_Rbo_$& zSWE1}C5c5v$;m6rVx4aH9X6}IuG)Icb#U!k-`)93V;8XnnHd!ex7=0ISX$Ef)beac zMqH^qC+;Ccyx7bg*@?+NYQX0a|=lxvk%Fwh3mN?T&AeOvYdYi`1cwDjaG z+w#0cOB4CW%P-1;jCshy&_=nlGVUO}9XDXrB7f<|eHlK}l%=UY%sX(=lTq8S%4YQpM#U!u#MUa)v^O!>;>1(v9+%!StY#8@;| zbX-Da(c+kj;^YNU7Ita6lz+F+vLZfy?NwVAR%8?`lD`*KxhAJcs#~)nzM`VEv81$- zwPrYSGGgPBlT&ij<=<7>7BI6pyL@Fve166C)+Grmm)r6(EO%Ghk`nB@mdECopRuMd zSRNObiH{dZ8_P?QV=d;K6^T_f%W_Gg)L1jM8)kx|@u|z5xzr^eTF7=BFiVS)_DvjI zxMwhZ3%*{Ixv?XdgG4 zz=DJ5G5JV&G9_vjv{OE9?Kj)1vG7*LQY|snY&3O2O>tCwT+F()3ku@QC3b0vl$mEP zv{-g7SQx!*g>z|#B*mnq+7>K!+S8?u-j(lWF78ZPVZC&$#at^*v9gVebE`|DtB0-I z^9rR5X_>{Dy=}RxXF=Y|m9fhuvzM``g$q*h(&M^2R>xQVlT2px!h#?Tc1P(j;5a(H)13t|o6mPj$w&Y^P-z)GEr|ZrfiST~d?1c;mM8!o?|` z7)gFFsUT)$0&ccFS)a$(tP)MV($CqSv6}-ERCJGEL7AC11zrKg5NCi>)LCLOEx@`= zX3K-a=Sz<*^?bf5ca7bWn^&5jnsd0uwlF1|W$mt5wlrf!MuOR5PDoguoLslHv1R6e zJLLPFtOhTI?hep?Nzl$qwk2m3 zWHC3pO)2zT!8NSLDc|p4YYRXdaf>~v%7Ji^6_b^`m8~g|pW~(2k4YZ9gJ|5YPtE3< zJ}_5N52f{p58URePv4KiN`i?oGv?S&c&=MzNd#?HWe3QC85#EV-Wa`P)%2N6`KK%*()$^ITudMgQLIHlP3a z=fciU&8}gWgATF)>H&PXUd=XDHg>qX%vBkK=WdvJTUvVCoA?^fWG35WP}x+vFcs=l zF7pdoGm80*yX(N*Ql(tbmncP>?C9$n}aUjr^n~X z9^fK8PZCg3l0eYSW!IRO&>RP~oiptN_c`gk^Q+B&r%7hI6OLr$-$zqUoXpH;&%I%O zq2fGRfy-5o`cG|(mj(2rAqQ>^HoMPVZ+`B4f}sB$(7z1y zv0i1%Ns?Su9QM*Iwv-Rtv7Up2WlV~CgI&SSr}bA=*{0;Lg6Cn>X%KaybCObARX}>W zRWU|_ds)f`4|=4SH`s&hTzXYif7-?JH0nGuTMs@}Vy{b*l(v}j0f44F<+hXz9qgAD zz<>72C26jz{!~Asb;84_(6w_clEp>1TQJS@{y8WZn4( zb|J-=v=c1DkF=-#@NUV^rB@%BF3HAVilj0+U8>k;`hEY%p z{1;>Df?I{f>J-_^2yw6+Lon6%c0doplWzb|&_@U(F=kD3pEJMm@vNni0;#D*!5h&> z(FcEj_T0?N7FNMQhna%vQy*k$=!EA#o~^J{hSjG&_ z+wz*5?zlGL^H0R*Yq2MteL^2ApMS{sp2lRv9^N4NB%jrK+na2d3mj68;u&}9YW5q_ z+G@Sw9J_;?LG&e)X#?`1Sh9Z}Y|6`8*@r6CNkNok3Y2rhMx3`LLnXOEp~&QT$gar9 zAfprcT6Vr1PxPd?nU6x{G`}nKAvtr9jNu~MSBU7$M^c!jo8HR%5s506%a9VvW7Q>9OEOrjyR7)&P+D?u zS+t7-#~*1WD2H8}f$O@fUvnp?4IM1z^9dwxGq)@H0hOgOCRRCf*iD@3YbsHc3o6SX z1E0&m#tO(V%_&0$g|up419{IMHIf%L<7M^onvWaH%k3K?ulcHQd12pxZo%@NzdTf4 z==Un@a39Y#^3tMR&I^qq5D_rUkb_%iDGMmx20$?@KZGa^Wcu@|p_v;cJ`#*(*SwasKie^AqRORRI+HzY5*Cj6w$U z6BXyvgJi(>IvGHr)%>n119*hVaK5#|{H~Be!j7amc2cqdF|cxjCq-NNDFuFLAloug ze{((lFE8*FX5-$Bvbk$VV_WFd@ zshk{p{*GJMcEq<0uCA zjJtR;Bkdyq41tb~<}T^bQ8ioNzVVt)&#|OET}c&{Uhm2^`yEa;+HtyfbH}k$YjVps zudTT0;Of##*1`VcXsgSlWNPJ9H};-lt^*gNV>@|H%y=S}Bs(+8S8m*7emsu7&{4SZ zI>+Z-Esxx^tO)$gkf)Aa2Yb`0I7~C7@P!m)Bz%7Z?QF2}V5KF|ItJ2s@Gpf6?}KS z>8rSN^EUb}55aNx_1C|8lFbK4hkisg80PsNWM1)ksx9Wa*YU70 zUcT9M5gr5aQ_ed%D;bZyyNHd;H*y{ore5|ukcRj#WbFB$y~xhVCm9y7n5oXxj`J12 zr|(K7_B4Im{<9Z_Y!%p3{5<>Kvyv4@GBZu_tV+sAt1yGsi_s$_PBzxwKBLcCmT&vOKFZ=llyf zP8(|J`BA2V43%f8kFCd`JMMh5&HRp4Pa9=0l;`U_>rmto^HbLIOKhAD@n?Srf5Zmy z_+fFkK4TyKAt3vwLW zbEl{O`Mat5i8rozL4MC>tGwcJwuxCN#Wk4&dtV6yO`jPxR?fH-w>3=w%g(<*Fcdq+0-;rTcWeG$l1&X(qw}L)0z^ zVM}_lu`ne6G>AKtHG=lP>cr4g#_XBe#+i89-h7D9LImP=crQX2kY5avi>wkkGO%}a z@@Zz$$(Kl;5E?Oz(y};6szj1}x zZmp0%kspy~Ds47qd*O;VP9T~E>>mM(jcB`qu$bK#$|)F(uiI+1gOC=0M?@xown4=Xydg*swjes1W>SD04jk?=a$qJT>5Rb78QN8<@f|m{o^L z5RSp$H*6A}@6U_DMn*8r8es6hhDl=x!Iv6Iq}jy~gN>Y`JP3o?m&3RRgYX_Bwx1b; z4O-}kAqKP6p>oZK!DU8*YFMSTS7Zz}vejh<7|d=DmCO)?M~uYL<;2LJqqA@Wwvx00 zd*f7ae-Y`pNP>0#Mp%nIW}$g6)6oddck!U|0L375o%xbRU-O?h+K;ctR2^X!NNbBV zngJA*&l%B6qus^EIc%z)v_bBw@i0QmnJkT+4i_@90zV%{>KR8$QGcj$j|_^k)lh~+ zy2U0G3-!td($IYx7ajV^ejQnzZUI|{=bd_$m_fezeT`8V$j$s*&rauS)K_TO7%{&L z;%byvZq>0hLNobRjkV^3+`~ijNWF&#=Z`E$$0Z20W)5rQ!?3FS!tzDEj>dW7(;EAE zz-gvMCr>aY!OnAFlFoUI@eXi7!MrvmyJPR`1=YMeFuMZg}7S6JSpaS6d5jr?cD9=&BF=0^ek^Ma2i zP?(+P!X8cc2zgLI0%Ppa*y{QUUn`~YE{(@A0Z0JGCk@MOm|@h$_Jle7SrDNak6Jf) zt>lY>QV`hCoZfj(R)=MDXI4s3ro#mxVXjq2jMyQ@&$n2%G$)ybQQ@fEgQ%rp8^jq*^05#Ps(c_J>u&}3Vft;kZ86^5+I zsLI`{j_BmC3-UTRp_#NWdODjKpovPhE*wc_O^WFeOZVZ62_osVqeh1A9hB3zhc|4Mt4&3eH9#L335A-kLoLBQQRqC0vy*v#rA9 z7b(E-$a?lnSQ{vH0_AD(P*jlbJ*NT;JA#F%U_Mw&RqL3sCMBv|dGwH4Me3yWrpR@$ zRwe43e*JZ|4jaW%ROC8%CZj6aX^jy(2}Tk5;1XB0&RLC-v4^^uS}^QjIV4frxuK_*XT*>WDm#KR8^<|#vb7GG=zOD0xcb8 z7_4EdWW#Y569}Zf5zev&5qMn~)~dQh!rB>OsmM?}qp{c8+ZbzAUfMeN7ddr3((cg6 z>DoYNw{WZtkTt+sbTZg2EMH^a*Rj#X=?lQx05>D7y-lz)MA}RBEOoj?z+2UGgYlLP z2oAw`yGJAanekTDD+1nfw)4SlnI^~o2yazgjqnzauBRq6#M=>#pXPfCcG8)3Ri~TJ z-NK1rj(z}h<+tXbouTp^<6~aQ(H(+Z6qz-LT zqd7hu!!X>Qc{_xy&Q}S$m7NC0S#p??hI4&-_C`1^e9cmNf`9PgGM)*H- zceo6iAJQ|5>9)hPP~CriZo7^!VuF0{Ty$^)gNO{F&U*v^Kcb^V+rMUh8bV5whtr`* z5lZKh*I&O(M+R|Y=BW@Ww6{%dcTR^QM+lv}jvhLoBZD|1-xNkBlnzCc5IWyRRB6@` zqOEB1L!p$!{HwC(D<&|x;xMHx#vQ9-0`^swd)3>4Iav93ubz7AB+_;zep1~C@x>fM zFL*xItD_zqUcRJG(rCQIc!GF^#upaCM4OwHAJuWt0?fHk>Kbj1dB$_Jp}K_6(;m}t zGYl`d*jemWP}I`+UPx>S6(G`l?UOn&=7=rU5Mj`snmk6aCCtu&xm)>9I+pt2;-8Dh z9PuSoRik;_AM1FA$Csanau)fQ@bh`%OQ@oT^SSbydj5t1CNQI`da-6-!}t=ab@1G7 zuby9UcsU%RtjO6(*Z)y$3FU7*$NRKSj`?CsONd}Wm@#i`36;lazITsK8pF_XGDHNe z4FYi`w7s{TlmAUemIBMwAyo8zMU5+=;xfn4Lk&7QJgj^#l#nKm8dpNaVcCcPzta(- z!1CpJ=pe3y(%As`|Cx>q1(su>WONw7jhR$A5eI3)f!9(#`gh zlT-5hZ=XE*_BFp?x#ufR{FX_-J8|6^`4ahE_!7^dI1h?H{7IK4?7*eRhvMi$67C#H zO2z%(;cRiYA#?3~c_;oqd_zt3P445@5R+gDN^i0Me84sfWK}d)9U13y~~=YYZ23xVFta zVK&We5}gb-+^R?i{pgfM7B zMY52To7LA)Tj|`B-PF~$x~-wO)AKZYWiB)6WVB;UwHh)O;EpSPOoCr^g);>qCpc0g zTaR54)4I7k@VJuFs$=}Fx$8DHwnj%XCrc?^7{A`HJjkSG{ZeV^DY}Jj!&U1gX>J2+ zZJY>?!#G8(Lu9FEL*{Dd$9B5q4<4w!?^XByNRoZA>eQ)n_KIBl+H2B@xg^o#u+qtT z^akvUpi4o-p`93dgi00;ibQVaEd!$i-9xFn&UCe0*_ao{y5v8`tXUrushzJFes;Rp zS#;429jg|yR`=^G*}Zc$veq{V=ksZ=pjbVn(zYoV zUfp+nQ|on+WW0Rng-QP#_g-96S$}a~-HSK(uKns(>3egDsq@7Y%#dJBgK6ht=Qs$xOWVVJT|oFK*OG1YhB%yr&f2Ls&BhIg1B$&f7(CRfAve#3x__x5iQ@d?(RNT zGlz^k?wa34d|FIvaxv=Zk1Q;~shg1Vg2I$?7(~9${9a(MUA!(@y%;zfV&%K+zAJx< zjlv-zONm+UfiK0Z975>On1wakeA)-D7bVxOL`;m!tiiEMz7~>U%f4Q)nQNIO;;8)I ziO?V>-*2l_cJPNwD!=o><-dhY0$)f@I%8526w7e=zc?xrQ9>=G&9p$ee$O1@1!CJf za~Mz+ODC5Ny_Ieuj1b@EwW4vHo7pp;HH`w^%v%>=Ql0E}+)}#X0^%Mi!OyNlwDcU| zPfniC^mD{PdD;A}q4@}%d4VT~#KQTdm$Z;L^OgCe)x}2nj`^k2`>+-JFmWOyLX4c> zRg7aL?v9wJ=Y<8$na3}{Q3QTc-=o-B%8{S%dNhii^9yenLuXFRC%aKFm0!64@pXQl zg2<1VO@o*^uh=Xsw#v86Cvs?zomoGxxFXJytwo&W{c`>|JHPl5;_b|f^C&T2;5|Px zuTBR36FL6QuZd9{mQT;4hEYJC**vf4x-+Oa?-@;JPm{Cr**(tOTqh2Y<~YwUaq7;S zq6|HOASc;j-AYC1Xljnr{0_?G71@_QT z?8m-&6NadCqhCHotdt+2Ei^h$Xor&u4&=*+_=XNnH)ygH`^gk0I2~H4lb`QjMG}Fl zMq_Mv_JLl=$5^5-@4Dne$G)#o#RTbtb$M?2YV0cu5?e>pO6O|uco>{$r)#5;&Q)M^ ziNR$~wL3`oOI$5et&1DGoY~9Vtv0skP1`>CA&nPH=^JfwuW(dvT(iVcUzc4}(0 zwIRBH6ETx)WIeqa87Ehw(p->@PtQ+iot z$jz$rL5eMyqfj_vR8~MIp{;HjM&kG;o+7CC#zPz1n<^`ky7nX;^K?GsbnIWV(kl;Z zeCvBpcT}w1T%Nn;)Ul4uce>YIQo5QwAIw{`quAF9w{#{-X}A#=7Z1AdD6W9>KbDvi z_qch}#+Bt6ozZf;#zso+Fc&Sm>5&%K=N;FU6n-4UK-;Sz<~?atOt&Q1@Pl3kr@@be zo<`StS<0C5B1q3kY*XuKKeMs3;VGBPF^0W4GMsY3aVjvG(H9RqTTxlLX^bbQ(;o3~$8Q z9x;-6gwEQlXDapbM!+eYBGc&f1mVQ$tAL(xj!IlAq2OXf)`+X=*F&*(H6{pxE z8r=X;VXHup+?s#QiBmfIY(Y3qu|*my1Duj~s7$#c8qW*FDINEbh&Y8OwrggLj8k%g zDhnNk)#0=eP6ajEZWX6~qcPIKl>DtA!a;Fy4x9?|FDV?S*b$9eC{X>k%2D`-7Axn) zsUXEH1~_$2<7xy`a$GQLogIyEO3$uIk5f7q4S^}-p?c^4tT?4}9cDJfDJE&E(&Efq zIHfs{u(-b8D>lay-Xh?XzLTCZfGKu^P7ouUlHEZj(cu(wvKVaMLLQ~&Ynm?*9$_~? zSl&eCPX^%-Wg9_x5*;u^_NVn%@tkU1egqQT^zAXPr?2DhP534O1 z+IL~E$bFYw=bsGvEOx{jrWCS0tgXeKZe+nkOYDMY3+w9SGG0>iD`gCYGL$GIF}U{} z@6=K|-MyqQho>M>uQ$7MP;BPt`@9&N!Y+5ia=4|M$ldw6DEH3M_l?V$W1J}Wu|iMU z6N#R=APwbiP{{p}lf&N2<=Ff8Yd#jl-9uT)%h^)_OwxVFpM*!>OCjSqln>61g!2BN z8`Pkmjuvhkt{M!%msrHEvw$m1PS=uZY%B-s7VV1NT2`u>6$AZ{n% z3(@*P5WeW_0DPfxz!wzz_YiyuF9&=fa!&-~OL#fp3(EaA1YZow6{Mk@KNMfoy@1ey zC1>Nt8$1N>@2|>lT=h0hNUO@<8>yQsQiTc36R|o@E07aOI2mI=$4YyWBjiN^Ar0n+?h}%RXGcX)iNb1x0ar&Ja}b34MV zLb58hNTbT+a&6eUh!oW9Gr=Oe?4Z^N`^;LF{Rz+ujiQmSGTuK23)9lgrnSg_D@-r|7eK&@m zoKY&6kzWZQ`uEp0D3VPg&kD3N=fh&0s%Xr7^!-b@g6u3m{$jvK)Iq+bg4WdQY^SKR z{OJ31`bDjz?M((g#w06ylErRh^E>LUN;UVT{f-gvk*RfqvoZM%PAdo?X_%-|7WpaB z4aG;ZLNG8t)yydc;E`^hQK_I`@OgitGZ#LpG>zt@-VuU^<0Fk81B^627lw~2$H?wM{IoVQ!bp`x(7clT6ek@5k~0{3DpW)F`(7YM1}tYh zm-M0FI?pVU-T}gFIoB9e^k$>EqanfA2q9@G8Zf2KKLQx38gTbH`B$6_f#l5hwOX3} zIS#GIlUtR({NmB~dw7*^zCQE4K!uR1cg`afV^F2e z%SYdre zhxX1&chSyPzGsys(>O-mSEifWPr~X5mLQX`;FM(2(UBe%n`AG!!R@}OT29uH)om&& zyzEl>*HTmv8xf0?y|B2g0Xt#Ubx29afNfxhZ*)Ct`^v*V)X~O{pw?}!j+uW*$AXAT z0oiSI$11X5WsQuU(?zS0S+tN;9i+ki-aC959$#~LUPr-3JStOud0Bsce&5W0==e#C zJe|c2ZN8rDrtCe=%G!p$tlS>f5`lLX-ExX2PSH3xXgQK@&&Pvmm4#8g6zo_`cV=tj zrt7>ZBfURAR#och$vIGvIylkNy;*)%Ckb0$8o&Ok4F%4^Cr@Eh>iU{ZU74xnB`*K^ zc(yr$JfU;_Sx6Q1%xRC!tM}DDz!tgXVjZuMs@Gn_Q$woCPo0v=BhcpSC{fCqB|DPlhGod#jmvAivZd?HuGFD!`5qm=<&b=HGdSp6r~ANs_VPB zzOv@xd*AT?x^wGS*Y>imAnuxPB~w0*l{q{-ll)3up3K#|ZC7e#q8ydmURb}nzTlu` z=2tpq(tcl5ZC3M{)*p1XKi>Sznwly-Be6Gw_Qi|+CUj#iMsvZ7l=L)N@-AAdq`yJx zey{(rf!zm&pZAUIk!RXBUe~_y)P@aLZK#(w>V=@~o8I!mL$rPKa8bcQxd)p!v4xX4 zo5t3!zj#B4JLzyiv3=zHHmC#NH!`%luFl%Kr{Tb!p+B_MpXy$H>MwdhCj3wDuiN|9medW<9Wm6t@4-{O);M=zfz&a2Gd=W?i@vTkK-w zOJLB0Vc+bZU|+&Fff5!yzG3AejD9fAu|wh9Lg7w+GL*fth$02}^ZQ_RxM!r8hJVu6 z!kGqe@E4)XgsvJd+6x&G4-GYrfQzg(Tns~aoH-vVlQ4iLQx<;``@A@5B;8ziDHViE zI0tOXmQXoEZ71%E)yDFKpGHFIaFksiE`ttEd~hA^#)`mU?HC!ijih8o_$?ha zkkAOn<+=!Fw6a9Hxq|<9#Pp%^nwjuaS>?54ieWb^ug#_$_8-dYD3e7>Q(i}#5~Wqj zYYSfQS6;`m%&6}xuj5Ur(KE{HgrwsI;weZb+^4qG{USw!s8~qxSNw?A%oNYYl-H6e zkv|WF%9u^f>@MZ=C{w%?qr8qbWk?yyYYSetDX(LtbK?QroOHXyspGI^m#qX4&YhO zgC;MY_w2(fJ6`+ndjmch!9OoAQ%)yJ;G) ziKZW~ryv(m>BV!UJMgy~5>r{bsTuXhxXi&6NV2WG_9Q4%8M~_lZY;afjmkxz&cJ@{@2|2+6c z_*gSH;62>BM5Bp+K86xh-vgiVz`MvF=(mUSY2rRRg3nY*$eV{bXQI)GSM;8E2s-1Y zLnuoesmD;6KD;MiChFv)Ui_n;Abj7?%k*$M)KC1-fOvJ_w;x)PEaSWkJu$tXQx!5d z;Qc6`f!yF^_$dXTmc%>6@JN;FD3`h>vIt3=I45zSB1_>>WXw@k8SyUO#B` zjraRJllEROpa2-)2UQ=C!9O@|?-=(_PfmhvuczPd1LX$K=!9qg7||W^O?vG0W0TXq zF%aqW_#xSTqTJ}SZ}N?iH1+sB2IdW(L*7BW;>8B=etgt3IYqoXra4i(;a~Sod51{9 zX3w}E^&357K2om1Gl6&Qo-uo?cg*iQ2$&ihAAx-c#;0J=RXBQC&Ye{SoigqQLog(^ zpAJt=O{^*}AK^Gu<{KLt$A^8~{mGS8{2`|vM^jFj4x?%OXcjxDPziFz|8HQs3@QqiYOZ4n`M?px`(5&JCZ7n4lKskat zN^7XcjPYnsJ&5F^Z%Oh|u0Meyed<*tQ|k!{h3tp$y|4#`fgvsvSw}5Pwh`$OeMdpW zt5}nOl=zc%DacW1(`-ZX6UdW4_M;B9%P`)P&Lq1^pISVVtz7;)M^(^5T#DiLJ9Cb(^qIuWKHqO zC@9nWA>}hoC!wQg6AEzss7ZcEdaD*5;g%6$o@AtUBnq0OWI5HdDOiygQFtdWCJE_# zq0=arbA)^6Bu{}=OK6&r4rJK@)E9cF9LG2%ksgzW>pflcn}eWF^~n#Zy@hp1EAm51 zUxY;{RiW<&@lXA1E?Wp6D2Gmzm}|OeZA>LdPx>x6W~e?Ryq7FOwjkL>J5Vj+O)co> zmZ36~Vvq-ul|yZ-wzg{9`7BZf8sT;p+=-V_ePPF8Xmc1+P?984I$>G0m4$stda^C~ zgzz2xFh;eE)(gl2M|f{lF)Y~A_3{$!i_v~QZX*r*1o{N`Vu2P^gZi`Roq9>g?nV)u zEHI8*WNTG3O3WspmGE8aX{sJnb^sD-vS|3IYES95@LJ+YeOdEw(pekckzSEnKwt$$ zqDDldX2jbr{Pf|6VsI~yQQ33kE7_n-))>MMArsl1G*M-u)*>$yafHx;T9L|yx2V1s zi^Mo|_}mIQ)Z>X)A*j$$`ogR)dKdLt;YAex$nMmNeheIiRR!Wu>QDHs`iN*x6~Fbk zA&`6=<^8B3+CbHiFoIBl-ct{lL3iU_ocf?0{3}pcVg{k+6 zHWZqPwo)@n%_0H`=kg4JPn6%0XB@^~@(;@V#59QN$7;*gbGwl({PXrQY6-$+npRMw z8BrJ7(Da3fa3Wss$2;o1#8G@s{fI0;xhh3L>Mw`!9c6i>xXfH-BO+cVdM1)>GR-?FJ$MJqbXnNfk7B9q<5>3>INg*MbKv8NR zLVnSH!U80xnjxtfp&BuSKZrRx@)EW6L?#rhJ53f58j&}s9zpG_;+9HN_1wtXYn((L zMDNv{_lT1H2`r>^+L{7pxF<&9FW8r(kGc_B~ zIDn!L{iaD~;w7R#S&~Y74XG3IkhH{+{tDU19|w7VQOAxdKUD)Eg;*w{*iVsH(~9g& zZDceOAICQ&o5&nhKEZYtqcpM+(WSmhaaLG7IL8v`>R0-XQ$Y=iU-R|O&(co>H_i8Y zAk%z#wSJUAElLrMF#Zy>mGC{n04+*W%aO;4$YdM?gQK3B+o|3_eZ`M|#7ksVTE^GF zeI$5EQ9mXs1Lr>OF(jp+A#wnkk<+s0F{N$P5vUq5g0lnRjpW;^hlrd)n>kQDg-Qxr zsS1CnQ}0W`S)lL%V|!evodr5-{m9tT)D|lKsAa`W#AoY0!f#wb zeiOL`$zs$d)OWN|u4oCP+=ugBq);?P&){pATCBDO7aA1ZR#BY4KHN2f;gx) zrkQ)eDcB1man#dSy-Pn@h!igcTKxZE7A&$)Xk(f_%yo$|O&8W<)Y&e=B@I1;EhSo- zu$f{mq3al0M&N_mRqmT272FrWD*H8EM4T zi_upHWN!m@kS;>@R=lRwMRonG7q6P3(>9c(wI@5TY3D0Z-I$4KLliG|V?Zf99SD~3IRU66(ek7T&OapWf zGS`DPZF3=7JGh)Q-`NKls20^D%aNq@_}PTtJ@}SZAh)0vy`xXJ;O{1s6DyKLnWQ3V zY38&GG+FUO$Sw6fCjC?@#DWXNKL-y$4R_KNOn$RLdNqj=}sYj51Hz*bqG=+DQ zRn@Y>hGO1=+HW&jQ`lY53)O=3+Qx0BSzXwfBqTo}j$*D{?GJ*wXhT&V@>%jFwI^s+ zp06|+6#prsqMIh*Hx)fyuIQ$j)?Hnr^^ z_l!*1$A|b1x3Jx9_QLMwjv_nRXlmR(IprJ0#u#z#gx{o{Vml<$z&K13VkCj8?EyaQ8{C7i_c#KgFNigV-N4*0z&i|upXp&@+1 zMe&H;c>{LO*dQ8aZ2zZNO;js_-z4(Jq$7zq=kl!=v zg_sBJzA^jZVeI|k(oEV%JxA>QUi;)Qlp5saeWOGKZ%}f=iDLz>{DaUwj8O@k#c)%2i`UW|?p`iAg|a{@oe%~QsbW$4j8SspeIQ`haI6{JWNBg~lgY+s`3RtXs+%LFsjfvc(+A|dM!qmf_ zDbC67o%H(2T4ONqWI$R{o1_gDL?<&hf%ZLQ93DRm_rbm^2umtMUO%=yd9;0(Bn)o? z`_z#MFL{_^bV1key?EN^_j2!p`zTF}hQMbYG^e_GQ|sXN!Es1U%sdklus+Ii`;8Aw zb1K{)q000mnHIKJXo5K2`20Er$tw~P8k?Hiy4w2My1RN460)1g<5gVAh8RQe9%4e2 zCcV6m4EaVNLO@Z`#Mm09?pbX`!+ZUOlSM}2lYhT|hsBoOg>49Og2=pZX z7QO+7>jmoxgK3;VZ9DyDADSZ6W#&E ztp#(tXJ|^M7u2`E)33^oQi zt$oaU*zO%W_wlOfb*g;4iAsR{$l~)QrtO6Ca_0nY3k{0>+MBfu;<$wy1N?Het~V9qu7;6 zEejU~qI#hp1Q-JjmI&mg-~mkD@8xlVjHqxQ@1H_fCPR22#RTv`7&nMLuLKMd$a@5c zf|5XAFDJ;cPr+h*ss}(3NPw>+!B9Ot7C>&0Ld4OtMdVfh68xt7DZHtDdXaCB_vc9*}J@mCrTd)k{xK|SG~rE*7u@HYiCEA=3ZB2V#NGNmHk@bsu>tP~l> zpr;?5a~LlOj$u6*lMn|nz&}2L4ZO%{Mj<46hgN*lJB5l<$SklIcW{#D15}R~fCSD7 zP);V$971S8d>q0mbrhKq(tH5yLq6|e5hjT_+|`fPal$pQO*sUoBDV>uaoNMMT7(Q> z{iNM{$pozDo8n!13i%K^ldcCUU5`*k0Iwfm9r((DuOZMNA`&Tq1tow03OtWd;(`E5 z9YcWwm=OU92B8p0VS<2q0<{26l=3nv1YZut2D;wO0 zkk6qDD@g>HsLA2z_!L0FJ2p7(hux^74I<;1^5G3(OsLsW^pXMZ1nlA-Yiw$?XV>@QeRhd`TU%di_m)08O7zrs_3gl5!Cv3B z!@jYts}Y9=wqw}U+iUOcvA1<@>S$}iXKh^#9a|dPx?1cTP_L_-Mu44deIVM`&8sS; z+L}M$N zvR!Rm%{}1K)QJaV5ut|eO*?wpT3Y)`P^k|e;v_^*ePdH+eb2@clCT>p_t<%nGDry; z_NJ{=xwo~xqr*-H3DB^&c6T(Q^oAx#Uyos>5C@8L1L7z{eP?|OX`s@jVu}Wu1;|n@ zO{CI-!lw7$d+)vX-U+=Xlq3WQfg~h>gmgj@$ZuxfySMM| zoDcrr-~P1a_h#Gd+j(=lGw;owiOMk*;E{}RK3E7++-9!7GA)A1HT}U}xFJ9#r31!I znml0!D#U#;tCSWS5OLp)xIJDo_H^aMvKf20Vr{Yo_C3U+KJ?@WwD)E_PMYEIwFQ2W z>U*!m)A5`8;CxW#pS>R-!MoMs&3p-bp}f*mnH2ows!awPwpsY8*Wqmd4S2Kd2s0Az z2x`LD<5t5PX4k+M#@50c)z-lV%X-+FUEgc~zt|1&KEI7|{ILmqzBj{ha5Fk7j%Y3T z(#ClBTyG60hi%PvFu~Zt>}Yl}JDXk1uGqYDhMltAIL%DQX5tKNDam%_9@zexgAJs4 z*aX`P+gy8NV{)O{*X(EZHwTzS=0I#jUt^9n$C<~>`Q}q|yg9{OW^OXqnv=~j<{Wc@ zIng|0E;l!utIciZMf1G59mgSU=1gpXzl;s+7tBlMb@PgO)x2hYiw*G~n>Wmx<_<9T z3v-rv$Gm0U#+3Ztd~QyH*+~};vbr$=J?2VG!9h6YlH)TmSzC@{q~GDdbtR6<4l#$B zL(PNcDszN6+#G3+GM|}0n1_kU;%f^DN>ZiykNKLaC`DZ60Gp9W}pj#p}E*xWd3NbGiRGi%?;)ZbFMkhJVe8EFs-1K zbO;?vhtc751RY67(b04a9ZSd2@pJ;6NGH+BbPAnHr_t$j2AxS~(b;qkolED@`E&tY zNEgw?bO~Kbm(k^P1zky3(baSfT}#)|^>hQ>NH@{VbPL@|x6$o%2i-|`(cN?p-Anh; z{qz7mNDtA&^awplkJ01w1U*Sl(bMz{J&SJ>KS$5g3-ltrL@(1T^eVkZuhSd!CjE$h zOmETK^bWmCKcSz}&*(k+IlWIG(1-L3`iOo>AJZrFEBZD4hCZd=((mZ^^cj6lf1p3o z7xX9kGyR4BN`J#Ul>b3r(m&}d`WOA1{zG5WH*A=g*>VLZILVb<#VJm6HD|bnvs}w{ zT+a>M$Rl_pkK!gC&8zY1yaunyYw_B=4zJ7W@fcp8H{kE_hP)AP%-`otcvIetH|J*F zg16+c+`{8{Ja5HY^ESLKZ^zs74!k4p1drogcvqglKj4Wxi6`@JJcXz7G@j18^9-KJ zvv@Y|!F%!?p3C!iKJUc~cyHc^7xKQmAMeix@FG5tbKJ^pyqMd$gFAT%ckxnQ#(D1M z9`5BnK8X8yfCqVqm-8?m%qw^$AHs+7VSG3r!AJ5@d^8`!$MSJ}JfFZP@=1I$pTei| zX?!}L!DsSWd^VrM=kj@cK3~8W@S4L@=bg* z-@>=@ZG1c5!FTdqd^g|2_ws#wKR>_^@yJ^ zt*x*Lo3xd-%BF1ER@;oNu~}Pd>ukMku#I+v9cf3|COg`$W>>ds*fs51c5S z$Jq7l2KIY)L%WgP*nZz`VmGy$+0AXU-NJ5Z$J!P<&W^WR*{$t1c3Zoh-QMnCceFd% zo$W4mS3AM}z)rN2>}0!}onoijX?D8Z-OjKx?JPUn?qT<|bL?C@&(61d*#&lQyN_LH z_qF@k{p|sEkv-7nY^!avi*38@u$^{^?XpYlGMl&Ew#W9`K6{Yuw*z+24%y{)*dADWd#F9k9&V4YN7|$8(e@a7tUb;iZ%?o%+LP?b_7r=nJ1`)K5n0|Pui#K)Akwrto@;V&OUEnurJz|?928Q z`>K7-zHZ;BoPZya*psQuxi~qYwI7?DN%)Z>s+`cU)2pXP)l@Hy(wW`8b~DSo zOmar94cqO>yhfQB-la_5%Oqzw7UW$t%a!VJrDl1AnI12boaM-SG_sR>IxRNYDrW~% z0(V~>&}=s)y&BcbUNY3vnd=|w&gX^(YkK`$a*k`a-?cl(Ybw+4Ws-ATyZtVj>q-r1 zR6RH1OZ7mM&dl>F$P9X! ze$t(ZAqi{d`(vsZ@^h8*gIOJNarJ_zht__32sGdEL&tcy{)4fqTGuLBHX28oN7hvNAYkAm33$$o*SfkVe z9Qa_jqiY~F9Hx@{IKmYgRZJf0@3kF^y6~4zbSy$j!+hnmfT3NElX9uGBG)|7R?#X! zn*@s`XqTWvf=&sRNYEw0QVEtxke8raf*uKaCFqmjAPM><7?5C4f*}c(OE4_K!4j;H zU?qYS)->3pDIEY(*<3UedO`0Dq%yg1(8#0%*{2jbCZwu#CXlF!rbKDoeSl;lCyk|p z=|M8p7WN?P$ws}PcPdgfk#s~3A{0k#ID!-!Cna4<1f`_h%xkJJBphXgB3LhkRcBC@ zn^C~&K)NbLIHa0LqAE#YBw0^tN{P-wiAZh&ul1!R@>x$vB3mgUQi^wlY)Ew#dX3#Z zzt>KJf;iLV_d1ZMT1lY~U4?}LJRL|^B(t7CMYh%#qf&ztp_&SLRO^dSy`t+#QciSg zDx^+f2MU4&SgkKag{HSKL^+sPE;QNR_z>U(GQXM$$3{o&YaC8G*2Wuid09~lZCEMlA zK#mZ{N{%o&u^9(ogURVG+TBHax@a#KEp$7p(dEp^c{7v){l@1j8$EqBoh zjZ&iEX{rH64j3@DtMlz04r(kwdOQ-5$rbTPk`3I)?=^>XXHv#t!Gm0ny$efaa1HL^+d(8a{drqt?v{A z58SDRCbD>w3c7)m zBs7zN})unludMMsO==Qw&ZdpO$_UW6%wWc9-s>;w*~+vr!@}@4=hOzD|yPT zA*oRcwxE`Q0T4kYkjOQk(6$rWsYJK*1H=fEc&t%xVkNmlgEC=Q*tra-`_i2IfTw4PAiQjQ;U0t zamoj9#8BVnLbLl0s$hQHqyT($I>B&$9Ml-OFKFe`5e?-OVB+ z+WVCZ<_NOt6=)u(WVppeoP}5^SxXtRmb##Yu-w>8w8)0~+=_D*5B0efr!C6}YP|(0 z`K;gnp}yK!--r6bmI~$TV+2w|Mi4hNw5^#!+tDR$+q+n3J1p7UqHPBZ8R~0xqjZ;r zy17N$4hS5gy)V=-uBe7_+Iz2taV0f4l5qae>e%=I1&K|uwmUXH#SV-2Wo%Jj#uoR* zHRO*b5RS@fX}2z#RM$evJ^Qd=>x*Wwd2B+LUP6UfLYHe|nk?GHUK*-kOzf`d1sd+H z;S3FDYPgSv3pJdj;cN|66sXW@N$jD>o*K4kxLCtE8qU>F#ePC%ZepGy^EDKK*OFFs zV4xf4y(!TLTuKxIO;tN-rs=e*1VK`C0!J%KfunU2(WM=09I@&Jn#>H~!POs>)D;Zb zf#c<76#%Z9QNr+27$Tz-Y|=Zs6i>Q#>SUh$t98Y7XXCZjm(-UU>KlOR1$4^M{k?K@ zyI5o(p168jz!Y+@eYN-nx7hSbeF<$tfOteH(N~qc29`@OFLX5zHt5X6pn931I3hC@ zLmJ(T#jpmQxgtnrFb37jOvaE#H=}XP&1?*7&>4%U?apysoM9=dFyi<+(T`sj*Boec7Y zUb^yyZo2YbKONw8)Kw7m)aCnO=mk@~e7n2*>$JZrCLB;J9rp9mV=rIty6ho!+UFP` zo%VoQ>9v=ycir|8*KZH0(~f&UCipd_i?+cRX|CfVMeKMIEkNb2DM1?pHOcQ((||Il zgfFdt}e9P^=iWmy~%p7}_fFwF-V9M@uyW1A1vE8l#iG2oSt z=~KWBH3moA@?ks$N@?9wpcJoPlFN6bwfkz7GN>O273EJd%Sb~pIMwWqv zn<}Ln=XL>(vpa-G7xO#3&{V|m2#<3-#7D(h9>SxGd0x0s%=GX=QxVrgd}NI6 zAv!t|299Bc3&o5NFN}(FK7?1(gg+Ri*6_hN|4O{bB$2xcWqNYGjNJSx5q8p-D z(QrblGP)tE^9B?WHhLopu@c>|HD5+I1n3VcEL^G^w&rUig+`~$S7;RQ6dIS85jnj= z^D%|SRiR_?Na}PT9^ff7t`0XX9!0(DzlZn=jTQ$^7;&_E_%EM z%Xw6=l8S06r_Z47P(~C{H-$^82rsM8$g*_12A;x!x{IHyK?j>WM(ZOcz{}|~t@%~x zGmtjL`V3kutIvQ_<@6cAadwB2V-@-gsxM-ASfHth;~`#FpTUTVc^=Y_E@paop}anW z`z6Nqka`vR3>q$Gd|0BaKGT|Cl|Iv&5A_*$)BF02BECN30F?_)pHLu_3mz2HXI#Zj zE_gJ)KI7^MN$^{RK=`&g`)Ms2f-s26=U?>H?KH~s)tEh&dKwO`3)p(CJS519z zV?@P#ea6)j-V6~8^w&qDW;4v@A$r0?HBaXPSh!wbC zE_57oBeROjH)}|~q=FFNc0`!butr1SDXZ1E#9}!v6jd5l!hXCNHsCwMY<(8&xetKF zwY=8yaM*314*TuP&GoR)ejL`n@0br@L+o08(#13@i1!ZS%a!+3Q4z$u1@VFIdd0Cp ze0~sL9K>%0aZrC^GnY^F2l0bJ{Izl*k(`t~I(c(tRi*pd4^{R%yz;@yzgMkYb!gS? zj=n0WFLk}kr#{2@XPEV2k6R-ax!=x?m(%n$EO!}}yj5z^n}iK-HD^%g`e-+Wdsbd- zDVFu)VMo6cEa$~)KD3#i3p@D*u#lG*Om@RM{S??tUu$lm-C@T)*V$~NS83e6wLA`W zGA#9{BHS1=B^Lh;b76VblF1*mS=OyYY6lcwZ*=?ilSLMz{q3m&t$FP&Wf} z{|EJ27aa_%>MdbgJr>-(2%ZoVzq2odSi_$WPlpRp{$g_pY~(M)O1c6*3Rl7F;Tp{U zby!z7!213s_(9wXKZx7m;Q+gTwY-5j}`e5*5s$~a}a-qFYw)}znZ_pGvOJKT%xpm0+v3kaa)x6H>akLoDzk%4k$JvDIGRcl#;R(D2jSNyl|1l-?Lz;A7; zN$AQ*>dL6bx*BboloMlgel~)C$jR_S)O*VF+4-`(cTLHxmGz);wV{>J<7H`iKbDf( t%HIQWhsp1UH6iK4-w&dd%Ws14pHP_RzrOQBiC-A= - - - Shape - Created with Sketch. - - - - - - - - - - - \ No newline at end of file diff --git a/client/src/scss/icon/search.svg b/client/src/scss/icon/search.svg deleted file mode 100644 index a7eda5c2..00000000 --- a/client/src/scss/icon/search.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - Fill 5114 + Fill 5115 + Fill 5116 - Created with Sketch. - - - - - - - - - - \ No newline at end of file diff --git a/client/src/scss/icon/upload.svg b/client/src/scss/icon/upload.svg deleted file mode 100644 index 8b5637c1..00000000 --- a/client/src/scss/icon/upload.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - upload - Created with Sketch. - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/server/render/renderFullPage.js b/server/render/renderFullPage.js index 9124aa5d..a3fefe74 100644 --- a/server/render/renderFullPage.js +++ b/server/render/renderFullPage.js @@ -12,7 +12,7 @@ module.exports = (helmet, html, preloadedState) => { ${helmet.meta.toString()} ${helmet.link.toString()} - + -- 2.45.3 From 87067f3ea638d3b59c359367b80241f499b6fbce Mon Sep 17 00:00:00 2001 From: bill bittner Date: Thu, 31 May 2018 13:54:27 -0700 Subject: [PATCH 05/24] added layout components --- .../components/AboutPageContent/index.js | 26 +++++++ .../build/components/AboutSpeechOne/index.js | 35 +++++++++ .../build/components/AboutSpeechTwo/index.js | 32 +++++++++ .../build/components/HomePageContent/index.js | 19 +++++ .../build/components/HorizontalSplit/index.js | 65 +++++++++++++++++ .../components/HorizontalSplit/style.css.js | 20 ++++++ client/build/components/PageContent/index.js | 62 ++++++++++++++++ .../build/components/PageContent/style.css.js | 12 ++++ client/build/components/PageLayout/index.js | 71 +++++++++++++++++++ .../build/components/PageLayout/style.css.js | 10 +++ client/build/pages/AboutPage/index.js | 51 ++----------- client/build/pages/HomePage/index.js | 15 ++-- .../src/components/AboutPageContent/index.jsx | 16 +++++ .../src/components/AboutSpeechOne/index.jsx | 15 ++++ .../src/components/AboutSpeechTwo/index.jsx | 15 ++++ .../src/components/HomePageContent/index.jsx | 11 +++ .../src/components/HorizontalSplit/index.jsx | 23 ++++++ .../components/HorizontalSplit/style.css.js | 15 ++++ client/src/components/PageContent/index.jsx | 18 +++++ .../src/components/PageContent/style.css.js | 6 ++ client/src/components/PageLayout/index.jsx | 26 +++++++ client/src/components/PageLayout/style.css.js | 5 ++ client/src/pages/AboutPage/index.jsx | 30 ++------ client/src/pages/HomePage/index.jsx | 15 ++-- 24 files changed, 522 insertions(+), 91 deletions(-) create mode 100644 client/build/components/AboutPageContent/index.js create mode 100644 client/build/components/AboutSpeechOne/index.js create mode 100644 client/build/components/AboutSpeechTwo/index.js create mode 100644 client/build/components/HomePageContent/index.js create mode 100644 client/build/components/HorizontalSplit/index.js create mode 100644 client/build/components/HorizontalSplit/style.css.js create mode 100644 client/build/components/PageContent/index.js create mode 100644 client/build/components/PageContent/style.css.js create mode 100644 client/build/components/PageLayout/index.js create mode 100644 client/build/components/PageLayout/style.css.js create mode 100644 client/src/components/AboutPageContent/index.jsx create mode 100644 client/src/components/AboutSpeechOne/index.jsx create mode 100644 client/src/components/AboutSpeechTwo/index.jsx create mode 100644 client/src/components/HomePageContent/index.jsx create mode 100644 client/src/components/HorizontalSplit/index.jsx create mode 100644 client/src/components/HorizontalSplit/style.css.js create mode 100644 client/src/components/PageContent/index.jsx create mode 100644 client/src/components/PageContent/style.css.js create mode 100644 client/src/components/PageLayout/index.jsx create mode 100644 client/src/components/PageLayout/style.css.js diff --git a/client/build/components/AboutPageContent/index.js b/client/build/components/AboutPageContent/index.js new file mode 100644 index 00000000..7d63a38c --- /dev/null +++ b/client/build/components/AboutPageContent/index.js @@ -0,0 +1,26 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _AboutSpeechOne = _interopRequireDefault(require("@components/AboutSpeechOne")); + +var _AboutSpeechTwo = _interopRequireDefault(require("@components/AboutSpeechTwo")); + +var _HorizontalSplit = _interopRequireDefault(require("@components/HorizontalSplit")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var AboutPageContent = function AboutPageContent() { + return _react.default.createElement(_HorizontalSplit.default, { + leftSide: _react.default.createElement(_AboutSpeechOne.default, null), + rightSide: _react.default.createElement(_AboutSpeechTwo.default, null) + }); +}; + +var _default = AboutPageContent; +exports.default = _default; \ No newline at end of file diff --git a/client/build/components/AboutSpeechOne/index.js b/client/build/components/AboutSpeechOne/index.js new file mode 100644 index 00000000..4fee0efc --- /dev/null +++ b/client/build/components/AboutSpeechOne/index.js @@ -0,0 +1,35 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var AboutSpeechOne = function AboutSpeechOne() { + return _react.default.createElement("div", null, _react.default.createElement("p", { + className: "pull-quote" + }, "Spee.ch is an open-source project. Please contribute to the existing site, or fork it and make your own."), _react.default.createElement("p", null, _react.default.createElement("a", { + className: "link--primary", + target: "_blank", + href: "https://twitter.com/spee_ch" + }, "TWITTER")), _react.default.createElement("p", null, _react.default.createElement("a", { + className: "link--primary", + target: "_blank", + href: "https://github.com/lbryio/spee.ch" + }, "GITHUB")), _react.default.createElement("p", null, _react.default.createElement("a", { + className: "link--primary", + target: "_blank", + href: "https://discord.gg/YjYbwhS" + }, "DISCORD CHANNEL")), _react.default.createElement("p", null, _react.default.createElement("a", { + className: "link--primary", + target: "_blank", + href: "https://github.com/lbryio/spee.ch/blob/master/README.md" + }, "DOCUMENTATION"))); +}; + +var _default = AboutSpeechOne; +exports.default = _default; \ No newline at end of file diff --git a/client/build/components/AboutSpeechTwo/index.js b/client/build/components/AboutSpeechTwo/index.js new file mode 100644 index 00000000..8c941b8a --- /dev/null +++ b/client/build/components/AboutSpeechTwo/index.js @@ -0,0 +1,32 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var AboutSpeechTwo = function AboutSpeechTwo() { + return _react.default.createElement("div", null, _react.default.createElement("p", null, "Spee.ch is a media-hosting site that reads from and publishes content to the ", _react.default.createElement("a", { + className: "link--primary", + href: "https://lbry.io" + }, "LBRY"), " blockchain."), _react.default.createElement("p", null, "Spee.ch is a hosting service, but with the added benefit that it stores your content on a decentralized network of computers -- the ", _react.default.createElement("a", { + className: "link--primary", + href: "https://lbry.io/get" + }, "LBRY"), " network. This means that your images are stored in multiple locations without a single point of failure."), _react.default.createElement("h3", null, "Contribute"), _react.default.createElement("p", null, "If you have an idea for your own spee.ch-like site on top of LBRY, fork our ", _react.default.createElement("a", { + className: "link--primary", + href: "https://github.com/lbryio/spee.ch" + }, "github repo"), " and go to town!"), _react.default.createElement("p", null, "If you want to improve spee.ch, join our ", _react.default.createElement("a", { + className: "link--primary", + href: "https://chat.lbry.io" + }, "discord channel"), " or solve one of our ", _react.default.createElement("a", { + className: "link--primary", + href: "https://github.com/lbryio/spee.ch/issues" + }, "github issues"), ".")); +}; + +var _default = AboutSpeechTwo; +exports.default = _default; \ No newline at end of file diff --git a/client/build/components/HomePageContent/index.js b/client/build/components/HomePageContent/index.js new file mode 100644 index 00000000..23fef568 --- /dev/null +++ b/client/build/components/HomePageContent/index.js @@ -0,0 +1,19 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _PublishTool = _interopRequireDefault(require("@containers/PublishTool")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var HomePageContent = function HomePageContent() { + return _react.default.createElement(_PublishTool.default, null); +}; + +var _default = HomePageContent; +exports.default = _default; \ No newline at end of file diff --git a/client/build/components/HorizontalSplit/index.js b/client/build/components/HorizontalSplit/index.js new file mode 100644 index 00000000..e39304d1 --- /dev/null +++ b/client/build/components/HorizontalSplit/index.js @@ -0,0 +1,65 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _styleCss = _interopRequireDefault(require("./style.css.js")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +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); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } + +var HorizontalSplit = +/*#__PURE__*/ +function (_React$Component) { + function HorizontalSplit() { + _classCallCheck(this, HorizontalSplit); + + return _possibleConstructorReturn(this, _getPrototypeOf(HorizontalSplit).apply(this, arguments)); + } + + _createClass(HorizontalSplit, [{ + key: "shouldComponentUpdate", + value: function shouldComponentUpdate() { + return false; + } + }, { + key: "render", + value: function render() { + return _react.default.createElement("div", { + style: _styleCss.default.wrapper + }, _react.default.createElement("div", { + style: _styleCss.default.column + }, this.props.leftSide), _react.default.createElement("div", { + style: _styleCss.default.column + }, this.props.rightSide)); + } + }]); + + _inherits(HorizontalSplit, _React$Component); + + return HorizontalSplit; +}(_react.default.Component); + +var _default = HorizontalSplit; +exports.default = _default; \ No newline at end of file diff --git a/client/build/components/HorizontalSplit/style.css.js b/client/build/components/HorizontalSplit/style.css.js new file mode 100644 index 00000000..1192b895 --- /dev/null +++ b/client/build/components/HorizontalSplit/style.css.js @@ -0,0 +1,20 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var wrapper = { + display: 'flex', + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'flex-start' +}; +var column = { + width: '45%' +}; +var _default = { + wrapper: wrapper, + column: column +}; +exports.default = _default; \ No newline at end of file diff --git a/client/build/components/PageContent/index.js b/client/build/components/PageContent/index.js new file mode 100644 index 00000000..45c61980 --- /dev/null +++ b/client/build/components/PageContent/index.js @@ -0,0 +1,62 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _styleCss = _interopRequireDefault(require("./style.css.js")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +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); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } + +var PageContent = +/*#__PURE__*/ +function (_React$Component) { + function PageContent() { + _classCallCheck(this, PageContent); + + return _possibleConstructorReturn(this, _getPrototypeOf(PageContent).apply(this, arguments)); + } + + _createClass(PageContent, [{ + key: "shouldComponentUpdate", + value: function shouldComponentUpdate() { + return false; + } + }, { + key: "render", + value: function render() { + return _react.default.createElement("div", { + style: _styleCss.default, + className: 'row--tall flex-container--column' + }, this.props.children); + } + }]); + + _inherits(PageContent, _React$Component); + + return PageContent; +}(_react.default.Component); + +var _default = PageContent; +exports.default = _default; \ No newline at end of file diff --git a/client/build/components/PageContent/style.css.js b/client/build/components/PageContent/style.css.js new file mode 100644 index 00000000..1e199a51 --- /dev/null +++ b/client/build/components/PageContent/style.css.js @@ -0,0 +1,12 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var style = { + margin: '1em', + backgroundColor: 'red' +}; +var _default = style; +exports.default = _default; \ No newline at end of file diff --git a/client/build/components/PageLayout/index.js b/client/build/components/PageLayout/index.js new file mode 100644 index 00000000..1af9220c --- /dev/null +++ b/client/build/components/PageLayout/index.js @@ -0,0 +1,71 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _SEO = _interopRequireDefault(require("@components/SEO")); + +var _NavBar = _interopRequireDefault(require("@containers/NavBar")); + +var _PageContent = _interopRequireDefault(require("@components/PageContent")); + +var _styleCss = _interopRequireDefault(require("./style.css.js")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +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); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } + +var PageLayout = +/*#__PURE__*/ +function (_React$Component) { + function PageLayout() { + _classCallCheck(this, PageLayout); + + return _possibleConstructorReturn(this, _getPrototypeOf(PageLayout).apply(this, arguments)); + } + + _createClass(PageLayout, [{ + key: "shouldComponentUpdate", + value: function shouldComponentUpdate() { + return false; + } + }, { + key: "render", + value: function render() { + return _react.default.createElement("div", { + style: _styleCss.default, + className: 'row--tall flex-container--column' + }, _react.default.createElement(_SEO.default, { + pageTitle: this.props.pageTitle, + pageUri: this.props.pageUri + }), _react.default.createElement(_NavBar.default, null), _react.default.createElement(_PageContent.default, null, this.props.children)); + } + }]); + + _inherits(PageLayout, _React$Component); + + return PageLayout; +}(_react.default.Component); + +var _default = PageLayout; +exports.default = _default; \ No newline at end of file diff --git a/client/build/components/PageLayout/style.css.js b/client/build/components/PageLayout/style.css.js new file mode 100644 index 00000000..5c450909 --- /dev/null +++ b/client/build/components/PageLayout/style.css.js @@ -0,0 +1,10 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var style = {// backgroundColor: 'grey', +}; +var _default = style; +exports.default = _default; \ No newline at end of file diff --git a/client/build/pages/AboutPage/index.js b/client/build/pages/AboutPage/index.js index 0ef791cf..640e4b39 100644 --- a/client/build/pages/AboutPage/index.js +++ b/client/build/pages/AboutPage/index.js @@ -7,9 +7,9 @@ exports.default = void 0; var _react = _interopRequireDefault(require("react")); -var _SEO = _interopRequireDefault(require("@components/SEO")); +var _PageLayout = _interopRequireDefault(require("@components/PageLayout")); -var _NavBar = _interopRequireDefault(require("@containers/NavBar")); +var _AboutPageContent = _interopRequireDefault(require("@components/AboutPageContent")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -43,53 +43,10 @@ function (_React$Component) { _createClass(AboutPage, [{ key: "render", value: function render() { - return _react.default.createElement("div", null, _react.default.createElement(_SEO.default, { + return _react.default.createElement(_PageLayout.default, { pageTitle: 'About', pageUri: 'about' - }), _react.default.createElement(_NavBar.default, null), _react.default.createElement("div", { - className: "row row--padded" - }, _react.default.createElement("div", { - className: "column column--5 column--med-10 align-content-top" - }, _react.default.createElement("div", { - className: "column column--8 column--med-10" - }, _react.default.createElement("p", { - className: "pull-quote" - }, "Spee.ch is an open-source project. Please contribute to the existing site, or fork it and make your own."), _react.default.createElement("p", null, _react.default.createElement("a", { - className: "link--primary", - target: "_blank", - href: "https://twitter.com/spee_ch" - }, "TWITTER")), _react.default.createElement("p", null, _react.default.createElement("a", { - className: "link--primary", - target: "_blank", - href: "https://github.com/lbryio/spee.ch" - }, "GITHUB")), _react.default.createElement("p", null, _react.default.createElement("a", { - className: "link--primary", - target: "_blank", - href: "https://discord.gg/YjYbwhS" - }, "DISCORD CHANNEL")), _react.default.createElement("p", null, _react.default.createElement("a", { - className: "link--primary", - target: "_blank", - href: "https://github.com/lbryio/spee.ch/blob/master/README.md" - }, "DOCUMENTATION")))), _react.default.createElement("div", { - className: "column column--5 column--med-10 align-content-top" - }, _react.default.createElement("div", { - className: "column column--8 column--med-10" - }, _react.default.createElement("p", null, "Spee.ch is a media-hosting site that reads from and publishes content to the ", _react.default.createElement("a", { - className: "link--primary", - href: "https://lbry.io" - }, "LBRY"), " blockchain."), _react.default.createElement("p", null, "Spee.ch is a hosting service, but with the added benefit that it stores your content on a decentralized network of computers -- the ", _react.default.createElement("a", { - className: "link--primary", - href: "https://lbry.io/get" - }, "LBRY"), " network. This means that your images are stored in multiple locations without a single point of failure."), _react.default.createElement("h3", null, "Contribute"), _react.default.createElement("p", null, "If you have an idea for your own spee.ch-like site on top of LBRY, fork our ", _react.default.createElement("a", { - className: "link--primary", - href: "https://github.com/lbryio/spee.ch" - }, "github repo"), " and go to town!"), _react.default.createElement("p", null, "If you want to improve spee.ch, join our ", _react.default.createElement("a", { - className: "link--primary", - href: "https://chat.lbry.io" - }, "discord channel"), " or solve one of our ", _react.default.createElement("a", { - className: "link--primary", - href: "https://github.com/lbryio/spee.ch/issues" - }, "github issues"), "."))))); + }, _react.default.createElement(_AboutPageContent.default, null)); } }]); diff --git a/client/build/pages/HomePage/index.js b/client/build/pages/HomePage/index.js index d32b3b38..a60ba204 100644 --- a/client/build/pages/HomePage/index.js +++ b/client/build/pages/HomePage/index.js @@ -7,11 +7,9 @@ exports.default = void 0; var _react = _interopRequireDefault(require("react")); -var _SEO = _interopRequireDefault(require("@components/SEO")); +var _PageLayout = _interopRequireDefault(require("@components/PageLayout")); -var _NavBar = _interopRequireDefault(require("@containers/NavBar")); - -var _PublishTool = _interopRequireDefault(require("@containers/PublishTool")); +var _HomePageContent = _interopRequireDefault(require("@components/HomePageContent")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -45,11 +43,10 @@ function (_React$Component) { _createClass(HomePage, [{ key: "render", value: function render() { - return _react.default.createElement("div", { - className: 'row row--tall flex-container--column' - }, _react.default.createElement(_SEO.default, null), _react.default.createElement(_NavBar.default, null), _react.default.createElement("div", { - className: 'row row--tall row--padded flex-container--column' - }, _react.default.createElement(_PublishTool.default, null))); + return _react.default.createElement(_PageLayout.default, { + pageTitle: 'Speech', + pageUri: '' + }, _react.default.createElement(_HomePageContent.default, null)); } }]); diff --git a/client/src/components/AboutPageContent/index.jsx b/client/src/components/AboutPageContent/index.jsx new file mode 100644 index 00000000..952bcf39 --- /dev/null +++ b/client/src/components/AboutPageContent/index.jsx @@ -0,0 +1,16 @@ +import React from 'react'; + +import AboutSpeechOne from '@components/AboutSpeechOne'; +import AboutSpeechTwo from '@components/AboutSpeechTwo'; +import HorizontalSplit from '@components/HorizontalSplit'; + +const AboutPageContent = () => { + return ( + } + rightSide={} + /> + ); +}; + +export default AboutPageContent; diff --git a/client/src/components/AboutSpeechOne/index.jsx b/client/src/components/AboutSpeechOne/index.jsx new file mode 100644 index 00000000..ebabf4f6 --- /dev/null +++ b/client/src/components/AboutSpeechOne/index.jsx @@ -0,0 +1,15 @@ +import React from 'react'; + +const AboutSpeechOne = () => { + return ( +

+

Spee.ch is an open-source project. Please contribute to the existing site, or fork it and make your own.

+

TWITTER

+

GITHUB

+

DISCORD CHANNEL

+

DOCUMENTATION

+
+ ); +}; + +export default AboutSpeechOne; diff --git a/client/src/components/AboutSpeechTwo/index.jsx b/client/src/components/AboutSpeechTwo/index.jsx new file mode 100644 index 00000000..dc0f7a25 --- /dev/null +++ b/client/src/components/AboutSpeechTwo/index.jsx @@ -0,0 +1,15 @@ +import React from 'react'; + +const AboutSpeechTwo = () => { + return ( +
+

Spee.ch is a media-hosting site that reads from and publishes content to the LBRY blockchain.

+

Spee.ch is a hosting service, but with the added benefit that it stores your content on a decentralized network of computers -- the LBRY network. This means that your images are stored in multiple locations without a single point of failure.

+

Contribute

+

If you have an idea for your own spee.ch-like site on top of LBRY, fork our github repo and go to town!

+

If you want to improve spee.ch, join our discord channel or solve one of our github issues.

+
+ ); +}; + +export default AboutSpeechTwo; diff --git a/client/src/components/HomePageContent/index.jsx b/client/src/components/HomePageContent/index.jsx new file mode 100644 index 00000000..e2e87f09 --- /dev/null +++ b/client/src/components/HomePageContent/index.jsx @@ -0,0 +1,11 @@ +import React from 'react'; + +import PublishTool from '@containers/PublishTool'; + +const HomePageContent = () => { + return ( + + ); +}; + +export default HomePageContent; diff --git a/client/src/components/HorizontalSplit/index.jsx b/client/src/components/HorizontalSplit/index.jsx new file mode 100644 index 00000000..6e0666a4 --- /dev/null +++ b/client/src/components/HorizontalSplit/index.jsx @@ -0,0 +1,23 @@ +import React from 'react'; + +import style from './style.css.js'; + +class HorizontalSplit extends React.Component { + shouldComponentUpdate () { + return false; + } + render () { + return ( +
+
+ {this.props.leftSide} +
+
+ {this.props.rightSide} +
+
+ ); + } +} + +export default HorizontalSplit; diff --git a/client/src/components/HorizontalSplit/style.css.js b/client/src/components/HorizontalSplit/style.css.js new file mode 100644 index 00000000..5f52aef3 --- /dev/null +++ b/client/src/components/HorizontalSplit/style.css.js @@ -0,0 +1,15 @@ +const wrapper = { + display : 'flex', + flexDirection : 'row', + justifyContent: 'space-between', + alignItems : 'flex-start', +}; + +const column = { + width: '45%', +}; + +export default { + wrapper, + column, +}; diff --git a/client/src/components/PageContent/index.jsx b/client/src/components/PageContent/index.jsx new file mode 100644 index 00000000..3af1e543 --- /dev/null +++ b/client/src/components/PageContent/index.jsx @@ -0,0 +1,18 @@ +import React from 'react'; + +import style from './style.css.js'; + +class PageContent extends React.Component { + shouldComponentUpdate () { + return false; + } + render () { + return ( +
+ {this.props.children} +
+ ); + } +} + +export default PageContent; diff --git a/client/src/components/PageContent/style.css.js b/client/src/components/PageContent/style.css.js new file mode 100644 index 00000000..0f93a1d5 --- /dev/null +++ b/client/src/components/PageContent/style.css.js @@ -0,0 +1,6 @@ +const style = { + margin : '1em', + backgroundColor: 'red', +}; + +export default style; diff --git a/client/src/components/PageLayout/index.jsx b/client/src/components/PageLayout/index.jsx new file mode 100644 index 00000000..64399950 --- /dev/null +++ b/client/src/components/PageLayout/index.jsx @@ -0,0 +1,26 @@ +import React from 'react'; + +import SEO from '@components/SEO'; +import NavBar from '@containers/NavBar'; +import PageContent from '@components/PageContent'; + +import style from './style.css.js'; + +class PageLayout extends React.Component { + shouldComponentUpdate () { + return false; + } + render () { + return ( +
+ + + + {this.props.children} + +
+ ); + } +} + +export default PageLayout; diff --git a/client/src/components/PageLayout/style.css.js b/client/src/components/PageLayout/style.css.js new file mode 100644 index 00000000..9cbd2d6d --- /dev/null +++ b/client/src/components/PageLayout/style.css.js @@ -0,0 +1,5 @@ +const style = { + // backgroundColor: 'grey', +}; + +export default style; diff --git a/client/src/pages/AboutPage/index.jsx b/client/src/pages/AboutPage/index.jsx index 23112e19..71614d21 100644 --- a/client/src/pages/AboutPage/index.jsx +++ b/client/src/pages/AboutPage/index.jsx @@ -1,33 +1,13 @@ import React from 'react'; -import SEO from '@components/SEO'; -import NavBar from '@containers/NavBar'; +import PageLayout from '@components/PageLayout'; +import AboutPageContent from '@components/AboutPageContent'; class AboutPage extends React.Component { render () { return ( -
- - -
-
-
-

Spee.ch is an open-source project. Please contribute to the existing site, or fork it and make your own.

-

TWITTER

-

GITHUB

-

DISCORD CHANNEL

-

DOCUMENTATION

-
-
-
-

Spee.ch is a media-hosting site that reads from and publishes content to the LBRY blockchain.

-

Spee.ch is a hosting service, but with the added benefit that it stores your content on a decentralized network of computers -- the LBRY network. This means that your images are stored in multiple locations without a single point of failure.

-

Contribute

-

If you have an idea for your own spee.ch-like site on top of LBRY, fork our github repo and go to town!

-

If you want to improve spee.ch, join our discord channel or solve one of our github issues.

-
-
-
-
+ + + ); } }; diff --git a/client/src/pages/HomePage/index.jsx b/client/src/pages/HomePage/index.jsx index 7dbec47e..29111ac2 100644 --- a/client/src/pages/HomePage/index.jsx +++ b/client/src/pages/HomePage/index.jsx @@ -1,18 +1,13 @@ import React from 'react'; -import SEO from '@components/SEO'; -import NavBar from '@containers/NavBar'; -import PublishTool from '@containers/PublishTool'; +import PageLayout from '@components/PageLayout'; +import HomePageContent from '@components/HomePageContent'; class HomePage extends React.Component { render () { return ( -
- - -
- -
-
+ + + ); } }; -- 2.45.3 From 6931c37f83a8c5f833976e0fce0dec5fffdd7639 Mon Sep 17 00:00:00 2001 From: bill bittner Date: Thu, 31 May 2018 16:39:35 -0700 Subject: [PATCH 06/24] updated pages to use PageLayout and moved show pages --- client/build/app.js | 6 +- .../build/components/AboutChannels/index.js | 25 +++++ client/build/components/ChannelTools/index.js | 25 +++++ client/build/pages/AboutPage/index.js | 11 ++- .../build/pages/ContentPageWrapper/index.js | 30 ++++++ client/build/pages/ContentPageWrapper/view.js | 97 +++++++++++++++++++ client/build/pages/ErrorPage/index.js | 9 +- client/build/pages/FourOhFourPage/index.js | 56 ++++++++--- client/build/pages/FourOhFourPage/view.js | 17 +--- client/build/pages/HomePage/index.js | 4 +- client/build/pages/LoginPage/view.js | 37 ++----- client/build/pages/MultisitePage/index.js | 15 +-- client/build/pages/ShowAssetDetails/index.js | 38 ++++++++ client/build/pages/ShowAssetDetails/view.js | 90 +++++++++++++++++ client/build/pages/ShowAssetLite/index.js | 38 ++++++++ client/build/pages/ShowAssetLite/view.js | 79 +++++++++++++++ client/build/pages/ShowChannel/index.js | 35 +++++++ client/build/pages/ShowChannel/view.js | 78 +++++++++++++++ client/src/app.js | 6 +- client/src/components/AboutChannels/index.jsx | 11 +++ .../src/components/AboutPageContent/index.jsx | 16 --- client/src/components/ChannelTools/index.jsx | 16 +++ .../src/components/HomePageContent/index.jsx | 11 --- client/src/containers/ShowChannel/view.jsx | 38 -------- client/src/pages/AboutPage/index.jsx | 10 +- .../index.jsx | 0 .../{ShowPage => ContentPageWrapper}/view.jsx | 10 +- client/src/pages/ErrorPage/index.jsx | 11 +-- client/src/pages/FourOhFourPage/index.jsx | 20 ++-- client/src/pages/FourOhFourPage/view.jsx | 24 ----- client/src/pages/HomePage/index.jsx | 5 +- client/src/pages/LoginPage/view.jsx | 33 +++---- client/src/pages/MultisitePage/index.jsx | 93 ++++++++---------- .../ShowAssetDetails/index.js | 0 .../ShowAssetDetails/view.jsx | 10 +- .../ShowAssetLite/index.js | 0 .../ShowAssetLite/view.jsx | 2 +- .../ShowChannel/index.js | 0 client/src/pages/ShowChannel/view.jsx | 26 +++++ 39 files changed, 764 insertions(+), 268 deletions(-) create mode 100644 client/build/components/AboutChannels/index.js create mode 100644 client/build/components/ChannelTools/index.js create mode 100644 client/build/pages/ContentPageWrapper/index.js create mode 100644 client/build/pages/ContentPageWrapper/view.js create mode 100644 client/build/pages/ShowAssetDetails/index.js create mode 100644 client/build/pages/ShowAssetDetails/view.js create mode 100644 client/build/pages/ShowAssetLite/index.js create mode 100644 client/build/pages/ShowAssetLite/view.js create mode 100644 client/build/pages/ShowChannel/index.js create mode 100644 client/build/pages/ShowChannel/view.js create mode 100644 client/src/components/AboutChannels/index.jsx delete mode 100644 client/src/components/AboutPageContent/index.jsx create mode 100644 client/src/components/ChannelTools/index.jsx delete mode 100644 client/src/components/HomePageContent/index.jsx delete mode 100644 client/src/containers/ShowChannel/view.jsx rename client/src/pages/{ShowPage => ContentPageWrapper}/index.jsx (100%) rename client/src/pages/{ShowPage => ContentPageWrapper}/view.jsx (77%) delete mode 100644 client/src/pages/FourOhFourPage/view.jsx rename client/src/{containers => pages}/ShowAssetDetails/index.js (100%) rename client/src/{containers => pages}/ShowAssetDetails/view.jsx (79%) rename client/src/{containers => pages}/ShowAssetLite/index.js (100%) rename client/src/{containers => pages}/ShowAssetLite/view.jsx (93%) rename client/src/{containers => pages}/ShowChannel/index.js (100%) create mode 100644 client/src/pages/ShowChannel/view.jsx diff --git a/client/build/app.js b/client/build/app.js index b77df70b..e79709a3 100644 --- a/client/build/app.js +++ b/client/build/app.js @@ -15,7 +15,7 @@ var _AboutPage = _interopRequireDefault(require("@pages/AboutPage")); var _LoginPage = _interopRequireDefault(require("@pages/LoginPage")); -var _ShowPage = _interopRequireDefault(require("@pages/ShowPage")); +var _ContentPageWrapper = _interopRequireDefault(require("@pages/ContentPageWrapper")); var _FourOhFourPage = _interopRequireDefault(require("@pages/FourOhFourPage")); @@ -43,11 +43,11 @@ var customizedApp = function customizedApp() { }), _react.default.createElement(_reactRouterDom.Route, { exact: true, path: "/:identifier/:claim", - component: _ShowPage.default + component: _ContentPageWrapper.default }), _react.default.createElement(_reactRouterDom.Route, { exact: true, path: "/:claim", - component: _ShowPage.default + component: _ContentPageWrapper.default }), _react.default.createElement(_reactRouterDom.Route, { component: _FourOhFourPage.default })); diff --git a/client/build/components/AboutChannels/index.js b/client/build/components/AboutChannels/index.js new file mode 100644 index 00000000..fbc7e195 --- /dev/null +++ b/client/build/components/AboutChannels/index.js @@ -0,0 +1,25 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var AboutChannels = function AboutChannels() { + return _react.default.createElement("div", null, _react.default.createElement("p", null, "Channels allow you to publish and group content under an identity. You can create a channel for yourself, or share one with like-minded friends. You can create 1 channel, or 100, so whether you're ", _react.default.createElement("a", { + className: "link--primary", + target: "_blank", + href: "/@catalonia2017:43dcf47163caa21d8404d9fe9b30f78ef3e146a8" + }, "documenting important events"), ", or making a public repository for ", _react.default.createElement("a", { + className: "link--primary", + target: "_blank", + href: "/@catGifs" + }, "cat gifs"), " (password: '1234'), try creating a channel for it!")); +}; + +var _default = AboutChannels; +exports.default = _default; \ No newline at end of file diff --git a/client/build/components/ChannelTools/index.js b/client/build/components/ChannelTools/index.js new file mode 100644 index 00000000..01da3cef --- /dev/null +++ b/client/build/components/ChannelTools/index.js @@ -0,0 +1,25 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _ChannelLoginForm = _interopRequireDefault(require("@containers/ChannelLoginForm")); + +var _ChannelCreateForm = _interopRequireDefault(require("@containers/ChannelCreateForm")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var ChannelTools = function ChannelTools() { + return _react.default.createElement("div", null, _react.default.createElement("h3", { + className: "h3--no-bottom" + }, "Log in to an existing channel:"), _react.default.createElement(_ChannelLoginForm.default, null), _react.default.createElement("h3", { + className: "h3--no-bottom" + }, "Create a brand new channel:"), _react.default.createElement(_ChannelCreateForm.default, null)); +}; + +var _default = ChannelTools; +exports.default = _default; \ No newline at end of file diff --git a/client/build/pages/AboutPage/index.js b/client/build/pages/AboutPage/index.js index 640e4b39..986bc1a9 100644 --- a/client/build/pages/AboutPage/index.js +++ b/client/build/pages/AboutPage/index.js @@ -9,7 +9,11 @@ var _react = _interopRequireDefault(require("react")); var _PageLayout = _interopRequireDefault(require("@components/PageLayout")); -var _AboutPageContent = _interopRequireDefault(require("@components/AboutPageContent")); +var _HorizontalSplit = _interopRequireDefault(require("@components/HorizontalSplit")); + +var _AboutSpeechOne = _interopRequireDefault(require("@components/AboutSpeechOne")); + +var _AboutSpeechTwo = _interopRequireDefault(require("@components/AboutSpeechTwo")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -46,7 +50,10 @@ function (_React$Component) { return _react.default.createElement(_PageLayout.default, { pageTitle: 'About', pageUri: 'about' - }, _react.default.createElement(_AboutPageContent.default, null)); + }, _react.default.createElement(_HorizontalSplit.default, { + leftSide: _react.default.createElement(_AboutSpeechOne.default, null), + rightSide: _react.default.createElement(_AboutSpeechTwo.default, null) + })); } }]); diff --git a/client/build/pages/ContentPageWrapper/index.js b/client/build/pages/ContentPageWrapper/index.js new file mode 100644 index 00000000..b36a485b --- /dev/null +++ b/client/build/pages/ContentPageWrapper/index.js @@ -0,0 +1,30 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _reactRedux = require("react-redux"); + +var _show = require("../../actions/show"); + +var _view = _interopRequireDefault(require("./view")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var mapStateToProps = function mapStateToProps(_ref) { + var show = _ref.show; + return { + error: show.request.error, + requestType: show.request.type + }; +}; + +var mapDispatchToProps = { + onHandleShowPageUri: _show.onHandleShowPageUri +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_view.default); + +exports.default = _default; \ No newline at end of file diff --git a/client/build/pages/ContentPageWrapper/view.js b/client/build/pages/ContentPageWrapper/view.js new file mode 100644 index 00000000..d4f19e64 --- /dev/null +++ b/client/build/pages/ContentPageWrapper/view.js @@ -0,0 +1,97 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _ErrorPage = _interopRequireDefault(require("@pages/ErrorPage")); + +var _ShowAssetLite = _interopRequireDefault(require("@pages/ShowAssetLite")); + +var _ShowAssetDetails = _interopRequireDefault(require("@pages/ShowAssetDetails")); + +var _ShowChannel = _interopRequireDefault(require("@pages/ShowChannel")); + +var _show_request_types = require("../../constants/show_request_types"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +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); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } + +var ContentPageWrapper = +/*#__PURE__*/ +function (_React$Component) { + function ContentPageWrapper() { + _classCallCheck(this, ContentPageWrapper); + + return _possibleConstructorReturn(this, _getPrototypeOf(ContentPageWrapper).apply(this, arguments)); + } + + _createClass(ContentPageWrapper, [{ + key: "componentDidMount", + value: function componentDidMount() { + this.props.onHandleShowPageUri(this.props.match.params); + } + }, { + key: "componentWillReceiveProps", + value: function componentWillReceiveProps(nextProps) { + if (nextProps.match.params !== this.props.match.params) { + this.props.onHandleShowPageUri(nextProps.match.params); + } + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + error = _this$props.error, + requestType = _this$props.requestType; + + if (error) { + return _react.default.createElement(_ErrorPage.default, { + error: error + }); + } + + switch (requestType) { + case _show_request_types.CHANNEL: + return _react.default.createElement(_ShowChannel.default, null); + + case _show_request_types.ASSET_LITE: + return _react.default.createElement(_ShowAssetLite.default, null); + + case _show_request_types.ASSET_DETAILS: + return _react.default.createElement(_ShowAssetDetails.default, null); + + default: + return _react.default.createElement("p", null, "loading..."); + } + } + }]); + + _inherits(ContentPageWrapper, _React$Component); + + return ContentPageWrapper; +}(_react.default.Component); + +; +var _default = ContentPageWrapper; +exports.default = _default; \ No newline at end of file diff --git a/client/build/pages/ErrorPage/index.js b/client/build/pages/ErrorPage/index.js index 16d290df..8036e66c 100644 --- a/client/build/pages/ErrorPage/index.js +++ b/client/build/pages/ErrorPage/index.js @@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); -var _NavBar = _interopRequireDefault(require("@containers/NavBar")); +var _PageLayout = _interopRequireDefault(require("@components/PageLayout")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -44,9 +44,10 @@ function (_React$Component) { key: "render", value: function render() { var error = this.props.error; - return _react.default.createElement("div", null, _react.default.createElement(_NavBar.default, null), _react.default.createElement("div", { - className: "row row--padded" - }, _react.default.createElement("p", null, error))); + return _react.default.createElement(_PageLayout.default, { + pageTitle: 'Error', + pageUri: 'error' + }, _react.default.createElement("p", null, error)); } }]); diff --git a/client/build/pages/FourOhFourPage/index.js b/client/build/pages/FourOhFourPage/index.js index 0dd8b1cd..7ddb792b 100644 --- a/client/build/pages/FourOhFourPage/index.js +++ b/client/build/pages/FourOhFourPage/index.js @@ -5,22 +5,54 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; -var _reactRedux = require("react-redux"); +var _react = _interopRequireDefault(require("react")); -var _view = _interopRequireDefault(require("./view")); +var _PageLayout = _interopRequireDefault(require("@components/PageLayout")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var mapStateToProps = function mapStateToProps(_ref) { - var _ref$site = _ref.site, - host = _ref$site.host, - title = _ref$site.title; - return { - host: host, - title: title - }; -}; +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } -var _default = (0, _reactRedux.connect)(mapStateToProps, null)(_view.default); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +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); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } + +var FourOhForPage = +/*#__PURE__*/ +function (_React$Component) { + function FourOhForPage() { + _classCallCheck(this, FourOhForPage); + + return _possibleConstructorReturn(this, _getPrototypeOf(FourOhForPage).apply(this, arguments)); + } + + _createClass(FourOhForPage, [{ + key: "render", + value: function render() { + return _react.default.createElement(_PageLayout.default, { + pageTitle: '404', + pageUri: '/404' + }, _react.default.createElement("h2", null, "404"), _react.default.createElement("p", null, "That page does not exist")); + } + }]); + + _inherits(FourOhForPage, _React$Component); + + return FourOhForPage; +}(_react.default.Component); + +; +var _default = FourOhForPage; exports.default = _default; \ No newline at end of file diff --git a/client/build/pages/FourOhFourPage/view.js b/client/build/pages/FourOhFourPage/view.js index cc7c9260..7ddb792b 100644 --- a/client/build/pages/FourOhFourPage/view.js +++ b/client/build/pages/FourOhFourPage/view.js @@ -7,9 +7,7 @@ exports.default = void 0; var _react = _interopRequireDefault(require("react")); -var _reactHelmet = _interopRequireDefault(require("react-helmet")); - -var _index = _interopRequireDefault(require("@containers/NavBar/index")); +var _PageLayout = _interopRequireDefault(require("@components/PageLayout")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -43,15 +41,10 @@ function (_React$Component) { _createClass(FourOhForPage, [{ key: "render", value: function render() { - var _this$props = this.props, - title = _this$props.title, - host = _this$props.host; - return _react.default.createElement("div", null, _react.default.createElement(_reactHelmet.default, null, _react.default.createElement("title", null, title, " - 404"), _react.default.createElement("link", { - rel: "canonical", - href: "".concat(host, "/404") - })), _react.default.createElement(_index.default, null), _react.default.createElement("div", { - className: "row row--padded" - }, _react.default.createElement("h2", null, "404"), _react.default.createElement("p", null, "That page does not exist"))); + return _react.default.createElement(_PageLayout.default, { + pageTitle: '404', + pageUri: '/404' + }, _react.default.createElement("h2", null, "404"), _react.default.createElement("p", null, "That page does not exist")); } }]); diff --git a/client/build/pages/HomePage/index.js b/client/build/pages/HomePage/index.js index a60ba204..d612a8af 100644 --- a/client/build/pages/HomePage/index.js +++ b/client/build/pages/HomePage/index.js @@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react")); var _PageLayout = _interopRequireDefault(require("@components/PageLayout")); -var _HomePageContent = _interopRequireDefault(require("@components/HomePageContent")); +var _PublishTool = _interopRequireDefault(require("@containers/PublishTool")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -46,7 +46,7 @@ function (_React$Component) { return _react.default.createElement(_PageLayout.default, { pageTitle: 'Speech', pageUri: '' - }, _react.default.createElement(_HomePageContent.default, null)); + }, _react.default.createElement(_PublishTool.default, null)); } }]); diff --git a/client/build/pages/LoginPage/view.js b/client/build/pages/LoginPage/view.js index e977686e..52d62f49 100644 --- a/client/build/pages/LoginPage/view.js +++ b/client/build/pages/LoginPage/view.js @@ -9,13 +9,13 @@ var _react = _interopRequireDefault(require("react")); var _reactRouterDom = require("react-router-dom"); -var _SEO = _interopRequireDefault(require("@components/SEO")); +var _PageLayout = _interopRequireDefault(require("@components/PageLayout")); -var _NavBar = _interopRequireDefault(require("@containers/NavBar")); +var _HorizontalSplit = _interopRequireDefault(require("@components/HorizontalSplit")); -var _ChannelLoginForm = _interopRequireDefault(require("@containers/ChannelLoginForm")); +var _AboutChannels = _interopRequireDefault(require("@components/AboutChannels")); -var _ChannelCreateForm = _interopRequireDefault(require("@containers/ChannelCreateForm")); +var _ChannelTools = _interopRequireDefault(require("@components/ChannelTools")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -57,32 +57,13 @@ function (_React$Component) { }, { key: "render", value: function render() { - return _react.default.createElement("div", null, _react.default.createElement(_SEO.default, { + return _react.default.createElement(_PageLayout.default, { pageTitle: 'Login', pageUri: 'login' - }), _react.default.createElement(_NavBar.default, null), _react.default.createElement("div", { - className: "row row--padded" - }, _react.default.createElement("div", { - className: "column column--5 column--med-10 align-content-top" - }, _react.default.createElement("div", { - className: "column column--8 column--med-10" - }, _react.default.createElement("p", null, "Channels allow you to publish and group content under an identity. You can create a channel for yourself, or share one with like-minded friends. You can create 1 channel, or 100, so whether you're ", _react.default.createElement("a", { - className: "link--primary", - target: "_blank", - href: "/@catalonia2017:43dcf47163caa21d8404d9fe9b30f78ef3e146a8" - }, "documenting important events"), ", or making a public repository for ", _react.default.createElement("a", { - className: "link--primary", - target: "_blank", - href: "/@catGifs" - }, "cat gifs"), " (password: '1234'), try creating a channel for it!"))), _react.default.createElement("div", { - className: "column column--5 column--med-10 align-content-top" - }, _react.default.createElement("div", { - className: "column column--8 column--med-10" - }, _react.default.createElement("h3", { - className: "h3--no-bottom" - }, "Log in to an existing channel:"), _react.default.createElement(_ChannelLoginForm.default, null), _react.default.createElement("h3", { - className: "h3--no-bottom" - }, "Create a brand new channel:"), _react.default.createElement(_ChannelCreateForm.default, null))))); + }, _react.default.createElement(_HorizontalSplit.default, { + leftSide: _react.default.createElement(_AboutChannels.default, null), + rightSide: _react.default.createElement(_ChannelTools.default, null) + })); } }]); diff --git a/client/build/pages/MultisitePage/index.js b/client/build/pages/MultisitePage/index.js index cbf1c745..1f1aa03c 100644 --- a/client/build/pages/MultisitePage/index.js +++ b/client/build/pages/MultisitePage/index.js @@ -7,9 +7,7 @@ exports.default = void 0; var _react = _interopRequireDefault(require("react")); -var _SEO = _interopRequireDefault(require("@components/SEO")); - -var _NavBar = _interopRequireDefault(require("@containers/NavBar")); +var _PageLayout = _interopRequireDefault(require("@components/PageLayout")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -43,13 +41,9 @@ function (_React$Component) { _createClass(MultisitePage, [{ key: "render", value: function render() { - return _react.default.createElement("div", null, _react.default.createElement(_SEO.default, { + return _react.default.createElement(_PageLayout.default, { pageTitle: 'Multisite', - pageUri: 'multisite' - }), _react.default.createElement(_NavBar.default, null), _react.default.createElement("div", { - className: "row row--padded flex-container--row flex-container--center-center" - }, _react.default.createElement("div", { - className: "column column--8 column--med-10" + pageUri: '/multisite' }, _react.default.createElement("p", { className: "pull-quote" }, "Introducing Spee.ch Multisite"), _react.default.createElement("p", null, "Hi there! My name is ", _react.default.createElement("a", { @@ -85,7 +79,7 @@ function (_React$Component) { }, "CLICK HERE TO RSVP!"))), _react.default.createElement("p", null, "At this first demonstration, we will walk through preparing a server environment, installing LBRY and Spee.ch, and how to make local changes to your Spee.ch instance. Details below:"), _react.default.createElement("ul", null, _react.default.createElement("li", null, "When: Friday, May 18, 2018"), _react.default.createElement("li", null, "Time: 5:00 p.m. PST"), _react.default.createElement("li", null, "Where: Google Hangouts"), _react.default.createElement("li", null, "Link: ", _react.default.createElement("a", { href: 'https://meet.google.com/aex-ghqg-kcs', target: '_blank' - }, "meet.google.com/aex-ghqg-kcs")), _react.default.createElement("li", null, "System Requirements: If you have a server, please make sure you have MySql, Node and NPM installed. If you need help installing the above, or if you need a server to run your own instance on, please join the Hangout 30 minutes ahead of time and we will help get you set up =]"), _react.default.createElement("li", null, "Questions: hello@lbry.io"))))); + }, "meet.google.com/aex-ghqg-kcs")), _react.default.createElement("li", null, "System Requirements: If you have a server, please make sure you have MySql, Node and NPM installed. If you need help installing the above, or if you need a server to run your own instance on, please join the Hangout 30 minutes ahead of time and we will help get you set up =]"), _react.default.createElement("li", null, "Questions: hello@lbry.io"))); } }]); @@ -94,6 +88,5 @@ function (_React$Component) { return MultisitePage; }(_react.default.Component); -; var _default = MultisitePage; exports.default = _default; \ No newline at end of file diff --git a/client/build/pages/ShowAssetDetails/index.js b/client/build/pages/ShowAssetDetails/index.js new file mode 100644 index 00000000..092c5daa --- /dev/null +++ b/client/build/pages/ShowAssetDetails/index.js @@ -0,0 +1,38 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _reactRedux = require("react-redux"); + +var _view = _interopRequireDefault(require("./view")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var mapStateToProps = function mapStateToProps(_ref) { + var show = _ref.show; + // select request info + var requestId = show.request.id; // select asset info + + var asset; + var request = show.requestList[requestId] || null; + var assetList = show.assetList; + + if (request && assetList) { + var assetKey = request.key; // note: just store this in the request + + asset = assetList[assetKey] || null; + } + + ; // return props + + return { + asset: asset + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps, null)(_view.default); + +exports.default = _default; \ No newline at end of file diff --git a/client/build/pages/ShowAssetDetails/view.js b/client/build/pages/ShowAssetDetails/view.js new file mode 100644 index 00000000..f2ec59f6 --- /dev/null +++ b/client/build/pages/ShowAssetDetails/view.js @@ -0,0 +1,90 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _SEO = _interopRequireDefault(require("@components/SEO")); + +var _index = _interopRequireDefault(require("../../containers/NavBar/index")); + +var _index2 = _interopRequireDefault(require("../ErrorPage/index")); + +var _index3 = _interopRequireDefault(require("../../containers/AssetTitle/index")); + +var _index4 = _interopRequireDefault(require("../../containers/AssetDisplay/index")); + +var _index5 = _interopRequireDefault(require("../../containers/AssetInfo/index")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +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); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } + +var ShowAssetDetails = +/*#__PURE__*/ +function (_React$Component) { + function ShowAssetDetails() { + _classCallCheck(this, ShowAssetDetails); + + return _possibleConstructorReturn(this, _getPrototypeOf(ShowAssetDetails).apply(this, arguments)); + } + + _createClass(ShowAssetDetails, [{ + key: "render", + value: function render() { + var asset = this.props.asset; + + if (asset) { + var name = asset.claimData.name; + return _react.default.createElement("div", null, _react.default.createElement(_SEO.default, { + pageTitle: "".concat(name, " - details"), + asset: asset + }), _react.default.createElement(_index.default, null), _react.default.createElement("div", { + className: "row row--tall row--padded" + }, _react.default.createElement("div", { + className: "column column--10" + }, _react.default.createElement(_index3.default, null)), _react.default.createElement("div", { + className: "column column--5 column--sml-10 align-content-top" + }, _react.default.createElement("div", { + className: "row row--padded show-details-container" + }, _react.default.createElement(_index4.default, null))), _react.default.createElement("div", { + className: "column column--5 column--sml-10 align-content-top" + }, _react.default.createElement("div", { + className: "row row--padded" + }, _react.default.createElement(_index5.default, null))))); + } + + ; + return _react.default.createElement(_index2.default, { + error: 'loading asset data...' + }); + } + }]); + + _inherits(ShowAssetDetails, _React$Component); + + return ShowAssetDetails; +}(_react.default.Component); + +; +var _default = ShowAssetDetails; +exports.default = _default; \ No newline at end of file diff --git a/client/build/pages/ShowAssetLite/index.js b/client/build/pages/ShowAssetLite/index.js new file mode 100644 index 00000000..092c5daa --- /dev/null +++ b/client/build/pages/ShowAssetLite/index.js @@ -0,0 +1,38 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _reactRedux = require("react-redux"); + +var _view = _interopRequireDefault(require("./view")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var mapStateToProps = function mapStateToProps(_ref) { + var show = _ref.show; + // select request info + var requestId = show.request.id; // select asset info + + var asset; + var request = show.requestList[requestId] || null; + var assetList = show.assetList; + + if (request && assetList) { + var assetKey = request.key; // note: just store this in the request + + asset = assetList[assetKey] || null; + } + + ; // return props + + return { + asset: asset + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps, null)(_view.default); + +exports.default = _default; \ No newline at end of file diff --git a/client/build/pages/ShowAssetLite/view.js b/client/build/pages/ShowAssetLite/view.js new file mode 100644 index 00000000..faa4711d --- /dev/null +++ b/client/build/pages/ShowAssetLite/view.js @@ -0,0 +1,79 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _reactRouterDom = require("react-router-dom"); + +var _SEO = _interopRequireDefault(require("@components/SEO")); + +var _index = _interopRequireDefault(require("../../containers/AssetDisplay/index")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +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); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } + +var ShowLite = +/*#__PURE__*/ +function (_React$Component) { + function ShowLite() { + _classCallCheck(this, ShowLite); + + return _possibleConstructorReturn(this, _getPrototypeOf(ShowLite).apply(this, arguments)); + } + + _createClass(ShowLite, [{ + key: "render", + value: function render() { + var asset = this.props.asset; + + if (asset) { + var _asset$claimData = asset.claimData, + name = _asset$claimData.name, + claimId = _asset$claimData.claimId; + return _react.default.createElement("div", { + className: "row row--tall flex-container--column flex-container--center-center show-lite-container" + }, _react.default.createElement(_SEO.default, { + pageTitle: name, + asset: asset + }), _react.default.createElement(_index.default, null), _react.default.createElement(_reactRouterDom.Link, { + id: "asset-boilerpate", + className: "link--primary fine-print", + to: "/".concat(claimId, "/").concat(name) + }, "hosted via Spee.ch")); + } + + return _react.default.createElement("div", { + className: "row row--tall row--padded flex-container--column flex-container--center-center" + }, _react.default.createElement("p", null, "loading asset data...")); + } + }]); + + _inherits(ShowLite, _React$Component); + + return ShowLite; +}(_react.default.Component); + +; +var _default = ShowLite; +exports.default = _default; \ No newline at end of file diff --git a/client/build/pages/ShowChannel/index.js b/client/build/pages/ShowChannel/index.js new file mode 100644 index 00000000..9c3d0661 --- /dev/null +++ b/client/build/pages/ShowChannel/index.js @@ -0,0 +1,35 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _reactRedux = require("react-redux"); + +var _view = _interopRequireDefault(require("./view")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var mapStateToProps = function mapStateToProps(_ref) { + var show = _ref.show; + // select request info + var requestId = show.request.id; // select request + + var previousRequest = show.requestList[requestId] || null; // select channel + + var channel; + + if (previousRequest) { + var channelKey = previousRequest.key; + channel = show.channelList[channelKey] || null; + } + + return { + channel: channel + }; +}; + +var _default = (0, _reactRedux.connect)(mapStateToProps, null)(_view.default); + +exports.default = _default; \ No newline at end of file diff --git a/client/build/pages/ShowChannel/view.js b/client/build/pages/ShowChannel/view.js new file mode 100644 index 00000000..ea2d1803 --- /dev/null +++ b/client/build/pages/ShowChannel/view.js @@ -0,0 +1,78 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _PageLayout = _interopRequireDefault(require("@components/PageLayout")); + +var _ErrorPage = _interopRequireDefault(require("@pages/ErrorPage")); + +var _ChannelClaimsDisplay = _interopRequireDefault(require("@containers/ChannelClaimsDisplay")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +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); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } + +var ShowChannel = +/*#__PURE__*/ +function (_React$Component) { + function ShowChannel() { + _classCallCheck(this, ShowChannel); + + return _possibleConstructorReturn(this, _getPrototypeOf(ShowChannel).apply(this, arguments)); + } + + _createClass(ShowChannel, [{ + key: "render", + value: function render() { + var channel = this.props.channel; + + if (channel) { + var name = channel.name, + longId = channel.longId, + shortId = channel.shortId; + return _react.default.createElement(_PageLayout.default, { + pageTitle: name, + pageUri: channel + }, _react.default.createElement("h2", null, "channel name: ", name), _react.default.createElement("p", { + className: 'fine-print' + }, "full channel id: ", longId), _react.default.createElement("p", { + className: 'fine-print' + }, "short channel id: ", shortId), _react.default.createElement(_ChannelClaimsDisplay.default, null)); + } + + ; + return _react.default.createElement(_ErrorPage.default, { + error: 'loading channel data...' + }); + } + }]); + + _inherits(ShowChannel, _React$Component); + + return ShowChannel; +}(_react.default.Component); + +; +var _default = ShowChannel; +exports.default = _default; \ No newline at end of file diff --git a/client/src/app.js b/client/src/app.js index ce77de14..1cdf42e1 100644 --- a/client/src/app.js +++ b/client/src/app.js @@ -4,7 +4,7 @@ import { Route, Switch } from 'react-router-dom'; import HomePage from '@pages/HomePage'; import AboutPage from '@pages/AboutPage'; import LoginPage from '@pages/LoginPage'; -import ShowPage from '@pages/ShowPage'; +import ContentPageWrapper from '@pages/ContentPageWrapper'; import FourOhFourPage from '@pages/FourOhFourPage'; import MultisitePage from '@pages/MultisitePage'; @@ -15,8 +15,8 @@ const customizedApp = () => { - - + + ); diff --git a/client/src/components/AboutChannels/index.jsx b/client/src/components/AboutChannels/index.jsx new file mode 100644 index 00000000..657efa1b --- /dev/null +++ b/client/src/components/AboutChannels/index.jsx @@ -0,0 +1,11 @@ +import React from 'react'; + +const AboutChannels = () => { + return ( +
+

Channels allow you to publish and group content under an identity. You can create a channel for yourself, or share one with like-minded friends. You can create 1 channel, or 100, so whether you're documenting important events, or making a public repository for cat gifs (password: '1234'), try creating a channel for it!

+
+ ); +}; + +export default AboutChannels; diff --git a/client/src/components/AboutPageContent/index.jsx b/client/src/components/AboutPageContent/index.jsx deleted file mode 100644 index 952bcf39..00000000 --- a/client/src/components/AboutPageContent/index.jsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; - -import AboutSpeechOne from '@components/AboutSpeechOne'; -import AboutSpeechTwo from '@components/AboutSpeechTwo'; -import HorizontalSplit from '@components/HorizontalSplit'; - -const AboutPageContent = () => { - return ( - } - rightSide={} - /> - ); -}; - -export default AboutPageContent; diff --git a/client/src/components/ChannelTools/index.jsx b/client/src/components/ChannelTools/index.jsx new file mode 100644 index 00000000..ffe54822 --- /dev/null +++ b/client/src/components/ChannelTools/index.jsx @@ -0,0 +1,16 @@ +import React from 'react'; +import ChannelLoginForm from '@containers/ChannelLoginForm'; +import ChannelCreateForm from '@containers/ChannelCreateForm'; + +const ChannelTools = () => { + return ( +
+

Log in to an existing channel:

+ +

Create a brand new channel:

+ +
+ ); +}; + +export default ChannelTools; diff --git a/client/src/components/HomePageContent/index.jsx b/client/src/components/HomePageContent/index.jsx deleted file mode 100644 index e2e87f09..00000000 --- a/client/src/components/HomePageContent/index.jsx +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; - -import PublishTool from '@containers/PublishTool'; - -const HomePageContent = () => { - return ( - - ); -}; - -export default HomePageContent; diff --git a/client/src/containers/ShowChannel/view.jsx b/client/src/containers/ShowChannel/view.jsx deleted file mode 100644 index 62eca2ec..00000000 --- a/client/src/containers/ShowChannel/view.jsx +++ /dev/null @@ -1,38 +0,0 @@ -import React from 'react'; -// components -import SEO from '@components/SEO'; -// pages -import ErrorPage from '@pages/ErrorPage'; -// containers -import NavBar from '../NavBar'; -import ChannelClaimsDisplay from '../ChannelClaimsDisplay'; - -class ShowChannel extends React.Component { - render () { - const { channel } = this.props; - if (channel) { - const { name, longId, shortId } = channel; - return ( -
- - -
-
-

channel name: {name}

-

full channel id: {longId}

-

short channel id: {shortId}

-
-
- -
-
-
- ); - }; - return ( - - ); - } -}; - -export default ShowChannel; diff --git a/client/src/pages/AboutPage/index.jsx b/client/src/pages/AboutPage/index.jsx index 71614d21..acb69fa4 100644 --- a/client/src/pages/AboutPage/index.jsx +++ b/client/src/pages/AboutPage/index.jsx @@ -1,12 +1,18 @@ import React from 'react'; import PageLayout from '@components/PageLayout'; -import AboutPageContent from '@components/AboutPageContent'; +import HorizontalSplit from '@components/HorizontalSplit'; +import AboutSpeechOne from '@components/AboutSpeechOne'; +import AboutSpeechTwo from '@components/AboutSpeechTwo'; + class AboutPage extends React.Component { render () { return ( - + } + rightSide={} + /> ); } diff --git a/client/src/pages/ShowPage/index.jsx b/client/src/pages/ContentPageWrapper/index.jsx similarity index 100% rename from client/src/pages/ShowPage/index.jsx rename to client/src/pages/ContentPageWrapper/index.jsx diff --git a/client/src/pages/ShowPage/view.jsx b/client/src/pages/ContentPageWrapper/view.jsx similarity index 77% rename from client/src/pages/ShowPage/view.jsx rename to client/src/pages/ContentPageWrapper/view.jsx index 4e7605f7..e88f8001 100644 --- a/client/src/pages/ShowPage/view.jsx +++ b/client/src/pages/ContentPageWrapper/view.jsx @@ -1,12 +1,12 @@ import React from 'react'; import ErrorPage from '@pages/ErrorPage'; -import ShowAssetLite from '@containers/ShowAssetLite'; -import ShowAssetDetails from '@containers/ShowAssetDetails'; -import ShowChannel from '@containers/ShowChannel'; +import ShowAssetLite from '@pages/ShowAssetLite'; +import ShowAssetDetails from '@pages/ShowAssetDetails'; +import ShowChannel from '@pages/ShowChannel'; import { CHANNEL, ASSET_LITE, ASSET_DETAILS } from '../../constants/show_request_types'; -class ShowPage extends React.Component { +class ContentPageWrapper extends React.Component { componentDidMount () { this.props.onHandleShowPageUri(this.props.match.params); } @@ -35,4 +35,4 @@ class ShowPage extends React.Component { } }; -export default ShowPage; +export default ContentPageWrapper; diff --git a/client/src/pages/ErrorPage/index.jsx b/client/src/pages/ErrorPage/index.jsx index c5dc71f5..03c156bc 100644 --- a/client/src/pages/ErrorPage/index.jsx +++ b/client/src/pages/ErrorPage/index.jsx @@ -1,17 +1,14 @@ import React from 'react'; import PropTypes from 'prop-types'; -import NavBar from '@containers/NavBar'; +import PageLayout from '@components/PageLayout'; class ErrorPage extends React.Component { render () { const { error } = this.props; return ( -
- -
-

{error}

-
-
+ +

{error}

+
); } }; diff --git a/client/src/pages/FourOhFourPage/index.jsx b/client/src/pages/FourOhFourPage/index.jsx index b16aa2a5..b08c6294 100644 --- a/client/src/pages/FourOhFourPage/index.jsx +++ b/client/src/pages/FourOhFourPage/index.jsx @@ -1,11 +1,15 @@ -import { connect } from 'react-redux'; -import View from './view'; +import React from 'react'; +import PageLayout from '@components/PageLayout'; -const mapStateToProps = ({ site: { host, title } }) => { - return { - host, - title, - }; +class FourOhForPage extends React.Component { + render () { + return ( + +

404

+

That page does not exist

+
+ ); + } }; -export default connect(mapStateToProps, null)(View); +export default FourOhForPage; diff --git a/client/src/pages/FourOhFourPage/view.jsx b/client/src/pages/FourOhFourPage/view.jsx deleted file mode 100644 index 83b0435e..00000000 --- a/client/src/pages/FourOhFourPage/view.jsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; -import Helmet from 'react-helmet'; -import NavBar from '@containers/NavBar/index'; - -class FourOhForPage extends React.Component { - render () { - const {title, host} = this.props; - return ( -
- - {title} - 404 - - - -
-

404

-

That page does not exist

-
-
- ); - } -}; - -export default FourOhForPage; diff --git a/client/src/pages/HomePage/index.jsx b/client/src/pages/HomePage/index.jsx index 29111ac2..5b5150c5 100644 --- a/client/src/pages/HomePage/index.jsx +++ b/client/src/pages/HomePage/index.jsx @@ -1,12 +1,13 @@ import React from 'react'; import PageLayout from '@components/PageLayout'; -import HomePageContent from '@components/HomePageContent'; + +import PublishTool from '@containers/PublishTool'; class HomePage extends React.Component { render () { return ( - + ); } diff --git a/client/src/pages/LoginPage/view.jsx b/client/src/pages/LoginPage/view.jsx index 72b54a84..9d7df75f 100644 --- a/client/src/pages/LoginPage/view.jsx +++ b/client/src/pages/LoginPage/view.jsx @@ -1,9 +1,10 @@ import React from 'react'; import { withRouter } from 'react-router-dom'; -import SEO from '@components/SEO'; -import NavBar from '@containers/NavBar'; -import ChannelLoginForm from '@containers/ChannelLoginForm'; -import ChannelCreateForm from '@containers/ChannelCreateForm'; +import PageLayout from '@components/PageLayout'; +import HorizontalSplit from '@components/HorizontalSplit'; + +import AboutChannels from '@components/AboutChannels'; +import ChannelTools from '@components/ChannelTools'; class LoginPage extends React.Component { componentWillReceiveProps (newProps) { @@ -14,24 +15,12 @@ class LoginPage extends React.Component { } render () { return ( -
- - -
-
-
-

Channels allow you to publish and group content under an identity. You can create a channel for yourself, or share one with like-minded friends. You can create 1 channel, or 100, so whether you're documenting important events, or making a public repository for cat gifs (password: '1234'), try creating a channel for it!

-
-
-
-

Log in to an existing channel:

- -

Create a brand new channel:

- -
-
-
-
+ + } + rightSide={} + /> + ); } }; diff --git a/client/src/pages/MultisitePage/index.jsx b/client/src/pages/MultisitePage/index.jsx index c3df9873..5629164e 100644 --- a/client/src/pages/MultisitePage/index.jsx +++ b/client/src/pages/MultisitePage/index.jsx @@ -1,59 +1,52 @@ import React from 'react'; -import SEO from '@components/SEO'; -import NavBar from '@containers/NavBar'; +import PageLayout from '@components/PageLayout'; class MultisitePage extends React.Component { render () { return ( -
- - -
-
-

Introducing Spee.ch Multisite

-

Hi there! My name is Bill, and I’d like to speak with you about Spee.ch. No, not ‘speech,’ ‘Spee.ch.’ You know what, just read on...

-

A Little Background

-

Wow, time flies! A little over a year ago Spee.ch was nothing more than a glimmer in the eye of LBRY CEO Jeremy Kaufman. At that time, the LBRY protocol was still so early in its development, that there were no web-based applications for interacting with the LBRY blockchain. But then, something beautiful happened. On March 29th, 2017, Jeremy sat down with Jack, and together they live coded a single-page PHP site that could publish images to the LBRY network. And just like that, Spee.ch was born!

-

Being that LBRY is an open source project, Jeremy ended the session by inviting community members who were interested in the project to take the reigns and see where Spee.ch could go. I was one of the devs that did just that, and it wasn’t long before I was on a weekly call dedicated to this project with contributors from around the world.

-

At this point in time, the vision for Spee.ch was pretty simple: create a web-based hosting service that used the LBRY network as a database for free image and video sharing. In other words, an ‘imgur on the blockchain.’

-

Growth

-

You might be wondering, “So, what has the Spee.ch team been doing since then?”. Well, that is a great question. I’m glad you asked.

-

As it turned out, the initial single-serving site was only the beginning. We wanted to add more features, improve user experience, and continue to rapidly innovate on new ideas to explore what web-based image-hosting on the blockchain could look like. And now -- a couple of re-designs, 1,428 commits, and 18 contributors later (as of the time of this writing) -- we’ve been through a lot of changes. We changed the URL scheme, switched out the PHP for Javascript (sorry Jeremy!), added more HTML pages, removed those HTML pages, added Handlebars, removed most of Handlebars, added React, and... you get the picture.

-

It’s been a lot of work, and through all of these changes, we have been guided by our original vision: develop a free web app that allows users to share images and video using a blockchain.

-

However, we ask ourselves constantly: what else can we be doing? What can we be doing differently? What features can we be doing better? And it is those kinds of questions that lead us to this post.

-

A New Initiative

-

As Spee.ch developed, we were lucky to find an amazing community spring up around the project that contributed bug reports, bug fixes, feature requests, pull requests, etc., but ultimately we are limited by the hours we have in the day, and while some requests get prioritized, others get shelved.

-

So we started wondering: What if instead of having the community help us build our platform, we started helping them build theirs? We started mulling this over, and the more we thought about it the more we liked it. And thus, Spee.ch Multisite was born.

-

Spee.ch Multisite

-

The vision for Spee.ch Multisite is to maintain a foundational codebase that will support a greater variety of content-sharing web apps built on LBRY, allowing these apps to publish and retrieve content from the network via the blockchain.

-

Run Your Own Spee.ch!

-

Ok, here’s the tl:dr: the purpose of the Spee.ch Multisite initiative is to enable you to run your own version of Spee.ch.

-

Spee.ch Multisite will provide a helpful set of basic code to get you going, but we purposefully want to give you control and provide a sandbox in which you can develop the look, content, and features for your site. The shared code base will be developed to support you in that quest.

-

So if you don’t want your site called or looking anything like Spee.ch, we encourage that! Don’t hesitate to make it your own!

-

For the Community by the Community

-

Initially, sites built on Spee.ch Multisite will look a lot like Spee.ch, but you will be able to add custom pages, update the look of components, and limit the content on your spee.ch site as you see fit.

-

Over time, it is our hope that the project will grow to incorporate many more components and features developed by us and the community to support a wide variety of functionalities beyond what the current spee.ch site is capable of.

-

A Common Codebase

-

If you have been following the project, you may have already noticed that the original github repository has grown into two: www.spee.ch and spee.ch. I will save the specifics for a future tech-focused blog post in the coming weeks, but the reason for these changes is to modularise the code so that is it easier for anyone who wants to run their own version of Spee.ch to do so, and to be able to customize their Spee.ch to their liking.

-

What About the Flagship Spee.ch Site?

-

Don’t worry! If you like using Spee.ch and have no intention of running your own site, we will still be here running it for you! We are dedicated to pushing it forward and using it as patient zero for all additions to the Spee.ch Multisite codebase.

-

Join Us

-

Friday, May 18, we will be hosting a live demo showcasing the alpha version of Spee.ch Multisite. It’s still quite young, but that’s the point: we want to realize this vision together.

-

CLICK HERE TO RSVP!

-

At this first demonstration, we will walk through preparing a server environment, installing LBRY and Spee.ch, and how to make local changes to your Spee.ch instance. Details below:

-
    -
  • When: Friday, May 18, 2018
  • -
  • Time: 5:00 p.m. PST
  • -
  • Where: Google Hangouts
  • -
  • Link: meet.google.com/aex-ghqg-kcs
  • -
  • System Requirements: If you have a server, please make sure you have MySql, Node and NPM installed. If you need help installing the above, or if you need a server to run your own instance on, please join the Hangout 30 minutes ahead of time and we will help get you set up =]
  • -
  • Questions: hello@lbry.io
  • -
-
-
-
+ +

Introducing Spee.ch Multisite

+

Hi there! My name is Bill, and I’d like to speak with you about Spee.ch. No, not ‘speech,’ ‘Spee.ch.’ You know what, just read on...

+

A Little Background

+

Wow, time flies! A little over a year ago Spee.ch was nothing more than a glimmer in the eye of LBRY CEO Jeremy Kaufman. At that time, the LBRY protocol was still so early in its development, that there were no web-based applications for interacting with the LBRY blockchain. But then, something beautiful happened. On March 29th, 2017, Jeremy sat down with Jack, and together they live coded a single-page PHP site that could publish images to the LBRY network. And just like that, Spee.ch was born!

+

Being that LBRY is an open source project, Jeremy ended the session by inviting community members who were interested in the project to take the reigns and see where Spee.ch could go. I was one of the devs that did just that, and it wasn’t long before I was on a weekly call dedicated to this project with contributors from around the world.

+

At this point in time, the vision for Spee.ch was pretty simple: create a web-based hosting service that used the LBRY network as a database for free image and video sharing. In other words, an ‘imgur on the blockchain.’

+

Growth

+

You might be wondering, “So, what has the Spee.ch team been doing since then?”. Well, that is a great question. I’m glad you asked.

+

As it turned out, the initial single-serving site was only the beginning. We wanted to add more features, improve user experience, and continue to rapidly innovate on new ideas to explore what web-based image-hosting on the blockchain could look like. And now -- a couple of re-designs, 1,428 commits, and 18 contributors later (as of the time of this writing) -- we’ve been through a lot of changes. We changed the URL scheme, switched out the PHP for Javascript (sorry Jeremy!), added more HTML pages, removed those HTML pages, added Handlebars, removed most of Handlebars, added React, and... you get the picture.

+

It’s been a lot of work, and through all of these changes, we have been guided by our original vision: develop a free web app that allows users to share images and video using a blockchain.

+

However, we ask ourselves constantly: what else can we be doing? What can we be doing differently? What features can we be doing better? And it is those kinds of questions that lead us to this post.

+

A New Initiative

+

As Spee.ch developed, we were lucky to find an amazing community spring up around the project that contributed bug reports, bug fixes, feature requests, pull requests, etc., but ultimately we are limited by the hours we have in the day, and while some requests get prioritized, others get shelved.

+

So we started wondering: What if instead of having the community help us build our platform, we started helping them build theirs? We started mulling this over, and the more we thought about it the more we liked it. And thus, Spee.ch Multisite was born.

+

Spee.ch Multisite

+

The vision for Spee.ch Multisite is to maintain a foundational codebase that will support a greater variety of content-sharing web apps built on LBRY, allowing these apps to publish and retrieve content from the network via the blockchain.

+

Run Your Own Spee.ch!

+

Ok, here’s the tl:dr: the purpose of the Spee.ch Multisite initiative is to enable you to run your own version of Spee.ch.

+

Spee.ch Multisite will provide a helpful set of basic code to get you going, but we purposefully want to give you control and provide a sandbox in which you can develop the look, content, and features for your site. The shared code base will be developed to support you in that quest.

+

So if you don’t want your site called or looking anything like Spee.ch, we encourage that! Don’t hesitate to make it your own!

+

For the Community by the Community

+

Initially, sites built on Spee.ch Multisite will look a lot like Spee.ch, but you will be able to add custom pages, update the look of components, and limit the content on your spee.ch site as you see fit.

+

Over time, it is our hope that the project will grow to incorporate many more components and features developed by us and the community to support a wide variety of functionalities beyond what the current spee.ch site is capable of.

+

A Common Codebase

+

If you have been following the project, you may have already noticed that the original github repository has grown into two: www.spee.ch and spee.ch. I will save the specifics for a future tech-focused blog post in the coming weeks, but the reason for these changes is to modularise the code so that is it easier for anyone who wants to run their own version of Spee.ch to do so, and to be able to customize their Spee.ch to their liking.

+

What About the Flagship Spee.ch Site?

+

Don’t worry! If you like using Spee.ch and have no intention of running your own site, we will still be here running it for you! We are dedicated to pushing it forward and using it as patient zero for all additions to the Spee.ch Multisite codebase.

+

Join Us

+

Friday, May 18, we will be hosting a live demo showcasing the alpha version of Spee.ch Multisite. It’s still quite young, but that’s the point: we want to realize this vision together.

+

CLICK HERE TO RSVP!

+

At this first demonstration, we will walk through preparing a server environment, installing LBRY and Spee.ch, and how to make local changes to your Spee.ch instance. Details below:

+
    +
  • When: Friday, May 18, 2018
  • +
  • Time: 5:00 p.m. PST
  • +
  • Where: Google Hangouts
  • +
  • Link: meet.google.com/aex-ghqg-kcs
  • +
  • System Requirements: If you have a server, please make sure you have MySql, Node and NPM installed. If you need help installing the above, or if you need a server to run your own instance on, please join the Hangout 30 minutes ahead of time and we will help get you set up =]
  • +
  • Questions: hello@lbry.io
  • +
+
); } -}; +} export default MultisitePage; diff --git a/client/src/containers/ShowAssetDetails/index.js b/client/src/pages/ShowAssetDetails/index.js similarity index 100% rename from client/src/containers/ShowAssetDetails/index.js rename to client/src/pages/ShowAssetDetails/index.js diff --git a/client/src/containers/ShowAssetDetails/view.jsx b/client/src/pages/ShowAssetDetails/view.jsx similarity index 79% rename from client/src/containers/ShowAssetDetails/view.jsx rename to client/src/pages/ShowAssetDetails/view.jsx index 8aebc5a4..f0605c7f 100644 --- a/client/src/containers/ShowAssetDetails/view.jsx +++ b/client/src/pages/ShowAssetDetails/view.jsx @@ -1,10 +1,10 @@ import React from 'react'; import SEO from '@components/SEO'; -import NavBar from '../NavBar'; -import ErrorPage from '../../pages/ErrorPage'; -import AssetTitle from '../AssetTitle'; -import AssetDisplay from '../AssetDisplay'; -import AssetInfo from '../AssetInfo'; +import NavBar from '../../containers/NavBar/index'; +import ErrorPage from '../ErrorPage/index'; +import AssetTitle from '../../containers/AssetTitle/index'; +import AssetDisplay from '../../containers/AssetDisplay/index'; +import AssetInfo from '../../containers/AssetInfo/index'; class ShowAssetDetails extends React.Component { render () { diff --git a/client/src/containers/ShowAssetLite/index.js b/client/src/pages/ShowAssetLite/index.js similarity index 100% rename from client/src/containers/ShowAssetLite/index.js rename to client/src/pages/ShowAssetLite/index.js diff --git a/client/src/containers/ShowAssetLite/view.jsx b/client/src/pages/ShowAssetLite/view.jsx similarity index 93% rename from client/src/containers/ShowAssetLite/view.jsx rename to client/src/pages/ShowAssetLite/view.jsx index 6848011c..7e9ca1a4 100644 --- a/client/src/containers/ShowAssetLite/view.jsx +++ b/client/src/pages/ShowAssetLite/view.jsx @@ -3,7 +3,7 @@ import { Link } from 'react-router-dom'; // components import SEO from '@components/SEO'; // containers -import AssetDisplay from '../AssetDisplay'; +import AssetDisplay from '../../containers/AssetDisplay/index'; class ShowLite extends React.Component { render () { diff --git a/client/src/containers/ShowChannel/index.js b/client/src/pages/ShowChannel/index.js similarity index 100% rename from client/src/containers/ShowChannel/index.js rename to client/src/pages/ShowChannel/index.js diff --git a/client/src/pages/ShowChannel/view.jsx b/client/src/pages/ShowChannel/view.jsx new file mode 100644 index 00000000..73c09dce --- /dev/null +++ b/client/src/pages/ShowChannel/view.jsx @@ -0,0 +1,26 @@ +import React from 'react'; +import PageLayout from '@components/PageLayout'; +import ErrorPage from '@pages/ErrorPage'; +import ChannelClaimsDisplay from '@containers/ChannelClaimsDisplay'; + +class ShowChannel extends React.Component { + render () { + const { channel } = this.props; + if (channel) { + const { name, longId, shortId } = channel; + return ( + +

channel name: {name}

+

full channel id: {longId}

+

short channel id: {shortId}

+ +
+ ); + }; + return ( + + ); + } +}; + +export default ShowChannel; -- 2.45.3 From 57c14f10af2c4c9a65b030726a989911d6100f1d Mon Sep 17 00:00:00 2001 From: bill bittner Date: Thu, 31 May 2018 17:06:00 -0700 Subject: [PATCH 07/24] moved show pages to pages folder --- .../components/ChannelInfoDisplay/index.js | 24 +++++ client/build/pages/ShowAssetDetails/view.js | 34 +++---- client/build/pages/ShowAssetLite/view.js | 7 +- client/build/pages/ShowChannel/view.js | 15 +-- client/build/pages/ShowPage/index.js | 30 ------ client/build/pages/ShowPage/view.js | 97 ------------------- .../components/ChannelInfoDisplay/index.jsx | 13 +++ client/src/pages/AboutPage/index.jsx | 1 - client/src/pages/ShowAssetDetails/view.jsx | 40 +++----- client/src/pages/ShowAssetLite/view.jsx | 8 +- client/src/pages/ShowChannel/view.jsx | 13 ++- 11 files changed, 86 insertions(+), 196 deletions(-) create mode 100644 client/build/components/ChannelInfoDisplay/index.js delete mode 100644 client/build/pages/ShowPage/index.js delete mode 100644 client/build/pages/ShowPage/view.js create mode 100644 client/src/components/ChannelInfoDisplay/index.jsx diff --git a/client/build/components/ChannelInfoDisplay/index.js b/client/build/components/ChannelInfoDisplay/index.js new file mode 100644 index 00000000..c398bde7 --- /dev/null +++ b/client/build/components/ChannelInfoDisplay/index.js @@ -0,0 +1,24 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var ChannelInfoDisplay = function ChannelInfoDisplay(_ref) { + var name = _ref.name, + longId = _ref.longId, + shortId = _ref.shortId; + return _react.default.createElement("div", null, _react.default.createElement("h2", null, "channel name: ", name), _react.default.createElement("p", { + className: 'fine-print' + }, "full channel id: ", longId), _react.default.createElement("p", { + className: 'fine-print' + }, "short channel id: ", shortId)); +}; + +var _default = ChannelInfoDisplay; +exports.default = _default; \ No newline at end of file diff --git a/client/build/pages/ShowAssetDetails/view.js b/client/build/pages/ShowAssetDetails/view.js index f2ec59f6..a1c24b68 100644 --- a/client/build/pages/ShowAssetDetails/view.js +++ b/client/build/pages/ShowAssetDetails/view.js @@ -7,17 +7,17 @@ exports.default = void 0; var _react = _interopRequireDefault(require("react")); -var _SEO = _interopRequireDefault(require("@components/SEO")); +var _PageLayout = _interopRequireDefault(require("@components/PageLayout")); -var _index = _interopRequireDefault(require("../../containers/NavBar/index")); +var _HorizontalSplit = _interopRequireDefault(require("@components/HorizontalSplit")); -var _index2 = _interopRequireDefault(require("../ErrorPage/index")); +var _AssetTitle = _interopRequireDefault(require("@containers/AssetTitle")); -var _index3 = _interopRequireDefault(require("../../containers/AssetTitle/index")); +var _AssetDisplay = _interopRequireDefault(require("@containers/AssetDisplay")); -var _index4 = _interopRequireDefault(require("../../containers/AssetDisplay/index")); +var _AssetInfo = _interopRequireDefault(require("@containers/AssetInfo")); -var _index5 = _interopRequireDefault(require("../../containers/AssetInfo/index")); +var _ErrorPage = _interopRequireDefault(require("@pages/ErrorPage")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -55,26 +55,16 @@ function (_React$Component) { if (asset) { var name = asset.claimData.name; - return _react.default.createElement("div", null, _react.default.createElement(_SEO.default, { + return _react.default.createElement(_PageLayout.default, { pageTitle: "".concat(name, " - details"), asset: asset - }), _react.default.createElement(_index.default, null), _react.default.createElement("div", { - className: "row row--tall row--padded" - }, _react.default.createElement("div", { - className: "column column--10" - }, _react.default.createElement(_index3.default, null)), _react.default.createElement("div", { - className: "column column--5 column--sml-10 align-content-top" - }, _react.default.createElement("div", { - className: "row row--padded show-details-container" - }, _react.default.createElement(_index4.default, null))), _react.default.createElement("div", { - className: "column column--5 column--sml-10 align-content-top" - }, _react.default.createElement("div", { - className: "row row--padded" - }, _react.default.createElement(_index5.default, null))))); + }, _react.default.createElement(_AssetTitle.default, null), _react.default.createElement(_HorizontalSplit.default, { + leftSide: _react.default.createElement(_AssetDisplay.default, null), + rightSide: _react.default.createElement(_AssetInfo.default, null) + })); } - ; - return _react.default.createElement(_index2.default, { + return _react.default.createElement(_ErrorPage.default, { error: 'loading asset data...' }); } diff --git a/client/build/pages/ShowAssetLite/view.js b/client/build/pages/ShowAssetLite/view.js index faa4711d..578df831 100644 --- a/client/build/pages/ShowAssetLite/view.js +++ b/client/build/pages/ShowAssetLite/view.js @@ -11,7 +11,7 @@ var _reactRouterDom = require("react-router-dom"); var _SEO = _interopRequireDefault(require("@components/SEO")); -var _index = _interopRequireDefault(require("../../containers/AssetDisplay/index")); +var _AssetDisplay = _interopRequireDefault(require("@containers/AssetDisplay")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -52,12 +52,11 @@ function (_React$Component) { name = _asset$claimData.name, claimId = _asset$claimData.claimId; return _react.default.createElement("div", { - className: "row row--tall flex-container--column flex-container--center-center show-lite-container" + className: "row--tall flex-container--column flex-container--center-center show-lite-container" }, _react.default.createElement(_SEO.default, { pageTitle: name, asset: asset - }), _react.default.createElement(_index.default, null), _react.default.createElement(_reactRouterDom.Link, { - id: "asset-boilerpate", + }), _react.default.createElement(_AssetDisplay.default, null), _react.default.createElement(_reactRouterDom.Link, { className: "link--primary fine-print", to: "/".concat(claimId, "/").concat(name) }, "hosted via Spee.ch")); diff --git a/client/build/pages/ShowChannel/view.js b/client/build/pages/ShowChannel/view.js index ea2d1803..0cb75608 100644 --- a/client/build/pages/ShowChannel/view.js +++ b/client/build/pages/ShowChannel/view.js @@ -11,6 +11,8 @@ var _PageLayout = _interopRequireDefault(require("@components/PageLayout")); var _ErrorPage = _interopRequireDefault(require("@pages/ErrorPage")); +var _ChannelInfoDisplay = _interopRequireDefault(require("@components/ChannelInfoDisplay")); + var _ChannelClaimsDisplay = _interopRequireDefault(require("@containers/ChannelClaimsDisplay")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -53,15 +55,14 @@ function (_React$Component) { shortId = channel.shortId; return _react.default.createElement(_PageLayout.default, { pageTitle: name, - pageUri: channel - }, _react.default.createElement("h2", null, "channel name: ", name), _react.default.createElement("p", { - className: 'fine-print' - }, "full channel id: ", longId), _react.default.createElement("p", { - className: 'fine-print' - }, "short channel id: ", shortId), _react.default.createElement(_ChannelClaimsDisplay.default, null)); + channel: channel + }, _react.default.createElement(_ChannelInfoDisplay.default, { + name: name, + longId: longId, + shortId: shortId + }), _react.default.createElement(_ChannelClaimsDisplay.default, null)); } - ; return _react.default.createElement(_ErrorPage.default, { error: 'loading channel data...' }); diff --git a/client/build/pages/ShowPage/index.js b/client/build/pages/ShowPage/index.js deleted file mode 100644 index b36a485b..00000000 --- a/client/build/pages/ShowPage/index.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _reactRedux = require("react-redux"); - -var _show = require("../../actions/show"); - -var _view = _interopRequireDefault(require("./view")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var mapStateToProps = function mapStateToProps(_ref) { - var show = _ref.show; - return { - error: show.request.error, - requestType: show.request.type - }; -}; - -var mapDispatchToProps = { - onHandleShowPageUri: _show.onHandleShowPageUri -}; - -var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_view.default); - -exports.default = _default; \ No newline at end of file diff --git a/client/build/pages/ShowPage/view.js b/client/build/pages/ShowPage/view.js deleted file mode 100644 index 9ce3ba95..00000000 --- a/client/build/pages/ShowPage/view.js +++ /dev/null @@ -1,97 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _react = _interopRequireDefault(require("react")); - -var _ErrorPage = _interopRequireDefault(require("@pages/ErrorPage")); - -var _ShowAssetLite = _interopRequireDefault(require("@containers/ShowAssetLite")); - -var _ShowAssetDetails = _interopRequireDefault(require("@containers/ShowAssetDetails")); - -var _ShowChannel = _interopRequireDefault(require("@containers/ShowChannel")); - -var _show_request_types = require("../../constants/show_request_types"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } - -var ShowPage = -/*#__PURE__*/ -function (_React$Component) { - function ShowPage() { - _classCallCheck(this, ShowPage); - - return _possibleConstructorReturn(this, _getPrototypeOf(ShowPage).apply(this, arguments)); - } - - _createClass(ShowPage, [{ - key: "componentDidMount", - value: function componentDidMount() { - this.props.onHandleShowPageUri(this.props.match.params); - } - }, { - key: "componentWillReceiveProps", - value: function componentWillReceiveProps(nextProps) { - if (nextProps.match.params !== this.props.match.params) { - this.props.onHandleShowPageUri(nextProps.match.params); - } - } - }, { - key: "render", - value: function render() { - var _this$props = this.props, - error = _this$props.error, - requestType = _this$props.requestType; - - if (error) { - return _react.default.createElement(_ErrorPage.default, { - error: error - }); - } - - switch (requestType) { - case _show_request_types.CHANNEL: - return _react.default.createElement(_ShowChannel.default, null); - - case _show_request_types.ASSET_LITE: - return _react.default.createElement(_ShowAssetLite.default, null); - - case _show_request_types.ASSET_DETAILS: - return _react.default.createElement(_ShowAssetDetails.default, null); - - default: - return _react.default.createElement("p", null, "loading..."); - } - } - }]); - - _inherits(ShowPage, _React$Component); - - return ShowPage; -}(_react.default.Component); - -; -var _default = ShowPage; -exports.default = _default; \ No newline at end of file diff --git a/client/src/components/ChannelInfoDisplay/index.jsx b/client/src/components/ChannelInfoDisplay/index.jsx new file mode 100644 index 00000000..67a2688d --- /dev/null +++ b/client/src/components/ChannelInfoDisplay/index.jsx @@ -0,0 +1,13 @@ +import React from 'react'; + +const ChannelInfoDisplay = ({name, longId, shortId}) => { + return ( +
+

channel name: {name}

+

full channel id: {longId}

+

short channel id: {shortId}

+
+ ); +}; + +export default ChannelInfoDisplay; diff --git a/client/src/pages/AboutPage/index.jsx b/client/src/pages/AboutPage/index.jsx index acb69fa4..fa085dc8 100644 --- a/client/src/pages/AboutPage/index.jsx +++ b/client/src/pages/AboutPage/index.jsx @@ -4,7 +4,6 @@ import HorizontalSplit from '@components/HorizontalSplit'; import AboutSpeechOne from '@components/AboutSpeechOne'; import AboutSpeechTwo from '@components/AboutSpeechTwo'; - class AboutPage extends React.Component { render () { return ( diff --git a/client/src/pages/ShowAssetDetails/view.jsx b/client/src/pages/ShowAssetDetails/view.jsx index f0605c7f..14a1685e 100644 --- a/client/src/pages/ShowAssetDetails/view.jsx +++ b/client/src/pages/ShowAssetDetails/view.jsx @@ -1,10 +1,11 @@ import React from 'react'; -import SEO from '@components/SEO'; -import NavBar from '../../containers/NavBar/index'; -import ErrorPage from '../ErrorPage/index'; -import AssetTitle from '../../containers/AssetTitle/index'; -import AssetDisplay from '../../containers/AssetDisplay/index'; -import AssetInfo from '../../containers/AssetInfo/index'; +import PageLayout from '@components/PageLayout'; + +import HorizontalSplit from '@components/HorizontalSplit'; +import AssetTitle from '@containers/AssetTitle'; +import AssetDisplay from '@containers/AssetDisplay'; +import AssetInfo from '@containers/AssetInfo'; +import ErrorPage from '@pages/ErrorPage'; class ShowAssetDetails extends React.Component { render () { @@ -12,26 +13,15 @@ class ShowAssetDetails extends React.Component { if (asset) { const { claimData: { name } } = asset; return ( -
- - -
-
- -
-
-
- -
-
-
- -
-
-
-
+ + + } + rightSide={} + /> + ); - }; + } return ( ); diff --git a/client/src/pages/ShowAssetLite/view.jsx b/client/src/pages/ShowAssetLite/view.jsx index 7e9ca1a4..bb70956b 100644 --- a/client/src/pages/ShowAssetLite/view.jsx +++ b/client/src/pages/ShowAssetLite/view.jsx @@ -1,9 +1,7 @@ import React from 'react'; import { Link } from 'react-router-dom'; -// components import SEO from '@components/SEO'; -// containers -import AssetDisplay from '../../containers/AssetDisplay/index'; +import AssetDisplay from '@containers/AssetDisplay'; class ShowLite extends React.Component { render () { @@ -11,10 +9,10 @@ class ShowLite extends React.Component { if (asset) { const { name, claimId } = asset.claimData; return ( -
+
- hosted + hosted via Spee.ch
); diff --git a/client/src/pages/ShowChannel/view.jsx b/client/src/pages/ShowChannel/view.jsx index 73c09dce..567ed927 100644 --- a/client/src/pages/ShowChannel/view.jsx +++ b/client/src/pages/ShowChannel/view.jsx @@ -1,6 +1,7 @@ import React from 'react'; import PageLayout from '@components/PageLayout'; import ErrorPage from '@pages/ErrorPage'; +import ChannelInfoDisplay from '@components/ChannelInfoDisplay'; import ChannelClaimsDisplay from '@containers/ChannelClaimsDisplay'; class ShowChannel extends React.Component { @@ -9,14 +10,16 @@ class ShowChannel extends React.Component { if (channel) { const { name, longId, shortId } = channel; return ( - -

channel name: {name}

-

full channel id: {longId}

-

short channel id: {shortId}

+ + ); - }; + } return ( ); -- 2.45.3 From 857ae03b328c6c4bf98a852e98eb0d2e448aee1b Mon Sep 17 00:00:00 2001 From: bill bittner Date: Thu, 31 May 2018 18:16:19 -0700 Subject: [PATCH 08/24] updated css for asset preview and asset normal --- .../components/AboutSpeechDetails/index.js | 32 +++++++++++ .../components/AboutSpeechOverview/index.js | 35 ++++++++++++ client/build/components/AssetPreview/index.js | 49 +++++++++++++---- .../build/components/PageContent/style.css.js | 2 +- client/build/containers/AssetDisplay/view.js | 14 ++--- client/build/containers/AssetPreview/index.js | 23 -------- client/build/containers/AssetPreview/view.js | 54 ------------------- .../containers/ChannelClaimsDisplay/index.js | 6 ++- .../containers/ChannelClaimsDisplay/view.js | 11 ++-- client/build/pages/AboutPage/index.js | 8 +-- .../scss/{containers => }/_asset-preview.scss | 0 client/scss/_asset.scss | 12 +++++ client/scss/{containers => }/_dropzone.scss | 0 client/scss/{containers => }/_nav-bar.scss | 0 .../scss/{components => }/_progress-bar.scss | 0 .../{components => }/_publish-preview.scss | 0 client/scss/all.scss | 12 ++--- client/scss/containers/_show-asset-lite.scss | 20 ------- .../index.jsx | 0 .../index.jsx | 0 .../AssetPreview/index.jsx} | 0 .../src/components/PageContent/style.css.js | 2 +- client/src/containers/AssetDisplay/view.jsx | 19 +++---- client/src/containers/AssetPreview/index.js | 10 ---- .../containers/ChannelClaimsDisplay/index.js | 3 +- .../containers/ChannelClaimsDisplay/view.jsx | 3 +- client/src/pages/AboutPage/index.jsx | 8 +-- 27 files changed, 160 insertions(+), 163 deletions(-) create mode 100644 client/build/components/AboutSpeechDetails/index.js create mode 100644 client/build/components/AboutSpeechOverview/index.js delete mode 100644 client/build/containers/AssetPreview/index.js delete mode 100644 client/build/containers/AssetPreview/view.js rename client/scss/{containers => }/_asset-preview.scss (100%) create mode 100644 client/scss/_asset.scss rename client/scss/{containers => }/_dropzone.scss (100%) rename client/scss/{containers => }/_nav-bar.scss (100%) rename client/scss/{components => }/_progress-bar.scss (100%) rename client/scss/{components => }/_publish-preview.scss (100%) delete mode 100644 client/scss/containers/_show-asset-lite.scss rename client/src/components/{AboutSpeechTwo => AboutSpeechDetails}/index.jsx (100%) rename client/src/components/{AboutSpeechOne => AboutSpeechOverview}/index.jsx (100%) rename client/src/{containers/AssetPreview/view.jsx => components/AssetPreview/index.jsx} (100%) delete mode 100644 client/src/containers/AssetPreview/index.js diff --git a/client/build/components/AboutSpeechDetails/index.js b/client/build/components/AboutSpeechDetails/index.js new file mode 100644 index 00000000..8c941b8a --- /dev/null +++ b/client/build/components/AboutSpeechDetails/index.js @@ -0,0 +1,32 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var AboutSpeechTwo = function AboutSpeechTwo() { + return _react.default.createElement("div", null, _react.default.createElement("p", null, "Spee.ch is a media-hosting site that reads from and publishes content to the ", _react.default.createElement("a", { + className: "link--primary", + href: "https://lbry.io" + }, "LBRY"), " blockchain."), _react.default.createElement("p", null, "Spee.ch is a hosting service, but with the added benefit that it stores your content on a decentralized network of computers -- the ", _react.default.createElement("a", { + className: "link--primary", + href: "https://lbry.io/get" + }, "LBRY"), " network. This means that your images are stored in multiple locations without a single point of failure."), _react.default.createElement("h3", null, "Contribute"), _react.default.createElement("p", null, "If you have an idea for your own spee.ch-like site on top of LBRY, fork our ", _react.default.createElement("a", { + className: "link--primary", + href: "https://github.com/lbryio/spee.ch" + }, "github repo"), " and go to town!"), _react.default.createElement("p", null, "If you want to improve spee.ch, join our ", _react.default.createElement("a", { + className: "link--primary", + href: "https://chat.lbry.io" + }, "discord channel"), " or solve one of our ", _react.default.createElement("a", { + className: "link--primary", + href: "https://github.com/lbryio/spee.ch/issues" + }, "github issues"), ".")); +}; + +var _default = AboutSpeechTwo; +exports.default = _default; \ No newline at end of file diff --git a/client/build/components/AboutSpeechOverview/index.js b/client/build/components/AboutSpeechOverview/index.js new file mode 100644 index 00000000..4fee0efc --- /dev/null +++ b/client/build/components/AboutSpeechOverview/index.js @@ -0,0 +1,35 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _react = _interopRequireDefault(require("react")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var AboutSpeechOne = function AboutSpeechOne() { + return _react.default.createElement("div", null, _react.default.createElement("p", { + className: "pull-quote" + }, "Spee.ch is an open-source project. Please contribute to the existing site, or fork it and make your own."), _react.default.createElement("p", null, _react.default.createElement("a", { + className: "link--primary", + target: "_blank", + href: "https://twitter.com/spee_ch" + }, "TWITTER")), _react.default.createElement("p", null, _react.default.createElement("a", { + className: "link--primary", + target: "_blank", + href: "https://github.com/lbryio/spee.ch" + }, "GITHUB")), _react.default.createElement("p", null, _react.default.createElement("a", { + className: "link--primary", + target: "_blank", + href: "https://discord.gg/YjYbwhS" + }, "DISCORD CHANNEL")), _react.default.createElement("p", null, _react.default.createElement("a", { + className: "link--primary", + target: "_blank", + href: "https://github.com/lbryio/spee.ch/blob/master/README.md" + }, "DOCUMENTATION"))); +}; + +var _default = AboutSpeechOne; +exports.default = _default; \ No newline at end of file diff --git a/client/build/components/AssetPreview/index.js b/client/build/components/AssetPreview/index.js index f0afdc19..2f0024f7 100644 --- a/client/build/components/AssetPreview/index.js +++ b/client/build/components/AssetPreview/index.js @@ -5,19 +5,50 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; -var _reactRedux = require("react-redux"); +var _react = _interopRequireDefault(require("react")); -var _view = _interopRequireDefault(require("./view")); +var _reactRouterDom = require("react-router-dom"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var mapStateToProps = function mapStateToProps(_ref) { - var defaultThumbnail = _ref.site.defaultThumbnail; - return { - defaultThumbnail: defaultThumbnail - }; +var AssetPreview = function AssetPreview(_ref) { + var defaultThumbnail = _ref.defaultThumbnail, + _ref$claimData = _ref.claimData, + name = _ref$claimData.name, + claimId = _ref$claimData.claimId, + fileExt = _ref$claimData.fileExt, + contentType = _ref$claimData.contentType, + thumbnail = _ref$claimData.thumbnail; + var directSourceLink = "".concat(claimId, "/").concat(name, ".").concat(fileExt); + var showUrlLink = "/".concat(claimId, "/").concat(name); + return _react.default.createElement("div", { + className: "asset-preview-holder" + }, _react.default.createElement(_reactRouterDom.Link, { + to: showUrlLink + }, function () { + switch (contentType) { + case 'image/jpeg': + case 'image/jpg': + case 'image/png': + case 'image/gif': + return _react.default.createElement("img", { + className: 'asset-preview-image', + src: directSourceLink, + alt: name + }); + + case 'video/mp4': + return _react.default.createElement("img", { + className: 'asset-preview-video', + src: thumbnail || defaultThumbnail, + alt: name + }); + + default: + return _react.default.createElement("p", null, "unsupported file type"); + } + }())); }; -var _default = (0, _reactRedux.connect)(mapStateToProps, null)(_view.default); - +var _default = AssetPreview; exports.default = _default; \ No newline at end of file diff --git a/client/build/components/PageContent/style.css.js b/client/build/components/PageContent/style.css.js index 1e199a51..3a4cac57 100644 --- a/client/build/components/PageContent/style.css.js +++ b/client/build/components/PageContent/style.css.js @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; var style = { - margin: '1em', + margin: '2em', backgroundColor: 'red' }; var _default = style; diff --git a/client/build/containers/AssetDisplay/view.js b/client/build/containers/AssetDisplay/view.js index 32f98941..87deec68 100644 --- a/client/build/containers/AssetDisplay/view.js +++ b/client/build/containers/AssetDisplay/view.js @@ -60,9 +60,7 @@ function (_React$Component) { contentType = _this$props$asset$cla2.contentType, fileExt = _this$props$asset$cla2.fileExt, thumbnail = _this$props$asset$cla2.thumbnail; - return _react.default.createElement("div", { - id: "asset-display-component" - }, status === _asset_display_states.LOCAL_CHECK && _react.default.createElement("div", null, _react.default.createElement("p", null, "Checking to see if Spee.ch has your asset locally...")), status === _asset_display_states.UNAVAILABLE && _react.default.createElement("div", null, _react.default.createElement("p", null, "Sit tight, we're searching the LBRY blockchain for your asset!"), _react.default.createElement(_ProgressBar.default, { + return _react.default.createElement("div", null, status === _asset_display_states.LOCAL_CHECK && _react.default.createElement("div", null, _react.default.createElement("p", null, "Checking to see if Spee.ch has your asset locally...")), status === _asset_display_states.UNAVAILABLE && _react.default.createElement("div", null, _react.default.createElement("p", null, "Sit tight, we're searching the LBRY blockchain for your asset!"), _react.default.createElement(_ProgressBar.default, { size: 12 }), _react.default.createElement("p", null, "Curious what magic is happening here? ", _react.default.createElement("a", { className: "link--primary", @@ -79,22 +77,16 @@ function (_React$Component) { case 'image/jpeg': case 'image/jpg': case 'image/png': - return _react.default.createElement("img", { - className: "asset", - src: "/".concat(claimId, "/").concat(name, ".").concat(fileExt), - alt: name - }); - case 'image/gif': return _react.default.createElement("img", { - className: "asset", + className: "asset-image", src: "/".concat(claimId, "/").concat(name, ".").concat(fileExt), alt: name }); case 'video/mp4': return _react.default.createElement("video", { - className: "asset video", + className: "asset-video", controls: true, poster: thumbnail }, _react.default.createElement("source", { diff --git a/client/build/containers/AssetPreview/index.js b/client/build/containers/AssetPreview/index.js deleted file mode 100644 index f0afdc19..00000000 --- a/client/build/containers/AssetPreview/index.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _reactRedux = require("react-redux"); - -var _view = _interopRequireDefault(require("./view")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var mapStateToProps = function mapStateToProps(_ref) { - var defaultThumbnail = _ref.site.defaultThumbnail; - return { - defaultThumbnail: defaultThumbnail - }; -}; - -var _default = (0, _reactRedux.connect)(mapStateToProps, null)(_view.default); - -exports.default = _default; \ No newline at end of file diff --git a/client/build/containers/AssetPreview/view.js b/client/build/containers/AssetPreview/view.js deleted file mode 100644 index 2f0024f7..00000000 --- a/client/build/containers/AssetPreview/view.js +++ /dev/null @@ -1,54 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _react = _interopRequireDefault(require("react")); - -var _reactRouterDom = require("react-router-dom"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var AssetPreview = function AssetPreview(_ref) { - var defaultThumbnail = _ref.defaultThumbnail, - _ref$claimData = _ref.claimData, - name = _ref$claimData.name, - claimId = _ref$claimData.claimId, - fileExt = _ref$claimData.fileExt, - contentType = _ref$claimData.contentType, - thumbnail = _ref$claimData.thumbnail; - var directSourceLink = "".concat(claimId, "/").concat(name, ".").concat(fileExt); - var showUrlLink = "/".concat(claimId, "/").concat(name); - return _react.default.createElement("div", { - className: "asset-preview-holder" - }, _react.default.createElement(_reactRouterDom.Link, { - to: showUrlLink - }, function () { - switch (contentType) { - case 'image/jpeg': - case 'image/jpg': - case 'image/png': - case 'image/gif': - return _react.default.createElement("img", { - className: 'asset-preview-image', - src: directSourceLink, - alt: name - }); - - case 'video/mp4': - return _react.default.createElement("img", { - className: 'asset-preview-video', - src: thumbnail || defaultThumbnail, - alt: name - }); - - default: - return _react.default.createElement("p", null, "unsupported file type"); - } - }())); -}; - -var _default = AssetPreview; -exports.default = _default; \ No newline at end of file diff --git a/client/build/containers/ChannelClaimsDisplay/index.js b/client/build/containers/ChannelClaimsDisplay/index.js index 50b3ffe8..d85bda18 100644 --- a/client/build/containers/ChannelClaimsDisplay/index.js +++ b/client/build/containers/ChannelClaimsDisplay/index.js @@ -14,7 +14,8 @@ var _view = _interopRequireDefault(require("./view")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var mapStateToProps = function mapStateToProps(_ref) { - var show = _ref.show; + var show = _ref.show, + defaultThumbnail = _ref.site.defaultThumbnail; // select channel key var request = show.requestList[show.request.id]; var channelKey = request.key; // select channel claims @@ -23,7 +24,8 @@ var mapStateToProps = function mapStateToProps(_ref) { return { channelKey: channelKey, - channel: channel + channel: channel, + defaultThumbnail: defaultThumbnail }; }; diff --git a/client/build/containers/ChannelClaimsDisplay/view.js b/client/build/containers/ChannelClaimsDisplay/view.js index e520997e..ad689f57 100644 --- a/client/build/containers/ChannelClaimsDisplay/view.js +++ b/client/build/containers/ChannelClaimsDisplay/view.js @@ -70,14 +70,17 @@ function (_React$Component) { }, { key: "render", value: function render() { - var _this$props$channel$c = this.props.channel.claimsData, - claims = _this$props$channel$c.claims, - currentPage = _this$props$channel$c.currentPage, - totalPages = _this$props$channel$c.totalPages; + var _this$props2 = this.props, + _this$props2$channel$ = _this$props2.channel.claimsData, + claims = _this$props2$channel$.claims, + currentPage = _this$props2$channel$.currentPage, + totalPages = _this$props2$channel$.totalPages, + defaultThumbnail = _this$props2.defaultThumbnail; return _react.default.createElement("div", { className: "row row--tall" }, claims.length > 0 ? _react.default.createElement("div", null, claims.map(function (claim, index) { return _react.default.createElement(_AssetPreview.default, { + defaultThumbnail: defaultThumbnail, claimData: claim, key: "".concat(claim.name, "-").concat(index) }); diff --git a/client/build/pages/AboutPage/index.js b/client/build/pages/AboutPage/index.js index 986bc1a9..bf9c8c06 100644 --- a/client/build/pages/AboutPage/index.js +++ b/client/build/pages/AboutPage/index.js @@ -11,9 +11,9 @@ var _PageLayout = _interopRequireDefault(require("@components/PageLayout")); var _HorizontalSplit = _interopRequireDefault(require("@components/HorizontalSplit")); -var _AboutSpeechOne = _interopRequireDefault(require("@components/AboutSpeechOne")); +var _AboutSpeechOverview = _interopRequireDefault(require("@components/AboutSpeechOverview")); -var _AboutSpeechTwo = _interopRequireDefault(require("@components/AboutSpeechTwo")); +var _AboutSpeechDetails = _interopRequireDefault(require("@components/AboutSpeechDetails")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -51,8 +51,8 @@ function (_React$Component) { pageTitle: 'About', pageUri: 'about' }, _react.default.createElement(_HorizontalSplit.default, { - leftSide: _react.default.createElement(_AboutSpeechOne.default, null), - rightSide: _react.default.createElement(_AboutSpeechTwo.default, null) + leftSide: _react.default.createElement(_AboutSpeechOverview.default, null), + rightSide: _react.default.createElement(_AboutSpeechDetails.default, null) })); } }]); diff --git a/client/scss/containers/_asset-preview.scss b/client/scss/_asset-preview.scss similarity index 100% rename from client/scss/containers/_asset-preview.scss rename to client/scss/_asset-preview.scss diff --git a/client/scss/_asset.scss b/client/scss/_asset.scss new file mode 100644 index 00000000..3006673c --- /dev/null +++ b/client/scss/_asset.scss @@ -0,0 +1,12 @@ + +.asset-image, .asset-video { + width: 100%; + margin : 0px +} + +.show-lite-container { + .asset-image, .asset-video { + max-height: calc(100vh - 3em); + max-width: 100vw; + } +} diff --git a/client/scss/containers/_dropzone.scss b/client/scss/_dropzone.scss similarity index 100% rename from client/scss/containers/_dropzone.scss rename to client/scss/_dropzone.scss diff --git a/client/scss/containers/_nav-bar.scss b/client/scss/_nav-bar.scss similarity index 100% rename from client/scss/containers/_nav-bar.scss rename to client/scss/_nav-bar.scss diff --git a/client/scss/components/_progress-bar.scss b/client/scss/_progress-bar.scss similarity index 100% rename from client/scss/components/_progress-bar.scss rename to client/scss/_progress-bar.scss diff --git a/client/scss/components/_publish-preview.scss b/client/scss/_publish-preview.scss similarity index 100% rename from client/scss/components/_publish-preview.scss rename to client/scss/_publish-preview.scss diff --git a/client/scss/all.scss b/client/scss/all.scss index 1319e073..3338e27a 100644 --- a/client/scss/all.scss +++ b/client/scss/all.scss @@ -13,12 +13,12 @@ @import '_button'; @import '_span'; @import '_video'; -@import 'containers/_nav-bar.scss'; -@import 'containers/_dropzone.scss'; -@import 'containers/_asset-preview.scss'; -@import 'containers/_show-asset-lite.scss'; -@import 'components/_progress-bar'; -@import 'components/_publish-preview'; +@import 'asset'; +@import 'asset-preview'; +@import 'dropzone'; +@import 'nav-bar'; +@import 'progress-bar'; +@import 'publish-preview'; @import 'media-queries'; diff --git a/client/scss/containers/_show-asset-lite.scss b/client/scss/containers/_show-asset-lite.scss deleted file mode 100644 index 0c9c947a..00000000 --- a/client/scss/containers/_show-asset-lite.scss +++ /dev/null @@ -1,20 +0,0 @@ -.show-lite-container { - text-align: center; -} - -.show-lite-container #asset-display-component { - max-height: calc(100vh - 3em); -} - -.show-details-container #asset-display-component .asset { - width: 100% -} - -.show-lite-container #asset-display-component .asset { - max-height: calc(100vh - 3em); - max-width: 100vw; -} - -#asset-boilerplate { - max-height: 3em; -} diff --git a/client/src/components/AboutSpeechTwo/index.jsx b/client/src/components/AboutSpeechDetails/index.jsx similarity index 100% rename from client/src/components/AboutSpeechTwo/index.jsx rename to client/src/components/AboutSpeechDetails/index.jsx diff --git a/client/src/components/AboutSpeechOne/index.jsx b/client/src/components/AboutSpeechOverview/index.jsx similarity index 100% rename from client/src/components/AboutSpeechOne/index.jsx rename to client/src/components/AboutSpeechOverview/index.jsx diff --git a/client/src/containers/AssetPreview/view.jsx b/client/src/components/AssetPreview/index.jsx similarity index 100% rename from client/src/containers/AssetPreview/view.jsx rename to client/src/components/AssetPreview/index.jsx diff --git a/client/src/components/PageContent/style.css.js b/client/src/components/PageContent/style.css.js index 0f93a1d5..0fe250ea 100644 --- a/client/src/components/PageContent/style.css.js +++ b/client/src/components/PageContent/style.css.js @@ -1,5 +1,5 @@ const style = { - margin : '1em', + margin : '2em', backgroundColor: 'red', }; diff --git a/client/src/containers/AssetDisplay/view.jsx b/client/src/containers/AssetDisplay/view.jsx index 3271f5bf..6feca9ba 100644 --- a/client/src/containers/AssetDisplay/view.jsx +++ b/client/src/containers/AssetDisplay/view.jsx @@ -10,7 +10,7 @@ class AssetDisplay extends React.Component { render () { const { status, error, asset: { claimData: { name, claimId, contentType, fileExt, thumbnail } } } = this.props; return ( -
+
{(status === LOCAL_CHECK) &&

Checking to see if Spee.ch has your asset locally...

@@ -35,26 +35,21 @@ class AssetDisplay extends React.Component { case 'image/jpeg': case 'image/jpg': case 'image/png': - return ( - {name} - ); case 'image/gif': return ( {name} ); case 'video/mp4': return ( -