├── .github ├── ISSUE_TEMPLATE │ ├── bug-report.md │ ├── feature-request.md │ └── wiki-updates.md └── workflows │ └── build.yml ├── .gitignore ├── LICENSE ├── README.md └── xCore.UI ├── .browserslistrc ├── .editorconfig ├── .eslintrc.js ├── .gitignore ├── angular.json ├── e2e ├── app.e2e-spec.ts ├── app.po.ts └── tsconfig.e2e.json ├── electron-builder.json ├── main.js ├── main.js.map ├── main.ts ├── mobile ├── .gitignore ├── config.xml └── package.json ├── package.json ├── postcss.config.js ├── postinstall-web.js ├── postinstall.js ├── src ├── app │ ├── app-routing.module.ts │ ├── app.component.css │ ├── app.component.html │ ├── app.component.ts │ ├── app.module.ts │ ├── login │ │ ├── login.component.css │ │ ├── login.component.html │ │ └── login.component.ts │ ├── setup │ │ ├── create │ │ │ ├── confirm-mnemonic │ │ │ │ ├── confirm-mnemonic.component.css │ │ │ │ ├── confirm-mnemonic.component.html │ │ │ │ ├── confirm-mnemonic.component.ts │ │ │ │ └── secret-word-index-generator.ts │ │ │ ├── create.component.css │ │ │ ├── create.component.html │ │ │ ├── create.component.ts │ │ │ └── show-mnemonic │ │ │ │ ├── show-mnemonic.component.css │ │ │ │ ├── show-mnemonic.component.html │ │ │ │ └── show-mnemonic.component.ts │ │ ├── recover │ │ │ ├── recover.component.css │ │ │ ├── recover.component.html │ │ │ └── recover.component.ts │ │ ├── setup-routing.module.ts │ │ ├── setup.component.css │ │ ├── setup.component.html │ │ ├── setup.component.ts │ │ └── setup.module.ts │ ├── shared │ │ ├── components │ │ │ ├── generic-modal │ │ │ │ ├── generic-modal.component.css │ │ │ │ ├── generic-modal.component.html │ │ │ │ └── generic-modal.component.ts │ │ │ ├── main-menu │ │ │ │ ├── main-menu.component.css │ │ │ │ ├── main-menu.component.html │ │ │ │ ├── main-menu.component.ts │ │ │ │ └── main-menu.module.ts │ │ │ ├── shutdown │ │ │ │ ├── shutdown.component.css │ │ │ │ ├── shutdown.component.html │ │ │ │ ├── shutdown.component.ts │ │ │ │ └── shutdown.module.ts │ │ │ └── wizard │ │ │ │ ├── step.component.ts │ │ │ │ ├── steps.component.ts │ │ │ │ ├── wizard.component.css │ │ │ │ └── wizard.module.ts │ │ ├── contants │ │ │ └── x-document-constants.ts │ │ ├── directives │ │ │ ├── auto-focus.directive.ts │ │ │ ├── disable.control.directive.ts │ │ │ ├── password-validation.directive.ts │ │ │ └── router-link-back.directive.ts │ │ ├── http-interceptors │ │ │ ├── api-interceptor.ts │ │ │ ├── index.ts │ │ │ └── logging-interceptor.ts │ │ ├── models │ │ │ ├── address-label.ts │ │ │ ├── address-type.ts │ │ │ ├── coldhotstaterequest.ts │ │ │ ├── coldstakingcreateaccountrequest.ts │ │ │ ├── coldstakingcreateaccountresponse.ts │ │ │ ├── coldstakingcreateaddressresponse.ts │ │ │ ├── coldstakinggetinforesponse.ts │ │ │ ├── coldstakingsetup.ts │ │ │ ├── coldstakingsetupresponse.ts │ │ │ ├── coldstakingwithdrawalrequest.ts │ │ │ ├── coldstakingwithdrawalresponse.ts │ │ │ ├── error-response.ts │ │ │ ├── fee-estimation.ts │ │ │ ├── general-info.ts │ │ │ ├── mnemonic.ts │ │ │ ├── node-status.ts │ │ │ ├── pricelockutil.ts │ │ │ ├── serveridresponse.ts │ │ │ ├── sidechain-fee-estimation.ts │ │ │ ├── signmessageresponse.ts │ │ │ ├── split-coins.ts │ │ │ ├── test-ssh-credential-model.ts │ │ │ ├── transaction-building.ts │ │ │ ├── transaction-info.ts │ │ │ ├── transaction-output.ts │ │ │ ├── transaction-sending.ts │ │ │ ├── update-info.ts │ │ │ ├── validateaddressresponse.ts │ │ │ ├── wallet-creation.ts │ │ │ ├── wallet-info.ts │ │ │ ├── wallet-load.ts │ │ │ ├── wallet-recovery.ts │ │ │ ├── wallet-rescan.ts │ │ │ ├── wallet-signmessagerequest.ts │ │ │ ├── wallet-verifyrequest.ts │ │ │ ├── worker.ts │ │ │ ├── x-document.ts │ │ │ ├── xserver-create-pl-request.ts │ │ │ ├── xserver-pairs-response.ts │ │ │ ├── xserver-profile-reserve-request.ts │ │ │ ├── xserver-provisioning-request.ts │ │ │ ├── xserver-registration-request.ts │ │ │ ├── xserver-registration-response.ts │ │ │ ├── xserver-status.ts │ │ │ ├── xserver-submit-payment-request.ts │ │ │ ├── xserver-test-request.ts │ │ │ ├── xserver-test-response.ts │ │ │ ├── xserver-update-request.ts │ │ │ ├── xserver-wordpress-provision-request.ts │ │ │ └── xserver-wordpress-reserve-request.ts │ │ ├── pipes │ │ │ ├── coin-notation.pipe.ts │ │ │ ├── price-unit.pipe.ts │ │ │ ├── size-unit.pipe.ts │ │ │ ├── sort-by.pipe.ts │ │ │ └── yesno.pipe.ts │ │ ├── services │ │ │ ├── api.events.ts │ │ │ ├── api.service.ts │ │ │ ├── application-state.service.ts │ │ │ ├── chain.service.ts │ │ │ ├── coldstaking.service.ts │ │ │ ├── currencies.json │ │ │ ├── details.service.ts │ │ │ ├── export-excel.service.spec.ts │ │ │ ├── export-excel.service.ts │ │ │ ├── global.service.ts │ │ │ ├── http-error-handler.service.ts │ │ │ ├── logger.service.ts │ │ │ ├── modal.service.ts │ │ │ ├── notification.service.ts │ │ │ ├── settings.service.ts │ │ │ ├── storage.service.ts │ │ │ ├── theme.service.ts │ │ │ ├── title.service.ts │ │ │ └── update.service.ts │ │ ├── shared.module.ts │ │ ├── theme.ts │ │ └── themes.ts │ └── wallet │ │ ├── address-book │ │ ├── address-book.component.css │ │ ├── address-book.component.html │ │ ├── address-book.component.ts │ │ └── modals │ │ │ └── add-new-address │ │ │ ├── add-new-address.component.css │ │ │ ├── add-new-address.component.html │ │ │ └── add-new-address.component.ts │ │ ├── advanced │ │ ├── advanced.component.css │ │ ├── advanced.component.html │ │ ├── advanced.component.ts │ │ └── components │ │ │ ├── about │ │ │ ├── about.component.css │ │ │ ├── about.component.html │ │ │ └── about.component.ts │ │ │ ├── ext-pubkey │ │ │ ├── ext-pubkey.component.css │ │ │ ├── ext-pubkey.component.html │ │ │ └── ext-pubkey.component.ts │ │ │ ├── generate-addresses │ │ │ ├── generate-addresses.component.css │ │ │ ├── generate-addresses.component.html │ │ │ └── generate-addresses.component.ts │ │ │ ├── resync │ │ │ ├── resync.component.css │ │ │ ├── resync.component.html │ │ │ └── resync.component.ts │ │ │ ├── settings │ │ │ ├── settings.component.css │ │ │ ├── settings.component.html │ │ │ └── settings.component.ts │ │ │ ├── sign-verify │ │ │ ├── sign-verify.component.css │ │ │ ├── sign-verify.component.html │ │ │ ├── sign-verify.component.ts │ │ │ ├── signature │ │ │ │ ├── signature.component.css │ │ │ │ ├── signature.component.html │ │ │ │ └── signature.component.ts │ │ │ └── verify │ │ │ │ ├── verify.component.css │ │ │ │ ├── verify.component.html │ │ │ │ └── verify.component.ts │ │ │ ├── x-server-updater │ │ │ ├── x-server-updater.component.css │ │ │ ├── x-server-updater.component.html │ │ │ ├── x-server-updater.component.spec.ts │ │ │ └── x-server-updater.component.ts │ │ │ ├── xserver-provisioner │ │ │ ├── xserver-provisioner.component.css │ │ │ ├── xserver-provisioner.component.html │ │ │ ├── xserver-provisioner.component.spec.ts │ │ │ └── xserver-provisioner.component.ts │ │ │ └── xserver │ │ │ ├── register │ │ │ ├── register.component.css │ │ │ ├── register.component.html │ │ │ └── register.component.ts │ │ │ ├── xserver.component.css │ │ │ ├── xserver.component.html │ │ │ └── xserver.component.ts │ │ ├── cold-staking │ │ ├── create-address │ │ │ ├── create-address.component.css │ │ │ ├── create-address.component.html │ │ │ └── create-address.component.ts │ │ ├── create-hot │ │ │ ├── create-hot.component.css │ │ │ ├── create-hot.component.html │ │ │ └── create-hot.component.ts │ │ ├── create │ │ │ ├── create.component.css │ │ │ ├── create.component.html │ │ │ └── create.component.ts │ │ ├── overview.component.css │ │ ├── overview.component.html │ │ ├── overview.component.ts │ │ └── withdraw │ │ │ ├── withdraw.component.css │ │ │ ├── withdraw.component.html │ │ │ └── withdraw.component.ts │ │ ├── dapp-store │ │ ├── dapp-store.component.css │ │ ├── dapp-store.component.html │ │ ├── dapp-store.component.spec.ts │ │ ├── dapp-store.component.ts │ │ ├── deploy-app │ │ │ ├── deploy-app.component.css │ │ │ ├── deploy-app.component.html │ │ │ ├── deploy-app.component.spec.ts │ │ │ └── deploy-app.component.ts │ │ └── deploy-wordpress │ │ │ └── deploy-wordpress.component.html │ │ ├── dashboard │ │ ├── dashboard.component.css │ │ ├── dashboard.component.html │ │ └── dashboard.component.ts │ │ ├── dns-management │ │ ├── add-edit-dns-record-dialog │ │ │ ├── add-edit-dns-record-dialog.component.css │ │ │ ├── add-edit-dns-record-dialog.component.html │ │ │ ├── add-edit-dns-record-dialog.component.spec.ts │ │ │ └── add-edit-dns-record-dialog.component.ts │ │ ├── add-zone-dialog │ │ │ ├── add-zone-dialog.component.css │ │ │ ├── add-zone-dialog.component.html │ │ │ ├── add-zone-dialog.component.spec.ts │ │ │ └── add-zone-dialog.component.ts │ │ ├── delete-dns-record-dialog │ │ │ ├── delete-dns-record-dialog.component.css │ │ │ ├── delete-dns-record-dialog.component.html │ │ │ ├── delete-dns-record-dialog.component.spec.ts │ │ │ └── delete-dns-record-dialog.component.ts │ │ ├── dns-management.component.css │ │ ├── dns-management.component.html │ │ ├── dns-management.component.spec.ts │ │ └── dns-management.component.ts │ │ ├── exchange-details │ │ ├── exchange-details.component.css │ │ ├── exchange-details.component.html │ │ └── exchange-details.component.ts │ │ ├── history │ │ ├── history.component.css │ │ ├── history.component.html │ │ └── history.component.ts │ │ ├── logout-confirmation │ │ ├── logout-confirmation.component.css │ │ ├── logout-confirmation.component.html │ │ └── logout-confirmation.component.ts │ │ ├── menu │ │ ├── menu.component.css │ │ ├── menu.component.html │ │ └── menu.component.ts │ │ ├── profile │ │ └── create │ │ │ ├── create-profile.component.css │ │ │ ├── create-profile.component.html │ │ │ └── create-profile.component.ts │ │ ├── receive │ │ ├── receive.component.css │ │ ├── receive.component.html │ │ └── receive.component.ts │ │ ├── send │ │ ├── send.component.css │ │ ├── send.component.html │ │ └── send.component.ts │ │ ├── status-bar │ │ ├── status-bar.component.css │ │ ├── status-bar.component.html │ │ └── status-bar.component.ts │ │ ├── storage-management │ │ ├── storage-management.component.css │ │ ├── storage-management.component.html │ │ ├── storage-management.component.spec.ts │ │ └── storage-management.component.ts │ │ ├── transaction-details │ │ ├── transaction-details.component.css │ │ ├── transaction-details.component.html │ │ └── transaction-details.component.ts │ │ ├── wallet-routing.module.ts │ │ ├── wallet.component.css │ │ ├── wallet.component.html │ │ ├── wallet.component.ts │ │ ├── wallet.module.ts │ │ └── xserver-network │ │ ├── x-server-details │ │ ├── x-server-details.component.css │ │ ├── x-server-details.component.html │ │ ├── x-server-details.component.spec.ts │ │ └── x-server-details.component.ts │ │ ├── xserver-network.component.css │ │ ├── xserver-network.component.html │ │ ├── xserver-network.component.spec.ts │ │ └── xserver-network.component.ts ├── assets │ ├── .gitkeep │ ├── fonts │ │ ├── Linearicons-Free.eot │ │ ├── Linearicons-Free.svg │ │ ├── Linearicons-Free.ttf │ │ ├── Linearicons-Free.woff │ │ └── Linearicons-Free.woff2 │ ├── images │ │ ├── 1_mQZ-_Y1kAVThy-Pb1qdTlg.jpeg │ │ ├── Magento.fw.png │ │ ├── Magento.png │ │ ├── MariaDB.png │ │ ├── OpenProject.png │ │ ├── Prestashop-logo-vector.png │ │ ├── Prestashop.png │ │ ├── SugarCRM-Stacked-Full-Color.jpg │ │ ├── Tick_Mark-16.png │ │ ├── anim.svg │ │ ├── goat.png │ │ ├── icons │ │ │ ├── 32x32.png │ │ │ ├── 512x512.png │ │ │ ├── icon-tray.ico │ │ │ ├── icon.icns │ │ │ ├── icon.ico │ │ │ └── icon.svg │ │ ├── if_Error_16.png │ │ ├── license_en.txt │ │ ├── logo-failed.png │ │ ├── logo-magento.jpg │ │ ├── logo.png │ │ ├── logo.svg │ │ ├── logo_aqua.png │ │ ├── logo_black.png │ │ ├── logo_pink.png │ │ ├── logo_white.png │ │ ├── logo_white.svg │ │ ├── notransactions.svg │ │ ├── powerdns.png │ │ ├── storjlogo.png │ │ ├── white background.png │ │ ├── wordpress-logo.png │ │ └── xcore-anim.svg │ └── themes │ │ ├── luna-amber │ │ ├── fonts │ │ │ ├── open-sans-v15-latin-300.eot │ │ │ ├── open-sans-v15-latin-300.svg │ │ │ ├── open-sans-v15-latin-300.ttf │ │ │ ├── open-sans-v15-latin-300.woff │ │ │ ├── open-sans-v15-latin-300.woff2 │ │ │ ├── open-sans-v15-latin-700.eot │ │ │ ├── open-sans-v15-latin-700.svg │ │ │ ├── open-sans-v15-latin-700.ttf │ │ │ ├── open-sans-v15-latin-700.woff │ │ │ ├── open-sans-v15-latin-700.woff2 │ │ │ ├── open-sans-v15-latin-regular.eot │ │ │ ├── open-sans-v15-latin-regular.svg │ │ │ ├── open-sans-v15-latin-regular.ttf │ │ │ ├── open-sans-v15-latin-regular.woff │ │ │ └── open-sans-v15-latin-regular.woff2 │ │ └── theme.css │ │ ├── luna-blue │ │ ├── fonts │ │ │ ├── open-sans-v15-latin-300.eot │ │ │ ├── open-sans-v15-latin-300.svg │ │ │ ├── open-sans-v15-latin-300.ttf │ │ │ ├── open-sans-v15-latin-300.woff │ │ │ ├── open-sans-v15-latin-300.woff2 │ │ │ ├── open-sans-v15-latin-700.eot │ │ │ ├── open-sans-v15-latin-700.svg │ │ │ ├── open-sans-v15-latin-700.ttf │ │ │ ├── open-sans-v15-latin-700.woff │ │ │ ├── open-sans-v15-latin-700.woff2 │ │ │ ├── open-sans-v15-latin-regular.eot │ │ │ ├── open-sans-v15-latin-regular.svg │ │ │ ├── open-sans-v15-latin-regular.ttf │ │ │ ├── open-sans-v15-latin-regular.woff │ │ │ └── open-sans-v15-latin-regular.woff2 │ │ └── theme.css │ │ ├── luna-green │ │ ├── fonts │ │ │ ├── open-sans-v15-latin-300.eot │ │ │ ├── open-sans-v15-latin-300.svg │ │ │ ├── open-sans-v15-latin-300.ttf │ │ │ ├── open-sans-v15-latin-300.woff │ │ │ ├── open-sans-v15-latin-300.woff2 │ │ │ ├── open-sans-v15-latin-700.eot │ │ │ ├── open-sans-v15-latin-700.svg │ │ │ ├── open-sans-v15-latin-700.ttf │ │ │ ├── open-sans-v15-latin-700.woff │ │ │ ├── open-sans-v15-latin-700.woff2 │ │ │ ├── open-sans-v15-latin-regular.eot │ │ │ ├── open-sans-v15-latin-regular.svg │ │ │ ├── open-sans-v15-latin-regular.ttf │ │ │ ├── open-sans-v15-latin-regular.woff │ │ │ └── open-sans-v15-latin-regular.woff2 │ │ └── theme.css │ │ ├── luna-pink │ │ ├── fonts │ │ │ ├── open-sans-v15-latin-300.eot │ │ │ ├── open-sans-v15-latin-300.svg │ │ │ ├── open-sans-v15-latin-300.ttf │ │ │ ├── open-sans-v15-latin-300.woff │ │ │ ├── open-sans-v15-latin-300.woff2 │ │ │ ├── open-sans-v15-latin-700.eot │ │ │ ├── open-sans-v15-latin-700.svg │ │ │ ├── open-sans-v15-latin-700.ttf │ │ │ ├── open-sans-v15-latin-700.woff │ │ │ ├── open-sans-v15-latin-700.woff2 │ │ │ ├── open-sans-v15-latin-regular.eot │ │ │ ├── open-sans-v15-latin-regular.svg │ │ │ ├── open-sans-v15-latin-regular.ttf │ │ │ ├── open-sans-v15-latin-regular.woff │ │ │ └── open-sans-v15-latin-regular.woff2 │ │ └── theme.css │ │ ├── nova-colored │ │ ├── fonts │ │ │ ├── open-sans-v15-latin-300.eot │ │ │ ├── open-sans-v15-latin-300.svg │ │ │ ├── open-sans-v15-latin-300.ttf │ │ │ ├── open-sans-v15-latin-300.woff │ │ │ ├── open-sans-v15-latin-300.woff2 │ │ │ ├── open-sans-v15-latin-700.eot │ │ │ ├── open-sans-v15-latin-700.svg │ │ │ ├── open-sans-v15-latin-700.ttf │ │ │ ├── open-sans-v15-latin-700.woff │ │ │ ├── open-sans-v15-latin-700.woff2 │ │ │ ├── open-sans-v15-latin-regular.eot │ │ │ ├── open-sans-v15-latin-regular.svg │ │ │ ├── open-sans-v15-latin-regular.ttf │ │ │ ├── open-sans-v15-latin-regular.woff │ │ │ └── open-sans-v15-latin-regular.woff2 │ │ └── theme.css │ │ ├── nova-dark │ │ ├── fonts │ │ │ ├── open-sans-v15-latin-300.eot │ │ │ ├── open-sans-v15-latin-300.svg │ │ │ ├── open-sans-v15-latin-300.ttf │ │ │ ├── open-sans-v15-latin-300.woff │ │ │ ├── open-sans-v15-latin-300.woff2 │ │ │ ├── open-sans-v15-latin-700.eot │ │ │ ├── open-sans-v15-latin-700.svg │ │ │ ├── open-sans-v15-latin-700.ttf │ │ │ ├── open-sans-v15-latin-700.woff │ │ │ ├── open-sans-v15-latin-700.woff2 │ │ │ ├── open-sans-v15-latin-regular.eot │ │ │ ├── open-sans-v15-latin-regular.svg │ │ │ ├── open-sans-v15-latin-regular.ttf │ │ │ ├── open-sans-v15-latin-regular.woff │ │ │ └── open-sans-v15-latin-regular.woff2 │ │ └── theme.css │ │ ├── nova-light │ │ ├── fonts │ │ │ ├── open-sans-v15-latin-300.eot │ │ │ ├── open-sans-v15-latin-300.svg │ │ │ ├── open-sans-v15-latin-300.ttf │ │ │ ├── open-sans-v15-latin-300.woff │ │ │ ├── open-sans-v15-latin-300.woff2 │ │ │ ├── open-sans-v15-latin-700.eot │ │ │ ├── open-sans-v15-latin-700.svg │ │ │ ├── open-sans-v15-latin-700.ttf │ │ │ ├── open-sans-v15-latin-700.woff │ │ │ ├── open-sans-v15-latin-700.woff2 │ │ │ ├── open-sans-v15-latin-regular.eot │ │ │ ├── open-sans-v15-latin-regular.svg │ │ │ ├── open-sans-v15-latin-regular.ttf │ │ │ ├── open-sans-v15-latin-regular.woff │ │ │ └── open-sans-v15-latin-regular.woff2 │ │ └── theme.css │ │ ├── rhea │ │ ├── fonts │ │ │ ├── open-sans-v15-latin-300.eot │ │ │ ├── open-sans-v15-latin-300.svg │ │ │ ├── open-sans-v15-latin-300.ttf │ │ │ ├── open-sans-v15-latin-300.woff │ │ │ ├── open-sans-v15-latin-300.woff2 │ │ │ ├── open-sans-v15-latin-700.eot │ │ │ ├── open-sans-v15-latin-700.svg │ │ │ ├── open-sans-v15-latin-700.ttf │ │ │ ├── open-sans-v15-latin-700.woff │ │ │ ├── open-sans-v15-latin-700.woff2 │ │ │ ├── open-sans-v15-latin-regular.eot │ │ │ ├── open-sans-v15-latin-regular.svg │ │ │ ├── open-sans-v15-latin-regular.ttf │ │ │ ├── open-sans-v15-latin-regular.woff │ │ │ └── open-sans-v15-latin-regular.woff2 │ │ └── theme.css │ │ └── x42Dark │ │ ├── fonts │ │ ├── open-sans-v15-latin-300.eot │ │ ├── open-sans-v15-latin-300.svg │ │ ├── open-sans-v15-latin-300.ttf │ │ ├── open-sans-v15-latin-300.woff │ │ ├── open-sans-v15-latin-300.woff2 │ │ ├── open-sans-v15-latin-700.eot │ │ ├── open-sans-v15-latin-700.svg │ │ ├── open-sans-v15-latin-700.ttf │ │ ├── open-sans-v15-latin-700.woff │ │ ├── open-sans-v15-latin-700.woff2 │ │ ├── open-sans-v15-latin-regular.eot │ │ ├── open-sans-v15-latin-regular.svg │ │ ├── open-sans-v15-latin-regular.ttf │ │ ├── open-sans-v15-latin-regular.woff │ │ └── open-sans-v15-latin-regular.woff2 │ │ └── theme.css ├── environments │ ├── environment.dev.ts │ ├── environment.prod.ts │ └── environment.ts ├── index.html ├── index.prod.html ├── karma.conf.js ├── main.ts ├── polyfills-test.ts ├── polyfills.ts ├── scss │ ├── _alert.scss │ ├── _badge.scss │ ├── _breadcrumb.scss │ ├── _button-group.scss │ ├── _buttons.scss │ ├── _card.scss │ ├── _carousel.scss │ ├── _close.scss │ ├── _code.scss │ ├── _custom-forms.scss │ ├── _custom.scss │ ├── _dropdown.scss │ ├── _fonts.scss │ ├── _forms.scss │ ├── _functions.scss │ ├── _grid.scss │ ├── _images.scss │ ├── _input-group.scss │ ├── _jumbotron.scss │ ├── _list-group.scss │ ├── _media.scss │ ├── _mixins.scss │ ├── _modal.scss │ ├── _nav.scss │ ├── _navbar.scss │ ├── _pagination.scss │ ├── _popover.scss │ ├── _print.scss │ ├── _progress.scss │ ├── _reboot.scss │ ├── _root.scss │ ├── _tables.scss │ ├── _tooltip.scss │ ├── _transitions.scss │ ├── _type.scss │ ├── _utilities.scss │ ├── _variables.scss │ ├── bootstrap-grid.scss │ ├── bootstrap-reboot.scss │ ├── bootstrap.scss │ ├── mixins │ │ ├── _alert.scss │ │ ├── _background-variant.scss │ │ ├── _badge.scss │ │ ├── _border-radius.scss │ │ ├── _box-shadow.scss │ │ ├── _breakpoints.scss │ │ ├── _buttons.scss │ │ ├── _caret.scss │ │ ├── _clearfix.scss │ │ ├── _float.scss │ │ ├── _forms.scss │ │ ├── _gradients.scss │ │ ├── _grid-framework.scss │ │ ├── _grid.scss │ │ ├── _hover.scss │ │ ├── _image.scss │ │ ├── _list-group.scss │ │ ├── _lists.scss │ │ ├── _nav-divider.scss │ │ ├── _navbar-align.scss │ │ ├── _pagination.scss │ │ ├── _reset-text.scss │ │ ├── _resize.scss │ │ ├── _screen-reader.scss │ │ ├── _size.scss │ │ ├── _table-row.scss │ │ ├── _text-emphasis.scss │ │ ├── _text-hide.scss │ │ ├── _text-truncate.scss │ │ ├── _transition.scss │ │ └── _visibility.scss │ ├── themes │ │ ├── _dark.scss │ │ └── _light.scss │ └── utilities │ │ ├── _align.scss │ │ ├── _background.scss │ │ ├── _borders.scss │ │ ├── _clearfix.scss │ │ ├── _display.scss │ │ ├── _embed.scss │ │ ├── _flex.scss │ │ ├── _float.scss │ │ ├── _position.scss │ │ ├── _screenreaders.scss │ │ ├── _sizing.scss │ │ ├── _spacing.scss │ │ ├── _text.scss │ │ └── _visibility.scss ├── styles.css ├── styles.css.map ├── test.ts ├── tsconfig.app.json ├── tsconfig.spec.json └── tslint.json ├── tsconfig.app.json ├── tsconfig.json ├── tsconfig.spec.json ├── tslint.json ├── xCore.UI.njsproj ├── xCore.UI.sln └── yarn.lock /.github/ISSUE_TEMPLATE/bug-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug Report 3 | about: Create a report to help us improve this repository. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | Bug Description: 11 | A clear and concise description of what the bug is. 12 | 13 | Steps to reproduce the bug: 14 | 15 | 01. Go to '...' 16 | 02. Click on '...' 17 | 03. Scroll down to '...' 18 | 04. See error '...' 19 | 20 | Screenshots: 21 | If applicable, attach screenshots to help explain the issue you've experienced, please post them in a chronological manner, and on the proper step of the bug reproduction section. 22 | 23 | Expected Behavior: 24 | A clear and concise description of what you expected to happen. 25 | 26 | Desktop (please complete the following information if applicable): 27 | OS: [e.g. iOS including version] 28 | Browser: [e.g. chrome, safari] 29 | Browser Version: [e.g. 22] 30 | 31 | Additional Context: 32 | Add any other context, descriptions or information about the problem here. 33 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature Request 3 | about: Suggest an idea for this project. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | Is the feature you are request related to a problem? Please describe it in detail: 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | Describe alternatives you have considered: 14 | A clear and concise description of any alternative solutions or features you've considered. 15 | 16 | Describe the solution you would like: 17 | A clear and concise description of what you want implemented, please also describe how this would benefit the project, and where you would like to see it implemented. Ex. 'This feature would be best located in the advanced tab, under Wallet Options'. 18 | 19 | Screenshots: 20 | Attach screenshots of other projects or features that you have seen on other software that aligns with what you want applied to this project. Explain in detail how you would have it implemented, as well as which section you think is optimal location. Ex. 'This feature would look great under the Send/Receive function'. 21 | 22 | Additional Context: 23 | Add any other context or screenshots about the feature request here. 24 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/wiki-updates.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Wiki Updates 3 | about: Create a report to help us improve our wiki. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | Update Description: 11 | A clear and concise description of what the update is about, is it related to a spelling mistake, error or simply an addition? 12 | 13 | Update location: 14 | Add a direct link here to wiki page you would like to update and the paragraph you would like your text to be added to. 15 | 16 | Update text: 17 | Add the new text here. 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 x42 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 |

