├── .browserslistrc ├── .dockerignore ├── .editorconfig ├── .github ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md └── SUPPORT.md ├── .gitignore ├── AUTHORS ├── CODE_OF_CONDUCT.md ├── Dockerfile ├── Jenkinsfile ├── LICENSE.md ├── README.md ├── angular.json ├── e2e ├── protractor.conf.js ├── src │ ├── app.e2e-spec.ts │ └── app.po.ts └── tsconfig.e2e.json ├── package-lock.json ├── package.json ├── projects ├── account │ ├── .browserslistrc │ ├── karma.conf.js │ ├── proxy.config.json │ ├── src │ │ ├── app │ │ │ ├── app-routing.module.ts │ │ │ ├── app.component.html │ │ │ ├── app.component.scss │ │ │ ├── app.component.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── core │ │ │ │ ├── guards │ │ │ │ │ ├── account-resolver.service.ts │ │ │ │ │ ├── defaults-resolver.service.ts │ │ │ │ │ ├── device-resolver.service.ts │ │ │ │ │ ├── membership-resolver.service.ts │ │ │ │ │ └── preferences-resolver.service.ts │ │ │ │ └── http │ │ │ │ │ ├── device.service.ts │ │ │ │ │ ├── geography_service.ts │ │ │ │ │ ├── profile.service.ts │ │ │ │ │ └── skill.service.ts │ │ │ ├── modules │ │ │ │ ├── dashboard │ │ │ │ │ ├── components │ │ │ │ │ │ ├── dashboard-device │ │ │ │ │ │ │ ├── dashboard-device.component.html │ │ │ │ │ │ │ ├── dashboard-device.component.scss │ │ │ │ │ │ │ └── dashboard-device.component.ts │ │ │ │ │ │ ├── dashboard-marketplace │ │ │ │ │ │ │ ├── dashboard-marketplace.component.html │ │ │ │ │ │ │ ├── dashboard-marketplace.component.scss │ │ │ │ │ │ │ └── dashboard-marketplace.component.ts │ │ │ │ │ │ ├── dashboard-membership │ │ │ │ │ │ │ ├── dashboard-membership.component.html │ │ │ │ │ │ │ ├── dashboard-membership.component.scss │ │ │ │ │ │ │ └── dashboard-membership.component.ts │ │ │ │ │ │ ├── dashboard-privacy │ │ │ │ │ │ │ ├── dashboard-privacy.component.html │ │ │ │ │ │ │ ├── dashboard-privacy.component.scss │ │ │ │ │ │ │ └── dashboard-privacy.component.ts │ │ │ │ │ │ └── dashboard-skill │ │ │ │ │ │ │ ├── dashboard-skill.component.html │ │ │ │ │ │ │ ├── dashboard-skill.component.scss │ │ │ │ │ │ │ └── dashboard-skill.component.ts │ │ │ │ │ ├── dashboard.component.html │ │ │ │ │ ├── dashboard.component.scss │ │ │ │ │ ├── dashboard.component.ts │ │ │ │ │ └── dashboard.module.ts │ │ │ │ ├── device │ │ │ │ │ ├── components │ │ │ │ │ │ ├── card │ │ │ │ │ │ │ ├── add-complete │ │ │ │ │ │ │ │ ├── add-complete.component.html │ │ │ │ │ │ │ │ ├── add-complete.component.scss │ │ │ │ │ │ │ │ └── add-complete.component.ts │ │ │ │ │ │ │ ├── defaults-card │ │ │ │ │ │ │ │ ├── defaults-card.component.html │ │ │ │ │ │ │ │ ├── defaults-card.component.scss │ │ │ │ │ │ │ │ └── defaults-card.component.ts │ │ │ │ │ │ │ ├── device-display │ │ │ │ │ │ │ │ ├── device-display.component.html │ │ │ │ │ │ │ │ ├── device-display.component.scss │ │ │ │ │ │ │ │ └── device-display.component.ts │ │ │ │ │ │ │ ├── device-edit-card │ │ │ │ │ │ │ │ ├── device-edit-card.component.html │ │ │ │ │ │ │ │ ├── device-edit-card.component.scss │ │ │ │ │ │ │ │ └── device-edit-card.component.ts │ │ │ │ │ │ │ ├── geography-card │ │ │ │ │ │ │ │ ├── geography-card.component.html │ │ │ │ │ │ │ │ ├── geography-card.component.scss │ │ │ │ │ │ │ │ └── geography-card.component.ts │ │ │ │ │ │ │ ├── preferences-card │ │ │ │ │ │ │ │ ├── preferences-card.component.html │ │ │ │ │ │ │ │ ├── preferences-card.component.scss │ │ │ │ │ │ │ │ └── preferences-card.component.ts │ │ │ │ │ │ │ ├── software-release-card │ │ │ │ │ │ │ │ ├── software-release-card.component.html │ │ │ │ │ │ │ │ ├── software-release-card.component.scss │ │ │ │ │ │ │ │ └── software-release-card.component.ts │ │ │ │ │ │ │ ├── software-update-card │ │ │ │ │ │ │ │ ├── software-update-card.component.html │ │ │ │ │ │ │ │ ├── software-update-card.component.scss │ │ │ │ │ │ │ │ └── software-update-card.component.ts │ │ │ │ │ │ │ ├── ssh-card │ │ │ │ │ │ │ │ ├── ssh-card.component.html │ │ │ │ │ │ │ │ ├── ssh-card.component.scss │ │ │ │ │ │ │ │ └── ssh-card.component.ts │ │ │ │ │ │ │ ├── voice-card │ │ │ │ │ │ │ │ ├── voice-card.component.html │ │ │ │ │ │ │ │ ├── voice-card.component.scss │ │ │ │ │ │ │ │ └── voice-card.component.ts │ │ │ │ │ │ │ └── wake-word-card │ │ │ │ │ │ │ │ ├── wake-word-card.component.html │ │ │ │ │ │ │ │ ├── wake-word-card.component.scss │ │ │ │ │ │ │ │ └── wake-word-card.component.ts │ │ │ │ │ │ ├── input │ │ │ │ │ │ │ ├── city-input │ │ │ │ │ │ │ │ ├── city-input.component.html │ │ │ │ │ │ │ │ ├── city-input.component.scss │ │ │ │ │ │ │ │ └── city-input.component.ts │ │ │ │ │ │ │ ├── country-input │ │ │ │ │ │ │ │ ├── country-input.component.html │ │ │ │ │ │ │ │ ├── country-input.component.scss │ │ │ │ │ │ │ │ └── country-input.component.ts │ │ │ │ │ │ │ ├── region-input │ │ │ │ │ │ │ │ ├── region-input.component.html │ │ │ │ │ │ │ │ ├── region-input.component.scss │ │ │ │ │ │ │ │ └── region-input.component.ts │ │ │ │ │ │ │ └── timezone-input │ │ │ │ │ │ │ │ ├── timezone-input.component.html │ │ │ │ │ │ │ │ ├── timezone-input.component.scss │ │ │ │ │ │ │ │ └── timezone-input.component.ts │ │ │ │ │ │ └── modal │ │ │ │ │ │ │ └── remove-device-dialog │ │ │ │ │ │ │ ├── remove-device-dialog.component.html │ │ │ │ │ │ │ ├── remove-device-dialog.component.scss │ │ │ │ │ │ │ └── remove-device-dialog.component.ts │ │ │ │ │ ├── device-routing.module.ts │ │ │ │ │ ├── device.component.html │ │ │ │ │ ├── device.component.scss │ │ │ │ │ ├── device.component.ts │ │ │ │ │ ├── device.module.ts │ │ │ │ │ └── pages │ │ │ │ │ │ ├── add │ │ │ │ │ │ ├── add.component.html │ │ │ │ │ │ ├── add.component.scss │ │ │ │ │ │ └── add.component.ts │ │ │ │ │ │ ├── defaults │ │ │ │ │ │ ├── defaults.component.html │ │ │ │ │ │ ├── defaults.component.scss │ │ │ │ │ │ └── defaults.component.ts │ │ │ │ │ │ ├── device-edit │ │ │ │ │ │ ├── device-edit.component.html │ │ │ │ │ │ ├── device-edit.component.scss │ │ │ │ │ │ └── device-edit.component.ts │ │ │ │ │ │ ├── device-list │ │ │ │ │ │ ├── device-list.component.html │ │ │ │ │ │ ├── device-list.component.scss │ │ │ │ │ │ └── device-list.component.ts │ │ │ │ │ │ └── preferences │ │ │ │ │ │ ├── preferences.component.html │ │ │ │ │ │ ├── preferences.component.scss │ │ │ │ │ │ └── preferences.component.ts │ │ │ │ ├── personal-data │ │ │ │ │ ├── personal-data-routing.module.ts │ │ │ │ │ ├── personal-data.component.html │ │ │ │ │ ├── personal-data.component.scss │ │ │ │ │ ├── personal-data.component.ts │ │ │ │ │ └── personal-data.module.ts │ │ │ │ ├── profile │ │ │ │ │ ├── components │ │ │ │ │ │ ├── cards │ │ │ │ │ │ │ ├── agreements │ │ │ │ │ │ │ │ ├── agreements.component.html │ │ │ │ │ │ │ │ ├── agreements.component.scss │ │ │ │ │ │ │ │ └── agreements.component.ts │ │ │ │ │ │ │ ├── delete │ │ │ │ │ │ │ │ ├── delete.component.html │ │ │ │ │ │ │ │ ├── delete.component.scss │ │ │ │ │ │ │ │ └── delete.component.ts │ │ │ │ │ │ │ ├── login │ │ │ │ │ │ │ │ ├── login.component.html │ │ │ │ │ │ │ │ ├── login.component.scss │ │ │ │ │ │ │ │ └── login.component.ts │ │ │ │ │ │ │ └── membership │ │ │ │ │ │ │ │ ├── membership.component.html │ │ │ │ │ │ │ │ ├── membership.component.scss │ │ │ │ │ │ │ │ └── membership.component.ts │ │ │ │ │ │ ├── modals │ │ │ │ │ │ │ ├── delete-confirm │ │ │ │ │ │ │ │ ├── delete-confirm.component.html │ │ │ │ │ │ │ │ ├── delete-confirm.component.scss │ │ │ │ │ │ │ │ └── delete-confirm.component.ts │ │ │ │ │ │ │ └── membership-cancel-confirm │ │ │ │ │ │ │ │ ├── membership-cancel-confirm.component.html │ │ │ │ │ │ │ │ ├── membership-cancel-confirm.component.scss │ │ │ │ │ │ │ │ └── membership-cancel-confirm.component.ts │ │ │ │ │ │ └── views │ │ │ │ │ │ │ ├── change-email │ │ │ │ │ │ │ ├── change-email.component.html │ │ │ │ │ │ │ ├── change-email.component.scss │ │ │ │ │ │ │ └── change-email.component.ts │ │ │ │ │ │ │ ├── change-password │ │ │ │ │ │ │ ├── change-password.component.html │ │ │ │ │ │ │ ├── change-password.component.scss │ │ │ │ │ │ │ └── change-password.component.ts │ │ │ │ │ │ │ ├── membership-step │ │ │ │ │ │ │ ├── membership-step.component.html │ │ │ │ │ │ │ ├── membership-step.component.scss │ │ │ │ │ │ │ └── membership-step.component.ts │ │ │ │ │ │ │ ├── payment │ │ │ │ │ │ │ ├── payment.component.html │ │ │ │ │ │ │ ├── payment.component.scss │ │ │ │ │ │ │ ├── payment.component.ts │ │ │ │ │ │ │ ├── verify-card-dialog.component.html │ │ │ │ │ │ │ ├── verify-card-dialog.component.scss │ │ │ │ │ │ │ └── verify-card-dialog.component.ts │ │ │ │ │ │ │ └── username-step │ │ │ │ │ │ │ ├── username-step.component.html │ │ │ │ │ │ │ ├── username-step.component.scss │ │ │ │ │ │ │ └── username-step.component.ts │ │ │ │ │ ├── pages │ │ │ │ │ │ ├── edit │ │ │ │ │ │ │ ├── edit.component.html │ │ │ │ │ │ │ ├── edit.component.scss │ │ │ │ │ │ │ └── edit.component.ts │ │ │ │ │ │ ├── new │ │ │ │ │ │ │ ├── new.component.html │ │ │ │ │ │ │ ├── new.component.scss │ │ │ │ │ │ │ └── new.component.ts │ │ │ │ │ │ └── verify-email │ │ │ │ │ │ │ ├── verify-email.component.html │ │ │ │ │ │ │ ├── verify-email.component.scss │ │ │ │ │ │ │ └── verify-email.component.ts │ │ │ │ │ ├── profile-routing.module.ts │ │ │ │ │ └── profile.module.ts │ │ │ │ └── skill │ │ │ │ │ ├── setting-field │ │ │ │ │ ├── setting-field.component.html │ │ │ │ │ ├── setting-field.component.scss │ │ │ │ │ └── setting-field.component.ts │ │ │ │ │ ├── setting-section │ │ │ │ │ ├── setting-section.component.html │ │ │ │ │ ├── setting-section.component.scss │ │ │ │ │ └── setting-section.component.ts │ │ │ │ │ ├── skill-panel │ │ │ │ │ ├── skill-panel.component.html │ │ │ │ │ ├── skill-panel.component.scss │ │ │ │ │ └── skill-panel.component.ts │ │ │ │ │ ├── skill-routing.module.ts │ │ │ │ │ ├── skill-setting │ │ │ │ │ ├── skill-settings.component.html │ │ │ │ │ ├── skill-settings.component.scss │ │ │ │ │ └── skill-settings.component.ts │ │ │ │ │ ├── skill.component.html │ │ │ │ │ ├── skill.component.scss │ │ │ │ │ ├── skill.component.ts │ │ │ │ │ └── skill.module.ts │ │ │ └── shared │ │ │ │ ├── components │ │ │ │ ├── display-field │ │ │ │ │ ├── display-field.component.html │ │ │ │ │ ├── display-field.component.scss │ │ │ │ │ └── display-field.component.ts │ │ │ │ ├── option-btn │ │ │ │ │ ├── option-btn.component.html │ │ │ │ │ ├── option-btn.component.scss │ │ │ │ │ └── option-btn.component.ts │ │ │ │ └── option-buttons │ │ │ │ │ ├── option-buttons.component.html │ │ │ │ │ ├── option-buttons.component.scss │ │ │ │ │ └── option-buttons.component.ts │ │ │ │ ├── models │ │ │ │ ├── account-agreement.model.ts │ │ │ │ ├── account-membership.model.ts │ │ │ │ ├── account.model.ts │ │ │ │ ├── agreement.model.ts │ │ │ │ ├── city.model.ts │ │ │ │ ├── country.model.ts │ │ │ │ ├── defaults.model.ts │ │ │ │ ├── device.model.ts │ │ │ │ ├── deviceAttribute.model.ts │ │ │ │ ├── membership-update.model.ts │ │ │ │ ├── membership.model.ts │ │ │ │ ├── option-buttons-config.model.ts │ │ │ │ ├── pantacor-config.model.ts │ │ │ │ ├── preferences.model.ts │ │ │ │ ├── region.model.ts │ │ │ │ ├── setting-change.model.ts │ │ │ │ ├── setting-field.model.ts │ │ │ │ ├── setting-section.model.ts │ │ │ │ ├── settings-display.model.ts │ │ │ │ ├── skill-settings.model.ts │ │ │ │ ├── skill_family.model.ts │ │ │ │ ├── timezone.model.ts │ │ │ │ ├── voice.model.ts │ │ │ │ └── wake-word.model.ts │ │ │ │ └── shared.module.ts │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ ├── facebook_logo.png │ │ │ ├── generic-device-icon-blue.svg │ │ │ ├── generic-device-icon-white.svg │ │ │ ├── google-logo.png │ │ │ ├── kde-icon.svg │ │ │ ├── mark-1-icon.svg │ │ │ ├── mark-2-icon.svg │ │ │ ├── membership.svg │ │ │ └── picroft-icon.svg │ │ ├── environments │ │ │ ├── environment.dev.ts │ │ │ ├── environment.prod.ts │ │ │ ├── environment.test.ts │ │ │ └── environment.ts │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── main.ts │ │ ├── polyfills.ts │ │ ├── styles.scss │ │ └── test.ts │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ └── tslint.json ├── globalnav │ ├── karma.conf.js │ ├── ng-package.json │ ├── package.json │ ├── src │ │ ├── lib │ │ │ ├── account-menu │ │ │ │ ├── account-menu.component.html │ │ │ │ ├── account-menu.component.scss │ │ │ │ └── account-menu.component.ts │ │ │ ├── footer │ │ │ │ ├── footer.component.html │ │ │ │ ├── footer.component.scss │ │ │ │ └── footer.component.ts │ │ │ ├── globalnav.component.html │ │ │ ├── globalnav.component.scss │ │ │ ├── globalnav.component.ts │ │ │ ├── globalnav.module.ts │ │ │ ├── globalnav.service.ts │ │ │ ├── nav-item │ │ │ │ ├── nav-item.component.html │ │ │ │ ├── nav-item.component.scss │ │ │ │ └── nav-item.component.ts │ │ │ ├── primary-nav-item │ │ │ │ ├── primary-nav-item.component.html │ │ │ │ ├── primary-nav-item.component.scss │ │ │ │ └── primary-nav-item.component.ts │ │ │ └── toolbar-logo.svg │ │ ├── public_api.ts │ │ └── test.ts │ ├── tsconfig.lib.json │ ├── tsconfig.lib.prod.json │ ├── tsconfig.spec.json │ └── tslint.json ├── market-e2e │ ├── protractor.conf.js │ ├── src │ │ ├── app.e2e-spec.ts │ │ └── app.po.ts │ └── tsconfig.e2e.json ├── market │ ├── .browserslistrc │ ├── karma.conf.js │ ├── proxy.config.json │ ├── src │ │ ├── app │ │ │ ├── app-routing.module.ts │ │ │ ├── app.component.html │ │ │ ├── app.component.scss │ │ │ ├── app.component.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── shared │ │ │ │ └── material.module.ts │ │ │ └── skills │ │ │ │ ├── install-button │ │ │ │ ├── install-button.component.html │ │ │ │ ├── install-button.component.scss │ │ │ │ └── install-button.component.ts │ │ │ │ ├── install.service.ts │ │ │ │ ├── skill-detail │ │ │ │ ├── skill-detail-body │ │ │ │ │ ├── skill-detail-body.component.html │ │ │ │ │ ├── skill-detail-body.component.scss │ │ │ │ │ └── skill-detail-body.component.ts │ │ │ │ ├── skill-detail-header │ │ │ │ │ ├── skill-detail-header.component.html │ │ │ │ │ ├── skill-detail-header.component.scss │ │ │ │ │ └── skill-detail-header.component.ts │ │ │ │ ├── skill-detail.component.html │ │ │ │ ├── skill-detail.component.scss │ │ │ │ └── skill-detail.component.ts │ │ │ │ ├── skill-summary │ │ │ │ ├── skill-card │ │ │ │ │ ├── skill-card-header.component.html │ │ │ │ │ ├── skill-card-header.component.scss │ │ │ │ │ ├── skill-card-header.component.ts │ │ │ │ │ ├── skill-card.component.html │ │ │ │ │ ├── skill-card.component.scss │ │ │ │ │ └── skill-card.component.ts │ │ │ │ ├── skill-search │ │ │ │ │ ├── skill-search.component.html │ │ │ │ │ ├── skill-search.component.scss │ │ │ │ │ └── skill-search.component.ts │ │ │ │ ├── skill-summary.component.html │ │ │ │ ├── skill-summary.component.scss │ │ │ │ └── skill-summary.component.ts │ │ │ │ ├── skills-routing.module.ts │ │ │ │ ├── skills.module.ts │ │ │ │ └── skills.service.ts │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ ├── header-logo.png │ │ │ ├── header-logo.svg │ │ │ ├── kde.svg │ │ │ ├── logo.ico │ │ │ ├── mark-1-icon.svg │ │ │ ├── mark-2-icon.svg │ │ │ ├── mycroft-logo.svg │ │ │ └── picroft-icon.svg │ │ ├── environments │ │ │ ├── environment.dev.ts │ │ │ ├── environment.prod.ts │ │ │ ├── environment.test.ts │ │ │ └── environment.ts │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── main.ts │ │ ├── polyfills.ts │ │ ├── styles.scss │ │ └── test.ts │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ └── tslint.json ├── precise │ ├── .browserslistrc │ ├── e2e │ │ ├── protractor.conf.js │ │ ├── src │ │ │ ├── app.e2e-spec.ts │ │ │ └── app.po.ts │ │ └── tsconfig.json │ ├── karma.conf.js │ ├── src │ │ ├── app │ │ │ ├── app-routing.module.ts │ │ │ ├── app.component.html │ │ │ ├── app.component.scss │ │ │ ├── app.component.spec.ts │ │ │ ├── app.component.ts │ │ │ ├── app.module.ts │ │ │ ├── core │ │ │ │ ├── guards │ │ │ │ │ └── tag-event-resolver.service.ts │ │ │ │ └── http │ │ │ │ │ └── tagger.service.ts │ │ │ ├── modules │ │ │ │ └── tagger │ │ │ │ │ ├── pages │ │ │ │ │ ├── intro │ │ │ │ │ │ ├── intro.component.html │ │ │ │ │ │ ├── intro.component.scss │ │ │ │ │ │ ├── intro.component.spec.ts │ │ │ │ │ │ └── intro.component.ts │ │ │ │ │ └── tag │ │ │ │ │ │ ├── tag.component.html │ │ │ │ │ │ ├── tag.component.scss │ │ │ │ │ │ ├── tag.component.spec.ts │ │ │ │ │ │ └── tag.component.ts │ │ │ │ │ └── tagger.module.ts │ │ │ └── shared │ │ │ │ └── models │ │ │ │ └── tag-event.model.ts │ │ ├── assets │ │ │ └── .gitkeep │ │ ├── environments │ │ │ ├── environment.dev.ts │ │ │ ├── environment.prod.ts │ │ │ ├── environment.test.ts │ │ │ └── environment.ts │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── main.ts │ │ ├── polyfills.ts │ │ ├── styles.scss │ │ └── test.ts │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ └── tslint.json ├── shared │ ├── karma.conf.js │ ├── ng-package.json │ ├── package.json │ ├── src │ │ ├── lib │ │ │ ├── maintenance-page │ │ │ │ ├── maintenance-page.component.html │ │ │ │ ├── maintenance-page.component.scss │ │ │ │ ├── maintenance-page.component.ts │ │ │ │ └── mycroft-maintenance.svg │ │ │ ├── page-not-found │ │ │ │ ├── mycroft-page-not-found.svg │ │ │ │ ├── page-not-found.component.html │ │ │ │ ├── page-not-found.component.scss │ │ │ │ └── page-not-found.component.ts │ │ │ ├── shared.component.ts │ │ │ ├── shared.module.ts │ │ │ └── snackbar │ │ │ │ ├── snackbar.component.html │ │ │ │ ├── snackbar.component.scss │ │ │ │ └── snackbar.component.ts │ │ ├── projects.ts │ │ └── test.ts │ ├── tsconfig.lib.json │ ├── tsconfig.lib.prod.json │ ├── tsconfig.spec.json │ └── tslint.json ├── sso-e2e │ ├── protractor.conf.js │ ├── src │ │ ├── app.e2e-spec.ts │ │ └── app.po.ts │ └── tsconfig.e2e.json └── sso │ ├── .browserslistrc │ ├── karma.conf.js │ ├── proxy.config.json │ ├── src │ ├── app │ │ ├── app-routing.module.ts │ │ ├── app.component.html │ │ ├── app.component.scss │ │ ├── app.component.ts │ │ ├── app.module.ts │ │ ├── core │ │ │ └── http │ │ │ │ └── api.service.ts │ │ ├── modules │ │ │ ├── change-password │ │ │ │ ├── change-password.component.html │ │ │ │ ├── change-password.component.scss │ │ │ │ ├── change-password.component.ts │ │ │ │ └── change-password.module.ts │ │ │ ├── login │ │ │ │ ├── federated-login │ │ │ │ │ ├── federated-login.component.html │ │ │ │ │ ├── federated-login.component.scss │ │ │ │ │ └── federated-login.component.ts │ │ │ │ ├── internal-login │ │ │ │ │ ├── internal-login.component.html │ │ │ │ │ ├── internal-login.component.scss │ │ │ │ │ └── internal-login.component.ts │ │ │ │ ├── login.component.html │ │ │ │ ├── login.component.scss │ │ │ │ ├── login.component.ts │ │ │ │ ├── login.module.ts │ │ │ │ └── password-reset │ │ │ │ │ ├── password-reset.component.html │ │ │ │ │ ├── password-reset.component.scss │ │ │ │ │ └── password-reset.component.ts │ │ │ ├── logout │ │ │ │ ├── logout.component.html │ │ │ │ ├── logout.component.scss │ │ │ │ ├── logout.component.ts │ │ │ │ └── logout.module.ts │ │ │ └── new-account │ │ │ │ ├── agreement-step │ │ │ │ ├── agreement-step.component.html │ │ │ │ ├── agreement-step.component.scss │ │ │ │ └── agreement-step.component.ts │ │ │ │ ├── authentication-step │ │ │ │ ├── authentication-step.component.html │ │ │ │ ├── authentication-step.component.scss │ │ │ │ └── authentication-step.component.ts │ │ │ │ ├── new-account-routing.module.ts │ │ │ │ ├── new-account.component.html │ │ │ │ ├── new-account.component.scss │ │ │ │ ├── new-account.component.ts │ │ │ │ └── new-account.module.ts │ │ └── shared │ │ │ ├── components │ │ │ ├── email-input │ │ │ │ ├── email-input.component.html │ │ │ │ ├── email-input.component.scss │ │ │ │ └── email-input.component.ts │ │ │ ├── facebook-button │ │ │ │ ├── facebook-button.component.html │ │ │ │ ├── facebook-button.component.scss │ │ │ │ └── facebook-button.component.ts │ │ │ ├── github-button │ │ │ │ ├── github-button.component.html │ │ │ │ ├── github-button.component.scss │ │ │ │ └── github-button.component.ts │ │ │ ├── google-button │ │ │ │ ├── google-button.component.html │ │ │ │ ├── google-button.component.scss │ │ │ │ └── google-button.component.ts │ │ │ └── password-input │ │ │ │ ├── password-input.component.html │ │ │ │ ├── password-input.component.scss │ │ │ │ └── password-input.component.ts │ │ │ ├── models │ │ │ ├── login-token.model.ts │ │ │ └── password-change-account.model.ts │ │ │ └── shared.module.ts │ ├── assets │ │ ├── .gitkeep │ │ ├── facebook_logo.png │ │ ├── google-logo.png │ │ ├── google-logo.svg │ │ ├── google-signin-button.png │ │ └── mycroft-ai-no-logo.svg │ ├── environments │ │ ├── environment.dev.ts │ │ ├── environment.prod.ts │ │ ├── environment.test.ts │ │ └── environment.ts │ ├── favicon.ico │ ├── index.html │ ├── main.ts │ ├── polyfills.ts │ ├── styles.scss │ └── test.ts │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ └── tslint.json ├── src ├── app │ ├── app-routing.module.ts │ ├── app.component.html │ ├── app.component.scss │ ├── app.component.spec.ts │ ├── app.component.ts │ └── app.module.ts ├── assets │ └── .gitkeep ├── environments │ ├── environment.prod.ts │ ├── environment.test.ts │ ├── environment.ts │ └── evironment.dev.ts ├── index.html ├── karma.conf.js ├── main.ts ├── polyfills.ts ├── styles.scss ├── stylesheets │ ├── _mycroft-theme.scss │ └── components │ │ ├── _buttons.scss │ │ ├── _cards.scss │ │ └── _text.scss ├── test.ts ├── tsconfig.app.json ├── tsconfig.spec.json └── tslint.json ├── tsconfig.json └── tslint.json /.browserslistrc: -------------------------------------------------------------------------------- 1 | # This file is currently used by autoprefixer to adjust CSS to support the below specified browsers 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | # 5 | # For IE 9-11 support, please remove 'not' from the last line of the file and adjust as needed 6 | 7 | > 0.5% 8 | last 2 versions 9 | Firefox ESR 10 | not dead 11 | not IE 9-11 -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 4 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | # How to submit an Issue to a Mycroft repository 2 | 3 | When submitting an Issue to a Mycroft repository, please follow these guidelines to help us help you. 4 | 5 | ## Be clear about the software, hardware and version you are running 6 | 7 | For example: 8 | 9 | * I'm running Chrome version 75.0.3770.142 (see Help > About in most programs) 10 | * Running on a Macbook Pro, OS X v10.15 11 | 12 | ## Try to provide steps that we can use to replicate the Issue, include URLs 13 | 14 | For example: 15 | 16 | 1. Register 10 devices 17 | 2. Browse to the list of device (https://account.mycroft.ai/devices) 18 | 3. Resize the window and notice that the card for the 11th device gets cut off if the window gets too small. Expected a scrollbar to appear. 19 | 20 | ## Be as specific as possible about the expected condition, and the deviation from expected condition. 21 | 22 | This is called _object-deviation format_. Specify the object, then the deviation of the object from an expected condition. 23 | 24 | 25 | ## Upload any files to the Issue that will be useful in helping us to investigate 26 | 27 | Please ensure you upload any relevant files - such as screenshots - which will aid us investigating. 28 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | (Description of what the PR does, such as fixes # {issue number}) 3 | 4 | ## How to test 5 | (Description of how to validate or test this PR) 6 | -------------------------------------------------------------------------------- /.github/SUPPORT.md: -------------------------------------------------------------------------------- 1 | # How to get support with Mycroft software, hardware and products 2 | 3 | There are multiple ways to seek support with Mycroft software, hardware and products. 4 | 5 | ## Forum 6 | 7 | We maintain a [Forum](https://community.mycroft.ai) which is regularly monitored. 8 | Feel free to post questions, bugs, and requests for assistance in the relevant Forum Topic. 9 | 10 | ## Chat 11 | 12 | Mycroft staff are regularly available in our [Chat](https://chat.mycroft.ai) platform. 13 | There are specific rooms available for different projects and products. 14 | 15 | ## Contact 16 | 17 | You can contact us via [our online form](https://mycroft.ai/contact), or give a call. 18 | 19 | ## GitHub 20 | 21 | We welcome you raising Issues and Pull Requests on our public GitHub repositories. 22 | See the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information. 23 | 24 | ## Helping us to help you 25 | 26 | Our [documentation](https://mycroft.ai/documentation/troubleshooting/) contains troubleshooting information, and information on log files and other files that we may need to help us help you. 27 | 28 | 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | 8 | # dependencies 9 | /node_modules 10 | 11 | # IDEs and editors 12 | /.idea 13 | .project 14 | .classpath 15 | .c9/ 16 | *.launch 17 | .settings/ 18 | *.sublime-workspace 19 | 20 | # IDE - VSCode 21 | .vscode/* 22 | !.vscode/settings.json 23 | !.vscode/tasks.json 24 | !.vscode/launch.json 25 | !.vscode/extensions.json 26 | 27 | # misc 28 | /.angular/cache 29 | /.sass-cache 30 | /connect.lock 31 | /coverage 32 | /libpeerconnection.log 33 | npm-debug.log 34 | yarn-error.log 35 | testem.log 36 | /typings 37 | 38 | # System Files 39 | .DS_Store 40 | Thumbs.db 41 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | The Mycroft Server was initially developed by Mycroft AI Inc 2 | 3 | It lives on as an open source project with many contributors, a self-updating 4 | list is at: https://github.com/mycroftai/selene-ui/graphs/contributors -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # Multistage Dockerfile to build the marketplace UI and a web server to run it 2 | 3 | # STAGE ONE: build the marketplace angular application 4 | FROM node:latest as build 5 | WORKDIR /usr/src/app 6 | COPY package*.json ./ 7 | RUN npm install 8 | COPY . . 9 | ARG selene_env 10 | ARG application_name 11 | RUN npm run build -- --project=globalnav 12 | RUN npm run build-${selene_env} -- --project=${application_name} 13 | 14 | # STAGE TWO: build the web server and copy the compiled angular app to it. 15 | FROM nginx:latest 16 | COPY --from=build /usr/src/app/dist/${application_name} /usr/share/nginx/html 17 | -------------------------------------------------------------------------------- /e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { AppPage } from './app.po'; 20 | 21 | describe('workspace-project App', () => { 22 | let page: AppPage; 23 | 24 | beforeEach(() => { 25 | page = new AppPage(); 26 | }); 27 | 28 | it('should display welcome message', () => { 29 | page.navigateTo(); 30 | expect(page.getParagraphText()).toEqual('Welcome to internet!'); 31 | }); 32 | }); 33 | -------------------------------------------------------------------------------- /e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { browser, by, element } from 'protractor'; 20 | 21 | export class AppPage { 22 | navigateTo() { 23 | return browser.get('/'); 24 | } 25 | 26 | getParagraphText() { 27 | return element(by.css('app-root h1')).getText(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /e2e/tsconfig.e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/app", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } -------------------------------------------------------------------------------- /projects/account/.browserslistrc: -------------------------------------------------------------------------------- 1 | # This file is currently used by autoprefixer to adjust CSS to support the below specified browsers 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | # 5 | # For IE 9-11 support, please remove 'not' from the last line of the file and adjust as needed 6 | 7 | > 0.5% 8 | last 2 versions 9 | Firefox ESR 10 | not dead 11 | not IE 9-11 -------------------------------------------------------------------------------- /projects/account/karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration file, see link for more information 2 | // https://karma-runner.github.io/1.0/config/configuration-file.html 3 | 4 | module.exports = function (config) { 5 | config.set({ 6 | basePath: '', 7 | frameworks: ['jasmine', '@angular-devkit/build-angular'], 8 | plugins: [ 9 | require('karma-jasmine'), 10 | require('karma-chrome-launcher'), 11 | require('karma-jasmine-html-reporter'), 12 | require('karma-coverage-istanbul-reporter'), 13 | require('@angular-devkit/build-angular/plugins/karma') 14 | ], 15 | client: { 16 | clearContext: false // leave Jasmine Spec Runner output visible in browser 17 | }, 18 | coverageIstanbulReporter: { 19 | dir: require('path').join(__dirname, '../../coverage'), 20 | reports: ['html', 'lcovonly'], 21 | fixWebpackSourcePaths: true 22 | }, 23 | reporters: ['progress', 'kjhtml'], 24 | port: 9876, 25 | colors: true, 26 | logLevel: config.LOG_INFO, 27 | autoWatch: true, 28 | browsers: ['Chrome'], 29 | singleRun: false 30 | }); 31 | }; -------------------------------------------------------------------------------- /projects/account/proxy.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "/api/*": { 3 | "target": "http://localhost:5003", 4 | "secure": false, 5 | "logLevel": "debug", 6 | "changeOrigin": true 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /projects/account/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
5 |
6 | -------------------------------------------------------------------------------- /projects/account/src/app/app.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/account/src/app/app.component.scss -------------------------------------------------------------------------------- /projects/account/src/app/modules/dashboard/components/dashboard-device/dashboard-device.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Add Mycroft Device 5 | 6 | 7 |

