diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..224a3e0 Binary files /dev/null and b/.DS_Store differ diff --git a/.gitignore b/.gitignore index d49bb4e..3c3629e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1 @@ node_modules - -docs/.vuepress/dist diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..6e04a41 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env sh + +# abort on errors +set -e + +# build +npm run docs:build + +# navigate into the build output directory +cd docs/.vuepress/dist + +# if you are deploying to a custom domain +# echo 'www.example.com' > CNAME + +git init +git add -A +git commit -m 'deploy' + +# if you are deploying to https://.github.io +# git push -f git@github.com:/.github.io.git master + +# if you are deploying to https://.github.io/ +git push -f https://github.com/ExtensionEngine/tailor-docs.git master:gh-pages + +cd - diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js new file mode 100644 index 0000000..8a07e69 --- /dev/null +++ b/docs/.vuepress/config.js @@ -0,0 +1,35 @@ +module.exports = { + title: 'Custom Learning Experiences', + description: 'Strategy, Implementation, Support', + head: [ + ['link', { rel: 'icon', href: '/default-logo-full.svg' }] + ], + themeConfig: { + nav: [ + { text: 'Tailor', link: 'https://github.com/ExtensionEngine/tailor' }, + { text: 'Boutique', link: 'https://github.com/ExtensionEngine/boutique' }, + { text: 'Tape', link: 'https://github.com/ExtensionEngine/tape' } + ], + sidebar: [ + '/', + '/ecosystem/', + '/guide-tailor/', + '/guide-tailor/tailor-configuration/', + '/guide-boutique/', + '/guide-tape/', + '/content-elements/', + '/content/', + '/content/contribute/', + '/contribute/', + '/issues/' + ] + }, + configureWebpack: { + resolve: { + alias: { + '@img': 'images/' + } + } + }, + base: '/tailor-docs/' +} diff --git a/docs/.vuepress/dist/404.html b/docs/.vuepress/dist/404.html new file mode 100644 index 0000000..6ce451c --- /dev/null +++ b/docs/.vuepress/dist/404.html @@ -0,0 +1,17 @@ + + + + + + Custom Learning Experiences + + + + + + + +

404

