├── .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 |
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 |
8 |
Warning!
9 |
10 | Please write down your secret words and password.
11 | You will need both to recover your wallet in the future.
12 |
13 |
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 |
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 |
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 |
The Extended Public Key has been copied to your clipboard.
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 |
5 | Rescanning your wallet will temporarily clear the transactions in your wallet and rescan the blockchain.
6 | Select a date from where you wish to rescan and click the button below.
7 |
8 |
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 |
2 |
3 | The signature is valid
4 |
5 |
6 | The signature is invalid
7 |
8 |
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 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Add Zone
9 |
10 |
11 |
12 |
13 |
14 |
15 | Prefered Name Servers
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | $ {{selectedPeers.length * 0.5}}
28 |
29 |
30 |
31 |
32 |
36 |
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
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 |
--------------------------------------------------------------------------------