Client updates

This commit is contained in:
Tony Air 2019-10-20 06:40:40 +07:00
parent c3fde0b8b8
commit 17bd160574
83 changed files with 14563 additions and 509 deletions

0
dist/.keep vendored
View File

14
dist/css/app.css vendored

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
.mapboxgl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mapboxgl-map:-webkit-full-screen{width:100%;height:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group>button.mapboxgl-ctrl-compass{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group>button.mapboxgl-ctrl-compass:active{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{position:absolute;pointer-events:none;z-index:2}.mapboxgl-ctrl-top-left{top:0;left:0}.mapboxgl-ctrl-top-right{top:0;right:0}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-bottom-right{right:0;bottom:0}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{margin:10px 0 0 10px;float:left}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{margin:10px 10px 0 0;float:right}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl{margin:0 0 10px 10px;float:left}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl{margin:0 10px 10px 0;float:right}.mapboxgl-ctrl-group{border-radius:4px;overflow:hidden;background:#fff}.mapboxgl-ctrl-group:not(:empty){-moz-box-shadow:0 0 2px rgba(0,0,0,.1);-webkit-box-shadow:0 0 2px rgba(0,0,0,.1);box-shadow:0 0 0 2px rgba(0,0,0,.1)}.mapboxgl-ctrl-group>button{width:30px;height:30px;display:block;padding:0;outline:none;border:0;box-sizing:border-box;background-color:transparent;cursor:pointer}.mapboxgl-ctrl-group>button+button{border-top:1px solid #ddd}.mapboxgl-ctrl>button::-moz-focus-inner{border:0;padding:0}.mapboxgl-ctrl>button:hover{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-icon,.mapboxgl-ctrl-icon>.mapboxgl-ctrl-compass-arrow{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.mapboxgl-ctrl-icon{padding:5px}.mapboxgl-ctrl-icon.mapboxgl-ctrl-icon-disabled{opacity:.25;border-color:#373737}.mapboxgl-ctrl-icon.mapboxgl-ctrl-zoom-out{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 9c-.554 0-1 .446-1 1s.446 1 1 1h6c.554 0 1-.446 1-1s-.446-1-1-1z' fill='%23333'/%3E%3C/svg%3E")}.mapboxgl-ctrl-icon.mapboxgl-ctrl-zoom-in{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 6c-.554 0-1 .446-1 1v2H7c-.554 0-1 .446-1 1s.446 1 1 1h2v2c0 .554.446 1 1 1s1-.446 1-1v-2h2c.554 0 1-.446 1-1s-.446-1-1-1h-2V7c0-.554-.446-1-1-1z' fill='%23333'/%3E%3C/svg%3E")}.mapboxgl-ctrl-icon.mapboxgl-ctrl-geolocate{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 0 1 3.5 3.5 3.5 3.5 0 0 1-3.5 3.5A3.5 3.5 0 0 1 6.5 10 3.5 3.5 0 0 1 10 6.5zm0 1.8A1.8 1.8 0 0 0 8.3 10a1.8 1.8 0 0 0 1.7 1.8 1.8 1.8 0 0 0 1.8-1.8A1.8 1.8 0 0 0 10 8.3z'/%3E%3C/svg%3E")}.mapboxgl-ctrl-icon.mapboxgl-ctrl-geolocate:disabled{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 0 1 3.5 3.5 3.5 3.5 0 0 1-3.5 3.5A3.5 3.5 0 0 1 6.5 10 3.5 3.5 0 0 1 10 6.5zm0 1.8A1.8 1.8 0 0 0 8.3 10a1.8 1.8 0 0 0 1.7 1.8 1.8 1.8 0 0 0 1.8-1.8A1.8 1.8 0 0 0 10 8.3z'/%3E%3C/svg%3E")}.mapboxgl-ctrl-icon.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 0 1 3.5 3.5 3.5 3.5 0 0 1-3.5 3.5A3.5 3.5 0 0 1 6.5 10 3.5 3.5 0 0 1 10 6.5zm0 1.8A1.8 1.8 0 0 0 8.3 10a1.8 1.8 0 0 0 1.7 1.8 1.8 1.8 0 0 0 1.8-1.8A1.8 1.8 0 0 0 10 8.3z'/%3E%3C/svg%3E")}.mapboxgl-ctrl-icon.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 0 1 3.5 3.5 3.5 3.5 0 0 1-3.5 3.5A3.5 3.5 0 0 1 6.5 10 3.5 3.5 0 0 1 10 6.5zm0 1.8A1.8 1.8 0 0 0 8.3 10a1.8 1.8 0 0 0 1.7 1.8 1.8 1.8 0 0 0 1.8-1.8A1.8 1.8 0 0 0 10 8.3z'/%3E%3C/svg%3E")}.mapboxgl-ctrl-icon.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl-icon.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl-icon.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting{-webkit-animation:mapboxgl-spin 2s infinite linear;-moz-animation:mapboxgl-spin 2s infinite linear;-o-animation:mapboxgl-spin 2s infinite linear;-ms-animation:mapboxgl-spin 2s infinite linear;animation:mapboxgl-spin 2s infinite linear}@-webkit-keyframes mapboxgl-spin{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@-moz-keyframes mapboxgl-spin{0%{-moz-transform:rotate(0deg)}to{-moz-transform:rotate(1turn)}}@-o-keyframes mapboxgl-spin{0%{-o-transform:rotate(0deg)}to{-o-transform:rotate(1turn)}}@-ms-keyframes mapboxgl-spin{0%{-ms-transform:rotate(0deg)}to{-ms-transform:rotate(1turn)}}@keyframes mapboxgl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.mapboxgl-ctrl-icon.mapboxgl-ctrl-fullscreen{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 4c-.5 0-1 .5-1 1v4h.5l1.277-1.703c1 .763 2.059 1.66 3.114 2.703a30.38 30.38 0 0 1-3.11 2.707L4.5 11H4v4c0 .5.5 1 1 1h4v-.5l-1.727-1.295a35.498 35.498 0 0 1 2.688-3.137 30.312 30.312 0 0 1 2.746 3.15L11 15.5v.5h4c.5 0 1-.5 1-1v-4h-.5l-1.295 1.727a35.513 35.513 0 0 1-3.168-2.717 47.787 47.787 0 0 1 3.192-2.705L15.5 9h.5V5c0-.5-.5-1-1-1h-4v.5l1.703 1.277A32.243 32.243 0 0 1 9.971 8.92 47.761 47.761 0 0 1 7.305 5.77L9 4.5V4H5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl-icon.mapboxgl-ctrl-shrink{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.242 3.492a.75.75 0 0 0-.523 1.29l2.246 2.245L4 8.5V9h4c.5 0 1-.5 1-1V4h-.5L7.018 5.955 4.78 3.72a.75.75 0 0 0-.539-.227zm11.492 0a.75.75 0 0 0-.515.227l-2.235 2.234L11.5 4H11v4c0 .5.5 1 1 1h4v-.5l-1.965-1.473 2.246-2.246a.75.75 0 0 0-.547-1.289zM4 11v.5l1.965 1.473-2.246 2.246A.751.751 0 1 0 4.78 16.28l2.246-2.246L8.5 16H9v-4c0-.5-.5-1-1-1H4zm8 0c-.5 0-1 .5-1 1v4h.5l1.473-1.965 2.246 2.246a.751.751 0 1 0 1.062-1.062l-2.246-2.246L16 11.5V11h-4z'/%3E%3C/svg%3E")}.mapboxgl-ctrl-icon.mapboxgl-ctrl-compass>.mapboxgl-ctrl-compass-arrow{width:20px;height:20px;margin:5px;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23333' d='M6 9l4-8 4 8z'/%3E%3Cpath fill='%23CCC' d='M6 11l4 8 4-8z'/%3E%3C/svg%3E");background-repeat:no-repeat;display:inline-block}a.mapboxgl-ctrl-logo{width:85px;height:21px;margin:0 0 -3px -3px;display:block;background-repeat:no-repeat;cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 84.49 21'%3E%3Cpath class='st0' d='M83.25 14.26c0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.39-1.44 2.39a.34.34 0 0 1-.3.17h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.68-2.39-3.64a.213.213 0 0 1-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.36 1.4-2.35a.34.34 0 0 1 .3-.17H83c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.63 2.43 3.67c0 .05.01.09.01.13zM66.24 9.59c-.39-1.88-1.96-3.28-3.84-3.28-1.03 0-2.03.42-2.73 1.18V3.51c0-.13-.1-.23-.23-.23h-1.4c-.13 0-.23.11-.23.23v10.72c0 .13.1.23.23.23h1.4c.13 0 .23-.11.23-.23v-.73c.71.75 1.7 1.18 2.73 1.18 1.88 0 3.45-1.41 3.84-3.29.13-.6.13-1.21 0-1.8zM62.08 13c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51S63.41 13 62.08 13zM71.67 6.32a4.24 4.24 0 0 0-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 0 0 4.17 3.3c2.35 0 4.26-1.87 4.26-4.19s-1.9-4.17-4.27-4.17zm-.02 6.69c-1.33 0-2.42-1.12-2.42-2.51s1.08-2.52 2.42-2.52c1.33 0 2.42 1.12 2.42 2.51s-1.08 2.51-2.42 2.52z' opacity='.9' fill='%23fff'/%3E%3Cpath class='st1' d='M62.08 7.98c-1.32 0-2.39 1.11-2.41 2.48v.06c.01 1.38 1.08 2.48 2.41 2.48s2.42-1.12 2.42-2.51-1.09-2.51-2.42-2.51zm0 3.78c-.63 0-1.14-.56-1.17-1.25v-.04c.01-.69.54-1.25 1.17-1.25.63 0 1.17.57 1.17 1.27-.01.71-.52 1.27-1.17 1.27zM71.65 7.98c-1.33 0-2.42 1.12-2.42 2.51S70.32 13 71.65 13s2.42-1.12 2.42-2.51-1.08-2.51-2.42-2.51zm0 3.78c-.64 0-1.17-.57-1.17-1.27 0-.7.53-1.26 1.17-1.26s1.17.57 1.17 1.27c0 .71-.53 1.26-1.17 1.26z' opacity='.35'/%3E%3Cpath class='st0' d='M45.74 6.53h-1.4c-.13 0-.23.11-.23.23v.73c-.71-.75-1.7-1.18-2.73-1.18-2.17 0-3.94 1.87-3.94 4.19s1.77 4.19 3.94 4.19c1.04 0 2.03-.43 2.73-1.19v.73c0 .13.1.23.23.23h1.4c.13 0 .23-.11.23-.23V6.74c0-.12-.09-.22-.22-.22 0 .01 0 .01-.01.01zm-1.62 4C44.11 11.9 43.03 13 41.71 13s-2.42-1.12-2.42-2.51 1.08-2.52 2.4-2.52c1.33 0 2.39 1.11 2.41 2.48l.02.08z' opacity='.9' fill='%23fff'/%3E%3Cpath class='st1' d='M41.71 7.98c-1.33 0-2.42 1.12-2.42 2.51S40.37 13 41.71 13s2.39-1.11 2.41-2.48v-.06c-.02-1.37-1.09-2.48-2.41-2.48zm-1.16 2.51c0-.7.52-1.27 1.17-1.27.64 0 1.14.56 1.17 1.25v.04c-.01.68-.53 1.24-1.17 1.24-.64 0-1.17-.56-1.17-1.26z' opacity='.35'/%3E%3Cpath class='st0' d='M52.41 6.32c-1.03 0-2.03.42-2.73 1.18v-.75c0-.13-.1-.23-.23-.23h-1.4c-.13 0-.23.11-.23.23v10.72c0 .13.1.23.23.23h1.4c.13 0 .23-.1.23-.23V13.5c.71.75 1.7 1.18 2.74 1.18 2.17 0 3.94-1.87 3.94-4.19s-1.78-4.17-3.95-4.17zm-.33 6.69c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51S53.4 13 52.08 13.01z' opacity='.9' fill='%23fff'/%3E%3Cpath class='st1' d='M52.08 7.98c-1.32 0-2.39 1.11-2.42 2.48v.06c.03 1.38 1.1 2.48 2.42 2.48s2.41-1.12 2.41-2.51-1.09-2.51-2.41-2.51zm0 3.78c-.63 0-1.14-.56-1.17-1.25v-.04c.01-.69.54-1.25 1.17-1.25.63 0 1.17.58 1.17 1.27s-.53 1.27-1.17 1.27z' opacity='.35'/%3E%3Cpath class='st0' d='M36.08 14.24c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23V9.68c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.66c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23V9.68c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.48c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.11-.23-.23V6.74c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.66c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.17z' opacity='.9' fill='%23fff'/%3E%3Cpath class='st1' d='M84.34 13.59l-.07-.13-1.96-2.99 1.94-2.95c.44-.67.26-1.56-.41-2.02-.02 0-.03 0-.04-.01-.23-.15-.5-.22-.78-.22h-1.61c-.56 0-1.08.29-1.37.78l-.32.55-.34-.56c-.29-.48-.81-.77-1.38-.77h-1.6c-.6 0-1.13.37-1.35.92a5.59 5.59 0 0 0-7.26.45c-.35.34-.65.72-.89 1.14-.9-1.62-2.58-2.72-4.5-2.72-.5 0-1.01.07-1.48.23V3.51c0-.82-.66-1.48-1.47-1.48h-1.4c-.81 0-1.47.66-1.47 1.47v3.75a5.12 5.12 0 0 0-4.17-2.19c-.74 0-1.46.16-2.12.47-.24-.17-.54-.26-.84-.26h-1.4c-.45 0-.87.21-1.15.56a1.498 1.498 0 0 0-1.16-.55h-1.39c-.3 0-.6.09-.84.26-.67-.3-1.39-.46-2.12-.46-1.83 0-3.43 1-4.37 2.5-.2-.46-.48-.89-.83-1.25-.8-.81-1.89-1.25-3.02-1.25h-.01c-.89.01-1.75.33-2.46.88-.74-.57-1.64-.88-2.57-.88h-.03c-.29 0-.58.03-.86.11-.28.06-.56.16-.82.28-.21-.12-.45-.18-.7-.18h-1.4c-.82 0-1.47.66-1.47 1.47v7.5c0 .82.66 1.47 1.47 1.47h1.4c.82 0 1.48-.66 1.48-1.48V9.79c.03-.36.23-.59.36-.59.18 0 .38.18.38.47v4.57c0 .82.66 1.47 1.47 1.47h1.41c.82 0 1.47-.66 1.47-1.47l-.01-4.57c.06-.32.25-.47.35-.47.18 0 .38.18.38.47v4.57c0 .82.66 1.47 1.47 1.47h1.41c.82 0 1.47-.66 1.47-1.47v-.38a5.068 5.068 0 0 0 4.06 2.06c.74 0 1.46-.16 2.12-.47.24.17.54.26.84.26h1.39c.3 0 .6-.09.84-.26v2.01c0 .82.66 1.47 1.47 1.47h1.4c.82 0 1.47-.66 1.47-1.47v-1.77c.48.15.99.23 1.49.22 1.7 0 3.22-.87 4.17-2.2v.52c0 .82.66 1.47 1.47 1.47h1.4c.3 0 .6-.09.84-.26.66.31 1.39.47 2.12.47 1.92 0 3.6-1.1 4.49-2.73 1.54 2.65 4.95 3.53 7.58 1.98.18-.11.36-.22.53-.36.22.55.76.91 1.35.9H78c.56 0 1.08-.29 1.37-.78l.37-.61.37.61c.29.48.81.78 1.38.78h1.6c.81 0 1.46-.66 1.45-1.46-.05-.22-.1-.44-.2-.65zm-48.48.88h-1.41c-.13 0-.23-.11-.23-.23V9.68c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.66c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23V9.68c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.48c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.11-.23-.23V6.74a.23.23 0 0 1 .23-.22h1.4c.13 0 .22.11.23.22v.66c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.01 5.16c.02.13-.09.23-.21.24zm10.11-.23c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.11-.23-.23v-.74c-.7.76-1.69 1.18-2.72 1.18-2.17 0-3.94-1.87-3.94-4.19s1.77-4.19 3.94-4.19c1.03 0 2.02.43 2.73 1.18v-.74c0-.13.1-.23.23-.23h1.4c.12-.01.22.08.23.21V14.25h-.01v-.01zm6.44.43c-1.03 0-2.02-.43-2.73-1.18v3.97c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V6.75c0-.13.1-.22.23-.22h1.4c.13 0 .23.11.23.23v.73a3.73 3.73 0 0 1 2.73-1.18c2.17 0 3.94 1.86 3.94 4.18s-1.77 4.18-3.94 4.18zm13.83-3.28c-.39 1.87-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.73c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.11-.23-.23V3.51c0-.13.1-.23.23-.23h1.4c.13 0 .23.11.23.23v3.97a3.72 3.72 0 0 1 2.73-1.17c1.88 0 3.45 1.4 3.84 3.28.13.6.13 1.21 0 1.8zm5.43 3.29c-2 .01-3.73-1.35-4.17-3.3-.13-.59-.13-1.19 0-1.77a4.243 4.243 0 0 1 4.17-3.3c2.36 0 4.26 1.87 4.26 4.19s-1.9 4.18-4.26 4.18zm11.37-.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.39-1.44 2.39a.34.34 0 0 1-.3.17h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.68-2.39-3.64a.213.213 0 0 1-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.36 1.41-2.36a.34.34 0 0 1 .3-.17h1.61c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.38 3.64 2.43 3.67c.02.03.03.07.03.12-.03.13-.12.22-.24.22z' opacity='.35'/%3E%3Cpath class='st0' d='M10.5 1.24c-5.11 0-9.25 4.15-9.25 9.25s4.15 9.25 9.25 9.25 9.25-4.15 9.25-9.25c0-5.11-4.14-9.25-9.25-9.25zm4.39 11.53c-1.93 1.93-4.78 2.31-6.7 2.31-.7 0-1.41-.05-2.1-.16 0 0-1.02-5.64 2.14-8.81a4.4 4.4 0 0 1 3.13-1.28c1.27 0 2.49.51 3.39 1.42 1.84 1.84 1.89 4.75.14 6.52z' opacity='.9' fill='%23fff'/%3E%3Cpath class='st1' d='M10.5-.01C4.7-.01 0 4.7 0 10.49s4.7 10.5 10.5 10.5S21 16.29 21 10.49C20.99 4.7 16.3-.01 10.5-.01zm0 19.75c-5.11 0-9.25-4.15-9.25-9.25s4.14-9.26 9.25-9.26 9.25 4.15 9.25 9.25c0 5.13-4.14 9.26-9.25 9.26z' opacity='.35'/%3E%3Cpath class='st1' d='M14.74 6.25c-1.84-1.84-4.76-1.9-6.51-.15-3.16 3.17-2.14 8.81-2.14 8.81s5.64 1.02 8.81-2.14c1.74-1.77 1.69-4.68-.16-6.52zm-2.27 4.09l-.91 1.87-.9-1.87-1.86-.91 1.86-.9.9-1.87.91 1.87 1.86.9-1.86.91z' opacity='.35'/%3E%3Cpath class='st0' opacity='.9' fill='%23fff' d='M14.33 9.43l-1.86.91-.91 1.87-.9-1.87-1.86-.91 1.86-.9.9-1.87.91 1.87z'/%3E%3C/svg%3E")}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:21px;height:21px;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 21'%3E%3Cpath d='M10.5 1.25c-5.11 0-9.25 4.15-9.25 9.25s4.15 9.25 9.25 9.25 9.25-4.15 9.25-9.25c0-5.11-4.14-9.25-9.25-9.25zm4.39 11.53c-1.93 1.93-4.78 2.31-6.7 2.31-.7 0-1.41-.05-2.1-.16 0 0-1.02-5.64 2.14-8.81a4.4 4.4 0 0 1 3.13-1.28c1.27 0 2.49.51 3.39 1.42 1.84 1.84 1.89 4.75.14 6.52z' class='st0' opacity='.9' fill='%23fff'/%3E%3Cpath d='M10.5 0C4.7 0 0 4.71 0 10.5S4.7 21 10.5 21 21 16.3 21 10.5C20.99 4.71 16.3 0 10.5 0zm0 19.75c-5.11 0-9.25-4.15-9.25-9.25s4.14-9.26 9.25-9.26 9.25 4.15 9.25 9.25c0 5.13-4.14 9.26-9.25 9.26z' class='st1' opacity='.35'/%3E%3Cpath d='M14.74 6.26c-1.84-1.84-4.76-1.9-6.51-.15-3.16 3.17-2.14 8.81-2.14 8.81s5.64 1.02 8.81-2.14c1.74-1.77 1.69-4.68-.16-6.52zm-2.27 4.09l-.91 1.87-.9-1.87-1.86-.91 1.86-.9.9-1.87.91 1.87 1.86.9z' class='st1' opacity='.35'/%3E%3Cpath class='st0' opacity='.9' fill='%23fff' d='M11.56 12.22l-.9-1.87-1.86-.91 1.86-.9.9-1.87.91 1.87 1.86.9-1.86.91z'/%3E%3C/svg%3E")}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{padding:0 5px;background-color:hsla(0,0%,100%,.5);margin:0}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{min-height:20px;padding:0;margin:10px;position:relative;background-color:#fff;border-radius:3px 12px 12px 3px}.mapboxgl-ctrl-attrib.mapboxgl-compact:hover{padding:2px 24px 2px 4px;visibility:visible;margin-top:6px}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:hover,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:hover{padding:2px 4px 2px 24px;border-radius:12px 3px 3px 12px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib.mapboxgl-compact:hover .mapboxgl-ctrl-attrib-inner{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact:after{content:"";cursor:pointer;position:absolute;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23333' fill-rule='evenodd' d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");background-color:hsla(0,0%,100%,.5);width:24px;height:24px;box-sizing:border-box;border-radius:12px}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;right:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;left:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}}.mapboxgl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:hsla(0,0%,100%,.75);font-size:10px;border-width:medium 2px 2px;border-style:none solid solid;border-color:#333;padding:0 5px;color:#333;box-sizing:border-box}.mapboxgl-popup{position:absolute;top:0;left:0;display:-webkit-flex;display:flex;will-change:transform;pointer-events:none}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{-webkit-flex-direction:column;flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{-webkit-flex-direction:column-reverse;flex-direction:column-reverse}.mapboxgl-popup-anchor-left{-webkit-flex-direction:row;flex-direction:row}.mapboxgl-popup-anchor-right{-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.mapboxgl-popup-tip{width:0;height:0;border:10px solid transparent;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{-webkit-align-self:center;align-self:center;border-top:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{-webkit-align-self:flex-start;align-self:flex-start;border-top:none;border-left:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{-webkit-align-self:flex-end;align-self:flex-end;border-top:none;border-right:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{-webkit-align-self:center;align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{-webkit-align-self:flex-start;align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{-webkit-align-self:flex-end;align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{-webkit-align-self:center;align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{-webkit-align-self:center;align-self:center;border-right:none;border-left-color:#fff}.mapboxgl-popup-close-button{position:absolute;right:0;top:0;border:0;border-radius:0 3px 0 0;cursor:pointer;background-color:transparent}.mapboxgl-popup-close-button:hover{background-color:rgba(0,0,0,.05)}.mapboxgl-popup-content{position:relative;background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.1);padding:10px 10px 15px;pointer-events:auto}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-marker{position:absolute;top:0;left:0;will-change:transform}.mapboxgl-user-location-dot{box-shadow:0 0 2px rgba(0,0,0,.25)}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;width:15px;height:15px;border-radius:50%}.mapboxgl-user-location-dot:before{content:"";position:absolute;-webkit-animation:mapboxgl-user-location-dot-pulse 2s infinite;-moz-animation:mapboxgl-user-location-dot-pulse 2s infinite;-ms-animation:mapboxgl-user-location-dot-pulse 2s infinite;animation:mapboxgl-user-location-dot-pulse 2s infinite}.mapboxgl-user-location-dot:after{border-radius:50%;border:2px solid #fff;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px;box-sizing:border-box}@-webkit-keyframes mapboxgl-user-location-dot-pulse{0%{-webkit-transform:scale(1);opacity:1}70%{-webkit-transform:scale(3);opacity:0}to{-webkit-transform:scale(1);opacity:0}}@-ms-keyframes mapboxgl-user-location-dot-pulse{0%{-ms-transform:scale(1);opacity:1}70%{-ms-transform:scale(3);opacity:0}to{-ms-transform:scale(1);opacity:0}}@keyframes mapboxgl-user-location-dot-pulse{0%{transform:scale(1);opacity:1}70%{transform:scale(3);opacity:0}to{transform:scale(1);opacity:0}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{position:absolute;top:0;left:0;width:0;height:0;background:#fff;border:2px dotted #202020;opacity:.5}@media print{.mapbox-improve-map{display:none}}.mapAPI-map{height:30rem;margin-bottom:1rem}.mapboxgl-marker{width:30px;height:30px;font-size:30px;cursor:pointer;text-align:center}

View File

@ -1 +0,0 @@
#Menu-SilverStripe-CampaignAdmin-CampaignAdmin{display:none}

View File

@ -1 +0,0 @@
.table,table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th,table td,table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th,table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody,table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th,table,table td,table th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th,table thead td,table thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8d6e9}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7bb3d6}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#a5cbe3}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#fae8b8}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#f5d47b}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#f8e0a0}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th,table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th,table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered,table.table-dark{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered,.table-responsive-sm>table{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered,.table-responsive-md>table{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered,.table-responsive-lg>table{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered,.table-responsive-xl>table{border:0}}@media (max-width:1389.98px){.table-responsive-xxl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xxl>.table-bordered,.table-responsive-xxl>table{border:0}}@media (max-width:1589.98px){.table-responsive-xxxl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xxxl>.table-bordered,.table-responsive-xxxl>table{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered,.table-responsive>table{border:0}.image.left{float:left;clear:left;margin:0 1rem 1rem 0}.image.center{display:block;margin:1rem auto}.image.right{float:right;clear:right;margin:1rem 0 0 1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}table{width:100%;max-width:100%;border-collapse:collapse}table.table-none{border:0}table.table-none td,table.table-none th,table.table-none tr{border:0;background:none!important}

View File

@ -1 +0,0 @@
h1.title{display:block;text-align:right;border-bottom:1px solid #dee2e6;text-transform:uppercase;line-height:1.5em}.warningMessage{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem;color:#856404;background-color:#fff3cd;border-color:#ffeeba}#Content{text-align:left;margin:auto;padding-left:20px}#Content .emailTitle{font-family:Lato,sans-serif;font-weight:400;font-size:2.5rem}#Content .PageTitle{padding:5px;color:#212529;font-size:14px;font-family:Lato,sans-serif}#Content .footer td{padding:10px}#Content .footer td.right{text-align:right}#Content .typography{padding:0 10px}#Content .typography a{font-size:1em;text-decoration:underline}#Content .typography a:hover{text-decoration:none}#Content .typography ul{padding:2px 15px}#Content .typography ul li{padding:2px 5px}#Content .typography p{margin:.75em 0;color:#212529}table#SenderTable .meta,table#SenderTable .sender{width:50%}table#MetaTable{margin-left:auto}table#MetaTable .label{font-weight:700}#ShippingTable td,#ShippingTable th{width:50%}table.infotable{border:1px solid #dee2e6;border-collapse:collapse;width:100%;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6;background:#fff;margin-top:10px}table.infotable td.product.title{color:#016cb1;font-size:1.75rem;font-weight:400;font-family:Lato,sans-serif}table.infotable tr td,table.infotable tr th{padding:5px;color:#212529;border:1px solid #dee2e6}table.infotable td{vertical-align:middle}table.infotable tr.summary{font-weight:700}table.infotable td.ordersummary{font-size:1em;border-bottom:1px solid #dee2e6}table.infotable tr th{font-weight:700}table.infotable tr td a{color:#016cb1;text-decoration:underline}table.infotable tr td a:hover{text-decoration:none}table.infotable .modifierRow,table.infotable .right,table.infotable .threeColHeader{text-align:right}table.infotable .center{text-align:center}table.infotable .left,table.infotable th{text-align:left}

13864
dist/css/main.css vendored

File diff suppressed because one or more lines are too long

14
dist/css/sample.css vendored

File diff suppressed because one or more lines are too long

1
dist/icons/.cache vendored
View File

@ -1 +0,0 @@
{"hash":"3deb17371acdc75398d81da38fad464c","version":"0.0.9","optionHash":"c067d9b2d6a96a86192ece0162f1b1ac","result":{"outputFilePrefix":"/icons/","html":["<meta name=\"mobile-web-app-capable\" content=\"yes\">","<meta name=\"theme-color\" content=\"#fff\">","<meta name=\"application-name\" content=\"Webpack App\">","<link rel=\"apple-touch-icon\" sizes=\"57x57\" href=\"app/client/dist//icons/apple-touch-icon-57x57.png\">","<link rel=\"apple-touch-icon\" sizes=\"60x60\" href=\"app/client/dist//icons/apple-touch-icon-60x60.png\">","<link rel=\"apple-touch-icon\" sizes=\"72x72\" href=\"app/client/dist//icons/apple-touch-icon-72x72.png\">","<link rel=\"apple-touch-icon\" sizes=\"76x76\" href=\"app/client/dist//icons/apple-touch-icon-76x76.png\">","<link rel=\"apple-touch-icon\" sizes=\"114x114\" href=\"app/client/dist//icons/apple-touch-icon-114x114.png\">","<link rel=\"apple-touch-icon\" sizes=\"120x120\" href=\"app/client/dist//icons/apple-touch-icon-120x120.png\">","<link rel=\"apple-touch-icon\" sizes=\"144x144\" href=\"app/client/dist//icons/apple-touch-icon-144x144.png\">","<link rel=\"apple-touch-icon\" sizes=\"152x152\" href=\"app/client/dist//icons/apple-touch-icon-152x152.png\">","<link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"app/client/dist//icons/apple-touch-icon-180x180.png\">","<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">","<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\">","<meta name=\"apple-mobile-web-app-title\" content=\"Webpack App\">","<link rel=\"icon\" type=\"image/png\" sizes=\"228x228\" href=\"app/client/dist//icons/coast-228x228.png\">","<meta name=\"msapplication-TileColor\" content=\"#fff\">","<meta name=\"msapplication-TileImage\" content=\"mstile-144x144.png\">","<meta name=\"msapplication-config\" content=\"browserconfig.xml\">","<link rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"app/client/dist//icons/favicon-32x32.png\">","<link rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"app/client/dist//icons/favicon-16x16.png\">","<link rel=\"shortcut icon\" href=\"app/client/dist//icons/favicon.ico\">","<link rel=\"apple-touch-startup-image\" media=\"(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 1)\" href=\"app/client/dist//icons/apple-touch-startup-image-320x460.png\">","<link rel=\"apple-touch-startup-image\" media=\"(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 2)\" href=\"app/client/dist//icons/apple-touch-startup-image-640x920.png\">","<link rel=\"apple-touch-startup-image\" media=\"(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)\" href=\"app/client/dist//icons/apple-touch-startup-image-640x1096.png\">","<link rel=\"apple-touch-startup-image\" media=\"(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)\" href=\"app/client/dist//icons/apple-touch-startup-image-750x1294.png\">","<link rel=\"apple-touch-startup-image\" media=\"(device-width: 414px) and (device-height: 736px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 3)\" href=\"app/client/dist//icons/apple-touch-startup-image-1182x2208.png\">","<link rel=\"apple-touch-startup-image\" media=\"(device-width: 414px) and (device-height: 736px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 3)\" href=\"app/client/dist//icons/apple-touch-startup-image-1242x2148.png\">","<link rel=\"apple-touch-startup-image\" media=\"(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 1)\" href=\"app/client/dist//icons/apple-touch-startup-image-748x1024.png\">","<link rel=\"apple-touch-startup-image\" media=\"(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 1)\" href=\"app/client/dist//icons/apple-touch-startup-image-768x1004.png\">","<link rel=\"apple-touch-startup-image\" media=\"(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2)\" href=\"app/client/dist//icons/apple-touch-startup-image-1496x2048.png\">","<link rel=\"apple-touch-startup-image\" media=\"(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)\" href=\"app/client/dist//icons/apple-touch-startup-image-1536x2008.png\">"],"files":["/icons/android-chrome-36x36.png","/icons/android-chrome-48x48.png","/icons/android-chrome-72x72.png","/icons/android-chrome-144x144.png","/icons/android-chrome-192x192.png","/icons/android-chrome-256x256.png","/icons/android-chrome-384x384.png","/icons/android-chrome-96x96.png","/icons/android-chrome-512x512.png","/icons/apple-touch-icon-57x57.png","/icons/apple-touch-icon-72x72.png","/icons/apple-touch-icon-60x60.png","/icons/apple-touch-icon-114x114.png","/icons/apple-touch-icon-120x120.png","/icons/apple-touch-icon-76x76.png","/icons/apple-touch-icon-144x144.png","/icons/apple-touch-icon-167x167.png","/icons/apple-touch-icon-152x152.png","/icons/apple-touch-icon-180x180.png","/icons/apple-touch-icon-precomposed.png","/icons/apple-touch-icon.png","/icons/coast-228x228.png","/icons/yandex-browser-50x50.png","/icons/mstile-70x70.png","/icons/mstile-144x144.png","/icons/mstile-150x150.png","/icons/mstile-310x150.png","/icons/mstile-310x310.png","/icons/favicon-16x16.png","/icons/favicon-32x32.png","/icons/favicon.ico","/icons/apple-touch-startup-image-640x920.png","/icons/apple-touch-startup-image-320x460.png","/icons/apple-touch-startup-image-640x1096.png","/icons/apple-touch-startup-image-748x1024.png","/icons/apple-touch-startup-image-750x1294.png","/icons/apple-touch-startup-image-768x1004.png","/icons/apple-touch-startup-image-1182x2208.png","/icons/apple-touch-startup-image-1242x2148.png","/icons/apple-touch-startup-image-1536x2008.png","/icons/apple-touch-startup-image-1496x2048.png","/icons/firefox_app_60x60.png","/icons/firefox_app_128x128.png","/icons/firefox_app_512x512.png","/icons/manifest.json","/icons/yandex-browser-manifest.json","/icons/browserconfig.xml","/icons/manifest.webapp"]}}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 758 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1003 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

View File

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square70x70logo src="mstile-70x70.png"/>
<square150x150logo src="mstile-150x150.png"/>
<wide310x150logo src="mstile-310x150.png"/>
<square310x310logo src="mstile-310x310.png"/>
<TileColor>#fff</TileColor>
</tile>
</msapplication>
</browserconfig>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 369 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 660 B

BIN
dist/icons/favicon.ico vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -1,58 +0,0 @@
{
"name": "Webpack App",
"short_name": "Webpack App",
"description": null,
"dir": "auto",
"lang": "en-US",
"display": "standalone",
"orientation": "any",
"start_url": "/?homescreen=1",
"background_color": "#fff",
"icons": [
{
"src": "android-chrome-36x36.png",
"sizes": "36x36",
"type": "image/png"
},
{
"src": "android-chrome-48x48.png",
"sizes": "48x48",
"type": "image/png"
},
{
"src": "android-chrome-72x72.png",
"sizes": "72x72",
"type": "image/png"
},
{
"src": "android-chrome-96x96.png",
"sizes": "96x96",
"type": "image/png"
},
{
"src": "android-chrome-144x144.png",
"sizes": "144x144",
"type": "image/png"
},
{
"src": "android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "android-chrome-256x256.png",
"sizes": "256x256",
"type": "image/png"
},
{
"src": "android-chrome-384x384.png",
"sizes": "384x384",
"type": "image/png"
},
{
"src": "android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
]
}

View File

@ -1,14 +0,0 @@
{
"version": "1.0",
"name": "Webpack App",
"description": null,
"icons": {
"60": "firefox_app_60x60.png",
"128": "firefox_app_128x128.png",
"512": "firefox_app_512x512.png"
},
"developer": {
"name": null,
"url": null
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -1,9 +0,0 @@
{
"version": "1.0",
"api_version": 1,
"layout": {
"logo": "yandex-browser-50x50.png",
"color": "#fff",
"show_title": true
}
}

2
dist/index.html vendored
View File

@ -1 +1 @@
<!doctype html><html lang="en"><head><title>Webpack Bootstrap 4 UI Demo</title><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="description" content=""><meta name="author" content=""><link href="css/main.css" rel="stylesheet"></head><body><noscript><div class="main-bn">Please, enable javascript.</div></noscript><div id="PageTopAnchor"></div><div class="wrapper"><header id="Header" class="bg-dark"><div class="container-fluid"><nav id="Navigation" class="fixed-top navbar-dark bg-dark navbar navbar-expand-lg"><a class="navbar-brand" href="#">UI Kit</a> <button data-target="#NavbarResponsive" aria-controls="NavbarResponsive" class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button><div id="NavbarResponsive" class="collapse navbar-collapse"><ul class="navbar-nav mr-auto nav-fill w-100"><li class="nav-item active"><a class="nav-link js-scrollTo" href="#PageTopAnchor">Home <span class="sr-only">(current)</span></a></li><li class="nav-item"><a class="nav-link js-scrollTo" href="#Slider">Slider</a></li><li class="nav-item dropdown"><a id="NavbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a><div class="dropdown-menu bg-dark" aria-labelledby="NavbarDropdown"><a class="dropdown-item" href="#">Action</a> <a class="dropdown-item js-scrollTo" href="#AccordionList">Scroll to AccordionList</a><div class="dropdown-divider"></div><a class="dropdown-item" href="https://google.com" target="_blank" rel="nofollow">Go to Google.com</a></div></li><li class="nav-item"><a class="nav-link js-scrollTo" href="#Content">Content</a></li><li class="nav-item"><a class="nav-link js-scrollTo" href="#List">List</a></li><li class="nav-item"><a class="nav-link js-scrollTo" href="#AccordionList">Accordion List</a></li><li><form class="form-inline my-2 my-lg-0"><input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search"> <button class="btn btn-outline-success my-2 my-sm-0" type="submit"><i class="fas fa-search"></i> <span class="sr-only">Search</span></button></form></li></ul></div></nav></div></header><main id="MainContent" class="page-content"><section id="Slider" class="element site__elements__sliderelement"><div class="element-container container-fluid"><div id="Carousel{$ID}" class="carousel slide js-carousel d-none d-sm-block" data-indicators="true" data-arrows="true"><div class="carousel-inner"><div class="carousel-item active"><a href="$PageLink.Link" title="$PageLink.MenuTitle.XML" class="btn-primary"><img class="d-block w-100" src="https://placehold.it/1200x600" alt="$Headline"></a><div class="carousel-caption"><div class="carousel-caption-container"><h2 class="carousel-title">$Headline #1</h2><p class="carousel-content">$Description</p><p><a href="$PageLink.Link" title="$PageLink.MenuTitle.XML" class="btn btn-default btn-lg"><i class="fas fa-bars"></i> Learn More</a></p></div></div></div><div class="carousel-item"><a href="$PageLink.Link" title="$PageLink.MenuTitle.XML" class="btn-primary"><img class="d-block w-100" src="https://placehold.it/1200x600" alt="$Headline"></a><div class="carousel-caption"><div class="carousel-caption-container"><h2 class="carousel-title">$Headline #2</h2><p class="carousel-content">$Description</p><p><a href="$PageLink.Link" title="$PageLink.MenuTitle.XML" class="btn btn-default btn-lg"><i class="fas fa-bars"></i> Learn More</a></p></div></div></div><div class="carousel-item"><a href="$PageLink.Link" title="$PageLink.MenuTitle.XML" class="btn-primary"><img class="d-block w-100" src="https://placehold.it/1200x600" alt="$Headline"></a><div class="carousel-caption"><div class="carousel-caption-container"><h2 class="carousel-title">$Headline #3</h2><p class="carousel-content">$Description</p><p><a href="$PageLink.Link" title="$PageLink.MenuTitle.XML" class="btn btn-default btn-lg"><i class="fas fa-bars"></i> Learn More</a></p></div></div></div></div></div></div></section><section id="Content" class="element dnadesign__elemental__models__elementcontent"><div class="element-container container"><div class="content-element__content"><h2 class="content-element__title">Content Header</h2><div class="typography"><p>Content Text Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p><p><i class="fas fa-search"></i> Content Text Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p><h2><i class="fas fa-search"></i> Header #2 <i class="fas fa-search"></i></h2><p><img src="https://placehold.it/200x200" alt="Test Image" class="image right">Content Text Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p><h3>Header #3</h3><p><img src="https://placehold.it/200x200" alt="Test Image" class="image left"> Content Text Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p><h2>Header #2</h2><h3 class="text-left">Header #3</h3><h4 class="text-center">Header #4</h4><h5 class="text-right">Header #5</h5><h6>Header #6</h6><p class="text-right"><img src="https://placehold.it/200x200" alt="Test Image" class="image center"> Content Text <a href="#">Link</a> ... Content Text <b>Bold</b> ... Content Text <i>Italic</i> ... Content Text <b><i>Bold-Italic</i></b> ... <s>Content Text</s> Bla-bla-bla ... Content Text Bla-bla-bla ... Content Text Bla-bla-bla ... Content Text Bla-bla-bla ... Content Text Bla-bla-bla ... Content Text Bla-bla-bla ... Content Text Bla-bla-bla ... Content Text Bla-bla-bla ...</p><ul><li>First</li><li>Second</li><li>Third</li></ul><p class="text-left">Content Text Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p><ol><li>First<ul><li>First</li><li>Second<ol><li>First</li><li>Second</li><li>Third</li></ol><ul><li>First</li><li>Second</li><li>Third</li></ul></li><li><p>Content Text Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p></li></ul></li><li><p>{paragraph} Second</p><p>{paragraph} Second #2</p></li><li><p>Content Text Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p></li></ol><h2 class="text-center">Table #1: Default</h2><table><thead><tr><th>#1</th><th>#2</th><th>#3</th></tr></thead><tbody><tr><th>#1-1</th><td>#1-2</td><td>#1-3</td></tr><tr><td>#2-1</td><td>#2-2</td><td>#2-3</td></tr><tr><th>#3-1</th><td>#3-2</td><td>#3-3</td></tr></tbody></table><p class="text-justify">Content Text Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p><h2 class="text-center">Table #2: Border-less</h2><table class="table-none"><thead><tr><th>#1</th><th>#2</th><th>#3</th></tr></thead><tbody><tr><th>#1-1</th><td>#1-2</td><td>#1-3</td></tr><tr><td>#2-1</td><td>#2-2</td><td>#2-3</td></tr><tr><th>#3-1</th><td>#3-2</td><td>#3-3</td></tr></tbody></table></div></div></div></section><section id="List" class="element dnadesign__elementallist__model__elementlist bg-dark"><div class="element-container container"><h2 class="list-element__title">Content Header</h2><div class="typography">Some content ...</div><div class="list-element__container row" data-listelement-count="4"><div class="element dnadesign__elemental__models__elementcontent block col-md-3"><div class="element-container"><div class="content-element__content"><div class="typography"><img src="https://placehold.it/300x300" alt="Some kind image"></div></div></div></div><div class="element dnadesign__elemental__models__elementcontent block col-md-3"><div class="element-container"><div class="content-element__content"><div class="typography"><img src="https://placehold.it/300x300" alt="Some kind image"></div></div></div></div><div class="element dnadesign__elemental__models__elementcontent block col-md-3"><div class="element-container"><div class="content-element__content"><div class="typography"><img src="https://placehold.it/300x300" alt="Some kind image"></div></div></div></div><div class="element dnadesign__elemental__models__elementcontent block col-md-3"><div class="element-container"><div class="content-element__content"><div class="typography"><img src="https://placehold.it/300x300" alt="Some kind image"></div></div></div></div></div></div></section><section id="AccordionList" class="element site__elements__accordion"><div class="element-container container"><h2 class="list-element__title">Content Header</h2><div class="typography">Some content ...</div><div id="AccordionExample" class="list-element__container row accordion" data-listelement-count="4"><div class="element dnadesign__elemental__models__elementcontent block col-md-12 card"><div class="element-container"><div class="content-element__content"><div id="Heading1" class="card-header"><button data-target="#Collapse1" aria-controls="Collapse1" class="btn btn-link collapsed" type="button" data-toggle="collapse" aria-expanded="false"><h2 class="element__title">Content Header #1</h2></button></div><div id="Collapse1" aria-labelledby="Heading1" data-parent="#AccordionExample" class="collapse"><div class="card-body"><div class="typography"><p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p></div></div></div></div></div></div><div class="element dnadesign__elemental__models__elementcontent block col-md-12 card"><div class="element-container"><div class="content-element__content"><div class="card-header" id="Heading2"><button data-target="#Collapse2" aria-controls="Collapse2" class="btn btn-link collapsed" type="button" data-toggle="collapse" aria-expanded="false"><h2 class="element__title">Content Header #2</h2></button></div><div id="Collapse2" class="collapse" aria-labelledby="Heading2" data-parent="#AccordionExample"><div class="card-body"><div class="typography"><p>It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).</p></div></div></div></div></div></div><div class="element dnadesign__elemental__models__elementcontent block col-md-12 card"><div class="element-container"><div class="content-element__content"><div class="card-header" id="Heading3"><button data-target="#Collapse3" aria-controls="Collapse3" class="btn btn-link collapsed" type="button" data-toggle="collapse" aria-expanded="false"><h2 class="element__title">Content Header #3</h2></button></div><div id="Collapse3" class="collapse" aria-labelledby="Heading3" data-parent="#AccordionExample"><div class="card-body"><div class="typography"><p>It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).</p></div></div></div></div></div></div><div class="element dnadesign__elemental__models__elementcontent block col-md-12 card"><div class="element-container"><div class="content-element__content"><div id="Heading4" class="card-header"><button data-target="#Collapse4" aria-controls="Collapse4" class="btn btn-link collapsed" type="button" data-toggle="collapse" aria-expanded="false"><h2 class="element__title">Content Header #2</h2></button></div><div id="Collapse4" class="collapse" aria-labelledby="Heading4" data-parent="#AccordionExample"><div class="card-body"><div class="typography"><p>It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).</p></div></div></div></div></div></div></div></div></section></main></div><footer id="Footer" class="footer site-footer"><div class="wrapper"><div class="container"><div class="row"><div class="col-sm-3">Col #1</div><div class="col-sm-3">Col #2</div><div class="col-sm-3">Col #3</div><div class="col-sm-3">Col #4</div></div></div></div><div class="footer"><div class="container"><div class="row"><div class="col-sm-8 d-flex"><div class="copyright">Copyright &copy; 2019 - Tony Air (A2nt) Webpack Bootstrap 4 UI Kit</div><nav class="footer-nav"><ul class="list-inline d-flex"><li><a href="#">Sitemap</a></li><li><a href="#">Privacy Policy</a></li></ul></nav></div><div class="col-sm-4 text-right"><div class="credits footer__credits"><a href="https://github.com/a2nt" target="_blank" rel="nofollow"><span>Developed by</span> Tony Air</a></div></div></div></div></div></footer><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.4.0/css/all.css" media="all"><script src="js/app.js"></script></body></html>
<!doctype html><html lang="en"><head><title>Webpack Bootstrap 4 UI Demo</title><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="description" content=""><meta name="author" content=""><link href="css/main.css" rel="stylesheet"></head><body><noscript><div class="main-bn">Please, enable javascript.</div></noscript><div id="PageTopAnchor"></div><div class="wrapper"><header id="Header" class="bg-dark"><div class="container-fluid"><nav id="Navigation" class="fixed-top navbar-dark bg-dark navbar navbar-expand-lg dropdown-hover"><a class="navbar-brand" href="#">UI Kit</a> <button data-target="#NavbarResponsive" aria-controls="NavbarResponsive" class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button><div id="NavbarResponsive" class="collapse navbar-collapse"><ul class="navbar-nav mr-auto nav-fill w-100"><li class="nav-item active"><a class="nav-link js-scrollTo" href="#PageTopAnchor">Home <span class="sr-only">(current)</span></a></li><li class="nav-item"><a class="nav-link js-scrollTo" href="#Slider">Slider</a></li><li class="nav-item dropdown"><a id="NavbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a><div class="dropdown-menu bg-dark" aria-labelledby="NavbarDropdown"><a class="dropdown-item" href="#">Action</a> <a class="dropdown-item js-scrollTo" href="#AccordionList">Scroll to AccordionList</a><div class="dropdown-divider"></div><a class="dropdown-item" href="https://google.com" target="_blank" rel="nofollow">Go to Google.com</a></div></li><li class="nav-item"><a class="nav-link js-scrollTo" href="#Content">Content</a></li><li class="nav-item"><a class="nav-link js-scrollTo" href="#List">List</a></li><li class="nav-item"><a class="nav-link js-scrollTo" href="#AccordionList">Accordion List</a></li><li><form class="form-inline my-2 my-lg-0"><input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search"> <button class="btn btn-outline-success my-2 my-sm-0" type="submit"><i class="fas fa-search"></i> <span class="sr-only">Search</span></button></form></li></ul></div></nav></div></header><main id="MainContent" class="page-content"><section id="Slider" class="element site__elements__sliderelement"><div class="element-container container-fluid"><div id="Carousel{$ID}" class="carousel slide js-carousel d-none d-sm-block" data-indicators="true" data-arrows="true"><div class="carousel-inner"><div class="carousel-item active"><a href="$PageLink.Link" title="$PageLink.MenuTitle.XML" class="btn-primary"><img class="d-block w-100" src="https://placehold.it/1200x600" alt="$Headline"></a><div class="carousel-caption"><div class="carousel-caption-container"><h2 class="carousel-title">$Headline #1</h2><p class="carousel-content">$Description</p><p><a href="$PageLink.Link" title="$PageLink.MenuTitle.XML" class="btn btn-default btn-lg"><i class="fas fa-bars"></i> Learn More</a></p></div></div></div><div class="carousel-item"><a href="$PageLink.Link" title="$PageLink.MenuTitle.XML" class="btn-primary"><img class="d-block w-100" src="https://placehold.it/1200x600" alt="$Headline"></a><div class="carousel-caption"><div class="carousel-caption-container"><h2 class="carousel-title">$Headline #2</h2><p class="carousel-content">$Description</p><p><a href="$PageLink.Link" title="$PageLink.MenuTitle.XML" class="btn btn-default btn-lg"><i class="fas fa-bars"></i> Learn More</a></p></div></div></div><div class="carousel-item"><a href="$PageLink.Link" title="$PageLink.MenuTitle.XML" class="btn-primary"><img class="d-block w-100" src="https://placehold.it/1200x600" alt="$Headline"></a><div class="carousel-caption"><div class="carousel-caption-container"><h2 class="carousel-title">$Headline #3</h2><p class="carousel-content">$Description</p><p><a href="$PageLink.Link" title="$PageLink.MenuTitle.XML" class="btn btn-default btn-lg"><i class="fas fa-bars"></i> Learn More</a></p></div></div></div></div></div></div></section><section id="Content" class="element dnadesign__elemental__models__elementcontent"><div class="element-container container"><div class="content-element__content"><h2 class="content-element__title">Content Header</h2><div class="typography"><p>Content Text Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p><p><i class="fas fa-search"></i> Content Text Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p><h2><i class="fas fa-search"></i> Header #2 <i class="fas fa-search"></i></h2><p><img src="https://placehold.it/200x200" alt="Test Image" class="image right">Content Text Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p><h3>Header #3</h3><p><img src="https://placehold.it/200x200" alt="Test Image" class="image left"> Content Text Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p><h2>Header #2</h2><h3 class="text-left">Header #3</h3><h4 class="text-center">Header #4</h4><h5 class="text-right">Header #5</h5><h6>Header #6</h6><p class="text-right"><img src="https://placehold.it/200x200" alt="Test Image" class="image center"> Content Text <a href="#">Link</a> ... Content Text <b>Bold</b> ... Content Text <i>Italic</i> ... Content Text <b><i>Bold-Italic</i></b> ... <s>Content Text</s> Bla-bla-bla ... Content Text Bla-bla-bla ... Content Text Bla-bla-bla ... Content Text Bla-bla-bla ... Content Text Bla-bla-bla ... Content Text Bla-bla-bla ... Content Text Bla-bla-bla ... Content Text Bla-bla-bla ...</p><ul><li>First</li><li>Second</li><li>Third</li></ul><p class="text-left">Content Text Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p><ol><li>First<ul><li>First</li><li>Second<ol><li>First</li><li>Second</li><li>Third</li></ol><ul><li>First</li><li>Second</li><li>Third</li></ul></li><li><p>Content Text Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p></li></ul></li><li><p>{paragraph} Second</p><p>{paragraph} Second #2</p></li><li><p>Content Text Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p></li></ol><h2 class="text-center">Table #1: Default</h2><table><thead><tr><th>#1</th><th>#2</th><th>#3</th></tr></thead><tbody><tr><th>#1-1</th><td>#1-2</td><td>#1-3</td></tr><tr><td>#2-1</td><td>#2-2</td><td>#2-3</td></tr><tr><th>#3-1</th><td>#3-2</td><td>#3-3</td></tr></tbody></table><p class="text-justify">Content Text Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p><h2 class="text-center">Table #2: Border-less</h2><table class="table-none"><thead><tr><th>#1</th><th>#2</th><th>#3</th></tr></thead><tbody><tr><th>#1-1</th><td>#1-2</td><td>#1-3</td></tr><tr><td>#2-1</td><td>#2-2</td><td>#2-3</td></tr><tr><th>#3-1</th><td>#3-2</td><td>#3-3</td></tr></tbody></table></div></div></div></section><section id="List" class="element dnadesign__elementallist__model__elementlist bg-dark"><div class="element-container container"><h2 class="list-element__title">Content Header</h2><div class="typography">Some content ...</div><div class="list-element__container row" data-listelement-count="4"><div class="element dnadesign__elemental__models__elementcontent block col-md-3"><div class="element-container"><div class="content-element__content"><div class="typography"><img src="https://placehold.it/300x300" alt="Some kind image"></div></div></div></div><div class="element dnadesign__elemental__models__elementcontent block col-md-3"><div class="element-container"><div class="content-element__content"><div class="typography"><img src="https://placehold.it/300x300" alt="Some kind image"></div></div></div></div><div class="element dnadesign__elemental__models__elementcontent block col-md-3"><div class="element-container"><div class="content-element__content"><div class="typography"><img src="https://placehold.it/300x300" alt="Some kind image"></div></div></div></div><div class="element dnadesign__elemental__models__elementcontent block col-md-3"><div class="element-container"><div class="content-element__content"><div class="typography"><img src="https://placehold.it/300x300" alt="Some kind image"></div></div></div></div></div></div></section><section id="AccordionList" class="element site__elements__accordion"><div class="element-container container"><h2 class="list-element__title">Content Header</h2><div class="typography">Some content ...</div><div id="AccordionExample" class="list-element__container row accordion" data-listelement-count="4"><div class="element dnadesign__elemental__models__elementcontent block col-md-12 card"><div class="element-container"><div class="content-element__content"><div id="Heading1" class="card-header"><button data-target="#Collapse1" aria-controls="Collapse1" class="btn btn-link collapsed" type="button" data-toggle="collapse" aria-expanded="false"><h2 class="element__title">Content Header #1</h2></button></div><div id="Collapse1" aria-labelledby="Heading1" data-parent="#AccordionExample" class="collapse"><div class="card-body"><div class="typography"><p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p></div></div></div></div></div></div><div class="element dnadesign__elemental__models__elementcontent block col-md-12 card"><div class="element-container"><div class="content-element__content"><div class="card-header" id="Heading2"><button data-target="#Collapse2" aria-controls="Collapse2" class="btn btn-link collapsed" type="button" data-toggle="collapse" aria-expanded="false"><h2 class="element__title">Content Header #2</h2></button></div><div id="Collapse2" class="collapse" aria-labelledby="Heading2" data-parent="#AccordionExample"><div class="card-body"><div class="typography"><p>It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).</p></div></div></div></div></div></div><div class="element dnadesign__elemental__models__elementcontent block col-md-12 card"><div class="element-container"><div class="content-element__content"><div class="card-header" id="Heading3"><button data-target="#Collapse3" aria-controls="Collapse3" class="btn btn-link collapsed" type="button" data-toggle="collapse" aria-expanded="false"><h2 class="element__title">Content Header #3</h2></button></div><div id="Collapse3" class="collapse" aria-labelledby="Heading3" data-parent="#AccordionExample"><div class="card-body"><div class="typography"><p>It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).</p></div></div></div></div></div></div><div class="element dnadesign__elemental__models__elementcontent block col-md-12 card"><div class="element-container"><div class="content-element__content"><div id="Heading4" class="card-header"><button data-target="#Collapse4" aria-controls="Collapse4" class="btn btn-link collapsed" type="button" data-toggle="collapse" aria-expanded="false"><h2 class="element__title">Content Header #2</h2></button></div><div id="Collapse4" class="collapse" aria-labelledby="Heading4" data-parent="#AccordionExample"><div class="card-body"><div class="typography"><p>It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).</p></div></div></div></div></div></div></div></div></section></main></div><footer id="Footer" class="footer site-footer"><div class="wrapper"><div class="container"><div class="row"><div class="col-sm-3">Col #1</div><div class="col-sm-3">Col #2</div><div class="col-sm-3">Col #3</div><div class="col-sm-3">Col #4</div></div></div></div><div class="footer"><div class="container"><div class="row"><div class="col-sm-8 d-flex"><div class="copyright">Copyright &copy; 2019 - Tony Air (A2nt) Webpack Bootstrap 4 UI Kit</div><nav class="footer-nav"><ul class="list-inline d-flex"><li><a href="#">Sitemap</a></li><li><a href="#">Privacy Policy</a></li></ul></nav></div><div class="col-sm-4 text-right"><div class="credits footer__credits"><a href="https://github.com/a2nt" target="_blank" rel="nofollow"><span>Developed by</span> Tony Air</a></div></div></div></div></div></footer><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.4.0/css/all.css" media="all"><script src="js/app.js"></script></body></html>

68
dist/js/app.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/js/app_cms.js vendored
View File

@ -1 +0,0 @@
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="app/client/dist",n(n.s="./app/client/src/scss/types/cms.scss")}({"./app/client/src/scss/types/cms.scss":function(e,t){}});

View File

@ -1 +0,0 @@
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="app/client/dist",r(r.s="./app/client/src/scss/types/editor.scss")}({"./app/client/src/scss/types/editor.scss":function(e,t){}});

View File

@ -1 +0,0 @@
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="app/client/dist",r(r.s="./app/client/src/scss/types/order.scss")}({"./app/client/src/scss/types/order.scss":function(e,t){}});

140
dist/js/sample.js vendored

File diff suppressed because one or more lines are too long

View File

@ -1,29 +1,32 @@
{
"name": "ss-webpack-boilerplate",
"version": "1.0.0",
"description": "Lets you create SilverStripe faster",
"author": "Tony Air <tony@twma.pro>",
"license": "MIT",
"description": "This UI Kit allows you to build Bootstrap 4 webapp with some extra UI features. It's easy to extend and easy to convert HTML templates to CMS templates.",
"private": false,
"main": "src/js/app.js",
"repository": {
"type": "git",
"url": "git+https://github.com/a2nt/silverstripe-webpack"
"url": "git+https://github.com/a2nt/webpack-bootstrap-ui-kit"
},
"engines": {
"yarn": ">= 1.0.0"
},
"scripts": {
"start": "cross-env NODE_ENV=development webpack-dev-server --https -d --config webpack.config.dev.js",
"dash": "cross-env NODE_ENV=development webpack-dashboard -- webpack-dev-server --config webpack.config.dev.js",
"prebuild": "rimraf build",
"build": "cross-env NODE_ENV=production webpack -p --config webpack.config.prod.js --progress",
"start": "cross-env NODE_ENV=development webpack-dev-server --https -d --config webpack.config.js",
"dash": "cross-env NODE_ENV=development webpack-dashboard -- webpack-dev-server --config webpack.config.js",
"build": "cross-env NODE_ENV=production webpack -p --config webpack.config.js --progress",
"lint:check": "eslint ./app/client/src --config .eslintrc && sass-lint ./app/client/src --config .sasslintrc -v -q",
"lint:fix": "eslint ./app/client/src --config .eslintrc --fix && sass-lint ./app/client/src --config .sasslintrc -v -q --fix",
"lint:js": "eslint ./app/client/src --config .eslintrc",
"lint:sass": "sass-lint ./app/client/src --config .sasslintrc -v -q"
"lint:sass": "sass-lint ./app/client/src --config .sasslintrc -v -q",
"prebuild": "yarn lint:fix && rimraf dist",
"prepare": "yarn lint:fix && yarn build"
},
"dependencies": {
"@google/markerclusterer": "^1.0.3",
"animate.css": "^3.7.0",
"bootbox": "^4.4.0",
"bootstrap": "^4.3.1",
"bootstrap-confirmation2": "^4.1.0",
@ -39,22 +42,22 @@
"gijgo": "^1.9.13",
"jquery": "^3.4.1",
"jquery-hammerjs": "^2.0.0",
"jquery-hoverintent": "^1.10.1",
"jquery-zoom": "^1.7.21",
"jquery.appear": "^1.0.1",
"jquery.inputmask": "^3.3.4",
"laravel-mix": "^4.1.2",
"mapbox-gl": "^1.2.1",
"meta-lightbox": "^1.0.0",
"offcanvas-bootstrap": "^2.5.2",
"popper.js": "^1.15.0",
"pouchdb": "^6.4.3",
"quill": "^1.3.6",
"quill": "^1.3.7",
"react-bootstrap4-form-validation": "^1.0.10",
"routie": "0.0.1",
"select2": "^4.0.8",
"smooth-scroll": "^14.2.1",
"animate.css": "^3.7.0",
"yarn": "^1.17.3",
"laravel-mix": "^4.1.2"
"yarn": "^1.17.3"
},
"devDependencies": {
"autoprefixer": "^7.2.5",
@ -77,7 +80,7 @@
"eslint-plugin-react": "^7.14.3",
"exports-loader": "^0.7.0",
"extract-text-webpack-plugin": "^4.0.0-beta.0",
"favicons-webpack-plugin": "0.0.9",
"favicons-webpack-plugin": "^1.0.2",
"file-loader": "^1.1.5",
"html-webpack-plugin": "^4.0.0-beta.8",
"lost": "^8.3.1",
@ -112,7 +115,8 @@
"block-no-empty": null,
"color-no-invalid-hex": true,
"comment-empty-line-before": [
"always", {
"always",
{
"ignore": [
"stylelint-commands",
"after-comment"
@ -121,7 +125,8 @@
],
"declaration-colon-space-after": "always",
"indentation": [
4, {
4,
{
"except": [
"value"
]
@ -129,7 +134,8 @@
],
"max-empty-lines": 2,
"rule-empty-line-before": [
"always", {
"always",
{
"except": [
"first-nested"
],

View File

@ -64,8 +64,8 @@ const CarouselUI = (($) => {
events: {
'onReady': () => {
$e.data('player').pauseVideo();
}
}
},
},
}));
$e.data('player').pauseVideo();
@ -85,25 +85,17 @@ const CarouselUI = (($) => {
});
// init touch swipes
$e.hammer().bind('swipeleft', (event) => {
$e.hammer().bind('swipeleft panleft', (e) => {
$(event.target).carousel('next');
});
$e.hammer().bind('swiperight', (event) => {
$e.hammer().bind('swiperight panright', (e) => {
$(event.target).carousel('prev');
});
$e.hammer().bind('panleft', (event) => {
/*$e.find('.carousel-item').hammer().bind('tap', (event) => {
$(event.target).carousel('next');
});
$e.hammer().bind('panright', (event) => {
$(event.target).carousel('prev');
});
$e.find('.carousel-item').hammer().bind('tap', (event) => {
$(event.target).carousel('next');
});
});*/
});
}

View File

@ -13,6 +13,10 @@ const FormToggleUI = (($) => {
constructor($el) {
const ui = this;
const condition = $el.data('value-toggle');
if (!condition) {
return;
}
ui.$el = $el;
ui.$el.data(DATA_KEY, ui);
@ -39,39 +43,43 @@ const FormToggleUI = (($) => {
const $dataEl = ($el.is('[type="radio"]') && $el.parents('.optionset').length) ?
$el.parents('.optionset') : $el;
const yesNoVal = val && val !== '' && val !== '0' ? true : false;
// coditional toggler
const target = $el.data('target');
const condition = $el.data('value-toggle');
if (!condition) {
return;
}
// yes/no toggler
const yesNoVal = (
(condition === true && val && val !== '' && val !== '0') ||
condition === val
) ? true : false;
const $yesTarget = $($dataEl.data('value-toggle-yes'));
const $noTarget = $($dataEl.data('value-toggle-no'));
if (!$el.data(FieldUI).shown || typeof val === 'undefined') {
if ($yesTarget.length) {
ui.toggleElement($yesTarget, false);
}
if ($noTarget.length) {
ui.toggleElement($noTarget, false);
}
return;
}
if (yesNoVal) {
if ($yesTarget.length) {
ui.toggleElement($yesTarget, true);
}
if ($noTarget.length) {
ui.toggleElement($noTarget, false);
}
} else {
if ($yesTarget.length) {
ui.toggleElement($yesTarget, false);
}
if ($noTarget.length) {
ui.toggleElement($noTarget, true);
}
}
}
toggleElement($el, show) {
if (!$el.length) {
return;
}
const ui = this;
const action = show ? 'show' : 'hide';
@ -130,7 +138,10 @@ const FormToggleUI = (($) => {
$(W).on(`${Events.AJAX} ${Events.LOADED}`, () => {
//FormToggleUI.validate();
$(Events.FORM_FIELDS).filter('[data-value-toggle]').jsFormToggleUI();
$('[data-value-toggle]').not(Events.FORM_FIELDS).find(Events.FORM_FIELDS).jsFormToggleUI();
$('[data-value-toggle]')
.not(Events.FORM_FIELDS)
.find(Events.FORM_FIELDS)
.jsFormToggleUI();
});
return FormToggleUI;

View File

@ -1,3 +1,6 @@
/*
* Conflicts with 'bootstrap/js/dist/dropdown'
*/
"use strict";
import $ from 'jquery';
@ -62,7 +65,10 @@ const HoverUI = (($) => {
}
$el.on('click touch', (e) => {
if (!$el.data('allow-click')) {
console.log('aaaa');
e.preventDefault();
}
if (ui.isShown()) {
ui.hide();
@ -80,9 +86,9 @@ const HoverUI = (($) => {
show() {
const ui = this;
ui.$el.parents('.dropdown, .dropdown-menu').each((i, el) => {
ui.$el.parents('.dropdown').not('.active').each((i, el) => {
const $el = $(el);
$el.siblings('.dropdown, .dropdown-menu').removeClass('show');
$el.find('.dropdown').removeClass('show');
$el.addClass('show');
});
@ -91,8 +97,10 @@ const HoverUI = (($) => {
hide() {
const ui = this;
ui.$target.removeClass('show');
ui.$target.parent('.dropdown').removeClass('show');
const $el = ui.$target;
$el.removeClass('show');
$el.find('.dropdown-menu').removeClass('show');
$el.parent('.dropdown').removeClass('show');
}
dispose() {
@ -135,6 +143,23 @@ const HoverUI = (($) => {
$('[data-toggle="hover"]').jsHoverUI();
});
// rewrite 'bootstrap/js/dist/dropdown'
$('[data-toggle="dropdown"]').on('click touch', (e) => {
e.preventDefault();
const $el = $(e.currentTarget);
const $parent = $el.parent('.dropdown');
if ($parent.hasClass('show')) {
$parent.removeClass('show');
$parent.find('.dropdown-menu').removeClass('show');
} else {
$parent.addClass('show');
$parent.find('.dropdown-menu').addClass('show');
}
});
return HoverUI;
})($);

View File

@ -40,7 +40,7 @@ const MapAPI = (($) => {
mapBoxGL.accessToken = $el.data('key');
Map = new mapBoxGL.Map({
'container': $el.find('.mapAPI-map')[0],
'center': center,
center,
//hash: true,
'style': currentStyle,
'localIdeographFontFamily': $BODY.css('font-family'),
@ -108,16 +108,16 @@ const MapAPI = (($) => {
"interpolate", ["linear"],
["zoom"],
15, 0,
15.05, ["get", "height"]
15.05, ["get", "height"],
],
'fill-extrusion-base': [
"interpolate", ["linear"],
["zoom"],
15, 0,
15.05, ["get", "min_height"]
15.05, ["get", "min_height"],
],
'fill-extrusion-opacity': .6
}
'fill-extrusion-opacity': .6,
},
}, labelLayerId);
}

View File

@ -7,37 +7,37 @@ const SlidingMenu = (($) => {
class SlidingMenu {
// Constructor
constructor(el) {
const $el = $(this._el);
this.$el = $el;
$el.addClass(`${NAME}-active`);
constructor(element) {
this._element = element;
const $element = $(this._element);
$element.addClass(`${NAME}-active`);
// esc button
$(window).on('keyup', ((e) => {
$(window).on('keyup',((e) => {
if (e.which === 27) {
$el.find('.is-open[data-toggle="offcanvas"]').click();
$element.find('.is-open[data-toggle="offcanvas"]').click();
}
}));
}
// Public methods
dispose() {
console.log(`Disposing: ${NAME} els`);
console.log(`Disposing: ${NAME} elements`);
this.$el.removeClass(`${NAME}-active`);
$.removeData(this.$el, DATA_KEY);
this.$el = null;
$(this._element).removeClass(`${NAME}-active`);
$.removeData(this._element, DATA_KEY);
this._element = null;
}
static _jQueryInterface() {
return this.each(function() {
// attach functionality to el
const $el = $(this);
let data = $el.data(DATA_KEY);
return this.each(function () {
// attach functionality to element
const $element = $(this);
let data = $element.data(DATA_KEY);
if (!data) {
data = new SlidingMenu(this);
$el.data(DATA_KEY, data);
$element.data(DATA_KEY, data);
}
});
}
@ -46,7 +46,7 @@ const SlidingMenu = (($) => {
// jQuery interface
$.fn[NAME] = SlidingMenu._jQueryInterface;
$.fn[NAME].Constructor = SlidingMenu;
$.fn[NAME].noConflict = function() {
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT;
return SlidingMenu._jQueryInterface;
};

View File

@ -0,0 +1,199 @@
'use strict';
import $ from 'jquery';
import Events from '../_events';
import 'hammerjs/hammer';
import 'jquery-hammerjs/jquery.hammer';
import MainUI from '../_main';
const W = window;
const MultiSlider = (($) => {
// Constants
const NAME = 'jsMultiSlider';
const DATA_KEY = NAME;
const $BODY = $('body');
class MultiSlider {
// Constructor
constructor(el) {
this.dispose();
const ui = this;
const $el = $(el);
ui.$el = $el;
ui.sliding = false;
$el.wrap(`<div class="${NAME}-container"></div>`);
ui.$elContainer = $el.parent(`.${NAME}-container`);
$el.wrap(`<div class="${NAME}-slides-container"></div>`);
ui.$slidesContainer = $el.parent(`.${NAME}-slides-container`);
ui.addControls();
ui.calculate();
$(W).on('resize', () => {
ui.calculate();
});
$el.addClass(`${NAME}-active`);
}
calculate() {
const ui = this;
ui.$slides = ui.$el.find('.slide');
ui.numberOfSlides = ui.$slides.length;
ui.containerWidth = ui.$el.parent().width();
ui.maxPos = ui.numberOfSlides - ui.numToDisplay();
ui.slideWidth = ui.containerWidth / ui.numToDisplay();
ui.$slides.css('width', `${ui.slideWidth }px`);
ui.$el.css('width', ui.slideWidth * ui.numberOfSlides);
ui.currPos = 0;
ui.slide(0);
}
numToDisplay() {
const ui = this;
const size = MainUI.detectBootstrapScreenSize();
let num = ui.$el.data(`length-${size}`);
num = num ? num : ui.$el.data('length');
return num ? num : 1;
}
addControls() {
const ui = this;
const $e = ui.$el;
// actions
ui.$elContainer.append(
'<div class="slider-actions">' +
'<a href="#" class="slider-prev"><i class="fas fa-chevron-left"></i></a>' +
'<a href="#" class="slider-next"><i class="fas fa-chevron-right"></i></a>' +
'</div>'
);
ui.$prevBtn = ui.$elContainer.find('.slider-prev');
ui.$nextBtn = ui.$elContainer.find('.slider-next');
ui.$prevBtn.on('click', (e) => {
e.preventDefault();
ui.prev();
});
ui.$nextBtn.on('click', (e) => {
e.preventDefault();
ui.next();
});
// init touch swipes
$e.hammer().bind('swipeleft panleft', (e) => {
ui.next();
});
$e.hammer().bind('swiperight panright', (e) => {
ui.prev();
});
}
next() {
const ui = this;
if (ui.sliding) {
return;
}
ui.currPos++;
ui.slide(ui.currPos);
}
prev() {
const ui = this;
if (ui.sliding) {
return;
}
ui.currPos--;
ui.slide(ui.currPos);
}
slide(pos) {
const ui = this;
if (ui.sliding) {
return;
}
ui.sliding = true;
if (ui.$nextBtn.length) {
if (pos >= ui.maxPos) {
ui.$nextBtn.addClass('disabled');
} else {
ui.$nextBtn.removeClass('disabled');
}
}
if (ui.$prevBtn.length) {
if (pos <= 0) {
ui.$prevBtn.addClass('disabled');
} else {
ui.$prevBtn.removeClass('disabled');
}
}
ui.$el.animate({
'left': `${-(pos * ui.slideWidth) }px`,
}, 'slow', 'swing', () => {
ui.sliding = false;
});
}
dispose() {
const ui = this;
console.log(`Disposing: ${NAME}`);
ui.$el = null;
}
static _jQueryInterface() {
return this.each(() => {
// attach functionality to el
const $el = $(this);
let data = $el.data(DATA_KEY);
if (!data) {
data = new MultiSlider(this);
$el.data(DATA_KEY, data);
}
});
}
}
// jQuery interface
$.fn[NAME] = MultiSlider._jQueryInterface;
$.fn[NAME].Constructor = MultiSlider;
$.fn[NAME].noConflict = function() {
$.fn[NAME] = JQUERY_NO_CONFLICT;
return MultiSlider._jQueryInterface;
};
// auto-apply
$(W).on(`${Events.AJAX} ${Events.LOADED}`, () => {
console.log(`Initializing: ${NAME}`);
$(`.${NAME}`).jsMultiSlider();
});
return MultiSlider;
})($);
export default MultiSlider;

View File

@ -33,9 +33,8 @@ const NoCaptcha = (($) => {
const $_noCaptchaFields = $('.g-recaptcha');
const submitListener = (e) => {
e.preventDefault();
grecaptcha.execute();
const $field = $(e.currentTarget).find('.g-recaptcha');
grecaptcha.execute($field.data('widgetid'));
};
$_noCaptchaFields.each((i, field) => {
@ -47,15 +46,15 @@ const NoCaptcha = (($) => {
const $form = $field.data('form') ? $(`#${ $field.data('form')}`) : $field.parents('form');
//For the invisible captcha we need to setup some callback listeners
if ($field.data('size') === 'invisible' && !$field.data('callback')) {
$form.on('submit', submitListener);
}
const widget_id = grecaptcha.render(field, $field.data());
$field.data('widgetid', widget_id);
});
// For the invisible captcha we need to setup some callback listeners
if ($field.data('size') === 'invisible' && !$field.data('callback')) {
grecaptcha.execute(widget_id);
$form.on('submit', submitListener);
}
});
}
}

View File

@ -0,0 +1,168 @@
$(() => {
const $searchLat = $('[name="search-lat"]');
const $searchLng = $('[name="search-lng"]');
const $nearbyLat = $('#nearby-lat');
const $nearbyLng = $('#nearby-lng');
const $radius = $('#distance-radius');
const $category = $('#distance-category');
const $newLocation = $('[name="newlocation"]');
const $setnewlocation = $('#setnewlocation');
const $newlocationholder = $('.set-newlocation-holder');
const updatePosition = (lat, lng) => {
$searchLat.val(lat);
$searchLng.val(lng);
$nearbyLat.val(lat);
$nearbyLng.val(lng);
$searchLat.change();
$nearbyLat.change();
};
const getGeoPosition = () => {
const newLocation = $newLocation.val();
if (!newLocation.length) {
return;
}
$('.search-location .current-val').text(newLocation);
const geoUrl = `https://maps.googleapis.com/maps/api/geocode/json?address=${newLocation}&key=AIzaSyC00L0023LPBhzj12uTCL-4EwJ_6zgwcTU&sensor=true`;
$.getJSON(geoUrl)
.done((data) => {
if (data.status === 'OK') {
updatePosition(data.results[0].geometry.location.lat, data.results[0].geometry.location.lng);
//getCategories();
}
});
};
const getCurrentPosition = () => {
$('.search-location .current-val').text('Current Location');
navigator.geolocation.getCurrentPosition((position) => {
updatePosition(position.coords.latitude, position.coords.longitude);
//hideDistancesThatDontMatter();
}, () => {
$('.search-location .current-val').text('Unable to get your location');
updatePosition('', '');
});
}
if ($newLocation.length && $newLocation.val().length) {
getGeoPosition();
} else {
getCurrentPosition();
}
$('#Form_SearchForm').on('keyup keypress', (e) => {
var keyCode = e.keyCode || e.which;
if (keyCode === 13) {
e.preventDefault();
return false;
}
});
$('.get-current-location').on('click', (e) => {
e.preventDefault();
getCurrentPosition();
$newlocationholder.toggle();
$newLocation.val('');
});
$setnewlocation.on('click', (e) => {
e.preventDefault();
$newlocationholder.toggle();
});
$newLocation.blur(() => {
getGeoPosition();
});
$('.new-search').on('click', (e) => {
e.preventDefault();
$('.section-search-secondary').animate({
'max-height': 300,
}, 'slow');
});
/*$radius.on('change', () => {
getCategories();
});
function getCategories() {
$.getJSON(`/api/categoriesnearby/${$searchLat.val()}/${$searchLng.val()}/${$radius.val()}`)
.done((data) => {
$category.empty(); // remove old options
$category.append($('<option></option>').attr('value', 'all').text('All Categories'));
$.each(data.categories, (i, cat) => {
$category.append($('<option></option>').attr('value', cat.id).text(cat.name));
});
});
}
function hideDistancesThatDontMatter() {
$.getJSON(`/api/nearestevent/${ $searchLat.val()}/${$searchLat.val()}`)
.done((data) => {
const nearest = parseFloat(data);
$radius.find('option').each(function() {
if (this.value !== 'all' && parseFloat(this.value) < nearest) {
$(this).hide();
}
});
});
}*/
const $map = $('#Map');
if (typeof google !== 'undefined' && $map.length) {
const $directions = $('#DirectionsPanel'),
$fromAddress = $('#FromAddress'),
$getDirections = $('#GetDirections'),
$directionContainer = $('#DirectionContainer'),
directionsDisplay = new google.maps.DirectionsRenderer(),
directionsService = new google.maps.DirectionsService(),
currentPosition = {
'lat': $map.data('lat'),
'lng': $map.data('lng'),
},
map = new google.maps.Map($map[0], {
'zoom': 15,
'mapTypeControl': true,
'mapTypeId': google.maps.MapTypeId.ROADMAP,
});
directionsDisplay.setMap(map);
directionsDisplay.setPanel($directions[0]);
map.setCenter(currentPosition);
new google.maps.Marker({
map,
'position': currentPosition,
});
$getDirections.click((e) => {
e.preventDefault();
const fromLocation = $fromAddress.val();
if (fromLocation.length) {
directionsService.route({
origin: fromLocation,
destination: currentPosition,
travelMode: google.maps.DirectionsTravelMode.DRIVING,
}, (response, status) => {
if (status === google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
$directionContainer.slideDown();
}
});
}
});

15
src/js/_consts.js Executable file
View File

@ -0,0 +1,15 @@
/**
* Add your global events here
*/
module.exports = {
ENVS: [
'xs',
'sm',
'md',
'lg',
'xl',
'xxl',
'xxxl',
],
};

View File

@ -5,6 +5,7 @@ import Spinner from './_components/_ui.spinner';
import FormDatetime from './_components/_ui.form.datetime';
import FormStepped from './_components/_ui.form.stepped';
//import Multislider from './_components/_ui.multislider';
const LayoutUI = (($) => {
// Constants

View File

@ -2,54 +2,20 @@
import $ from 'jquery';
import 'hammerjs/hammer';
import 'jquery-hammerjs/jquery.hammer';
//import Confirmation from 'bootstrap-confirmation2/dist/bootstrap-confirmation';
//import Table from 'bootstrap-table/dist/bootstrap-table';
// Routie
import 'pouchdb/dist/pouchdb';
import './_components/routes/index';
import Events from './_events';
import Consts from './_consts';
import Spinner from './_components/_ui.spinner';
// AJAX functionality
import AjaxUI from './_components/_ui.ajax';
import './_components/_ui.carousel';
import './_components/_ui.menu';
// Bootstrap hover menu
import './_components/_ui.hover';
import FormBasics from './_components/_ui.form.basics';
// Toggle bootstrap form fields
//import FormToggleUI from './_components/_ui.form.fields.toggle';
// Bootstrap Date & Time fields
//import FormDatetime from './_components/_ui.form.datetime';
// Stepped forms functionality
//import FormStepped from './_components/_ui.form.stepped';
// Forms validation functionality
//import FormValidate from './_components/_ui.form.validate';
// Store forms data into localStorage
//import FormStorage from './_components/_ui.form.storage';
// client-side images cropping
//import FormCroppie from './_components/_ui.form.croppie';
// Google NoCaptcha fields
//import NoCaptcha from './_components/_ui.nocaptcha';
import SmoothScroll from 'smooth-scroll';
const smoothScroll = SmoothScroll();
const MainUI = (($) => {
// Constants
const W = window;
@ -84,7 +50,7 @@ const MainUI = (($) => {
// update online/offline state
const updateOnlineStatus = function() {
const updateOnlineStatus = () => {
if (!navigator.onLine) {
console.log('Tab: offline');
$Body.addClass('is-offline');
@ -111,7 +77,7 @@ const MainUI = (($) => {
}
// scrollTo
const ScrollTo = function(trigger, selector) {
const ScrollTo = (trigger, selector) => {
smoothScroll.animateScroll(
D.querySelector(selector),
trigger, {
@ -119,8 +85,8 @@ const MainUI = (($) => {
offset: -20,
//easing: 'easeInOutCubic',
// Callback API
//before: function (anchor, toggle) {}, // Callback to run before scroll
//`after: function (anchor, toggle) {} // Callback to run after scroll
//before: (anchor, toggle) => {}, // Callback to run before scroll
//`after: (anchor, toggle) => {} // Callback to run after scroll
}
);
};
@ -168,15 +134,16 @@ const MainUI = (($) => {
$('a.offline').addClass('offline-available');
}
if (typeof AjaxUI !== 'undefined') {
this.loadImages();
}
// detect bootstrap screen size
this.detectBootstrapScreenSize();
// mark external links
$('a.external,a[rel="external"]').attr('target', '_blank');
// show encoded emails
/*$(D).find('.obm').each(function () {
/*$(D).find('.obm').each(() => {
if ($(this).attr('data-val') !== undefined) {
const email = $(this).attr('data-val').split('')
.reverse()
@ -199,17 +166,12 @@ const MainUI = (($) => {
//
// scroll links
$(D).on('click', '.js-scrollTo', (e) => {
$('.js-scrollTo').on('click', (e) => {
e.preventDefault();
const el = e.currentTarget;
const $el = $(e.currentTarget);
const target = $el.data('target') || $el.attr('href');
if ($(target).length) {
ScrollTo(el, target);
} else {
console.log(`[ScrollTo] Undefined target: ${ target}`);
}
ScrollTo(el, $el.attr('data-target'));
});
// load external fonts
@ -263,10 +225,29 @@ const MainUI = (($) => {
W.print();
}
// load youtube API
if ($('iframe[src^="https://www.youtube.com/embed/"]').length) {
$Body.append('<script src="https://www.youtube.com/iframe_api"></script>');
$Body.data(NAME, this);
}
static detectBootstrapScreenSize() {
const $el = $('<div class="env-test"></div>');
const envs = [...Consts.ENVS];
$Body.append($el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
$el.addClass(`d-${env}-none`);
if ($el.is(':hidden')) {
curEnv = env;
break;
}
}
$el.remove();
$Body.removeClass(envs);
$Body.addClass(curEnv);
return curEnv;
}
static updateLocation(url) {
@ -370,7 +351,11 @@ const MainUI = (($) => {
MainUI.init();
});
$(W).on('beforeunload', () => {
$(W).on('resize', () => {
MainUI.detectBootstrapScreenSize();
});
$(W).on('beforeunload unload', () => {
Spinner.show(() => {
$Body.removeClass('loaded');
});

View File

@ -7,7 +7,21 @@ import 'bootstrap/js/dist/alert';
import 'bootstrap/js/dist/button';
import 'bootstrap/js/dist/carousel';
import 'bootstrap/js/dist/collapse';
import 'bootstrap/js/dist/dropdown';
import 'hammerjs/hammer';
import 'jquery-hammerjs/jquery.hammer';
// Routie
//import 'pouchdb/dist/pouchdb';
//import './_components/routes/index';
// conflicts with _components/_ui.hover.js (shows dropdown on hover)
//import 'bootstrap/js/dist/dropdown';
import './_components/_ui.hover';
import './_components/_ui.carousel';
import './_components/_ui.menu';
import 'bootstrap/js/dist/modal';
import 'bootstrap/js/dist/tooltip';
import 'bootstrap/js/dist/popover';
@ -22,11 +36,37 @@ import 'bootstrap/js/dist/tab';
// Uncomment it to enable meta-lightbox zooming on hover
//import 'jquery-zoom/jquery.zoom';
// Toggle bootstrap form fields
//import FormToggleUI from './_components/_ui.form.fields.toggle';
// Bootstrap Date & Time fields
//import FormDatetime from './_components/_ui.form.datetime';
// Stepped forms functionality
//import FormStepped from './_components/_ui.form.stepped';
// Forms validation functionality
//import FormValidate from './_components/_ui.form.validate';
// Store forms data into localStorage
//import FormStorage from './_components/_ui.form.storage';
// client-side images cropping
//import FormCroppie from './_components/_ui.form.croppie';
// Google NoCaptcha fields
//import NoCaptcha from './_components/_ui.nocaptcha';
// youtube video preview image
import './_components/_ui.video.preview';
// Meta Lightbox
import 'meta-lightbox/meta-lightbox';
//import Confirmation from 'bootstrap-confirmation2/dist/bootstrap-confirmation';
//import Table from 'bootstrap-table/dist/bootstrap-table';
import './_main';
import './_layout';

View File

@ -307,3 +307,13 @@ button, input, optgroup, select, textarea,
transform: scale(1);
}
}
.row-xs {
margin-right: -($grid-gutter-xs-width / 2);
margin-left: -($grid-gutter-xs-width / 2);
[class^="col-"] {
padding-left: $grid-gutter-xs-width / 2;
padding-right: $grid-gutter-xs-width / 2;
}
}

View File

@ -0,0 +1,10 @@
$grid-gutter-xs-width: $grid-gutter-width / 2 !default;
$grid-gutter-height: 8rem !default;
$blue: #016cb1 !default;
$dark: #000 !default;
$navbar-dark-hover-background: $dark !default;
$navbar-dark-active-background: $dark !default;
$navbar-dark-show-color: $blue !default;
$navbar-dark-show-background: $dark !default;

View File

@ -7,6 +7,8 @@ $container-max-widths: (sm: 540px, md: 720px, lg: 960px, xl: 1140px, xxl: 1330px
$font-family-base: "Lato", sans-serif;
$grid-gutter-width: 30px;
$grid-gutter-xs-width: $grid-gutter-width / 2;
$grid-gutter-height: 8rem;
$gray-900: #212529;
@ -47,3 +49,4 @@ $enable-flex: true;
@import "~bootstrap/scss/functions";
@import "~bootstrap/scss/variables";
@import "~bootstrap/scss/mixins";
@import "_components/_variables";

View File

@ -1,7 +1,7 @@
//@import "~bootstrap-select/sass/bootstrap-select.scss";
@import "~bootstrap-datepicker/dist/css/bootstrap-datepicker.css";
@import "~bootstrap-timepicker/css/bootstrap-timepicker.css";
//@import "~bootstrap-datepicker/dist/css/bootstrap-datepicker.css";
//@import "~bootstrap-timepicker/css/bootstrap-timepicker.css";
// Your custom variables
@import "_variables";

View File

@ -2,23 +2,47 @@
@import "~bootstrap/scss/tables";
.image {
img,
.captionImage,
.image,
.ss-htmleditorfield-file {
display: block;
margin: 1rem;
max-width: 100%;
&.center {
margin-left: auto;
margin-right: auto;
text-align: center;
}
&.left {
float: left;
clear: left;
margin: 0 1rem 1rem 0;
}
&.center {
display: block;
margin: 1rem auto;
}
&.right {
float: right;
clear: right;
margin: 1rem 0 0 1rem;
}
&.leftAlone {
float: left;
clear: left;
margin: 0 1rem 1rem 0;
}
&.rightAlone {
float: right;
clear: right;
margin: 1rem 0 0 1rem;
}
iframe {
width: 100% !important;
}
}
.text-left {
@ -57,3 +81,21 @@ table {
}
}
}
ul {
list-style: none;
li {
list-style: none;
&:before {
content: "\2022";
display: inline-block;
margin-right: .5em;
}
}
}
iframe {
max-width: 100%;
}

View File

@ -71,8 +71,7 @@ module.exports = {
use: [{
loader: 'css-loader',
options: {
sourceMap: false,
minimize: true
sourceMap: false
}
}, {
loader: 'postcss-loader',