That's a Four-Oh-Four.
Take me home.
+ + + diff --git a/docs/.vuepress/dist/EE_Logo_C-sized.png b/docs/.vuepress/dist/EE_Logo_C-sized.png new file mode 100644 index 0000000..9b0f226 Binary files /dev/null and b/docs/.vuepress/dist/EE_Logo_C-sized.png differ diff --git a/docs/.vuepress/dist/architecture.png b/docs/.vuepress/dist/architecture.png new file mode 100644 index 0000000..fb1aeb7 Binary files /dev/null and b/docs/.vuepress/dist/architecture.png differ diff --git a/docs/.vuepress/dist/assets/css/0.styles.196f2d6a.css b/docs/.vuepress/dist/assets/css/0.styles.196f2d6a.css new file mode 100644 index 0000000..c7249b8 --- /dev/null +++ b/docs/.vuepress/dist/assets/css/0.styles.196f2d6a.css @@ -0,0 +1 @@ +.home{padding:3.6rem 2rem 0;max-width:960px;margin:0 auto}.home .hero{text-align:center}.home .hero img{max-height:280px;display:block;margin:3rem auto 1.5rem}.home .hero h1{font-size:3rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.8rem auto}.home .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:#6a8bad}.home .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#3eaf7c;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #389d70}.home .hero .action-button:hover{background-color:#4abf8a}.home .features{border-top:1px solid #eaecef;padding:1.2rem 0;margin-top:2.5rem;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home .feature{flex-grow:1;flex-basis:30%;max-width:30%}.home .feature h2{font-size:1.4rem;font-weight:500;border-bottom:none;padding-bottom:0;color:#3a5169}.home .feature p{color:#4e6e8e}.home .footer{padding:2.5rem;border-top:1px solid #eaecef;text-align:center;color:#4e6e8e}@media (max-width:719px){.home .features{flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width:419px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}}.badge[data-v-099ab69c]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff;margin-right:5px;background-color:#42b983}.badge.middle[data-v-099ab69c]{vertical-align:middle}.badge.top[data-v-099ab69c]{vertical-align:top}.badge.green[data-v-099ab69c],.badge.tip[data-v-099ab69c]{background-color:#42b983}.badge.error[data-v-099ab69c]{background-color:#da5961}.badge.warn[data-v-099ab69c],.badge.warning[data-v-099ab69c],.badge.yellow[data-v-099ab69c]{background-color:#e7c000}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box input{cursor:text;width:10rem;color:#4e6e8e;display:inline-block;border:1px solid #cfd4db;border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:all .2s ease;background:#fff url(/tailor-docs/assets/img/search.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#3eaf7c}.search-box .suggestions{background:#fff;width:20rem;position:absolute;top:1.5rem;border:1px solid #cfd4db;border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:#5d82a6}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused{background-color:#f3f4f5}.search-box .suggestion.focused a{color:#3eaf7c}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (max-width:959px) and (min-width:719px){.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box input{left:1rem}.search-box .suggestions{right:0}}@media (max-width:419px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title{display:block}.dropdown-wrapper .dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #eee;padding:.45rem 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#3eaf7c}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #3eaf7c;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper .dropdown-title .arrow{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #ccc;border-bottom:0}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#fff;padding:.6rem 0;border:1px solid #ddd;border-bottom-color:#ccc;text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#3eaf7c}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:#2c3e50}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #46bd87}}.navbar{padding:.7rem 1.5rem;line-height:2.2rem;position:relative}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:2.2rem;min-width:2.2rem;margin-right:.8rem;vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#2c3e50;position:relative}.navbar .links{padding-left:1.5rem;box-sizing:border-box;background-color:#fff;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:flex}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}.navbar .links .nav-links{flex:1}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}}.page-edit,.page-nav{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-edit,.page-nav{padding:2rem}}@media (max-width:419px){.page-edit,.page-nav{padding:1.5rem}}.page{padding-bottom:2rem}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#4e6e8e;margin-right:.25rem}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#4e6e8e}.page-edit .last-updated .time{font-weight:400;color:#aaa}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #eaecef;padding-top:1rem;overflow:auto}.page-nav .next{float:right}@media (max-width:719px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.sidebar-button{display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:719px){.sidebar-button{display:block}}.sidebar-group:not(.first){margin-top:1em}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading{cursor:auto;color:inherit}.sidebar-heading{color:#999;transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:0 1.5rem;margin-top:0;margin-bottom:.5rem}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading:.open .arrow{top:-.18em}.sidebar-group-items{transition:height .1s ease-out;overflow:hidden}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #eaecef;padding:.5rem 0 .75rem 0}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar .sidebar-links{padding:1.5rem 0}@media (max-width:719px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar .sidebar-links{padding:1rem 0}}.sw-update-popup{position:fixed;right:1em;bottom:1em;padding:1em;border:1px solid #3eaf7c;border-radius:3px;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.5);text-align:center}.sw-update-popup button{margin-top:.5em;padding:.25em 2em}.sw-update-popup-enter-active,.sw-update-popup-leave-active{transition:opacity .3s,transform .3s}.sw-update-popup-enter,.sw-update-popup-leave-to{opacity:0;transform:translateY(50%) scale(.5)}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;tab-size:4;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}#nprogress{pointer-events:none}#nprogress .bar{background:#3eaf7c;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #3eaf7c,0 0 5px #3eaf7c;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#3eaf7c;border-left-color:#3eaf7c;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.content code{color:#476582;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.05);border-radius:3px}.content pre,.content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}.content pre[class*=language-] code,.content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#282c34;border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:3.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number,div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:3.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#282c34}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}.custom-block .custom-block-title{font-weight:600;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{background-color:#f3f5f7;border-color:#42b983}.custom-block.warning{background-color:rgba(255,229,100,.3);border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:#2c3e50}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:#2c3e50}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid #ccc}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid #ccc}.content:not(.custom){max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.content:not(.custom){padding:2rem}}@media (max-width:419px){.content:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}body,html{padding:0;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;color:#2c3e50}.page{padding-left:20rem}.navbar{z-index:20;right:0;height:3.6rem;background-color:#fff;box-sizing:border-box;border-bottom:1px solid #eaecef}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none}.sidebar{font-size:15px;background-color:#fff;width:20rem;position:fixed;z-index:10;margin:0;top:3.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid #eaecef;overflow-y:auto}.content:not(.custom)>:first-child{margin-top:3.6rem}.content:not(.custom) a:hover{text-decoration:underline}.content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.content:not(.custom) img{max-width:100%}.content.custom{padding:0;margin:0}.content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#3eaf7c}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:1.2rem;color:#999;border-left:.25rem solid #dfe2e5;margin-left:0;padding-left:1rem}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.content:not(.custom)>h1,.content:not(.custom)>h2,.content:not(.custom)>h3,.content:not(.custom)>h4,.content:not(.custom)>h5,.content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.content:not(.custom)>h1:first-child,.content:not(.custom)>h2:first-child,.content:not(.custom)>h3:first-child,.content:not(.custom)>h4:first-child,.content:not(.custom)>h5:first-child,.content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.content:not(.custom)>h1:first-child+.custom-block,.content:not(.custom)>h1:first-child+p,.content:not(.custom)>h1:first-child+pre,.content:not(.custom)>h2:first-child+.custom-block,.content:not(.custom)>h2:first-child+p,.content:not(.custom)>h2:first-child+pre,.content:not(.custom)>h3:first-child+.custom-block,.content:not(.custom)>h3:first-child+p,.content:not(.custom)>h3:first-child+pre,.content:not(.custom)>h4:first-child+.custom-block,.content:not(.custom)>h4:first-child+p,.content:not(.custom)>h4:first-child+pre,.content:not(.custom)>h5:first-child+.custom-block,.content:not(.custom)>h5:first-child+p,.content:not(.custom)>h5:first-child+pre,.content:not(.custom)>h6:first-child+.custom-block,.content:not(.custom)>h6:first-child+p,.content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:hover .header-anchor,h2:hover .header-anchor,h3:hover .header-anchor,h4:hover .header-anchor,h5:hover .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid #eaecef}h3{font-size:1.35rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid #eaecef}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}td,th{border:1px solid #dfe2e5;padding:.6em 1em}.custom-layout{padding-top:3.6rem}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}.theme-container.no-navbar .custom-layout{padding-top:0}.theme-container.no-sidebar .sidebar-button{display:none}.theme-container.no-sidebar .navbar{padding-left:1.5rem}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px;width:16.4rem}.page{padding-left:16.4rem}}@media (max-width:719px){.sidebar{top:0;padding-top:3.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}.content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.icon.outbound{color:#aaa;display:inline-block}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-weight:400;display:inline-block;color:#2c3e50;border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link:hover{color:#3eaf7c}a.sidebar-link.active{font-weight:600;color:#3eaf7c;border-left-color:#3eaf7c}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500} \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/img/search.83621669.svg b/docs/.vuepress/dist/assets/img/search.83621669.svg new file mode 100644 index 0000000..03d8391 --- /dev/null +++ b/docs/.vuepress/dist/assets/img/search.83621669.svg @@ -0,0 +1 @@ + diff --git a/docs/.vuepress/dist/assets/js/10.91a0ead7.js b/docs/.vuepress/dist/assets/js/10.91a0ead7.js new file mode 100644 index 0000000..2c0fd0c --- /dev/null +++ b/docs/.vuepress/dist/assets/js/10.91a0ead7.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{169:function(t,e,a){"use strict";a.r(e);var i=a(0),n=Object(i.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"content"},[a("h1",{attrs:{id:"tailor-configuration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tailor-configuration","aria-hidden":"true"}},[t._v("#")]),t._v(" Tailor Configuration")]),t._v(" "),a("p",[t._v("What do we have to configure?")]),t._v(" "),a("h2",{attrs:{id:"details"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#details","aria-hidden":"true"}},[t._v("#")]),t._v(" Details")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"center"}},[t._v("Configuration key")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[t._v("Description")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[t._v("Example value")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"center"}},[a("code",[t._v("Key")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Short description")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[a("code",[t._v("Example value")])])])])]),t._v(" "),a("h2",{attrs:{id:"configuration-example"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configuration-example","aria-hidden":"true"}},[t._v("#")]),t._v(" Configuration example")]),t._v(" "),a("div",{staticClass:"language-json extra-class"},[a("pre",{pre:!0,attrs:{class:"language-json"}},[a("code",[t._v("TODO"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Configuration example\n")])])])])}],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/11.98b26c6a.js b/docs/.vuepress/dist/assets/js/11.98b26c6a.js new file mode 100644 index 0000000..3fddfc3 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/11.98b26c6a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{178:function(t,a,s){"use strict";s.r(a);var e=s(0),n=Object(e.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("div",{staticClass:"content"},[s("h1",{attrs:{id:"getting-started-with-tape"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getting-started-with-tape","aria-hidden":"true"}},[t._v("#")]),t._v(" Getting Started with Tape")]),t._v(" "),s("div",{staticClass:"warning custom-block"},[s("p",{staticClass:"custom-block-title"},[t._v("COMPATIBILITY NOTE")]),t._v(" "),s("p",[t._v("Tape requirements (Node version, etc.)")])]),t._v(" "),s("h2",{attrs:{id:"local-installation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#local-installation","aria-hidden":"true"}},[t._v("#")]),t._v(" Local installation")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("TODO")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Installation steps\n")])])]),s("h2",{attrs:{id:"tailor-integration"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#tailor-integration","aria-hidden":"true"}},[t._v("#")]),t._v(" Tailor integration")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("TODO")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Integration steps\n")])])]),s("h2",{attrs:{id:"boutique-integration"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#boutique-integration","aria-hidden":"true"}},[t._v("#")]),t._v(" Boutique integration")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("TODO")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Integration steps\n")])])])])}],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/12.fb09b48b.js b/docs/.vuepress/dist/assets/js/12.fb09b48b.js new file mode 100644 index 0000000..113cbda --- /dev/null +++ b/docs/.vuepress/dist/assets/js/12.fb09b48b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{175:function(t,s,e){"use strict";e.r(s);var i=e(0),r=Object(i.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"content"},[e("h1",{attrs:{id:"reporting-issues"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#reporting-issues","aria-hidden":"true"}},[t._v("#")]),t._v(" Reporting issues")]),t._v(" "),e("p",[t._v("Where to report issues in Tailor ecosystem?")]),t._v(" "),e("div",{staticClass:"tip custom-block"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("How to report issues?")])])])}],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/13.5a80e777.js b/docs/.vuepress/dist/assets/js/13.5a80e777.js new file mode 100644 index 0000000..bdee4da --- /dev/null +++ b/docs/.vuepress/dist/assets/js/13.5a80e777.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{172:function(t,e,n){"use strict";n.r(e);var i=n(0),a=Object(i.a)({},function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"content"},[t._m(0),t._v(" "),n("table",[t._m(1),t._v(" "),n("tbody",[n("tr",[n("td",{staticStyle:{"text-align":"center"}},[t._v("Name of the teaching element")]),t._v(" "),n("td",{staticStyle:{"text-align":"center"}},[t._v("Short description")]),t._v(" "),n("td",{staticStyle:{"text-align":"center"}},[n("a",{attrs:{href:"http://www.github.com",target:"_blank",rel:"noopener noreferrer"}},[t._v("Repository"),n("OutboundLink")],1)])])])])])},[function(){var t=this.$createElement,e=this._self._c||t;return e("h1",{attrs:{id:"list-of-teaching-elements"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#list-of-teaching-elements","aria-hidden":"true"}},[this._v("#")]),this._v(" List of teaching elements")])},function(){var t=this.$createElement,e=this._self._c||t;return e("thead",[e("tr",[e("th",{staticStyle:{"text-align":"center"}},[this._v("Name")]),this._v(" "),e("th",{staticStyle:{"text-align":"center"}},[this._v("Description")]),this._v(" "),e("th",{staticStyle:{"text-align":"center"}},[this._v("Repository")])])])}],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/14.4e79d2de.js b/docs/.vuepress/dist/assets/js/14.4e79d2de.js new file mode 100644 index 0000000..ca1f98d --- /dev/null +++ b/docs/.vuepress/dist/assets/js/14.4e79d2de.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{167:function(n,w,o){}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/2.76904e22.js b/docs/.vuepress/dist/assets/js/2.76904e22.js new file mode 100644 index 0000000..6b3a090 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/2.76904e22.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{165:function(t,n,e){},166:function(t,n,e){"use strict";var a=e(165);e.n(a).a},173:function(t,n,e){"use strict";e.r(n);var a={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,n){var e=n.props,a=n.slots;return t("span",{class:["badge",e.type,e.vertical]},e.text||a().default)}},r=(e(166),e(0)),i=Object(r.a)(a,void 0,void 0,!1,null,"099ab69c",null);n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/3.ee2e57ba.js b/docs/.vuepress/dist/assets/js/3.ee2e57ba.js new file mode 100644 index 0000000..9ae7ba3 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/3.ee2e57ba.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{168:function(t,e,s){"use strict";s.r(e);var n=s(0),i=Object(n.a)({},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"content"},[this._m(0),this._v(" "),this._m(1),this._v(" "),e("div",{attrs:{align:"center"}},[e("img",{attrs:{src:this.$withBase("/EE_Logo_C-sized.png"),alt:"Extension Engine logo"}}),this._v(" "),this._m(2)])])},[function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"features",attrs:{align:"center"}},[s("div",{staticClass:"feature"},[s("h2",[t._v("Flexible structure")]),t._v(" "),s("p",[t._v("\n Tailor doesn't enforce content structure, thus allowing content managers\n to create content structure that meets its purpose.\n ")])]),t._v(" "),s("div",{staticClass:"feature"},[s("h2",[t._v("Modularity")]),t._v(" "),s("p",[t._v("\n Content elements are modules which can be included on a per-need basis.\n ")])]),t._v(" "),s("div",{staticClass:"feature"},[s("h2",[t._v("Interoperability")]),t._v(" "),s("p",[t._v("\n Tailor content is published in JSON format to be used by other\n applications in the ecosystem.\n ")])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("h2",{attrs:{id:"who-s-using-tailor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#who-s-using-tailor","aria-hidden":"true"}},[this._v("#")]),this._v(" Who's using Tailor?")])},function(){var t=this.$createElement,e=this._self._c||t;return e("p",[e("a",{attrs:{href:"mailto:tailor@extensionengine.com"}},[this._v("Contact us")])])}],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/4.13ee9dac.js b/docs/.vuepress/dist/assets/js/4.13ee9dac.js new file mode 100644 index 0000000..5b43d39 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/4.13ee9dac.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{177:function(t,e,a){"use strict";a.r(e);var r=a(0),n=Object(r.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"content"},[a("h1",{attrs:{id:"content-authoring"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#content-authoring","aria-hidden":"true"}},[t._v("#")]),t._v(" Content authoring")]),t._v(" "),a("h2",{attrs:{id:"course-creation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#course-creation","aria-hidden":"true"}},[t._v("#")]),t._v(" Course creation")]),t._v(" "),a("p",[t._v("Course creation steps")]),t._v(" "),a("ol",[a("li",[a("p",[t._v("Step 1\n")]),a("div",{attrs:{align:"center"}},[a("img",{attrs:{src:"/",alt:"Step 1"}})]),a("p")]),t._v(" "),a("li",[a("p",[t._v("Step 2\n")]),a("div",{attrs:{align:"center"}},[a("img",{attrs:{src:"/",alt:"Step 2"}})]),a("p")]),t._v(" "),a("li",[a("p",[t._v("Step 3\n")]),a("div",{attrs:{align:"center"}},[a("img",{attrs:{src:"/",alt:"Step 3"}})]),a("p")])]),t._v(" "),a("h2",{attrs:{id:"content-creation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#content-creation","aria-hidden":"true"}},[t._v("#")]),t._v(" Content creation")]),t._v(" "),a("p",[t._v("Content creation steps")]),t._v(" "),a("ol",[a("li",[a("p",[t._v("Step 1\n")]),a("div",{attrs:{align:"center"}},[a("img",{attrs:{src:"/",alt:"Step 1"}})]),a("p")]),t._v(" "),a("li",[a("p",[t._v("Step 2\n")]),a("div",{attrs:{align:"center"}},[a("img",{attrs:{src:"/",alt:"Step 2"}})]),a("p")]),t._v(" "),a("li",[a("p",[t._v("Step 3\n")]),a("div",{attrs:{align:"center"}},[a("img",{attrs:{src:"/",alt:"Step 3"}})]),a("p")])])])}],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/5.8bbe498f.js b/docs/.vuepress/dist/assets/js/5.8bbe498f.js new file mode 100644 index 0000000..a718a8b --- /dev/null +++ b/docs/.vuepress/dist/assets/js/5.8bbe498f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{176:function(t,e,a){"use strict";a.r(e);var n=a(0),s=Object(n.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"content"},[a("h1",{attrs:{id:"teaching-element-sdk"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#teaching-element-sdk","aria-hidden":"true"}},[t._v("#")]),t._v(" Teaching element SDK")]),t._v(" "),a("p",[t._v("Why would you want to create a new teaching element? (What's the motivation?)")]),t._v(" "),a("h2",{attrs:{id:"how-to-create-a-new-teaching-element"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-to-create-a-new-teaching-element","aria-hidden":"true"}},[t._v("#")]),t._v(" How to create a new teaching element")]),t._v(" "),a("p",[t._v("Guidelines for creating a new teaching element")]),t._v(" "),a("p",[t._v("Steps to follow")]),t._v(" "),a("ol",[a("li",[a("p",[t._v("Step 1\n")]),a("div",{attrs:{align:"center"}},[a("img",{attrs:{src:"/",alt:"Step 1"}})]),a("p")]),t._v(" "),a("li",[a("p",[t._v("Step 2\n")]),a("div",{attrs:{align:"center"}},[a("img",{attrs:{src:"/",alt:"Step 2"}})]),a("p")]),t._v(" "),a("li",[a("p",[t._v("Step 3\n")]),a("div",{attrs:{align:"center"}},[a("img",{attrs:{src:"/",alt:"Step 3"}})]),a("p")])]),t._v(" "),a("h2",{attrs:{id:"structure"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#structure","aria-hidden":"true"}},[t._v("#")]),t._v(" Structure")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("TODO")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Code snippet\n")])])])])}],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/6.98e0c5cb.js b/docs/.vuepress/dist/assets/js/6.98e0c5cb.js new file mode 100644 index 0000000..53b0797 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/6.98e0c5cb.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{174:function(t,e,s){"use strict";s.r(e);var i=s(0),c=Object(i.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"content"},[s("h1",{attrs:{id:"how-to-contribute"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#how-to-contribute","aria-hidden":"true"}},[t._v("#")]),t._v(" How to contribute")]),t._v(" "),s("p",[t._v("How open source community members can contribute?")]),t._v(" "),s("div",{staticClass:"tip custom-block"},[s("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),s("p",[t._v("This is a tip")])])])}],!1,null,null,null);e.default=c.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/7.e25cb0b3.js b/docs/.vuepress/dist/assets/js/7.e25cb0b3.js new file mode 100644 index 0000000..6a6a963 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/7.e25cb0b3.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{179:function(t,s,a){"use strict";a.r(s);var e=a(0),n=Object(e.a)({},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"content"},[t._m(0),t._v(" "),a("div",{attrs:{align:"center"}},[a("img",{attrs:{src:t.$withBase("/architecture.png"),alt:"Architecture diagram"}})]),t._v(" "),t._m(1),t._v(" "),a("p",[t._v("\n Tailor is a Content Management System (CMS)\n used for creating a flexible content structure.\n")]),t._v(" "),a("p",[t._v("\n It is continually being improved to provide the most customizable solution,\n while not forcing users to conform to any content-related restrictions.\n")]),t._v(" "),a("div",{attrs:{align:"center"}},[a("img",{attrs:{src:t.$withBase("/tailor.png"),alt:"Internal Tailor architecture"}})]),t._v(" "),a("p",[a("router-link",{attrs:{to:"/guide-tailor/"}},[t._v("Getting started with Tailor →")])],1),t._v(" "),t._m(2),t._v(" "),a("p",[t._v("Repository is a container that gives structure to the content.")]),t._v(" "),a("p",[t._v("To control content structure, one must provide a repository schema.")]),t._v(" "),a("p",[t._v("Here's an example of a repository schema:")]),t._v(" "),t._m(3),t._m(4),t._v(" "),a("p",[t._v("\n Boutique is a headless Content Delivery Platform (CDP)\n that consumes Tailor content and prepares it for the end user consumption.\n")]),t._v(" "),a("p",[t._v("\n The goal of building Boutique was to provide a custom LMS to meet our clients'\n needs, but since Tailor can provide content that can be consumed for any\n purpose, it grew to become a CDP that meets the customization needs of our\n clients like custom way content elements look and behave.\n")]),t._v(" "),a("p",[a("router-link",{attrs:{to:"/guide-boutique/"}},[t._v("Getting started with Boutique →")])],1),t._v(" "),t._m(5),t._v(" "),a("p",[t._v("\n Tape is data analytics system that collect user's content consumption data\n from Boutique and generates new data through calculations and transformations\n of the original data set.\n")]),t._v(" "),a("p",[t._v("\n It was created to assure an optimal way of calculating, transforming and\n storing user's content consumption data for further consumption, data analysis\n and visualization.\n")]),t._v(" "),a("p",[a("router-link",{attrs:{to:"/guide-tape/"}},[t._v("Getting started with Tape →")])],1),t._v(" "),t._m(6),t._v(" "),a("p",[t._v("What is a teaching element?")]),t._v(" "),a("p",[t._v("Why are they created? (goal, purpose)")]),t._v(" "),t._m(7),t._v(" "),a("p",[a("router-link",{attrs:{to:"/teaching-elements/"}},[t._v("List of Teaching Elements →")])],1)])},[function(){var t=this.$createElement,s=this._self._c||t;return s("h1",{attrs:{id:"ecosystem"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#ecosystem","aria-hidden":"true"}},[this._v("#")]),this._v(" Ecosystem")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"tailor"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#tailor","aria-hidden":"true"}},[this._v("#")]),this._v(" Tailor")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h3",{attrs:{id:"repository"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#repository","aria-hidden":"true"}},[this._v("#")]),this._v(" Repository")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-json extra-class"},[a("pre",{pre:!0,attrs:{class:"language-json"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"COURSE"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Example Course"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"structure"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"GOAL"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"label"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Goal"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"color"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"#ff6590"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"level"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"meta"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"key"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"description"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"INPUT"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"label"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Description"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"placeholder"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Click to add..."')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"validate"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"rules"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"required"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"max"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("23")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"contentContainers"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"PAGE"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"relationships"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"prerequisites"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"label"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Prerequisites"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"multiple"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"searchable"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"allowEmpty"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"placeholder"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Click to select"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"allowCircularLinks"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"allowInsideLineage"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"replacements"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"label"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"replacements"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"contentContainers"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"PAGE"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"label"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Page"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"multiple"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"boutique"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#boutique","aria-hidden":"true"}},[this._v("#")]),this._v(" Boutique")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"tape"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#tape","aria-hidden":"true"}},[this._v("#")]),this._v(" Tape")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"teaching-elements"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#teaching-elements","aria-hidden":"true"}},[this._v("#")]),this._v(" Teaching elements")])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{attrs:{align:"center"}},[s("img",{attrs:{src:"/",alt:"Teaching element architecture"}})])}],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/8.b0c5f5d1.js b/docs/.vuepress/dist/assets/js/8.b0c5f5d1.js new file mode 100644 index 0000000..330f041 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/8.b0c5f5d1.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{171:function(t,a,s){"use strict";s.r(a);var e=s(0),n=Object(e.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("div",{staticClass:"content"},[s("h1",{attrs:{id:"getting-started-with-boutique"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getting-started-with-boutique","aria-hidden":"true"}},[t._v("#")]),t._v(" Getting Started with Boutique")]),t._v(" "),s("div",{staticClass:"warning custom-block"},[s("p",{staticClass:"custom-block-title"},[t._v("COMPATIBILITY NOTE")]),t._v(" "),s("p",[t._v("Boutique requirements (Node version, etc.)")])]),t._v(" "),s("h2",{attrs:{id:"local-installation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#local-installation","aria-hidden":"true"}},[t._v("#")]),t._v(" Local installation")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("TODO")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Installation steps\n")])])]),s("h2",{attrs:{id:"tailor-integration"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#tailor-integration","aria-hidden":"true"}},[t._v("#")]),t._v(" Tailor integration")]),t._v(" "),s("div",{staticClass:"language-js extra-class"},[s("pre",{pre:!0,attrs:{class:"language-js"}},[s("code",[s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("TODO")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Integration steps\n")])])])])}],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/9.9a97dbda.js b/docs/.vuepress/dist/assets/js/9.9a97dbda.js new file mode 100644 index 0000000..a9430dc --- /dev/null +++ b/docs/.vuepress/dist/assets/js/9.9a97dbda.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{170:function(t,a,e){"use strict";e.r(a);var s=e(0),r=Object(s.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("div",{staticClass:"content"},[e("h1",{attrs:{id:"getting-started-with-tailor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-started-with-tailor","aria-hidden":"true"}},[t._v("#")]),t._v(" Getting Started with Tailor")]),t._v(" "),e("div",{staticClass:"warning custom-block"},[e("p",{staticClass:"custom-block-title"},[t._v("COMPATIBILITY NOTE")]),t._v(" "),e("p",[t._v("Tailor requirements (Node version, etc.)")])]),t._v(" "),e("h2",{attrs:{id:"local-installation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#local-installation","aria-hidden":"true"}},[t._v("#")]),t._v(" Local installation")]),t._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("TODO: Installation steps\n")])])]),e("h2",{attrs:{id:"server-deployment"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#server-deployment","aria-hidden":"true"}},[t._v("#")]),t._v(" Server deployment")]),t._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("TODO: Deployment steps\n")])])]),e("h2",{attrs:{id:"sample-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sample-configuration","aria-hidden":"true"}},[t._v("#")]),t._v(" Sample configuration")]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[t._v("TODO"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Configuration steps\n")])])])])}],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/app.dcd9e9d2.js b/docs/.vuepress/dist/assets/js/app.dcd9e9d2.js new file mode 100644 index 0000000..bb380d0 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/app.dcd9e9d2.js @@ -0,0 +1,8 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,s=e[0],c=e[1],u=e[2],f=0,p=[];f0?o(r(t),9007199254740991):0}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){for(var r=n(20),o=n(28),i=n(11),a=n(3),s=n(10),c=n(18),u=n(1),l=u("iterator"),f=u("toStringTag"),p=c.Array,d={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},h=o(d),v=0;v=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e,n){"use strict";var r=n(6);t.exports=function(t,e){return!!t&&r(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e,n){"use strict";var r=n(2),o=n(32)(3);r(r.P+r.F*!n(21)([].some,!0),"Array",{some:function(t){return o(this,t,arguments[1])}})},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(8).f,o=n(14),i=n(1)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(2);r(r.S+r.F,"Object",{assign:n(104)})},function(t,e,n){var r=n(80),o=n(63);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(61),o=n(16);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(19),o=n(28);n(83)("keys",function(){return function(t){return o(r(t))}})},function(t,e,n){"use strict";var r=n(2),o=n(32)(0),i=n(21)([].forEach,!0);r(r.P+r.F*!i,"Array",{forEach:function(t){return o(this,t,arguments[1])}})},function(t,e,n){var r=n(9),o=n(61),i=n(19),a=n(15),s=n(112);t.exports=function(t,e){var n=1==t,c=2==t,u=3==t,l=4==t,f=6==t,p=5==t||f,d=e||s;return function(e,s,h){for(var v,m,g=i(e),y=o(g),b=r(s,h,3),_=a(y.length),x=0,w=n?d(e,_):c?d(e,0):void 0;_>x;x++)if((p||x in y)&&(m=b(v=y[x],x,g),t))if(n)w[x]=m;else if(m)switch(t){case 3:return!0;case 5:return v;case 6:return x;case 2:w.push(v)}else if(l)return!1;return f?-1:u||l?l:w}}},function(t,e,n){"use strict";var r=n(2),o=n(32)(2);r(r.P+r.F*!n(21)([].filter,!0),"Array",{filter:function(t){return o(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(2),o=n(32)(1);r(r.P+r.F*!n(21)([].map,!0),"Array",{map:function(t){return o(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(5),o=n(19),i=n(15),a=n(25),s=n(68),c=n(69),u=Math.max,l=Math.min,f=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,d=/\$([$&`']|\d\d?)/g;n(71)("replace",2,function(t,e,n,h){return[function(r,o){var i=t(this),a=null==r?void 0:r[e];return void 0!==a?a.call(r,i,o):n.call(String(i),r,o)},function(t,e){var o=h(n,t,this,e);if(o.done)return o.value;var f=r(t),p=String(this),d="function"==typeof e;d||(e=String(e));var m=f.global;if(m){var g=f.unicode;f.lastIndex=0}for(var y=[];;){var b=c(f,p);if(null===b)break;if(y.push(b),!m)break;""===String(b[0])&&(f.lastIndex=s(p,i(f.lastIndex),g))}for(var _,x="",w=0,k=0;k=w&&(x+=p.slice(w,$)+T,w=$+C.length)}return x+p.slice(w)}];function v(t,e,r,i,a,s){var c=r+t.length,u=i.length,l=d;return void 0!==a&&(a=o(a),l=p),n.call(s,l,function(n,o){var s;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,r);case"'":return e.slice(c);case"<":s=a[o.slice(1,-1)];break;default:var l=+o;if(0===l)return n;if(l>u){var p=f(l/10);return 0===p?n:p<=u?void 0===i[p-1]?o.charAt(1):i[p-1]+o.charAt(1):n}s=i[l-1]}return void 0===s?"":s})}})},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){var r,o; +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */void 0===(o="function"==typeof(r=function(){var t,e,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(t,e,n){return tn?n:t}function i(t){return 100*(-1+t)}n.configure=function(t){var e,n;for(e in t)void 0!==(n=t[e])&&t.hasOwnProperty(e)&&(r[e]=n);return this},n.status=null,n.set=function(t){var e=n.isStarted();t=o(t,r.minimum,1),n.status=1===t?null:t;var c=n.render(!e),u=c.querySelector(r.barSelector),l=r.speed,f=r.easing;return c.offsetWidth,a(function(e){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,function(t,e,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(t)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(t)+"%,0)"}:{"margin-left":i(t)+"%"}).transition="all "+e+"ms "+n,o}(t,l,f)),1===t?(s(c,{transition:"none",opacity:1}),c.offsetWidth,setTimeout(function(){s(c,{transition:"all "+l+"ms linear",opacity:0}),setTimeout(function(){n.remove(),e()},l)},l)):setTimeout(e,l)}),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var t=function(){setTimeout(function(){n.status&&(n.trickle(),t())},r.trickleSpeed)};return r.trickle&&t(),this},n.done=function(t){return t||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(t){var e=n.status;return e?("number"!=typeof t&&(t=(1-e)*o(Math.random()*e,.1,.95)),e=o(e+t,0,.994),n.set(e)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},t=0,e=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===e&&n.start(),t++,e++,r.always(function(){0==--e?(t=0,n.done()):n.set((t-e)/t)}),this):this},n.render=function(t){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var e=document.createElement("div");e.id="nprogress",e.innerHTML=r.template;var o,a=e.querySelector(r.barSelector),c=t?"-100":i(n.status||0),l=document.querySelector(r.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+c+"%,0,0)"}),r.showSpinner||(o=e.querySelector(r.spinnerSelector))&&p(o),l!=document.body&&u(l,"nprogress-custom-parent"),l.appendChild(e),e},n.remove=function(){l(document.documentElement,"nprogress-busy"),l(document.querySelector(r.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&p(t)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var a=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),s=function(){var t=["Webkit","O","Moz","ms"],e={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(t,e){return e.toUpperCase()}),e[n]||(e[n]=function(e){var n=document.body.style;if(e in n)return e;for(var r,o=t.length,i=e.charAt(0).toUpperCase()+e.slice(1);o--;)if((r=t[o]+i)in n)return r;return e}(n))}function r(t,e,r){e=n(e),t.style[e]=r}return function(t,e){var n,o,i=arguments;if(2==i.length)for(n in e)void 0!==(o=e[n])&&e.hasOwnProperty(n)&&r(t,n,o);else r(t,i[1],i[2])}}();function c(t,e){var n="string"==typeof t?t:f(t);return n.indexOf(" "+e+" ")>=0}function u(t,e){var n=f(t),r=n+e;c(n,e)||(t.className=r.substring(1))}function l(t,e){var n,r=f(t);c(t,e)&&(n=r.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function f(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function p(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return n})?r.call(e,n,e,t):r)||(t.exports=o)},function(t,e){t.exports=!1},function(t,e,n){var r=n(12),o=n(1)("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){var r=n(13),o=n(3),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(52)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e,n){var r=n(4),o=n(3).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){var r=n(9),o=n(96),i=n(97),a=n(5),s=n(15),c=n(98),u={},l={};(e=t.exports=function(t,e,n,f,p){var d,h,v,m,g=p?function(){return t}:c(t),y=r(n,f,e?2:1),b=0;if("function"!=typeof g)throw TypeError(t+" is not iterable!");if(i(g)){for(d=s(t.length);d>b;b++)if((m=e?y(a(h=t[b])[0],h[1]):y(t[b]))===u||m===l)return m}else for(v=g.call(t);!(h=v.next()).done;)if((m=o(v,y,h.value,e))===u||m===l)return m}).BREAK=u,e.RETURN=l},function(t,e,n){var r=n(11);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},function(t,e,n){"use strict";var r=n(3),o=n(8),i=n(7),a=n(1)("species");t.exports=function(t){var e=r[t];i&&e&&!e[a]&&o.f(e,a,{configurable:!0,get:function(){return this}})}},function(t,e,n){var r=n(12);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(54)("keys"),o=n(24);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(24)("meta"),o=n(4),i=n(14),a=n(8).f,s=0,c=Object.isExtensible||function(){return!0},u=!n(6)(function(){return c(Object.preventExtensions({}))}),l=function(t){a(t,r,{value:{i:"O"+ ++s,w:{}}})},f=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!c(t))return"F";if(!e)return"E";l(t)}return t[r].i},getWeak:function(t,e){if(!i(t,r)){if(!c(t))return!0;if(!e)return!1;l(t)}return t[r].w},onFreeze:function(t){return u&&f.NEED&&c(t)&&!i(t,r)&&l(t),t}}},function(t,e,n){"use strict";var r=n(52),o=n(2),i=n(11),a=n(10),s=n(18),c=n(109),u=n(26),l=n(111),f=n(1)("iterator"),p=!([].keys&&"next"in[].keys()),d=function(){return this};t.exports=function(t,e,n,h,v,m,g){c(n,e,h);var y,b,_,x=function(t){if(!p&&t in $)return $[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},w=e+" Iterator",k="values"==v,C=!1,$=t.prototype,S=$[f]||$["@@iterator"]||v&&$[v],O=S||x(v),E=v?k?x("entries"):O:void 0,A="Array"==e&&$.entries||S;if(A&&(_=l(A.call(new t)))!==Object.prototype&&_.next&&(u(_,w,!0),r||"function"==typeof _[f]||a(_,f,d)),k&&S&&"values"!==S.name&&(C=!0,O=function(){return S.call(this)}),r&&!g||!p&&!C&&$[f]||a($,f,O),s[e]=O,s[w]=d,v)if(y={values:k?O:x("values"),keys:m?O:x("keys"),entries:E},g)for(b in y)b in $||i($,b,y[b]);else o(o.P+o.F*(p||C),e,y);return y}},function(t,e,n){var r=n(8).f,o=Function.prototype,i=/^\s*function ([^ (]*)/;"name"in o||n(7)&&r(o,"name",{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(t){return""}}})},function(t,e,n){"use strict";var r=n(2),o=n(81)(!1),i=[].indexOf,a=!!i&&1/[1].indexOf(1,-0)<0;r(r.P+r.F*(a||!n(21)(i)),"Array",{indexOf:function(t){return a?i.apply(this,arguments)||0:o(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(88)(!0);t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},function(t,e,n){"use strict";var r=n(53),o=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var i=n.call(t,e);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(t))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(t,e)}},function(t,e,n){"use strict";var r,o,i=n(89),a=RegExp.prototype.exec,s=String.prototype.replace,c=a,u=(r=/a/,o=/b*/g,a.call(r,"a"),a.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),l=void 0!==/()??/.exec("")[1];(u||l)&&(c=function(t){var e,n,r,o,c=this;return l&&(n=new RegExp("^"+c.source+"$(?!\\s)",i.call(c))),u&&(e=c.lastIndex),r=a.call(c,t),u&&r&&(c.lastIndex=c.global?r.index+r[0].length:e),l&&r&&r.length>1&&s.call(r[0],n,function(){for(o=1;o")}),f=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var p=s(t),d=!i(function(){var e={};return e[p]=function(){return 7},7!=""[t](e)}),h=d?!i(function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[u]=function(){return n}),n[p](""),!e}):void 0;if(!d||!h||"replace"===t&&!l||"split"===t&&!f){var v=/./[p],m=n(a,p,""[t],function(t,e,n,r,o){return e.exec===c?d&&!o?{done:!0,value:v.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),g=m[0],y=m[1];r(String.prototype,t,g),o(RegExp.prototype,p,2==e?function(t,e){return y.call(t,this,e)}:function(t){return y.call(t,this)})}}},function(t,e,n){"use strict";var r,o,i,a,s=n(52),c=n(3),u=n(9),l=n(53),f=n(2),p=n(4),d=n(23),h=n(57),v=n(58),m=n(75),g=n(76).set,y=n(100)(),b=n(78),_=n(101),x=n(102),w=n(103),k=c.TypeError,C=c.process,$=C&&C.versions,S=$&&$.v8||"",O=c.Promise,E="process"==l(C),A=function(){},T=o=b.f,j=!!function(){try{var t=O.resolve(1),e=(t.constructor={})[n(1)("species")]=function(t){t(A,A)};return(E||"function"==typeof PromiseRejectionEvent)&&t.then(A)instanceof e&&0!==S.indexOf("6.6")&&-1===x.indexOf("Chrome/66")}catch(t){}}(),L=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},P=function(t,e){if(!t._n){t._n=!0;var n=t._c;y(function(){for(var r=t._v,o=1==t._s,i=0,a=function(e){var n,i,a,s=o?e.ok:e.fail,c=e.resolve,u=e.reject,l=e.domain;try{s?(o||(2==t._h&&M(t),t._h=1),!0===s?n=r:(l&&l.enter(),n=s(r),l&&(l.exit(),a=!0)),n===e.promise?u(k("Promise-chain cycle")):(i=L(n))?i.call(n,c,u):c(n)):u(r)}catch(t){l&&!a&&l.exit(),u(t)}};n.length>i;)a(n[i++]);t._c=[],t._n=!1,e&&!t._h&&I(t)})}},I=function(t){g.call(c,function(){var e,n,r,o=t._v,i=R(t);if(i&&(e=_(function(){E?C.emit("unhandledRejection",o,t):(n=c.onunhandledrejection)?n({promise:t,reason:o}):(r=c.console)&&r.error&&r.error("Unhandled promise rejection",o)}),t._h=E||R(t)?2:1),t._a=void 0,i&&e.e)throw e.v})},R=function(t){return 1!==t._h&&0===(t._a||t._c).length},M=function(t){g.call(c,function(){var e;E?C.emit("rejectionHandled",t):(e=c.onrejectionhandled)&&e({promise:t,reason:t._v})})},N=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),P(e,!0))},D=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw k("Promise can't be resolved itself");(e=L(t))?y(function(){var r={_w:n,_d:!1};try{e.call(t,u(D,r,1),u(N,r,1))}catch(t){N.call(r,t)}}):(n._v=t,n._s=1,P(n,!1))}catch(t){N.call({_w:n,_d:!1},t)}}};j||(O=function(t){h(this,O,"Promise","_h"),d(t),r.call(this);try{t(u(D,this,1),u(N,this,1))}catch(t){N.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(59)(O.prototype,{then:function(t,e){var n=T(m(this,O));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=E?C.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&P(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=u(D,t,1),this.reject=u(N,t,1)},b.f=T=function(t){return t===O||t===a?new i(t):o(t)}),f(f.G+f.W+f.F*!j,{Promise:O}),n(26)(O,"Promise"),n(60)("Promise"),a=n(13).Promise,f(f.S+f.F*!j,"Promise",{reject:function(t){var e=T(this);return(0,e.reject)(t),e.promise}}),f(f.S+f.F*(s||!j),"Promise",{resolve:function(t){return w(s&&this===a?O:this,t)}}),f(f.S+f.F*!(j&&n(79)(function(t){O.all(t).catch(A)})),"Promise",{all:function(t){var e=this,n=T(e),r=n.resolve,o=n.reject,i=_(function(){var n=[],i=0,a=1;v(t,!1,function(t){var s=i++,c=!1;n.push(void 0),a++,e.resolve(t).then(function(t){c||(c=!0,n[s]=t,--a||r(n))},o)}),--a||r(n)});return i.e&&o(i.v),n.promise},race:function(t){var e=this,n=T(e),r=n.reject,o=_(function(){v(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},function(t,e,n){t.exports=!n(7)&&!n(6)(function(){return 7!=Object.defineProperty(n(55)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(4);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(5),o=n(23),i=n(1)("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},function(t,e,n){var r,o,i,a=n(9),s=n(99),c=n(77),u=n(55),l=n(3),f=l.process,p=l.setImmediate,d=l.clearImmediate,h=l.MessageChannel,v=l.Dispatch,m=0,g={},y=function(){var t=+this;if(g.hasOwnProperty(t)){var e=g[t];delete g[t],e()}},b=function(t){y.call(t.data)};p&&d||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return g[++m]=function(){s("function"==typeof t?t:Function(t),e)},r(m),m},d=function(t){delete g[t]},"process"==n(12)(f)?r=function(t){f.nextTick(a(y,t,1))}:v&&v.now?r=function(t){v.now(a(y,t,1))}:h?(i=(o=new h).port2,o.port1.onmessage=b,r=a(i.postMessage,i,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+"","*")},l.addEventListener("message",b,!1)):r="onreadystatechange"in u("script")?function(t){c.appendChild(u("script")).onreadystatechange=function(){c.removeChild(this),y.call(t)}}:function(t){setTimeout(a(y,t,1),0)}),t.exports={set:p,clear:d}},function(t,e,n){var r=n(3).document;t.exports=r&&r.documentElement},function(t,e,n){"use strict";var r=n(23);function o(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}t.exports.f=function(t){return new o(t)}},function(t,e,n){var r=n(1)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},t(i)}catch(t){}return n}},function(t,e,n){var r=n(14),o=n(29),i=n(81)(!1),a=n(62)("IE_PROTO");t.exports=function(t,e){var n,s=o(t),c=0,u=[];for(n in s)n!=a&&r(s,n)&&u.push(n);for(;e.length>c;)r(s,n=e[c++])&&(~i(u,n)||u.push(n));return u}},function(t,e,n){var r=n(29),o=n(15),i=n(105);t.exports=function(t){return function(e,n,a){var s,c=r(e),u=o(c.length),l=i(a,u);if(t&&n!=n){for(;u>l;)if((s=c[l++])!=s)return!0}else for(;u>l;l++)if((t||l in c)&&c[l]===n)return t||l||0;return!t&&-1}}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(2),o=n(13),i=n(6);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*i(function(){n(1)}),"Object",a)}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(5),o=n(110),i=n(63),a=n(62)("IE_PROTO"),s=function(){},c=function(){var t,e=n(55)("iframe"),r=i.length;for(e.style.display="none",n(77).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write(" + + diff --git a/docs/.vuepress/dist/content/index.html b/docs/.vuepress/dist/content/index.html new file mode 100644 index 0000000..ee97aa1 --- /dev/null +++ b/docs/.vuepress/dist/content/index.html @@ -0,0 +1,43 @@ + + + + + + Content authoring | Custom Learning Experiences + + + + + + + + + + + diff --git a/docs/.vuepress/dist/contribute/index.html b/docs/.vuepress/dist/contribute/index.html new file mode 100644 index 0000000..c3674e0 --- /dev/null +++ b/docs/.vuepress/dist/contribute/index.html @@ -0,0 +1,37 @@ + + + + + + How to contribute | Custom Learning Experiences + + + + + + + + + + + diff --git a/docs/.vuepress/dist/default-logo-full.svg b/docs/.vuepress/dist/default-logo-full.svg new file mode 100644 index 0000000..235037e --- /dev/null +++ b/docs/.vuepress/dist/default-logo-full.svg @@ -0,0 +1,16 @@ + + + + background + + + + Layer 1 + + + + + + + + \ No newline at end of file diff --git a/docs/.vuepress/dist/ecosystem/index.html b/docs/.vuepress/dist/ecosystem/index.html new file mode 100644 index 0000000..787dc26 --- /dev/null +++ b/docs/.vuepress/dist/ecosystem/index.html @@ -0,0 +1,95 @@ + + + + + + Ecosystem | Custom Learning Experiences + + + + + + + +