3 | xServer 4 |

5 |

6 | About xCore 7 |

8 |

9 | x42 Protocol wallet, run your decentralized applications, and much more. 10 |

11 |

12 | 13 |

14 |

15 | -------------------------------------------------------------------------------- /xCore.UI/.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 | # You can see what browsers were selected by your queries by running: 6 | # npx browserslist 7 | 8 | > 0.5% 9 | last 2 versions 10 | Firefox ESR 11 | not dead 12 | not IE 9-11 # For IE 9-11 support, remove 'not'. -------------------------------------------------------------------------------- /xCore.UI/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /xCore.UI/.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # custom 4 | /build 5 | /daemon 6 | .vs 7 | 8 | # compiled output 9 | /dist 10 | /tmp 11 | /out-tsc 12 | # Only exists if Bazel was run 13 | /bazel-out 14 | 15 | # dependencies 16 | /node_modules 17 | 18 | # profiling files 19 | chrome-profiler-events.json 20 | speed-measure-plugin.json 21 | 22 | # IDEs and editors 23 | /.idea 24 | .project 25 | .classpath 26 | .c9/ 27 | *.launch 28 | .settings/ 29 | *.sublime-workspace 30 | 31 | # IDE - VSCode 32 | .vscode/* 33 | !.vscode/settings.json 34 | !.vscode/tasks.json 35 | !.vscode/launch.json 36 | !.vscode/extensions.json 37 | .history/* 38 | 39 | # misc 40 | /.sass-cache 41 | /connect.lock 42 | /coverage 43 | /libpeerconnection.log 44 | npm-debug.log 45 | yarn-error.log 46 | testem.log 47 | /typings 48 | 49 | # System Files 50 | .DS_Store 51 | Thumbs.db 52 | -------------------------------------------------------------------------------- /xCore.UI/e2e/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AngularElectronPage } from './app.po'; 2 | import { browser, element, by } from 'protractor'; 3 | 4 | describe('x42 App', () => { 5 | let page: AngularElectronPage; 6 | 7 | beforeEach(() => { 8 | page = new AngularElectronPage(); 9 | }); 10 | 11 | it('Page title should be x42', () => { 12 | page.navigateTo('/'); 13 | expect(page.getTitle()).toEqual('x42'); 14 | }); 15 | }); 16 | -------------------------------------------------------------------------------- /xCore.UI/e2e/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser } from 'protractor'; 2 | 3 | /* tslint:disable */ 4 | export class AngularElectronPage { 5 | navigateTo(route: string) { 6 | return browser.get(route); 7 | } 8 | 9 | getTitle() { 10 | let title: string; 11 | return browser.getTitle(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /xCore.UI/e2e/tsconfig.e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types":[ 8 | "jasmine", 9 | "node" 10 | ] 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /xCore.UI/mobile/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | # Generated by package manager 4 | node_modules/ 5 | 6 | # Generated by Cordova 7 | /plugins/ 8 | /platforms/ 9 | 10 | /www/ 11 | -------------------------------------------------------------------------------- /xCore.UI/mobile/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | xCore 4 | 5 | xCore for mobile devices 6 | 7 | 8 | x42 Protocol 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /xCore.UI/mobile/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "xCore.x42", 3 | "displayName": "x42", 4 | "version": "1.0.0", 5 | "description": "xCore for mobile devices", 6 | "main": "index.js", 7 | "scripts": { 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "author": "x42 Protocol", 11 | "license": "MIT", 12 | "devDependencies": { 13 | "cordova-android": "^9.0.0", 14 | "cordova-browser": "^6.0.0", 15 | "cordova-ios": "^6.1.0", 16 | "cordova-plugin-whitelist": "^1.3.4" 17 | }, 18 | "cordova": { 19 | "plugins": { 20 | "cordova-plugin-whitelist": {} 21 | }, 22 | "platforms": [ 23 | "android", 24 | "ios", 25 | "browser" 26 | ] 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /xCore.UI/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; -------------------------------------------------------------------------------- /xCore.UI/postinstall-web.js: -------------------------------------------------------------------------------- 1 | // Allow angular using electron module (native node modules) 2 | const fs = require('fs'); 3 | const f_angular = 'node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/webpack-configs/browser.js'; 4 | 5 | fs.readFile(f_angular, 'utf8', function (err, data) { 6 | if (err) { 7 | return console.log(err); 8 | } 9 | var result = data.replace(/target: "electron-renderer",/g, ''); 10 | var result = result.replace(/target: "web",/g, ''); 11 | var result = result.replace(/return \{/g, 'return {target: "web",'); 12 | 13 | fs.writeFile(f_angular, result, 'utf8', function (err) { 14 | if (err) return console.log(err); 15 | }); 16 | }); -------------------------------------------------------------------------------- /xCore.UI/postinstall.js: -------------------------------------------------------------------------------- 1 | // Allow angular using electron module (native node modules) 2 | const fs = require('fs'); 3 | const f_angular = 'node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/webpack-configs/browser.js'; 4 | 5 | fs.readFile(f_angular, 'utf8', function (err, data) { 6 | if (err) { 7 | return console.log(err); 8 | } 9 | var result = data.replace(/target: "electron-renderer",/g, ''); 10 | var result = result.replace(/target: "web",/g, ''); 11 | var result = result.replace(/return \{/g, 'return {target: "electron-renderer",'); 12 | 13 | fs.writeFile(f_angular, result, 'utf8', function (err) { 14 | if (err) return console.log(err); 15 | }); 16 | }); -------------------------------------------------------------------------------- /xCore.UI/src/app/app-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { RouterModule, Routes } from '@angular/router'; 3 | import { LoginComponent } from './login/login.component'; 4 | import { AppComponent } from './app.component'; 5 | import { ShutdownComponent } from './shared/components/shutdown/shutdown.component'; 6 | 7 | const routes: Routes = [ 8 | { path: 'app', component: AppComponent }, 9 | { path: 'login', component: LoginComponent }, 10 | { path: 'shutdown', component: ShutdownComponent }, 11 | { path: '', redirectTo: 'app', pathMatch: 'full' }, 12 | { path: '**', redirectTo: 'app', pathMatch: 'full' } 13 | ]; 14 | 15 | @NgModule({ 16 | imports: [RouterModule.forRoot(routes)], 17 | exports: [RouterModule] 18 | }) 19 | 20 | export class AppRoutingModule { } 21 | -------------------------------------------------------------------------------- /xCore.UI/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | #checkmark { 2 | stroke: green !important; 3 | stroke-dashoffset: 745.74853515625; 4 | stroke-dasharray: 745.74853515625; 5 | animation: dash 4s ease-out forwards; 6 | } 7 | -------------------------------------------------------------------------------- /xCore.UI/src/app/login/login.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/login/login.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/setup/create/confirm-mnemonic/confirm-mnemonic.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/setup/create/confirm-mnemonic/confirm-mnemonic.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/setup/create/confirm-mnemonic/secret-word-index-generator.ts: -------------------------------------------------------------------------------- 1 | export class SecretWordIndexGenerator { 2 | private readonly textPrefix = 'Word number '; 3 | constructor() { 4 | const getRandom = (...taken): number => { 5 | const min = 0; 6 | const max = 11; 7 | const getRandomInt = (): number => Math.floor(Math.random() * (max - min + 1) + min); 8 | let random = 0; 9 | while (taken.includes(random = getRandomInt())) { } 10 | return random; 11 | }; 12 | 13 | const one = getRandom(); 14 | const two = getRandom(one); 15 | const three = getRandom(one, two); 16 | 17 | const indexes = [one, two, three].sort((a, b) => a - b); 18 | this.index1 = indexes[0]; 19 | this.index2 = indexes[1]; 20 | this.index3 = indexes[2]; 21 | 22 | this.text1 = `${this.textPrefix}${this.index1 + 1}`; 23 | this.text2 = `${this.textPrefix}${this.index2 + 1}`; 24 | this.text3 = `${this.textPrefix}${this.index3 + 1}`; 25 | } 26 | 27 | index1: number; 28 | index2: number; 29 | index3: number; 30 | text1: string; 31 | text2: string; 32 | text3: string; 33 | } 34 | -------------------------------------------------------------------------------- /xCore.UI/src/app/setup/create/create.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/setup/create/create.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/setup/create/show-mnemonic/show-mnemonic.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/setup/create/show-mnemonic/show-mnemonic.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/setup/create/show-mnemonic/show-mnemonic.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 |
6 |
7 | 14 |
15 |
    16 |
  • 17 | {{ i + 1 }}. {{ word }} 18 |
  • 19 |