8 | You just got a new Mycroft device. Congratulations! Pairing your device with 9 | Mycroft's servers provides you with instant access to software updates, speech 10 | transcription, weather, answers to general queries, and other services. 11 |

12 |
13 | 14 | ADD DEVICE 15 | 16 |
17 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/dashboard/components/dashboard-device/dashboard-device.component.scss: -------------------------------------------------------------------------------- 1 | @use "components/cards" as cards; 2 | 3 | mat-card { 4 | @include cards.selene-card; 5 | } 6 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/dashboard/components/dashboard-marketplace/dashboard-marketplace.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Install New Skills 5 | 6 | 7 |

8 | Mycroft devices include pre-installed essential Skills like Timers, Alarms and News. 9 | There are many other Skills available built by the Mycroft team or our developer 10 | community. Skills can be fun (ISS Tracker), informational (National Parks), or 11 | useful (Home Assistant). 12 |

13 | Visit the Marketplace for a list of Mycroft-approved Skills. To install, 14 | say "Hey Mycroft, install" followed by the Skill name. 15 |

16 |
17 | 18 | SKILL MARKETPLACE 19 | 20 |
21 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/dashboard/components/dashboard-marketplace/dashboard-marketplace.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | @use "components/cards" as cards; 20 | 21 | mat-card { 22 | @include cards.selene-card; 23 | } 24 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/dashboard/components/dashboard-membership/dashboard-membership.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | @use "components/cards" as cards; 20 | 21 | mat-card { 22 | @include cards.selene-card; 23 | } 24 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/dashboard/components/dashboard-privacy/dashboard-privacy.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Your Privacy is Our Policy 5 | 6 | 7 |