Ecosystem

Architecture diagram

Tailor

+ Tailor is a Content Management System (CMS) + used for creating a flexible content structure. +

+ It is continually being improved to provide the most customizable solution, + while not forcing users to conform to any content-related restrictions. +

Internal Tailor architecture

Getting started with Tailor →

Repository

Repository is a container that gives structure to the content.

To control content structure, one must provide a repository schema.

Here's an example of a repository schema:

{
+  "id": "COURSE",
+  "name": "Example Course",
+  "structure": [{
+    "type": "GOAL",
+    "label": "Goal",
+    "color": "#ff6590",
+    "level": 1,
+    "meta":[{
+      "key": "description",
+      "type": "INPUT",
+      "label": "Description",
+      "placeholder": "Click to add...",
+      "validate": { "rules": { "required": false, "max": 23 } }
+    }],
+    "contentContainers": ["PAGE"],
+    "relationships": [{
+      "type": "prerequisites",
+      "label": "Prerequisites",
+      "multiple": true,
+      "searchable": true,
+      "allowEmpty": true,
+      "placeholder": "Click to select",
+      "allowCircularLinks": false,
+      "allowInsideLineage": false
+    }, {
+      "type": "replacements",
+      "label": "replacements"
+    }]
+  }],
+  "contentContainers": [{
+    "type": "PAGE",
+    "label": "Page",
+    "multiple": false
+  }]
+}
+