20 |
21 |
22 |
23 |
24 | 25 |
26 | 27 |
28 | 29 | -------------------------------------------------------------------------------- /xCore.UI/src/app/setup/recover/recover.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/setup/recover/recover.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/setup/setup-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { RouterModule, Routes } from '@angular/router'; 3 | import { SetupComponent } from './setup.component'; 4 | import { CreateComponent } from './create/create.component'; 5 | import { ShowMnemonicComponent } from './create/show-mnemonic/show-mnemonic.component'; 6 | import { ConfirmMnemonicComponent } from './create/confirm-mnemonic/confirm-mnemonic.component'; 7 | import { RecoverComponent } from './recover/recover.component'; 8 | 9 | const routes: Routes = [ 10 | { path: 'setup', component: SetupComponent }, 11 | { path: 'setup/create', component: CreateComponent }, 12 | { path: 'setup/create/show-mnemonic', component: ShowMnemonicComponent }, 13 | { path: 'setup/create/confirm-mnemonic', component: ConfirmMnemonicComponent }, 14 | { path: 'setup/recover', component: RecoverComponent } 15 | ]; 16 | 17 | @NgModule({ 18 | imports: [ RouterModule.forChild(routes) ] 19 | }) 20 | 21 | export class SetupRoutingModule { } 22 | -------------------------------------------------------------------------------- /xCore.UI/src/app/setup/setup.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/setup/setup.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/setup/setup.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | If you would like to create a new wallet, please click Create. 4 |
5 | If you have used the wallet before, please select Restore to recover your old wallet. 6 | 7 |
8 | 9 | 10 |
11 | 12 |
13 |
14 |
15 | -------------------------------------------------------------------------------- /xCore.UI/src/app/setup/setup.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { Router } from '@angular/router'; 3 | 4 | @Component({ 5 | selector: 'app-setup-component', 6 | templateUrl: './setup.component.html', 7 | styleUrls: ['./setup.component.css'], 8 | }) 9 | export class SetupComponent { 10 | constructor( 11 | private router: Router, 12 | ) { } 13 | public onCreateClicked() { 14 | this.router.navigate(['setup/create']); 15 | } 16 | 17 | public onRecoverClicked() { 18 | this.router.navigate(['setup/recover']); 19 | } 20 | 21 | public onBackClicked() { 22 | this.router.navigate(['login']); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/components/generic-modal/generic-modal.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/shared/components/generic-modal/generic-modal.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/components/generic-modal/generic-modal.component.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/components/generic-modal/generic-modal.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, AfterViewInit, ElementRef, ViewChild } from '@angular/core'; 2 | import { DynamicDialogRef, DynamicDialogConfig } from 'primeng/dynamicdialog'; 3 | 4 | @Component({ 5 | selector: 'app-generic-modal', 6 | templateUrl: './generic-modal.component.html', 7 | styleUrls: ['./generic-modal.component.css'] 8 | }) 9 | export class GenericModalComponent implements OnInit, AfterViewInit { 10 | 11 | public message: string; 12 | 13 | constructor( 14 | public ref: DynamicDialogRef, 15 | public config: DynamicDialogConfig, 16 | ) { } 17 | 18 | @ViewChild('closeButton') focusElement: ElementRef; 19 | 20 | ngOnInit() { 21 | this.message = this.config.data.message; 22 | } 23 | 24 | ngAfterViewInit() { 25 | setTimeout(() => { 26 | this.focusElement.nativeElement.focus(); 27 | }, 0); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/components/main-menu/main-menu.component.css: -------------------------------------------------------------------------------- 1 | :host 2 | ::ng-deep .ui-menubar-root-list { 3 | padding-left: 75px; 4 | } 5 | 6 | .setupmenu { 7 | float: left; 8 | width: 190px; 9 | } 10 | 11 | .setupcontent { 12 | } 13 | 14 | .logo { 15 | width: 85px; 16 | margin-left: 50px; 17 | text-align: center; 18 | font-size: large; 19 | } 20 | 21 | .logo img { 22 | width: 85px; 23 | } 24 | 25 | 26 | .container { 27 | display: grid; 28 | } 29 | 30 | img#logo { 31 | position: absolute; 32 | left: 0; 33 | margin-left: 10px; 34 | } 35 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/components/main-menu/main-menu.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { FormsModule, ReactiveFormsModule } from '@angular/forms'; 4 | import { MainMenuComponent } from './main-menu.component'; 5 | import { StatusBarComponent } from '../../../wallet/status-bar/status-bar.component'; 6 | import { ProgressBarModule } from 'primeng/progressbar'; 7 | 8 | // PrimeNG Components. 9 | import { MenubarModule } from 'primeng/menubar'; 10 | import { MenuModule } from 'primeng/menu'; 11 | import { ButtonModule } from 'primeng/button'; 12 | import { SidebarModule } from 'primeng/sidebar'; 13 | import { DropdownModule } from 'primeng/dropdown'; 14 | import { TooltipModule } from 'primeng/tooltip'; 15 | import { SharedModule } from '../../shared.module'; 16 | 17 | @NgModule({ 18 | imports: [ 19 | CommonModule, 20 | ButtonModule, 21 | MenubarModule, 22 | MenuModule, 23 | SidebarModule, 24 | DropdownModule, 25 | FormsModule, 26 | TooltipModule, 27 | ReactiveFormsModule, 28 | ProgressBarModule, 29 | SharedModule 30 | ], 31 | exports: [MainMenuComponent], 32 | declarations: [ 33 | MainMenuComponent, 34 | StatusBarComponent 35 | ], 36 | }) 37 | export class MainMenuModule { 38 | } 39 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/components/shutdown/shutdown.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/shared/components/shutdown/shutdown.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/components/shutdown/shutdown.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
Shutdown in progress ...
6 |
Please wait...
7 | 8 |
9 |   10 |
11 |
12 |
13 |
14 |
15 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/components/shutdown/shutdown.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { ApplicationStateService } from '../../../shared/services/application-state.service'; 3 | import { ThemeService } from '../../services/theme.service'; 4 | 5 | @Component({ 6 | selector: 'app-shutdown', 7 | templateUrl: './shutdown.component.html', 8 | styleUrls: ['./shutdown.component.css'] 9 | }) 10 | export class ShutdownComponent { 11 | constructor( 12 | public appState: ApplicationStateService, 13 | private themeService: ThemeService, 14 | ) { 15 | this.themeService.setTheme(); 16 | } 17 | 18 | forceExit() { 19 | window.close(); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/components/shutdown/shutdown.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { ShutdownComponent } from './shutdown.component'; 4 | import { ButtonModule } from 'primeng/button'; 5 | 6 | @NgModule({ 7 | imports: [CommonModule, ButtonModule], 8 | exports: [ShutdownComponent], 9 | declarations: [ShutdownComponent], 10 | }) 11 | export class ShutdownModule { 12 | } 13 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/components/wizard/step.component.ts: -------------------------------------------------------------------------------- 1 | import {Component, Input} from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'pe-step', 5 | styles: ['.pe-step-container {margin-bottom: 10px;}'], 6 | template: ` 7 |
8 | 9 |
10 | ` 11 | }) 12 | export class StepComponent { 13 | @Input() styleClass: string; 14 | @Input() label: string; 15 | active: boolean = false; 16 | } 17 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/components/wizard/wizard.component.css: -------------------------------------------------------------------------------- 1 | :host 2 | ::ng-deep .ui-steps.steps-custom { 3 | margin-bottom: 10px; 4 | } 5 | 6 | ::ng-deep .ui-steps.steps-custom .ui-steps-item .ui-menuitem-link { 7 | height: 10px; 8 | padding: 0 1em; 9 | } 10 | 11 | ::ng-deep .ui-steps.steps-custom .ui-steps-item .ui-steps-number { 12 | background-color: #0081c2; 13 | color: #FFFFFF; 14 | display: inline-block; 15 | width: 36px; 16 | border-radius: 50%; 17 | margin-top: -14px; 18 | margin-bottom: 10px; 19 | } 20 | 21 | ::ng-deep .ui-steps.steps-custom .ui-steps-item .ui-steps-title { 22 | color: #555555; 23 | } 24 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/components/wizard/wizard.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { StepComponent } from './step.component'; 4 | import { StepsComponent } from './steps.component'; 5 | 6 | // PrimeNG Components. 7 | import { ButtonModule } from 'primeng/button'; 8 | import { StepsModule } from 'primeng/steps'; 9 | 10 | @NgModule({ 11 | imports: [CommonModule, ButtonModule, StepsModule], 12 | exports: [StepComponent, StepsComponent], 13 | declarations: [StepComponent, StepsComponent] 14 | }) 15 | export class WizardModule { 16 | } 17 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/contants/x-document-constants.ts: -------------------------------------------------------------------------------- 1 | export enum InstructionTypeEnum { 2 | RegisterProfile = 1, 3 | PriceLock = 2, 4 | NewDnsZone = 3, 5 | UpdateDnsZone = 4, 6 | DeleteDnsZone = 5, 7 | NewApp = 6, 8 | MigrateApp = 7, 9 | BackupApp = 8, 10 | UpdateAppPlan = 9, 11 | RegisterNewNameserver = 10, 12 | } 13 | 14 | export enum XDocumentTypeEnum { 15 | Internal = 1, 16 | } 17 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/directives/auto-focus.directive.ts: -------------------------------------------------------------------------------- 1 | import { Directive, ElementRef, OnInit } from '@angular/core'; 2 | 3 | @Directive({ 4 | selector: '[appMyAutoFocus]' 5 | }) 6 | export class AutoFocusDirective implements OnInit { 7 | 8 | constructor( 9 | private elementRef: ElementRef, 10 | ) { } 11 | 12 | ngOnInit() { 13 | this.elementRef.nativeElement.focus(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/directives/disable.control.directive.ts: -------------------------------------------------------------------------------- 1 | import { Directive, Input } from '@angular/core'; 2 | import { NgControl } from '@angular/forms'; 3 | 4 | // tslint:disable-next-line:directive-selector 5 | @Directive({ selector: '[disableControl]' }) 6 | export class DisableControlDirective { 7 | @Input() set disableControl(condition: boolean) { 8 | const action = condition ? 'disable' : 'enable'; 9 | this.ngControl.control[action](); 10 | } 11 | 12 | constructor(private ngControl: NgControl) { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/directives/password-validation.directive.ts: -------------------------------------------------------------------------------- 1 | import { Directive } from '@angular/core'; 2 | import { AbstractControl } from '@angular/forms'; 3 | 4 | @Directive({ 5 | selector: '[appPasswordValidation]' 6 | }) 7 | export class PasswordValidationDirective { 8 | constructor() { } 9 | 10 | static MatchPassword(AC: AbstractControl) { 11 | const password = AC.get('walletPassword').value; 12 | const confirmPassword = AC.get('walletPasswordConfirmation').value; 13 | 14 | if (confirmPassword !== password) { 15 | AC.get('walletPasswordConfirmation').setErrors({ walletPasswordConfirmation: true }); 16 | } else { 17 | AC.get('walletPasswordConfirmation').setErrors(null); 18 | return null; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/directives/router-link-back.directive.ts: -------------------------------------------------------------------------------- 1 | import { Location } from '@angular/common'; 2 | import { Directive, HostListener } from '@angular/core'; 3 | import { Router } from '@angular/router'; 4 | 5 | // tslint:disable-next-line:directive-selector 6 | @Directive({ selector: ':not(a)[routerLinkBack]' }) 7 | // tslint:disable-next-line:directive-class-suffix 8 | export class RouterLinkBack { 9 | 10 | constructor(private location: Location, private router: Router) { } 11 | 12 | @HostListener('click') 13 | onClick(): boolean { 14 | if (this.location.path().indexOf('/history/block/') === 0) { 15 | this.router.navigateByUrl('/history'); 16 | } else { 17 | this.location.back(); 18 | } 19 | return true; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/http-interceptors/api-interceptor.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { HttpInterceptor, HttpRequest, HttpHandler } from '@angular/common/http'; 3 | 4 | @Injectable() 5 | export class ApiInterceptor implements HttpInterceptor { 6 | constructor() { } 7 | 8 | intercept(req: HttpRequest, next: HttpHandler) { 9 | const finalReq = req.clone({ 10 | headers: req.headers.set('Content-Type', 'application/json') 11 | }); 12 | 13 | return next.handle(finalReq); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/http-interceptors/index.ts: -------------------------------------------------------------------------------- 1 | /* "Barrel" of Http Interceptors */ 2 | import { HTTP_INTERCEPTORS } from '@angular/common/http'; 3 | import { LoggingInterceptor } from './logging-interceptor'; 4 | import { ApiInterceptor } from './api-interceptor'; 5 | 6 | 7 | /** Http interceptor providers in outside-in order */ 8 | export const httpInterceptorProviders = [ 9 | { provide: HTTP_INTERCEPTORS, useClass: ApiInterceptor, multi: true }, 10 | { provide: HTTP_INTERCEPTORS, useClass: LoggingInterceptor, multi: true }, 11 | ]; 12 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/http-interceptors/logging-interceptor.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { HttpInterceptor, HttpHandler, HttpRequest, HttpResponse } from '@angular/common/http'; 3 | import { finalize, tap } from 'rxjs/operators'; 4 | import { Logger } from '../services/logger.service'; 5 | 6 | @Injectable() 7 | export class LoggingInterceptor implements HttpInterceptor { 8 | constructor(private log: Logger) { } 9 | 10 | intercept(req: HttpRequest, next: HttpHandler) { 11 | const started = Date.now(); 12 | let ok: string; 13 | 14 | // extend server response observable with logging 15 | return next.handle(req) 16 | .pipe( 17 | tap( 18 | // Succeeds when there is a response; ignore other events 19 | event => ok = event instanceof HttpResponse ? 'succeeded' : '', 20 | // Operation failed; error is an HttpErrorResponse 21 | error => ok = 'failed' 22 | ), 23 | // Log when response observable either completes or errors 24 | finalize(() => { 25 | const elapsed = Date.now() - started; 26 | const msg = `${req.method} "${req.urlWithParams}" 27 | ${ok} in ${elapsed} ms.`; 28 | 29 | this.log.info(msg); 30 | }) 31 | ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/address-label.ts: -------------------------------------------------------------------------------- 1 | export class AddressLabel { 2 | constructor(label: string, address: string) { 3 | this.label = label; 4 | this.address = address; 5 | } 6 | 7 | public label: string; 8 | public address: string; 9 | } 10 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/address-type.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | export enum AddressTypes { 3 | Classic = 1, 4 | Segwit = 2 5 | } 6 | 7 | @Injectable() 8 | export class AddressType { 9 | constructor() { 10 | const savedAddressType = localStorage.getItem('addressType'); 11 | 12 | if (savedAddressType === undefined || savedAddressType === null || savedAddressType === '') { 13 | const defaultType = AddressTypes.Classic; 14 | this.changeType(defaultType); 15 | this.Type = defaultType; 16 | } else { 17 | this.Type = Number(savedAddressType); 18 | } 19 | } 20 | 21 | public Type: AddressTypes; 22 | 23 | public IsSegwit(): string { 24 | return (this.Type === AddressTypes.Segwit).toString().toLowerCase(); 25 | } 26 | 27 | public changeType(type: AddressTypes) { 28 | this.Type = type; 29 | localStorage.setItem('addressType', type.toString()); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/coldhotstaterequest.ts: -------------------------------------------------------------------------------- 1 | export class ColdHotStateRequest { 2 | constructor( 3 | Name: string, 4 | isColdHotWallet: boolean 5 | ) { 6 | this.Name = Name; 7 | this.isColdHotWallet = isColdHotWallet; 8 | } 9 | public Name: string; 10 | public isColdHotWallet: boolean; 11 | } 12 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/coldstakingcreateaccountrequest.ts: -------------------------------------------------------------------------------- 1 | export class ColdStakingCreateAccountRequest { 2 | constructor( 3 | walletName: string, 4 | walletPassword: string, 5 | isColdWalletAccount: boolean 6 | ) { 7 | this.walletName = walletName; 8 | this.walletPassword = walletPassword; 9 | this.isColdWalletAccount = isColdWalletAccount; 10 | } 11 | 12 | public walletName: string; 13 | public walletPassword: string; 14 | public isColdWalletAccount: boolean; 15 | } 16 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/coldstakingcreateaccountresponse.ts: -------------------------------------------------------------------------------- 1 | export class ColdStakingCreateAccountResponse { 2 | constructor( 3 | accountName: string 4 | ) { 5 | this.accountName = accountName; 6 | } 7 | public accountName: string; 8 | } 9 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/coldstakingcreateaddressresponse.ts: -------------------------------------------------------------------------------- 1 | export class ColdStakingCreateAddressResponse { 2 | constructor( 3 | address: string 4 | ) { 5 | this.address = address; 6 | } 7 | public address: string; 8 | } 9 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/coldstakinggetinforesponse.ts: -------------------------------------------------------------------------------- 1 | export class ColdStakingGetInfoResponse { 2 | constructor( 3 | coldWalletAccountExists: boolean, 4 | hotWalletAccountExists: boolean 5 | ) { 6 | this.coldWalletAccountExists = coldWalletAccountExists; 7 | this.hotWalletAccountExists = hotWalletAccountExists; 8 | } 9 | public coldWalletAccountExists: boolean; 10 | public hotWalletAccountExists: boolean; 11 | } 12 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/coldstakingsetup.ts: -------------------------------------------------------------------------------- 1 | export class ColdStakingSetup { 2 | constructor( 3 | hotWalletAddress: string, 4 | coldWalletAddress: string, 5 | amount: number, 6 | walletName: string, 7 | walletPassword: string, 8 | walletAccount: string, 9 | fees: number 10 | ) { 11 | this.hotWalletAddress = hotWalletAddress; 12 | this.coldWalletAddress = coldWalletAddress; 13 | this.amount = amount; 14 | this.walletName = walletName; 15 | this.walletPassword = walletPassword; 16 | this.walletAccount = walletAccount; 17 | this.fees = fees; 18 | } 19 | public hotWalletAddress: string; 20 | public coldWalletAddress: string; 21 | public amount: number; 22 | public walletName: string; 23 | public walletPassword: string; 24 | public walletAccount: string; 25 | public fees: number; 26 | } 27 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/coldstakingsetupresponse.ts: -------------------------------------------------------------------------------- 1 | export class ColdStakingSetupResponse { 2 | constructor( 3 | transactionHex: string 4 | ) { 5 | this.transactionHex = transactionHex; 6 | } 7 | public transactionHex: string; 8 | } 9 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/coldstakingwithdrawalrequest.ts: -------------------------------------------------------------------------------- 1 | export class ColdStakingWithdrawalRequest { 2 | constructor( 3 | receivingAddress: string, 4 | amount: number, 5 | walletName: string, 6 | walletPassword: string, 7 | fees: number 8 | ) { 9 | this.receivingAddress = receivingAddress; 10 | this.amount = amount; 11 | this.walletName = walletName; 12 | this.walletPassword = walletPassword; 13 | this.fees = fees; 14 | } 15 | public receivingAddress: string; 16 | public amount: number; 17 | public walletName: string; 18 | public walletPassword: string; 19 | public fees: number; 20 | } 21 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/coldstakingwithdrawalresponse.ts: -------------------------------------------------------------------------------- 1 | export class ColdStakingWithdrawalResponse { 2 | constructor( 3 | transactionHex: string 4 | ) { 5 | this.transactionHex = transactionHex; 6 | } 7 | public transactionHex: string; 8 | } 9 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/error-response.ts: -------------------------------------------------------------------------------- 1 | export class ErrorResponse { 2 | errorNumber: number; 3 | message: string; 4 | friendlyMessage: string; 5 | } 6 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/fee-estimation.ts: -------------------------------------------------------------------------------- 1 | export class Recipient { 2 | constructor(destinationAddress: string, amount: string) { 3 | this.destinationAddress = destinationAddress; 4 | this.amount = amount; 5 | } 6 | 7 | destinationAddress: string; 8 | amount: string; 9 | } 10 | 11 | export class FeeEstimation { 12 | constructor(walletName: string, accountName: string, destinationAddress: string, amount: string, feeType: string, allowUnconfirmed: boolean) { 13 | this.walletName = walletName; 14 | this.accountName = accountName; 15 | this.recipients = [new Recipient(destinationAddress, amount)]; 16 | this.feeType = feeType; 17 | this.allowUnconfirmed = allowUnconfirmed; 18 | } 19 | 20 | walletName: string; 21 | accountName: string; 22 | recipients: Recipient[]; 23 | feeType: string; 24 | allowUnconfirmed: boolean; 25 | } 26 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/general-info.ts: -------------------------------------------------------------------------------- 1 | export class GeneralInfo { 2 | 3 | constructor( 4 | chainTip: number, connectedNodes: number, creationTime: Date, isChainSynced: boolean, isDecrypted: boolean, lastBlockSyncedHeight: number, network: string, walletFilePath: string) { 5 | this.chainTip = chainTip; 6 | this.connectedNodes = connectedNodes; 7 | this.creationTime = creationTime; 8 | this.isChainSynced = isChainSynced; 9 | this.isDecrypted = isDecrypted; 10 | this.lastBlockSyncedHeight = lastBlockSyncedHeight; 11 | this.network = network; 12 | this.walletFilePath = walletFilePath; 13 | } 14 | 15 | chainTip: number; 16 | connectedNodes: number; 17 | creationTime: Date | string | number | any; 18 | isChainSynced: boolean; 19 | isDecrypted: boolean; 20 | lastBlockSyncedHeight: number; 21 | network: string; 22 | walletFilePath: string; 23 | } 24 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/mnemonic.ts: -------------------------------------------------------------------------------- 1 | export class Mnemonic { 2 | constructor(mnemonic: string) { 3 | this.mnemonic = mnemonic; 4 | } 5 | mnemonic: string; 6 | } 7 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/pricelockutil.ts: -------------------------------------------------------------------------------- 1 | export class PriceLockUtil { 2 | public address: string; 3 | public priceLockId = ''; 4 | 5 | public setPriceLockId(address: string) { 6 | this.priceLockId = 'PL' + this.Base64EncodeUrl(btoa(address)); 7 | } 8 | 9 | public getPriceLockId() { 10 | try { 11 | return atob(this.Base64DecodeUrl(this.priceLockId.substring(2))); 12 | } 13 | catch (err) { 14 | return ''; 15 | } 16 | } 17 | 18 | private Base64EncodeUrl(str) { 19 | return str.replace(/\+/g, '-').replace(/\//g, '_').replace(/\=+$/, ''); 20 | } 21 | 22 | private Base64DecodeUrl(str) { 23 | str = (str + '===').slice(0, str.length + (str.length % 4)); 24 | return str.replace(/-/g, '+').replace(/_/g, '/'); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/serveridresponse.ts: -------------------------------------------------------------------------------- 1 | export class ServerIDResponse { 2 | public address: string; 3 | public serverId = ''; 4 | 5 | public setServerId(address: string) { 6 | this.serverId = 'SID' + this.Base64EncodeUrl(btoa(address)); 7 | } 8 | 9 | public getAddressFromServerId() { 10 | try { 11 | return atob(this.Base64DecodeUrl(this.serverId.substring(3))); 12 | } 13 | catch (err) { 14 | return ''; 15 | } 16 | } 17 | 18 | private Base64EncodeUrl(str) { 19 | return str.replace(/\+/g, '-').replace(/\//g, '_').replace(/\=+$/, ''); 20 | } 21 | 22 | private Base64DecodeUrl(str) { 23 | str = (str + '===').slice(0, str.length + (str.length % 4)); 24 | return str.replace(/-/g, '+').replace(/_/g, '/'); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/sidechain-fee-estimation.ts: -------------------------------------------------------------------------------- 1 | export class Recipient { 2 | constructor(destinationAddress: string, amount: string) { 3 | this.destinationAddress = destinationAddress; 4 | this.amount = amount; 5 | } 6 | 7 | destinationAddress: string; 8 | amount: string; 9 | } 10 | 11 | export class SidechainFeeEstimation { 12 | constructor(walletName: string, accountName: string, federationAddress: string, destinationAddress: string, amount: string, feeType: string, allowUnconfirmed: boolean) { 13 | this.walletName = walletName; 14 | this.accountName = accountName; 15 | this.recipients = [new Recipient(federationAddress, amount)]; 16 | this.opreturndata = destinationAddress; 17 | this.feeType = feeType; 18 | this.allowUnconfirmed = allowUnconfirmed; 19 | } 20 | 21 | walletName: string; 22 | accountName: string; 23 | recipients: Recipient[]; 24 | opreturndata: string; 25 | feeType: string; 26 | allowUnconfirmed: boolean; 27 | } 28 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/signmessageresponse.ts: -------------------------------------------------------------------------------- 1 | export class SignMessageResponse { 2 | constructor( 3 | signedAddress: string, 4 | signature: string 5 | ) { 6 | this.signedAddress = signedAddress; 7 | this.signature = signature; 8 | } 9 | public signedAddress: string; 10 | public signature: string; 11 | } 12 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/split-coins.ts: -------------------------------------------------------------------------------- 1 | export class SplitCoins { 2 | constructor(walletName: string, accountName: string, walletPassword: string, totalAmountToSplit: string, utxosCount: string) { 3 | this.walletName = walletName; 4 | this.accountName = accountName; 5 | this.walletPassword = walletPassword; 6 | this.totalAmountToSplit = totalAmountToSplit; 7 | this.utxosCount = utxosCount; 8 | } 9 | 10 | walletName: string; 11 | accountName: string; 12 | walletPassword: string; 13 | totalAmountToSplit: string; 14 | utxosCount: string; 15 | } 16 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/test-ssh-credential-model.ts: -------------------------------------------------------------------------------- 1 | export class TestSshConnection { 2 | constructor(ipAddress: string, sshUser: string, ssHPassword: string) { 3 | this.ipAddress = ipAddress; 4 | this.sshUser = sshUser; 5 | this.ssHPassword = ssHPassword; 6 | } 7 | 8 | ipAddress: string; 9 | sshUser: string; 10 | ssHPassword: string; 11 | } 12 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/transaction-building.ts: -------------------------------------------------------------------------------- 1 | export class Recipient { 2 | constructor(destinationAddress: string, amount: string) { 3 | this.destinationAddress = destinationAddress; 4 | this.amount = amount; 5 | } 6 | 7 | destinationAddress: string; 8 | amount: string; 9 | } 10 | 11 | export class TransactionBuilding { 12 | constructor(walletName: string, accountName: string, password: string, destinationAddress: string, amount: string, feeAmount: number, allowUnconfirmed: boolean, shuffleOutputs: boolean, segwitChangeAddress: string, opReturnData?: string, opReturnAmount?: number) { 13 | this.walletName = walletName; 14 | this.accountName = accountName; 15 | this.password = password; 16 | this.recipients = [new Recipient(destinationAddress, amount)]; 17 | this.feeAmount = feeAmount; 18 | this.allowUnconfirmed = allowUnconfirmed; 19 | this.shuffleOutputs = shuffleOutputs; 20 | this.opReturnData = opReturnData; 21 | this.opReturnAmount = opReturnAmount; 22 | this.segwitChangeAddress = segwitChangeAddress; 23 | } 24 | 25 | walletName: string; 26 | accountName: string; 27 | password: string; 28 | recipients: Recipient[]; 29 | feeAmount: number; 30 | allowUnconfirmed: boolean; 31 | shuffleOutputs: boolean; 32 | opReturnData: string; 33 | opReturnAmount: number; 34 | segwitChangeAddress: string; 35 | 36 | public AddRecipient(destinationAddress: string, amount: string) { 37 | this.recipients.push(new Recipient(destinationAddress, amount)); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/transaction-info.ts: -------------------------------------------------------------------------------- 1 | export class TransactionInfo { 2 | constructor(transactionType: string, transactionId: string, transactionAmount: number, transactionFee: number, transactionConfirmedInBlock: number, transactionTimestamp: number) { 3 | this.transactionType = transactionType; 4 | this.transactionId = transactionId; 5 | this.transactionAmount = transactionAmount; 6 | this.transactionFee = transactionFee; 7 | this.transactionConfirmedInBlock = transactionConfirmedInBlock; 8 | this.transactionTimestamp = transactionTimestamp; 9 | } 10 | 11 | public transactionType: string; 12 | public transactionId: string; 13 | public transactionAmount: number; 14 | public transactionFee: number; 15 | public transactionConfirmedInBlock?: number; 16 | public transactionTimestamp: number; 17 | } 18 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/transaction-output.ts: -------------------------------------------------------------------------------- 1 | export class TransactionOutput { 2 | constructor(bestblock: string, confirmations: number, value: number, scriptPubKey: ScriptPubKey, coinbase: boolean) { 3 | this.bestblock = bestblock; 4 | this.confirmations = confirmations; 5 | this.value = value; 6 | this.scriptPubKey = scriptPubKey; 7 | this.coinbase = coinbase; 8 | } 9 | 10 | public bestblock: string; 11 | public confirmations: number; 12 | public value: number; 13 | public scriptPubKey: ScriptPubKey; 14 | public coinbase: boolean; 15 | } 16 | 17 | export interface ScriptPubKey { 18 | asm: string; 19 | hex: string; 20 | type: string; 21 | } 22 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/transaction-sending.ts: -------------------------------------------------------------------------------- 1 | export class TransactionSending { 2 | constructor(hex: string) { 3 | this.hex = hex; 4 | } 5 | 6 | hex: string; 7 | } 8 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/update-info.ts: -------------------------------------------------------------------------------- 1 | 2 | // TODO: Find the official UpdateInfo type from "electron-builder" lib. 3 | export interface UpdateInfo { 4 | files: UpdateFile[]; 5 | path: string; 6 | releaseDate: string; 7 | releaseName: string; 8 | releaseNotes: string; 9 | sha512: string; 10 | version: string; 11 | } 12 | 13 | export interface UpdateFile { 14 | sha512: string; 15 | size: number; 16 | url: string; 17 | } 18 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/validateaddressresponse.ts: -------------------------------------------------------------------------------- 1 | export class ValidateAddressResponse { 2 | constructor( 3 | isvalid: boolean, 4 | address: string, 5 | scriptPubKey: string, 6 | isscript: boolean, 7 | iswitness: boolean 8 | ) { 9 | this.isvalid = isvalid; 10 | this.address = address; 11 | this.scriptPubKey = scriptPubKey; 12 | this.isscript = isscript; 13 | this.iswitness = iswitness; 14 | } 15 | public isvalid: boolean; 16 | public address: string; 17 | public scriptPubKey: string; 18 | public isscript: boolean; 19 | public iswitness: boolean; 20 | } 21 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/wallet-creation.ts: -------------------------------------------------------------------------------- 1 | export class WalletCreation { 2 | constructor(name: string, mnemonic: string, password: string, passphrase: string, folderPath: string = null ) { 3 | this.name = name; 4 | this.mnemonic = mnemonic; 5 | this.password = password; 6 | this.passphrase = passphrase; 7 | this.folderPath = folderPath; 8 | } 9 | 10 | name: string; 11 | mnemonic: string; 12 | password: string; 13 | passphrase: string; 14 | folderPath?: string; 15 | } 16 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/wallet-info.ts: -------------------------------------------------------------------------------- 1 | export class WalletInfo { 2 | constructor(walletName: string) { 3 | this.walletName = walletName; 4 | } 5 | 6 | public walletName: string; 7 | public accountName = 'account 0'; 8 | } 9 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/wallet-load.ts: -------------------------------------------------------------------------------- 1 | export class WalletLoad { 2 | constructor(name: string, password: string, folderPath: string = null ) { 3 | this.name = name; 4 | this.password = password; 5 | this.folderPath = folderPath; 6 | } 7 | 8 | public name: string; 9 | public password: string; 10 | public folderPath?: string; 11 | } 12 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/wallet-recovery.ts: -------------------------------------------------------------------------------- 1 | export class WalletRecovery { 2 | constructor(walletName: string, mnemonic: string, password: string, passphrase: string, creationDate: Date, folderPath: string = null) { 3 | this.name = walletName; 4 | this.mnemonic = mnemonic; 5 | this.password = password; 6 | this.passphrase = passphrase; 7 | this.creationDate = creationDate; 8 | this.folderPath = folderPath; 9 | } 10 | 11 | mnemonic: string; 12 | password: string; 13 | passphrase: string; 14 | name: string; 15 | creationDate: Date; 16 | folderPath?: string; 17 | } 18 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/wallet-rescan.ts: -------------------------------------------------------------------------------- 1 | export class WalletRescan { 2 | constructor(walletName: string, fromDate: Date, all: boolean, resync: boolean) { 3 | this.name = walletName; 4 | this.fromDate = fromDate; 5 | this.all = all; 6 | this.resync = resync; 7 | } 8 | 9 | name: string; 10 | fromDate: Date; 11 | all: boolean; 12 | resync: boolean; 13 | } 14 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/wallet-signmessagerequest.ts: -------------------------------------------------------------------------------- 1 | export class SignMessageRequest { 2 | constructor(walletName: string, accountName: string, password: string, externalAddress: string, message: string) { 3 | this.walletName = walletName; 4 | this.accountName = accountName; 5 | this.password = password; 6 | this.externalAddress = externalAddress; 7 | this.message = message; 8 | } 9 | 10 | walletName: string; 11 | accountName: string; 12 | password: string; 13 | externalAddress: string; 14 | message: string; 15 | } 16 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/wallet-verifyrequest.ts: -------------------------------------------------------------------------------- 1 | export class VerifyRequest { 2 | constructor(signature: string, externalAddress: string, message: string) { 3 | this.signature = signature; 4 | this.externalAddress = externalAddress; 5 | this.message = message; 6 | } 7 | 8 | signature: string; 9 | externalAddress: string; 10 | message: string; 11 | } 12 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/worker.ts: -------------------------------------------------------------------------------- 1 | export class Worker { 2 | running: boolean; 3 | worker: WorkerType; 4 | } 5 | 6 | export enum WorkerType { 7 | NODE_STATUS, 8 | STAKING_INFO, 9 | ACCOUNT_BALANCE, 10 | ACCOUNT_MAX_BALANCE, 11 | HOT_BALANCE, 12 | COLD_BALANCE, 13 | HISTORY, 14 | HOT_HISTORY, 15 | COLD_HISTORY, 16 | XSERVER_INFO, 17 | GENERAL_INFO, 18 | ADDRESS_BOOK, 19 | TX_CONFIRMATION, 20 | COINGECKO_EXCHANGE_RATES, 21 | X42_HISTORY, 22 | X42_STAKING_HISTORY 23 | } 24 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/x-document.ts: -------------------------------------------------------------------------------- 1 | import { 2 | InstructionTypeEnum, 3 | XDocumentTypeEnum, 4 | } from '../contants/x-document-constants'; 5 | 6 | export class XDocument { 7 | constructor( 8 | documentType: XDocumentTypeEnum, 9 | instructionType: InstructionTypeEnum, 10 | keyAddress: string, 11 | data: any, 12 | wallet: string, 13 | password: string 14 | ) { 15 | this.documentType = documentType; 16 | this.instructionType = instructionType; 17 | this.keyAddress = keyAddress; 18 | this.data = data; 19 | this.wallet = wallet; 20 | this.account = 'coldStakingColdAddresses'; 21 | this.password = password; 22 | 23 | } 24 | 25 | public documentType: XDocumentTypeEnum; 26 | public instructionType: InstructionTypeEnum; 27 | public keyAddress: string; 28 | public data: any; 29 | public wallet: string; 30 | public account: string; 31 | public password: string; 32 | 33 | } 34 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/xserver-create-pl-request.ts: -------------------------------------------------------------------------------- 1 | export class CreatePriceLockRequest { 2 | constructor(requestAmount: number, requestAmountPair: number, destinationAddress: string, expireBlock: number) { 3 | this.requestAmount = requestAmount; 4 | this.requestAmountPair = requestAmountPair; 5 | this.destinationAddress = destinationAddress; 6 | this.expireBlock = expireBlock; 7 | } 8 | 9 | public requestAmount: number; 10 | public requestAmountPair: number; 11 | public destinationAddress: string; 12 | public expireBlock: number; 13 | } 14 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/xserver-pairs-response.ts: -------------------------------------------------------------------------------- 1 | export class PairResults { 2 | constructor(pairs: Pair[]) { 3 | this.pairs = pairs; 4 | } 5 | 6 | public pairs: Pair[]; 7 | } 8 | 9 | export class Pair { 10 | constructor(id: number, symbol: string) { 11 | this.id = id; 12 | this.symbol = symbol; 13 | } 14 | 15 | public id: number; 16 | public symbol: string; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/xserver-profile-reserve-request.ts: -------------------------------------------------------------------------------- 1 | export class ProfileReserveRequest 2 | { 3 | constructor(name: string, keyAddress: string, returnAddress: string, signature: string) { 4 | this.name = name; 5 | this.keyAddress = keyAddress; 6 | this.returnAddress = returnAddress; 7 | this.signature = signature; 8 | } 9 | 10 | public name: string; 11 | public keyAddress: string; 12 | public returnAddress: string; 13 | public signature: string; 14 | } 15 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/xserver-provisioning-request.ts: -------------------------------------------------------------------------------- 1 | export class XserverProvisioningRequest 2 | { 3 | constructor(ipAddress: string, sshUser: string, ssHPassword: string, emailAddress: string, certificatePassword: string, databasePassword: string, profile: string) { 4 | this.ipAddress = ipAddress; 5 | this.sshUser = sshUser; 6 | this.ssHPassword = ssHPassword; 7 | this.emailAddress = emailAddress; 8 | this.certificatePassword = certificatePassword; 9 | this.databasePassword = databasePassword; 10 | this.profile = profile; 11 | 12 | } 13 | public ipAddress: string; 14 | public sshUser: string; 15 | public ssHPassword: string; 16 | public emailAddress: string; 17 | public certificatePassword: string; 18 | public databasePassword: string; 19 | public profile: string; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/xserver-registration-request.ts: -------------------------------------------------------------------------------- 1 | export class XServerRegistrationRequest { 2 | constructor(profileName: string, networkProtocol: number, networkAddress: string, networkPort: number, signature: string, keyAddress: string, signAddress: string, feeAddress: string, tier: number) { 3 | this.profileName = profileName; 4 | this.networkProtocol = networkProtocol; 5 | this.networkAddress = networkAddress; 6 | this.networkPort = networkPort; 7 | this.keyAddress = keyAddress; 8 | this.feeAddress = feeAddress; 9 | this.signature = signature; 10 | this.signAddress = signAddress; 11 | this.tier = tier; 12 | } 13 | 14 | public profileName: string; 15 | public networkProtocol: number; 16 | public networkAddress: string; 17 | public networkPort: number; 18 | public keyAddress: string; 19 | public feeAddress: string; 20 | public signature: string; 21 | public signAddress: string; 22 | public tier: number; 23 | } 24 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/xserver-registration-response.ts: -------------------------------------------------------------------------------- 1 | export class XServerRegistrationResponse { 2 | constructor(success: boolean, resultMessage: string) { 3 | this.success = success; 4 | this.resultMessage = resultMessage; 5 | } 6 | 7 | public success: boolean; 8 | public resultMessage: string; 9 | } 10 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/xserver-status.ts: -------------------------------------------------------------------------------- 1 | export class XServerStatus { 2 | constructor(connected: number) { 3 | this.connected = connected; 4 | } 5 | 6 | public connected: number; 7 | public nodes: XServerPeer[]; 8 | } 9 | 10 | export class XServerPeer { 11 | public name: string; 12 | 13 | public networkProtocol: number; 14 | 15 | public networkAddress: string; 16 | 17 | public priority: number; 18 | 19 | public networkPort: number; 20 | 21 | public version: string; 22 | 23 | public responseTime: number; 24 | 25 | public tier: number; 26 | } 27 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/xserver-submit-payment-request.ts: -------------------------------------------------------------------------------- 1 | export class SubmitPaymentRequest 2 | { 3 | constructor(priceLockId: string, transactionHex: string, transactionId: string, payeeSignature: string) { 4 | this.priceLockId = priceLockId; 5 | this.transactionHex = transactionHex; 6 | this.transactionId = transactionId; 7 | this.payeeSignature = payeeSignature; 8 | } 9 | 10 | public priceLockId: string; 11 | public transactionHex: string; 12 | public transactionId: string; 13 | public payeeSignature: string; 14 | } 15 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/xserver-test-request.ts: -------------------------------------------------------------------------------- 1 | export class XServerTestRequest { 2 | constructor(networkProtocol: number, networkAddress: string, networkPort: number, blockHeight: number) { 3 | this.networkProtocol = networkProtocol; 4 | this.networkAddress = networkAddress; 5 | this.networkPort = networkPort; 6 | this.blockHeight = blockHeight; 7 | } 8 | 9 | public networkProtocol: number; 10 | public networkAddress: string; 11 | public networkPort: number; 12 | public blockHeight: number; 13 | } 14 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/xserver-test-response.ts: -------------------------------------------------------------------------------- 1 | export class XServerTestResponse { 2 | constructor(success: boolean, resultMessage: string) { 3 | this.success = success; 4 | this.resultMessage = resultMessage; 5 | } 6 | 7 | public success: boolean; 8 | public resultMessage: string; 9 | } 10 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/xserver-update-request.ts: -------------------------------------------------------------------------------- 1 | export class XserverUpdateRequest { 2 | constructor(ipAddress: string, sshUser: string, ssHPassword: string, profile: string) { 3 | this.ipAddress = ipAddress; 4 | this.sshUser = sshUser; 5 | this.ssHPassword = ssHPassword; 6 | this.profile = profile; 7 | 8 | } 9 | public ipAddress: string; 10 | public sshUser: string; 11 | public ssHPassword: string; 12 | public profile: string; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/xserver-wordpress-provision-request.ts: -------------------------------------------------------------------------------- 1 | export class WordPressProvisionRequest 2 | { 3 | constructor(subdomain: string) { 4 | this.subdomain = subdomain; 5 | } 6 | public subdomain: string; 7 | } 8 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/models/xserver-wordpress-reserve-request.ts: -------------------------------------------------------------------------------- 1 | export class WordPressReserveRequest 2 | { 3 | constructor(name: string, keyAddress: string, returnAddress: string, signature: string) { 4 | this.name = name; 5 | this.keyAddress = keyAddress; 6 | this.returnAddress = returnAddress; 7 | this.signature = signature; 8 | } 9 | 10 | public name: string; 11 | public keyAddress: string; 12 | public returnAddress: string; 13 | public signature: string; 14 | } 15 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/pipes/coin-notation.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | import { GlobalService } from '../services/global.service'; 3 | 4 | @Pipe({ 5 | name: 'coinNotation' 6 | }) 7 | export class CoinNotationPipe implements PipeTransform { 8 | constructor(private globalService: GlobalService) { 9 | this.setCoinUnit(); 10 | } 11 | 12 | private coinUnit: string; 13 | // private coinNotation: number; 14 | 15 | transform(value: number): number { 16 | return this.globalService.transform(value); 17 | } 18 | 19 | getCoinUnit() { 20 | return this.coinUnit; 21 | } 22 | 23 | setCoinUnit() { 24 | this.coinUnit = this.globalService.getCoinUnit(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/pipes/price-unit.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ 4 | name: 'priceUnit' 5 | }) 6 | export class PriceUnitPipe implements PipeTransform { 7 | 8 | private units = ['', 'K', 'M', 'B']; 9 | 10 | transform(value: number, precision: number = 2): string { 11 | if (isNaN(parseFloat(String(value))) || !isFinite(value)) { return '?'; } 12 | 13 | let unit = 0; 14 | 15 | while (value >= 1000) { 16 | value /= 1000; 17 | unit++; 18 | } 19 | 20 | if ((value.toFixed === undefined)) { 21 | value = parseFloat(String(value)); 22 | } 23 | 24 | return (value.toFixed(+precision) + '' + this.units[unit]); 25 | } 26 | } 27 | 28 | 29 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/pipes/size-unit.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ 4 | name: 'sizeUnit' 5 | }) 6 | export class SizeUnitPipe implements PipeTransform { 7 | 8 | private units = ['bytes', 'KB', 'MB', 'GB']; 9 | 10 | transform(value: number, precision: number = 1): string { 11 | if (typeof value === 'number') { 12 | if (isNaN(parseFloat(String(value))) || !isFinite(value)) { return '?'; } 13 | 14 | let unit = 0; 15 | 16 | while (value >= 1024) { 17 | value /= 1024; 18 | unit++; 19 | } 20 | 21 | return (value.toFixed(+precision) + ' ' + this.units[unit]); 22 | } 23 | } 24 | } 25 | 26 | 27 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/pipes/sort-by.pipe.ts: -------------------------------------------------------------------------------- 1 | /* 2 | *ngFor="let c of oneDimArray | sortBy:'asc'" 3 | *ngFor="let c of arrayOfObjects | sortBy:'asc':'propertyName'" 4 | */ 5 | import { Pipe, PipeTransform } from '@angular/core'; 6 | import { orderBy, sortBy } from 'lodash'; 7 | 8 | @Pipe({ name: 'sortBy' }) 9 | export class SortByPipe implements PipeTransform { 10 | 11 | transform(value: any[], order = '', column: string = ''): any[] { 12 | 13 | if (!value || order === '' || !order) { 14 | return value; 15 | 16 | } 17 | 18 | if (!column || column === '') { 19 | if (order === 'asc') { 20 | return value.sort(); 21 | } 22 | else { 23 | return value.sort().reverse(); 24 | } 25 | } 26 | 27 | if (value.length <= 1) { 28 | return value; 29 | } 30 | 31 | return orderBy(value, [column], [order]); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/pipes/yesno.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ name: 'yesno' }) 4 | export class YesNoPipe implements PipeTransform { 5 | transform(value: boolean): string { 6 | if (value) { // Should we be more explicit? This can give yes for more than expected. 7 | return 'Yes'; 8 | } else { 9 | return 'No'; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/services/details.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | 3 | @Injectable({ 4 | providedIn: 'root' 5 | }) 6 | export class DetailsService { 7 | static singletonInstance: DetailsService; 8 | 9 | public item: any; 10 | 11 | constructor() { 12 | 13 | if (!DetailsService.singletonInstance) { 14 | DetailsService.singletonInstance = this; 15 | } 16 | 17 | return DetailsService.singletonInstance; 18 | } 19 | 20 | show(item: any) { 21 | this.item = item; 22 | } 23 | 24 | hide() { 25 | this.item = null; 26 | } 27 | 28 | get opened(): boolean { 29 | return this.item != null; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/services/export-excel.service.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | 3 | import { ExportExcelService } from './export-excel.service'; 4 | 5 | describe('ExportExcelService', () => { 6 | let service: ExportExcelService; 7 | 8 | beforeEach(() => { 9 | TestBed.configureTestingModule({}); 10 | service = TestBed.inject(ExportExcelService); 11 | }); 12 | 13 | it('should be created', () => { 14 | expect(service).toBeTruthy(); 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/services/modal.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { DialogService } from 'primeng/dynamicdialog'; 3 | 4 | import { GenericModalComponent } from '../components/generic-modal/generic-modal.component'; 5 | 6 | @Injectable({ 7 | providedIn: 'root' 8 | }) 9 | export class ModalService { 10 | constructor(public dialogService: DialogService) { } 11 | 12 | public openModal(title, message) { 13 | 14 | let showHeader = true; 15 | 16 | if (title == null) { 17 | showHeader = false; 18 | } 19 | 20 | const modalData = { message }; 21 | const modalRef = this.dialogService.open(GenericModalComponent, 22 | { 23 | header: title, 24 | data: modalData, 25 | showHeader, 26 | dismissableMask: true 27 | } 28 | ); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /xCore.UI/src/app/shared/theme.ts: -------------------------------------------------------------------------------- 1 | export class Theme { 2 | name: string; 3 | path: string; 4 | contentColor: string; 5 | contentBackgroundColor: string; 6 | themeType: string; 7 | 8 | constructor(name: string, path: string, contentColor: string, contentBackgroundColor: string, themeType: string) { 9 | this.name = name; 10 | this.path = path; 11 | this.contentColor = contentColor; 12 | this.contentBackgroundColor = contentBackgroundColor; 13 | this.themeType = themeType; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/address-book/address-book.component.css: -------------------------------------------------------------------------------- 1 | .save-addresses { 2 | margin-left: 15px !important; 3 | } 4 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/address-book/modals/add-new-address/add-new-address.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/address-book/modals/add-new-address/add-new-address.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/address-book/modals/add-new-address/add-new-address.component.html: -------------------------------------------------------------------------------- 1 | 21 | 25 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/advanced.component.css: -------------------------------------------------------------------------------- 1 | .mainDiv { 2 | margin-left: 100px; 3 | margin-top: 20px; 4 | } 5 | 6 | ::ng-deep ng-datepicker input { 7 | height: 35px; 8 | } 9 | 10 | .label { 11 | font-size: 14px; 12 | margin-bottom: 1px; 13 | } -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/advanced.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 | 6 |
7 |
8 | 9 |
10 | 11 |
12 | 13 |
14 | 15 |
16 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/about/about.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/advanced/components/about/about.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/ext-pubkey/ext-pubkey.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/advanced/components/ext-pubkey/ext-pubkey.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/ext-pubkey/ext-pubkey.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 |

5 | 6 |

7 |

{{ extPubKey }}

8 |

Something went wrong while getting your Extended Public Key.

9 | 10 |
11 |
12 |
13 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/ext-pubkey/ext-pubkey.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { ApiService } from '../../../../shared/services/api.service'; 3 | import { GlobalService } from '../../../../shared/services/global.service'; 4 | import { WalletInfo } from '../../../../shared/models/wallet-info'; 5 | 6 | @Component({ 7 | selector: 'app-ext-pubkey', 8 | templateUrl: './ext-pubkey.component.html', 9 | styleUrls: ['./ext-pubkey.component.css'] 10 | }) 11 | export class ExtPubkeyComponent implements OnInit { 12 | constructor( 13 | private apiService: ApiService, 14 | private globalService: GlobalService, 15 | ) { } 16 | 17 | public extPubKey: string; 18 | public copied = false; 19 | 20 | ngOnInit() { 21 | const walletInfo = new WalletInfo(this.globalService.getWalletName()); 22 | this.getExtPubKey(walletInfo); 23 | } 24 | 25 | private getExtPubKey(walletInfo: WalletInfo) { 26 | this.apiService.getExtPubkey(walletInfo) 27 | .subscribe( 28 | response => { 29 | const responseMessage = response; 30 | this.extPubKey = responseMessage; 31 | } 32 | ); 33 | } 34 | 35 | public onCopiedClick() { 36 | this.copied = true; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/generate-addresses/generate-addresses.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/advanced/components/generate-addresses/generate-addresses.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/resync/resync.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/advanced/components/resync/resync.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/resync/resync.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 8 |
9 |
10 | 11 | 12 |
{{ formErrors.walletDate }}
13 |
14 |
15 |
16 | 17 |
18 |
19 |
20 |
21 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/settings/settings.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/advanced/components/settings/settings.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/sign-verify/sign-verify.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/advanced/components/sign-verify/sign-verify.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/sign-verify/signature/signature.component.css: -------------------------------------------------------------------------------- 1 | textarea { 2 | width: 100%; 3 | height: 300px; 4 | } 5 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/sign-verify/signature/signature.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { DynamicDialogRef, DynamicDialogConfig } from 'primeng/dynamicdialog'; 3 | 4 | @Component({ 5 | selector: 'app-signature', 6 | templateUrl: './signature.component.html', 7 | styleUrls: ['./signature.component.css'], 8 | }) 9 | export class SignatureComponent implements OnInit { 10 | constructor( 11 | public activeModal: DynamicDialogRef, 12 | public config: DynamicDialogConfig, 13 | ) { } 14 | 15 | public content = ''; 16 | public address = ''; 17 | public message = ''; 18 | public copied = false; 19 | 20 | ngOnInit() { 21 | this.content = this.config.data.content; 22 | this.address = this.config.data.address; 23 | this.message = this.config.data.message; 24 | } 25 | 26 | public onCopiedClick() { 27 | this.copied = true; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/sign-verify/verify/verify.component.css: -------------------------------------------------------------------------------- 1 | textarea { 2 | width: 100%; 3 | height: 300px; 4 | } 5 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/sign-verify/verify/verify.component.html: -------------------------------------------------------------------------------- 1 | 9 | 12 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/sign-verify/verify/verify.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { DynamicDialogRef, DynamicDialogConfig } from 'primeng/dynamicdialog'; 3 | 4 | @Component({ 5 | selector: 'app-verify', 6 | templateUrl: './verify.component.html', 7 | styleUrls: ['./verify.component.css'], 8 | }) 9 | export class VerifyComponent implements OnInit { 10 | constructor( 11 | public activeModal: DynamicDialogRef, 12 | public config: DynamicDialogConfig, 13 | ) { } 14 | 15 | public isvalid: boolean; 16 | 17 | ngOnInit() { 18 | this.isvalid = this.config.data.isvalid; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/x-server-updater/x-server-updater.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/advanced/components/x-server-updater/x-server-updater.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/x-server-updater/x-server-updater.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { XServerUpdaterComponent } from './x-server-updater.component'; 4 | 5 | describe('XServerUpdaterComponent', () => { 6 | let component: XServerUpdaterComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ XServerUpdaterComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(XServerUpdaterComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/xserver-provisioner/xserver-provisioner.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/advanced/components/xserver-provisioner/xserver-provisioner.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/xserver-provisioner/xserver-provisioner.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { XserverProvisionerComponent } from './xserver-provisioner.component'; 4 | 5 | describe('XserverProvisionerComponent', () => { 6 | let component: XserverProvisionerComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ XserverProvisionerComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(XserverProvisionerComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/xserver/register/register.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/advanced/components/xserver/register/register.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/advanced/components/xserver/xserver.component.css: -------------------------------------------------------------------------------- 1 | :host 2 | ::ng-deep .ui-message.ui-message-success { 3 | height: 33px; 4 | } 5 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/cold-staking/create-address/create-address.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/cold-staking/create-address/create-address.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/cold-staking/create-hot/create-hot.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/cold-staking/create-hot/create-hot.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/cold-staking/create/create.component.css: -------------------------------------------------------------------------------- 1 | .checkmark { 2 | stroke: #28a745 !important; 3 | stroke-dashoffset: 745.74853515625; 4 | stroke-dasharray: 745.74853515625; 5 | animation: dash 4s ease-out forwards; 6 | } 7 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/cold-staking/overview.component.css: -------------------------------------------------------------------------------- 1 | .LoadingDash { 2 | padding: 60px; 3 | text-align: center; 4 | position: relative; 5 | } 6 | 7 | .LoadingDash.LoadingDashAnim { 8 | padding: 0 !important; 9 | } 10 | 11 | .LoadingDash:before { 12 | content: ''; 13 | position: absolute; 14 | width: 60px; 15 | height: 60px; 16 | background-color: #7B95A3; 17 | opacity: .75; 18 | border-radius: 100%; 19 | -webkit-animation: scaleout 1.5s infinite ease-in-out; 20 | animation: scaleout 1.5s infinite ease-in-out; 21 | } 22 | 23 | .LoadingDash.unset-left:before { 24 | left: unset; 25 | } 26 | 27 | .LoadingDashWhite { 28 | padding: 60px; 29 | text-align: center; 30 | position: relative; 31 | } 32 | 33 | .LoadingDashWhite.LoadingDashAnim { 34 | padding: 0 !important; 35 | } 36 | 37 | .LoadingDashWhite:before { 38 | content: ''; 39 | position: absolute; 40 | width: 60px; 41 | height: 60px; 42 | background-color: #FFFFFF; 43 | opacity: .75; 44 | border-radius: 100%; 45 | -webkit-animation: scaleout 1.5s infinite ease-in-out; 46 | animation: scaleout 1.5s infinite ease-in-out; 47 | } 48 | 49 | .LoadingDashWhite.unset-left:before { 50 | left: unset; 51 | } 52 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/cold-staking/withdraw/withdraw.component.css: -------------------------------------------------------------------------------- 1 | .checkmark { 2 | stroke: #28a745 !important; 3 | stroke-dashoffset: 745.74853515625; 4 | stroke-dasharray: 745.74853515625; 5 | animation: dash 4s ease-out forwards; 6 | } 7 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dapp-store/dapp-store.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/dapp-store/dapp-store.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dapp-store/dapp-store.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 | 6 | 7 | {{app.name}} 8 | 9 |
10 | 11 | 12 | 13 |
14 |
15 |
16 |
17 |
18 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dapp-store/dapp-store.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { DappStoreComponent } from './dapp-store.component'; 4 | 5 | describe('DappStoreComponent', () => { 6 | let component: DappStoreComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ DappStoreComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(DappStoreComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dapp-store/deploy-app/deploy-app.component.css: -------------------------------------------------------------------------------- 1 | .checkmark { 2 | stroke: #28a745 !important; 3 | stroke-dashoffset: 745.74853515625; 4 | stroke-dasharray: 745.74853515625; 5 | animation: dash 4s ease-out forwards; 6 | } 7 | 8 | .bounds .sec1 { 9 | background: red; 10 | color: white; 11 | text-transform: uppercase; 12 | width: 100%; 13 | } 14 | 15 | .bounds .ui-inputtext { 16 | width: 100% !important; 17 | } 18 | 19 | .sec2 { 20 | background: yellow; 21 | color: blue; 22 | } 23 | 24 | .sec3 { 25 | background: blue; 26 | color: white; 27 | text-transform: uppercase 28 | } 29 | 30 | .sec1, .sec2, .sec3 { 31 | padding-top: 20px; 32 | text-align: center; 33 | padding: 10px; 34 | } 35 | 36 | .content { 37 | min-width: 300px; 38 | /*height: 400px;*/ 39 | } 40 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dapp-store/deploy-app/deploy-app.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { DeployAppComponent } from './deploy-app.component'; 4 | 5 | describe('DeployAppComponent', () => { 6 | let component: DeployAppComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ DeployAppComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(DeployAppComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dashboard/dashboard.component.css: -------------------------------------------------------------------------------- 1 | .LoadingDash { 2 | padding: 60px; 3 | text-align: center; 4 | position: relative; 5 | } 6 | 7 | .LoadingDash.LoadingDashAnim { 8 | padding: 0 !important; 9 | } 10 | 11 | .LoadingDash:before { 12 | content: ''; 13 | position: absolute; 14 | width: 60px; 15 | height: 60px; 16 | background-color: #7B95A3; 17 | opacity: .75; 18 | border-radius: 100%; 19 | -webkit-animation: scaleout 1.5s infinite ease-in-out; 20 | animation: scaleout 1.5s infinite ease-in-out; 21 | } 22 | 23 | .LoadingDash.unset-left:before { 24 | left: unset; 25 | } 26 | 27 | .LoadingDashWhite { 28 | padding: 60px; 29 | text-align: center; 30 | position: relative; 31 | } 32 | 33 | .LoadingDashWhite.LoadingDashAnim { 34 | padding: 0 !important; 35 | } 36 | 37 | .LoadingDashWhite:before { 38 | content: ''; 39 | position: absolute; 40 | width: 60px; 41 | height: 60px; 42 | background-color: #FFFFFF; 43 | opacity: .75; 44 | border-radius: 100%; 45 | -webkit-animation: scaleout 1.5s infinite ease-in-out; 46 | animation: scaleout 1.5s infinite ease-in-out; 47 | } 48 | 49 | .LoadingDashWhite.unset-left:before { 50 | left: unset; 51 | } 52 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dns-management/add-edit-dns-record-dialog/add-edit-dns-record-dialog.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/dns-management/add-edit-dns-record-dialog/add-edit-dns-record-dialog.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dns-management/add-edit-dns-record-dialog/add-edit-dns-record-dialog.component.html: -------------------------------------------------------------------------------- 1 | 56 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dns-management/add-edit-dns-record-dialog/add-edit-dns-record-dialog.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { AddEditDnsRecordDialogComponent } from './add-edit-dns-record-dialog.component'; 4 | 5 | describe('AddEditDnsRecordDialogComponent', () => { 6 | let component: AddEditDnsRecordDialogComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ AddEditDnsRecordDialogComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(AddEditDnsRecordDialogComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dns-management/add-edit-dns-record-dialog/add-edit-dns-record-dialog.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-add-edit-dns-record-dialog', 5 | templateUrl: './add-edit-dns-record-dialog.component.html', 6 | styleUrls: ['./add-edit-dns-record-dialog.component.css'] 7 | }) 8 | export class AddEditDnsRecordDialogComponent implements OnInit { 9 | 10 | constructor() { } 11 | reserved = false; 12 | reserving = false; 13 | selectedPeers = []; 14 | paymentForm = null; 15 | 16 | ngOnInit(): void { 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dns-management/add-zone-dialog/add-zone-dialog.component.css: -------------------------------------------------------------------------------- 1 | .header { 2 | font-style: normal; 3 | font-weight: 700; 4 | font-size: 20px; 5 | line-height: 24px; 6 | letter-spacing: 0.15px; 7 | color: #F1F5F8; 8 | padding-bottom : 80px; 9 | } 10 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dns-management/add-zone-dialog/add-zone-dialog.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { AddZoneDialogComponent } from './add-zone-dialog.component'; 4 | 5 | describe('AddZoneDialogComponent', () => { 6 | let component: AddZoneDialogComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ AddZoneDialogComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(AddZoneDialogComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dns-management/delete-dns-record-dialog/delete-dns-record-dialog.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/dns-management/delete-dns-record-dialog/delete-dns-record-dialog.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dns-management/delete-dns-record-dialog/delete-dns-record-dialog.component.html: -------------------------------------------------------------------------------- 1 |

delete-dns-record-dialog works!

2 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dns-management/delete-dns-record-dialog/delete-dns-record-dialog.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { DeleteDnsRecordDialogComponent } from './delete-dns-record-dialog.component'; 4 | 5 | describe('DeleteDnsRecordDialogComponent', () => { 6 | let component: DeleteDnsRecordDialogComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ DeleteDnsRecordDialogComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(DeleteDnsRecordDialogComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dns-management/delete-dns-record-dialog/delete-dns-record-dialog.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-delete-dns-record-dialog', 5 | templateUrl: './delete-dns-record-dialog.component.html', 6 | styleUrls: ['./delete-dns-record-dialog.component.css'] 7 | }) 8 | export class DeleteDnsRecordDialogComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit(): void { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dns-management/dns-management.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/dns-management/dns-management.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/dns-management/dns-management.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { DnsManagementComponent } from './dns-management.component'; 4 | 5 | describe('DnsManagementComponent', () => { 6 | let component: DnsManagementComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ DnsManagementComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(DnsManagementComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/exchange-details/exchange-details.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/exchange-details/exchange-details.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/history/history.component.css: -------------------------------------------------------------------------------- 1 | .LoadingDash { 2 | padding: 60px; 3 | text-align: center; 4 | position: relative; 5 | } 6 | 7 | .LoadingDash.LoadingDashAnim { 8 | padding: 0 !important; 9 | } 10 | 11 | .LoadingDash:before { 12 | content: ''; 13 | position: absolute; 14 | width: 60px; 15 | height: 60px; 16 | background-color: #7B95A3; 17 | opacity: .75; 18 | border-radius: 100%; 19 | -webkit-animation: scaleout 1.5s infinite ease-in-out; 20 | animation: scaleout 1.5s infinite ease-in-out; 21 | } 22 | 23 | .LoadingDash.unset-left:before { 24 | left: unset; 25 | } 26 | 27 | .LoadingDashWhite { 28 | padding: 60px; 29 | text-align: center; 30 | position: relative; 31 | } 32 | 33 | .LoadingDashWhite.LoadingDashAnim { 34 | padding: 0 !important; 35 | } 36 | 37 | .LoadingDashWhite:before { 38 | content: ''; 39 | position: absolute; 40 | width: 60px; 41 | height: 60px; 42 | background-color: #FFFFFF; 43 | opacity: .75; 44 | border-radius: 100%; 45 | -webkit-animation: scaleout 1.5s infinite ease-in-out; 46 | animation: scaleout 1.5s infinite ease-in-out; 47 | } 48 | 49 | .LoadingDashWhite.unset-left:before { 50 | left: unset; 51 | } 52 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/logout-confirmation/logout-confirmation.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/logout-confirmation/logout-confirmation.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/logout-confirmation/logout-confirmation.component.html: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/logout-confirmation/logout-confirmation.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { DynamicDialogRef } from 'primeng/dynamicdialog'; 3 | import { Router } from '@angular/router'; 4 | 5 | import { ApiService } from '../../shared/services/api.service'; 6 | import { GlobalService } from '../../shared/services/global.service'; 7 | 8 | @Component({ 9 | selector: 'app-logout-confirmation', 10 | templateUrl: './logout-confirmation.component.html', 11 | styleUrls: ['./logout-confirmation.component.css'] 12 | }) 13 | export class LogoutConfirmationComponent { 14 | constructor( 15 | private router: Router, 16 | private apiService: ApiService, 17 | private globalService: GlobalService, 18 | public ref: DynamicDialogRef, 19 | ) { } 20 | 21 | public onLogout() { 22 | this.apiService.stopStaking().subscribe(); 23 | this.globalService.setProfile(null); 24 | this.ref.close(); 25 | this.router.navigate(['/login']); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/menu/menu.component.css: -------------------------------------------------------------------------------- 1 | .menu-navbar-text { 2 | cursor: pointer; 3 | } -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/menu/menu.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { Router } from '@angular/router'; 3 | 4 | import { GlobalService } from '../../shared/services/global.service'; 5 | import { LogoutConfirmationComponent } from '../logout-confirmation/logout-confirmation.component'; 6 | import { DialogService } from 'primeng/dynamicdialog'; 7 | 8 | @Component({ 9 | selector: 'app-menu', 10 | templateUrl: './menu.component.html', 11 | styleUrls: ['./menu.component.css'], 12 | }) 13 | export class MenuComponent { 14 | constructor( 15 | private globalService: GlobalService, 16 | private router: Router, 17 | public dialogService: DialogService, 18 | ) { 19 | this.walletName = this.globalService.getWalletName(); 20 | } 21 | 22 | public walletName: string; 23 | 24 | 25 | openAddressBook() { 26 | this.router.navigate(['/wallet/address-book']); 27 | } 28 | 29 | openAdvanced() { 30 | this.router.navigate(['/wallet/advanced']); 31 | } 32 | 33 | logoutClicked() { 34 | this.dialogService.open(LogoutConfirmationComponent, { 35 | header: 'Lock' 36 | }); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/profile/create/create-profile.component.css: -------------------------------------------------------------------------------- 1 | .checkmark { 2 | stroke: #28a745 !important; 3 | stroke-dashoffset: 745.74853515625; 4 | stroke-dasharray: 745.74853515625; 5 | animation: dash 4s ease-out forwards; 6 | } 7 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/receive/receive.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/receive/receive.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/send/send.component.css: -------------------------------------------------------------------------------- 1 | .checkmark { 2 | stroke: #28a745 !important; 3 | stroke-dashoffset: 745.74853515625; 4 | stroke-dasharray: 745.74853515625; 5 | animation: dash 4s ease-out forwards; 6 | } 7 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/status-bar/status-bar.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/status-bar/status-bar.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/storage-management/storage-management.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/storage-management/storage-management.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/storage-management/storage-management.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { StorageManagementComponent } from './storage-management.component'; 4 | 5 | describe('StorageManagementComponent', () => { 6 | let component: StorageManagementComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ StorageManagementComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(StorageManagementComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/storage-management/storage-management.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { StorageService } from '../../shared/services/storage.service'; 3 | 4 | @Component({ 5 | selector: 'app-storage-management', 6 | templateUrl: './storage-management.component.html', 7 | styleUrls: ['./storage-management.component.css'] 8 | }) 9 | export class StorageManagementComponent implements OnInit { 10 | storjSettings: any = { satelliteAddress : ''}; 11 | 12 | constructor(public storageService: StorageService) { } 13 | 14 | ngOnInit(): void { 15 | 16 | const storjSettings = this.storageService.getStorjSettings(); 17 | 18 | console.log(storjSettings); 19 | 20 | if (storjSettings == null) { 21 | 22 | this.storjSettings = { satelliteAddress: '', apiKey: '', secret: '', bucketName: '' }; 23 | 24 | } else { 25 | this.storjSettings = storjSettings; 26 | } 27 | 28 | 29 | } 30 | 31 | saveStorjSettings() { 32 | 33 | this.storageService.setStorjSettings(this.storjSettings); 34 | 35 | } 36 | 37 | 38 | } 39 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/transaction-details/transaction-details.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/transaction-details/transaction-details.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/wallet.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/wallet.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/wallet.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/wallet.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { ApplicationStateService } from '../shared/services/application-state.service'; 3 | import { MenuItem } from 'primeng/api'; 4 | 5 | @Component({ 6 | selector: 'app-wallet-component', 7 | templateUrl: './wallet.component.html', 8 | styleUrls: ['./wallet.component.css'], 9 | }) 10 | export class WalletComponent implements OnInit { 11 | constructor(public appState: ApplicationStateService) { } 12 | public contextMenuItems: MenuItem[]; 13 | 14 | ngOnInit() { 15 | this.contextMenuItems = [ 16 | { 17 | label: 'x42 xCore ' + this.appState.version, 18 | icon: 'pi goat-icon' 19 | } 20 | ]; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/xserver-network/x-server-details/x-server-details.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/xserver-network/x-server-details/x-server-details.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/xserver-network/x-server-details/x-server-details.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { XServerDetailsComponent } from './x-server-details.component'; 4 | 5 | describe('XServerDetailsComponent', () => { 6 | let component: XServerDetailsComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ XServerDetailsComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(XServerDetailsComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/xserver-network/x-server-details/x-server-details.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog'; 3 | import { ApiEvents } from '../../../shared/services/api.events'; 4 | import { ApiService } from '../../../shared/services/api.service'; 5 | import { GlobalService } from '../../../shared/services/global.service'; 6 | 7 | @Component({ 8 | selector: 'app-x-server-details', 9 | templateUrl: './x-server-details.component.html', 10 | styleUrls: ['./x-server-details.component.css'] 11 | }) 12 | export class XServerDetailsComponent implements OnInit { 13 | xServer: any; 14 | ipApiData: any; 15 | loadingGeolocation = true; 16 | 17 | constructor( 18 | private globalService: GlobalService, 19 | public ref: DynamicDialogRef, 20 | public config: DynamicDialogConfig, 21 | private apiService: ApiService) { } 22 | 23 | ngOnInit(): void { 24 | 25 | this.xServer = this.config.data.details; 26 | this.loadingGeolocation = true; 27 | 28 | this.apiService.getxServerDetails(this.xServer.networkAddress).subscribe((data) => { 29 | 30 | this.ipApiData = data; 31 | this.loadingGeolocation = false; 32 | 33 | }); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/xserver-network/xserver-network.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/app/wallet/xserver-network/xserver-network.component.css -------------------------------------------------------------------------------- /xCore.UI/src/app/wallet/xserver-network/xserver-network.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { XserverNetworkComponent } from './xserver-network.component'; 4 | 5 | describe('XserverNetworkComponent', () => { 6 | let component: XserverNetworkComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ XserverNetworkComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(XserverNetworkComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /xCore.UI/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/.gitkeep -------------------------------------------------------------------------------- /xCore.UI/src/assets/fonts/Linearicons-Free.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/fonts/Linearicons-Free.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/fonts/Linearicons-Free.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/fonts/Linearicons-Free.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/fonts/Linearicons-Free.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/fonts/Linearicons-Free.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/fonts/Linearicons-Free.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/fonts/Linearicons-Free.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/1_mQZ-_Y1kAVThy-Pb1qdTlg.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/1_mQZ-_Y1kAVThy-Pb1qdTlg.jpeg -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/Magento.fw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/Magento.fw.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/Magento.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/Magento.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/MariaDB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/MariaDB.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/OpenProject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/OpenProject.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/Prestashop-logo-vector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/Prestashop-logo-vector.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/Prestashop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/Prestashop.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/SugarCRM-Stacked-Full-Color.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/SugarCRM-Stacked-Full-Color.jpg -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/Tick_Mark-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/Tick_Mark-16.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/goat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/goat.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/icons/32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/icons/32x32.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/icons/512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/icons/512x512.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/icons/icon-tray.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/icons/icon-tray.ico -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/icons/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/icons/icon.icns -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/icons/icon.ico -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/if_Error_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/if_Error_16.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/license_en.txt: -------------------------------------------------------------------------------- 1 | By installing this software the user agrees to all of the following: 2 | 3 | That this software is an experimental release and any use of it shall be at the users own discretion and risk. 4 | That the sole and exclusive remedy for any problem(s), malfunctions or defects in the product, software and / or service shall be to uninstall and/or to stop using it . 5 | In no event shall x42, its officers, shareholders, investors, employees, agents, directors, subsidiaries, affiliates, successors, assignees or suppliers be liable for 6 | Any indirect, incidental, punitive, exemplary or consequential damages 7 | Any loss of data, use, sales, business (including profits) whether direct or indirect in any and all cases arising out of use or inability to use the software including any form of security breach, hack or attack. 8 | Any loss, errors, omissions or misplacement of coins or any other digital asset transacted through the software or otherwise. 9 | Any transaction confirmation delays or lack of completions. 10 | The product is provided on an “as is” basis without any representation or warranty, whether express, implied or otherwise to the maximum extent permitted by applicable law including fitness for a particular purpose, merchantability and defects. 11 | The product shall not be used for any unlawful activity that would violate or assist in violation of any applicable law, regulation or policy. 12 | -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/logo-failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/logo-failed.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/logo-magento.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/logo-magento.jpg -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/logo.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/logo_aqua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/logo_aqua.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/logo_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/logo_black.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/logo_pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/logo_pink.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/logo_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/logo_white.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/powerdns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/powerdns.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/storjlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/storjlogo.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/white background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/white background.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/images/wordpress-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/images/wordpress-logo.png -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-300.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-300.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-300.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-300.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-700.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-700.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-700.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-700.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-700.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-regular.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-regular.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-regular.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-amber/fonts/open-sans-v15-latin-regular.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-300.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-300.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-300.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-300.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-700.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-700.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-700.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-700.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-700.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-regular.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-regular.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-regular.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-blue/fonts/open-sans-v15-latin-regular.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-300.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-300.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-300.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-300.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-700.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-700.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-700.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-700.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-700.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-regular.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-regular.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-regular.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-green/fonts/open-sans-v15-latin-regular.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-300.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-300.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-300.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-300.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-700.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-700.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-700.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-700.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-700.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-regular.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-regular.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-regular.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/luna-pink/fonts/open-sans-v15-latin-regular.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-300.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-300.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-300.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-300.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-700.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-700.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-700.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-700.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-700.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-regular.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-regular.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-regular.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-colored/fonts/open-sans-v15-latin-regular.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-300.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-300.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-300.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-300.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-700.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-700.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-700.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-700.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-700.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-regular.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-regular.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-regular.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-dark/fonts/open-sans-v15-latin-regular.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-300.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-300.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-300.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-300.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-700.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-700.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-700.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-700.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-700.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-regular.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-regular.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-regular.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/nova-light/fonts/open-sans-v15-latin-regular.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-300.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-300.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-300.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-300.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-700.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-700.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-700.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-700.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-700.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-regular.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-regular.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-regular.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/rhea/fonts/open-sans-v15-latin-regular.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-300.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-300.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-300.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-300.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-700.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-700.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-700.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-700.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-700.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-regular.eot -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-regular.ttf -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-regular.woff -------------------------------------------------------------------------------- /xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x42protocol/xCore/f31a36204af8fd6721aa4f12b4137a4e436b0c69/xCore.UI/src/assets/themes/x42Dark/fonts/open-sans-v15-latin-regular.woff2 -------------------------------------------------------------------------------- /xCore.UI/src/environments/environment.dev.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: false, 3 | environment: 'BETA', 4 | password: '' 5 | }; 6 | -------------------------------------------------------------------------------- /xCore.UI/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | environment: 'RELEASE', 4 | password: '' 5 | }; 6 | -------------------------------------------------------------------------------- /xCore.UI/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: false, 3 | environment: '', 4 | password: '' 5 | }; 6 | -------------------------------------------------------------------------------- /xCore.UI/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | xCore 7 | 8 | 9 | 10 | 11 | Loading... 12 | 13 | 14 | -------------------------------------------------------------------------------- /xCore.UI/src/index.prod.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | xCore 7 | 8 | 9 | 10 | 11 | Loading... 12 | 13 | 14 | -------------------------------------------------------------------------------- /xCore.UI/src/karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration file, see link for more information 2 | // https://karma-runner.github.io/0.13/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: true 30 | }); 31 | }; 32 | -------------------------------------------------------------------------------- /xCore.UI/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() 12 | .bootstrapModule(AppModule, { 13 | preserveWhitespaces: false 14 | }) 15 | .catch(err => console.error(err)); 16 | -------------------------------------------------------------------------------- /xCore.UI/src/polyfills-test.ts: -------------------------------------------------------------------------------- 1 | import 'core-js/es7/reflect'; 2 | import 'zone.js/dist/zone'; 3 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/_alert.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Base styles 3 | // 4 | 5 | .alert { 6 | position: relative; 7 | padding: $alert-padding-y $alert-padding-x; 8 | margin-bottom: $alert-margin-bottom; 9 | border: $alert-border-width solid transparent; 10 | @include border-radius($alert-border-radius); 11 | } 12 | 13 | // Headings for larger alerts 14 | .alert-heading { 15 | // Specified to prevent conflicts of changing $headings-color 16 | color: inherit; 17 | } 18 | 19 | // Provide class for links that match alerts 20 | .alert-link { 21 | font-weight: $alert-link-font-weight; 22 | } 23 | 24 | 25 | // Dismissible alerts 26 | // 27 | // Expand the right padding and account for the close button's positioning. 28 | 29 | .alert-dismissible { 30 | // Adjust close link position 31 | .close { 32 | position: absolute; 33 | top: 0; 34 | right: 0; 35 | padding: $alert-padding-y $alert-padding-x; 36 | color: inherit; 37 | } 38 | } 39 | 40 | 41 | // Alternate styles 42 | // 43 | // Generate contextual modifier classes for colorizing the alert. 44 | 45 | @each $color, $value in $theme-colors { 46 | .alert-#{$color} { 47 | @include alert-variant(theme-color-level($color, -10), theme-color-level($color, -9), theme-color-level($color, 6)); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/_badge.scss: -------------------------------------------------------------------------------- 1 | // Base class 2 | // 3 | // Requires one of the contextual, color modifier classes for `color` and 4 | // `background-color`. 5 | 6 | .badge { 7 | display: inline-block; 8 | padding: $badge-padding-y $badge-padding-x; 9 | font-size: $badge-font-size; 10 | font-weight: $badge-font-weight; 11 | line-height: 1; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | @include border-radius($badge-border-radius); 16 | 17 | // Empty badges collapse automatically 18 | &:empty { 19 | display: none; 20 | } 21 | } 22 | 23 | // Quick fix for badges in buttons 24 | .btn .badge { 25 | position: relative; 26 | top: -1px; 27 | } 28 | 29 | // Pill badges 30 | // 31 | // Make them extra rounded with a modifier to replace v3's badges. 32 | 33 | .badge-pill { 34 | padding-right: $badge-pill-padding-x; 35 | padding-left: $badge-pill-padding-x; 36 | @include border-radius($badge-pill-border-radius); 37 | } 38 | 39 | // Colors 40 | // 41 | // Contextual variations (linked badges get darker on :hover). 42 | 43 | @each $color, $value in $theme-colors { 44 | .badge-#{$color} { 45 | @include badge-variant($value); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/_close.scss: -------------------------------------------------------------------------------- 1 | .close { 2 | float: right; 3 | font-size: $close-font-size; 4 | font-weight: $close-font-weight; 5 | line-height: 1; 6 | color: $close-color; 7 | text-shadow: $close-text-shadow; 8 | opacity: .5; 9 | 10 | @include hover-focus { 11 | color: $close-color; 12 | text-decoration: none; 13 | opacity: .75; 14 | } 15 | } 16 | 17 | // Additional properties for button version 18 | // iOS requires the button element instead of an anchor tag. 19 | // If you want the anchor version, it requires `href="#"`. 20 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 21 | 22 | // stylelint-disable property-no-vendor-prefix, selector-no-qualifying-type 23 | button.close { 24 | padding: 0; 25 | background: transparent; 26 | border: 0; 27 | -webkit-appearance: none; 28 | } 29 | // stylelint-enable 30 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/_grid.scss: -------------------------------------------------------------------------------- 1 | // Container widths 2 | // 3 | // Set the container width, and override it for fixed navbars in media queries. 4 | 5 | @if $enable-grid-classes { 6 | .container { 7 | @include make-container(); 8 | @include make-container-max-widths(); 9 | } 10 | } 11 | 12 | // Fluid container 13 | // 14 | // Utilizes the mixin meant for fixed width containers, but with 100% width for 15 | // fluid, full width layouts. 16 | 17 | @if $enable-grid-classes { 18 | .container-fluid { 19 | @include make-container(); 20 | } 21 | } 22 | 23 | // Row 24 | // 25 | // Rows contain and clear the floats of your columns. 26 | 27 | @if $enable-grid-classes { 28 | .row { 29 | @include make-row(); 30 | } 31 | 32 | // Remove the negative margin from default .row, then the horizontal padding 33 | // from all immediate children columns (to prevent runaway style inheritance). 34 | .no-gutters { 35 | margin-right: 0; 36 | margin-left: 0; 37 | 38 | > .col, 39 | > [class*="col-"] { 40 | padding-right: 0; 41 | padding-left: 0; 42 | } 43 | } 44 | } 45 | 46 | // Columns 47 | // 48 | // Common styles for small and large grid columns 49 | 50 | @if $enable-grid-classes { 51 | @include make-grid-columns(); 52 | } 53 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/_images.scss: -------------------------------------------------------------------------------- 1 | // Responsive images (ensure images don't scale beyond their parents) 2 | // 3 | // This is purposefully opt-in via an explicit class rather than being the default for all ``s. 4 | // We previously tried the "images are responsive by default" approach in Bootstrap v2, 5 | // and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps) 6 | // which weren't expecting the images within themselves to be involuntarily resized. 7 | // See also https://github.com/twbs/bootstrap/issues/18178 8 | .img-fluid { 9 | @include img-fluid; 10 | } 11 | 12 | 13 | // Image thumbnails 14 | .img-thumbnail { 15 | padding: $thumbnail-padding; 16 | background-color: $thumbnail-bg; 17 | border: $thumbnail-border-width solid $thumbnail-border-color; 18 | @include border-radius($thumbnail-border-radius); 19 | @include transition($thumbnail-transition); 20 | @include box-shadow($thumbnail-box-shadow); 21 | 22 | // Keep them at most 100% wide 23 | @include img-fluid; 24 | } 25 | 26 | // 27 | // Figures 28 | // 29 | 30 | .figure { 31 | // Ensures the caption's text aligns with the image. 32 | display: inline-block; 33 | } 34 | 35 | .figure-img { 36 | margin-bottom: ($spacer / 2); 37 | line-height: 1; 38 | } 39 | 40 | .figure-caption { 41 | font-size: $figure-caption-font-size; 42 | color: $figure-caption-color; 43 | } 44 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/_jumbotron.scss: -------------------------------------------------------------------------------- 1 | .jumbotron { 2 | padding: ($jumbotron-padding / 2); 3 | margin: 0; 4 | background-color: $jumbotron-bg; 5 | @include border-radius($border-radius-lg); 6 | } 7 | 8 | .jumbotron-fluid { 9 | padding-right: 0; 10 | padding-left: 0; 11 | @include border-radius(0); 12 | } 13 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/_media.scss: -------------------------------------------------------------------------------- 1 | .media { 2 | display: flex; 3 | align-items: flex-start; 4 | } 5 | 6 | .media-body { 7 | flex: 1; 8 | } 9 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Toggles 2 | // 3 | // Used in conjunction with global variables to enable certain theme features. 4 | 5 | // Utilities 6 | @import "mixins/breakpoints"; 7 | @import "mixins/hover"; 8 | @import "mixins/image"; 9 | @import "mixins/badge"; 10 | @import "mixins/resize"; 11 | @import "mixins/screen-reader"; 12 | @import "mixins/size"; 13 | @import "mixins/reset-text"; 14 | @import "mixins/text-emphasis"; 15 | @import "mixins/text-hide"; 16 | @import "mixins/text-truncate"; 17 | @import "mixins/visibility"; 18 | 19 | // // Components 20 | @import "mixins/alert"; 21 | @import "mixins/buttons"; 22 | @import "mixins/caret"; 23 | @import "mixins/pagination"; 24 | @import "mixins/lists"; 25 | @import "mixins/list-group"; 26 | @import "mixins/nav-divider"; 27 | @import "mixins/forms"; 28 | @import "mixins/table-row"; 29 | 30 | // // Skins 31 | @import "mixins/background-variant"; 32 | @import "mixins/border-radius"; 33 | @import "mixins/box-shadow"; 34 | @import "mixins/gradients"; 35 | @import "mixins/transition"; 36 | 37 | // // Layout 38 | @import "mixins/clearfix"; 39 | // @import "mixins/navbar-align"; 40 | @import "mixins/grid-framework"; 41 | @import "mixins/grid"; 42 | @import "mixins/float"; 43 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/_progress.scss: -------------------------------------------------------------------------------- 1 | @keyframes progress-bar-stripes { 2 | from { background-position: $progress-height 0; } 3 | to { background-position: 0 0; } 4 | } 5 | 6 | .progress { 7 | display: flex; 8 | height: $progress-height; 9 | overflow: hidden; // force rounded corners by cropping it 10 | font-size: $progress-font-size; 11 | background-color: $progress-bg; 12 | @include border-radius($progress-border-radius); 13 | } 14 | 15 | .progress-bar { 16 | display: flex; 17 | align-items: center; 18 | justify-content: center; 19 | color: $progress-bar-color; 20 | background-color: $progress-bar-bg; 21 | } 22 | 23 | .progress-bar-striped { 24 | @include gradient-striped(); 25 | background-size: $progress-height $progress-height; 26 | } 27 | 28 | .progress-bar-animated { 29 | animation: progress-bar-stripes $progress-bar-animation-timing; 30 | } 31 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/_root.scss: -------------------------------------------------------------------------------- 1 | :root { 2 | // Custom variable values only support SassScript inside `#{}`. 3 | @each $color, $value in $colors { 4 | --#{$color}: #{$value}; 5 | } 6 | 7 | @each $color, $value in $theme-colors { 8 | --#{$color}: #{$value}; 9 | } 10 | 11 | @each $bp, $value in $grid-breakpoints { 12 | --breakpoint-#{$bp}: #{$value}; 13 | } 14 | 15 | // Use `inspect` for lists so that quoted items keep the quotes. 16 | // See https://github.com/sass/sass/issues/2383#issuecomment-336349172 17 | --font-family-sans-serif: #{inspect($font-family-sans-serif)}; 18 | --font-family-monospace: #{inspect($font-family-monospace)}; 19 | } 20 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/_transitions.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable selector-no-qualifying-type 2 | 3 | .fade { 4 | opacity: 0; 5 | @include transition($transition-fade); 6 | 7 | &.show { 8 | opacity: 1; 9 | } 10 | } 11 | 12 | .collapse { 13 | display: none; 14 | &.show { 15 | display: block; 16 | } 17 | } 18 | 19 | tr { 20 | &.collapse.show { 21 | display: table-row; 22 | } 23 | } 24 | 25 | tbody { 26 | &.collapse.show { 27 | display: table-row-group; 28 | } 29 | } 30 | 31 | .collapsing { 32 | position: relative; 33 | height: 0; 34 | overflow: hidden; 35 | @include transition($transition-collapse); 36 | } 37 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/_utilities.scss: -------------------------------------------------------------------------------- 1 | @import "utilities/align"; 2 | @import "utilities/background"; 3 | @import "utilities/borders"; 4 | @import "utilities/clearfix"; 5 | @import "utilities/display"; 6 | @import "utilities/embed"; 7 | @import "utilities/flex"; 8 | @import "utilities/float"; 9 | @import "utilities/position"; 10 | @import "utilities/screenreaders"; 11 | @import "utilities/sizing"; 12 | @import "utilities/spacing"; 13 | @import "utilities/text"; 14 | @import "utilities/visibility"; 15 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/bootstrap-grid.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Grid v4.0.0-beta.2 (https://getbootstrap.com) 3 | * Copyright 2011-2017 The Bootstrap Authors 4 | * Copyright 2011-2017 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | 8 | @at-root { 9 | @-ms-viewport { width: device-width; } // stylelint-disable-line at-rule-no-vendor-prefix 10 | } 11 | 12 | html { 13 | box-sizing: border-box; 14 | -ms-overflow-style: scrollbar; 15 | } 16 | 17 | *, 18 | *::before, 19 | *::after { 20 | box-sizing: inherit; 21 | } 22 | 23 | @import "functions"; 24 | @import "variables"; 25 | 26 | // 27 | // Grid mixins 28 | // 29 | 30 | @import "mixins/breakpoints"; 31 | @import "mixins/grid-framework"; 32 | @import "mixins/grid"; 33 | 34 | @import "grid"; 35 | @import "utilities/flex"; 36 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/bootstrap-reboot.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.0.0-beta.2 (https://getbootstrap.com) 3 | * Copyright 2011-2017 The Bootstrap Authors 4 | * Copyright 2011-2017 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */ 8 | 9 | @import "functions"; 10 | @import "variables"; 11 | @import "mixins"; 12 | @import "reboot"; 13 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/bootstrap.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com) 3 | * Copyright 2011-2017 The Bootstrap Authors 4 | * Copyright 2011-2017 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | 8 | @import "functions"; 9 | @import "variables"; 10 | @import "mixins"; 11 | @import "print"; 12 | @import "reboot"; 13 | @import "type"; 14 | @import "images"; 15 | @import "code"; 16 | @import "grid"; 17 | @import "tables"; 18 | @import "forms"; 19 | @import "buttons"; 20 | @import "transitions"; 21 | @import "dropdown"; 22 | @import "button-group"; 23 | @import "input-group"; 24 | @import "custom-forms"; 25 | @import "nav"; 26 | @import "navbar"; 27 | @import "card"; 28 | @import "breadcrumb"; 29 | @import "pagination"; 30 | @import "badge"; 31 | @import "jumbotron"; 32 | @import "alert"; 33 | @import "progress"; 34 | @import "media"; 35 | @import "list-group"; 36 | @import "close"; 37 | @import "modal"; 38 | @import "tooltip"; 39 | @import "popover"; 40 | @import "carousel"; 41 | @import "utilities"; 42 | @import "custom"; 43 | @import "fonts"; 44 | @import "themes/light"; 45 | @import "themes/dark"; 46 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_alert.scss: -------------------------------------------------------------------------------- 1 | @mixin alert-variant($background, $border, $color) { 2 | color: $color; 3 | @include gradient-bg($background); 4 | border-color: $border; 5 | 6 | hr { 7 | border-top-color: darken($border, 5%); 8 | } 9 | 10 | .alert-link { 11 | color: darken($color, 10%); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_background-variant.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Contextual backgrounds 4 | 5 | @mixin bg-variant($parent, $color) { 6 | #{$parent} { 7 | background-color: $color !important; 8 | } 9 | a#{$parent} { 10 | @include hover-focus { 11 | background-color: darken($color, 10%) !important; 12 | } 13 | } 14 | } 15 | 16 | @mixin bg-gradient-variant($parent, $color) { 17 | #{$parent} { 18 | background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_badge.scss: -------------------------------------------------------------------------------- 1 | @mixin badge-variant($bg) { 2 | color: color-yiq($bg); 3 | background-color: $bg; 4 | 5 | &[href] { 6 | @include hover-focus { 7 | color: color-yiq($bg); 8 | text-decoration: none; 9 | background-color: darken($bg, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_border-radius.scss: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | @mixin border-radius($radius: $border-radius) { 4 | @if $enable-rounded { 5 | border-radius: $radius; 6 | } 7 | } 8 | 9 | @mixin border-top-radius($radius) { 10 | @if $enable-rounded { 11 | border-top-left-radius: $radius; 12 | border-top-right-radius: $radius; 13 | } 14 | } 15 | 16 | @mixin border-right-radius($radius) { 17 | @if $enable-rounded { 18 | border-top-right-radius: $radius; 19 | border-bottom-right-radius: $radius; 20 | } 21 | } 22 | 23 | @mixin border-bottom-radius($radius) { 24 | @if $enable-rounded { 25 | border-bottom-right-radius: $radius; 26 | border-bottom-left-radius: $radius; 27 | } 28 | } 29 | 30 | @mixin border-left-radius($radius) { 31 | @if $enable-rounded { 32 | border-top-left-radius: $radius; 33 | border-bottom-left-radius: $radius; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_box-shadow.scss: -------------------------------------------------------------------------------- 1 | @mixin box-shadow($shadow...) { 2 | @if $enable-shadows { 3 | box-shadow: $shadow; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_caret.scss: -------------------------------------------------------------------------------- 1 | @mixin caret-down { 2 | border-top: $caret-width solid; 3 | border-right: $caret-width solid transparent; 4 | border-bottom: 0; 5 | border-left: $caret-width solid transparent; 6 | } 7 | 8 | @mixin caret-up { 9 | border-top: 0; 10 | border-right: $caret-width solid transparent; 11 | border-bottom: $caret-width solid; 12 | border-left: $caret-width solid transparent; 13 | } 14 | 15 | @mixin caret($direction: down) { 16 | @if $enable-caret { 17 | &::after { 18 | display: inline-block; 19 | width: 0; 20 | height: 0; 21 | margin-left: $caret-width * .85; 22 | vertical-align: $caret-width * .85; 23 | content: ""; 24 | @if $direction == down { 25 | @include caret-down; 26 | } @else if $direction == up { 27 | @include caret-up; 28 | } 29 | } 30 | 31 | &:empty::after { 32 | margin-left: 0; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_clearfix.scss: -------------------------------------------------------------------------------- 1 | @mixin clearfix() { 2 | &::after { 3 | display: block; 4 | clear: both; 5 | content: ""; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_float.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | @mixin float-left { 4 | float: left !important; 5 | } 6 | @mixin float-right { 7 | float: right !important; 8 | } 9 | @mixin float-none { 10 | float: none !important; 11 | } 12 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_hover.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable indentation 2 | @mixin hover { 3 | // TODO: re-enable along with mq4-hover-shim 4 | // @if $enable-hover-media-query { 5 | // // See Media Queries Level 4: https://drafts.csswg.org/mediaqueries/#hover 6 | // // Currently shimmed by https://github.com/twbs/mq4-hover-shim 7 | // @media (hover: hover) { 8 | // &:hover { @content } 9 | // } 10 | // } 11 | // @else { 12 | &:hover { @content; } 13 | // } 14 | } 15 | 16 | 17 | @mixin hover-focus { 18 | @if $enable-hover-media-query { 19 | &:focus { 20 | @content; 21 | } 22 | @include hover { @content; } 23 | } @else { 24 | &:focus, 25 | &:hover { 26 | @content; 27 | } 28 | } 29 | } 30 | 31 | @mixin plain-hover-focus { 32 | @if $enable-hover-media-query { 33 | &, 34 | &:focus { 35 | @content; 36 | } 37 | @include hover { @content; } 38 | } @else { 39 | &, 40 | &:focus, 41 | &:hover { 42 | @content; 43 | } 44 | } 45 | } 46 | 47 | @mixin hover-focus-active { 48 | @if $enable-hover-media-query { 49 | &:focus, 50 | &:active { 51 | @content; 52 | } 53 | @include hover { @content; } 54 | } @else { 55 | &:focus, 56 | &:active, 57 | &:hover { 58 | @content; 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_image.scss: -------------------------------------------------------------------------------- 1 | // Image Mixins 2 | // - Responsive image 3 | // - Retina image 4 | 5 | 6 | // Responsive image 7 | // 8 | // Keep images from scaling beyond the width of their parents. 9 | 10 | @mixin img-fluid { 11 | // Part 1: Set a maximum relative to the parent 12 | max-width: 100%; 13 | // Part 2: Override the height to auto, otherwise images will be stretched 14 | // when setting a width and height attribute on the img element. 15 | height: auto; 16 | } 17 | 18 | 19 | // Retina image 20 | // 21 | // Short retina mixin for setting background-image and -size. 22 | 23 | // stylelint-disable indentation, media-query-list-comma-newline-after 24 | @mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) { 25 | background-image: url($file-1x); 26 | 27 | // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio, 28 | // but doesn't convert dppx=>dpi. 29 | // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard. 30 | // Compatibility info: https://caniuse.com/#feat=css-media-resolution 31 | @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx 32 | only screen and (min-resolution: 2dppx) { // Standardized 33 | background-image: url($file-2x); 34 | background-size: $width-1x $height-1x; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_list-group.scss: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | @mixin list-group-item-variant($state, $background, $color) { 4 | .list-group-item-#{$state} { 5 | color: $color; 6 | background-color: $background; 7 | } 8 | 9 | a.list-group-item-#{$state}, 10 | button.list-group-item-#{$state} { 11 | color: $color; 12 | 13 | @include hover-focus { 14 | color: $color; 15 | background-color: darken($background, 5%); 16 | } 17 | 18 | &.active { 19 | color: #fff; 20 | background-color: $color; 21 | border-color: $color; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_lists.scss: -------------------------------------------------------------------------------- 1 | // Lists 2 | 3 | // Unstyled keeps list items block level, just removes default browser padding and list-style 4 | @mixin list-unstyled { 5 | padding-left: 0; 6 | list-style: none; 7 | } 8 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_nav-divider.scss: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | @mixin nav-divider($color: #e5e5e5) { 6 | height: 0; 7 | margin: ($spacer / 2) 0; 8 | overflow: hidden; 9 | border-top: 1px solid $color; 10 | } 11 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_navbar-align.scss: -------------------------------------------------------------------------------- 1 | // Navbar vertical align 2 | // 3 | // Vertically center elements in the navbar. 4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` 5 | // to calculate the appropriate top margin. 6 | 7 | // @mixin navbar-vertical-align($element-height) { 8 | // margin-top: (($navbar-height - $element-height) / 2); 9 | // margin-bottom: (($navbar-height - $element-height) / 2); 10 | // } 11 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_pagination.scss: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | @mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) { 4 | .page-link { 5 | padding: $padding-y $padding-x; 6 | font-size: $font-size; 7 | line-height: $line-height; 8 | } 9 | 10 | .page-item { 11 | &:first-child { 12 | .page-link { 13 | @include border-left-radius($border-radius); 14 | } 15 | } 16 | &:last-child { 17 | .page-link { 18 | @include border-right-radius($border-radius); 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_reset-text.scss: -------------------------------------------------------------------------------- 1 | @mixin reset-text { 2 | font-family: $font-family-base; 3 | // We deliberately do NOT reset font-size or word-wrap. 4 | font-style: normal; 5 | font-weight: $font-weight-normal; 6 | line-height: $line-height-base; 7 | text-align: left; // Fallback for where `start` is not supported 8 | text-align: start; // stylelint-disable-line declaration-block-no-duplicate-properties 9 | text-decoration: none; 10 | text-shadow: none; 11 | text-transform: none; 12 | letter-spacing: normal; 13 | word-break: normal; 14 | word-spacing: normal; 15 | white-space: normal; 16 | line-break: auto; 17 | } 18 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_resize.scss: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | @mixin resizable($direction) { 4 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 5 | resize: $direction; // Options: horizontal, vertical, both 6 | } 7 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // Only display content to screen readers 2 | // 3 | // See: http://a11yproject.com/posts/how-to-hide-content/ 4 | // See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/ 5 | 6 | @mixin sr-only { 7 | position: absolute; 8 | width: 1px; 9 | height: 1px; 10 | padding: 0; 11 | overflow: hidden; 12 | clip: rect(0,0,0,0); 13 | white-space: nowrap; 14 | clip-path: inset(50%); 15 | border: 0; 16 | } 17 | 18 | // Use in conjunction with .sr-only to only display content when it's focused. 19 | // 20 | // Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 21 | // 22 | // Credit: HTML5 Boilerplate 23 | 24 | @mixin sr-only-focusable { 25 | &:active, 26 | &:focus { 27 | position: static; 28 | width: auto; 29 | height: auto; 30 | overflow: visible; 31 | clip: auto; 32 | white-space: normal; 33 | clip-path: none; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_size.scss: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | @mixin size($width, $height: $width) { 4 | width: $width; 5 | height: $height; 6 | } 7 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_table-row.scss: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | @mixin table-row-variant($state, $background) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table-#{$state} { 7 | &, 8 | > th, 9 | > td { 10 | background-color: $background; 11 | } 12 | } 13 | 14 | // Hover states for `.table-hover` 15 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 16 | .table-hover { 17 | $hover-background: darken($background, 5%); 18 | 19 | .table-#{$state} { 20 | @include hover { 21 | background-color: $hover-background; 22 | 23 | > td, 24 | > th { 25 | background-color: $hover-background; 26 | } 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_text-emphasis.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Typography 4 | 5 | @mixin text-emphasis-variant($parent, $color) { 6 | #{$parent} { 7 | color: $color !important; 8 | } 9 | a#{$parent} { 10 | @include hover-focus { 11 | color: darken($color, 10%) !important; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_text-hide.scss: -------------------------------------------------------------------------------- 1 | // CSS image replacement 2 | @mixin text-hide() { 3 | font: 0/0 a; 4 | color: transparent; 5 | text-shadow: none; 6 | background-color: transparent; 7 | border: 0; 8 | } 9 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_text-truncate.scss: -------------------------------------------------------------------------------- 1 | // Text truncate 2 | // Requires inline-block or block for proper styling 3 | 4 | @mixin text-truncate() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_transition.scss: -------------------------------------------------------------------------------- 1 | @mixin transition($transition...) { 2 | @if $enable-transitions { 3 | @if length($transition) == 0 { 4 | transition: $transition-base; 5 | } @else { 6 | transition: $transition; 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/mixins/_visibility.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Visibility 4 | 5 | @mixin invisible($visibility) { 6 | visibility: $visibility !important; 7 | } 8 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/themes/_light.scss: -------------------------------------------------------------------------------- 1 | // 2 | // 3 | // Light theme for GUI Wallet 4 | // #x42 5 | // 6 | // 7 | 8 | ///// Variables 9 | $body-bg : #FAFBFC; 10 | 11 | ///// BODY 12 | { 13 | &.light { 14 | background-color: $body-bg !important; 15 | .btn-outline-light {&:hover {color: $white;}} 16 | 17 | ///// MENU 18 | .navbar { 19 | /* Base: */ 20 | background: $white; 21 | box-shadow: 0 2px 27px 0 #E6E8F7; 22 | 23 | &.bg-light { 24 | background-color: $white; 25 | } 26 | } 27 | 28 | ///// JUMBOTRON 29 | .jumbotron { 30 | h5 {color: #A6AFB4;} 31 | } 32 | 33 | ///// CONTENT 34 | // Cards 35 | .card { 36 | background: rgba(255,255,255,0.74); 37 | box-shadow: 0 2px 30px 0 #E6E8F7; 38 | &:hover { 39 | border: $card-border-width solid #158BCF; 40 | box-shadow: 0 5px 40px 0 #BDDDF2; 41 | } 42 | 43 | .card-header { 44 | background-color: $white; 45 | color: #A6AFB4; 46 | } 47 | } 48 | // Tables 49 | .table { 50 | color: #A6AFB4; 51 | strong { 52 | color: $black; 53 | font-weight: 600; 54 | } 55 | } 56 | // Staking 57 | #staking { 58 | color: #A6AFB4; 59 | strong { 60 | color: $black; 61 | } 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/utilities/_align.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | .align-baseline { vertical-align: baseline !important; } // Browser default 4 | .align-top { vertical-align: top !important; } 5 | .align-middle { vertical-align: middle !important; } 6 | .align-bottom { vertical-align: bottom !important; } 7 | .align-text-bottom { vertical-align: text-bottom !important; } 8 | .align-text-top { vertical-align: text-top !important; } 9 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/utilities/_background.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | @each $color, $value in $theme-colors { 4 | @include bg-variant(".bg-#{$color}", $value); 5 | } 6 | 7 | @if $enable-gradients { 8 | @each $color, $value in $theme-colors { 9 | @include bg-gradient-variant(".bg-gradient-#{$color}", $value); 10 | } 11 | } 12 | 13 | .bg-white { 14 | background-color: $white !important; 15 | } 16 | 17 | .bg-transparent { 18 | background-color: transparent !important; 19 | } 20 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/utilities/_borders.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // 4 | // Border 5 | // 6 | 7 | .border { border: $border-width solid $border-color !important; } 8 | .border-0 { border: 0 !important; } 9 | .border-top-0 { border-top: 0 !important; } 10 | .border-right-0 { border-right: 0 !important; } 11 | .border-bottom-0 { border-bottom: 0 !important; } 12 | .border-left-0 { border-left: 0 !important; } 13 | 14 | @each $color, $value in $theme-colors { 15 | .border-#{$color} { 16 | border-color: $value !important; 17 | } 18 | } 19 | 20 | .border-white { 21 | border-color: $white !important; 22 | } 23 | 24 | // 25 | // Border-radius 26 | // 27 | 28 | .rounded { 29 | border-radius: $border-radius !important; 30 | } 31 | .rounded-top { 32 | border-top-left-radius: $border-radius !important; 33 | border-top-right-radius: $border-radius !important; 34 | } 35 | .rounded-right { 36 | border-top-right-radius: $border-radius !important; 37 | border-bottom-right-radius: $border-radius !important; 38 | } 39 | .rounded-bottom { 40 | border-bottom-right-radius: $border-radius !important; 41 | border-bottom-left-radius: $border-radius !important; 42 | } 43 | .rounded-left { 44 | border-top-left-radius: $border-radius !important; 45 | border-bottom-left-radius: $border-radius !important; 46 | } 47 | 48 | .rounded-circle { 49 | border-radius: 50% !important; 50 | } 51 | 52 | .rounded-0 { 53 | border-radius: 0 !important; 54 | } 55 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/utilities/_clearfix.scss: -------------------------------------------------------------------------------- 1 | .clearfix { 2 | @include clearfix(); 3 | } 4 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/utilities/_display.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // 4 | // Utilities for common `display` values 5 | // 6 | 7 | @each $breakpoint in map-keys($grid-breakpoints) { 8 | @include media-breakpoint-up($breakpoint) { 9 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints); 10 | 11 | .d#{$infix}-none { display: none !important; } 12 | .d#{$infix}-inline { display: inline !important; } 13 | .d#{$infix}-inline-block { display: inline-block !important; } 14 | .d#{$infix}-block { display: block !important; } 15 | .d#{$infix}-table { display: table !important; } 16 | .d#{$infix}-table-row { display: table-row !important; } 17 | .d#{$infix}-table-cell { display: table-cell !important; } 18 | .d#{$infix}-flex { display: flex !important; } 19 | .d#{$infix}-inline-flex { display: inline-flex !important; } 20 | } 21 | } 22 | 23 | 24 | // 25 | // Utilities for toggling `display` in print 26 | // 27 | 28 | .d-print-block { 29 | display: none !important; 30 | 31 | @media print { 32 | display: block !important; 33 | } 34 | } 35 | 36 | .d-print-inline { 37 | display: none !important; 38 | 39 | @media print { 40 | display: inline !important; 41 | } 42 | } 43 | 44 | .d-print-inline-block { 45 | display: none !important; 46 | 47 | @media print { 48 | display: inline-block !important; 49 | } 50 | } 51 | 52 | .d-print-none { 53 | @media print { 54 | display: none !important; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/utilities/_embed.scss: -------------------------------------------------------------------------------- 1 | // Credit: Nicolas Gallagher and SUIT CSS. 2 | 3 | .embed-responsive { 4 | position: relative; 5 | display: block; 6 | width: 100%; 7 | padding: 0; 8 | overflow: hidden; 9 | 10 | &::before { 11 | display: block; 12 | content: ""; 13 | } 14 | 15 | .embed-responsive-item, 16 | iframe, 17 | embed, 18 | object, 19 | video { 20 | position: absolute; 21 | top: 0; 22 | bottom: 0; 23 | left: 0; 24 | width: 100%; 25 | height: 100%; 26 | border: 0; 27 | } 28 | } 29 | 30 | .embed-responsive-21by9 { 31 | &::before { 32 | padding-top: percentage(9 / 21); 33 | } 34 | } 35 | 36 | .embed-responsive-16by9 { 37 | &::before { 38 | padding-top: percentage(9 / 16); 39 | } 40 | } 41 | 42 | .embed-responsive-4by3 { 43 | &::before { 44 | padding-top: percentage(3 / 4); 45 | } 46 | } 47 | 48 | .embed-responsive-1by1 { 49 | &::before { 50 | padding-top: percentage(1 / 1); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/utilities/_float.scss: -------------------------------------------------------------------------------- 1 | @each $breakpoint in map-keys($grid-breakpoints) { 2 | @include media-breakpoint-up($breakpoint) { 3 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints); 4 | 5 | .float#{$infix}-left { @include float-left; } 6 | .float#{$infix}-right { @include float-right; } 7 | .float#{$infix}-none { @include float-none; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/utilities/_position.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Common values 4 | 5 | // Sass list not in variables since it's not intended for customization. 6 | $positions: static, relative, absolute, fixed, sticky; 7 | 8 | @each $position in $positions { 9 | .position-#{$position} { position: $position !important; } 10 | } 11 | 12 | // Shorthand 13 | 14 | .fixed-top { 15 | position: fixed; 16 | top: 0; 17 | right: 0; 18 | left: 0; 19 | z-index: $zindex-fixed; 20 | } 21 | 22 | .fixed-bottom { 23 | position: fixed; 24 | right: 0; 25 | bottom: 0; 26 | left: 0; 27 | z-index: $zindex-fixed; 28 | } 29 | 30 | .sticky-top { 31 | @supports (position: sticky) { 32 | position: sticky; 33 | top: 0; 34 | z-index: $zindex-sticky; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/utilities/_screenreaders.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Screenreaders 3 | // 4 | 5 | .sr-only { 6 | @include sr-only(); 7 | } 8 | 9 | .sr-only-focusable { 10 | @include sr-only-focusable(); 11 | } 12 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/utilities/_sizing.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Width and height 4 | 5 | @each $prop, $abbrev in (width: w, height: h) { 6 | @each $size, $length in $sizes { 7 | .#{$abbrev}-#{$size} { #{$prop}: $length !important; } 8 | } 9 | } 10 | 11 | .mw-100 { max-width: 100% !important; } 12 | .mh-100 { max-height: 100% !important; } 13 | -------------------------------------------------------------------------------- /xCore.UI/src/scss/utilities/_visibility.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Visibility utilities 3 | // 4 | 5 | .visible { 6 | @include invisible(visible); 7 | } 8 | 9 | .invisible { 10 | @include invisible(hidden); 11 | } 12 | -------------------------------------------------------------------------------- /xCore.UI/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/dist/zone-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: any; 11 | 12 | // First, initialize the Angular testing environment. 13 | getTestBed().initTestEnvironment( 14 | BrowserDynamicTestingModule, 15 | platformBrowserDynamicTesting() 16 | ); 17 | // Then we find all the tests. 18 | const context = require.context('./', true, /\.spec\.ts$/); 19 | // And load the modules. 20 | context.keys().map(context); 21 | -------------------------------------------------------------------------------- /xCore.UI/src/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "allowSyntheticDefaultImports": true, 5 | "outDir": "../out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": [ 9 | "main.ts", 10 | "polyfills.ts" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /xCore.UI/src/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "allowSyntheticDefaultImports": true, 5 | "outDir": "../out-tsc/spec", 6 | "types": [ 7 | "jasmine", 8 | "node" 9 | ] 10 | }, 11 | "files": [ 12 | "test.ts", 13 | "polyfills.ts" 14 | ], 15 | "include": [ 16 | "**/*.spec.ts", 17 | "**/*.d.ts" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /xCore.UI/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 | -------------------------------------------------------------------------------- /xCore.UI/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "allowSyntheticDefaultImports": true, 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "include": [ 9 | "src/**/*.ts" 10 | ], 11 | "exclude": [ 12 | "src/test.ts", 13 | "src/**/*.spec.ts" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /xCore.UI/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "downlevelIteration": true, 9 | "experimentalDecorators": true, 10 | "module": "esnext", 11 | "moduleResolution": "node", 12 | "importHelpers": true, 13 | "target": "es2015", 14 | "resolveJsonModule": true, 15 | "typeRoots": [ 16 | "node_modules/@types" 17 | ], 18 | "lib": [ 19 | "es2018", 20 | "dom" 21 | ], 22 | "paths": { 23 | "@models/*": [ 24 | "./src/app/shared/models/*" 25 | ], 26 | "exceljs": [ 27 | "node_modules/exceljs/dist/exceljs.min" 28 | ] 29 | } 30 | }, 31 | "angularCompilerOptions": { 32 | "fullTemplateTypeCheck": true, 33 | "strictInjectionParameters": true, 34 | "enableIvy": false 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /xCore.UI/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "emitDecoratorMetadata": true, 5 | "outDir": "./out-tsc/spec", 6 | "types": [ 7 | "jasmine", 8 | "node" 9 | ] 10 | }, 11 | "files": [ 12 | "src/test.ts", 13 | "src/polyfills.ts" 14 | ], 15 | "include": [ 16 | "src/**/*.spec.ts", 17 | "src/**/*.d.ts" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /xCore.UI/xCore.UI.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29613.14 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9092AA53-FB77-4645-B42D-1CCCA6BD08BD}") = "xCore.UI", "xCore.UI.njsproj", "{509CEAB5-9EA5-4CE5-851B-86A438D95DCC}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {509CEAB5-9EA5-4CE5-851B-86A438D95DCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {509CEAB5-9EA5-4CE5-851B-86A438D95DCC}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {509CEAB5-9EA5-4CE5-851B-86A438D95DCC}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {509CEAB5-9EA5-4CE5-851B-86A438D95DCC}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {03BFFECC-D94F-41BF-9176-D9DA67E71094} 24 | EndGlobalSection 25 | EndGlobal 26 | --------------------------------------------------------------------------------