8 | Mycroft only collects the personally identifiable information (PII) necessary to deliver 9 | a quality user experience when interacting with the voice assistant. Any PII we collect 10 | is stored securely on our servers. It is not shared with anyone. 11 | 12 |

13 | We continually investigate solutions to further minimize the PII we collect. We 14 | also strive to be transparent about the data we do collect and why it is collected. 15 | To learn more about the go to My Data. 16 |

17 |
18 | 19 | MY DATA 20 | 21 |
22 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/dashboard/components/dashboard-privacy/dashboard-privacy.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | @use "components/cards" as cards; 19 | 20 | mat-card { 21 | @include cards.selene-card; 22 | max-width: 800px; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/dashboard/components/dashboard-skill/dashboard-skill.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Configure Skills 5 | 6 | 7 |

8 | Some Skills include settings that can change how the Skill behaves. To change the 9 | settings of your Skills, for instance the sound of your alarm, go to Skill Settings. 10 | 11 |

12 |
13 | 14 | SKILL SETTINGS 15 | 16 |
17 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/dashboard/components/dashboard-skill/dashboard-skill.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | @use "components/cards" as cards; 19 | 20 | mat-card { 21 | @include cards.selene-card; 22 | } 23 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/dashboard/dashboard.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | 6 | 7 |
8 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/dashboard/dashboard.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | #dashboard { 20 | max-width: 1200px; 21 | margin-left: auto; 22 | margin-right: auto; 23 | margin-top: 32px; 24 | } 25 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/card/add-complete/add-complete.component.html: -------------------------------------------------------------------------------- 1 | 2 | Your device is ready! 3 | 4 |

Here are some example questions and commands:

5 |

{{wakeWord}}...

6 |

Who is Abraham Lincoln?

7 |

What is the latest news?

8 |

Set a timer for ten minutes.

9 |

Set an alarm for eight o'clock tomorrow morning.

10 |
11 |
12 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/card/defaults-card/defaults-card.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Setup Device Defaults 4 | Manage Device Defaults 5 | 6 | 7 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/card/defaults-card/defaults-card.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | @use "@angular/material" as mat; 20 | @use "components/cards" as cards; 21 | @use "mycroft-theme" as theme; 22 | 23 | mat-card { 24 | @include cards.section-card; 25 | margin-top: 32px; 26 | max-width: 700px; 27 | 28 | mat-card-title { 29 | color: mat.get-color-from-palette(theme.$mycroft-primary, 500) 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/card/geography-card/geography-card.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | .mat-h3 { 20 | font-weight: bold; 21 | } 22 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/card/preferences-card/preferences-card.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Setup Device Preferences 4 | Manage Device Preferences 5 | 6 | 7 |

8 | Preferences are applied to all your devices to present information 9 | in a manner you are accustomed to. 10 |

11 | 15 | 16 | 20 | 21 | 25 | 26 |
27 | 28 | 29 | 30 |
31 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/card/software-release-card/software-release-card.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Software Release

4 |

5 | The software release running on this device is no longer supported. Select one of 6 | the options below to update your device to a supported release. 7 |

8 | 12 | 13 |
14 |
15 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/card/software-release-card/software-release-card.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | .mat-h3 { 20 | font-weight: bold; 21 | } 22 | 23 | .mat-body { 24 | margin-left: 16px; 25 | } 26 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/card/software-update-card/software-update-card.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Automatic Updates

4 | 10 | Enable automatic install of software updates when available 11 | 12 |
13 |
14 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/card/software-update-card/software-update-card.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | .mat-h3 { 20 | font-weight: bold; 21 | } 22 | 23 | mat-slide-toggle { 24 | padding-left: 32px; 25 | } 26 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/card/ssh-card/ssh-card.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | a { 20 | margin-left: 16px; 21 | } 22 | .mat-h3 { 23 | font-weight: bold; 24 | } 25 | 26 | .mat-body { 27 | margin-left: 16px; 28 | } 29 | 30 | mat-form-field { 31 | margin-top: 16px; 32 | margin-left: 32px; 33 | width: 90%; 34 | textarea { 35 | height: 150px; 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/card/voice-card/voice-card.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Voice

4 | 5 | 6 |
7 |
8 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/card/voice-card/voice-card.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/account/src/app/modules/device/components/card/voice-card/voice-card.component.scss -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/card/wake-word-card/wake-word-card.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Wake Word

4 | 8 | 9 |
10 |
11 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/card/wake-word-card/wake-word-card.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/account/src/app/modules/device/components/card/wake-word-card/wake-word-card.component.scss -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/input/city-input/city-input.component.html: -------------------------------------------------------------------------------- 1 | 2 | City 3 | 10 | 11 | 12 | {{city.name}} 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/input/city-input/city-input.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | mat-form-field { 20 | margin-left: 16px; 21 | } 22 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/input/country-input/country-input.component.html: -------------------------------------------------------------------------------- 1 | 2 | Country 3 | 10 | 11 | 12 | {{country.name}} 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/input/country-input/country-input.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | mat-form-field { 20 | margin-left: 16px; 21 | } 22 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/input/region-input/region-input.component.html: -------------------------------------------------------------------------------- 1 | 2 | Region 3 | 10 | 11 | 12 | {{region.name}} 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/input/region-input/region-input.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | mat-form-field { 20 | margin-left: 16px; 21 | } 22 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/input/timezone-input/timezone-input.component.html: -------------------------------------------------------------------------------- 1 | 2 | Time Zone 3 | 10 | 11 | 12 | {{timezone.name}} 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/input/timezone-input/timezone-input.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | mat-form-field { 20 | margin-left: 16px; 21 | } 22 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/modal/remove-device-dialog/remove-device-dialog.component.html: -------------------------------------------------------------------------------- 1 | 2 | Remove Device? 3 | 4 | 5 |

6 | Just double checking. Device removal cannot be undone. 7 |

8 |
9 | 10 | 11 | 12 | 13 | 14 |
15 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/components/modal/remove-device-dialog/remove-device-dialog.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | @use 'components/buttons' as buttons; 20 | 21 | mat-card { 22 | padding: 0; 23 | 24 | mat-card-actions { 25 | margin-top: 16px; 26 | } 27 | } 28 | .mat-body{ 29 | margin-bottom: 16px; 30 | width: 250px; 31 | } 32 | 33 | #device-remove-button { 34 | @include buttons.action-button-warn; 35 | } 36 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/device.component.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/device.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | nav { 20 | margin-bottom: 32px; 21 | } 22 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/device.component.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { Component, OnInit } from '@angular/core'; 20 | 21 | @Component({ 22 | selector: 'account-device', 23 | templateUrl: './device.component.html', 24 | styleUrls: ['./device.component.scss'] 25 | }) 26 | export class DeviceComponent implements OnInit { 27 | 28 | constructor() { 29 | } 30 | 31 | ngOnInit() { 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/pages/defaults/defaults.component.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/pages/defaults/defaults.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/account/src/app/modules/device/pages/defaults/defaults.component.scss -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/pages/device-edit/device-edit.component.html: -------------------------------------------------------------------------------- 1 |
2 | 9 | 10 |
11 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/pages/device-edit/device-edit.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | @use "@angular/material" as mat; 20 | @use "components/buttons" as buttons; 21 | @use "components/cards" as cards; 22 | @use "mycroft-theme" as theme; 23 | 24 | #edit-device { 25 | margin-top: 32px; 26 | margin-bottom: 32px; 27 | } 28 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/pages/preferences/preferences.component.html: -------------------------------------------------------------------------------- 1 | 2 | Manage your device preferences 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/device/pages/preferences/preferences.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | @use "@angular/material" as mat; 20 | @use "components/buttons" as buttons; 21 | @use "mycroft-theme" as theme; 22 | 23 | mat-card-title { 24 | color: mat.get-color-from-palette(theme.$mycroft-primary, 500) 25 | } 26 | 27 | button { 28 | @include buttons.action-button-primary; 29 | margin: 16px; 30 | } 31 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/components/cards/agreements/agreements.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Agreements 5 | 6 | 7 |
8 | 9 |
10 | 11 | {{agreement.type}} 12 | 13 | 14 | 15 | 16 |

Accepted {{agreement.acceptDate}}

17 |
18 |
19 |
20 |
21 |
22 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/components/cards/agreements/agreements.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | @use "components/cards"; 20 | 21 | mat-card { 22 | @include cards.selene-card; 23 | margin-left: auto; 24 | margin-right: auto; 25 | max-width: 800px; 26 | 27 | mat-card-subtitle { 28 | margin-bottom: 0; 29 | } 30 | .mat-body { 31 | margin-top: 4px; 32 | margin-bottom: 16px; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/components/cards/delete/delete.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Delete Account 5 | 6 | 7 |

CAUTION

8 |
9 |
{{paragraph}}
10 |
11 |
12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/components/cards/login/login.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Login Information 5 | 6 | 7 |
8 |
9 | Email Address* 10 |

{{account.emailAddress}}

11 |
12 |
13 | Username 14 |

{{account.username}}

15 |
16 |
17 |

18 | * Your email address uniquely identifies your account. It will be used to send 19 | messages related to actions taken on your account, such as a password change request. 20 |

21 |
22 | 23 | 24 | 25 | 26 |
27 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/components/modals/delete-confirm/delete-confirm.component.html: -------------------------------------------------------------------------------- 1 | 2 |

Are you sure?

3 |

4 | You know how this goes. You click a button, we make sure you meant to do it. 5 | Deleting your account is nasty business with no "undo" button. 6 |

7 |

8 | We'd hate to lose you so we hope you are seeing this as a result of an unintended mouse 9 | click (those buttons can be touchy!). If so, click the "cancel" button below to continue 10 | enjoying your Mycroft experience. 11 |

12 |

13 | If you really do want to delete your account, that's a bummer. We hope to see you back some 14 | time. Click the "confirm" button below and all data related to your account will 15 | be sent to the great bit bucket in the sky. 16 |

17 |
18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/components/modals/delete-confirm/delete-confirm.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | @use "@angular/material" as mat; 20 | @use "components/buttons" as buttons; 21 | @use "mycroft-theme" as theme; 22 | 23 | .mat-h2 { 24 | color: mat.get-color-from-palette(theme.$mycroft-warn, 400); 25 | } 26 | 27 | #confirm-button { 28 | @include buttons.action-button-warn; 29 | } 30 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/components/modals/membership-cancel-confirm/membership-cancel-confirm.component.html: -------------------------------------------------------------------------------- 1 |

Are you sure?

2 | 3 |

4 | You know how this goes. You click a red button, we make sure you meant to do it. 5 |

6 |

7 | Your membership supports continued development of an open, privacy focused voice assistant. 8 | We hope you are seeing this as a result of an unintended mouse click (those buttons can be 9 | touchy!). If so, click the "cancel" button below. 10 |

11 |

12 | If you really do want to cancel your membership, that's a bummer. You can re-activate your 13 | membership at any time. Click the "confirm" button below and we will cancel your 14 | subscription immediately. 15 |

16 |
17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/components/modals/membership-cancel-confirm/membership-cancel-confirm.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | @use "@angular/material" as mat; 20 | @use "components/buttons" as buttons; 21 | @use "mycroft-theme" as theme; 22 | 23 | h1 { 24 | color: mat.get-color-from-palette(theme.$mycroft-warn, 400); 25 | } 26 | 27 | #confirm-button { 28 | @include buttons.action-button-warn; 29 | } 30 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/components/modals/membership-cancel-confirm/membership-cancel-confirm.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { MatDialogRef } from '@angular/material/dialog'; 3 | 4 | @Component({ 5 | selector: 'account-membership-cancel-confirm', 6 | templateUrl: './membership-cancel-confirm.component.html', 7 | styleUrls: ['./membership-cancel-confirm.component.scss'] 8 | }) 9 | export class MembershipCancelConfirmComponent implements OnInit { 10 | 11 | constructor( 12 | public confirmDialogRef: MatDialogRef, 13 | ) { 14 | } 15 | 16 | ngOnInit() { 17 | } 18 | 19 | onCancel(): void { 20 | this.confirmDialogRef.close(false); 21 | } 22 | 23 | onConfirm(): void { 24 | this.confirmDialogRef.close(true); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/components/views/change-password/change-password.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Enter your new password 4 | 5 | 6 | 7 | New Password 8 | 9 | 10 | Password is required 11 | 12 | 13 | 16 | 17 | 18 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/components/views/membership-step/membership-step.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Become a Member 4 | 5 |

6 | {{paragraph}} 7 |

8 | 15 |
16 |
17 | 18 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/components/views/payment/payment.component.html: -------------------------------------------------------------------------------- 1 |

Thank you for supporting Mycroft!

2 | 3 |

4 | Your membership directly helps to improve Mycroft's technology and user experience. 5 |

6 |

7 | Please enter your payment information below. Your credit card information is 8 | sent to the payment service and not stored on Mycroft's servers. 9 |

10 |
11 | 12 |
13 |
14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/components/views/payment/verify-card-dialog.component.html: -------------------------------------------------------------------------------- 1 |
2 | Verifying card 3 | 4 |
5 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/components/views/payment/verify-card-dialog.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | .mat-subheading-2 { 20 | margin: 0; 21 | } 22 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/components/views/payment/verify-card-dialog.component.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { Component } from '@angular/core'; 20 | 21 | 22 | @Component({ 23 | selector: 'account-verify-card-dialog', 24 | templateUrl: './verify-card-dialog.component.html', 25 | styleUrls: ['./verify-card-dialog.component.scss'] 26 | }) 27 | export class VerifyCardDialogComponent { 28 | constructor() {} 29 | } 30 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/components/views/username-step/username-step.component.html: -------------------------------------------------------------------------------- 1 | 2 | What should we call you? 3 | 4 |

{{whyUsernameParagraph}}

5 | 6 | Username 7 | 8 | 9 | Username is required 10 | 11 | 12 |
13 |
14 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/pages/edit/edit.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 9 | 10 | 11 | 12 |
13 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/pages/edit/edit.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | #profile { 20 | max-width: 1200px; 21 | margin-left: auto; 22 | margin-right: auto; 23 | } 24 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/pages/new/new.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | @use "@angular/material" as mat; 20 | @use "components/buttons" as buttons; 21 | @use "mycroft-theme" as theme; 22 | 23 | .mat-button { 24 | @include buttons.action-button-primary; 25 | } 26 | 27 | mat-horizontal-stepper { 28 | margin-left: auto; 29 | margin-right: auto; 30 | margin-top: 32px; 31 | max-width: 1200px; 32 | } 33 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/pages/verify-email/verify-email.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Email address verification 5 | 6 | 7 |

{{verificationMessage}}

8 |
9 | 10 | 18 | 26 | 27 |
28 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/profile/pages/verify-email/verify-email.component.scss: -------------------------------------------------------------------------------- 1 | @use 'components/cards' as cards; 2 | 3 | mat-card { 4 | @include cards.selene-card; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/skill/setting-field/setting-field.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | @use "components/buttons" as buttons; 20 | 21 | mat-checkbox { 22 | margin-top: 8px 23 | } 24 | 25 | mat-form-field { 26 | margin-top: 8px; 27 | } 28 | 29 | button { 30 | @include buttons.action-button-primary 31 | } 32 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/skill/setting-section/setting-section.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

{{sectionDefinition.name}}

4 |
5 | 11 | 12 |
13 |
14 |
15 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/skill/setting-section/setting-section.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | @use "@angular/material" as mat; 20 | @use "mycroft-theme" as theme; 21 | 22 | .mat-h2 { 23 | color: mat.get-color-from-palette(theme.$mycroft-primary, 500); 24 | font-weight: bold; 25 | } 26 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/skill/skill-panel/skill-panel.component.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | {{skill.name}} 9 | 10 | 11 | 12 | 13 | 20 | SKILL DETAILS 21 | 22 | 23 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /projects/account/src/app/modules/skill/skill.component.html: -------------------------------------------------------------------------------- 1 | 2 |

Configure Your Skills

3 |

{{helpText}}

4 |

5 | {{moreSkillsText}} 6 | {{marketplaceLink}} 7 |

8 | 12 | 13 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/components/display-field/display-field.component.html: -------------------------------------------------------------------------------- 1 | 2 | {{label}} 3 | 4 | 5 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/components/display-field/display-field.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | @use "@angular/material" as mat; 20 | @use 'mycroft-theme' as theme; 21 | 22 | mat-label { 23 | color: mat.get-color-from-palette(theme.$mycroft-primary, 500); 24 | } 25 | mat-form-field { 26 | width: 160px; 27 | } 28 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/components/option-btn/option-btn.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | {{config.label}} 4 | 5 | 10 | 11 | 12 | {{option}} 13 | 14 | 15 | 16 |
17 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/components/option-btn/option-btn.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | @use "components/buttons" as buttons; 20 | 21 | .mat-subheading-2 { 22 | margin-bottom: 8px; 23 | margin-top: 16px; 24 | } 25 | 26 | mat-button-toggle-group { 27 | @include buttons.options-button-group; 28 | } 29 | 30 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/components/option-buttons/option-buttons.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | {{config.label}} 4 | 5 | 10 | 11 | 12 | {{option}} 13 | 14 | 15 | 16 |
17 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/components/option-buttons/option-buttons.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | @use "components/buttons" as buttons; 19 | 20 | .mat-subheading-2 { 21 | margin-bottom: 8px; 22 | margin-top: 16px; 23 | } 24 | 25 | mat-button-toggle-group { 26 | @include buttons.options-button-group; 27 | } 28 | 29 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/account-agreement.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface AccountAgreement { 20 | type: string; 21 | acceptDate: string; 22 | } 23 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/account-membership.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface AccountMembership { 20 | type: string; 21 | duration?: string; 22 | paymentAccountId?: string; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/account.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { AccountAgreement } from '@account/models/account-agreement.model'; 20 | import { AccountMembership } from '@account/models/account-membership.model'; 21 | 22 | export interface Account { 23 | id: string; 24 | emailAddress: string; 25 | username: string; 26 | membership: AccountMembership; 27 | agreements: AccountAgreement[]; 28 | } 29 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/agreement.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface Agreement { 20 | type: string; 21 | version: string; 22 | content: string; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/city.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface City { 20 | id: string; 21 | latitude: string; 22 | longitude: string; 23 | name: string; 24 | timezone: string; 25 | } 26 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/country.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface Country { 20 | id: string; 21 | isoCode: string; 22 | name: string; 23 | } 24 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/deviceAttribute.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface DeviceAttribute { 20 | id?: string; 21 | name: string; 22 | userDefined: boolean; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/membership-update.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface MembershipUpdate { 20 | action: string; 21 | membershipType?: string; 22 | paymentMethod?: string; 23 | paymentToken?: string; 24 | } 25 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/membership.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface MembershipType { 20 | type: string; 21 | rate: string; 22 | ratePeriod: string; 23 | stripePlan: string; 24 | } 25 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/option-buttons-config.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface OptionButtonsConfig { 20 | options: string[]; 21 | buttonWidth: string; 22 | label?: string; 23 | labelWidth?: string; 24 | } 25 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/pantacor-config.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface PantacorConfig { 20 | autoUpdate: boolean; 21 | ipAddress: string; 22 | pantacorId: string; 23 | deploymentId: string; 24 | sshPublicKey: string; 25 | releaseChannel: string; 26 | } 27 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/preferences.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface AccountPreferences { 20 | id: string; 21 | dateFormat: string; 22 | measurementSystem: string; 23 | timeFormat: string; 24 | } 25 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/region.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface Region { 20 | id: string; 21 | region_code: string; 22 | name: string; 23 | } 24 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/setting-change.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface SettingChange { 20 | name: string; 21 | value: string | boolean | number; 22 | } 23 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/setting-field.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface SelectOptions { 20 | display: string; 21 | value: string; 22 | } 23 | 24 | export interface SettingField { 25 | name: string; 26 | type: string; 27 | label: string; 28 | options?: SelectOptions[]; 29 | value?: string | boolean | number; 30 | } 31 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/setting-section.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { SettingField } from '@account/models/setting-field.model'; 20 | 21 | export interface SettingSection { 22 | name: string; 23 | fields: SettingField[]; 24 | } 25 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/settings-display.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import {SettingSection } from '@account/models/setting-section.model'; 20 | 21 | export interface SettingsDisplay { 22 | sections: SettingSection[]; 23 | } 24 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/skill-settings.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { SettingsDisplay } from '@account/models/settings-display.model'; 20 | 21 | export interface SkillSettings { 22 | settingsDisplay: SettingsDisplay; 23 | settingsValues: any; 24 | deviceNames: string[]; 25 | } 26 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/skill_family.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface SkillFamily { 20 | familyName: string; 21 | name: string; 22 | hasSettings: boolean; 23 | marketId: string; 24 | skillIds: string[]; 25 | } 26 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/timezone.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface Timezone { 20 | id: string; 21 | name: string; 22 | gmtOffset: string; 23 | dstOffset: string; 24 | } 25 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/voice.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface Voice { 20 | id: string; 21 | displayName: string; 22 | settingName: string; 23 | } 24 | -------------------------------------------------------------------------------- /projects/account/src/app/shared/models/wake-word.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface WakeWord { 20 | id: string; 21 | engine: string; 22 | name: string; 23 | } 24 | -------------------------------------------------------------------------------- /projects/account/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/account/src/assets/.gitkeep -------------------------------------------------------------------------------- /projects/account/src/assets/facebook_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/account/src/assets/facebook_logo.png -------------------------------------------------------------------------------- /projects/account/src/assets/generic-device-icon-blue.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /projects/account/src/assets/generic-device-icon-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /projects/account/src/assets/google-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/account/src/assets/google-logo.png -------------------------------------------------------------------------------- /projects/account/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/account/src/favicon.ico -------------------------------------------------------------------------------- /projects/account/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Account 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /projects/account/src/main.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { enableProdMode } from '@angular/core'; 20 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 21 | 22 | import { AppModule } from './app/app.module'; 23 | import { environment } from './environments/environment'; 24 | 25 | if (environment.production) { 26 | enableProdMode(); 27 | } 28 | 29 | platformBrowserDynamic().bootstrapModule(AppModule) 30 | .catch(err => console.error(err)); 31 | -------------------------------------------------------------------------------- /projects/account/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /projects/account/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "projects/account/src/**/*.d.ts" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /projects/account/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "**/*.spec.ts", 16 | "**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /projects/account/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tslint.json", 3 | "rules": { 4 | "directive-selector": [ 5 | true, 6 | "attribute", 7 | "account", 8 | "camelCase" 9 | ], 10 | "component-selector": [ 11 | true, 12 | "element", 13 | "account", 14 | "kebab-case" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /projects/globalnav/karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration file, see link for more information 2 | // https://karma-runner.github.io/1.0/config/configuration-file.html 3 | 4 | module.exports = function (config) { 5 | config.set({ 6 | basePath: '', 7 | frameworks: ['jasmine', '@angular-devkit/build-angular'], 8 | plugins: [ 9 | require('karma-jasmine'), 10 | require('karma-chrome-launcher'), 11 | require('karma-jasmine-html-reporter'), 12 | require('karma-coverage-istanbul-reporter'), 13 | require('@angular-devkit/build-angular/plugins/karma') 14 | ], 15 | client: { 16 | clearContext: false // leave Jasmine Spec Runner output visible in browser 17 | }, 18 | coverageIstanbulReporter: { 19 | dir: require('path').join(__dirname, '../../coverage'), 20 | reports: ['html', 'lcovonly'], 21 | fixWebpackSourcePaths: true 22 | }, 23 | reporters: ['progress', 'kjhtml'], 24 | port: 9876, 25 | colors: true, 26 | logLevel: config.LOG_INFO, 27 | autoWatch: true, 28 | browsers: ['Chrome'], 29 | singleRun: false 30 | }); 31 | }; 32 | -------------------------------------------------------------------------------- /projects/globalnav/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", 3 | "dest": "../../dist/globalnav", 4 | "lib": { 5 | "entryFile": "src/public_api.ts", 6 | "cssUrl": "inline" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /projects/globalnav/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "globalnav", 3 | "version": "0.0.1", 4 | "dependencies": { 5 | "tslib": "^2.0.0" 6 | }, 7 | "peerDependencies": { 8 | "@angular/common": "^14.1.0", 9 | "@angular/core": "^14.1.0", 10 | "@angular/flex-layout": "^14.0.0-beta.40" 11 | 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /projects/globalnav/src/lib/account-menu/account-menu.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | .account-button { 20 | color: #fee255; 21 | font-size: 20px; 22 | margin-right: -16px; 23 | } 24 | 25 | .menu-item-icon { 26 | color: #22a7f0; 27 | margin-right: 8px; 28 | } 29 | 30 | .menu-item-text { 31 | color: #2c3e50; 32 | } 33 | 34 | .menu-divider { 35 | margin-left: auto; 36 | margin-right: auto; 37 | width: 80%; 38 | } 39 | -------------------------------------------------------------------------------- /projects/globalnav/src/lib/footer/footer.component.html: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /projects/globalnav/src/lib/nav-item/nav-item.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{item.text}} 4 | 5 | 6 | -------------------------------------------------------------------------------- /projects/globalnav/src/lib/nav-item/nav-item.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | .mat-list-item { 20 | height: 30px; 21 | } 22 | 23 | .mat-body-1 { 24 | color: #6c7a89; 25 | margin-left: 30px; 26 | } 27 | 28 | -------------------------------------------------------------------------------- /projects/globalnav/src/lib/primary-nav-item/primary-nav-item.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | 8 | {{primaryNavItem.text}} 9 |
10 |
11 | 16 | 17 | 22 | 23 |
24 |
25 |
26 |
27 | 31 | 32 |
33 | -------------------------------------------------------------------------------- /projects/globalnav/src/lib/primary-nav-item/primary-nav-item.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | .nav-item { 20 | color: #2c3e50; 21 | height: 40px; 22 | } 23 | .nav-item:hover { 24 | background-color: #e4f1fe; 25 | } 26 | 27 | .nav-item-icon { 28 | margin-right: 10px; 29 | text-align: center; 30 | width: 20px; 31 | fa-icon { 32 | color: #22a7f0 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /projects/globalnav/src/public_api.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | /* 20 | * Public API Surface of globalnav 21 | */ 22 | 23 | export * from './lib/globalnav.service'; 24 | export * from './lib/globalnav.component'; 25 | export * from './lib/globalnav.module'; 26 | -------------------------------------------------------------------------------- /projects/globalnav/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../out-tsc/lib", 5 | "declarationMap": true, 6 | "target": "es2020", 7 | "module": "es2015", 8 | "moduleResolution": "node", 9 | "declaration": true, 10 | "sourceMap": true, 11 | "inlineSources": true, 12 | "experimentalDecorators": true, 13 | "importHelpers": true, 14 | "types": [], 15 | "lib": [ 16 | "dom", 17 | "es2018" 18 | ] 19 | }, 20 | "angularCompilerOptions": { 21 | "skipTemplateCodegen": true, 22 | "strictMetadataEmit": true, 23 | "fullTemplateTypeCheck": true, 24 | "strictInjectionParameters": true, 25 | "enableResourceInlining": true 26 | }, 27 | "exclude": [ 28 | "src/test.ts", 29 | "**/*.spec.ts" 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /projects/globalnav/tsconfig.lib.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.lib.json", 3 | "compilerOptions": { 4 | "declarationMap": false 5 | }, 6 | "angularCompilerOptions": { 7 | "compilationMode": "partial" 8 | } 9 | } -------------------------------------------------------------------------------- /projects/globalnav/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts" 12 | ], 13 | "include": [ 14 | "**/*.spec.ts", 15 | "**/*.d.ts" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /projects/globalnav/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tslint.json", 3 | "rules": { 4 | "directive-selector": [ 5 | true, 6 | "attribute", 7 | "globalnav", 8 | "camelCase" 9 | ], 10 | "component-selector": [ 11 | true, 12 | "element", 13 | "globalnav", 14 | "kebab-case" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /projects/market-e2e/protractor.conf.js: -------------------------------------------------------------------------------- 1 | // Protractor configuration file, see link for more information 2 | // https://github.com/angular/protractor/blob/master/lib/config.ts 3 | 4 | const { SpecReporter } = require('jasmine-spec-reporter'); 5 | 6 | exports.config = { 7 | allScriptsTimeout: 11000, 8 | specs: [ 9 | './src/**/*.e2e-spec.ts' 10 | ], 11 | capabilities: { 12 | 'browserName': 'chrome' 13 | }, 14 | directConnect: true, 15 | baseUrl: 'http://localhost:4200/', 16 | framework: 'jasmine', 17 | jasmineNodeOpts: { 18 | showColors: true, 19 | defaultTimeoutInterval: 30000, 20 | print: function() {} 21 | }, 22 | onPrepare() { 23 | require('ts-node').register({ 24 | project: require('path').join(__dirname, './tsconfig.e2e.json') 25 | }); 26 | jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); 27 | } 28 | }; -------------------------------------------------------------------------------- /projects/market-e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { AppPage } from './app.po'; 20 | 21 | describe('workspace-project App', () => { 22 | let page: AppPage; 23 | 24 | beforeEach(() => { 25 | page = new AppPage(); 26 | }); 27 | 28 | it('should display welcome message', () => { 29 | page.navigateTo(); 30 | expect(page.getParagraphText()).toEqual('Welcome to market!'); 31 | }); 32 | }); 33 | -------------------------------------------------------------------------------- /projects/market-e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { browser, by, element } from 'protractor'; 20 | 21 | export class AppPage { 22 | navigateTo() { 23 | return browser.get('/'); 24 | } 25 | 26 | getParagraphText() { 27 | return element(by.css('market-root h1')).getText(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /projects/market-e2e/tsconfig.e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../out-tsc/app", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } -------------------------------------------------------------------------------- /projects/market/.browserslistrc: -------------------------------------------------------------------------------- 1 | # This file is currently used by autoprefixer to adjust CSS to support the below specified browsers 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | # 5 | # For IE 9-11 support, please remove 'not' from the last line of the file and adjust as needed 6 | 7 | > 0.5% 8 | last 2 versions 9 | Firefox ESR 10 | not dead 11 | not IE 9-11 -------------------------------------------------------------------------------- /projects/market/karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration file, see link for more information 2 | // https://karma-runner.github.io/1.0/config/configuration-file.html 3 | 4 | module.exports = function (config) { 5 | config.set({ 6 | basePath: '', 7 | frameworks: ['jasmine', '@angular-devkit/build-angular'], 8 | plugins: [ 9 | require('karma-jasmine'), 10 | require('karma-chrome-launcher'), 11 | require('karma-jasmine-html-reporter'), 12 | require('karma-coverage-istanbul-reporter'), 13 | require('@angular-devkit/build-angular/plugins/karma') 14 | ], 15 | client: { 16 | clearContext: false // leave Jasmine Spec Runner output visible in browser 17 | }, 18 | coverageIstanbulReporter: { 19 | dir: require('path').join(__dirname, '../../coverage'), 20 | reports: ['html', 'lcovonly'], 21 | fixWebpackSourcePaths: true 22 | }, 23 | reporters: ['progress', 'kjhtml'], 24 | port: 9876, 25 | colors: true, 26 | logLevel: config.LOG_INFO, 27 | autoWatch: true, 28 | browsers: ['Chrome'], 29 | singleRun: false 30 | }); 31 | }; -------------------------------------------------------------------------------- /projects/market/proxy.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "/api/*": { 3 | "target": "http://localhost:5002", 4 | "secure": false, 5 | "logLevel": "debug", 6 | "changeOrigin": true 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /projects/market/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | 6 |
7 | 8 |
9 |
10 | -------------------------------------------------------------------------------- /projects/market/src/app/app.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | img { 20 | height: 20px; 21 | margin-top: -7px; 22 | } 23 | -------------------------------------------------------------------------------- /projects/market/src/app/skills/skill-detail/skill-detail.component.html: -------------------------------------------------------------------------------- 1 | 7 |
8 | 9 | 10 |
11 | -------------------------------------------------------------------------------- /projects/market/src/app/skills/skill-summary/skill-card/skill-card-header.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 6 |
7 | 12 |
13 | 14 | 15 |
16 | 21 | 22 | 23 |
24 | 25 | 26 |
27 | 32 | 33 |
34 |
35 | -------------------------------------------------------------------------------- /projects/market/src/app/skills/skill-summary/skill-card/skill-card.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | {{skill.displayName ? skill.displayName : ' '}} 8 | 9 | 10 |
11 | 12 | {{skill.trigger}} 13 |
14 |
15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 |
24 | -------------------------------------------------------------------------------- /projects/market/src/app/skills/skill-summary/skill-search/skill-search.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | 6 | 9 | 10 |
11 |
12 | 13 | 14 |
15 | 19 |
20 | -------------------------------------------------------------------------------- /projects/market/src/app/skills/skill-summary/skill-summary.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | {{category}} 4 |
5 | 6 | 7 | 8 |
9 |
10 | -------------------------------------------------------------------------------- /projects/market/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/market/src/assets/.gitkeep -------------------------------------------------------------------------------- /projects/market/src/assets/header-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/market/src/assets/header-logo.png -------------------------------------------------------------------------------- /projects/market/src/assets/logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/market/src/assets/logo.ico -------------------------------------------------------------------------------- /projects/market/src/assets/mycroft-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /projects/market/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/market/src/favicon.ico -------------------------------------------------------------------------------- /projects/market/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Mycroft Marketplace 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /projects/market/src/main.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { enableProdMode } from '@angular/core'; 20 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 21 | 22 | import { AppModule } from './app/app.module'; 23 | import { environment } from './environments/environment'; 24 | 25 | if (environment.production) { 26 | enableProdMode(); 27 | } 28 | 29 | platformBrowserDynamic().bootstrapModule(AppModule) 30 | .catch(err => console.error(err)); 31 | -------------------------------------------------------------------------------- /projects/market/src/styles.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/market/src/styles.scss -------------------------------------------------------------------------------- /projects/market/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "projects/market/src/**/*.d.ts" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /projects/market/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "**/*.spec.ts", 16 | "**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /projects/market/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tslint.json", 3 | "rules": { 4 | "directive-selector": [ 5 | true, 6 | "attribute", 7 | "market", 8 | "camelCase" 9 | ], 10 | "component-selector": [ 11 | true, 12 | "element", 13 | "market", 14 | "kebab-case" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /projects/precise/.browserslistrc: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # For the full list of supported browsers by the Angular framework, please see: 6 | # https://angular.io/guide/browser-support 7 | 8 | # You can see what browsers were selected by your queries by running: 9 | # npx browserslist 10 | 11 | last 1 Chrome version 12 | last 1 Firefox version 13 | last 2 Edge major versions 14 | last 2 Safari major versions 15 | last 2 iOS major versions 16 | Firefox ESR 17 | not IE 9-10 # Angular support for IE 9-10 has been deprecated and will be removed as of Angular v11. To opt-in, remove the 'not' prefix on this line. 18 | not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line. 19 | -------------------------------------------------------------------------------- /projects/precise/e2e/protractor.conf.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | // Protractor configuration file, see link for more information 3 | // https://github.com/angular/protractor/blob/master/lib/config.ts 4 | 5 | const { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter'); 6 | 7 | /** 8 | * @type { import("protractor").Config } 9 | */ 10 | exports.config = { 11 | allScriptsTimeout: 11000, 12 | specs: [ 13 | './src/**/*.e2e-spec.ts' 14 | ], 15 | capabilities: { 16 | browserName: 'chrome' 17 | }, 18 | directConnect: true, 19 | baseUrl: 'http://localhost:4200/', 20 | framework: 'jasmine', 21 | jasmineNodeOpts: { 22 | showColors: true, 23 | defaultTimeoutInterval: 30000, 24 | print: function() {} 25 | }, 26 | onPrepare() { 27 | require('ts-node').register({ 28 | project: require('path').join(__dirname, './tsconfig.json') 29 | }); 30 | jasmine.getEnv().addReporter(new SpecReporter({ 31 | spec: { 32 | displayStacktrace: StacktraceOption.PRETTY 33 | } 34 | })); 35 | } 36 | }; -------------------------------------------------------------------------------- /projects/precise/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | import { browser, logging } from 'protractor'; 3 | 4 | describe('workspace-project App', () => { 5 | let page: AppPage; 6 | 7 | beforeEach(() => { 8 | page = new AppPage(); 9 | }); 10 | 11 | it('should display welcome message', () => { 12 | page.navigateTo(); 13 | expect(page.getTitleText()).toEqual('precise app is running!'); 14 | }); 15 | 16 | afterEach(async () => { 17 | // Assert that there are no errors emitted from the browser 18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER); 19 | expect(logs).not.toContain(jasmine.objectContaining({ 20 | level: logging.Level.SEVERE, 21 | } as logging.Entry)); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /projects/precise/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo(): Promise { 5 | return browser.get(browser.baseUrl) as Promise; 6 | } 7 | 8 | getTitleText(): Promise { 9 | return element(by.css('app-root .content span')).getText() as Promise; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /projects/precise/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "../../../tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "../../../out-tsc/e2e", 6 | "module": "commonjs", 7 | "target": "es2018", 8 | "types": [ 9 | "jasmine", 10 | "jasminewd2", 11 | "node" 12 | ] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /projects/precise/karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration file, see link for more information 2 | // https://karma-runner.github.io/1.0/config/configuration-file.html 3 | 4 | module.exports = function (config) { 5 | config.set({ 6 | basePath: '', 7 | frameworks: ['jasmine', '@angular-devkit/build-angular'], 8 | plugins: [ 9 | require('karma-jasmine'), 10 | require('karma-chrome-launcher'), 11 | require('karma-jasmine-html-reporter'), 12 | require('karma-coverage-istanbul-reporter'), 13 | require('@angular-devkit/build-angular/plugins/karma') 14 | ], 15 | client: { 16 | clearContext: false // leave Jasmine Spec Runner output visible in browser 17 | }, 18 | coverageIstanbulReporter: { 19 | dir: require('path').join(__dirname, '../../coverage/precise'), 20 | reports: ['html', 'lcovonly', 'text-summary'], 21 | fixWebpackSourcePaths: true 22 | }, 23 | reporters: ['progress', 'kjhtml'], 24 | port: 9876, 25 | colors: true, 26 | logLevel: config.LOG_INFO, 27 | autoWatch: true, 28 | browsers: ['Chrome'], 29 | singleRun: false, 30 | restartOnFileChange: true 31 | }); 32 | }; 33 | -------------------------------------------------------------------------------- /projects/precise/src/app/app-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { Routes, RouterModule } from '@angular/router'; 3 | 4 | import { MaintenancePageComponent, PageNotFoundComponent } from 'shared'; 5 | import { IntroComponent } from './modules/tagger/pages/intro/intro.component'; 6 | import { TagComponent } from './modules/tagger/pages/tag/tag.component'; 7 | import { TagEventResolverService } from './core/guards/tag-event-resolver.service'; 8 | 9 | const routes: Routes = [ 10 | { path: 'tagger', component: IntroComponent}, 11 | { 12 | path: 'tag/:wakeWord', 13 | component: TagComponent, 14 | resolve: { 15 | tagEvent: TagEventResolverService 16 | } 17 | }, 18 | { path: 'maintenance', component: MaintenancePageComponent}, 19 | { path: '', redirectTo: '/tag/hey-mycroft', pathMatch: 'full'}, 20 | { path: '**', component: PageNotFoundComponent } 21 | ]; 22 | 23 | @NgModule({ 24 | imports: [RouterModule.forRoot(routes)], 25 | exports: [RouterModule] 26 | }) 27 | export class AppRoutingModule { } 28 | -------------------------------------------------------------------------------- /projects/precise/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
5 |
6 | -------------------------------------------------------------------------------- /projects/precise/src/app/app.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/precise/src/app/app.component.scss -------------------------------------------------------------------------------- /projects/precise/src/app/app.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | import { RouterTestingModule } from '@angular/router/testing'; 3 | import { AppComponent } from './app.component'; 4 | 5 | describe('AppComponent', () => { 6 | beforeEach(async () => { 7 | await TestBed.configureTestingModule({ 8 | imports: [ 9 | RouterTestingModule 10 | ], 11 | declarations: [ 12 | AppComponent 13 | ], 14 | }).compileComponents(); 15 | }); 16 | 17 | it('should create the app', () => { 18 | const fixture = TestBed.createComponent(AppComponent); 19 | const app = fixture.componentInstance; 20 | expect(app).toBeTruthy(); 21 | }); 22 | 23 | it(`should have as title 'precise'`, () => { 24 | const fixture = TestBed.createComponent(AppComponent); 25 | const app = fixture.componentInstance; 26 | expect(app.title).toEqual('precise'); 27 | }); 28 | 29 | it('should render title', () => { 30 | const fixture = TestBed.createComponent(AppComponent); 31 | fixture.detectChanges(); 32 | const compiled = fixture.nativeElement; 33 | expect(compiled.querySelector('.content span').textContent).toContain('precise app is running!'); 34 | }); 35 | }); 36 | -------------------------------------------------------------------------------- /projects/precise/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | import { environment } from '../environments/environment'; 4 | 5 | @Component({ 6 | selector: 'precise-root', 7 | templateUrl: './app.component.html', 8 | styleUrls: ['./app.component.scss'] 9 | }) 10 | export class AppComponent { 11 | public environment = environment; 12 | title = 'Precise'; 13 | } 14 | -------------------------------------------------------------------------------- /projects/precise/src/app/modules/tagger/pages/intro/intro.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { IntroComponent } from './intro.component'; 4 | 5 | describe('WakeWordComponent', () => { 6 | let component: IntroComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ IntroComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(IntroComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /projects/precise/src/app/modules/tagger/pages/intro/intro.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { ActivatedRoute } from '@angular/router'; 3 | 4 | @Component({ 5 | selector: 'precise-tagger-intro', 6 | templateUrl: './intro.component.html', 7 | styleUrls: ['./intro.component.scss'] 8 | }) 9 | export class IntroComponent implements OnInit { 10 | 11 | constructor(private route: ActivatedRoute) { } 12 | 13 | ngOnInit(): void { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /projects/precise/src/app/modules/tagger/pages/tag/tag.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { TagComponent } from './tag.component'; 4 | 5 | describe('TaggerComponent', () => { 6 | let component: TagComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ TagComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(TagComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /projects/precise/src/app/shared/models/tag-event.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface TagValue { 20 | id: string; 21 | value: string; 22 | display: string; 23 | } 24 | 25 | export interface TagEvent { 26 | audioFileId: string; 27 | audioFileName: string; 28 | sessionId: string; 29 | tagId: string; 30 | tagName: string; 31 | tagTitle: string; 32 | tagInstructions: string; 33 | tagValues: TagValue[]; 34 | } 35 | -------------------------------------------------------------------------------- /projects/precise/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/precise/src/assets/.gitkeep -------------------------------------------------------------------------------- /projects/precise/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/precise/src/favicon.ico -------------------------------------------------------------------------------- /projects/precise/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Precise 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /projects/precise/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /projects/precise/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /projects/precise/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: { 11 | context(path: string, deep?: boolean, filter?: RegExp): { 12 | keys(): string[]; 13 | (id: string): T; 14 | }; 15 | }; 16 | 17 | // First, initialize the Angular testing environment. 18 | getTestBed().initTestEnvironment( 19 | BrowserDynamicTestingModule, 20 | platformBrowserDynamicTesting(), { 21 | teardown: { destroyAfterEach: false } 22 | } 23 | ); 24 | // Then we find all the tests. 25 | const context = require.context('./', true, /\.spec\.ts$/); 26 | // And load the modules. 27 | context.keys().map(context); 28 | -------------------------------------------------------------------------------- /projects/precise/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "../../tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "../../out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": [ 9 | "src/main.ts", 10 | "src/polyfills.ts" 11 | ], 12 | "include": [ 13 | "src/**/*.d.ts" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /projects/precise/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "../../tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "../../out-tsc/spec", 6 | "types": [ 7 | "jasmine" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /projects/precise/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tslint.json", 3 | "rules": { 4 | "directive-selector": [ 5 | true, 6 | "attribute", 7 | "app", 8 | "camelCase" 9 | ], 10 | "component-selector": [ 11 | true, 12 | "element", 13 | "app", 14 | "kebab-case" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /projects/shared/karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration file, see link for more information 2 | // https://karma-runner.github.io/1.0/config/configuration-file.html 3 | 4 | module.exports = function (config) { 5 | config.set({ 6 | basePath: '', 7 | frameworks: ['jasmine', '@angular-devkit/build-angular'], 8 | plugins: [ 9 | require('karma-jasmine'), 10 | require('karma-chrome-launcher'), 11 | require('karma-jasmine-html-reporter'), 12 | require('karma-coverage-istanbul-reporter'), 13 | require('@angular-devkit/build-angular/plugins/karma') 14 | ], 15 | client: { 16 | clearContext: false // leave Jasmine Spec Runner output visible in browser 17 | }, 18 | coverageIstanbulReporter: { 19 | dir: require('path').join(__dirname, '../../coverage'), 20 | reports: ['html', 'lcovonly'], 21 | fixWebpackSourcePaths: true 22 | }, 23 | reporters: ['progress', 'kjhtml'], 24 | port: 9876, 25 | colors: true, 26 | logLevel: config.LOG_INFO, 27 | autoWatch: true, 28 | browsers: ['Chrome'], 29 | singleRun: false 30 | }); 31 | }; 32 | -------------------------------------------------------------------------------- /projects/shared/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", 3 | "dest": "../../dist/shared", 4 | "lib": { 5 | "entryFile": "src/projects.ts", 6 | "cssUrl": "inline" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /projects/shared/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "shared", 3 | "version": "0.0.1", 4 | "dependencies": { 5 | "tslib": "^2.0.0" 6 | }, 7 | "peerDependencies": { 8 | "@angular/common": "^14.1.0", 9 | "@angular/core": "^14.1.0" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /projects/shared/src/lib/maintenance-page/maintenance-page.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | -------------------------------------------------------------------------------- /projects/shared/src/lib/maintenance-page/maintenance-page.component.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { Component, OnInit } from '@angular/core'; 20 | 21 | @Component({ 22 | selector: 'shared-maintenance-page', 23 | templateUrl: './maintenance-page.component.html', 24 | styleUrls: ['./maintenance-page.component.scss'] 25 | }) 26 | export class MaintenancePageComponent implements OnInit { 27 | 28 | constructor() { } 29 | 30 | ngOnInit() { 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /projects/shared/src/lib/page-not-found/page-not-found.component.html: -------------------------------------------------------------------------------- 1 |
2 |
404
3 | 4 |
5 | -------------------------------------------------------------------------------- /projects/shared/src/lib/page-not-found/page-not-found.component.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { Component} from '@angular/core'; 20 | 21 | @Component({ 22 | selector: 'shared-page-not-found', 23 | templateUrl: './page-not-found.component.html', 24 | styleUrls: ['./page-not-found.component.scss'] 25 | }) 26 | export class PageNotFoundComponent { 27 | 28 | constructor() { } 29 | 30 | navigateBack() { 31 | window.history.back(); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /projects/shared/src/lib/shared.component.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { Component, OnInit } from '@angular/core'; 20 | 21 | @Component({ 22 | selector: 'shared-base', 23 | template: ` 24 |

25 | shared works! 26 |

27 | `, 28 | styles: [] 29 | }) 30 | export class SharedComponent implements OnInit { 31 | 32 | constructor() { } 33 | 34 | ngOnInit() { 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /projects/shared/src/lib/snackbar/snackbar.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | 5 | {{message}} 6 |
7 |
8 | 9 | 10 |
11 |
12 | -------------------------------------------------------------------------------- /projects/shared/src/lib/snackbar/snackbar.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | mat-spinner { 20 | margin-right: 16px; 21 | } 22 | 23 | fa-icon { 24 | font-size: 16px; 25 | margin-right: 16px; 26 | } 27 | 28 | .error { 29 | color: #eb5757; 30 | } 31 | 32 | .success { 33 | color: #40dbb0; 34 | } 35 | 36 | .info { 37 | color: #22a7f0; 38 | } 39 | 40 | button { 41 | color: #22a7f0 42 | } 43 | -------------------------------------------------------------------------------- /projects/shared/src/projects.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | /* 20 | * Public API Surface of shared 21 | */ 22 | 23 | export * from './lib/shared.component'; 24 | export * from './lib/snackbar/snackbar.component'; 25 | export * from './lib/maintenance-page/maintenance-page.component'; 26 | export * from './lib/page-not-found/page-not-found.component'; 27 | export * from './lib/shared.module'; 28 | -------------------------------------------------------------------------------- /projects/shared/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../out-tsc/lib", 5 | "declarationMap": true, 6 | "target": "es2020", 7 | "module": "es2015", 8 | "moduleResolution": "node", 9 | "declaration": true, 10 | "sourceMap": true, 11 | "inlineSources": true, 12 | "experimentalDecorators": true, 13 | "importHelpers": true, 14 | "types": [], 15 | "lib": [ 16 | "dom", 17 | "es2018" 18 | ] 19 | }, 20 | "angularCompilerOptions": { 21 | "skipTemplateCodegen": true, 22 | "strictMetadataEmit": true, 23 | "fullTemplateTypeCheck": true, 24 | "strictInjectionParameters": true, 25 | "enableResourceInlining": true 26 | }, 27 | "exclude": [ 28 | "src/test.ts", 29 | "**/*.spec.ts" 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /projects/shared/tsconfig.lib.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.lib.json", 3 | "compilerOptions": { 4 | "declarationMap": false 5 | }, 6 | "angularCompilerOptions": { 7 | "compilationMode": "partial" 8 | } 9 | } -------------------------------------------------------------------------------- /projects/shared/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts" 12 | ], 13 | "include": [ 14 | "**/*.spec.ts", 15 | "**/*.d.ts" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /projects/shared/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tslint.json", 3 | "rules": { 4 | "directive-selector": [ 5 | true, 6 | "attribute", 7 | "shared", 8 | "camelCase" 9 | ], 10 | "component-selector": [ 11 | true, 12 | "element", 13 | "shared", 14 | "kebab-case" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /projects/sso-e2e/protractor.conf.js: -------------------------------------------------------------------------------- 1 | // Protractor configuration file, see link for more information 2 | // https://github.com/angular/protractor/blob/master/lib/config.ts 3 | 4 | const { SpecReporter } = require('jasmine-spec-reporter'); 5 | 6 | exports.config = { 7 | allScriptsTimeout: 11000, 8 | specs: [ 9 | './src/**/*.e2e-spec.ts' 10 | ], 11 | capabilities: { 12 | 'browserName': 'chrome' 13 | }, 14 | directConnect: true, 15 | baseUrl: 'http://localhost:4200/', 16 | framework: 'jasmine', 17 | jasmineNodeOpts: { 18 | showColors: true, 19 | defaultTimeoutInterval: 30000, 20 | print: function() {} 21 | }, 22 | onPrepare() { 23 | require('ts-node').register({ 24 | project: require('path').join(__dirname, './tsconfig.e2e.json') 25 | }); 26 | jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); 27 | } 28 | }; -------------------------------------------------------------------------------- /projects/sso-e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { AppPage } from './app.po'; 20 | 21 | describe('workspace-project App', () => { 22 | let page: AppPage; 23 | 24 | beforeEach(() => { 25 | page = new AppPage(); 26 | }); 27 | 28 | it('should display welcome message', () => { 29 | page.navigateTo(); 30 | expect(page.getParagraphText()).toEqual('Welcome to sso!'); 31 | }); 32 | }); 33 | -------------------------------------------------------------------------------- /projects/sso-e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { browser, by, element } from 'protractor'; 20 | 21 | export class AppPage { 22 | navigateTo() { 23 | return browser.get('/'); 24 | } 25 | 26 | getParagraphText() { 27 | return element(by.css('sso-root h1')).getText(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /projects/sso-e2e/tsconfig.e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../out-tsc/app", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } -------------------------------------------------------------------------------- /projects/sso/.browserslistrc: -------------------------------------------------------------------------------- 1 | # This file is currently used by autoprefixer to adjust CSS to support the below specified browsers 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | # 5 | # For IE 9-11 support, please remove 'not' from the last line of the file and adjust as needed 6 | 7 | > 0.5% 8 | last 2 versions 9 | Firefox ESR 10 | not dead 11 | not IE 9-11 -------------------------------------------------------------------------------- /projects/sso/karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration file, see link for more information 2 | // https://karma-runner.github.io/1.0/config/configuration-file.html 3 | 4 | module.exports = function (config) { 5 | config.set({ 6 | basePath: '', 7 | frameworks: ['jasmine', '@angular-devkit/build-angular'], 8 | plugins: [ 9 | require('karma-jasmine'), 10 | require('karma-chrome-launcher'), 11 | require('karma-jasmine-html-reporter'), 12 | require('karma-coverage-istanbul-reporter'), 13 | require('@angular-devkit/build-angular/plugins/karma') 14 | ], 15 | client: { 16 | clearContext: false // leave Jasmine Spec Runner output visible in browser 17 | }, 18 | coverageIstanbulReporter: { 19 | dir: require('path').join(__dirname, '../../coverage'), 20 | reports: ['html', 'lcovonly'], 21 | fixWebpackSourcePaths: true 22 | }, 23 | reporters: ['progress', 'kjhtml'], 24 | port: 9876, 25 | colors: true, 26 | logLevel: config.LOG_INFO, 27 | autoWatch: true, 28 | browsers: ['Chrome'], 29 | singleRun: false 30 | }); 31 | }; -------------------------------------------------------------------------------- /projects/sso/proxy.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "/api/*": { 3 | "target": "http://localhost:5001", 4 | "secure": false, 5 | "logLevel": "debug", 6 | "changeOrigin": true 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /projects/sso/src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | 6 |
7 | 8 |
9 |
10 | -------------------------------------------------------------------------------- /projects/sso/src/app/modules/login/federated-login/federated-login.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /projects/sso/src/app/modules/login/federated-login/federated-login.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/sso/src/app/modules/login/federated-login/federated-login.component.scss -------------------------------------------------------------------------------- /projects/sso/src/app/modules/login/internal-login/internal-login.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 |
6 |
7 | 8 |
9 | -------------------------------------------------------------------------------- /projects/sso/src/app/modules/login/login.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |

Log into Mycroft

4 |

Need to create an account first?

5 | 6 | 7 |
OR
8 | 9 |
10 |
11 | -------------------------------------------------------------------------------- /projects/sso/src/app/modules/login/password-reset/password-reset.component.html: -------------------------------------------------------------------------------- 1 |

Reset Your Password

2 |
3 |

4 | A message containing password reset instructions will be sent to the email address entered below: 5 |

6 | 7 |
8 |
9 | 10 | 13 |
14 | -------------------------------------------------------------------------------- /projects/sso/src/app/modules/logout/logout.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | LOGGING OUT 5 | 6 | 7 | -------------------------------------------------------------------------------- /projects/sso/src/app/modules/new-account/agreement-step/agreement-step.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Now for the legal stuff... 4 | 5 | 6 | We value your privacy! 7 | 8 | 9 | 10 | 13 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /projects/sso/src/app/modules/new-account/authentication-step/authentication-step.component.scss: -------------------------------------------------------------------------------- 1 | @use "@angular/material" as mat; 2 | @use "mycroft-theme" as theme; 3 | 4 | mat-card { 5 | margin-left: auto; 6 | margin-right: auto; 7 | max-width: 800px; 8 | 9 | mat-card-title { 10 | color: mat.get-color-from-palette(theme.$mycroft-primary, 500); 11 | } 12 | 13 | mat-card { 14 | height: 300px; 15 | max-width: 400px; 16 | 17 | .mat-h2 { 18 | color: mat.get-color-from-palette(theme.$mycroft-accent, A700); 19 | font-size: 20px; 20 | } 21 | #federated-error { 22 | color: mat.get-color-from-palette(theme.$mycroft-warn, 500); 23 | } 24 | } 25 | 26 | .mat-h1 { 27 | color: mat.get-color-from-palette(theme.$mycroft-primary, 500); 28 | padding: 32px; 29 | } 30 | } 31 | 32 | 33 | -------------------------------------------------------------------------------- /projects/sso/src/app/modules/new-account/new-account.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | @use "components/buttons" as buttons; 20 | 21 | .mat-button { 22 | @include buttons.action-button-primary; 23 | } 24 | 25 | mat-horizontal-stepper { 26 | margin-left: auto; 27 | margin-right: auto; 28 | margin-top: 32px; 29 | max-width: 1000px; 30 | } 31 | -------------------------------------------------------------------------------- /projects/sso/src/app/shared/components/email-input/email-input.component.html: -------------------------------------------------------------------------------- 1 | 2 | Email 3 | 10 | 11 | {{getEmailError()}} 12 | 13 | 14 | -------------------------------------------------------------------------------- /projects/sso/src/app/shared/components/email-input/email-input.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | mat-form-field { 20 | width: 100%; 21 | } 22 | -------------------------------------------------------------------------------- /projects/sso/src/app/shared/components/facebook-button/facebook-button.component.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /projects/sso/src/app/shared/components/github-button/github-button.component.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /projects/sso/src/app/shared/components/google-button/google-button.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /projects/sso/src/app/shared/components/google-button/google-button.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | asl-google-signin-button { 20 | border-radius: 4px; 21 | color: white; 22 | font-weight: normal; 23 | margin-bottom: 8px; 24 | text-align: left; 25 | } 26 | -------------------------------------------------------------------------------- /projects/sso/src/app/shared/components/password-input/password-input.component.html: -------------------------------------------------------------------------------- 1 | 2 | Password 3 | 10 | 11 | Password is required 12 | 13 | 14 | -------------------------------------------------------------------------------- /projects/sso/src/app/shared/components/password-input/password-input.component.scss: -------------------------------------------------------------------------------- 1 | // ***************************************************************************** 2 | // SPDX-License-Identifier: Apache-2.0 3 | // 4 | // 5 | // Copyright (c) Mycroft AI Inc. All rights reserved. 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | // this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | // KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | // WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | // MERCHANTABLITY OR NON-INFRINGEMENT. 14 | // 15 | // See the Apache Version 2.0 License for specific language governing permissions 16 | // and limitations under the License. 17 | // ***************************************************************************** 18 | 19 | mat-form-field { 20 | width: 100%; 21 | } 22 | -------------------------------------------------------------------------------- /projects/sso/src/app/shared/models/password-change-account.model.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export interface PasswordChangeAccount { 20 | accountId: string; 21 | tokenExpired: boolean; 22 | tokenInvalid: boolean; 23 | } 24 | -------------------------------------------------------------------------------- /projects/sso/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/sso/src/assets/.gitkeep -------------------------------------------------------------------------------- /projects/sso/src/assets/facebook_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/sso/src/assets/facebook_logo.png -------------------------------------------------------------------------------- /projects/sso/src/assets/google-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/sso/src/assets/google-logo.png -------------------------------------------------------------------------------- /projects/sso/src/assets/google-signin-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/sso/src/assets/google-signin-button.png -------------------------------------------------------------------------------- /projects/sso/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/sso/src/favicon.ico -------------------------------------------------------------------------------- /projects/sso/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Mycroft AI Single Sign On 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /projects/sso/src/main.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { enableProdMode } from '@angular/core'; 20 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 21 | 22 | import { AppModule } from './app/app.module'; 23 | import { environment } from './environments/environment'; 24 | 25 | if (environment.production) { 26 | enableProdMode(); 27 | } 28 | 29 | platformBrowserDynamic().bootstrapModule(AppModule) 30 | .catch(err => console.error(err)); 31 | -------------------------------------------------------------------------------- /projects/sso/src/styles.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/projects/sso/src/styles.scss -------------------------------------------------------------------------------- /projects/sso/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "src/main.ts", 9 | "src/polyfills.ts" 10 | ], 11 | "include": [ 12 | "projects/sso/src/**/*.d.ts" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /projects/sso/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "**/*.spec.ts", 16 | "**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /projects/sso/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tslint.json", 3 | "rules": { 4 | "directive-selector": [ 5 | true, 6 | "attribute", 7 | "sso", 8 | "camelCase" 9 | ], 10 | "component-selector": [ 11 | true, 12 | "element", 13 | "sso", 14 | "kebab-case" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/app/app-routing.module.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { NgModule } from '@angular/core'; 20 | import { Routes, RouterModule } from '@angular/router'; 21 | 22 | const routes: Routes = []; 23 | 24 | @NgModule({ 25 | imports: [RouterModule.forRoot(routes)], 26 | exports: [RouterModule] 27 | }) 28 | export class AppRoutingModule { } 29 | -------------------------------------------------------------------------------- /src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |

4 | Welcome to {{ title }}! 5 |

6 | Angular Logo 7 |
8 |

Here are some links to help you start:

9 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/app/app.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/src/app/app.component.scss -------------------------------------------------------------------------------- /src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { Component } from '@angular/core'; 20 | 21 | @Component({ 22 | selector: 'app-root', 23 | templateUrl: './app.component.html', 24 | styleUrls: ['./app.component.scss'] 25 | }) 26 | export class AppComponent { 27 | title = 'internet'; 28 | } 29 | -------------------------------------------------------------------------------- /src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { BrowserModule } from '@angular/platform-browser'; 20 | import { NgModule } from '@angular/core'; 21 | 22 | import { AppRoutingModule } from './app-routing.module'; 23 | import { AppComponent } from './app.component'; 24 | 25 | @NgModule({ 26 | declarations: [ 27 | AppComponent 28 | ], 29 | imports: [ 30 | BrowserModule, 31 | AppRoutingModule 32 | ], 33 | providers: [], 34 | bootstrap: [AppComponent] 35 | }) 36 | export class AppModule { } 37 | -------------------------------------------------------------------------------- /src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MycroftAI/selene-ui/cd2e4248b5e86a22898faf28221f5ac0463a580c/src/assets/.gitkeep -------------------------------------------------------------------------------- /src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | export const environment = { 20 | production: true 21 | }; 22 | -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Internet 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration file, see link for more information 2 | // https://karma-runner.github.io/1.0/config/configuration-file.html 3 | 4 | module.exports = function (config) { 5 | config.set({ 6 | basePath: '', 7 | frameworks: ['jasmine', '@angular-devkit/build-angular'], 8 | plugins: [ 9 | require('karma-jasmine'), 10 | require('karma-chrome-launcher'), 11 | require('karma-jasmine-html-reporter'), 12 | require('karma-coverage-istanbul-reporter'), 13 | require('@angular-devkit/build-angular/plugins/karma') 14 | ], 15 | client: { 16 | clearContext: false // leave Jasmine Spec Runner output visible in browser 17 | }, 18 | coverageIstanbulReporter: { 19 | dir: require('path').join(__dirname, '../coverage'), 20 | reports: ['html', 'lcovonly'], 21 | fixWebpackSourcePaths: true 22 | }, 23 | reporters: ['progress', 'kjhtml'], 24 | port: 9876, 25 | colors: true, 26 | logLevel: config.LOG_INFO, 27 | autoWatch: true, 28 | browsers: ['Chrome'], 29 | singleRun: false 30 | }); 31 | }; -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | SPDX-License-Identifier: Apache-2.0 3 | 4 | 5 | Copyright (c) Mycroft AI Inc. All rights reserved. 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 7 | this file except in compliance with the License. You may obtain a copy of the 8 | License at http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 12 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 13 | MERCHANTABLITY OR NON-INFRINGEMENT. 14 | 15 | See the Apache Version 2.0 License for specific language governing permissions 16 | and limitations under the License. 17 | ***************************************************************************** */ 18 | 19 | import { enableProdMode } from '@angular/core'; 20 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 21 | 22 | import { AppModule } from './app/app.module'; 23 | import { environment } from './environments/environment'; 24 | 25 | if (environment.production) { 26 | enableProdMode(); 27 | } 28 | 29 | platformBrowserDynamic().bootstrapModule(AppModule) 30 | .catch(err => console.error(err)); 31 | -------------------------------------------------------------------------------- /src/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": [ 8 | "main.ts", 9 | "polyfills.ts" 10 | ], 11 | "include": [ 12 | "src/**/*.d.ts" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /src/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "test.ts", 12 | "polyfills.ts" 13 | ], 14 | "include": [ 15 | "**/*.spec.ts", 16 | "**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /src/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tslint.json", 3 | "rules": { 4 | "directive-selector": [ 5 | true, 6 | "attribute", 7 | "app", 8 | "camelCase" 9 | ], 10 | "component-selector": [ 11 | true, 12 | "element", 13 | "app", 14 | "kebab-case" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "downlevelIteration": true, 6 | "importHelpers": true, 7 | "outDir": "./dist/out-tsc", 8 | "sourceMap": true, 9 | "declaration": false, 10 | "module": "es2020", 11 | "moduleResolution": "node", 12 | "experimentalDecorators": true, 13 | "target": "es2020", 14 | "typeRoots": [ 15 | "node_modules/@types" 16 | ], 17 | "lib": [ 18 | "es2018", 19 | "dom" 20 | ], 21 | "paths": { 22 | "globalnav": [ 23 | "dist/globalnav" 24 | ], 25 | "globalnav/*": [ 26 | "dist/globalnav/*" 27 | ], 28 | "shared": [ 29 | "dist/shared" 30 | ], 31 | "shared/*": [ 32 | "dist/shared/*" 33 | ], 34 | "@account/*": [ 35 | "projects/account/src/*" 36 | ], 37 | "@account/http/*": [ 38 | "projects/account/src/app/core/http/*" 39 | ], 40 | "@account/models/*": [ 41 | "projects/account/src/app/shared/models/*" 42 | ] 43 | } 44 | } 45 | } 46 | --------------------------------------------------------------------------------