Boutique

+ Boutique is a headless Content Delivery Platform (CDP) + that consumes Tailor content and prepares it for the end user consumption. +

+ The goal of building Boutique was to provide a custom LMS to meet our clients' + needs, but since Tailor can provide content that can be consumed for any + purpose, it grew to become a CDP that meets the customization needs of our + clients like custom way content elements look and behave. +

Getting started with Boutique →

Tape

+ Tape is data analytics system that collect user's content consumption data + from Boutique and generates new data through calculations and transformations + of the original data set. +

+ It was created to assure an optimal way of calculating, transforming and + storing user's content consumption data for further consumption, data analysis + and visualization. +

Getting started with Tape →

Teaching elements

What is a teaching element?

Why are they created? (goal, purpose)

Teaching element architecture

List of Teaching Elements →

+ + + diff --git a/docs/.vuepress/dist/guide-boutique/index.html b/docs/.vuepress/dist/guide-boutique/index.html new file mode 100644 index 0000000..672e8d3 --- /dev/null +++ b/docs/.vuepress/dist/guide-boutique/index.html @@ -0,0 +1,39 @@ + + + + + + Getting Started with Boutique | Custom Learning Experiences + + + + + + + + + + + diff --git a/docs/.vuepress/dist/guide-tailor/index.html b/docs/.vuepress/dist/guide-tailor/index.html new file mode 100644 index 0000000..a1bacda --- /dev/null +++ b/docs/.vuepress/dist/guide-tailor/index.html @@ -0,0 +1,40 @@ + + + + + + Getting Started with Tailor | Custom Learning Experiences + + + + + + + + + + + diff --git a/docs/.vuepress/dist/guide-tailor/tailor-configuration/index.html b/docs/.vuepress/dist/guide-tailor/tailor-configuration/index.html new file mode 100644 index 0000000..66e12ed --- /dev/null +++ b/docs/.vuepress/dist/guide-tailor/tailor-configuration/index.html @@ -0,0 +1,38 @@ + + + + + + Tailor Configuration | Custom Learning Experiences + + + + + + + + + + + diff --git a/docs/.vuepress/dist/guide-tape/index.html b/docs/.vuepress/dist/guide-tape/index.html new file mode 100644 index 0000000..f98de13 --- /dev/null +++ b/docs/.vuepress/dist/guide-tape/index.html @@ -0,0 +1,40 @@ + + + + + + Getting Started with Tape | Custom Learning Experiences + + + + + + + + + + + diff --git a/docs/.vuepress/dist/index.html b/docs/.vuepress/dist/index.html new file mode 100644 index 0000000..eceac66 --- /dev/null +++ b/docs/.vuepress/dist/index.html @@ -0,0 +1,41 @@ + + + + + + Custom Learning Experiences + + + + + + + +
hero

