@wallfree-dev/angular-core 0.0.59-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -0
- package/esm2022/lib/airgap-angular-core.module.mjs +63 -0
- package/esm2022/lib/base/base.component.mjs +38 -0
- package/esm2022/lib/base/base.facade.mjs +37 -0
- package/esm2022/lib/capacitor-plugins/definitions.mjs +15 -0
- package/esm2022/lib/capacitor-plugins/injection-tokens.mjs +11 -0
- package/esm2022/lib/capacitor-plugins/isolated-modules/isolated-modules.plugin-wrapper.mjs +67 -0
- package/esm2022/lib/capacitor-plugins/isolated-modules/isolated-modules.plugin.mjs +247 -0
- package/esm2022/lib/components/account-item/account-item.component.mjs +30 -0
- package/esm2022/lib/components/account-selection/account-selection.component.mjs +61 -0
- package/esm2022/lib/components/components.module.mjs +97 -0
- package/esm2022/lib/components/currency-symbol/currency-symbol.component.mjs +45 -0
- package/esm2022/lib/components/currency-symbol/currency-symbol.facade.mjs +8 -0
- package/esm2022/lib/components/currency-symbol/currency-symbol.types.mjs +2 -0
- package/esm2022/lib/components/from-to/from-to.component.mjs +100 -0
- package/esm2022/lib/components/iac-qr/iac-qr.component.mjs +192 -0
- package/esm2022/lib/components/identicon/identicon.component.mjs +51 -0
- package/esm2022/lib/components/isolated-modules-badges/isolated-modules-badges.component.mjs +16 -0
- package/esm2022/lib/components/isolated-modules-details/isolated-modules-details.component.mjs +43 -0
- package/esm2022/lib/components/isolated-modules-details/isolated-modules-details.facade.mjs +7 -0
- package/esm2022/lib/components/isolated-modules-list/isolated-modules-list.component.mjs +50 -0
- package/esm2022/lib/components/isolated-modules-list/isolated-modules-list.facade.mjs +7 -0
- package/esm2022/lib/components/isolated-modules-onboarding/isolated-modules-onboarding.component.mjs +12 -0
- package/esm2022/lib/components/network-badge/network-badge.component.mjs +19 -0
- package/esm2022/lib/components/qr/qr.component.mjs +36 -0
- package/esm2022/lib/components/qr-settings/qr-settings.component.mjs +30 -0
- package/esm2022/lib/components/titled-address/titled-address.component.mjs +31 -0
- package/esm2022/lib/components/titled-text/titled-text.component.mjs +28 -0
- package/esm2022/lib/config/app-config.mjs +3 -0
- package/esm2022/lib/pages/isolated-modules-list/isolated-modules-list.facade.mjs +7 -0
- package/esm2022/lib/pipes/amount-converter/amount-converter.pipe.mjs +82 -0
- package/esm2022/lib/pipes/fee-converter/fee-converter.pipe.mjs +36 -0
- package/esm2022/lib/pipes/pipes.module.mjs +19 -0
- package/esm2022/lib/pipes/wallet-filter/wallet-filter.pipe.mjs +36 -0
- package/esm2022/lib/protocol/adapter/protocol-v0-adapter.mjs +880 -0
- package/esm2022/lib/protocol/isolated/base-isolated.mjs +27 -0
- package/esm2022/lib/protocol/isolated/block-explorer-isolated.mjs +32 -0
- package/esm2022/lib/protocol/isolated/protocol-offline-isolated.mjs +37 -0
- package/esm2022/lib/protocol/isolated/protocol-online-isolated.mjs +52 -0
- package/esm2022/lib/protocol/isolated/v3-serializer-companion-isolated.mjs +35 -0
- package/esm2022/lib/services/address/address.service.mjs +78 -0
- package/esm2022/lib/services/clipboard/clipboard.service.mjs +48 -0
- package/esm2022/lib/services/deeplink/deeplink.service.mjs +73 -0
- package/esm2022/lib/services/environment/base-environment.service.mjs +6 -0
- package/esm2022/lib/services/filesystem/filesystem.service.mjs +291 -0
- package/esm2022/lib/services/iac/base.iac.service.mjs +155 -0
- package/esm2022/lib/services/iac/message-handler-single.mjs +48 -0
- package/esm2022/lib/services/iac/message-handler.mjs +22 -0
- package/esm2022/lib/services/iac/qr-generator.mjs +17 -0
- package/esm2022/lib/services/image/fetcher/image-direct.fetcher.mjs +16 -0
- package/esm2022/lib/services/image/fetcher/image-proxy.fetcher.mjs +45 -0
- package/esm2022/lib/services/image/image.service.mjs +39 -0
- package/esm2022/lib/services/key-pair/key-pair.service.mjs +57 -0
- package/esm2022/lib/services/language/language.service.mjs +47 -0
- package/esm2022/lib/services/modules/base-modules.service.mjs +157 -0
- package/esm2022/lib/services/modules/controller/base-modules.controller.mjs +2 -0
- package/esm2022/lib/services/modules/controller/integral/integral-modules.controller.mjs +91 -0
- package/esm2022/lib/services/modules/controller/isolated/isolated-modules.controller.mjs +190 -0
- package/esm2022/lib/services/modules/controller/modules.controller.mjs +85 -0
- package/esm2022/lib/services/permissions/permissions.service.mjs +140 -0
- package/esm2022/lib/services/protocol/defaults.mjs +55 -0
- package/esm2022/lib/services/protocol/protocol.service.mjs +230 -0
- package/esm2022/lib/services/protocol/store/base-protocol-store.service.mjs +63 -0
- package/esm2022/lib/services/protocol/store/main/main-protocol-store.service.mjs +91 -0
- package/esm2022/lib/services/protocol/store/sub/sub-protocol-store.service.mjs +174 -0
- package/esm2022/lib/services/qr/qr-generators/bc-ur-generator.mjs +127 -0
- package/esm2022/lib/services/qr/qr-generators/metamask-generator.mjs +117 -0
- package/esm2022/lib/services/qr/qr-generators/output-descriptor-generator.mjs +49 -0
- package/esm2022/lib/services/qr/qr-generators/serializer-v2-generator.mjs +30 -0
- package/esm2022/lib/services/qr/qr-generators/serializer-v3-generator.mjs +45 -0
- package/esm2022/lib/services/qr/qr-generators/xpub-generator.mjs +38 -0
- package/esm2022/lib/services/qr/qr-handler/serializer-v2-handler.mjs +114 -0
- package/esm2022/lib/services/qr/qr-handler/serializer-v3-handler.mjs +274 -0
- package/esm2022/lib/services/qr-scanner/qr-scanner.service.mjs +61 -0
- package/esm2022/lib/services/serializer/serializer.service.mjs +181 -0
- package/esm2022/lib/services/storage/base.storage.mjs +30 -0
- package/esm2022/lib/services/storage/storage.service.mjs +33 -0
- package/esm2022/lib/services/token/token.service.mjs +52 -0
- package/esm2022/lib/services/transaction/transaction.service.mjs +67 -0
- package/esm2022/lib/services/ui-event/ui-event.service.mjs +198 -0
- package/esm2022/lib/services/ui-event-elements/ui-event-elements.service.mjs +122 -0
- package/esm2022/lib/services/uri/uri.service.mjs +51 -0
- package/esm2022/lib/translation/AirGapTranslateLoader.mjs +26 -0
- package/esm2022/lib/types/Either.mjs +2 -0
- package/esm2022/lib/types/ExternalAliasResolver.mjs +2 -0
- package/esm2022/lib/types/RuntimeMode.mjs +6 -0
- package/esm2022/lib/types/SupportedLanguage.mjs +2 -0
- package/esm2022/lib/types/Token.mjs +2 -0
- package/esm2022/lib/types/isolated-modules/IsolatedModule.mjs +2 -0
- package/esm2022/lib/types/isolated-modules/IsolatedModuleManifest.mjs +2 -0
- package/esm2022/lib/types/isolated-modules/IsolatedModuleMetadata.mjs +2 -0
- package/esm2022/lib/types/ui/UIAction.mjs +6 -0
- package/esm2022/lib/types/ui/UIResource.mjs +8 -0
- package/esm2022/lib/utils/ExposedPromise.mjs +103 -0
- package/esm2022/lib/utils/airgap-transaction.mjs +23 -0
- package/esm2022/lib/utils/array.mjs +32 -0
- package/esm2022/lib/utils/modules/isolated/isolated-modules-metadata.mjs +10 -0
- package/esm2022/lib/utils/modules/load-protocol.mjs +19 -0
- package/esm2022/lib/utils/not-initialized.mjs +7 -0
- package/esm2022/lib/utils/protocol/delegation.mjs +33 -0
- package/esm2022/lib/utils/protocol/protocol-identifier.mjs +4 -0
- package/esm2022/lib/utils/protocol/protocol-network-identifier.mjs +18 -0
- package/esm2022/lib/utils/protocol/protocol-options.mjs +114 -0
- package/esm2022/lib/utils/protocol/protocol-v0-adapter.mjs +390 -0
- package/esm2022/lib/utils/utils.mjs +80 -0
- package/esm2022/lib/utils/worker.mjs +28 -0
- package/esm2022/public-api.mjs +102 -0
- package/esm2022/wallfree-dev-angular-core.mjs +5 -0
- package/fesm2022/wallfree-dev-angular-core.mjs +6933 -0
- package/fesm2022/wallfree-dev-angular-core.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/lib/airgap-angular-core.module.d.ts +25 -0
- package/lib/airgap-angular-core.module.d.ts.map +1 -0
- package/lib/base/base.component.d.ts +18 -0
- package/lib/base/base.component.d.ts.map +1 -0
- package/lib/base/base.facade.d.ts +16 -0
- package/lib/base/base.facade.d.ts.map +1 -0
- package/lib/capacitor-plugins/definitions.d.ts +122 -0
- package/lib/capacitor-plugins/definitions.d.ts.map +1 -0
- package/lib/capacitor-plugins/injection-tokens.d.ts +18 -0
- package/lib/capacitor-plugins/injection-tokens.d.ts.map +1 -0
- package/lib/capacitor-plugins/isolated-modules/isolated-modules.plugin-wrapper.d.ts +20 -0
- package/lib/capacitor-plugins/isolated-modules/isolated-modules.plugin-wrapper.d.ts.map +1 -0
- package/lib/capacitor-plugins/isolated-modules/isolated-modules.plugin.d.ts +38 -0
- package/lib/capacitor-plugins/isolated-modules/isolated-modules.plugin.d.ts.map +1 -0
- package/lib/components/account-item/account-item.component.d.ts +15 -0
- package/lib/components/account-item/account-item.component.d.ts.map +1 -0
- package/lib/components/account-selection/account-selection.component.d.ts +23 -0
- package/lib/components/account-selection/account-selection.component.d.ts.map +1 -0
- package/lib/components/components.module.d.ts +28 -0
- package/lib/components/components.module.d.ts.map +1 -0
- package/lib/components/currency-symbol/currency-symbol.component.d.ts +20 -0
- package/lib/components/currency-symbol/currency-symbol.component.d.ts.map +1 -0
- package/lib/components/currency-symbol/currency-symbol.facade.d.ts +16 -0
- package/lib/components/currency-symbol/currency-symbol.facade.d.ts.map +1 -0
- package/lib/components/currency-symbol/currency-symbol.types.d.ts +35 -0
- package/lib/components/currency-symbol/currency-symbol.types.d.ts.map +1 -0
- package/lib/components/from-to/from-to.component.d.ts +33 -0
- package/lib/components/from-to/from-to.component.d.ts.map +1 -0
- package/lib/components/iac-qr/iac-qr.component.d.ts +45 -0
- package/lib/components/iac-qr/iac-qr.component.d.ts.map +1 -0
- package/lib/components/identicon/identicon.component.d.ts +14 -0
- package/lib/components/identicon/identicon.component.d.ts.map +1 -0
- package/lib/components/isolated-modules-badges/isolated-modules-badges.component.d.ts +8 -0
- package/lib/components/isolated-modules-badges/isolated-modules-badges.component.d.ts.map +1 -0
- package/lib/components/isolated-modules-details/isolated-modules-details.component.d.ts +17 -0
- package/lib/components/isolated-modules-details/isolated-modules-details.component.d.ts.map +1 -0
- package/lib/components/isolated-modules-details/isolated-modules-details.facade.d.ts +17 -0
- package/lib/components/isolated-modules-details/isolated-modules-details.facade.d.ts.map +1 -0
- package/lib/components/isolated-modules-list/isolated-modules-list.component.d.ts +20 -0
- package/lib/components/isolated-modules-list/isolated-modules-list.component.d.ts.map +1 -0
- package/lib/components/isolated-modules-list/isolated-modules-list.facade.d.ts +15 -0
- package/lib/components/isolated-modules-list/isolated-modules-list.facade.d.ts.map +1 -0
- package/lib/components/isolated-modules-onboarding/isolated-modules-onboarding.component.d.ts +6 -0
- package/lib/components/isolated-modules-onboarding/isolated-modules-onboarding.component.d.ts.map +1 -0
- package/lib/components/network-badge/network-badge.component.d.ts +9 -0
- package/lib/components/network-badge/network-badge.component.d.ts.map +1 -0
- package/lib/components/qr/qr.component.d.ts +16 -0
- package/lib/components/qr/qr.component.d.ts.map +1 -0
- package/lib/components/qr-settings/qr-settings.component.d.ts +12 -0
- package/lib/components/qr-settings/qr-settings.component.d.ts.map +1 -0
- package/lib/components/titled-address/titled-address.component.d.ts +13 -0
- package/lib/components/titled-address/titled-address.component.d.ts.map +1 -0
- package/lib/components/titled-text/titled-text.component.d.ts +11 -0
- package/lib/components/titled-text/titled-text.component.d.ts.map +1 -0
- package/lib/config/app-config.d.ts +15 -0
- package/lib/config/app-config.d.ts.map +1 -0
- package/lib/pages/isolated-modules-list/isolated-modules-list.facade.d.ts +16 -0
- package/lib/pages/isolated-modules-list/isolated-modules-list.facade.d.ts.map +1 -0
- package/lib/pipes/amount-converter/amount-converter.pipe.d.ts +29 -0
- package/lib/pipes/amount-converter/amount-converter.pipe.d.ts.map +1 -0
- package/lib/pipes/fee-converter/fee-converter.pipe.d.ts +20 -0
- package/lib/pipes/fee-converter/fee-converter.pipe.d.ts.map +1 -0
- package/lib/pipes/pipes.module.d.ts +10 -0
- package/lib/pipes/pipes.module.d.ts.map +1 -0
- package/lib/pipes/wallet-filter/wallet-filter.pipe.d.ts +15 -0
- package/lib/pipes/wallet-filter/wallet-filter.pipe.d.ts.map +1 -0
- package/lib/protocol/adapter/protocol-v0-adapter.d.ts +231 -0
- package/lib/protocol/adapter/protocol-v0-adapter.d.ts.map +1 -0
- package/lib/protocol/isolated/base-isolated.d.ts +11 -0
- package/lib/protocol/isolated/base-isolated.d.ts.map +1 -0
- package/lib/protocol/isolated/block-explorer-isolated.d.ts +14 -0
- package/lib/protocol/isolated/block-explorer-isolated.d.ts.map +1 -0
- package/lib/protocol/isolated/protocol-offline-isolated.d.ts +17 -0
- package/lib/protocol/isolated/protocol-offline-isolated.d.ts.map +1 -0
- package/lib/protocol/isolated/protocol-online-isolated.d.ts +21 -0
- package/lib/protocol/isolated/protocol-online-isolated.d.ts.map +1 -0
- package/lib/protocol/isolated/v3-serializer-companion-isolated.d.ts +17 -0
- package/lib/protocol/isolated/v3-serializer-companion-isolated.d.ts.map +1 -0
- package/lib/services/address/address.service.d.ts +26 -0
- package/lib/services/address/address.service.d.ts.map +1 -0
- package/lib/services/clipboard/clipboard.service.d.ts +14 -0
- package/lib/services/clipboard/clipboard.service.d.ts.map +1 -0
- package/lib/services/deeplink/deeplink.service.d.ts +18 -0
- package/lib/services/deeplink/deeplink.service.d.ts.map +1 -0
- package/lib/services/environment/base-environment.service.d.ts +6 -0
- package/lib/services/environment/base-environment.service.d.ts.map +1 -0
- package/lib/services/filesystem/filesystem.service.d.ts +42 -0
- package/lib/services/filesystem/filesystem.service.d.ts.map +1 -0
- package/lib/services/iac/base.iac.service.d.ts +41 -0
- package/lib/services/iac/base.iac.service.d.ts.map +1 -0
- package/lib/services/iac/message-handler-single.d.ts +20 -0
- package/lib/services/iac/message-handler-single.d.ts.map +1 -0
- package/lib/services/iac/message-handler.d.ts +34 -0
- package/lib/services/iac/message-handler.d.ts.map +1 -0
- package/lib/services/iac/qr-generator.d.ts +13 -0
- package/lib/services/iac/qr-generator.d.ts.map +1 -0
- package/lib/services/image/fetcher/image-direct.fetcher.d.ts +9 -0
- package/lib/services/image/fetcher/image-direct.fetcher.d.ts.map +1 -0
- package/lib/services/image/fetcher/image-proxy.fetcher.d.ts +9 -0
- package/lib/services/image/fetcher/image-proxy.fetcher.d.ts.map +1 -0
- package/lib/services/image/image.service.d.ts +20 -0
- package/lib/services/image/image.service.d.ts.map +1 -0
- package/lib/services/key-pair/key-pair.service.d.ts +14 -0
- package/lib/services/key-pair/key-pair.service.d.ts.map +1 -0
- package/lib/services/language/language.service.d.ts +21 -0
- package/lib/services/language/language.service.d.ts.map +1 -0
- package/lib/services/modules/base-modules.service.d.ts +34 -0
- package/lib/services/modules/base-modules.service.d.ts.map +1 -0
- package/lib/services/modules/controller/base-modules.controller.d.ts +19 -0
- package/lib/services/modules/controller/base-modules.controller.d.ts.map +1 -0
- package/lib/services/modules/controller/integral/integral-modules.controller.d.ts +22 -0
- package/lib/services/modules/controller/integral/integral-modules.controller.d.ts.map +1 -0
- package/lib/services/modules/controller/isolated/isolated-modules.controller.d.ts +32 -0
- package/lib/services/modules/controller/isolated/isolated-modules.controller.d.ts.map +1 -0
- package/lib/services/modules/controller/modules.controller.d.ts +27 -0
- package/lib/services/modules/controller/modules.controller.d.ts.map +1 -0
- package/lib/services/permissions/permissions.service.d.ts +39 -0
- package/lib/services/permissions/permissions.service.d.ts.map +1 -0
- package/lib/services/protocol/defaults.d.ts +6 -0
- package/lib/services/protocol/defaults.d.ts.map +1 -0
- package/lib/services/protocol/protocol.service.d.ts +47 -0
- package/lib/services/protocol/protocol.service.d.ts.map +1 -0
- package/lib/services/protocol/store/base-protocol-store.service.d.ts +36 -0
- package/lib/services/protocol/store/base-protocol-store.service.d.ts.map +1 -0
- package/lib/services/protocol/store/main/main-protocol-store.service.d.ts +21 -0
- package/lib/services/protocol/store/main/main-protocol-store.service.d.ts.map +1 -0
- package/lib/services/protocol/store/sub/sub-protocol-store.service.d.ts +31 -0
- package/lib/services/protocol/store/sub/sub-protocol-store.service.d.ts.map +1 -0
- package/lib/services/qr/qr-generators/bc-ur-generator.d.ts +16 -0
- package/lib/services/qr/qr-generators/bc-ur-generator.d.ts.map +1 -0
- package/lib/services/qr/qr-generators/metamask-generator.d.ts +16 -0
- package/lib/services/qr/qr-generators/metamask-generator.d.ts.map +1 -0
- package/lib/services/qr/qr-generators/output-descriptor-generator.d.ts +13 -0
- package/lib/services/qr/qr-generators/output-descriptor-generator.d.ts.map +1 -0
- package/lib/services/qr/qr-generators/serializer-v2-generator.d.ts +13 -0
- package/lib/services/qr/qr-generators/serializer-v2-generator.d.ts.map +1 -0
- package/lib/services/qr/qr-generators/serializer-v3-generator.d.ts +12 -0
- package/lib/services/qr/qr-generators/serializer-v3-generator.d.ts.map +1 -0
- package/lib/services/qr/qr-generators/xpub-generator.d.ts +12 -0
- package/lib/services/qr/qr-generators/xpub-generator.d.ts.map +1 -0
- package/lib/services/qr/qr-handler/serializer-v2-handler.d.ts +20 -0
- package/lib/services/qr/qr-handler/serializer-v2-handler.d.ts.map +1 -0
- package/lib/services/qr/qr-handler/serializer-v3-handler.d.ts +23 -0
- package/lib/services/qr/qr-handler/serializer-v3-handler.d.ts.map +1 -0
- package/lib/services/qr-scanner/qr-scanner.service.d.ts +23 -0
- package/lib/services/qr-scanner/qr-scanner.service.d.ts.map +1 -0
- package/lib/services/serializer/serializer.service.d.ts +34 -0
- package/lib/services/serializer/serializer.service.d.ts.map +1 -0
- package/lib/services/storage/base.storage.d.ts +15 -0
- package/lib/services/storage/base.storage.d.ts.map +1 -0
- package/lib/services/storage/storage.service.d.ts +28 -0
- package/lib/services/storage/storage.service.d.ts.map +1 -0
- package/lib/services/token/token.service.d.ts +11 -0
- package/lib/services/token/token.service.d.ts.map +1 -0
- package/lib/services/transaction/transaction.service.d.ts +21 -0
- package/lib/services/transaction/transaction.service.d.ts.map +1 -0
- package/lib/services/ui-event/ui-event.service.d.ts +58 -0
- package/lib/services/ui-event/ui-event.service.d.ts.map +1 -0
- package/lib/services/ui-event-elements/ui-event-elements.service.d.ts +16 -0
- package/lib/services/ui-event-elements/ui-event-elements.service.d.ts.map +1 -0
- package/lib/services/uri/uri.service.d.ts +15 -0
- package/lib/services/uri/uri.service.d.ts.map +1 -0
- package/lib/translation/AirGapTranslateLoader.d.ts +15 -0
- package/lib/translation/AirGapTranslateLoader.d.ts.map +1 -0
- package/lib/types/Either.d.ts +2 -0
- package/lib/types/Either.d.ts.map +1 -0
- package/lib/types/ExternalAliasResolver.d.ts +6 -0
- package/lib/types/ExternalAliasResolver.d.ts.map +1 -0
- package/lib/types/RuntimeMode.d.ts +5 -0
- package/lib/types/RuntimeMode.d.ts.map +1 -0
- package/lib/types/SupportedLanguage.d.ts +2 -0
- package/lib/types/SupportedLanguage.d.ts.map +1 -0
- package/lib/types/Token.d.ts +9 -0
- package/lib/types/Token.d.ts.map +1 -0
- package/lib/types/isolated-modules/IsolatedModule.d.ts +28 -0
- package/lib/types/isolated-modules/IsolatedModule.d.ts.map +1 -0
- package/lib/types/isolated-modules/IsolatedModuleManifest.d.ts +24 -0
- package/lib/types/isolated-modules/IsolatedModuleManifest.d.ts.map +1 -0
- package/lib/types/isolated-modules/IsolatedModuleMetadata.d.ts +21 -0
- package/lib/types/isolated-modules/IsolatedModuleMetadata.d.ts.map +1 -0
- package/lib/types/ui/UIAction.d.ts +10 -0
- package/lib/types/ui/UIAction.d.ts.map +1 -0
- package/lib/types/ui/UIResource.d.ts +11 -0
- package/lib/types/ui/UIResource.d.ts.map +1 -0
- package/lib/utils/ExposedPromise.d.ts +40 -0
- package/lib/utils/ExposedPromise.d.ts.map +1 -0
- package/lib/utils/airgap-transaction.d.ts +4 -0
- package/lib/utils/airgap-transaction.d.ts.map +1 -0
- package/lib/utils/array.d.ts +6 -0
- package/lib/utils/array.d.ts.map +1 -0
- package/lib/utils/modules/isolated/isolated-modules-metadata.d.ts +3 -0
- package/lib/utils/modules/isolated/isolated-modules-metadata.d.ts.map +1 -0
- package/lib/utils/modules/load-protocol.d.ts +4 -0
- package/lib/utils/modules/load-protocol.d.ts.map +1 -0
- package/lib/utils/not-initialized.d.ts +2 -0
- package/lib/utils/not-initialized.d.ts.map +1 -0
- package/lib/utils/protocol/delegation.d.ts +6 -0
- package/lib/utils/protocol/delegation.d.ts.map +1 -0
- package/lib/utils/protocol/protocol-identifier.d.ts +3 -0
- package/lib/utils/protocol/protocol-identifier.d.ts.map +1 -0
- package/lib/utils/protocol/protocol-network-identifier.d.ts +8 -0
- package/lib/utils/protocol/protocol-network-identifier.d.ts.map +1 -0
- package/lib/utils/protocol/protocol-options.d.ts +6 -0
- package/lib/utils/protocol/protocol-options.d.ts.map +1 -0
- package/lib/utils/protocol/protocol-v0-adapter.d.ts +75 -0
- package/lib/utils/protocol/protocol-v0-adapter.d.ts.map +1 -0
- package/lib/utils/utils.d.ts +9 -0
- package/lib/utils/utils.d.ts.map +1 -0
- package/lib/utils/worker.d.ts +11 -0
- package/lib/utils/worker.d.ts.map +1 -0
- package/package.json +88 -0
- package/public-api.d.ts +87 -0
- package/public-api.d.ts.map +1 -0
- package/src/assets/i18n-common/de.json +112 -0
- package/src/assets/i18n-common/en.json +112 -0
- package/src/assets/i18n-common/es.json +112 -0
- package/src/assets/i18n-common/fr.json +112 -0
- package/src/assets/i18n-common/pt_BR.json +112 -0
- package/src/assets/i18n-common/ru.json +112 -0
- package/src/assets/i18n-common/zh_CN.json +112 -0
- package/src/assets/img/identicon_placeholder.png +0 -0
- package/src/assets/native/isolated_modules/isolated-modules.js-engine-android.js +34 -0
- package/src/assets/native/isolated_modules/isolated-modules.script.js +304 -0
- package/src/assets/symbols/abt.svg +1 -0
- package/src/assets/symbols/adx.svg +1 -0
- package/src/assets/symbols/ae.svg +17 -0
- package/src/assets/symbols/agi.svg +1 -0
- package/src/assets/symbols/aion.svg +1 -0
- package/src/assets/symbols/amb.svg +1 -0
- package/src/assets/symbols/ampl.svg +7 -0
- package/src/assets/symbols/ant.svg +1 -0
- package/src/assets/symbols/aoa.svg +7 -0
- package/src/assets/symbols/appc.svg +1 -0
- package/src/assets/symbols/aqua.svg +5 -0
- package/src/assets/symbols/arn.svg +1 -0
- package/src/assets/symbols/ary.svg +1 -0
- package/src/assets/symbols/ast.svg +1 -0
- package/src/assets/symbols/astr.png +0 -0
- package/src/assets/symbols/atm.svg +1 -0
- package/src/assets/symbols/atom.svg +1 -0
- package/src/assets/symbols/auto.svg +1 -0
- package/src/assets/symbols/bal.svg +7 -0
- package/src/assets/symbols/band.svg +7 -0
- package/src/assets/symbols/bat.svg +1 -0
- package/src/assets/symbols/bcbc.svg +1 -0
- package/src/assets/symbols/bcpt.svg +1 -0
- package/src/assets/symbols/bix.svg +1 -0
- package/src/assets/symbols/blz.svg +1 -0
- package/src/assets/symbols/bnb.svg +1 -0
- package/src/assets/symbols/bnt.svg +1 -0
- package/src/assets/symbols/bnty.svg +1 -0
- package/src/assets/symbols/bpt.svg +1 -0
- package/src/assets/symbols/brc.svg +7 -0
- package/src/assets/symbols/brd.svg +1 -0
- package/src/assets/symbols/btc.svg +1 -0
- package/src/assets/symbols/btctz.png +0 -0
- package/src/assets/symbols/btm.svg +1 -0
- package/src/assets/symbols/busd.svg +7 -0
- package/src/assets/symbols/bytom.svg +7 -0
- package/src/assets/symbols/cacu.svg +1 -0
- package/src/assets/symbols/cdt.svg +1 -0
- package/src/assets/symbols/cel.svg +7 -0
- package/src/assets/symbols/cennz.svg +7 -0
- package/src/assets/symbols/cfx.svg +1 -0
- package/src/assets/symbols/chsb.svg +7 -0
- package/src/assets/symbols/chz.svg +7 -0
- package/src/assets/symbols/ckbtc.png +0 -0
- package/src/assets/symbols/cmt.svg +1 -0
- package/src/assets/symbols/cnd.svg +1 -0
- package/src/assets/symbols/cob.svg +1 -0
- package/src/assets/symbols/comp.svg +7 -0
- package/src/assets/symbols/coreum.png +0 -0
- package/src/assets/symbols/cred.svg +1 -0
- package/src/assets/symbols/cro.svg +7 -0
- package/src/assets/symbols/crpt.svg +1 -0
- package/src/assets/symbols/crv.svg +7 -0
- package/src/assets/symbols/cs.svg +1 -0
- package/src/assets/symbols/ctez.svg +1 -0
- package/src/assets/symbols/ctr.svg +1 -0
- package/src/assets/symbols/ctxc.svg +1 -0
- package/src/assets/symbols/cusdc.svg +7 -0
- package/src/assets/symbols/cvc.svg +1 -0
- package/src/assets/symbols/cvt.svg +7 -0
- package/src/assets/symbols/czrx.svg +7 -0
- package/src/assets/symbols/dai.svg +7 -0
- package/src/assets/symbols/dat.svg +1 -0
- package/src/assets/symbols/data.svg +1 -0
- package/src/assets/symbols/dcn.svg +1 -0
- package/src/assets/symbols/deez.svg +1 -0
- package/src/assets/symbols/dent.svg +1 -0
- package/src/assets/symbols/dew.svg +1 -0
- package/src/assets/symbols/dgd.svg +1 -0
- package/src/assets/symbols/dia.svg +7 -0
- package/src/assets/symbols/divx.svg +7 -0
- package/src/assets/symbols/dlt.svg +1 -0
- package/src/assets/symbols/dnt.svg +1 -0
- package/src/assets/symbols/dock.svg +1 -0
- package/src/assets/symbols/doga.png +0 -0
- package/src/assets/symbols/dot.svg +14 -0
- package/src/assets/symbols/drgn.svg +1 -0
- package/src/assets/symbols/drop.svg +1 -0
- package/src/assets/symbols/dth.svg +1 -0
- package/src/assets/symbols/dtr.svg +1 -0
- package/src/assets/symbols/dx.svg +7 -0
- package/src/assets/symbols/edg.svg +1 -0
- package/src/assets/symbols/edo.svg +1 -0
- package/src/assets/symbols/elf.svg +1 -0
- package/src/assets/symbols/elix.svg +1 -0
- package/src/assets/symbols/eng.svg +1 -0
- package/src/assets/symbols/enj.svg +1 -0
- package/src/assets/symbols/entrp.svg +1 -0
- package/src/assets/symbols/eos.svg +1 -0
- package/src/assets/symbols/eth.svg +1 -0
- package/src/assets/symbols/ethtz.png +0 -0
- package/src/assets/symbols/eurc.svg +8 -0
- package/src/assets/symbols/evx.svg +1 -0
- package/src/assets/symbols/fet.svg +7 -0
- package/src/assets/symbols/frax.svg +26 -0
- package/src/assets/symbols/fsn.svg +1 -0
- package/src/assets/symbols/ftc.svg +1 -0
- package/src/assets/symbols/ftm.svg +7 -0
- package/src/assets/symbols/fuel.svg +1 -0
- package/src/assets/symbols/fun.svg +1 -0
- package/src/assets/symbols/gbx.svg +1 -0
- package/src/assets/symbols/generic-coin.svg +1 -0
- package/src/assets/symbols/glmr.svg +1 -0
- package/src/assets/symbols/gno.svg +1 -0
- package/src/assets/symbols/gnt.svg +1 -0
- package/src/assets/symbols/grs.svg +1 -0
- package/src/assets/symbols/gsc.svg +1 -0
- package/src/assets/symbols/gto.svg +1 -0
- package/src/assets/symbols/gup.svg +1 -0
- package/src/assets/symbols/gusd.svg +1 -0
- package/src/assets/symbols/gvt.svg +1 -0
- package/src/assets/symbols/gzr.svg +1 -0
- package/src/assets/symbols/hedg.svg +7 -0
- package/src/assets/symbols/hodl.svg +1 -0
- package/src/assets/symbols/hot.svg +7 -0
- package/src/assets/symbols/hpb.svg +1 -0
- package/src/assets/symbols/ht.svg +1 -0
- package/src/assets/symbols/husd.svg +7 -0
- package/src/assets/symbols/icn.svg +1 -0
- package/src/assets/symbols/icp.svg +16 -0
- package/src/assets/symbols/icx.svg +1 -0
- package/src/assets/symbols/inb.svg +7 -0
- package/src/assets/symbols/ino.svg +7 -0
- package/src/assets/symbols/ins.svg +1 -0
- package/src/assets/symbols/iost.svg +1 -0
- package/src/assets/symbols/iotx.svg +1 -0
- package/src/assets/symbols/itc.svg +1 -0
- package/src/assets/symbols/jnt.svg +1 -0
- package/src/assets/symbols/kcs.svg +7 -0
- package/src/assets/symbols/kin.svg +1 -0
- package/src/assets/symbols/knc.svg +1 -0
- package/src/assets/symbols/ksm.svg +1 -0
- package/src/assets/symbols/kusd.svg +1 -0
- package/src/assets/symbols/ldo.svg +97 -0
- package/src/assets/symbols/lend.svg +1 -0
- package/src/assets/symbols/leo.svg +7 -0
- package/src/assets/symbols/link.svg +7 -0
- package/src/assets/symbols/loom.svg +1 -0
- package/src/assets/symbols/lpt.svg +1 -0
- package/src/assets/symbols/lrc.svg +1 -0
- package/src/assets/symbols/lun.svg +1 -0
- package/src/assets/symbols/mana.svg +1 -0
- package/src/assets/symbols/matic.svg +7 -0
- package/src/assets/symbols/mcap.svg +1 -0
- package/src/assets/symbols/mco.svg +1 -0
- package/src/assets/symbols/mda.svg +1 -0
- package/src/assets/symbols/mds.svg +1 -0
- package/src/assets/symbols/mkr.svg +1 -0
- package/src/assets/symbols/mln.svg +7 -0
- package/src/assets/symbols/mnw.svg +1 -0
- package/src/assets/symbols/mod.svg +1 -0
- package/src/assets/symbols/movr.svg +10 -0
- package/src/assets/symbols/mth.svg +1 -0
- package/src/assets/symbols/mtl.svg +1 -0
- package/src/assets/symbols/mxc.svg +7 -0
- package/src/assets/symbols/nas.svg +1 -0
- package/src/assets/symbols/ncash.svg +1 -0
- package/src/assets/symbols/neu.svg +1 -0
- package/src/assets/symbols/nexo.svg +1 -0
- package/src/assets/symbols/ngc.svg +1 -0
- package/src/assets/symbols/nio.svg +1 -0
- package/src/assets/symbols/nmr.svg +7 -0
- package/src/assets/symbols/noah.svg +7 -0
- package/src/assets/symbols/npxs.svg +1 -0
- package/src/assets/symbols/nuls.svg +1 -0
- package/src/assets/symbols/nxm.svg +7 -0
- package/src/assets/symbols/oax.svg +1 -0
- package/src/assets/symbols/ocean.svg +7 -0
- package/src/assets/symbols/okb.svg +7 -0
- package/src/assets/symbols/omg.svg +1 -0
- package/src/assets/symbols/ong.svg +1 -0
- package/src/assets/symbols/op.svg +21 -0
- package/src/assets/symbols/ost.svg +1 -0
- package/src/assets/symbols/pax.svg +1 -0
- package/src/assets/symbols/paxg.svg +7 -0
- package/src/assets/symbols/pay.svg +1 -0
- package/src/assets/symbols/plenty.svg +1 -0
- package/src/assets/symbols/plr.svg +1 -0
- package/src/assets/symbols/pnk.svg +7 -0
- package/src/assets/symbols/poe.svg +1 -0
- package/src/assets/symbols/poly.svg +1 -0
- package/src/assets/symbols/powr.svg +1 -0
- package/src/assets/symbols/ppp.svg +1 -0
- package/src/assets/symbols/ppt.svg +1 -0
- package/src/assets/symbols/prl.svg +1 -0
- package/src/assets/symbols/qash.svg +1 -0
- package/src/assets/symbols/qnt.svg +7 -0
- package/src/assets/symbols/qrl.svg +1 -0
- package/src/assets/symbols/qsp.svg +1 -0
- package/src/assets/symbols/qtum.svg +1 -0
- package/src/assets/symbols/quipu.png +0 -0
- package/src/assets/symbols/r.svg +1 -0
- package/src/assets/symbols/rcn.svg +1 -0
- package/src/assets/symbols/rdn.svg +1 -0
- package/src/assets/symbols/ren.svg +7 -0
- package/src/assets/symbols/rep.svg +1 -0
- package/src/assets/symbols/repv2.svg +7 -0
- package/src/assets/symbols/req.svg +1 -0
- package/src/assets/symbols/rev.svg +7 -0
- package/src/assets/symbols/rhoc.svg +1 -0
- package/src/assets/symbols/rlc.svg +1 -0
- package/src/assets/symbols/rsr.svg +7 -0
- package/src/assets/symbols/sai.svg +7 -0
- package/src/assets/symbols/salt.svg +1 -0
- package/src/assets/symbols/san.svg +1 -0
- package/src/assets/symbols/sdn.svg +1 -0
- package/src/assets/symbols/shx.svg +32 -0
- package/src/assets/symbols/sirs.svg +1 -0
- package/src/assets/symbols/smart.svg +1 -0
- package/src/assets/symbols/sngls.svg +1 -0
- package/src/assets/symbols/snm.svg +1 -0
- package/src/assets/symbols/snt.svg +1 -0
- package/src/assets/symbols/snx.svg +7 -0
- package/src/assets/symbols/soc.svg +1 -0
- package/src/assets/symbols/sol.svg +1 -0
- package/src/assets/symbols/spank.svg +1 -0
- package/src/assets/symbols/sphtx.svg +1 -0
- package/src/assets/symbols/srm.svg +7 -0
- package/src/assets/symbols/srn.svg +1 -0
- package/src/assets/symbols/stake.svg +7 -0
- package/src/assets/symbols/stellar.png +0 -0
- package/src/assets/symbols/storj.svg +1 -0
- package/src/assets/symbols/storm.svg +1 -0
- package/src/assets/symbols/stq.svg +1 -0
- package/src/assets/symbols/stxtz.svg +18 -0
- package/src/assets/symbols/sub.svg +1 -0
- package/src/assets/symbols/sushi.svg +7 -0
- package/src/assets/symbols/sxp.svg +7 -0
- package/src/assets/symbols/sxtz.svg +6 -0
- package/src/assets/symbols/taas.svg +1 -0
- package/src/assets/symbols/tau.svg +1 -0
- package/src/assets/symbols/tbx.svg +1 -0
- package/src/assets/symbols/tel.svg +1 -0
- package/src/assets/symbols/ten.svg +1 -0
- package/src/assets/symbols/theta.svg +1 -0
- package/src/assets/symbols/tix.svg +1 -0
- package/src/assets/symbols/tkn.svg +1 -0
- package/src/assets/symbols/tnt.svg +1 -0
- package/src/assets/symbols/tomo.svg +1 -0
- package/src/assets/symbols/trac.svg +7 -0
- package/src/assets/symbols/trb.svg +7 -0
- package/src/assets/symbols/trx.svg +1 -0
- package/src/assets/symbols/tusd.svg +1 -0
- package/src/assets/symbols/tzbtc.svg +1 -0
- package/src/assets/symbols/ubt.svg +7 -0
- package/src/assets/symbols/ubtc.svg +1 -0
- package/src/assets/symbols/udefi.svg +1 -0
- package/src/assets/symbols/uma.svg +7 -0
- package/src/assets/symbols/usdc.svg +1 -0
- package/src/assets/symbols/usdt.png +0 -0
- package/src/assets/symbols/usdt.svg +1 -0
- package/src/assets/symbols/usdtz.svg +17 -0
- package/src/assets/symbols/ust.svg +1 -0
- package/src/assets/symbols/utk.svg +1 -0
- package/src/assets/symbols/uusd.svg +1 -0
- package/src/assets/symbols/uxtz.svg +1 -0
- package/src/assets/symbols/velo.svg +5 -0
- package/src/assets/symbols/ven.svg +7 -0
- package/src/assets/symbols/veri.svg +1 -0
- package/src/assets/symbols/verse.svg +1 -0
- package/src/assets/symbols/vest.svg +7 -0
- package/src/assets/symbols/vib.svg +1 -0
- package/src/assets/symbols/vibe.svg +1 -0
- package/src/assets/symbols/wabi.svg +1 -0
- package/src/assets/symbols/wax.svg +1 -0
- package/src/assets/symbols/wbtc.svg +7 -0
- package/src/assets/symbols/weth.svg +18 -0
- package/src/assets/symbols/wic.svg +7 -0
- package/src/assets/symbols/wings.svg +1 -0
- package/src/assets/symbols/wnxm.svg +7 -0
- package/src/assets/symbols/wpr.svg +1 -0
- package/src/assets/symbols/wrap.png +0 -0
- package/src/assets/symbols/wtc.svg +1 -0
- package/src/assets/symbols/wusdc.png +0 -0
- package/src/assets/symbols/xchf.svg +1 -0
- package/src/assets/symbols/xdce.svg +7 -0
- package/src/assets/symbols/xin.svg +7 -0
- package/src/assets/symbols/xpa.svg +1 -0
- package/src/assets/symbols/xpl.svg +1 -0
- package/src/assets/symbols/xtz.svg +5 -0
- package/src/assets/symbols/yfi.svg +7 -0
- package/src/assets/symbols/you.svg +1 -0
- package/src/assets/symbols/yoyow.svg +1 -0
- package/src/assets/symbols/ytez.svg +1 -0
- package/src/assets/symbols/zb.svg +7 -0
- package/src/assets/symbols/zil.svg +1 -0
- package/src/assets/symbols/zrx.svg +1 -0
- package/src/assets/workers/airgap-coin-lib.js +119 -0
- package/wallfree-dev-angular-core.d.ts.map +1 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const DEFAULT_CURRENCY_SYMBOL_URL = './assets/symbols/generic-coin.svg';
|
|
3
|
+
export const CURRENCY_SYMBOL_FACADE = new InjectionToken('CurrencySymbolFacade');
|
|
4
|
+
export const CURRENCY_SYMBOL_FACADE_FACTORY = new InjectionToken('CurrencySymbolFacadeFactory');
|
|
5
|
+
export function currencySymbolFacade(injector) {
|
|
6
|
+
return injector.get(CURRENCY_SYMBOL_FACADE_FACTORY)(injector);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktc3ltYm9sLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9jdXJyZW5jeS1zeW1ib2wvY3VycmVuY3ktc3ltYm9sLmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFBO0FBS3hELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLG1DQUFtQyxDQUFBO0FBRTlFLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUF1QixzQkFBc0IsQ0FBQyxDQUFBO0FBQ3RHLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLElBQUksY0FBYyxDQUM5RCw2QkFBNkIsQ0FDOUIsQ0FBQTtBQVVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxRQUFrQjtJQUNyRCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUMvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdG9jb2xTeW1ib2xzIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9jb2lubGliLWNvcmUnXG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5cbmltcG9ydCB7IEJhc2VGYWNhZGUgfSBmcm9tICcuLi8uLi9iYXNlL2Jhc2UuZmFjYWRlJ1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9DVVJSRU5DWV9TWU1CT0xfVVJMID0gJy4vYXNzZXRzL3N5bWJvbHMvZ2VuZXJpYy1jb2luLnN2ZydcblxuZXhwb3J0IGNvbnN0IENVUlJFTkNZX1NZTUJPTF9GQUNBREUgPSBuZXcgSW5qZWN0aW9uVG9rZW48Q3VycmVuY3lTeW1ib2xGYWNhZGU+KCdDdXJyZW5jeVN5bWJvbEZhY2FkZScpXG5leHBvcnQgY29uc3QgQ1VSUkVOQ1lfU1lNQk9MX0ZBQ0FERV9GQUNUT1JZID0gbmV3IEluamVjdGlvblRva2VuPChpbmplY3RvcjogSW5qZWN0b3IpID0+IEN1cnJlbmN5U3ltYm9sRmFjYWRlPihcbiAgJ0N1cnJlbmN5U3ltYm9sRmFjYWRlRmFjdG9yeSdcbilcbmV4cG9ydCB0eXBlIEN1cnJlbmN5U3ltYm9sRmFjYWRlPFQgZXh0ZW5kcyBCYXNlRmFjYWRlID0gQmFzZUZhY2FkZT4gPSBJQ3VycmVuY3lTeW1ib2xGYWNhZGUgJiBUXG5leHBvcnQgaW50ZXJmYWNlIElDdXJyZW5jeVN5bWJvbEZhY2FkZSB7XG4gIHJlYWRvbmx5IHN5bWJvbFNyYyQ6IE9ic2VydmFibGU8c3RyaW5nPlxuXG4gIGluaXRXaXRoU3ltYm9sKHN5bWJvbDogc3RyaW5nIHwgdW5kZWZpbmVkLCBwcm90b2NvbElkZW50aWZpZXI6IFByb3RvY29sU3ltYm9scyB8IHVuZGVmaW5lZCk6IHZvaWRcbiAgb25TeW1ib2xDaGFuZ2VkKHN5bWJvbDogc3RyaW5nIHwgdW5kZWZpbmVkLCBwcm90b2NvbElkZW50aWZpZXI6IFByb3RvY29sU3ltYm9scyB8IHVuZGVmaW5lZCk6IHZvaWRcbiAgb25FcnJvcihzeW1ib2w6IHN0cmluZyB8IHVuZGVmaW5lZCwgcHJvdG9jb2xJZGVudGlmaWVyOiBQcm90b2NvbFN5bWJvbHMgfCB1bmRlZmluZWQsIHNyYz86IHN0cmluZyk6IHZvaWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGN1cnJlbmN5U3ltYm9sRmFjYWRlKGluamVjdG9yOiBJbmplY3Rvcik6IEN1cnJlbmN5U3ltYm9sRmFjYWRlIHtcbiAgcmV0dXJuIGluamVjdG9yLmdldChDVVJSRU5DWV9TWU1CT0xfRkFDQURFX0ZBQ1RPUlkpKGluamVjdG9yKVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktc3ltYm9sLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2N1cnJlbmN5LXN5bWJvbC9jdXJyZW5jeS1zeW1ib2wudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU3ltYm9sSW5wdXQge1xuICB2YWx1ZTogc3RyaW5nXG4gIGNhc2VTZW5zaXRpdmU6IGJvb2xlYW5cbn1cblxuaW50ZXJmYWNlIEJhc2VTeW1ib2xUeXBlPFQgZXh0ZW5kcyBzdHJpbmc+IHtcbiAga2luZDogVFxufVxuXG50eXBlIEJhc2VTeW1ib2xWYWx1ZTxUIGV4dGVuZHMgc3RyaW5nPiA9IEJhc2VTeW1ib2xUeXBlPFQ+XG5cbmV4cG9ydCB0eXBlIERlZmF1bHRTeW1ib2xUeXBlID0gQmFzZVN5bWJvbFR5cGU8J2RlZmF1bHQnPlxuZXhwb3J0IHR5cGUgRGVmYXVsdFN5bWJvbFZhbHVlID0gQmFzZVN5bWJvbFZhbHVlPCdkZWZhdWx0Jz4gJiBEZWZhdWx0U3ltYm9sVHlwZVxuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0U3ltYm9sVHlwZSBleHRlbmRzIEJhc2VTeW1ib2xUeXBlPCdhc3NldCc+IHtcbiAgc3ltYm9sSW5wdXQ6IFN5bWJvbElucHV0XG4gIGV4dGVuc2lvbjogJ3N2ZycgfCAncG5nJ1xufVxuZXhwb3J0IHR5cGUgQXNzZXRTeW1ib2xWYWx1ZSA9IEJhc2VTeW1ib2xWYWx1ZTwnYXNzZXQnPiAmIEFzc2V0U3ltYm9sVHlwZVxuXG5leHBvcnQgaW50ZXJmYWNlIExhenlTeW1ib2xUeXBlIGV4dGVuZHMgQmFzZVN5bWJvbFR5cGU8J2xhenknPiB7XG4gIHN5bWJvbElucHV0OiBTeW1ib2xJbnB1dFxufVxuZXhwb3J0IGludGVyZmFjZSBMYXp5U3ltYm9sVmFsdWUgZXh0ZW5kcyBCYXNlU3ltYm9sVmFsdWU8J2xhenknPiwgTGF6eVN5bWJvbFR5cGUge1xuICB1cmw/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJc29sYXRlZFN5bWJvbFR5cGUgZXh0ZW5kcyBCYXNlU3ltYm9sVHlwZTwnaXNvbGF0ZWQnPiB7XG4gIHN5bWJvbElucHV0OiBTeW1ib2xJbnB1dFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElzb2xhdGVkU3ltYm9sVmFsdWUgZXh0ZW5kcyBCYXNlU3ltYm9sVmFsdWU8J2lzb2xhdGVkJz4sIElzb2xhdGVkU3ltYm9sVHlwZSB7XG4gIHVybD86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBTeW1ib2xUeXBlID0gRGVmYXVsdFN5bWJvbFR5cGUgfCBBc3NldFN5bWJvbFR5cGUgfCBJc29sYXRlZFN5bWJvbFR5cGUgfCBMYXp5U3ltYm9sVHlwZVxuZXhwb3J0IHR5cGUgU3ltYm9sVmFsdWUgPSBEZWZhdWx0U3ltYm9sVmFsdWUgfCBBc3NldFN5bWJvbFZhbHVlIHwgSXNvbGF0ZWRTeW1ib2xWYWx1ZSB8IExhenlTeW1ib2xWYWx1ZVxuXG5leHBvcnQgaW50ZXJmYWNlIFN5bWJvbFNyYyB7XG4gIHZhbHVlOiBTeW1ib2xWYWx1ZVxuICBmYWxsYmFja1R5cGU/OiBTeW1ib2xUeXBlXG59XG4iXX0=
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../services/clipboard/clipboard.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@ionic/angular";
|
|
6
|
+
import * as i4 from "../titled-text/titled-text.component";
|
|
7
|
+
import * as i5 from "../titled-address/titled-address.component";
|
|
8
|
+
import * as i6 from "../network-badge/network-badge.component";
|
|
9
|
+
import * as i7 from "@ngx-translate/core";
|
|
10
|
+
import * as i8 from "../../pipes/amount-converter/amount-converter.pipe";
|
|
11
|
+
import * as i9 from "../../pipes/fee-converter/fee-converter.pipe";
|
|
12
|
+
export class FromToComponent {
|
|
13
|
+
get type() {
|
|
14
|
+
return this.transaction?.transactionDetails?.parameters?.entrypoint ?? this.transaction?.extra?.type;
|
|
15
|
+
}
|
|
16
|
+
get destination() {
|
|
17
|
+
const result = this.transaction?.transactionDetails?.destination ?? this.transaction?.extra?.destination;
|
|
18
|
+
if (result && this.transaction?.to.includes(result)) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
constructor(clipboardService) {
|
|
24
|
+
this.clipboardService = clipboardService;
|
|
25
|
+
this.displayRawData = false;
|
|
26
|
+
this.displayDetails = false;
|
|
27
|
+
this.hideNetwork = false;
|
|
28
|
+
this.displayFromTo = true;
|
|
29
|
+
this.fromTransactions = [];
|
|
30
|
+
this.toTransactions = [];
|
|
31
|
+
this.labeled = [];
|
|
32
|
+
}
|
|
33
|
+
ngOnInit() {
|
|
34
|
+
if (this.transaction) {
|
|
35
|
+
this.displayFromTo = this.transaction.displayFromTo ?? true;
|
|
36
|
+
}
|
|
37
|
+
if (!this.displayFromTo) {
|
|
38
|
+
this.displayDetails = true;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
ngOnChanges() {
|
|
42
|
+
if (this.transaction) {
|
|
43
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
44
|
+
this.labeled = this.transaction.extra?.labeled ? Object.entries(this.transaction.extra?.labeled) : [];
|
|
45
|
+
this.fromTransactions = [];
|
|
46
|
+
for (let i = 0; i < this.transaction.from.length; i++) {
|
|
47
|
+
const from = this.transaction.from[i];
|
|
48
|
+
if (this.transaction.extra?.names && this.transaction.extra?.names?.[from]) {
|
|
49
|
+
this.fromTransactions.push({ name: this.transaction.extra.names[from], address: from });
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
this.fromTransactions.push({ address: from });
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
this.toTransactions = [];
|
|
56
|
+
for (let i = 0; i < this.transaction.to.length; i++) {
|
|
57
|
+
const to = this.transaction.to[i];
|
|
58
|
+
if (this.transaction.extra?.names && this.transaction.extra?.names?.[to]) {
|
|
59
|
+
this.toTransactions.push({ name: this.transaction.extra.names[to], address: to });
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.toTransactions.push({ address: to });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
toggleDisplayRawData() {
|
|
68
|
+
this.displayRawData = !this.displayRawData;
|
|
69
|
+
}
|
|
70
|
+
toggleDisplayDetails() {
|
|
71
|
+
this.displayDetails = !this.displayDetails;
|
|
72
|
+
}
|
|
73
|
+
copyToClipboard() {
|
|
74
|
+
if (this.transaction) {
|
|
75
|
+
this.clipboardService.copyAndShowToast(JSON.stringify(this.transaction.transactionDetails));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
copyRawDataToClipboard() {
|
|
79
|
+
if (this.interactionData) {
|
|
80
|
+
this.clipboardService.copyAndShowToast(JSON.stringify(this.interactionData));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FromToComponent, deps: [{ token: i1.ClipboardService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
84
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FromToComponent, selector: "airgap-from-to", inputs: { transaction: "transaction", displayRawData: "displayRawData", displayDetails: "displayDetails", interactionData: "interactionData", hideNetwork: "hideNetwork" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"transaction\">\n <ng-container *ngIf=\"displayFromTo\">\n <airgap-titled-address\n *ngFor=\"let transaction of fromTransactions\"\n [address]=\"transaction.address\"\n [name]=\"transaction.name\"\n [title]=\"'from-to.from_label' | translate\"\n ></airgap-titled-address>\n </ng-container>\n\n <ion-row *ngIf=\"displayFromTo\" class=\"ion-align-items-center ion-padding-top ion-padding-bottom\">\n <ion-col size=\"3\" class=\"ion-no-padding\">\n <ion-row class=\"ion-justify-content-center\">\n <div class=\"from-to-line\"></div>\n </ion-row>\n </ion-col>\n <ion-col size=\"9\">\n <ng-container *ngIf=\"type\">\n <ion-label class=\"ion-text-uppercase\">{{ 'from-to.type_label' | translate }}</ion-label>\n <div class=\"ion-margin-bottom\">\n <span class=\"typography--mono\">\n <ion-chip>\n <ion-label>{{ type }}</ion-label>\n </ion-chip>\n </span>\n </div>\n </ng-container>\n\n <airgap-titled-text\n *ngIf=\"destination\"\n class=\"ion-padding-bottom\"\n [title]=\"'from-to.destination_label' | translate\"\n [text]=\"destination\"\n ></airgap-titled-text>\n\n <airgap-titled-text\n *ngFor=\"let labeledValue of labeled\"\n class=\"ion-padding-bottom\"\n [title]=\"labeledValue[0]\"\n [text]=\"labeledValue[1]\"\n ></airgap-titled-text>\n\n <airgap-titled-text\n *ngIf=\"transaction.amount\"\n class=\"ion-padding-bottom\"\n [title]=\"'from-to.total_amount_label' | translate\"\n [text]=\"transaction.amount | amountConverter : { protocol: transaction.protocolIdentifier, network: transaction.network } | async\"\n ></airgap-titled-text>\n\n <airgap-titled-text\n *ngIf=\"transaction.fee\"\n [title]=\"'from-to.fee_label' | translate\"\n [text]=\"transaction.fee | feeConverter : { protocol: transaction.protocolIdentifier, network: transaction.network } | async\"\n ></airgap-titled-text>\n\n <airgap-titled-text\n *ngIf=\"transaction.status\"\n class=\"ion-padding-top\"\n [title]=\"'from-to.status_label' | translate\"\n [text]=\"transaction.status\"\n [capitalize]=\"true\"\n ></airgap-titled-text>\n\n <airgap-titled-text\n *ngIf=\"transaction.timestamp\"\n class=\"ion-padding-top\"\n [title]=\"'from-to.time_label' | translate\"\n [text]=\"transaction.timestamp * 1000 | date : 'short'\"\n ></airgap-titled-text>\n\n <airgap-titled-text\n *ngIf=\"transaction.data\"\n class=\"ion-padding-top\"\n [title]=\"'from-to.data_label' | translate\"\n [text]=\"transaction.data\"\n ></airgap-titled-text>\n </ion-col>\n </ion-row>\n\n <ng-container *ngIf=\"displayFromTo\">\n <ng-container *ngFor=\"let toTransaction of toTransactions; let i = index\">\n <airgap-titled-address\n [address]=\"toTransaction.address\"\n [name]=\"toTransaction.name\"\n [title]=\"'from-to.to_label' | translate\"\n ></airgap-titled-address>\n\n <ion-row class=\"ion-align-items-center ion-padding-top ion-padding-bottom\" *ngIf=\"transaction.changeAddressInfo\">\n <ion-col size=\"3\" class=\"ion-no-padding\">\n <ion-row class=\"ion-justify-content-center\">\n <div [ngStyle]=\"{ visibility: i === toTransactions.length - 1 ? 'hidden' : 'visible' }\" class=\"from-to-line\"></div>\n </ion-row>\n </ion-col>\n <ion-col size=\"9\">\n <airgap-titled-text\n *ngIf=\"transaction.changeAddressInfo[toTransaction.address].isChangeAddress\"\n class=\"ion-padding-bottom\"\n [title]=\"'from-to.change-address' | translate\"\n [text]=\"\n transaction.changeAddressInfo[toTransaction.address].path != ''\n ? transaction.changeAddressInfo[toTransaction.address].path\n : ('from-to.unknown-change-address' | translate)\n \"\n ></airgap-titled-text>\n <airgap-titled-text\n class=\"ion-padding-bottom\"\n [title]=\"'from-to.amount_label' | translate\"\n [text]=\"\n transaction.changeAddressInfo[toTransaction.address].amount\n | amountConverter : { protocol: transaction.protocolIdentifier, network: transaction.network }\n | async\n \"\n ></airgap-titled-text>\n </ion-col>\n </ion-row>\n </ng-container>\n </ng-container>\n\n <ion-row class=\"ion-align-items-center ion-padding-top\">\n <ion-col size=\"9\" offset=\"3\">\n <airgap-network-badge *ngIf=\"!hideNetwork\" [network]=\"transaction.network\"></airgap-network-badge>\n </ion-col>\n </ion-row>\n\n <div class=\"rawdata--container\">\n <ion-row *ngIf=\"transaction.transactionDetails\">\n <ion-col class=\"ion-no-padding\">\n <ion-item class=\"ion-no-padding\" lines=\"none\">\n <ion-toggle [checked]=\"displayRawData\" (ionChange)=\"toggleDisplayRawData()\" justify=\"space-between\" labelPlacement=\"start\">\n {{ 'from-to.transaction-details_label' | translate }}\n </ion-toggle>\n </ion-item>\n <pre *ngIf=\"displayRawData\" class=\"ion-no-margin\">{{ transaction.transactionDetails | json }}</pre>\n <ion-button *ngIf=\"displayRawData\" (click)=\"copyToClipboard()\">Copy data to clipboard</ion-button>\n </ion-col>\n </ion-row>\n\n <ion-row *ngIf=\"interactionData\">\n <ion-col class=\"ion-no-padding\">\n <ion-item class=\"ion-no-padding\" lines=\"none\">\n <ion-toggle [checked]=\"displayDetails\" (ionChange)=\"toggleDisplayDetails()\" justify=\"space-between\" labelPlacement=\"start\">\n {{ 'from-to.details' | translate }}\n </ion-toggle>\n </ion-item>\n <pre *ngIf=\"displayDetails\" class=\"ion-no-margin\">{{ interactionData | json }}</pre>\n <ion-button *ngIf=\"displayDetails\" (click)=\"copyRawDataToClipboard()\">Copy data to clipboard</ion-button>\n </ion-col>\n </ion-row>\n </div>\n</ng-container>\n", styles: [".from-to-line{border-left:1px solid var(--ion-color-dark);height:96px}.rawdata--container pre{background-color:var(--ion-color-light);padding:8px}.rawdata--container{margin-bottom:48px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonChip, selector: "ion-chip", inputs: ["color", "disabled", "mode", "outline"] }, { kind: "component", type: i3.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonRow, selector: "ion-row" }, { kind: "component", type: i3.IonToggle, selector: "ion-toggle", inputs: ["alignment", "checked", "color", "disabled", "enableOnOffLabels", "justify", "labelPlacement", "legacy", "mode", "name", "value"] }, { kind: "directive", type: i3.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "component", type: i4.TitledTextComponent, selector: "airgap-titled-text", inputs: ["title", "subTitle", "text", "selectable", "capitalize"] }, { kind: "component", type: i5.TitledAddressComponent, selector: "airgap-titled-address", inputs: ["title", "name", "address", "symbol", "protocolIdentifier", "hasSymbol"] }, { kind: "component", type: i6.NetworkBadgeComponent, selector: "airgap-network-badge", inputs: ["network"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.JsonPipe, name: "json" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: i8.AmountConverterPipe, name: "amountConverter" }, { kind: "pipe", type: i9.FeeConverterPipe, name: "feeConverter" }] }); }
|
|
85
|
+
}
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FromToComponent, decorators: [{
|
|
87
|
+
type: Component,
|
|
88
|
+
args: [{ selector: 'airgap-from-to', template: "<ng-container *ngIf=\"transaction\">\n <ng-container *ngIf=\"displayFromTo\">\n <airgap-titled-address\n *ngFor=\"let transaction of fromTransactions\"\n [address]=\"transaction.address\"\n [name]=\"transaction.name\"\n [title]=\"'from-to.from_label' | translate\"\n ></airgap-titled-address>\n </ng-container>\n\n <ion-row *ngIf=\"displayFromTo\" class=\"ion-align-items-center ion-padding-top ion-padding-bottom\">\n <ion-col size=\"3\" class=\"ion-no-padding\">\n <ion-row class=\"ion-justify-content-center\">\n <div class=\"from-to-line\"></div>\n </ion-row>\n </ion-col>\n <ion-col size=\"9\">\n <ng-container *ngIf=\"type\">\n <ion-label class=\"ion-text-uppercase\">{{ 'from-to.type_label' | translate }}</ion-label>\n <div class=\"ion-margin-bottom\">\n <span class=\"typography--mono\">\n <ion-chip>\n <ion-label>{{ type }}</ion-label>\n </ion-chip>\n </span>\n </div>\n </ng-container>\n\n <airgap-titled-text\n *ngIf=\"destination\"\n class=\"ion-padding-bottom\"\n [title]=\"'from-to.destination_label' | translate\"\n [text]=\"destination\"\n ></airgap-titled-text>\n\n <airgap-titled-text\n *ngFor=\"let labeledValue of labeled\"\n class=\"ion-padding-bottom\"\n [title]=\"labeledValue[0]\"\n [text]=\"labeledValue[1]\"\n ></airgap-titled-text>\n\n <airgap-titled-text\n *ngIf=\"transaction.amount\"\n class=\"ion-padding-bottom\"\n [title]=\"'from-to.total_amount_label' | translate\"\n [text]=\"transaction.amount | amountConverter : { protocol: transaction.protocolIdentifier, network: transaction.network } | async\"\n ></airgap-titled-text>\n\n <airgap-titled-text\n *ngIf=\"transaction.fee\"\n [title]=\"'from-to.fee_label' | translate\"\n [text]=\"transaction.fee | feeConverter : { protocol: transaction.protocolIdentifier, network: transaction.network } | async\"\n ></airgap-titled-text>\n\n <airgap-titled-text\n *ngIf=\"transaction.status\"\n class=\"ion-padding-top\"\n [title]=\"'from-to.status_label' | translate\"\n [text]=\"transaction.status\"\n [capitalize]=\"true\"\n ></airgap-titled-text>\n\n <airgap-titled-text\n *ngIf=\"transaction.timestamp\"\n class=\"ion-padding-top\"\n [title]=\"'from-to.time_label' | translate\"\n [text]=\"transaction.timestamp * 1000 | date : 'short'\"\n ></airgap-titled-text>\n\n <airgap-titled-text\n *ngIf=\"transaction.data\"\n class=\"ion-padding-top\"\n [title]=\"'from-to.data_label' | translate\"\n [text]=\"transaction.data\"\n ></airgap-titled-text>\n </ion-col>\n </ion-row>\n\n <ng-container *ngIf=\"displayFromTo\">\n <ng-container *ngFor=\"let toTransaction of toTransactions; let i = index\">\n <airgap-titled-address\n [address]=\"toTransaction.address\"\n [name]=\"toTransaction.name\"\n [title]=\"'from-to.to_label' | translate\"\n ></airgap-titled-address>\n\n <ion-row class=\"ion-align-items-center ion-padding-top ion-padding-bottom\" *ngIf=\"transaction.changeAddressInfo\">\n <ion-col size=\"3\" class=\"ion-no-padding\">\n <ion-row class=\"ion-justify-content-center\">\n <div [ngStyle]=\"{ visibility: i === toTransactions.length - 1 ? 'hidden' : 'visible' }\" class=\"from-to-line\"></div>\n </ion-row>\n </ion-col>\n <ion-col size=\"9\">\n <airgap-titled-text\n *ngIf=\"transaction.changeAddressInfo[toTransaction.address].isChangeAddress\"\n class=\"ion-padding-bottom\"\n [title]=\"'from-to.change-address' | translate\"\n [text]=\"\n transaction.changeAddressInfo[toTransaction.address].path != ''\n ? transaction.changeAddressInfo[toTransaction.address].path\n : ('from-to.unknown-change-address' | translate)\n \"\n ></airgap-titled-text>\n <airgap-titled-text\n class=\"ion-padding-bottom\"\n [title]=\"'from-to.amount_label' | translate\"\n [text]=\"\n transaction.changeAddressInfo[toTransaction.address].amount\n | amountConverter : { protocol: transaction.protocolIdentifier, network: transaction.network }\n | async\n \"\n ></airgap-titled-text>\n </ion-col>\n </ion-row>\n </ng-container>\n </ng-container>\n\n <ion-row class=\"ion-align-items-center ion-padding-top\">\n <ion-col size=\"9\" offset=\"3\">\n <airgap-network-badge *ngIf=\"!hideNetwork\" [network]=\"transaction.network\"></airgap-network-badge>\n </ion-col>\n </ion-row>\n\n <div class=\"rawdata--container\">\n <ion-row *ngIf=\"transaction.transactionDetails\">\n <ion-col class=\"ion-no-padding\">\n <ion-item class=\"ion-no-padding\" lines=\"none\">\n <ion-toggle [checked]=\"displayRawData\" (ionChange)=\"toggleDisplayRawData()\" justify=\"space-between\" labelPlacement=\"start\">\n {{ 'from-to.transaction-details_label' | translate }}\n </ion-toggle>\n </ion-item>\n <pre *ngIf=\"displayRawData\" class=\"ion-no-margin\">{{ transaction.transactionDetails | json }}</pre>\n <ion-button *ngIf=\"displayRawData\" (click)=\"copyToClipboard()\">Copy data to clipboard</ion-button>\n </ion-col>\n </ion-row>\n\n <ion-row *ngIf=\"interactionData\">\n <ion-col class=\"ion-no-padding\">\n <ion-item class=\"ion-no-padding\" lines=\"none\">\n <ion-toggle [checked]=\"displayDetails\" (ionChange)=\"toggleDisplayDetails()\" justify=\"space-between\" labelPlacement=\"start\">\n {{ 'from-to.details' | translate }}\n </ion-toggle>\n </ion-item>\n <pre *ngIf=\"displayDetails\" class=\"ion-no-margin\">{{ interactionData | json }}</pre>\n <ion-button *ngIf=\"displayDetails\" (click)=\"copyRawDataToClipboard()\">Copy data to clipboard</ion-button>\n </ion-col>\n </ion-row>\n </div>\n</ng-container>\n", styles: [".from-to-line{border-left:1px solid var(--ion-color-dark);height:96px}.rawdata--container pre{background-color:var(--ion-color-light);padding:8px}.rawdata--container{margin-bottom:48px}\n"] }]
|
|
89
|
+
}], ctorParameters: () => [{ type: i1.ClipboardService }], propDecorators: { transaction: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], displayRawData: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], displayDetails: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], interactionData: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], hideNetwork: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}] } });
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbS10by5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZnJvbS10by9mcm9tLXRvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mcm9tLXRvL2Zyb20tdG8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7Ozs7Ozs7Ozs7O0FBU2hELE1BQU0sT0FBTyxlQUFlO0lBcUIxQixJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLFVBQVUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUE7SUFDdEcsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixNQUFNLE1BQU0sR0FBdUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFBO1FBQzVILElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3BELE9BQU8sU0FBUyxDQUFBO1FBQ2xCLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7SUFJRCxZQUE2QixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQS9CeEQsbUJBQWMsR0FBWSxLQUFLLENBQUE7UUFHL0IsbUJBQWMsR0FBWSxLQUFLLENBQUE7UUFNL0IsZ0JBQVcsR0FBWSxLQUFLLENBQUE7UUFFNUIsa0JBQWEsR0FBWSxJQUFJLENBQUE7UUFFN0IscUJBQWdCLEdBQXlDLEVBQUUsQ0FBQTtRQUMzRCxtQkFBYyxH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QUMsY0FBYyxDQUFBO0lBQzVDLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFBO1FBQzdGLENBQUM7SUFDSCxDQUFDO0lBRU0sc0JBQXNCO1FBQzNCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFBO1FBQzlFLENBQUM7SUFDSCxDQUFDOytHQTVGVSxlQUFlO21HQUFmLGVBQWUsdVBDVDVCLDZuTUFzSkE7OzRGRDdJYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLGdCQUFnQjtxRkFNbkIsV0FBVztzQkFEakIsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQUlDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBJQWlyR2FwVHJhbnNhY3Rpb24gfSBmcm9tICdAd2FsbGZyZWUtZGV2L2NvaW5saWItY29yZSdcbmltcG9ydCB7IENsaXBib2FyZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jbGlwYm9hcmQvY2xpcGJvYXJkLnNlcnZpY2UnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FpcmdhcC1mcm9tLXRvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zyb20tdG8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mcm9tLXRvLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRnJvbVRvQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgcHVibGljIHRyYW5zYWN0aW9uOiBJQWlyR2FwVHJhbnNhY3Rpb24gfCB1bmRlZmluZWRcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzcGxheVJhd0RhdGE6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNwbGF5RGV0YWlsczogYm9vbGVhbiA9IGZhbHNlXG5cbiAgQElucHV0KClcbiAgcHVibGljIGludGVyYWN0aW9uRGF0YTogYW55IHwgdW5kZWZpbmVkXG5cbiAgQElucHV0KClcbiAgcHVibGljIGhpZGVOZXR3b3JrOiBib29sZWFuID0gZmFsc2VcblxuICBwdWJsaWMgZGlzcGxheUZyb21UbzogYm9vbGVhbiA9IHRydWVcblxuICBwdWJsaWMgZnJvbVRyYW5zYWN0aW9uczogeyBuYW1lPzogc3RyaW5nOyBhZGRyZXNzOiBzdHJpbmcgfVtdID0gW11cbiAgcHVibGljIHRvVHJhbnNhY3Rpb25zOiB7IG5hbWU/OiBzdHJpbmc7IGFkZHJlc3M6IHN0cmluZyB9W10gPSBbXVxuXG4gIHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uPy50cmFuc2FjdGlvbkRldGFpbHM/LnBhcmFtZXRlcnM/LmVudHJ5cG9pbnQgPz8gdGhpcy50cmFuc2FjdGlvbj8uZXh0cmE/LnR5cGVcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVzdGluYXRpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCByZXN1bHQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMudHJhbnNhY3Rpb24/LnRyYW5zYWN0aW9uRGV0YWlscz8uZGVzdGluYXRpb24gPz8gdGhpcy50cmFuc2FjdGlvbj8uZXh0cmE/LmRlc3RpbmF0aW9uXG4gICAgaWYgKHJlc3VsdCAmJiB0aGlzLnRyYW5zYWN0aW9uPy50by5pbmNsdWRlcyhyZXN1bHQpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgcHVibGljIGxhYmVsZWQ6IFtzdHJpbmcsIHN0cmluZ11bXSA9IFtdXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbikge1xuICAgICAgdGhpcy5kaXNwbGF5RnJvbVRvID0gdGhpcy50cmFuc2FjdGlvbi5kaXNwbGF5RnJvbVRvID8/IHRydWVcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGlzcGxheUZyb21Ubykge1xuICAgICAgdGhpcy5kaXNwbGF5RGV0YWlscyA9IHRydWVcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24pIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgICAgdGhpcy5sYWJlbGVkID0gdGhpcy50cmFuc2FjdGlvbi5leHRyYT8ubGFiZWxlZCA/IE9iamVjdC5lbnRyaWVzKHRoaXMudHJhbnNhY3Rpb24uZXh0cmE/LmxhYmVsZWQpIDogW11cblxuICAgICAgdGhpcy5mcm9tVHJhbnNhY3Rpb25zID0gW11cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmFuc2FjdGlvbi5mcm9tLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGZyb20gPSB0aGlzLnRyYW5zYWN0aW9uLmZyb21baV1cbiAgICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uZXh0cmE/Lm5hbWVzICYmIHRoaXMudHJhbnNhY3Rpb24uZXh0cmE/Lm5hbWVzPy5bZnJvbV0pIHtcbiAgICAgICAgICB0aGlzLmZyb21UcmFuc2FjdGlvbnMucHVzaCh7IG5hbWU6IHRoaXMudHJhbnNhY3Rpb24uZXh0cmEubmFtZXNbZnJvbV0sIGFkZHJlc3M6IGZyb20gfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmZyb21UcmFuc2FjdGlvbnMucHVzaCh7IGFkZHJlc3M6IGZyb20gfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy50b1RyYW5zYWN0aW9ucyA9IFtdXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJhbnNhY3Rpb24udG8ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgdG8gPSB0aGlzLnRyYW5zYWN0aW9uLnRvW2ldXG4gICAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLmV4dHJhPy5uYW1lcyAmJiB0aGlzLnRyYW5zYWN0aW9uLmV4dHJhPy5uYW1lcz8uW3RvXSkge1xuICAgICAgICAgIHRoaXMudG9UcmFuc2FjdGlvbnMucHVzaCh7IG5hbWU6IHRoaXMudHJhbnNhY3Rpb24uZXh0cmEubmFtZXNbdG9dLCBhZGRyZXNzOiB0byB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudG9UcmFuc2FjdGlvbnMucHVzaCh7IGFkZHJlc3M6IHRvIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlRGlzcGxheVJhd0RhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5UmF3RGF0YSA9ICF0aGlzLmRpc3BsYXlSYXdEYXRhXG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlRGlzcGxheURldGFpbHMoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5RGV0YWlscyA9ICF0aGlzLmRpc3BsYXlEZXRhaWxzXG4gIH1cblxuICBwdWJsaWMgY29weVRvQ2xpcGJvYXJkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uKSB7XG4gICAgICB0aGlzLmNsaXBib2FyZFNlcnZpY2UuY29weUFuZFNob3dUb2FzdChKU09OLnN0cmluZ2lmeSh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uRGV0YWlscykpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNvcHlSYXdEYXRhVG9DbGlwYm9hcmQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW50ZXJhY3Rpb25EYXRhKSB7XG4gICAgICB0aGlzLmNsaXBib2FyZFNlcnZpY2UuY29weUFuZFNob3dUb2FzdChKU09OLnN0cmluZ2lmeSh0aGlzLmludGVyYWN0aW9uRGF0YSkpXG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwidHJhbnNhY3Rpb25cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlGcm9tVG9cIj5cbiAgICA8YWlyZ2FwLXRpdGxlZC1hZGRyZXNzXG4gICAgICAqbmdGb3I9XCJsZXQgdHJhbnNhY3Rpb24gb2YgZnJvbVRyYW5zYWN0aW9uc1wiXG4gICAgICBbYWRkcmVzc109XCJ0cmFuc2FjdGlvbi5hZGRyZXNzXCJcbiAgICAgIFtuYW1lXT1cInRyYW5zYWN0aW9uLm5hbWVcIlxuICAgICAgW3RpdGxlXT1cIidmcm9tLXRvLmZyb21fbGFiZWwnIHwgdHJhbnNsYXRlXCJcbiAgICA+PC9haXJnYXAtdGl0bGVkLWFkZHJlc3M+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxpb24tcm93ICpuZ0lmPVwiZGlzcGxheUZyb21Ub1wiIGNsYXNzPVwiaW9uLWFsaWduLWl0ZW1zLWNlbnRlciBpb24tcGFkZGluZy10b3AgaW9uLXBhZGRpbmctYm90dG9tXCI+XG4gICAgPGlvbi1jb2wgc2l6ZT1cIjNcIiBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCI+XG4gICAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcm9tLXRvLWxpbmVcIj48L2Rpdj5cbiAgICAgIDwvaW9uLXJvdz5cbiAgICA8L2lvbi1jb2w+XG4gICAgPGlvbi1jb2wgc2l6ZT1cIjlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlXCI+XG4gICAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJpb24tdGV4dC11cHBlcmNhc2VcIj57eyAnZnJvbS10by50eXBlX2xhYmVsJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLWxhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLW1hcmdpbi1ib3R0b21cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInR5cG9ncmFwaHktLW1vbm9cIj5cbiAgICAgICAgICAgIDxpb24tY2hpcD5cbiAgICAgICAgICAgICAgPGlvbi1sYWJlbD57eyB0eXBlIH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgICA8L2lvbi1jaGlwPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGFpcmdhcC10aXRsZWQtdGV4dFxuICAgICAgICAqbmdJZj1cImRlc3RpbmF0aW9uXCJcbiAgICAgICAgY2xhc3M9XCJpb24tcGFkZGluZy1ib3R0b21cIlxuICAgICAgICBbdGl0bGVdPVwiJ2Zyb20tdG8uZGVzdGluYXRpb25fbGFiZWwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3RleHRdPVwiZGVzdGluYXRpb25cIlxuICAgICAgPjwvYWlyZ2FwLXRpdGxlZC10ZXh0PlxuXG4gICAgICA8YWlyZ2FwLXRpdGxlZC10ZXh0XG4gICAgICAgICpuZ0Zvcj1cImxldCBsYWJlbGVkVmFsdWUgb2YgbGFiZWxlZFwiXG4gICAgICAgIGNsYXNzPVwiaW9uLXBhZGRpbmctYm90dG9tXCJcbiAgICAgICAgW3RpdGxlXT1cImxhYmVsZWRWYWx1ZVswXVwiXG4gICAgICAgIFt0ZXh0XT1cImxhYmVsZWRWYWx1ZVsxXVwiXG4gICAgICA+PC9haXJnYXAtdGl0bGVkLXRleHQ+XG5cbiAgICAgIDxhaXJnYXAtdGl0bGVkLXRleHRcbiAgICAgICAgKm5nSWY9XCJ0cmFuc2FjdGlvbi5hbW91bnRcIlxuICAgICAgICBjbGFzcz1cImlvbi1wYWRkaW5nLWJvdHRvbVwiXG4gICAgICAgIFt0aXRsZV09XCInZnJvbS10by50b3RhbF9hbW91bnRfbGFiZWwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3RleHRdPVwidHJhbnNhY3Rpb24uYW1vdW50IHwgYW1vdW50Q29udmVydGVyIDogeyBwcm90b2NvbDogdHJhbnNhY3Rpb24ucHJvdG9jb2xJZGVudGlmaWVyLCBuZXR3b3JrOiB0cmFuc2FjdGlvbi5uZXR3b3JrIH0gfCBhc3luY1wiXG4gICAgICA+PC9haXJnYXAtdGl0bGVkLXRleHQ+XG5cbiAgICAgIDxhaXJnYXAtdGl0bGVkLXRleHRcbiAgICAgICAgKm5nSWY9XCJ0cmFuc2FjdGlvbi5mZWVcIlxuICAgICAgICBbdGl0bGVdPVwiJ2Zyb20tdG8uZmVlX2xhYmVsJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFt0ZXh0XT1cInRyYW5zYWN0aW9uLmZlZSB8IGZlZUNvbnZlcnRlciA6IHsgcHJvdG9jb2w6IHRyYW5zYWN0aW9uLnByb3RvY29sSWRlbnRpZmllciwgbmV0d29yazogdHJhbnNhY3Rpb24ubmV0d29yayB9IHwgYXN5bmNcIlxuICAgICAgPjwvYWlyZ2FwLXRpdGxlZC10ZXh0PlxuXG4gICAgICA8YWlyZ2FwLXRpdGxlZC10ZXh0XG4gICAgICAgICpuZ0lmPVwidHJhbnNhY3Rpb24uc3RhdHVzXCJcbiAgICAgICAgY2xhc3M9XCJpb24tcGFkZGluZy10b3BcIlxuICAgICAgICBbdGl0bGVdPVwiJ2Zyb20tdG8uc3RhdHVzX2xhYmVsJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFt0ZXh0XT1cInRyYW5zYWN0aW9uLnN0YXR1c1wiXG4gICAgICAgIFtjYXBpdGFsaXplXT1cInRydWVcIlxuICAgICAgPjwvYWlyZ2FwLXRpdGxlZC10ZXh0PlxuXG4gICAgICA8YWlyZ2FwLXRpdGxlZC10ZXh0XG4gICAgICAgICpuZ0lmPVwidHJhbnNhY3Rpb24udGltZXN0YW1wXCJcbiAgICAgICAgY2xhc3M9XCJpb24tcGFkZGluZy10b3BcIlxuICAgICAgICBbdGl0bGVdPVwiJ2Zyb20tdG8udGltZV9sYWJlbCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbdGV4dF09XCJ0cmFuc2FjdGlvbi50aW1lc3RhbXAgKiAxMDAwIHwgZGF0ZSA6ICdzaG9ydCdcIlxuICAgICAgPjwvYWlyZ2FwLXRpdGxlZC10ZXh0PlxuXG4gICAgICA8YWlyZ2FwLXRpdGxlZC10ZXh0XG4gICAgICAgICpuZ0lmPVwidHJhbnNhY3Rpb24uZGF0YVwiXG4gICAgICAgIGNsYXNzPVwiaW9uLXBhZGRpbmctdG9wXCJcbiAgICAgICAgW3RpdGxlXT1cIidmcm9tLXRvLmRhdGFfbGFiZWwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3RleHRdPVwidHJhbnNhY3Rpb24uZGF0YVwiXG4gICAgICA+PC9haXJnYXAtdGl0bGVkLXRleHQ+XG4gICAgPC9pb24tY29sPlxuICA8L2lvbi1yb3c+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlGcm9tVG9cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0b1RyYW5zYWN0aW9uIG9mIHRvVHJhbnNhY3Rpb25zOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICA8YWlyZ2FwLXRpdGxlZC1hZGRyZXNzXG4gICAgICAgIFthZGRyZXNzXT1cInRvVHJhbnNhY3Rpb24uYWRkcmVzc1wiXG4gICAgICAgIFtuYW1lXT1cInRvVHJhbnNhY3Rpb24ubmFtZVwiXG4gICAgICAgIFt0aXRsZV09XCInZnJvbS10by50b19sYWJlbCcgfCB0cmFuc2xhdGVcIlxuICAgICAgPjwvYWlyZ2FwLXRpdGxlZC1hZGRyZXNzPlxuXG4gICAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1hbGlnbi1pdGVtcy1jZW50ZXIgaW9uLXBhZGRpbmctdG9wIGlvbi1wYWRkaW5nLWJvdHRvbVwiICpuZ0lmPVwidHJhbnNhY3Rpb24uY2hhbmdlQWRkcmVzc0luZm9cIj5cbiAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjNcIiBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCI+XG4gICAgICAgICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7IHZpc2liaWxpdHk6IGkgPT09IHRvVHJhbnNhY3Rpb25zLmxlbmd0aCAtIDEgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJyB9XCIgY2xhc3M9XCJmcm9tLXRvLWxpbmVcIj48L2Rpdj5cbiAgICAgICAgICA8L2lvbi1yb3c+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjlcIj5cbiAgICAgICAgICA8YWlyZ2FwLXRpdGxlZC10ZXh0XG4gICAgICAgICAgICAqbmdJZj1cInRyYW5zYWN0aW9uLmNoYW5nZUFkZHJlc3NJbmZvW3RvVHJhbnNhY3Rpb24uYWRkcmVzc10uaXNDaGFuZ2VBZGRyZXNzXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaW9uLXBhZGRpbmctYm90dG9tXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCInZnJvbS10by5jaGFuZ2UtYWRkcmVzcycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW3RleHRdPVwiXG4gICAgICAgICAgICAgIHRyYW5zYWN0aW9uLmNoYW5nZUFkZHJlc3NJbmZvW3RvVHJhbnNhY3Rpb24uYWRkcmVzc10ucGF0aCAhPSAnJ1xuICAgICAgICAgICAgICAgID8gdHJhbnNhY3Rpb24uY2hhbmdlQWRkcmVzc0luZm9bdG9UcmFuc2FjdGlvbi5hZGRyZXNzXS5wYXRoXG4gICAgICAgICAgICAgICAgOiAoJ2Zyb20tdG8udW5rbm93bi1jaGFuZ2UtYWRkcmVzcycgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L2FpcmdhcC10aXRsZWQtdGV4dD5cbiAgICAgICAgICA8YWlyZ2FwLXRpdGxlZC10ZXh0XG4gICAgICAgICAgICBjbGFzcz1cImlvbi1wYWRkaW5nLWJvdHRvbVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ2Zyb20tdG8uYW1vdW50X2xhYmVsJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbdGV4dF09XCJcbiAgICAgICAgICAgICAgdHJhbnNhY3Rpb24uY2hhbmdlQWRkcmVzc0luZm9bdG9UcmFuc2FjdGlvbi5hZGRyZXNzXS5hbW91bnRcbiAgICAgICAgICAgICAgICB8IGFtb3VudENvbnZlcnRlciA6IHsgcHJvdG9jb2w6IHRyYW5zYWN0aW9uLnByb3RvY29sSWRlbnRpZmllciwgbmV0d29yazogdHJhbnNhY3Rpb24ubmV0d29yayB9XG4gICAgICAgICAgICAgICAgfCBhc3luY1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9haXJnYXAtdGl0bGVkLXRleHQ+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgIDwvaW9uLXJvdz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGlvbi1yb3cgY2xhc3M9XCJpb24tYWxpZ24taXRlbXMtY2VudGVyIGlvbi1wYWRkaW5nLXRvcFwiPlxuICAgIDxpb24tY29sIHNpemU9XCI5XCIgb2Zmc2V0PVwiM1wiPlxuICAgICAgPGFpcmdhcC1uZXR3b3JrLWJhZGdlICpuZ0lmPVwiIWhpZGVOZXR3b3JrXCIgW25ldHdvcmtdPVwidHJhbnNhY3Rpb24ubmV0d29ya1wiPjwvYWlyZ2FwLW5ldHdvcmstYmFkZ2U+XG4gICAgPC9pb24tY29sPlxuICA8L2lvbi1yb3c+XG5cbiAgPGRpdiBjbGFzcz1cInJhd2RhdGEtLWNvbnRhaW5lclwiPlxuICAgIDxpb24tcm93ICpuZ0lmPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25EZXRhaWxzXCI+XG4gICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCI+XG4gICAgICAgIDxpb24taXRlbSBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCIgbGluZXM9XCJub25lXCI+XG4gICAgICAgICAgPGlvbi10b2dnbGUgW2NoZWNrZWRdPVwiZGlzcGxheVJhd0RhdGFcIiAoaW9uQ2hhbmdlKT1cInRvZ2dsZURpc3BsYXlSYXdEYXRhKClcIiBqdXN0aWZ5PVwic3BhY2UtYmV0d2VlblwiIGxhYmVsUGxhY2VtZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIHt7ICdmcm9tLXRvLnRyYW5zYWN0aW9uLWRldGFpbHNfbGFiZWwnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9pb24tdG9nZ2xlPlxuICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICA8cHJlICpuZ0lmPVwiZGlzcGxheVJhd0RhdGFcIiBjbGFzcz1cImlvbi1uby1tYXJnaW5cIj57eyB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkRldGFpbHMgfCBqc29uIH19PC9wcmU+XG4gICAgICAgIDxpb24tYnV0dG9uICpuZ0lmPVwiZGlzcGxheVJhd0RhdGFcIiAoY2xpY2spPVwiY29weVRvQ2xpcGJvYXJkKClcIj5Db3B5IGRhdGEgdG8gY2xpcGJvYXJkPC9pb24tYnV0dG9uPlxuICAgICAgPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cblxuICAgIDxpb24tcm93ICpuZ0lmPVwiaW50ZXJhY3Rpb25EYXRhXCI+XG4gICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCI+XG4gICAgICAgIDxpb24taXRlbSBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCIgbGluZXM9XCJub25lXCI+XG4gICAgICAgICAgPGlvbi10b2dnbGUgW2NoZWNrZWRdPVwiZGlzcGxheURldGFpbHNcIiAoaW9uQ2hhbmdlKT1cInRvZ2dsZURpc3BsYXlEZXRhaWxzKClcIiBqdXN0aWZ5PVwic3BhY2UtYmV0d2VlblwiIGxhYmVsUGxhY2VtZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIHt7ICdmcm9tLXRvLmRldGFpbHMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9pb24tdG9nZ2xlPlxuICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICA8cHJlICpuZ0lmPVwiZGlzcGxheURldGFpbHNcIiBjbGFzcz1cImlvbi1uby1tYXJnaW5cIj57eyBpbnRlcmFjdGlvbkRhdGEgfCBqc29uIH19PC9wcmU+XG4gICAgICAgIDxpb24tYnV0dG9uICpuZ0lmPVwiZGlzcGxheURldGFpbHNcIiAoY2xpY2spPVwiY29weVJhd0RhdGFUb0NsaXBib2FyZCgpXCI+Q29weSBkYXRhIHRvIGNsaXBib2FyZDwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L2lvbi1yb3c+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { Component, Input, Inject } from '@angular/core';
|
|
2
|
+
import { APP_CONFIG } from '../../config/app-config';
|
|
3
|
+
import { SerializerV3Generator } from '../../services/qr/qr-generators/serializer-v3-generator';
|
|
4
|
+
import { SerializerV2Generator } from '../../services/qr/qr-generators/serializer-v2-generator';
|
|
5
|
+
import { BCURTypesGenerator } from '../../services/qr/qr-generators/bc-ur-generator';
|
|
6
|
+
import { MetamaskGenerator } from '../../services/qr/qr-generators/metamask-generator';
|
|
7
|
+
import { defaultValues } from '../../services/storage/storage.service';
|
|
8
|
+
import { XPubGenerator } from '../../services/qr/qr-generators/xpub-generator';
|
|
9
|
+
import { OutputDescriptorGenerator } from '../../services/qr/qr-generators/output-descriptor-generator';
|
|
10
|
+
import { TEMP_BTC_REQUEST_IDS, TEMP_MM_REQUEST_IDS } from '../../utils/utils';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "../../services/clipboard/clipboard.service";
|
|
13
|
+
import * as i2 from "../../services/serializer/serializer.service";
|
|
14
|
+
import * as i3 from "@angular/common";
|
|
15
|
+
import * as i4 from "@ionic/angular";
|
|
16
|
+
import * as i5 from "@angular/forms";
|
|
17
|
+
import * as i6 from "../qr/qr.component";
|
|
18
|
+
export var QRType;
|
|
19
|
+
(function (QRType) {
|
|
20
|
+
QRType["V2"] = "QR Code V2";
|
|
21
|
+
QRType["V3"] = "QR Code V3";
|
|
22
|
+
QRType["BC_UR"] = "BC UR";
|
|
23
|
+
QRType["XPUB"] = "xPub";
|
|
24
|
+
QRType["OUTPUT_DESCRIPTOR"] = "Output Descriptor";
|
|
25
|
+
QRType["METAMASK"] = "MetaMask";
|
|
26
|
+
})(QRType || (QRType = {}));
|
|
27
|
+
export class IACQrComponent {
|
|
28
|
+
set messageDefinitionObjects(value) {
|
|
29
|
+
this._messageDefinitionObjects = value;
|
|
30
|
+
this.convertToDataArray();
|
|
31
|
+
}
|
|
32
|
+
constructor(clipboardService, serializerService, appConfig) {
|
|
33
|
+
this.clipboardService = clipboardService;
|
|
34
|
+
this.serializerService = serializerService;
|
|
35
|
+
this.appConfig = appConfig;
|
|
36
|
+
this.availableQRTypes = [];
|
|
37
|
+
this.numberOfParts = 0;
|
|
38
|
+
this.generatorsMap = new Map();
|
|
39
|
+
this.singleChunkSize = defaultValues.SETTINGS_SERIALIZER_SINGLE_CHUNK_SIZE;
|
|
40
|
+
this.multiChunkSize = defaultValues.SETTINGS_SERIALIZER_MULTI_CHUNK_SIZE;
|
|
41
|
+
this.level = 'L';
|
|
42
|
+
this.size = 300;
|
|
43
|
+
this.margin = 2;
|
|
44
|
+
this.qrdata = '';
|
|
45
|
+
this.qrError = '';
|
|
46
|
+
this._messageDefinitionObjects = [];
|
|
47
|
+
this.singleChunkSize = this.serializerService.singleChunkSize;
|
|
48
|
+
this.multiChunkSize = this.serializerService.multiChunkSize;
|
|
49
|
+
}
|
|
50
|
+
ngOnInit() {
|
|
51
|
+
this.timeout = setInterval(async () => {
|
|
52
|
+
this.qrdata = this.activeGenerator ? await this.activeGenerator.nextPart() : '';
|
|
53
|
+
}, this.serializerService.displayTimePerChunk);
|
|
54
|
+
const v3Generator = new SerializerV3Generator();
|
|
55
|
+
const v2Generator = new SerializerV2Generator();
|
|
56
|
+
this.generatorsMap.set(QRType.V3, v3Generator);
|
|
57
|
+
this.generatorsMap.set(QRType.V2, v2Generator);
|
|
58
|
+
this.generatorsMap.set(QRType.BC_UR, new BCURTypesGenerator());
|
|
59
|
+
this.generatorsMap.set(QRType.OUTPUT_DESCRIPTOR, new OutputDescriptorGenerator());
|
|
60
|
+
this.generatorsMap.set(QRType.XPUB, new XPubGenerator());
|
|
61
|
+
this.generatorsMap.set(QRType.METAMASK, new MetamaskGenerator());
|
|
62
|
+
this.availableQRTypes.push(QRType.V3);
|
|
63
|
+
this.availableQRTypes.push(QRType.V2);
|
|
64
|
+
if (this.qrFormatPreference) {
|
|
65
|
+
switch (this.qrFormatPreference) {
|
|
66
|
+
case QRType.BC_UR:
|
|
67
|
+
this.qrType = QRType.BC_UR;
|
|
68
|
+
this.activeGenerator = new BCURTypesGenerator();
|
|
69
|
+
break;
|
|
70
|
+
case QRType.OUTPUT_DESCRIPTOR:
|
|
71
|
+
this.qrType = QRType.OUTPUT_DESCRIPTOR;
|
|
72
|
+
this.activeGenerator = new OutputDescriptorGenerator();
|
|
73
|
+
break;
|
|
74
|
+
case QRType.XPUB:
|
|
75
|
+
this.qrType = QRType.XPUB;
|
|
76
|
+
this.activeGenerator = new XPubGenerator();
|
|
77
|
+
break;
|
|
78
|
+
case QRType.METAMASK:
|
|
79
|
+
this.qrType = QRType.METAMASK;
|
|
80
|
+
this.activeGenerator = new MetamaskGenerator();
|
|
81
|
+
break;
|
|
82
|
+
default:
|
|
83
|
+
this.activeGenerator = v3Generator;
|
|
84
|
+
this.qrType = QRType.V3;
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
if (this.serializerService.useV3) {
|
|
90
|
+
this.activeGenerator = v3Generator;
|
|
91
|
+
this.qrType = QRType.V3;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
this.activeGenerator = v2Generator;
|
|
95
|
+
this.qrType = QRType.V2;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
updateGenerator(value) {
|
|
100
|
+
const generator = this.generatorsMap.get(value);
|
|
101
|
+
if (generator) {
|
|
102
|
+
this.qrType = value;
|
|
103
|
+
this.activeGenerator = generator;
|
|
104
|
+
this.convertToDataArray();
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
console.error('NO GENERATOR FOUND FOR ', value);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
ngOnDestroy() {
|
|
111
|
+
if (this.timeout) {
|
|
112
|
+
clearInterval(this.timeout);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
async copyToClipboard() {
|
|
116
|
+
const copyString = this.activeGenerator ? await this.activeGenerator.getSingle(this.appConfig.otherApp.urlScheme) : '';
|
|
117
|
+
await this.clipboardService.copyAndShowToast(copyString);
|
|
118
|
+
}
|
|
119
|
+
async convertToDataArray() {
|
|
120
|
+
// Add BC_UR type, if supported
|
|
121
|
+
if (!this.availableQRTypes.includes(QRType.BC_UR) && (await BCURTypesGenerator.canHandle(this._messageDefinitionObjects))) {
|
|
122
|
+
this.availableQRTypes.push(QRType.BC_UR);
|
|
123
|
+
// If we know the message ID, we activate the bcur toggle
|
|
124
|
+
this._messageDefinitionObjects.forEach((message) => {
|
|
125
|
+
const IDs = JSON.parse(localStorage.getItem(TEMP_BTC_REQUEST_IDS) ?? '{}');
|
|
126
|
+
const id = IDs[message.id];
|
|
127
|
+
if (id && id.qrType === QRType.BC_UR) {
|
|
128
|
+
this.updateGenerator(QRType.BC_UR);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
// Add Ouput Descriptor, if supported
|
|
133
|
+
if (!this.availableQRTypes.includes(QRType.OUTPUT_DESCRIPTOR) &&
|
|
134
|
+
(await OutputDescriptorGenerator.canHandle(this._messageDefinitionObjects))) {
|
|
135
|
+
this.availableQRTypes.push(QRType.OUTPUT_DESCRIPTOR);
|
|
136
|
+
}
|
|
137
|
+
// Add xPub, if supported
|
|
138
|
+
if (!this.availableQRTypes.includes(QRType.XPUB) && (await XPubGenerator.canHandle(this._messageDefinitionObjects))) {
|
|
139
|
+
this.availableQRTypes.push(QRType.XPUB);
|
|
140
|
+
}
|
|
141
|
+
// Add MetaMask, if supported
|
|
142
|
+
if (!this.availableQRTypes.includes(QRType.METAMASK) && (await MetamaskGenerator.canHandle(this._messageDefinitionObjects))) {
|
|
143
|
+
this.availableQRTypes.push(QRType.METAMASK);
|
|
144
|
+
// If we know the message ID, we activate the MetaMask toggle
|
|
145
|
+
this._messageDefinitionObjects.forEach((message) => {
|
|
146
|
+
const IDs = JSON.parse(localStorage.getItem(TEMP_MM_REQUEST_IDS) ?? '{}');
|
|
147
|
+
const id = IDs[message.id];
|
|
148
|
+
if (id) {
|
|
149
|
+
this.updateGenerator(QRType.METAMASK);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
this.qrError = '';
|
|
154
|
+
if (this.activeGenerator) {
|
|
155
|
+
try {
|
|
156
|
+
await this.activeGenerator.create(this._messageDefinitionObjects, this.multiChunkSize, this.singleChunkSize);
|
|
157
|
+
this.qrdata = await this.activeGenerator.nextPart();
|
|
158
|
+
this.qrError = '';
|
|
159
|
+
this.numberOfParts = await this.activeGenerator.getNumberOfParts();
|
|
160
|
+
}
|
|
161
|
+
catch (e) {
|
|
162
|
+
console.log('QR generation error', e);
|
|
163
|
+
this.qrError = 'Message is not compatible with the selected QR code type. Please select another one.';
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
this.qrdata = '';
|
|
168
|
+
this.qrError = 'No QR type selected.';
|
|
169
|
+
this.numberOfParts = 0;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IACQrComponent, deps: [{ token: i1.ClipboardService }, { token: i2.SerializerService }, { token: APP_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
173
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: IACQrComponent, selector: "airgap-iac-qr", inputs: { level: "level", size: "size", margin: "margin", qrFormatPreference: "qrFormatPreference", messageDefinitionObjects: "messageDefinitionObjects" }, ngImport: i0, template: "<airgap-qr\n *ngIf=\"qrdata\"\n [level]=\"level\"\n [size]=\"size\"\n [margin]=\"margin\"\n [qrdata]=\"qrdata\"\n [disableClipboard]=\"true\"\n (click)=\"copyToClipboard()\"\n></airgap-qr>\n\n<p *ngIf=\"qrError\">{{ qrError }}</p>\n\n<ion-select *ngIf=\"availableQRTypes.length > 0\" slot=\"end\" [ngModel]=\"qrType\" interface=\"popover\" (ngModelChange)=\"updateGenerator($event)\">\n <ion-select-option *ngFor=\"let availableQRType of availableQRTypes\" [value]=\"availableQRType\">\n <ion-text>\n {{ availableQRType }}\n </ion-text>\n </ion-select-option>\n</ion-select>\n\n<p *ngIf=\"numberOfParts > 1\">{{ numberOfParts }} QR codes</p>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "expandedIcon", "fill", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "legacy", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: i4.IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "component", type: i4.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i4.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.QrComponent, selector: "airgap-qr", inputs: ["level", "size", "margin", "qrdata", "disableClipboard"] }] }); }
|
|
174
|
+
}
|
|
175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IACQrComponent, decorators: [{
|
|
176
|
+
type: Component,
|
|
177
|
+
args: [{ selector: 'airgap-iac-qr', template: "<airgap-qr\n *ngIf=\"qrdata\"\n [level]=\"level\"\n [size]=\"size\"\n [margin]=\"margin\"\n [qrdata]=\"qrdata\"\n [disableClipboard]=\"true\"\n (click)=\"copyToClipboard()\"\n></airgap-qr>\n\n<p *ngIf=\"qrError\">{{ qrError }}</p>\n\n<ion-select *ngIf=\"availableQRTypes.length > 0\" slot=\"end\" [ngModel]=\"qrType\" interface=\"popover\" (ngModelChange)=\"updateGenerator($event)\">\n <ion-select-option *ngFor=\"let availableQRType of availableQRTypes\" [value]=\"availableQRType\">\n <ion-text>\n {{ availableQRType }}\n </ion-text>\n </ion-select-option>\n</ion-select>\n\n<p *ngIf=\"numberOfParts > 1\">{{ numberOfParts }} QR codes</p>\n" }]
|
|
178
|
+
}], ctorParameters: () => [{ type: i1.ClipboardService }, { type: i2.SerializerService }, { type: undefined, decorators: [{
|
|
179
|
+
type: Inject,
|
|
180
|
+
args: [APP_CONFIG]
|
|
181
|
+
}] }], propDecorators: { level: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], size: [{
|
|
184
|
+
type: Input
|
|
185
|
+
}], margin: [{
|
|
186
|
+
type: Input
|
|
187
|
+
}], qrFormatPreference: [{
|
|
188
|
+
type: Input
|
|
189
|
+
}], messageDefinitionObjects: [{
|
|
190
|
+
type: Input
|
|
191
|
+
}] } });
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFjLXFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pYWMtcXIvaWFjLXFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pYWMtcXIvaWFjLXFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQU1uRSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0seUJBQXlCLENBQUE7QUFFL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seURBQXlELENBQUE7QUFDL0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seURBQXlELENBQUE7QUFDL0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUE7QUFDcEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0RBQW9ELENBQUE7QUFDdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQTtBQUM5RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQTtBQUN2RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTs7Ozs7Ozs7QUFFN0UsTUFBTSxDQUFOLElBQVksTUFPWDtBQVBELFdBQVksTUFBTTtJQUNoQiwyQkFBaUIsQ0FBQTtJQUNqQiwyQkFBaUIsQ0FBQTtJQUNqQix5QkFBZSxDQUFBO0lBQ2YsdUJBQWEsQ0FBQTtJQUNiLGlEQUF1QyxDQUFBO0lBQ3ZDLCtCQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFQVyxNQUFNLEtBQU4sTUFBTSxRQU9qQjtBQU9ELE1BQU0sT0FBTyxjQUFj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SSxDQUFDLE9BQU8sR0FBRyxzRkFBc0YsQ0FBQTtZQUN2RyxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQTtZQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLHNCQUFzQixDQUFBO1lBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFBO1FBQ3hCLENBQUM7SUFDSCxDQUFDOytHQXpMVSxjQUFjLG1GQXlDZixVQUFVO21HQXpDVCxjQUFjLGlOQy9CM0IseXBCQXFCQTs7NEZEVWEsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxlQUFlOzswQkE2Q3RCLE1BQU07MkJBQUMsVUFBVTt5Q0E3QmIsS0FBSztzQkFEWCxLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlLLHdCQUF3QjtzQkFEbEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IElBQ01lc3NhZ2VEZWZpbml0aW9uT2JqZWN0VjMgfSBmcm9tICdAd2FsbGZyZWUtZGV2L3NlcmlhbGl6ZXInXG5pbXBvcnQgeyBRUkNvZGVFcnJvckNvcnJlY3Rpb25MZXZlbCB9IGZyb20gJ3FyY29kZSdcblxuaW1wb3J0IHsgQ2xpcGJvYXJkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsaXBib2FyZC9jbGlwYm9hcmQuc2VydmljZSdcbmltcG9ydCB7IFNlcmlhbGl6ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VyaWFsaXplci9zZXJpYWxpemVyLnNlcnZpY2UnXG5pbXBvcnQgeyBBUFBfQ09ORklHLCBBcHBDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvYXBwLWNvbmZpZydcbmltcG9ydCB7IElBQ1FyR2VuZXJhdG9yIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaWFjL3FyLWdlbmVyYXRvcidcbmltcG9ydCB7IFNlcmlhbGl6ZXJWM0dlbmVyYXRvciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3FyL3FyLWdlbmVyYXRvcnMvc2VyaWFsaXplci12My1nZW5lcmF0b3InXG5pbXBvcnQgeyBTZXJpYWxpemVyVjJHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9xci9xci1nZW5lcmF0b3JzL3NlcmlhbGl6ZXItdjItZ2VuZXJhdG9yJ1xuaW1wb3J0IHsgQkNVUlR5cGVzR2VuZXJhdG9yIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcXIvcXItZ2VuZXJhdG9ycy9iYy11ci1nZW5lcmF0b3InXG5pbXBvcnQgeyBNZXRhbWFza0dlbmVyYXRvciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3FyL3FyLWdlbmVyYXRvcnMvbWV0YW1hc2stZ2VuZXJhdG9yJ1xuaW1wb3J0IHsgZGVmYXVsdFZhbHVlcyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlJ1xuaW1wb3J0IHsgWFB1YkdlbmVyYXRvciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3FyL3FyLWdlbmVyYXRvcnMveHB1Yi1nZW5lcmF0b3InXG5pbXBvcnQgeyBPdXRwdXREZXNjcmlwdG9yR2VuZXJhdG9yIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcXIvcXItZ2VuZXJhdG9ycy9vdXRwdXQtZGVzY3JpcHRvci1nZW5lcmF0b3InXG5pbXBvcnQgeyBURU1QX0JUQ19SRVFVRVNUX0lEUywgVEVNUF9NTV9SRVFVRVNUX0lEUyB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWxzJ1xuXG5leHBvcnQgZW51bSBRUlR5cGUge1xuICBWMiA9ICdRUiBDb2RlIFYyJyxcbiAgVjMgPSAnUVIgQ29kZSBWMycsXG4gIEJDX1VSID0gJ0JDIFVSJyxcbiAgWFBVQiA9ICd4UHViJyxcbiAgT1VUUFVUX0RFU0NSSVBUT1IgPSAnT3V0cHV0IERlc2NyaXB0b3InLFxuICBNRVRBTUFTSyA9ICdNZXRhTWFzaydcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWlyZ2FwLWlhYy1xcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pYWMtcXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pYWMtcXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJQUNRckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBhdmFpbGFibGVRUlR5cGVzOiBRUlR5cGVbXSA9IFtdXG4gIHB1YmxpYyBudW1iZXJPZlBhcnRzOiBudW1iZXIgPSAwXG5cbiAgcHJpdmF0ZSByZWFkb25seSBnZW5lcmF0b3JzTWFwOiBNYXA8c3RyaW5nLCBJQUNRckdlbmVyYXRvcj4gPSBuZXcgTWFwKClcblxuICBwcml2YXRlIHJlYWRvbmx5IHNpbmdsZUNodW5rU2l6ZTogbnVtYmVyID0gZGVmYXVsdFZhbHVlcy5TRVRUSU5HU19TRVJJQUxJWkVSX1NJTkdMRV9DSFVOS19TSVpFXG4gIHByaXZhdGUgcmVhZG9ubHkgbXVsdGlDaHVua1NpemU6IG51bWJlciA9IGRlZmF1bHRWYWx1ZXMuU0VUVElOR1NfU0VSSUFMSVpFUl9NVUxUSV9DSFVOS19TSVpFXG5cbiAgcHJpdmF0ZSBhY3RpdmVHZW5lcmF0b3I6IElBQ1FyR2VuZXJhdG9yIHwgdW5kZWZpbmVkXG5cbiAgQElucHV0KClcbiAgcHVibGljIGxldmVsOiBRUkNvZGVFcnJvckNvcnJlY3Rpb25MZXZlbCA9ICdMJ1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaXplOiBudW1iZXIgPSAzMDBcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWFyZ2luOiBudW1iZXIgPSAyXG5cbiAgQElucHV0KClcbiAgcHVibGljIHFyRm9ybWF0UHJlZmVyZW5jZTogUVJUeXBlXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtZXNzYWdlRGVmaW5pdGlvbk9iamVjdHModmFsdWU6IElBQ01lc3NhZ2VEZWZpbml0aW9uT2JqZWN0VjNbXSkge1xuICAgIHRoaXMuX21lc3NhZ2VEZWZpbml0aW9uT2JqZWN0cyA9IHZhbHVlXG4gICAgdGhpcy5jb252ZXJ0VG9EYXRhQXJyYXkoKVxuICB9XG5cbiAgcHVibGljIHFyVHlwZTogUVJUeXBlXG4gIHB1YmxpYyBxcmRhdGE6IHN0cmluZyA9ICcnXG5cbiAgcHVibGljIHFyRXJyb3I6IHN0cmluZyA9ICcnXG5cbiAgcHJpdmF0ZSBfbWVzc2FnZURlZmluaXRpb25PYmplY3RzOiBJQUNNZXNzYWdlRGVmaW5pdGlvbk9iamVjdFYzW10gPSBbXVxuXG4gIHByaXZhdGUgdGltZW91dD86IE5vZGVKUy5UaW1lb3V0XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VyaWFsaXplclNlcnZpY2U6IFNlcmlhbGl6ZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoQVBQX0NPTkZJRykgcHJpdmF0ZSByZWFkb25seSBhcHBDb25maWc6IEFwcENvbmZpZ1xuICApIHtcbiAgICB0aGlzLnNpbmdsZUNodW5rU2l6ZSA9IHRoaXMuc2VyaWFsaXplclNlcnZpY2Uuc2luZ2xlQ2h1bmtTaXplXG4gICAgdGhpcy5tdWx0aUNodW5rU2l6ZSA9IHRoaXMuc2VyaWFsaXplclNlcnZpY2UubXVsdGlDaHVua1NpemVcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRpbWVvdXQgPSBzZXRJbnRlcnZhbChhc3luYyAoKSA9PiB7XG4gICAgICB0aGlzLnFyZGF0YSA9IHRoaXMuYWN0aXZlR2VuZXJhdG9yID8gYXdhaXQgdGhpcy5hY3RpdmVHZW5lcmF0b3IubmV4dFBhcnQoKSA6ICcnXG4gICAgfSwgdGhpcy5zZXJpYWxpemVyU2VydmljZS5kaXNwbGF5VGltZVBlckNodW5rKVxuICAgIGNvbnN0IHYzR2VuZXJhdG9yID0gbmV3IFNlcmlhbGl6ZXJWM0dlbmVyYXRvcigpXG4gICAgY29uc3QgdjJHZW5lcmF0b3IgPSBuZXcgU2VyaWFsaXplclYyR2VuZXJhdG9yKClcblxuICAgIHRoaXMuZ2VuZXJhdG9yc01hcC5zZXQoUVJUeXBlLlYzLCB2M0dlbmVyYXRvcilcbiAgICB0aGlzLmdlbmVyYXRvcnNNYXAuc2V0KFFSVHlwZS5WMiwgdjJHZW5lcmF0b3IpXG4gICAgdGhpcy5nZW5lcmF0b3JzTWFwLnNldChRUlR5cGUuQkNfVVIsIG5ldyBCQ1VSVHlwZXNHZW5lcmF0b3IoKSlcbiAgICB0aGlzLmdlbmVyYXRvcnNNYXAuc2V0KFFSVHlwZS5PVVRQVVRfREVTQ1JJUFRPUiwgbmV3IE91dHB1dERlc2NyaXB0b3JHZW5lcmF0b3IoKSlcbiAgICB0aGlzLmdlbmVyYXRvcnNNYXAuc2V0KFFSVHlwZS5YUFVCLCBuZXcgWFB1YkdlbmVyYXRvcigpKVxuICAgIHRoaXMuZ2VuZXJhdG9yc01hcC5zZXQoUVJUeXBlLk1FVEFNQVNLLCBuZXcgTWV0YW1hc2tHZW5lcmF0b3IoKSlcblxuICAgIHRoaXMuYXZhaWxhYmxlUVJUeXBlcy5wdXNoKFFSVHlwZS5WMylcbiAgICB0aGlzLmF2YWlsYWJsZVFSVHlwZXMucHVzaChRUlR5cGUuVjIpXG5cbiAgICBpZiAodGhpcy5xckZvcm1hdFByZWZlcmVuY2UpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5xckZvcm1hdFByZWZlcmVuY2UpIHtcbiAgICAgICAgY2FzZSBRUlR5cGUuQkNfVVI6XG4gICAgICAgICAgdGhpcy5xclR5cGUgPSBRUlR5cGUuQkNfVVJcbiAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBCQ1VSVHlwZXNHZW5lcmF0b3IoKVxuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSBRUlR5cGUuT1VUUFVUX0RFU0NSSVBUT1I6XG4gICAgICAgICAgdGhpcy5xclR5cGUgPSBRUlR5cGUuT1VUUFVUX0RFU0NSSVBUT1JcbiAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBPdXRwdXREZXNjcmlwdG9yR2VuZXJhdG9yKClcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgUVJUeXBlLlhQVUI6XG4gICAgICAgICAgdGhpcy5xclR5cGUgPSBRUlR5cGUuWFBVQlxuICAgICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yID0gbmV3IFhQdWJHZW5lcmF0b3IoKVxuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSBRUlR5cGUuTUVUQU1BU0s6XG4gICAgICAgICAgdGhpcy5xclR5cGUgPSBRUlR5cGUuTUVUQU1BU0tcbiAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBNZXRhbWFza0dlbmVyYXRvcigpXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yID0gdjNHZW5lcmF0b3JcbiAgICAgICAgICB0aGlzLnFyVHlwZSA9IFFSVHlwZS5WM1xuICAgICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnNlcmlhbGl6ZXJTZXJ2aWNlLnVzZVYzKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yID0gdjNHZW5lcmF0b3JcbiAgICAgICAgdGhpcy5xclR5cGUgPSBRUlR5cGUuVjNcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yID0gdjJHZW5lcmF0b3JcbiAgICAgICAgdGhpcy5xclR5cGUgPSBRUlR5cGUuVjJcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlR2VuZXJhdG9yKHZhbHVlOiBRUlR5cGUpOiB2b2lkIHtcbiAgICBjb25zdCBnZW5lcmF0b3IgPSB0aGlzLmdlbmVyYXRvcnNNYXAuZ2V0KHZhbHVlKVxuICAgIGlmIChnZW5lcmF0b3IpIHtcbiAgICAgIHRoaXMucXJUeXBlID0gdmFsdWVcbiAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yID0gZ2VuZXJhdG9yXG4gICAgICB0aGlzLmNvbnZlcnRUb0RhdGFBcnJheSgpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ05PIEdFTkVSQVRPUiBGT1VORCBGT1IgJywgdmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRpbWVvdXQpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lb3V0KVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjb3B5VG9DbGlwYm9hcmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29weVN0cmluZzogc3RyaW5nID0gdGhpcy5hY3RpdmVHZW5lcmF0b3IgPyBhd2FpdCB0aGlzLmFjdGl2ZUdlbmVyYXRvci5nZXRTaW5nbGUodGhpcy5hcHBDb25maWcub3RoZXJBcHAudXJsU2NoZW1lKSA6ICcnXG5cbiAgICBhd2FpdCB0aGlzLmNsaXBib2FyZFNlcnZpY2UuY29weUFuZFNob3dUb2FzdChjb3B5U3RyaW5nKVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjb252ZXJ0VG9EYXRhQXJyYXkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gQWRkIEJDX1VSIHR5cGUsIGlmIHN1cHBvcnRlZFxuICAgIGlmICghdGhpcy5hdmFpbGFibGVRUlR5cGVzLmluY2x1ZGVzKFFSVHlwZS5CQ19VUikgJiYgKGF3YWl0IEJDVVJUeXBlc0dlbmVyYXRvci5jYW5IYW5kbGUodGhpcy5fbWVzc2FnZURlZmluaXRpb25PYmplY3RzKSkpIHtcbiAgICAgIHRoaXMuYXZhaWxhYmxlUVJUeXBlcy5wdXNoKFFSVHlwZS5CQ19VUilcblxuICAgICAgLy8gSWYgd2Uga25vdyB0aGUgbWVzc2FnZSBJRCwgd2UgYWN0aXZhdGUgdGhlIGJjdXIgdG9nZ2xlXG4gICAgICB0aGlzLl9tZXNzYWdlRGVmaW5pdGlvbk9iamVjdHMuZm9yRWFjaCgobWVzc2FnZSkgPT4ge1xuICAgICAgICBjb25zdCBJRHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFRFTVBfQlRDX1JFUVVFU1RfSURTKSA/PyAne30nKVxuXG4gICAgICAgIGNvbnN0IGlkID0gSURzW21lc3NhZ2UuaWRdXG5cbiAgICAgICAgaWYgKGlkICYmIGlkLnFyVHlwZSA9PT0gUVJUeXBlLkJDX1VSKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVHZW5lcmF0b3IoUVJUeXBlLkJDX1VSKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIEFkZCBPdXB1dCBEZXNjcmlwdG9yLCBpZiBzdXBwb3J0ZWRcbiAgICBpZiAoXG4gICAgICAhdGhpcy5hdmFpbGFibGVRUlR5cGVzLmluY2x1ZGVzKFFSVHlwZS5PVVRQVVRfREVTQ1JJUFRPUikgJiZcbiAgICAgIChhd2FpdCBPdXRwdXREZXNjcmlwdG9yR2VuZXJhdG9yLmNhbkhhbmRsZSh0aGlzLl9tZXNzYWdlRGVmaW5pdGlvbk9iamVjdHMpKVxuICAgICkge1xuICAgICAgdGhpcy5hdmFpbGFibGVRUlR5cGVzLnB1c2goUVJUeXBlLk9VVFBVVF9ERVNDUklQVE9SKVxuICAgIH1cbiAgICAvLyBBZGQgeFB1YiwgaWYgc3VwcG9ydGVkXG4gICAgaWYgKCF0aGlzLmF2YWlsYWJsZVFSVHlwZXMuaW5jbHVkZXMoUVJUeXBlLlhQVUIpICYmIChhd2FpdCBYUHViR2VuZXJhdG9yLmNhbkhhbmRsZSh0aGlzLl9tZXNzYWdlRGVmaW5pdGlvbk9iamVjdHMpKSkge1xuICAgICAgdGhpcy5hdmFpbGFibGVRUlR5cGVzLnB1c2goUVJUeXBlLlhQVUIpXG4gICAgfVxuICAgIC8vIEFkZCBNZXRhTWFzaywgaWYgc3VwcG9ydGVkXG4gICAgaWYgKCF0aGlzLmF2YWlsYWJsZVFSVHlwZXMuaW5jbHVkZXMoUVJUeXBlLk1FVEFNQVNLKSAmJiAoYXdhaXQgTWV0YW1hc2tHZW5lcmF0b3IuY2FuSGFuZGxlKHRoaXMuX21lc3NhZ2VEZWZpbml0aW9uT2JqZWN0cykpKSB7XG4gICAgICB0aGlzLmF2YWlsYWJsZVFSVHlwZXMucHVzaChRUlR5cGUuTUVUQU1BU0spXG5cbiAgICAgIC8vIElmIHdlIGtub3cgdGhlIG1lc3NhZ2UgSUQsIHdlIGFjdGl2YXRlIHRoZSBNZXRhTWFzayB0b2dnbGVcbiAgICAgIHRoaXMuX21lc3NhZ2VEZWZpbml0aW9uT2JqZWN0cy5mb3JFYWNoKChtZXNzYWdlKSA9PiB7XG4gICAgICAgIGNvbnN0IElEcyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oVEVNUF9NTV9SRVFVRVNUX0lEUykgPz8gJ3t9JylcblxuICAgICAgICBjb25zdCBpZCA9IElEc1ttZXNzYWdlLmlkXVxuXG4gICAgICAgIGlmIChpZCkge1xuICAgICAgICAgIHRoaXMudXBkYXRlR2VuZXJhdG9yKFFSVHlwZS5NRVRBTUFTSylcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICB0aGlzLnFyRXJyb3IgPSAnJ1xuICAgIGlmICh0aGlzLmFjdGl2ZUdlbmVyYXRvcikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5hY3RpdmVHZW5lcmF0b3IuY3JlYXRlKHRoaXMuX21lc3NhZ2VEZWZpbml0aW9uT2JqZWN0cywgdGhpcy5tdWx0aUNodW5rU2l6ZSwgdGhpcy5zaW5nbGVDaHVua1NpemUpXG4gICAgICAgIHRoaXMucXJkYXRhID0gYXdhaXQgdGhpcy5hY3RpdmVHZW5lcmF0b3IubmV4dFBhcnQoKVxuICAgICAgICB0aGlzLnFyRXJyb3IgPSAnJ1xuICAgICAgICB0aGlzLm51bWJlck9mUGFydHMgPSBhd2FpdCB0aGlzLmFjdGl2ZUdlbmVyYXRvci5nZXROdW1iZXJPZlBhcnRzKClcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1FSIGdlbmVyYXRpb24gZXJyb3InLCBlKVxuICAgICAgICB0aGlzLnFyRXJyb3IgPSAnTWVzc2FnZSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBzZWxlY3RlZCBRUiBjb2RlIHR5cGUuIFBsZWFzZSBzZWxlY3QgYW5vdGhlciBvbmUuJ1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnFyZGF0YSA9ICcnXG4gICAgICB0aGlzLnFyRXJyb3IgPSAnTm8gUVIgdHlwZSBzZWxlY3RlZC4nXG4gICAgICB0aGlzLm51bWJlck9mUGFydHMgPSAwXG4gICAgfVxuICB9XG59XG4iLCI8YWlyZ2FwLXFyXG4gICpuZ0lmPVwicXJkYXRhXCJcbiAgW2xldmVsXT1cImxldmVsXCJcbiAgW3NpemVdPVwic2l6ZVwiXG4gIFttYXJnaW5dPVwibWFyZ2luXCJcbiAgW3FyZGF0YV09XCJxcmRhdGFcIlxuICBbZGlzYWJsZUNsaXBib2FyZF09XCJ0cnVlXCJcbiAgKGNsaWNrKT1cImNvcHlUb0NsaXBib2FyZCgpXCJcbj48L2FpcmdhcC1xcj5cblxuPHAgKm5nSWY9XCJxckVycm9yXCI+e3sgcXJFcnJvciB9fTwvcD5cblxuPGlvbi1zZWxlY3QgKm5nSWY9XCJhdmFpbGFibGVRUlR5cGVzLmxlbmd0aCA+IDBcIiBzbG90PVwiZW5kXCIgW25nTW9kZWxdPVwicXJUeXBlXCIgaW50ZXJmYWNlPVwicG9wb3ZlclwiIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUdlbmVyYXRvcigkZXZlbnQpXCI+XG4gIDxpb24tc2VsZWN0LW9wdGlvbiAqbmdGb3I9XCJsZXQgYXZhaWxhYmxlUVJUeXBlIG9mIGF2YWlsYWJsZVFSVHlwZXNcIiBbdmFsdWVdPVwiYXZhaWxhYmxlUVJUeXBlXCI+XG4gICAgPGlvbi10ZXh0PlxuICAgICAge3sgYXZhaWxhYmxlUVJUeXBlIH19XG4gICAgPC9pb24tdGV4dD5cbiAgPC9pb24tc2VsZWN0LW9wdGlvbj5cbjwvaW9uLXNlbGVjdD5cblxuPHAgKm5nSWY9XCJudW1iZXJPZlBhcnRzID4gMVwiPnt7IG51bWJlck9mUGFydHMgfX0gUVIgY29kZXM8L3A+XG4iXX0=
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { createIcon } from '@download/blockies';
|
|
3
|
+
import { BigNumber } from 'bignumber.js';
|
|
4
|
+
import { toDataUrl } from 'myetherwallet-blockies';
|
|
5
|
+
import { MainProtocolSymbols } from '@wallfree-dev/coinlib-core';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../services/protocol/protocol.service";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
export class IdenticonComponent {
|
|
10
|
+
static { this.b52Characters = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'; }
|
|
11
|
+
set address(value) {
|
|
12
|
+
if (!value) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
16
|
+
this.setAddress(value);
|
|
17
|
+
}
|
|
18
|
+
constructor(protocolService) {
|
|
19
|
+
this.protocolService = protocolService;
|
|
20
|
+
}
|
|
21
|
+
async setAddress(value) {
|
|
22
|
+
if (await this.protocolService.isAddressOfProtocol(MainProtocolSymbols.AE, value)) {
|
|
23
|
+
this.identicon = createIcon({ seed: value }).toDataURL();
|
|
24
|
+
}
|
|
25
|
+
else if (await this.protocolService.isAddressOfProtocol(MainProtocolSymbols.XTZ, value)) {
|
|
26
|
+
this.identicon = createIcon({
|
|
27
|
+
seed: `0${this.b582int(value)}`,
|
|
28
|
+
spotcolor: '#000'
|
|
29
|
+
}).toDataURL();
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.identicon = toDataUrl(value.toLowerCase());
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
b582int(v) {
|
|
36
|
+
let rv = new BigNumber(0);
|
|
37
|
+
for (let i = 0; i < v.length; i++) {
|
|
38
|
+
rv = rv.plus(new BigNumber(IdenticonComponent.b52Characters.indexOf(v[v.length - 1 - i])).multipliedBy(new BigNumber(IdenticonComponent.b52Characters.length).exponentiatedBy(i)));
|
|
39
|
+
}
|
|
40
|
+
return rv.toString(16);
|
|
41
|
+
}
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IdenticonComponent, deps: [{ token: i1.ProtocolService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: IdenticonComponent, selector: "airgap-identicon", inputs: { address: "address" }, ngImport: i0, template: "<img *ngIf=\"identicon\" class=\"identicon\" [src]=\"identicon\" />\n<img *ngIf=\"!identicon\" class=\"identicon--placeholder\" src=\"./assets/img/identicon_placeholder.png\" />\n", styles: [".identicon{overflow:hidden;box-shadow:inset #fff3 0 2px 2px,inset #0000004d 0 -1px 8px}.identicon--placeholder{background-size:contain}.identicon,.identicon--placeholder{border-radius:50%;width:inherit;height:inherit;min-width:40px;min-height:40px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IdenticonComponent, decorators: [{
|
|
46
|
+
type: Component,
|
|
47
|
+
args: [{ selector: 'airgap-identicon', template: "<img *ngIf=\"identicon\" class=\"identicon\" [src]=\"identicon\" />\n<img *ngIf=\"!identicon\" class=\"identicon--placeholder\" src=\"./assets/img/identicon_placeholder.png\" />\n", styles: [".identicon{overflow:hidden;box-shadow:inset #fff3 0 2px 2px,inset #0000004d 0 -1px 8px}.identicon--placeholder{background-size:contain}.identicon,.identicon--placeholder{border-radius:50%;width:inherit;height:inherit;min-width:40px;min-height:40px}\n"] }]
|
|
48
|
+
}], ctorParameters: () => [{ type: i1.ProtocolService }], propDecorators: { address: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}] } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpY29uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pZGVudGljb24vaWRlbnRpY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pZGVudGljb24vaWRlbnRpY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTs7OztBQVFoRSxNQUFNLE9BQU8sa0JBQWtCO2FBQ0wsa0JBQWEsR0FBRyw0REFBNEQsQUFBL0QsQ0FBK0Q7SUFFcEcsSUFDVyxPQUFPLENBQUMsS0FBZ0M7UUFDakQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTTtRQUNSLENBQUM7UUFFRCxtRUFBbUU7UUFDbkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN4QixDQUFDO0lBSUQsWUFBNkIsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQUcsQ0FBQztJQUV6RCxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQWE7UUFDcEMsSUFBSSxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEYsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUMxRCxDQUFDO2FBQU0sSUFBSSxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUYsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7Z0JBQzFCLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQy9CLFNBQVMsRUFBRSxNQUFNO2FBQ2xCLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUNoQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO1FBQ2pELENBQUM7SUFDSCxDQUFDO0lBRU8sT0FBTyxDQUFDLENBQVM7UUFDdkIsSUFBSSxFQUFFLEdBQUcsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDekIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNsQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDVixJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUN2RixJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUMxRSxDQUNGLENBQUE7UUFDSCxDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3hCLENBQUM7K0dBekNVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHdGQ1ovQixxTEFFQTs7NEZEVWEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGtCQUFrQjtvRkFRakIsT0FBTztzQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgY3JlYXRlSWNvbiB9IGZyb20gJ0Bkb3dubG9hZC9ibG9ja2llcydcbmltcG9ydCB7IEJpZ051bWJlciB9IGZyb20gJ2JpZ251bWJlci5qcydcbmltcG9ydCB7IHRvRGF0YVVybCB9IGZyb20gJ215ZXRoZXJ3YWxsZXQtYmxvY2tpZXMnXG5pbXBvcnQgeyBNYWluUHJvdG9jb2xTeW1ib2xzIH0gZnJvbSAnQHdhbGxmcmVlLWRldi9jb2lubGliLWNvcmUnXG5pbXBvcnQgeyBQcm90b2NvbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm90b2NvbC9wcm90b2NvbC5zZXJ2aWNlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhaXJnYXAtaWRlbnRpY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lkZW50aWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lkZW50aWNvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIElkZW50aWNvbkNvbXBvbmVudCB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGI1MkNoYXJhY3RlcnMgPSAnMTIzNDU2Nzg5QUJDREVGR0hKS0xNTlBRUlNUVVZXWFlaYWJjZGVmZ2hpamttbm9wcXJzdHV2d3h5eidcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFkZHJlc3ModmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWZsb2F0aW5nLXByb21pc2VzXG4gICAgdGhpcy5zZXRBZGRyZXNzKHZhbHVlKVxuICB9XG5cbiAgcHVibGljIGlkZW50aWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm90b2NvbFNlcnZpY2U6IFByb3RvY29sU2VydmljZSkge31cblxuICBwcml2YXRlIGFzeW5jIHNldEFkZHJlc3ModmFsdWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChhd2FpdCB0aGlzLnByb3RvY29sU2VydmljZS5pc0FkZHJlc3NPZlByb3RvY29sKE1haW5Qcm90b2NvbFN5bWJvbHMuQUUsIHZhbHVlKSkge1xuICAgICAgdGhpcy5pZGVudGljb24gPSBjcmVhdGVJY29uKHsgc2VlZDogdmFsdWUgfSkudG9EYXRhVVJMKClcbiAgICB9IGVsc2UgaWYgKGF3YWl0IHRoaXMucHJvdG9jb2xTZXJ2aWNlLmlzQWRkcmVzc09mUHJvdG9jb2woTWFpblByb3RvY29sU3ltYm9scy5YVFosIHZhbHVlKSkge1xuICAgICAgdGhpcy5pZGVudGljb24gPSBjcmVhdGVJY29uKHtcbiAgICAgICAgc2VlZDogYDAke3RoaXMuYjU4MmludCh2YWx1ZSl9YCxcbiAgICAgICAgc3BvdGNvbG9yOiAnIzAwMCdcbiAgICAgIH0pLnRvRGF0YVVSTCgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaWRlbnRpY29uID0gdG9EYXRhVXJsKHZhbHVlLnRvTG93ZXJDYXNlKCkpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBiNTgyaW50KHY6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IHJ2ID0gbmV3IEJpZ051bWJlcigwKVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdi5sZW5ndGg7IGkrKykge1xuICAgICAgcnYgPSBydi5wbHVzKFxuICAgICAgICBuZXcgQmlnTnVtYmVyKElkZW50aWNvbkNvbXBvbmVudC5iNTJDaGFyYWN0ZXJzLmluZGV4T2Yodlt2Lmxlbmd0aCAtIDEgLSBpXSkpLm11bHRpcGxpZWRCeShcbiAgICAgICAgICBuZXcgQmlnTnVtYmVyKElkZW50aWNvbkNvbXBvbmVudC5iNTJDaGFyYWN0ZXJzLmxlbmd0aCkuZXhwb25lbnRpYXRlZEJ5KGkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gcnYudG9TdHJpbmcoMTYpXG4gIH1cbn1cbiIsIjxpbWcgKm5nSWY9XCJpZGVudGljb25cIiBjbGFzcz1cImlkZW50aWNvblwiIFtzcmNdPVwiaWRlbnRpY29uXCIgLz5cbjxpbWcgKm5nSWY9XCIhaWRlbnRpY29uXCIgY2xhc3M9XCJpZGVudGljb24tLXBsYWNlaG9sZGVyXCIgc3JjPVwiLi9hc3NldHMvaW1nL2lkZW50aWNvbl9wbGFjZWhvbGRlci5wbmdcIiAvPlxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@ionic/angular";
|
|
5
|
+
import * as i3 from "@ngx-translate/core";
|
|
6
|
+
export class IsolatedModulesBadgesComponent {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsolatedModulesBadgesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: IsolatedModulesBadgesComponent, selector: "airgap-isolated-modules-badges", inputs: { module: "module" }, ngImport: i0, template: "<ion-item class=\"ion-no-padding\" lines=\"none\">\n <ion-badge *ngIf=\"module.source === '3rd_party' && module.type === 'asset'\" class=\"badge__margin\" color=\"tertiary\">{{ 'isolated-modules-badges.audited_label' | translate }}</ion-badge>\n <ion-badge *ngIf=\"module.type === 'asset'\" class=\"badge__margin\" color=\"tertiary\">{{ 'isolated-modules-badges.built-in_label' | translate }}</ion-badge>\n <ion-badge *ngIf=\"module.source === '3rd_party'\" class=\"badge__margin\" color=\"medium\">{{ 'isolated-modules-badges.3rd-party_label' | translate }}</ion-badge>\n</ion-item>\n", styles: ["ion-item{--min-height: 0}.badge__margin{margin:0 6px 0 0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsolatedModulesBadgesComponent, decorators: [{
|
|
11
|
+
type: Component,
|
|
12
|
+
args: [{ selector: 'airgap-isolated-modules-badges', template: "<ion-item class=\"ion-no-padding\" lines=\"none\">\n <ion-badge *ngIf=\"module.source === '3rd_party' && module.type === 'asset'\" class=\"badge__margin\" color=\"tertiary\">{{ 'isolated-modules-badges.audited_label' | translate }}</ion-badge>\n <ion-badge *ngIf=\"module.type === 'asset'\" class=\"badge__margin\" color=\"tertiary\">{{ 'isolated-modules-badges.built-in_label' | translate }}</ion-badge>\n <ion-badge *ngIf=\"module.source === '3rd_party'\" class=\"badge__margin\" color=\"medium\">{{ 'isolated-modules-badges.3rd-party_label' | translate }}</ion-badge>\n</ion-item>\n", styles: ["ion-item{--min-height: 0}.badge__margin{margin:0 6px 0 0}\n"] }]
|
|
13
|
+
}], propDecorators: { module: [{
|
|
14
|
+
type: Input
|
|
15
|
+
}] } });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvbGF0ZWQtbW9kdWxlcy1iYWRnZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2lzb2xhdGVkLW1vZHVsZXMtYmFkZ2VzL2lzb2xhdGVkLW1vZHVsZXMtYmFkZ2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pc29sYXRlZC1tb2R1bGVzLWJhZGdlcy9pc29sYXRlZC1tb2R1bGVzLWJhZGdlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTs7Ozs7QUFTaEQsTUFBTSxPQUFPLDhCQUE4QjsrR0FBOUIsOEJBQThCO21HQUE5Qiw4QkFBOEIsb0dDVDNDLDhrQkFLQTs7NEZESWEsOEJBQThCO2tCQUwxQyxTQUFTOytCQUNFLGdDQUFnQzs4QkFNbkMsTUFBTTtzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IElzb2xhdGVkTW9kdWxlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi90eXBlcy9pc29sYXRlZC1tb2R1bGVzL0lzb2xhdGVkTW9kdWxlTWV0YWRhdGEnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FpcmdhcC1pc29sYXRlZC1tb2R1bGVzLWJhZGdlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pc29sYXRlZC1tb2R1bGVzLWJhZGdlcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lzb2xhdGVkLW1vZHVsZXMtYmFkZ2VzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSXNvbGF0ZWRNb2R1bGVzQmFkZ2VzQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgcHVibGljIG1vZHVsZTogSXNvbGF0ZWRNb2R1bGVNZXRhZGF0YVxufVxuIiwiPGlvbi1pdGVtIGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIiBsaW5lcz1cIm5vbmVcIj5cbiAgPGlvbi1iYWRnZSAqbmdJZj1cIm1vZHVsZS5zb3VyY2UgPT09ICczcmRfcGFydHknICYmIG1vZHVsZS50eXBlID09PSAnYXNzZXQnXCIgY2xhc3M9XCJiYWRnZV9fbWFyZ2luXCIgY29sb3I9XCJ0ZXJ0aWFyeVwiPnt7ICdpc29sYXRlZC1tb2R1bGVzLWJhZGdlcy5hdWRpdGVkX2xhYmVsJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLWJhZGdlPlxuICA8aW9uLWJhZGdlICpuZ0lmPVwibW9kdWxlLnR5cGUgPT09ICdhc3NldCdcIiBjbGFzcz1cImJhZGdlX19tYXJnaW5cIiBjb2xvcj1cInRlcnRpYXJ5XCI+e3sgJ2lzb2xhdGVkLW1vZHVsZXMtYmFkZ2VzLmJ1aWx0LWluX2xhYmVsJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLWJhZGdlPlxuICA8aW9uLWJhZGdlICpuZ0lmPVwibW9kdWxlLnNvdXJjZSA9PT0gJzNyZF9wYXJ0eSdcIiBjbGFzcz1cImJhZGdlX19tYXJnaW5cIiBjb2xvcj1cIm1lZGl1bVwiPnt7ICdpc29sYXRlZC1tb2R1bGVzLWJhZGdlcy4zcmQtcGFydHlfbGFiZWwnIHwgdHJhbnNsYXRlIH19PC9pb24tYmFkZ2U+XG48L2lvbi1pdGVtPlxuIl19
|
package/esm2022/lib/components/isolated-modules-details/isolated-modules-details.component.mjs
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Component, EventEmitter, Inject, Injector, Input, Output } from '@angular/core';
|
|
2
|
+
import { takeUntil } from 'rxjs/operators';
|
|
3
|
+
import { BaseComponent } from '../../base/base.component';
|
|
4
|
+
import { UIResourceStatus } from '../../types/ui/UIResource';
|
|
5
|
+
import { isolatedModulesDetailsFacade, ISOLATED_MODULES_DETAILS_FACADE } from './isolated-modules-details.facade';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
import * as i2 from "@ionic/angular";
|
|
9
|
+
import * as i3 from "../isolated-modules-badges/isolated-modules-badges.component";
|
|
10
|
+
import * as i4 from "@ngx-translate/core";
|
|
11
|
+
export class IsolatedModulesDetailsComponent extends BaseComponent {
|
|
12
|
+
constructor(facade) {
|
|
13
|
+
super(facade);
|
|
14
|
+
this.UIResourceStatus = UIResourceStatus;
|
|
15
|
+
this.isVerified = new EventEmitter();
|
|
16
|
+
facade.isVerified$.pipe(takeUntil(this.ngDestroyed$)).subscribe((isVerified) => {
|
|
17
|
+
this.isVerified.emit(isVerified.value ?? false);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this.facade.initWithData(this.metadata);
|
|
22
|
+
return super.ngOnInit();
|
|
23
|
+
}
|
|
24
|
+
ngOnChanges(changes) {
|
|
25
|
+
if (changes.metadata.previousValue !== changes.metadata.currentValue) {
|
|
26
|
+
this.facade.onDataChanged(changes.metadata.currentValue);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsolatedModulesDetailsComponent, deps: [{ token: ISOLATED_MODULES_DETAILS_FACADE }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: IsolatedModulesDetailsComponent, selector: "airgap-isolated-modules-details", inputs: { metadata: "metadata" }, outputs: { isVerified: "isVerified" }, providers: [{ provide: ISOLATED_MODULES_DETAILS_FACADE, useFactory: isolatedModulesDetailsFacade, deps: [Injector] }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: " <ng-container *ngIf=\"facade.manifest$ | async as manifest\">\n <ng-container *ngIf=\"manifest.status === UIResourceStatus.SUCCESS && manifest.value\">\n <ion-card>\n <ion-card-content>\n <div class=\"ion-margin-bottom\">\n <airgap-isolated-modules-badges [module]=\"metadata\"></airgap-isolated-modules-badges>\n </div>\n <div class=\"ion-margin-bottom\">\n <h3>{{ 'isolated-modules-details.manifest.name.label' | translate }}</h3>\n <p>{{ manifest.value.name }}</p>\n </div>\n <div class=\"ion-margin-top\">\n <h3 class=\"ion-margin-top\">{{ 'isolated-modules-details.manifest.author.label' | translate }}</h3>\n <p>{{ manifest.value.author }}</p>\n <div *ngIf=\"manifest.value.url\">\n <ion-icon name=\"globe\"></ion-icon>\n <p class=\"inlined\">{{ manifest.value.url }}</p>\n </div>\n <div *ngIf=\"manifest.value.email\">\n <ion-icon name=\"mail\"></ion-icon>\n <p class=\"inlined\">{{ manifest.value.email }}</p>\n </div>\n </div>\n </ion-card-content>\n </ion-card>\n <ion-card>\n <ion-card-content>\n <h3>{{ 'isolated-modules-details.manifest.description.label' | translate }}</h3>\n <p>{{ manifest.value.description }}</p>\n </ion-card-content>\n </ion-card>\n <ion-card>\n <ion-card-content>\n <h3>{{ 'isolated-modules-details.manifest.version.label' | translate }}</h3>\n <p>{{ manifest.value.version }}</p>\n </ion-card-content>\n </ion-card>\n <ion-card>\n <ion-card-content>\n <h3>{{ 'isolated-modules-details.manifest.public-key.label' | translate }}</h3>\n <p>{{ manifest.value.publicKey }}</p>\n\n <ng-container *ngIf=\"facade.isVerified$ | async as isVerified\">\n <p *ngIf=\"isVerified.status === UIResourceStatus.SUCCESS && !isVerified.value\" class=\"error\">\n {{ 'isolated-modules-details.manifest.public-key.not-verified_warning' | translate }}\n </p>\n </ng-container>\n </ion-card-content>\n </ion-card>\n <ion-card>\n <ion-card-content>\n <h3>{{ 'isolated-modules-details.manifest.include.label' | translate }}</h3>\n <ion-list class=\"ion-padding-top\" lines=\"full\">\n <ion-item \n *ngFor=\"let file of manifest.value.include\"\n detail=\"false\" \n class=\"ion-no-padding\"\n >\n <p>{{ file }}</p>\n </ion-item>\n </ion-list>\n </ion-card-content>\n </ion-card>\n </ng-container>\n </ng-container>", styles: ["h3{font-weight:700}.error{color:red}.inlined{display:inline}ion-list>ion-item>p{padding-left:10px}ion-list>ion-item:first-child{--border-width: .55px 0 .55px 0 }ion-list>ion-item{--min-height: 30px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i3.IsolatedModulesBadgesComponent, selector: "airgap-isolated-modules-badges", inputs: ["module"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IsolatedModulesDetailsComponent, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{ selector: 'airgap-isolated-modules-details', providers: [{ provide: ISOLATED_MODULES_DETAILS_FACADE, useFactory: isolatedModulesDetailsFacade, deps: [Injector] }], template: " <ng-container *ngIf=\"facade.manifest$ | async as manifest\">\n <ng-container *ngIf=\"manifest.status === UIResourceStatus.SUCCESS && manifest.value\">\n <ion-card>\n <ion-card-content>\n <div class=\"ion-margin-bottom\">\n <airgap-isolated-modules-badges [module]=\"metadata\"></airgap-isolated-modules-badges>\n </div>\n <div class=\"ion-margin-bottom\">\n <h3>{{ 'isolated-modules-details.manifest.name.label' | translate }}</h3>\n <p>{{ manifest.value.name }}</p>\n </div>\n <div class=\"ion-margin-top\">\n <h3 class=\"ion-margin-top\">{{ 'isolated-modules-details.manifest.author.label' | translate }}</h3>\n <p>{{ manifest.value.author }}</p>\n <div *ngIf=\"manifest.value.url\">\n <ion-icon name=\"globe\"></ion-icon>\n <p class=\"inlined\">{{ manifest.value.url }}</p>\n </div>\n <div *ngIf=\"manifest.value.email\">\n <ion-icon name=\"mail\"></ion-icon>\n <p class=\"inlined\">{{ manifest.value.email }}</p>\n </div>\n </div>\n </ion-card-content>\n </ion-card>\n <ion-card>\n <ion-card-content>\n <h3>{{ 'isolated-modules-details.manifest.description.label' | translate }}</h3>\n <p>{{ manifest.value.description }}</p>\n </ion-card-content>\n </ion-card>\n <ion-card>\n <ion-card-content>\n <h3>{{ 'isolated-modules-details.manifest.version.label' | translate }}</h3>\n <p>{{ manifest.value.version }}</p>\n </ion-card-content>\n </ion-card>\n <ion-card>\n <ion-card-content>\n <h3>{{ 'isolated-modules-details.manifest.public-key.label' | translate }}</h3>\n <p>{{ manifest.value.publicKey }}</p>\n\n <ng-container *ngIf=\"facade.isVerified$ | async as isVerified\">\n <p *ngIf=\"isVerified.status === UIResourceStatus.SUCCESS && !isVerified.value\" class=\"error\">\n {{ 'isolated-modules-details.manifest.public-key.not-verified_warning' | translate }}\n </p>\n </ng-container>\n </ion-card-content>\n </ion-card>\n <ion-card>\n <ion-card-content>\n <h3>{{ 'isolated-modules-details.manifest.include.label' | translate }}</h3>\n <ion-list class=\"ion-padding-top\" lines=\"full\">\n <ion-item \n *ngFor=\"let file of manifest.value.include\"\n detail=\"false\" \n class=\"ion-no-padding\"\n >\n <p>{{ file }}</p>\n </ion-item>\n </ion-list>\n </ion-card-content>\n </ion-card>\n </ng-container>\n </ng-container>", styles: ["h3{font-weight:700}.error{color:red}.inlined{display:inline}ion-list>ion-item>p{padding-left:10px}ion-list>ion-item:first-child{--border-width: .55px 0 .55px 0 }ion-list>ion-item{--min-height: 30px}\n"] }]
|
|
35
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
36
|
+
type: Inject,
|
|
37
|
+
args: [ISOLATED_MODULES_DETAILS_FACADE]
|
|
38
|
+
}] }], propDecorators: { metadata: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], isVerified: [{
|
|
41
|
+
type: Output
|
|
42
|
+
}] } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvbGF0ZWQtbW9kdWxlcy1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pc29sYXRlZC1tb2R1bGVzLWRldGFpbHMvaXNvbGF0ZWQtbW9kdWxlcy1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pc29sYXRlZC1tb2R1bGVzLWRldGFpbHMvaXNvbGF0ZWQtbW9kdWxlcy1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUE7QUFDbEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUV6RCxPQUFPLEVBQWMsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN4RSxPQUFPLEVBQ0wsNEJBQTRCLEVBRTVCLCtCQUErQixFQUNoQyxNQUFNLG1DQUFtQyxDQUFBOzs7Ozs7QUFRMUMsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGFBQTJDO0lBUzlGLFlBQXFELE1BQW9DO1FBQ3ZGLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQVRDLHFCQUFnQixHQUE0QixnQkFBZ0IsQ0FBQTtRQU1yRSxlQUFVLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUE7UUFLM0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQStCLEVBQUUsRUFBRTtZQUNsRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFBO1FBQ2pELENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFdkMsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDekIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxLQUFLLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUMxRCxDQUFDO0lBQ0gsQ0FBQzsrR0EzQlUsK0JBQStCLGtCQVN0QiwrQkFBK0I7bUdBVHhDLCtCQUErQixtSUFGL0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxVQUFVLEVBQUUsNEJBQTRCLEVBQUUsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxzRUNmdkgsOHRGQWdFaUI7OzRGRC9DSiwrQkFBK0I7a0JBTjNDLFNBQVM7K0JBQ0UsaUNBQWlDLGFBR2hDLENBQUMsRUFBRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsVUFBVSxFQUFFLDRCQUE0QixFQUFFLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7OzBCQVd4RyxNQUFNOzJCQUFDLCtCQUErQjt5Q0FMNUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLFVBQVU7c0JBRGhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbmplY3RvciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvYmFzZS5jb21wb25lbnQnXG5pbXBvcnQgeyBJc29sYXRlZE1vZHVsZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMvaXNvbGF0ZWQtbW9kdWxlcy9Jc29sYXRlZE1vZHVsZU1ldGFkYXRhJ1xuaW1wb3J0IHsgVUlSZXNvdXJjZSwgVUlSZXNvdXJjZVN0YXR1cyB9IGZyb20gJy4uLy4uL3R5cGVzL3VpL1VJUmVzb3VyY2UnXG5pbXBvcnQge1xuICBpc29sYXRlZE1vZHVsZXNEZXRhaWxzRmFjYWRlLFxuICBJc29sYXRlZE1vZHVsZXNEZXRhaWxzRmFjYWRlLFxuICBJU09MQVRFRF9NT0RVTEVTX0RFVEFJTFNfRkFDQURFXG59IGZyb20gJy4vaXNvbGF0ZWQtbW9kdWxlcy1kZXRhaWxzLmZhY2FkZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWlyZ2FwLWlzb2xhdGVkLW1vZHVsZXMtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pc29sYXRlZC1tb2R1bGVzLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pc29sYXRlZC1tb2R1bGVzLWRldGFpbHMuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBJU09MQVRFRF9NT0RVTEVTX0RFVEFJTFNfRkFDQURFLCB1c2VGYWN0b3J5OiBpc29sYXRlZE1vZHVsZXNEZXRhaWxzRmFjYWRlLCBkZXBzOiBbSW5qZWN0b3JdIH1dXG59KVxuZXhwb3J0IGNsYXNzIElzb2xhdGVkTW9kdWxlc0RldGFpbHNDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50PElzb2xhdGVkTW9kdWxlc0RldGFpbHNGYWNhZGU+IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgcHVibGljIHJlYWRvbmx5IFVJUmVzb3VyY2VTdGF0dXM6IHR5cGVvZiBVSVJlc291cmNlU3RhdHVzID0gVUlSZXNvdXJjZVN0YXR1c1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtZXRhZGF0YTogSXNvbGF0ZWRNb2R1bGVNZXRhZGF0YSB8IHVuZGVmaW5lZFxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgaXNWZXJpZmllZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgY29uc3RydWN0b3IoQEluamVjdChJU09MQVRFRF9NT0RVTEVTX0RFVEFJTFNfRkFDQURFKSBmYWNhZGU6IElzb2xhdGVkTW9kdWxlc0RldGFpbHNGYWNhZGUpIHtcbiAgICBzdXBlcihmYWNhZGUpXG5cbiAgICBmYWNhZGUuaXNWZXJpZmllZCQucGlwZSh0YWtlVW50aWwodGhpcy5uZ0Rlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKGlzVmVyaWZpZWQ6IFVJUmVzb3VyY2U8Ym9vbGVhbj4pID0+IHtcbiAgICAgIHRoaXMuaXNWZXJpZmllZC5lbWl0KGlzVmVyaWZpZWQudmFsdWUgPz8gZmFsc2UpXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZhY2FkZS5pbml0V2l0aERhdGEodGhpcy5tZXRhZGF0YSlcblxuICAgIHJldHVybiBzdXBlci5uZ09uSW5pdCgpXG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLm1ldGFkYXRhLnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZXMubWV0YWRhdGEuY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLmZhY2FkZS5vbkRhdGFDaGFuZ2VkKGNoYW5nZXMubWV0YWRhdGEuY3VycmVudFZhbHVlKVxuICAgIH1cbiAgfVxufVxuIiwiICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmFjYWRlLm1hbmlmZXN0JCB8IGFzeW5jIGFzIG1hbmlmZXN0XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1hbmlmZXN0LnN0YXR1cyA9PT0gVUlSZXNvdXJjZVN0YXR1cy5TVUNDRVNTICYmIG1hbmlmZXN0LnZhbHVlXCI+XG4gICAgICA8aW9uLWNhcmQ+XG4gICAgICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tbWFyZ2luLWJvdHRvbVwiPlxuICAgICAgICAgICAgPGFpcmdhcC1pc29sYXRlZC1tb2R1bGVzLWJhZGdlcyBbbW9kdWxlXT1cIm1ldGFkYXRhXCI+PC9haXJnYXAtaXNvbGF0ZWQtbW9kdWxlcy1iYWRnZXM+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlvbi1tYXJnaW4tYm90dG9tXCI+XG4gICAgICAgICAgICA8aDM+e3sgJ2lzb2xhdGVkLW1vZHVsZXMtZGV0YWlscy5tYW5pZmVzdC5uYW1lLmxhYmVsJyB8IHRyYW5zbGF0ZSB9fTwvaDM+XG4gICAgICAgICAgICA8cD57eyBtYW5pZmVzdC52YWx1ZS5uYW1lIH19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tbWFyZ2luLXRvcFwiPlxuICAgICAgICAgICAgPGgzIGNsYXNzPVwiaW9uLW1hcmdpbi10b3BcIj57eyAnaXNvbGF0ZWQtbW9kdWxlcy1kZXRhaWxzLm1hbmlmZXN0LmF1dGhvci5sYWJlbCcgfCB0cmFuc2xhdGUgfX08L2gzPlxuICAgICAgICAgICAgPHA+e3sgbWFuaWZlc3QudmFsdWUuYXV0aG9yIH19PC9wPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1hbmlmZXN0LnZhbHVlLnVybFwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImdsb2JlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJpbmxpbmVkXCI+e3sgbWFuaWZlc3QudmFsdWUudXJsIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWFuaWZlc3QudmFsdWUuZW1haWxcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJtYWlsXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJpbmxpbmVkXCI+e3sgbWFuaWZlc3QudmFsdWUuZW1haWwgfX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9pb24tY2FyZC1jb250ZW50PlxuICAgICAgPC9pb24tY2FyZD5cbiAgICAgIDxpb24tY2FyZD5cbiAgICAgICAgPGlvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgPGgzPnt7ICdpc29sYXRlZC1tb2R1bGVzLWRldGFpbHMubWFuaWZlc3QuZGVzY3JpcHRpb24ubGFiZWwnIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgICAgICAgICA8cD57eyBtYW5pZmVzdC52YWx1ZS5kZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgICAgPC9pb24tY2FyZC1jb250ZW50PlxuICAgICAgPC9pb24tY2FyZD5cbiAgICAgIDxpb24tY2FyZD5cbiAgICAgICAgPGlvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgPGgzPnt7ICdpc29sYXRlZC1tb2R1bGVzLWRldGFpbHMubWFuaWZlc3QudmVyc2lvbi5sYWJlbCcgfCB0cmFuc2xhdGUgfX08L2gzPlxuICAgICAgICAgIDxwPnt7IG1hbmlmZXN0LnZhbHVlLnZlcnNpb24gfX08L3A+XG4gICAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgICAgIDwvaW9uLWNhcmQ+XG4gICAgICA8aW9uLWNhcmQ+XG4gICAgICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgICAgIDxoMz57eyAnaXNvbGF0ZWQtbW9kdWxlcy1kZXRhaWxzLm1hbmlmZXN0LnB1YmxpYy1rZXkubGFiZWwnIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgICAgICAgICA8cD57eyBtYW5pZmVzdC52YWx1ZS5wdWJsaWNLZXkgfX08L3A+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmFjYWRlLmlzVmVyaWZpZWQkIHwgYXN5bmMgYXMgaXNWZXJpZmllZFwiPlxuICAgICAgICAgICAgPHAgKm5nSWY9XCJpc1ZlcmlmaWVkLnN0YXR1cyA9PT0gVUlSZXNvdXJjZVN0YXR1cy5TVUNDRVNTICYmICFpc1ZlcmlmaWVkLnZhbHVlXCIgY2xhc3M9XCJlcnJvclwiPlxuICAgICAgICAgICAgICB7eyAnaXNvbGF0ZWQtbW9kdWxlcy1kZXRhaWxzLm1hbmlmZXN0LnB1YmxpYy1rZXkubm90LXZlcmlmaWVkX3dhcm5pbmcnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgICAgIDwvaW9uLWNhcmQ+XG4gICAgICA8aW9uLWNhcmQ+XG4gICAgICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgICAgIDxoMz57eyAnaXNvbGF0ZWQtbW9kdWxlcy1kZXRhaWxzLm1hbmlmZXN0LmluY2x1ZGUubGFiZWwnIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgICAgICAgICA8aW9uLWxpc3QgY2xhc3M9XCJpb24tcGFkZGluZy10b3BcIiBsaW5lcz1cImZ1bGxcIj5cbiAgICAgICAgICAgIDxpb24taXRlbSBcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbGUgb2YgbWFuaWZlc3QudmFsdWUuaW5jbHVkZVwiXG4gICAgICAgICAgICAgIGRldGFpbD1cImZhbHNlXCIgXG4gICAgICAgICAgICAgIGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8cD57eyBmaWxlIH19PC9wPlxuICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICA8L2lvbi1saXN0PlxuICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICA8L2lvbi1jYXJkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj4iXX0=
|