Custom Learning Experiences

+ Strategy, Implementation, Support +

Learn more →

Flexible structure

+ Tailor doesn't enforce content structure, thus allowing content managers + to create content structure that meets its purpose. +

Modularity

+ Content elements are modules which can be included on a per-need basis. +

Interoperability

+ Tailor content is published in JSON format to be used by other + applications in the ecosystem. +

Who's using Tailor?

+ + + diff --git a/docs/.vuepress/dist/issues/index.html b/docs/.vuepress/dist/issues/index.html new file mode 100644 index 0000000..46d4614 --- /dev/null +++ b/docs/.vuepress/dist/issues/index.html @@ -0,0 +1,33 @@ + + + + + + Reporting issues | Custom Learning Experiences + + + + + + + + + + + diff --git a/docs/.vuepress/dist/tailor.png b/docs/.vuepress/dist/tailor.png new file mode 100644 index 0000000..ae9fffb Binary files /dev/null and b/docs/.vuepress/dist/tailor.png differ diff --git a/docs/.vuepress/dist/teaching-elements/index.html b/docs/.vuepress/dist/teaching-elements/index.html new file mode 100644 index 0000000..d45eff1 --- /dev/null +++ b/docs/.vuepress/dist/teaching-elements/index.html @@ -0,0 +1,37 @@ + + + + + + List of teaching elements | Custom Learning Experiences + + + + + + + + + + + diff --git a/docs/.vuepress/public/EE_Logo_C-sized.png b/docs/.vuepress/public/EE_Logo_C-sized.png new file mode 100644 index 0000000..ed4e580 Binary files /dev/null and b/docs/.vuepress/public/EE_Logo_C-sized.png differ diff --git a/docs/.vuepress/public/architecture.png b/docs/.vuepress/public/architecture.png new file mode 100644 index 0000000..5af9a77 Binary files /dev/null and b/docs/.vuepress/public/architecture.png differ diff --git a/docs/.vuepress/public/default-logo-full.svg b/docs/.vuepress/public/default-logo-full.svg new file mode 100644 index 0000000..235037e --- /dev/null +++ b/docs/.vuepress/public/default-logo-full.svg @@ -0,0 +1,16 @@ + + + + background + + + + Layer 1 + + + + + + + + \ No newline at end of file diff --git a/docs/.vuepress/public/tailor.png b/docs/.vuepress/public/tailor.png new file mode 100644 index 0000000..ae9fffb Binary files /dev/null and b/docs/.vuepress/public/tailor.png differ diff --git a/docs/README.md b/docs/README.md index 8b75f81..54aa1aa 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1 +1,37 @@ -# Tailor +--- +home: true +heroImage: /default-logo-full.svg +actionText: Learn more → +actionLink: /ecosystem/ +footer: MIT Licensed | Copyright © 2017-present ExtensionEngine, LLC +--- + +
+
+

Flexible structure

+

+ Tailor doesn't enforce content structure, thus allowing content managers + to create content structure that meets its purpose. +

+
+
+

Modularity

+

+ Content elements are modules which can be included on a per-need basis. +

+
+
+

Interoperability

+

+ Tailor content is published in JSON format to be used by other + applications in the ecosystem. +

+
+
+ +## Who's using Tailor? + +
+ Extension Engine logo +

Contact us

+
diff --git a/docs/content-elements/README.md b/docs/content-elements/README.md new file mode 100644 index 0000000..81b26c5 --- /dev/null +++ b/docs/content-elements/README.md @@ -0,0 +1,5 @@ +# List of content elements + +| Name | Description | Repository | +|:----------------------------:|:-----------------:|:-----------------------------------:| +| Name of the content element | Short description | [Repository](http://www.github.com) | diff --git a/docs/content/README.md b/docs/content/README.md new file mode 100644 index 0000000..649a0ba --- /dev/null +++ b/docs/content/README.md @@ -0,0 +1,37 @@ +# Content authoring + +## Course creation + +Course creation steps +1. Step 1 +
+ Step 1 +
+ +2. Step 2 +
+ Step 2 +
+ +3. Step 3 +
+ Step 3 +
+ +## Content creation + +Content creation steps +1. Step 1 +
+ Step 1 +
+ +2. Step 2 +
+ Step 2 +
+ +3. Step 3 +
+ Step 3 +
diff --git a/docs/content/contribute/README.md b/docs/content/contribute/README.md new file mode 100644 index 0000000..7d0c797 --- /dev/null +++ b/docs/content/contribute/README.md @@ -0,0 +1,29 @@ +# Teaching element SDK + +Why would you want to create a new teaching element? (What's the motivation?) + +## How to create a new teaching element + +Guidelines for creating a new teaching element + +Steps to follow +1. Step 1 +
+ Step 1 +
+ +2. Step 2 +
+ Step 2 +
+ +3. Step 3 +
+ Step 3 +
+ +## Structure + +``` js +TODO: Code snippet +``` diff --git a/docs/contribute/README.md b/docs/contribute/README.md new file mode 100644 index 0000000..a7aded6 --- /dev/null +++ b/docs/contribute/README.md @@ -0,0 +1,7 @@ +# How to contribute + +How open source community members can contribute? + +::: tip +This is a tip +::: diff --git a/docs/ecosystem/README.md b/docs/ecosystem/README.md new file mode 100644 index 0000000..9c6bb7e --- /dev/null +++ b/docs/ecosystem/README.md @@ -0,0 +1,123 @@ +# Ecosystem + +
+ Architecture diagram +
+ +## Tailor + +

+ Tailor is a Content Management System (CMS) + used for creating a flexible content structure. +

+

+ It is continually being improved to provide the most customizable solution, + while not forcing users to conform to any content-related restrictions. +

+ +
+ Internal Tailor architecture +
+ +[Getting started with Tailor →](/guide-tailor/) + +### Repository + +

Repository is a container that gives structure to the content.

+

To control content structure, one must provide a repository schema.

+

Here's an example of a repository schema:

+ +``` json +{ + "id": "COURSE", + "name": "Example Course", + "structure": [{ + "type": "GOAL", + "label": "Goal", + "color": "#ff6590", + "level": 1, + "meta":[{ + "key": "description", + "type": "INPUT", + "label": "Description", + "placeholder": "Click to add...", + "validate": { "rules": { "required": false, "max": 23 } } + }], + "contentContainers": ["PAGE"], + "relationships": [{ + "type": "prerequisites", + "label": "Prerequisites", + "multiple": true, + "searchable": true, + "allowEmpty": true, + "placeholder": "Click to select", + "allowCircularLinks": false, + "allowInsideLineage": false + }, { + "type": "replacements", + "label": "replacements" + }] + }], + "contentContainers": [{ + "type": "PAGE", + "label": "Page", + "multiple": false + }] +} +``` + +## Boutique + +

+ Boutique is a headless Content Delivery Platform (CDP) + that consumes Tailor content and prepares it for the end user consumption. +

+

+ The goal of building Boutique was to provide a custom LMS to meet our clients' + needs, but since Tailor can provide content that can be consumed for any + purpose, it grew to become a CDP that meets the customization needs of our + clients like custom way content elements look and behave. +

+ +[Getting started with Boutique →](/guide-boutique/) + +## Tape + +

+ Tape is a data analytics system that collect user's content consumption data + from Boutique and generates new data through calculations and transformations + of the original data set. +

+

+ It was created to assure an optimal way of calculating, transforming and + storing user's content consumption data for further consumption, data analysis + and visualization. +

+ +[Getting started with Tape →](/guide-tape/) + +## Content elements + +

+ Content element is a module that provides a set of metadata that defines + specific content type. +

+

+ Purpose of content elements is to provide a modular way of introducing new + content types. By having content elements as separate modules, we've made + sure that: +

    +
  • + Content managers can easily manage available content types +
  • +
  • + Developers can extend existing content types or create new ones. +
  • +
+

+ +
+ Content element architecture +
+ +[List of Content Elements →](/content-elements/) diff --git a/docs/guide-boutique/README.md b/docs/guide-boutique/README.md new file mode 100644 index 0000000..ebd49b4 --- /dev/null +++ b/docs/guide-boutique/README.md @@ -0,0 +1,17 @@ +# Getting Started with Boutique + +::: warning COMPATIBILITY NOTE +Boutique requirements (Node version, etc.) +::: + +## Local installation + +``` js +TODO: Installation steps +``` + +## Tailor integration + +``` js +TODO: Integration steps +``` diff --git a/docs/guide-tailor/README.md b/docs/guide-tailor/README.md new file mode 100644 index 0000000..9f746a2 --- /dev/null +++ b/docs/guide-tailor/README.md @@ -0,0 +1,51 @@ +# Getting Started with Tailor + +::: warning COMPATIBILITY NOTE +Tailor requirements (Node version, etc.) +::: + +## Local installation + +1. Obtain a copy of the Tailor repository. + +2. Enter the repository directory and run: +``` sh +npm install +``` +This will install all the packages required for the app to function properly. + +3. Create a blank PostgreSQL database for the project. You do not need to create any tables. + +4. If you do not have a `.env` file in the app root, create a copy of the existing `.env.example` file and rename it to `.env`. Set the database configuration in the `.env` file, the easiest way being: +``` sh +DATABASE_URI=postgres://username:password@your_host:db_port/db_name +``` +Example: `postgres://myUsername:myPassword123@localhost:1234/tailor` + +5. To prepare your database for work, run: +``` sh +npm run db:reset +``` +This will populate the database with the tables required by the Tailor app. The command can also be run if you want your existing database data to be purged; it will recreate the table structure and leave the tables blank. + +6. To add filler data to the database (for development purposes), run: +``` sh +npm run db:seed +``` +To manually create admin users, you can use the following command: +``` sh +npm run add:admin +``` +Example: `npm run add: admin myAdmin@test.com test12345!` + +## Server deployment + +``` sh +TODO: Deployment steps +``` + +## Sample configuration + +``` json +TODO: Configuration steps +``` diff --git a/docs/guide-tailor/tailor-configuration/README.md b/docs/guide-tailor/tailor-configuration/README.md new file mode 100644 index 0000000..c49ba7b --- /dev/null +++ b/docs/guide-tailor/tailor-configuration/README.md @@ -0,0 +1,15 @@ +# Tailor Configuration + +What do we have to configure? + +## Details + +| Configuration key | Description | Example value | +|:-------------------:|:-----------------:|:---------------:| +| `Key` | Short description | `Example value` | + +## Configuration example + +``` json +TODO: Configuration example +``` diff --git a/docs/guide-tape/README.md b/docs/guide-tape/README.md new file mode 100644 index 0000000..dc1fd1a --- /dev/null +++ b/docs/guide-tape/README.md @@ -0,0 +1,23 @@ +# Getting Started with Tape + +::: warning COMPATIBILITY NOTE +Tape requirements (Node version, etc.) +::: + +## Local installation + +``` js +TODO: Installation steps +``` + +## Tailor integration + +``` js +TODO: Integration steps +``` + +## Boutique integration + +``` js +TODO: Integration steps +``` diff --git a/docs/issues/README.md b/docs/issues/README.md new file mode 100644 index 0000000..8cd5722 --- /dev/null +++ b/docs/issues/README.md @@ -0,0 +1,7 @@ +# Reporting issues + +Where to report issues in Tailor ecosystem? + +::: tip +How to report issues? +::: diff --git a/package-lock.json b/package-lock.json index 04536cd..23c3ab1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4708,7 +4708,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -4729,12 +4730,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4749,17 +4752,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -4876,7 +4882,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -4888,6 +4895,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4902,6 +4910,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4909,12 +4918,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -4933,6 +4944,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -5013,7 +5025,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -5025,6 +5038,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -5110,7 +5124,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -5146,6 +5161,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5165,6 +5181,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5208,12 +5225,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } },