likec4 1.26.2 → 1.27.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 +65 -54
- package/__app__/index.html +6 -1
- package/__app__/src/fonts.css +1 -0
- package/__app__/src/main.js +42714 -34537
- package/__app__/src/style.css +1 -1
- package/__app__/src/webcomponent.tsx +103 -0
- package/dist/cli/index.mjs +737 -610
- package/dist/index.d.mts +2 -1
- package/dist/index.mjs +1 -1
- package/dist/shared/likec4.C0T-ybr5.d.mts +10239 -0
- package/dist/shared/likec4.CcbefjP5.mjs +2206 -0
- package/dist/shared/likec4.D_ELXBwW.mjs +227 -0
- package/dist/vite-plugin/index.d.mts +2 -1
- package/dist/vite-plugin/index.mjs +1 -1
- package/icons/aws/activate.js +1 -21
- package/icons/aws/alexa-for-business.js +1 -21
- package/icons/aws/amplify.js +1 -21
- package/icons/aws/apache-mxnet-on-aws.js +1 -21
- package/icons/aws/api-gateway.js +1 -21
- package/icons/aws/app-config.js +1 -21
- package/icons/aws/app-flow.js +1 -21
- package/icons/aws/app-mesh.js +1 -21
- package/icons/aws/app-runner.js +1 -21
- package/icons/aws/app-stream.js +1 -21
- package/icons/aws/app-sync.js +1 -21
- package/icons/aws/application-auto-scaling.js +1 -21
- package/icons/aws/application-composer.js +1 -21
- package/icons/aws/application-cost-profiler.js +1 -21
- package/icons/aws/application-discovery-service.js +1 -21
- package/icons/aws/application-migration-service.js +1 -21
- package/icons/aws/artifact.js +1 -21
- package/icons/aws/athena.js +1 -21
- package/icons/aws/audit-manager.js +1 -21
- package/icons/aws/augmented-ai-a2i.js +1 -21
- package/icons/aws/aurora.js +1 -21
- package/icons/aws/auto-scaling.js +1 -21
- package/icons/aws/backint-agent.js +1 -21
- package/icons/aws/backup.js +1 -21
- package/icons/aws/batch.js +1 -21
- package/icons/aws/billing-conductor.js +1 -21
- package/icons/aws/bottlerocket.js +1 -21
- package/icons/aws/braket.js +1 -21
- package/icons/aws/budgets.js +1 -21
- package/icons/aws/certificate-manager.js +1 -21
- package/icons/aws/chatbot.js +1 -21
- package/icons/aws/chime-sdk.js +1 -21
- package/icons/aws/chime-voice-connector.js +1 -21
- package/icons/aws/chime.js +1 -21
- package/icons/aws/clean-rooms.js +1 -21
- package/icons/aws/client-vpn.js +1 -21
- package/icons/aws/cloud-control-api.js +1 -21
- package/icons/aws/cloud-development-kit.js +1 -21
- package/icons/aws/cloud-directory.js +1 -21
- package/icons/aws/cloud-formation.js +1 -21
- package/icons/aws/cloud-front.js +1 -21
- package/icons/aws/cloud-hsm.js +1 -21
- package/icons/aws/cloud-map.js +1 -21
- package/icons/aws/cloud-search.js +1 -21
- package/icons/aws/cloud-shell.js +1 -21
- package/icons/aws/cloud-trail.js +1 -21
- package/icons/aws/cloud-wan.js +1 -21
- package/icons/aws/cloud-watch.js +1 -21
- package/icons/aws/cloud9.js +1 -21
- package/icons/aws/code-artifact.js +1 -21
- package/icons/aws/code-build.js +1 -21
- package/icons/aws/code-catalyst.js +1 -21
- package/icons/aws/code-commit.js +1 -21
- package/icons/aws/code-deploy.js +1 -21
- package/icons/aws/code-guru.js +1 -21
- package/icons/aws/code-pipeline.js +1 -21
- package/icons/aws/code-star.js +1 -21
- package/icons/aws/code-whisperer.js +1 -21
- package/icons/aws/cognito.js +1 -21
- package/icons/aws/command-line-interface.js +1 -21
- package/icons/aws/comprehend-medical.js +1 -21
- package/icons/aws/comprehend.js +1 -21
- package/icons/aws/compute-optimizer.js +1 -21
- package/icons/aws/config.js +1 -21
- package/icons/aws/connect.js +1 -21
- package/icons/aws/console-mobile-application.js +1 -21
- package/icons/aws/control-tower.js +1 -21
- package/icons/aws/corretto.js +1 -21
- package/icons/aws/cost-and-usage-report.js +1 -21
- package/icons/aws/cost-explorer.js +1 -21
- package/icons/aws/data-exchange.js +1 -21
- package/icons/aws/data-pipeline.js +1 -21
- package/icons/aws/data-sync.js +1 -21
- package/icons/aws/data-zone.js +1 -21
- package/icons/aws/database-migration-service.js +1 -21
- package/icons/aws/deep-composer.js +1 -21
- package/icons/aws/deep-learning-amis.js +1 -21
- package/icons/aws/deep-learning-containers.js +1 -21
- package/icons/aws/deep-lens.js +1 -21
- package/icons/aws/deep-racer.js +1 -21
- package/icons/aws/detective.js +1 -21
- package/icons/aws/dev-ops-guru.js +1 -21
- package/icons/aws/device-farm.js +1 -21
- package/icons/aws/direct-connect.js +1 -21
- package/icons/aws/directory-service.js +1 -21
- package/icons/aws/distro-for-open-telemetry.js +1 -21
- package/icons/aws/document-db.js +1 -21
- package/icons/aws/dynamo-db.js +1 -21
- package/icons/aws/ec2-auto-scaling.js +1 -21
- package/icons/aws/ec2-image-builder.js +1 -21
- package/icons/aws/ec2.js +1 -21
- package/icons/aws/ecs-anywhere.js +1 -21
- package/icons/aws/efs.js +1 -21
- package/icons/aws/eks-anywhere.js +1 -21
- package/icons/aws/eks-cloud.js +1 -21
- package/icons/aws/eks-distro.js +1 -21
- package/icons/aws/elasti-cache.js +1 -21
- package/icons/aws/elastic-beanstalk.js +1 -21
- package/icons/aws/elastic-block-store.js +1 -21
- package/icons/aws/elastic-container-registry.js +1 -21
- package/icons/aws/elastic-container-service.js +1 -21
- package/icons/aws/elastic-disaster-recovery.js +1 -21
- package/icons/aws/elastic-fabric-adapter.js +1 -21
- package/icons/aws/elastic-inference.js +1 -21
- package/icons/aws/elastic-kubernetes-service.js +1 -21
- package/icons/aws/elastic-load-balancing.js +1 -21
- package/icons/aws/elastic-transcoder.js +1 -21
- package/icons/aws/elemental-appliances-software.js +1 -21
- package/icons/aws/elemental-conductor.js +1 -21
- package/icons/aws/elemental-delta.js +1 -21
- package/icons/aws/elemental-link.js +1 -21
- package/icons/aws/elemental-live.js +1 -21
- package/icons/aws/elemental-media-connect.js +1 -21
- package/icons/aws/elemental-media-convert.js +1 -21
- package/icons/aws/elemental-media-live.js +1 -21
- package/icons/aws/elemental-media-package.js +1 -21
- package/icons/aws/elemental-media-store.js +1 -21
- package/icons/aws/elemental-media-tailor.js +1 -21
- package/icons/aws/elemental-server.js +1 -21
- package/icons/aws/emr.js +1 -21
- package/icons/aws/event-bridge.js +1 -21
- package/icons/aws/express-workflows.js +1 -21
- package/icons/aws/fargate.js +1 -21
- package/icons/aws/fault-injection-simulator.js +1 -21
- package/icons/aws/file-cache.js +1 -21
- package/icons/aws/fin-space.js +1 -21
- package/icons/aws/firewall-manager.js +1 -21
- package/icons/aws/forecast.js +1 -21
- package/icons/aws/fraud-detector.js +1 -21
- package/icons/aws/free-rtos.js +1 -21
- package/icons/aws/fsx-for-lustre.js +1 -21
- package/icons/aws/fsx-for-net-app-ontap.js +1 -21
- package/icons/aws/fsx-for-open-zfs.js +1 -21
- package/icons/aws/fsx-for-wfs.js +1 -21
- package/icons/aws/fsx.js +1 -21
- package/icons/aws/game-kit.js +1 -21
- package/icons/aws/game-lift.js +1 -21
- package/icons/aws/game-sparks.js +1 -21
- package/icons/aws/genomics-cli.js +1 -21
- package/icons/aws/global-accelerator.js +1 -21
- package/icons/aws/glue-data-brew.js +1 -21
- package/icons/aws/glue-elastic-views.js +1 -21
- package/icons/aws/glue.js +1 -21
- package/icons/aws/ground-station.js +1 -21
- package/icons/aws/guard-duty.js +1 -21
- package/icons/aws/health-lake.js +1 -21
- package/icons/aws/honeycode.js +1 -21
- package/icons/aws/iam-identity-center.js +1 -21
- package/icons/aws/identity-and-access-management.js +1 -21
- package/icons/aws/inspector.js +1 -21
- package/icons/aws/interactive-video-service.js +1 -21
- package/icons/aws/io-t-1-click.js +1 -21
- package/icons/aws/io-t-analytics.js +1 -21
- package/icons/aws/io-t-button.js +1 -21
- package/icons/aws/io-t-core.js +1 -21
- package/icons/aws/io-t-device-defender.js +1 -21
- package/icons/aws/io-t-device-management.js +1 -21
- package/icons/aws/io-t-edu-kit.js +1 -21
- package/icons/aws/io-t-events.js +1 -21
- package/icons/aws/io-t-express-link.js +1 -21
- package/icons/aws/io-t-fleet-wise.js +1 -21
- package/icons/aws/io-t-greengrass.js +1 -21
- package/icons/aws/io-t-robo-runner.js +1 -21
- package/icons/aws/io-t-site-wise.js +1 -21
- package/icons/aws/io-t-things-graph.js +1 -21
- package/icons/aws/io-t-twin-maker.js +1 -37
- package/icons/aws/iq.js +1 -21
- package/icons/aws/kendra.js +1 -21
- package/icons/aws/key-management-service.js +1 -21
- package/icons/aws/keyspaces.js +1 -21
- package/icons/aws/kinesis-data-analytics.js +1 -21
- package/icons/aws/kinesis-data-streams.js +1 -21
- package/icons/aws/kinesis-firehose.js +1 -21
- package/icons/aws/kinesis-video-streams.js +1 -21
- package/icons/aws/kinesis.js +1 -21
- package/icons/aws/lake-formation.js +1 -21
- package/icons/aws/lambda.js +1 -21
- package/icons/aws/launch-wizard.js +1 -21
- package/icons/aws/lex.js +1 -21
- package/icons/aws/license-manager.js +1 -21
- package/icons/aws/lightsail.js +1 -21
- package/icons/aws/local-zones.js +1 -21
- package/icons/aws/location-service.js +1 -21
- package/icons/aws/lookout-for-equipment.js +1 -21
- package/icons/aws/lookout-for-metrics.js +1 -21
- package/icons/aws/lookout-for-vision.js +1 -21
- package/icons/aws/lumberyard.js +1 -21
- package/icons/aws/macie.js +1 -21
- package/icons/aws/mainframe-modernization.js +1 -21
- package/icons/aws/managed-blockchain.js +1 -21
- package/icons/aws/managed-grafana.js +1 -21
- package/icons/aws/managed-service-for-prometheus.js +1 -21
- package/icons/aws/managed-services.js +1 -21
- package/icons/aws/managed-streaming-for-apache-kafka.js +1 -21
- package/icons/aws/managed-workflows-for-apache-airflow.js +1 -21
- package/icons/aws/management-console.js +1 -21
- package/icons/aws/marketplace-dark.js +1 -15
- package/icons/aws/marketplace-light.js +1 -15
- package/icons/aws/memory-db-for-redis.js +1 -21
- package/icons/aws/migration-evaluator.js +1 -21
- package/icons/aws/migration-hub.js +1 -21
- package/icons/aws/monitron.js +1 -21
- package/icons/aws/mq.js +1 -21
- package/icons/aws/neptune.js +1 -21
- package/icons/aws/network-firewall.js +1 -21
- package/icons/aws/neuron.js +1 -21
- package/icons/aws/nice-dcv.js +1 -21
- package/icons/aws/nice-engin-frame.js +1 -21
- package/icons/aws/nimble-studio.js +1 -21
- package/icons/aws/nitro-enclaves.js +1 -21
- package/icons/aws/omics.js +1 -21
- package/icons/aws/open-3d-engine.js +1 -21
- package/icons/aws/open-search-service.js +1 -21
- package/icons/aws/ops-works.js +1 -21
- package/icons/aws/organizations.js +1 -21
- package/icons/aws/outposts-family.js +1 -21
- package/icons/aws/outposts-rack.js +1 -21
- package/icons/aws/outposts-servers.js +1 -21
- package/icons/aws/panorama.js +1 -21
- package/icons/aws/parallel-cluster.js +1 -21
- package/icons/aws/personal-health-dashboard.js +1 -21
- package/icons/aws/personalize.js +1 -21
- package/icons/aws/pinpoint-apis.js +1 -21
- package/icons/aws/pinpoint.js +1 -21
- package/icons/aws/polly.js +1 -21
- package/icons/aws/private-5g.js +1 -21
- package/icons/aws/private-certificate-authority.js +1 -28
- package/icons/aws/private-link.js +1 -21
- package/icons/aws/professional-services.js +1 -21
- package/icons/aws/proton.js +1 -21
- package/icons/aws/quantum-ledger-database.js +1 -21
- package/icons/aws/quick-sight.js +1 -21
- package/icons/aws/rds-on-vmware.js +1 -21
- package/icons/aws/rds.js +1 -21
- package/icons/aws/re-post.js +1 -21
- package/icons/aws/red-hat-open-shift-service-on-aws.js +1 -21
- package/icons/aws/redshift.js +1 -21
- package/icons/aws/rekognition.js +1 -21
- package/icons/aws/reserved-instance-reporting.js +1 -21
- package/icons/aws/resilience-hub.js +1 -21
- package/icons/aws/resource-access-manager.js +1 -21
- package/icons/aws/resource-explorer.js +1 -21
- package/icons/aws/robo-maker.js +1 -21
- package/icons/aws/route-53.js +1 -21
- package/icons/aws/s3-on-outposts.js +1 -21
- package/icons/aws/sage-maker-ground-truth.js +1 -21
- package/icons/aws/sage-maker-studio-lab.js +1 -21
- package/icons/aws/sage-maker.js +1 -21
- package/icons/aws/savings-plans.js +1 -21
- package/icons/aws/secrets-manager.js +1 -21
- package/icons/aws/security-hub.js +1 -21
- package/icons/aws/security-lake.js +1 -21
- package/icons/aws/server-migration-service.js +1 -21
- package/icons/aws/serverless-application-repository.js +1 -21
- package/icons/aws/service-catalog.js +1 -21
- package/icons/aws/service-management-connector.js +1 -28
- package/icons/aws/shield.js +1 -21
- package/icons/aws/signer.js +1 -21
- package/icons/aws/sim-space-weaver.js +1 -21
- package/icons/aws/simple-email-service.js +1 -21
- package/icons/aws/simple-notification-service.js +1 -21
- package/icons/aws/simple-queue-service.js +1 -21
- package/icons/aws/simple-storage-service-glacier.js +1 -21
- package/icons/aws/simple-storage-service.js +1 -21
- package/icons/aws/site-to-site-vpn.js +1 -21
- package/icons/aws/snowball-edge.js +1 -21
- package/icons/aws/snowball.js +1 -21
- package/icons/aws/snowcone.js +1 -21
- package/icons/aws/snowmobile.js +1 -21
- package/icons/aws/step-functions.js +1 -21
- package/icons/aws/storage-gateway.js +1 -21
- package/icons/aws/sumerian.js +1 -21
- package/icons/aws/supply-chain.js +1 -21
- package/icons/aws/support.js +1 -21
- package/icons/aws/systems-manager.js +1 -21
- package/icons/aws/tensor-flow-on-aws.js +1 -21
- package/icons/aws/textract.js +1 -21
- package/icons/aws/thinkbox-deadline.js +1 -21
- package/icons/aws/thinkbox-frost.js +1 -21
- package/icons/aws/thinkbox-krakatoa.js +1 -21
- package/icons/aws/thinkbox-sequoia.js +1 -21
- package/icons/aws/thinkbox-stoke.js +1 -21
- package/icons/aws/thinkbox-xmesh.js +1 -21
- package/icons/aws/timestream.js +1 -21
- package/icons/aws/tools-and-sdks.js +1 -21
- package/icons/aws/torch-serve.js +1 -21
- package/icons/aws/training-certification.js +1 -21
- package/icons/aws/transcribe.js +1 -21
- package/icons/aws/transfer-family.js +1 -21
- package/icons/aws/transit-gateway.js +1 -21
- package/icons/aws/translate.js +1 -21
- package/icons/aws/trusted-advisor.js +1 -21
- package/icons/aws/verified-access.js +1 -21
- package/icons/aws/verified-permissions.js +1 -21
- package/icons/aws/virtual-private-cloud.js +1 -21
- package/icons/aws/vmware-cloud-on-aws.js +1 -21
- package/icons/aws/vpc-lattice.js +1 -21
- package/icons/aws/waf.js +1 -21
- package/icons/aws/wavelength.js +1 -21
- package/icons/aws/well-architected-tool.js +1 -21
- package/icons/aws/wickr.js +1 -21
- package/icons/aws/work-docs-sdk.js +1 -21
- package/icons/aws/work-docs.js +1 -21
- package/icons/aws/work-link.js +1 -21
- package/icons/aws/work-mail.js +1 -21
- package/icons/aws/work-spaces-family.js +1 -21
- package/icons/aws/x-ray.js +1 -21
- package/icons/azure/abs-member.js +1 -32
- package/icons/azure/active-directory-connect-health.js +1 -132
- package/icons/azure/activity-log.js +1 -33
- package/icons/azure/administrative-units.js +1 -102
- package/icons/azure/advisor.js +1 -44
- package/icons/azure/ai-studio.js +1 -105
- package/icons/azure/aks-automatic.js +1 -105
- package/icons/azure/aks-istio.js +1 -96
- package/icons/azure/alerts.js +1 -29
- package/icons/azure/all-resources.js +1 -21
- package/icons/azure/analysis-services.js +1 -67
- package/icons/azure/anomaly-detector.js +1 -44
- package/icons/azure/api-center.js +1 -42
- package/icons/azure/api-connections.js +1 -66
- package/icons/azure/api-management-services.js +1 -51
- package/icons/azure/api-proxy.js +1 -32
- package/icons/azure/app-compliance-automation.js +1 -82
- package/icons/azure/app-configuration.js +1 -56
- package/icons/azure/app-registrations.js +1 -39
- package/icons/azure/app-service-certificates.js +1 -42
- package/icons/azure/app-service-domains.js +1 -23
- package/icons/azure/app-service-environments.js +1 -36
- package/icons/azure/app-service-plans.js +1 -66
- package/icons/azure/app-services.js +1 -104
- package/icons/azure/app-space-component.js +1 -39
- package/icons/azure/app-space.js +1 -37
- package/icons/azure/applens.js +1 -45
- package/icons/azure/application-gateway-containers.js +1 -134
- package/icons/azure/application-gateways.js +1 -92
- package/icons/azure/application-group.js +1 -21
- package/icons/azure/application-insights.js +1 -57
- package/icons/azure/application-security-groups.js +1 -54
- package/icons/azure/aquila.js +1 -95
- package/icons/azure/arc-data-services.js +1 -60
- package/icons/azure/arc-kubernetes.js +1 -139
- package/icons/azure/arc-machines.js +1 -40
- package/icons/azure/arc-postgre-sql.js +1 -73
- package/icons/azure/arc-sql-managed-instance.js +1 -75
- package/icons/azure/arc-sql-server.js +1 -40
- package/icons/azure/atm-multistack.js +1 -59
- package/icons/azure/auto-scale.js +1 -43
- package/icons/azure/automanaged-vm.js +1 -65
- package/icons/azure/automation-accounts.js +1 -62
- package/icons/azure/availability-sets.js +1 -70
- package/icons/azure/avs-vm.js +1 -32
- package/icons/azure/azure-a.js +1 -46
- package/icons/azure/azure-ad-b2c.js +1 -129
- package/icons/azure/azure-api-for-fhir.js +1 -33
- package/icons/azure/azure-applied-ai-services.js +1 -81
- package/icons/azure/azure-arc.js +1 -75
- package/icons/azure/azure-attestation.js +1 -35
- package/icons/azure/azure-backup-center.js +1 -63
- package/icons/azure/azure-blockchain-service.js +1 -51
- package/icons/azure/azure-center-for-sap.js +1 -37
- package/icons/azure/azure-chaos-studio.js +1 -75
- package/icons/azure/azure-cloud-shell.js +1 -39
- package/icons/azure/azure-communication-services.js +1 -63
- package/icons/azure/azure-communications-gateway.js +1 -43
- package/icons/azure/azure-compute-galleries.js +1 -35
- package/icons/azure/azure-cosmos-db.js +1 -47
- package/icons/azure/azure-data-catalog.js +1 -91
- package/icons/azure/azure-data-explorer-clusters.js +1 -126
- package/icons/azure/azure-database-maria-db-server.js +1 -56
- package/icons/azure/azure-database-migration-services.js +1 -83
- package/icons/azure/azure-database-my-sql-server.js +1 -56
- package/icons/azure/azure-database-postgre-sql-server-group.js +1 -65
- package/icons/azure/azure-database-postgre-sql-server.js +1 -57
- package/icons/azure/azure-databox-gateway.js +1 -39
- package/icons/azure/azure-databricks.js +1 -12
- package/icons/azure/azure-deployment-environments.js +1 -65
- package/icons/azure/azure-dev-ops.js +1 -21
- package/icons/azure/azure-dev-tunnels.js +1 -48
- package/icons/azure/azure-edge-hardware-center.js +1 -69
- package/icons/azure/azure-experimentation-studio.js +1 -88
- package/icons/azure/azure-fileshares.js +1 -46
- package/icons/azure/azure-firewall-manager.js +1 -60
- package/icons/azure/azure-firewall-policy.js +1 -37
- package/icons/azure/azure-hcp-cache.js +1 -23
- package/icons/azure/azure-hpc-workbenches.js +1 -112
- package/icons/azure/azure-hybrid-center.js +1 -33
- package/icons/azure/azure-information-protection.js +1 -95
- package/icons/azure/azure-io-t-operations.js +1 -57
- package/icons/azure/azure-lighthouse.js +1 -35
- package/icons/azure/azure-load-testing.js +1 -78
- package/icons/azure/azure-managed-grafana.js +1 -19
- package/icons/azure/azure-maps-accounts.js +1 -16
- package/icons/azure/azure-media-service.js +1 -107
- package/icons/azure/azure-migrate.js +1 -57
- package/icons/azure/azure-monitor-dashboard.js +1 -58
- package/icons/azure/azure-monitor-pipeline.js +1 -101
- package/icons/azure/azure-monitors-for-sap-solutions.js +1 -71
- package/icons/azure/azure-net-app-files.js +1 -36
- package/icons/azure/azure-network-function-manager-functions.js +1 -94
- package/icons/azure/azure-network-function-manager.js +1 -98
- package/icons/azure/azure-object-understanding.js +1 -50
- package/icons/azure/azure-open-ai.js +1 -29
- package/icons/azure/azure-operator-5g-core.js +1 -86
- package/icons/azure/azure-operator-insights.js +1 -42
- package/icons/azure/azure-operator-nexus.js +1 -87
- package/icons/azure/azure-operator-service-manager.js +1 -41
- package/icons/azure/azure-orbital.js +1 -115
- package/icons/azure/azure-programmable-connectivity.js +1 -168
- package/icons/azure/azure-purview-accounts.js +1 -100
- package/icons/azure/azure-quotas.js +1 -54
- package/icons/azure/azure-red-hat-open-shift.js +1 -44
- package/icons/azure/azure-sentinel.js +1 -37
- package/icons/azure/azure-service-bus.js +1 -77
- package/icons/azure/azure-sphere.js +1 -68
- package/icons/azure/azure-spring-apps.js +1 -111
- package/icons/azure/azure-sql-edge.js +1 -157
- package/icons/azure/azure-sql-server-stretch-databases.js +1 -82
- package/icons/azure/azure-sql-vm.js +1 -37
- package/icons/azure/azure-sql.js +1 -27
- package/icons/azure/azure-stack-edge.js +1 -44
- package/icons/azure/azure-stack-hci-sizer.js +1 -90
- package/icons/azure/azure-stack.js +1 -54
- package/icons/azure/azure-storage-mover.js +1 -120
- package/icons/azure/azure-support-center-blue.js +1 -53
- package/icons/azure/azure-sustainability.js +1 -75
- package/icons/azure/azure-synapse-analytics.js +1 -60
- package/icons/azure/azure-token-service.js +1 -46
- package/icons/azure/azure-video-indexer.js +1 -82
- package/icons/azure/azure-virtual-desktop.js +1 -19
- package/icons/azure/azure-vmware-solution.js +1 -57
- package/icons/azure/azure-workbooks.js +1 -78
- package/icons/azure/azurite.js +1 -34
- package/icons/azure/backlog.js +1 -48
- package/icons/azure/backup-vault.js +1 -71
- package/icons/azure/bare-metal-infrastructure.js +1 -63
- package/icons/azure/bastions.js +1 -71
- package/icons/azure/batch-accounts.js +1 -52
- package/icons/azure/batch-ai.js +1 -56
- package/icons/azure/biz-talk.js +1 -39
- package/icons/azure/blob-block.js +1 -17
- package/icons/azure/blob-page.js +1 -43
- package/icons/azure/blockchain-applications.js +1 -43
- package/icons/azure/blueprints.js +1 -56
- package/icons/azure/bonsai.js +1 -63
- package/icons/azure/bot-services.js +1 -43
- package/icons/azure/branch.js +1 -43
- package/icons/azure/browser.js +1 -16
- package/icons/azure/bug.js +1 -26
- package/icons/azure/builds.js +1 -48
- package/icons/azure/business-process-tracking.js +1 -28
- package/icons/azure/cache-redis.js +1 -72
- package/icons/azure/cache.js +1 -113
- package/icons/azure/capacity-reservation-groups.js +1 -47
- package/icons/azure/capacity.js +1 -74
- package/icons/azure/cdn-profiles.js +1 -32
- package/icons/azure/central-service-instance-for-sap.js +1 -55
- package/icons/azure/ceres.js +1 -58
- package/icons/azure/change-analysis.js +1 -93
- package/icons/azure/client-apps.js +1 -21
- package/icons/azure/cloud-services-classic.js +1 -48
- package/icons/azure/cloud-services-extended-support.js +1 -78
- package/icons/azure/cloud-test.js +1 -58
- package/icons/azure/code-optimization.js +1 -146
- package/icons/azure/code.js +1 -94
- package/icons/azure/cognitive-search.js +1 -26
- package/icons/azure/cognitive-services-decisions.js +1 -139
- package/icons/azure/cognitive-services.js +1 -42
- package/icons/azure/collaborative-service.js +1 -91
- package/icons/azure/commit.js +1 -30
- package/icons/azure/community-images.js +1 -68
- package/icons/azure/compliance-center.js +1 -70
- package/icons/azure/compliance.js +1 -35
- package/icons/azure/compute-fleet.js +1 -102
- package/icons/azure/computer-vision.js +1 -35
- package/icons/azure/conditional-access.js +1 -45
- package/icons/azure/confidential-ledgers.js +1 -96
- package/icons/azure/connected-cache.js +1 -99
- package/icons/azure/connected-vehicle-platform.js +1 -111
- package/icons/azure/connections.js +1 -54
- package/icons/azure/consortium.js +1 -63
- package/icons/azure/container-apps-environments.js +1 -66
- package/icons/azure/container-instances.js +1 -37
- package/icons/azure/container-registries.js +1 -68
- package/icons/azure/container-services-deprecated.js +1 -142
- package/icons/azure/content-moderators.js +1 -63
- package/icons/azure/content-safety.js +1 -88
- package/icons/azure/controls-horizontal.js +1 -135
- package/icons/azure/controls.js +1 -33
- package/icons/azure/cost-alerts.js +1 -28
- package/icons/azure/cost-analysis.js +1 -35
- package/icons/azure/cost-budgets.js +1 -30
- package/icons/azure/cost-export.js +1 -36
- package/icons/azure/cost-management-and-billing.js +1 -41
- package/icons/azure/cost-management.js +1 -46
- package/icons/azure/counter.js +1 -33
- package/icons/azure/cubes.js +1 -16
- package/icons/azure/custom-ip-prefix.js +1 -51
- package/icons/azure/custom-vision.js +1 -59
- package/icons/azure/customer-lockbox-for-microsoft-azure.js +1 -64
- package/icons/azure/dashboard-hub.js +1 -94
- package/icons/azure/dashboard.js +1 -42
- package/icons/azure/data-box.js +1 -33
- package/icons/azure/data-collection-rules.js +1 -64
- package/icons/azure/data-factories.js +1 -42
- package/icons/azure/data-lake-analytics.js +1 -43
- package/icons/azure/data-lake-storage-gen1.js +1 -49
- package/icons/azure/data-lake-store-gen1.js +1 -49
- package/icons/azure/data-share-invitations.js +1 -34
- package/icons/azure/data-shares.js +1 -67
- package/icons/azure/database-instance-for-sap.js +1 -80
- package/icons/azure/ddo-s-protection-plans.js +1 -47
- package/icons/azure/dedicated-hsm.js +1 -49
- package/icons/azure/defender-cm-local-manager.js +1 -175
- package/icons/azure/defender-dcs-controller.js +1 -99
- package/icons/azure/defender-distributer-control-system.js +1 -67
- package/icons/azure/defender-engineering-station.js +1 -115
- package/icons/azure/defender-external-management.js +1 -132
- package/icons/azure/defender-freezer-monitor.js +1 -217
- package/icons/azure/defender-historian.js +1 -53
- package/icons/azure/defender-hmi.js +1 -54
- package/icons/azure/defender-industrial-packaging-system.js +1 -97
- package/icons/azure/defender-industrial-printer.js +1 -51
- package/icons/azure/defender-industrial-robot.js +1 -165
- package/icons/azure/defender-industrial-scale-system.js +1 -80
- package/icons/azure/defender-marquee.js +1 -68
- package/icons/azure/defender-meter.js +1 -156
- package/icons/azure/defender-plc.js +1 -66
- package/icons/azure/defender-pneumatic-device.js +1 -72
- package/icons/azure/defender-programable-board.js +1 -126
- package/icons/azure/defender-relay.js +1 -67
- package/icons/azure/defender-robot-controller.js +1 -123
- package/icons/azure/defender-rtu.js +1 -23
- package/icons/azure/defender-sensor.js +1 -55
- package/icons/azure/defender-slot.js +1 -31
- package/icons/azure/defender-web-guiding-system.js +1 -266
- package/icons/azure/detonation.js +1 -41
- package/icons/azure/dev-console.js +1 -30
- package/icons/azure/dev-ops-starter.js +1 -102
- package/icons/azure/dev-test-labs.js +1 -46
- package/icons/azure/device-compliance.js +1 -62
- package/icons/azure/device-configuration.js +1 -66
- package/icons/azure/device-enrollment.js +1 -69
- package/icons/azure/device-provisioning-services.js +1 -54
- package/icons/azure/device-security-apple.js +1 -54
- package/icons/azure/device-security-google.js +1 -54
- package/icons/azure/device-security-windows.js +1 -54
- package/icons/azure/device-update-io-t-hub.js +1 -46
- package/icons/azure/devices.js +1 -29
- package/icons/azure/diagnostics-settings.js +1 -51
- package/icons/azure/digital-twins.js +1 -73
- package/icons/azure/disk-encryption-sets.js +1 -63
- package/icons/azure/disk-pool.js +1 -92
- package/icons/azure/disks-classic.js +1 -74
- package/icons/azure/disks-snapshots.js +1 -71
- package/icons/azure/disks.js +1 -63
- package/icons/azure/dns-multistack.js +1 -49
- package/icons/azure/dns-private-resolver.js +1 -50
- package/icons/azure/dns-security-policy.js +1 -90
- package/icons/azure/dns-zones.js +1 -37
- package/icons/azure/download.js +1 -60
- package/icons/azure/e-books.js +1 -42
- package/icons/azure/edge-management.js +1 -64
- package/icons/azure/education.js +1 -42
- package/icons/azure/elastic-job-agents.js +1 -61
- package/icons/azure/elastic-san.js +1 -65
- package/icons/azure/endpoint-analytics.js +1 -83
- package/icons/azure/enterprise-applications.js +1 -66
- package/icons/azure/entra-connect-health.js +1 -132
- package/icons/azure/entra-connect-sync.js +1 -86
- package/icons/azure/entra-connect.js +1 -123
- package/icons/azure/entra-domain-services.js +1 -105
- package/icons/azure/entra-global-secure-access.js +1 -76
- package/icons/azure/entra-id-protection.js +1 -74
- package/icons/azure/entra-identity-custom-roles.js +1 -62
- package/icons/azure/entra-identity-licenses.js +1 -85
- package/icons/azure/entra-identity-risky-signins.js +1 -28
- package/icons/azure/entra-identity-risky-users.js +1 -28
- package/icons/azure/entra-identity-roles-and-administrators.js +1 -53
- package/icons/azure/entra-internet-access.js +1 -105
- package/icons/azure/entra-managed-identities.js +1 -120
- package/icons/azure/entra-private-access.js +1 -104
- package/icons/azure/entra-privleged-identity-management.js +1 -120
- package/icons/azure/entra-verified-id.js +1 -75
- package/icons/azure/error.js +1 -30
- package/icons/azure/event-grid-domains.js +1 -75
- package/icons/azure/event-grid-subscriptions.js +1 -75
- package/icons/azure/event-grid-topics.js +1 -90
- package/icons/azure/event-hub-clusters.js +1 -77
- package/icons/azure/event-hubs.js +1 -64
- package/icons/azure/exchange-access.js +1 -45
- package/icons/azure/exchange-on-premises-access.js +1 -39
- package/icons/azure/express-route-circuits.js +1 -60
- package/icons/azure/express-route-direct.js +1 -61
- package/icons/azure/express-route-traffic-collector.js +1 -97
- package/icons/azure/extended-security-updates.js +1 -44
- package/icons/azure/extensions.js +1 -28
- package/icons/azure/external-identities.js +1 -42
- package/icons/azure/face-apis.js +1 -19
- package/icons/azure/feature-previews.js +1 -21
- package/icons/azure/fhir-service.js +1 -60
- package/icons/azure/fiji.js +1 -42
- package/icons/azure/file.js +1 -29
- package/icons/azure/files.js +1 -45
- package/icons/azure/firewalls.js +1 -32
- package/icons/azure/folder-blank.js +1 -39
- package/icons/azure/folder-website.js +1 -123
- package/icons/azure/form-recognizers.js +1 -48
- package/icons/azure/free-services.js +1 -43
- package/icons/azure/front-door-and-cdn-profiles.js +1 -37
- package/icons/azure/ftp.js +1 -17
- package/icons/azure/function-apps.js +1 -61
- package/icons/azure/gear.js +1 -37
- package/icons/azure/genomics-accounts.js +1 -68
- package/icons/azure/genomics.js +1 -57
- package/icons/azure/globe-error.js +1 -42
- package/icons/azure/globe-success.js +1 -52
- package/icons/azure/globe-warning.js +1 -53
- package/icons/azure/groups.js +1 -42
- package/icons/azure/guide.js +1 -17
- package/icons/azure/hd-insight-clusters.js +1 -71
- package/icons/azure/hdi-aks-cluster.js +1 -60
- package/icons/azure/heart.js +1 -31
- package/icons/azure/help-and-support.js +1 -55
- package/icons/azure/host-groups.js +1 -48
- package/icons/azure/host-pools.js +1 -19
- package/icons/azure/hosts.js +1 -46
- package/icons/azure/ic-m-troubleshooting.js +1 -60
- package/icons/azure/identity-governance.js +1 -52
- package/icons/azure/identity-multi-factor-authentication.js +1 -117
- package/icons/azure/identity-secure-score.js +1 -55
- package/icons/azure/image-definitions.js +1 -38
- package/icons/azure/image-templates.js +1 -43
- package/icons/azure/image-versions.js +1 -38
- package/icons/azure/image.js +1 -31
- package/icons/azure/images.js +1 -37
- package/icons/azure/immersive-readers.js +1 -82
- package/icons/azure/import-export-jobs.js +1 -25
- package/icons/azure/industrial-io-t.js +1 -97
- package/icons/azure/information.js +1 -21
- package/icons/azure/infrastructure-backup.js +1 -89
- package/icons/azure/input-output.js +1 -97
- package/icons/azure/instance-pools.js +1 -87
- package/icons/azure/integration-accounts.js +1 -52
- package/icons/azure/integration-environments.js +1 -94
- package/icons/azure/integration-service-environments.js +1 -90
- package/icons/azure/internet-analyzer-profiles.js +1 -59
- package/icons/azure/intune-app-protection.js +1 -79
- package/icons/azure/intune-for-education.js +1 -79
- package/icons/azure/intune-trends.js +1 -40
- package/icons/azure/intune.js +1 -46
- package/icons/azure/io-t-central-applications.js +1 -20
- package/icons/azure/io-t-edge.js +1 -25
- package/icons/azure/io-t-hub.js +1 -36
- package/icons/azure/ip-address-manager.js +1 -63
- package/icons/azure/ip-groups.js +1 -45
- package/icons/azure/journey-hub.js +1 -30
- package/icons/azure/key-vaults.js +1 -61
- package/icons/azure/keys.js +1 -97
- package/icons/azure/kubernetes-fleet-manager.js +1 -73
- package/icons/azure/kubernetes-services.js +1 -142
- package/icons/azure/lab-accounts.js +1 -69
- package/icons/azure/lab-services.js +1 -46
- package/icons/azure/language-understanding.js +1 -25
- package/icons/azure/language.js +1 -71
- package/icons/azure/launch-portal.js +1 -36
- package/icons/azure/learn.js +1 -61
- package/icons/azure/load-balancer-hub.js +1 -101
- package/icons/azure/load-balancers.js +1 -28
- package/icons/azure/load-test.js +1 -61
- package/icons/azure/load-testing.js +1 -71
- package/icons/azure/local-network-gateways.js +1 -44
- package/icons/azure/location.js +1 -34
- package/icons/azure/log-analytics-query-pack.js +1 -68
- package/icons/azure/log-analytics-workspaces.js +1 -58
- package/icons/azure/log-streaming.js +1 -57
- package/icons/azure/logic-apps-custom-connector.js +1 -76
- package/icons/azure/logic-apps.js +1 -65
- package/icons/azure/machine-learning-studio-classic-web-services.js +1 -49
- package/icons/azure/machine-learning-studio-web-service-plans.js +1 -84
- package/icons/azure/machine-learning-studio-workspaces.js +1 -55
- package/icons/azure/machine-learning.js +1 -29
- package/icons/azure/machines-azure-arc.js +1 -27
- package/icons/azure/maintenance-configuration.js +1 -62
- package/icons/azure/managed-applications-center.js +1 -55
- package/icons/azure/managed-database.js +1 -79
- package/icons/azure/managed-desktop.js +1 -40
- package/icons/azure/managed-dev-ops-pools.js +1 -59
- package/icons/azure/managed-file-shares.js +1 -59
- package/icons/azure/managed-identities.js +1 -66
- package/icons/azure/managed-instance-apache-cassandra.js +1 -100
- package/icons/azure/managed-service-fabric.js +1 -109
- package/icons/azure/management-groups.js +1 -77
- package/icons/azure/management-portal.js +1 -23
- package/icons/azure/marketplace-management.js +1 -47
- package/icons/azure/marketplace.js +1 -38
- package/icons/azure/med-tech-service.js +1 -87
- package/icons/azure/media-file.js +1 -36
- package/icons/azure/media.js +1 -108
- package/icons/azure/mesh-applications.js +1 -47
- package/icons/azure/metrics-advisor.js +1 -58
- package/icons/azure/metrics.js +1 -34
- package/icons/azure/microsoft-defender-easm.js +1 -69
- package/icons/azure/microsoft-defender-for-cloud.js +1 -61
- package/icons/azure/microsoft-defender-for-io-t.js +1 -54
- package/icons/azure/microsoft-dev-box.js +1 -143
- package/icons/azure/mindaro.js +1 -47
- package/icons/azure/mission-landing-zone.js +1 -48
- package/icons/azure/mobile-engagement.js +1 -46
- package/icons/azure/mobile-networks.js +1 -86
- package/icons/azure/mobile.js +1 -28
- package/icons/azure/modular-data-center.js +1 -83
- package/icons/azure/module.js +1 -25
- package/icons/azure/monitor-health-models.js +1 -110
- package/icons/azure/monitor.js +1 -61
- package/icons/azure/multi-tenancy.js +1 -80
- package/icons/azure/multifactor-authentication.js +1 -84
- package/icons/azure/my-customers.js +1 -42
- package/icons/azure/nat.js +1 -56
- package/icons/azure/network-interfaces.js +1 -52
- package/icons/azure/network-managers.js +1 -55
- package/icons/azure/network-security-groups.js +1 -53
- package/icons/azure/network-security-perimeters.js +1 -113
- package/icons/azure/network-watcher.js +1 -55
- package/icons/azure/notification-hub-namespaces.js +1 -33
- package/icons/azure/notification-hubs.js +1 -22
- package/icons/azure/offers.js +1 -35
- package/icons/azure/on-premises-data-gateways.js +1 -44
- package/icons/azure/open-supply-chain-platform.js +1 -111
- package/icons/azure/operation-log-classic.js +1 -44
- package/icons/azure/oracle-database.js +1 -55
- package/icons/azure/os-images-classic.js +1 -60
- package/icons/azure/osconfig.js +1 -82
- package/icons/azure/outbound-connection.js +1 -24
- package/icons/azure/partner-namespace.js +1 -97
- package/icons/azure/partner-registration.js +1 -117
- package/icons/azure/partner-topic.js +1 -93
- package/icons/azure/peering-service.js +1 -27
- package/icons/azure/peerings.js +1 -44
- package/icons/azure/personalizers.js +1 -99
- package/icons/azure/plans.js +1 -40
- package/icons/azure/policy.js +1 -34
- package/icons/azure/power-bi-embedded.js +1 -69
- package/icons/azure/power-platform.js +1 -163
- package/icons/azure/power-up.js +1 -42
- package/icons/azure/power.js +1 -31
- package/icons/azure/powershell.js +1 -30
- package/icons/azure/preview-features.js +1 -72
- package/icons/azure/private-endpoints.js +1 -80
- package/icons/azure/private-link-service.js +1 -83
- package/icons/azure/private-link-services.js +1 -72
- package/icons/azure/private-link.js +1 -94
- package/icons/azure/process-explorer.js +1 -23
- package/icons/azure/production-ready-database.js +1 -70
- package/icons/azure/proximity-placement-groups.js +1 -71
- package/icons/azure/public-ip-addresses-classic.js +1 -36
- package/icons/azure/public-ip-addresses.js +1 -19
- package/icons/azure/public-ip-prefixes.js +1 -85
- package/icons/azure/qn-a-makers.js +1 -61
- package/icons/azure/quickstart-center.js +1 -76
- package/icons/azure/recent.js +1 -57
- package/icons/azure/recovery-services-vaults.js +1 -67
- package/icons/azure/region-management.js +1 -42
- package/icons/azure/relays.js +1 -45
- package/icons/azure/remote-rendering.js +1 -71
- package/icons/azure/reservations.js +1 -37
- package/icons/azure/reserved-capacity.js +1 -45
- package/icons/azure/reserved-ip-addresses-classic.js +1 -38
- package/icons/azure/resource-explorer.js +1 -33
- package/icons/azure/resource-graph-explorer.js +1 -58
- package/icons/azure/resource-group-list.js +1 -48
- package/icons/azure/resource-groups.js +1 -40
- package/icons/azure/resource-guard.js +1 -46
- package/icons/azure/resource-linked.js +1 -51
- package/icons/azure/resource-management-private-link.js +1 -61
- package/icons/azure/resource-mover.js +1 -20
- package/icons/azure/resources-provider.js +1 -27
- package/icons/azure/restore-points-collections.js +1 -73
- package/icons/azure/restore-points.js +1 -72
- package/icons/azure/route-filters.js +1 -39
- package/icons/azure/route-tables.js +1 -62
- package/icons/azure/rtos.js +1 -64
- package/icons/azure/savings-plans.js +1 -75
- package/icons/azure/scheduler-job-collections.js +1 -73
- package/icons/azure/scheduler.js +1 -75
- package/icons/azure/scvmm-management-servers.js +1 -79
- package/icons/azure/search-grid.js +1 -48
- package/icons/azure/search.js +1 -28
- package/icons/azure/security-baselines.js +1 -55
- package/icons/azure/security.js +1 -22
- package/icons/azure/send-grid-accounts.js +1 -42
- package/icons/azure/server-farm.js +1 -65
- package/icons/azure/serverless-search.js +1 -65
- package/icons/azure/service-catalog-mad.js +1 -65
- package/icons/azure/service-endpoint-policies.js +1 -75
- package/icons/azure/service-fabric-clusters.js +1 -97
- package/icons/azure/service-health.js +1 -45
- package/icons/azure/service-providers.js +1 -71
- package/icons/azure/shared-image-galleries.js +1 -32
- package/icons/azure/signal-r.js +1 -22
- package/icons/azure/software-as-a-service.js +1 -65
- package/icons/azure/software-updates.js +1 -22
- package/icons/azure/solutions.js +1 -58
- package/icons/azure/sonic-dash.js +1 -95
- package/icons/azure/spatial-anchor-accounts.js +1 -88
- package/icons/azure/speech-services.js +1 -43
- package/icons/azure/spot-vm.js +1 -40
- package/icons/azure/spot-vmss.js +1 -77
- package/icons/azure/sql-data-warehouses.js +1 -82
- package/icons/azure/sql-database.js +1 -63
- package/icons/azure/sql-elastic-pools.js +1 -89
- package/icons/azure/sql-managed-instance.js +1 -73
- package/icons/azure/sql-server-registries.js +1 -75
- package/icons/azure/sql-server.js +1 -46
- package/icons/azure/ssd.js +1 -36
- package/icons/azure/ssh-keys.js +1 -42
- package/icons/azure/ssis-lift-and-shift-ir.js +1 -72
- package/icons/azure/stack-hci-premium.js +1 -144
- package/icons/azure/static-apps.js +1 -29
- package/icons/azure/stor-simple-data-managers.js +1 -57
- package/icons/azure/stor-simple-device-managers.js +1 -38
- package/icons/azure/storage-accounts-classic.js +1 -53
- package/icons/azure/storage-accounts.js +1 -35
- package/icons/azure/storage-actions.js +1 -88
- package/icons/azure/storage-azure-files.js +1 -47
- package/icons/azure/storage-container.js +1 -35
- package/icons/azure/storage-explorer.js +1 -38
- package/icons/azure/storage-functions.js +1 -57
- package/icons/azure/storage-queue.js +1 -24
- package/icons/azure/storage-sync-services.js +1 -74
- package/icons/azure/stream-analytics-jobs.js +1 -53
- package/icons/azure/subnet.js +1 -43
- package/icons/azure/subscriptions.js +1 -41
- package/icons/azure/system-topic.js +1 -182
- package/icons/azure/table.js +1 -23
- package/icons/azure/tag.js +1 -28
- package/icons/azure/tags.js +1 -46
- package/icons/azure/targets-management.js +1 -54
- package/icons/azure/template-specs.js +1 -67
- package/icons/azure/templates.js +1 -33
- package/icons/azure/tenant-properties.js +1 -90
- package/icons/azure/tenant-status.js +1 -40
- package/icons/azure/test-base.js +1 -56
- package/icons/azure/tfs-vc-repository.js +1 -97
- package/icons/azure/time-series-data-sets.js +1 -63
- package/icons/azure/time-series-insights-access-policies.js +1 -42
- package/icons/azure/time-series-insights-environments.js +1 -39
- package/icons/azure/time-series-insights-event-sources.js +1 -57
- package/icons/azure/toolbox.js +1 -26
- package/icons/azure/traffic-manager-profiles.js +1 -47
- package/icons/azure/translator-text.js +1 -75
- package/icons/azure/troubleshoot.js +1 -38
- package/icons/azure/universal-print.js +1 -74
- package/icons/azure/update-management-center.js +1 -135
- package/icons/azure/updates.js +1 -47
- package/icons/azure/user-privacy.js +1 -55
- package/icons/azure/user-settings.js +1 -68
- package/icons/azure/user-subscriptions.js +1 -104
- package/icons/azure/users.js +1 -26
- package/icons/azure/verifiable-credentials.js +1 -99
- package/icons/azure/verification-as-a-service.js +1 -84
- package/icons/azure/versions.js +1 -24
- package/icons/azure/video-analyzers.js +1 -42
- package/icons/azure/virtual-clusters.js +1 -99
- package/icons/azure/virtual-enclaves.js +1 -40
- package/icons/azure/virtual-instance-for-sap.js +1 -81
- package/icons/azure/virtual-machine.js +1 -52
- package/icons/azure/virtual-machines-classic.js +1 -53
- package/icons/azure/virtual-network-gateways.js +1 -56
- package/icons/azure/virtual-networks-classic.js +1 -86
- package/icons/azure/virtual-networks.js +1 -86
- package/icons/azure/virtual-router.js +1 -29
- package/icons/azure/virtual-visits-builder.js +1 -81
- package/icons/azure/virtual-wan-hub.js +1 -72
- package/icons/azure/virtual-wans.js +1 -60
- package/icons/azure/vm-app-definitions.js +1 -66
- package/icons/azure/vm-app-versions.js +1 -91
- package/icons/azure/vm-image-version.js +1 -103
- package/icons/azure/vm-images-classic.js +1 -60
- package/icons/azure/vm-scale-sets.js +1 -60
- package/icons/azure/wac-installer.js +1 -121
- package/icons/azure/wac.js +1 -56
- package/icons/azure/web-app-database.js +1 -177
- package/icons/azure/web-application-firewall-policies-waf.js +1 -97
- package/icons/azure/web-jobs.js +1 -119
- package/icons/azure/web-slots.js +1 -30
- package/icons/azure/web-test.js +1 -122
- package/icons/azure/website-power.js +1 -90
- package/icons/azure/website-staging.js +1 -24
- package/icons/azure/windows-notification-services.js +1 -78
- package/icons/azure/windows10-core-services.js +1 -61
- package/icons/azure/workbooks.js +1 -38
- package/icons/azure/worker-container-app.js +1 -91
- package/icons/azure/workflow.js +1 -47
- package/icons/azure/workspace-gateway.js +1 -86
- package/icons/azure/workspaces.js +1 -23
- package/icons/gcp/access-context-manager.js +1 -17
- package/icons/gcp/administration.js +1 -46
- package/icons/gcp/advanced-agent-modeling.js +1 -31
- package/icons/gcp/advanced-solutions-lab.js +1 -84
- package/icons/gcp/agent-assist.js +1 -12
- package/icons/gcp/ai-hub.js +1 -23
- package/icons/gcp/ai-platform-unified.js +1 -40
- package/icons/gcp/ai-platform.js +1 -23
- package/icons/gcp/analytics-hub.js +1 -28
- package/icons/gcp/anthos-config-management.js +1 -28
- package/icons/gcp/anthos-service-mesh.js +1 -13
- package/icons/gcp/anthos.js +1 -11
- package/icons/gcp/api-analytics.js +1 -26
- package/icons/gcp/api-monetization.js +1 -23
- package/icons/gcp/api.js +1 -29
- package/icons/gcp/apigee-api-platform.js +1 -35
- package/icons/gcp/apigee-sense.js +1 -28
- package/icons/gcp/app-engine.js +1 -39
- package/icons/gcp/artifact-registry.js +1 -33
- package/icons/gcp/asset-inventory.js +1 -19
- package/icons/gcp/assured-workloads.js +1 -38
- package/icons/gcp/auto-ml-natural-language.js +1 -9
- package/icons/gcp/auto-ml-tables.js +1 -19
- package/icons/gcp/auto-ml-translation.js +1 -25
- package/icons/gcp/auto-ml-video-intelligence.js +1 -25
- package/icons/gcp/auto-ml-vision.js +1 -18
- package/icons/gcp/auto-ml.js +1 -14
- package/icons/gcp/bare-metal-solutions.js +1 -10
- package/icons/gcp/batch.js +1 -12
- package/icons/gcp/beyondcorp.js +1 -13
- package/icons/gcp/big-query.js +1 -28
- package/icons/gcp/bigtable.js +1 -116
- package/icons/gcp/billing.js +1 -34
- package/icons/gcp/binary-authorization.js +1 -22
- package/icons/gcp/catalog.js +1 -29
- package/icons/gcp/certificate-authority-service.js +1 -33
- package/icons/gcp/certificate-manager.js +1 -24
- package/icons/gcp/cloud-api-gateway.js +1 -13
- package/icons/gcp/cloud-apis.js +1 -18
- package/icons/gcp/cloud-armor.js +1 -27
- package/icons/gcp/cloud-asset-inventory.js +1 -10
- package/icons/gcp/cloud-audit-logs.js +1 -60
- package/icons/gcp/cloud-build.js +1 -19
- package/icons/gcp/cloud-cdn.js +1 -22
- package/icons/gcp/cloud-code.js +1 -16
- package/icons/gcp/cloud-composer.js +1 -19
- package/icons/gcp/cloud-data-fusion.js +1 -15
- package/icons/gcp/cloud-deploy.js +1 -10
- package/icons/gcp/cloud-deployment-manager.js +1 -24
- package/icons/gcp/cloud-dns.js +1 -21
- package/icons/gcp/cloud-domains.js +1 -26
- package/icons/gcp/cloud-ekm.js +1 -13
- package/icons/gcp/cloud-endpoints.js +1 -26
- package/icons/gcp/cloud-external-ip-addresses.js +1 -21
- package/icons/gcp/cloud-firewall-rules.js +1 -15
- package/icons/gcp/cloud-for-marketing.js +1 -13
- package/icons/gcp/cloud-functions.js +1 -45
- package/icons/gcp/cloud-generic.js +1 -13
- package/icons/gcp/cloud-gpu.js +1 -18
- package/icons/gcp/cloud-healthcare-api.js +1 -65
- package/icons/gcp/cloud-healthcare-marketplace.js +1 -10
- package/icons/gcp/cloud-hsm.js +1 -43
- package/icons/gcp/cloud-ids.js +1 -42
- package/icons/gcp/cloud-inference-api.js +1 -27
- package/icons/gcp/cloud-interconnect.js +1 -15
- package/icons/gcp/cloud-jobs-api.js +1 -37
- package/icons/gcp/cloud-load-balancing.js +1 -20
- package/icons/gcp/cloud-logging.js +1 -35
- package/icons/gcp/cloud-media-edge.js +1 -23
- package/icons/gcp/cloud-monitoring.js +1 -26
- package/icons/gcp/cloud-nat.js +1 -31
- package/icons/gcp/cloud-natural-language-api.js +1 -40
- package/icons/gcp/cloud-network.js +1 -23
- package/icons/gcp/cloud-ops.js +1 -32
- package/icons/gcp/cloud-optimization-ai-fleet-routing-api.js +1 -34
- package/icons/gcp/cloud-optimization-ai.js +1 -28
- package/icons/gcp/cloud-router.js +1 -13
- package/icons/gcp/cloud-routes.js +1 -18
- package/icons/gcp/cloud-run-for-anthos.js +1 -21
- package/icons/gcp/cloud-run.js +1 -13
- package/icons/gcp/cloud-scheduler.js +1 -49
- package/icons/gcp/cloud-security-scanner.js +1 -21
- package/icons/gcp/cloud-shell.js +1 -16
- package/icons/gcp/cloud-spanner.js +1 -42
- package/icons/gcp/cloud-sql.js +1 -16
- package/icons/gcp/cloud-storage.js +1 -22
- package/icons/gcp/cloud-tasks.js +1 -101
- package/icons/gcp/cloud-test-lab.js +1 -39
- package/icons/gcp/cloud-tpu.js +1 -141
- package/icons/gcp/cloud-translation-api.js +1 -16
- package/icons/gcp/cloud-vision-api.js +1 -40
- package/icons/gcp/cloud-vpn.js +1 -23
- package/icons/gcp/compute-engine.js +1 -23
- package/icons/gcp/configuration-management.js +1 -22
- package/icons/gcp/connectivity-test.js +1 -6
- package/icons/gcp/connectors.js +1 -13
- package/icons/gcp/contact-center-ai.js +1 -6
- package/icons/gcp/container-optimized-os.js +1 -13
- package/icons/gcp/container-registry.js +1 -118
- package/icons/gcp/data-catalog.js +1 -25
- package/icons/gcp/data-labeling.js +1 -31
- package/icons/gcp/data-layers.js +1 -11
- package/icons/gcp/data-loss-prevention-api.js +1 -60
- package/icons/gcp/data-qn-a.js +1 -24
- package/icons/gcp/data-studio.js +1 -28
- package/icons/gcp/data-transfer.js +1 -17
- package/icons/gcp/database-migration-service.js +1 -24
- package/icons/gcp/dataflow.js +1 -50
- package/icons/gcp/datalab.js +1 -13
- package/icons/gcp/dataplex.js +1 -15
- package/icons/gcp/datapol.js +1 -70
- package/icons/gcp/dataprep.js +1 -25
- package/icons/gcp/dataproc-metastore.js +1 -12
- package/icons/gcp/dataproc.js +1 -43
- package/icons/gcp/datashare.js +1 -37
- package/icons/gcp/datastore.js +1 -39
- package/icons/gcp/datastream.js +1 -35
- package/icons/gcp/debugger.js +1 -31
- package/icons/gcp/developer-portal.js +1 -24
- package/icons/gcp/dialogflow-cx.js +1 -28
- package/icons/gcp/dialogflow-insights.js +1 -33
- package/icons/gcp/dialogflow.js +1 -16
- package/icons/gcp/document-ai.js +1 -27
- package/icons/gcp/early-access-center.js +1 -12
- package/icons/gcp/error-reporting.js +1 -42
- package/icons/gcp/eventarc.js +1 -24
- package/icons/gcp/filestore.js +1 -22
- package/icons/gcp/financial-services-marketplace.js +1 -21
- package/icons/gcp/firestore.js +1 -30
- package/icons/gcp/fleet-engine.js +1 -10
- package/icons/gcp/free-trial.js +1 -36
- package/icons/gcp/game-servers.js +1 -32
- package/icons/gcp/gce-systems-management.js +1 -13
- package/icons/gcp/genomics.js +1 -23
- package/icons/gcp/gke-on-prem.js +1 -31
- package/icons/gcp/google-cloud-marketplace.js +1 -29
- package/icons/gcp/google-kubernetes-engine.js +1 -23
- package/icons/gcp/google-maps-platform.js +1 -47
- package/icons/gcp/healthcare-nlp-api.js +1 -13
- package/icons/gcp/home.js +1 -25
- package/icons/gcp/identity-and-access-management.js +1 -23
- package/icons/gcp/identity-aware-proxy.js +1 -32
- package/icons/gcp/identity-platform.js +1 -26
- package/icons/gcp/iot-core.js +1 -23
- package/icons/gcp/iot-edge.js +1 -86
- package/icons/gcp/key-access-justifications.js +1 -46
- package/icons/gcp/key-management-service.js +1 -23
- package/icons/gcp/kuberun.js +1 -26
- package/icons/gcp/launcher.js +1 -35
- package/icons/gcp/local-ssd.js +1 -13
- package/icons/gcp/looker.js +1 -46
- package/icons/gcp/managed-service-for-microsoft-active-directory.js +1 -59
- package/icons/gcp/media-translation-api.js +1 -28
- package/icons/gcp/memorystore.js +1 -26
- package/icons/gcp/migrate-for-anthos.js +1 -13
- package/icons/gcp/migrate-for-compute-engine.js +1 -13
- package/icons/gcp/my-cloud.js +1 -21
- package/icons/gcp/network-connectivity-center.js +1 -84
- package/icons/gcp/network-intelligence-center.js +1 -13
- package/icons/gcp/network-security.js +1 -38
- package/icons/gcp/network-tiers.js +1 -53
- package/icons/gcp/network-topology.js +1 -13
- package/icons/gcp/onboarding.js +1 -25
- package/icons/gcp/os-configuration-management.js +1 -13
- package/icons/gcp/os-inventory-management.js +1 -15
- package/icons/gcp/os-patch-management.js +1 -13
- package/icons/gcp/partner-interconnect.js +1 -21
- package/icons/gcp/partner-portal.js +1 -35
- package/icons/gcp/performance-dashboard.js +1 -13
- package/icons/gcp/permissions.js +1 -35
- package/icons/gcp/persistent-disk.js +1 -10
- package/icons/gcp/phishing-protection.js +1 -48
- package/icons/gcp/policy-analyzer.js +1 -13
- package/icons/gcp/premium-network-tier.js +1 -19
- package/icons/gcp/private-connectivity.js +1 -18
- package/icons/gcp/private-service-connect.js +1 -27
- package/icons/gcp/producer-portal.js +1 -21
- package/icons/gcp/profiler.js +1 -29
- package/icons/gcp/project.js +1 -28
- package/icons/gcp/pub-sub.js +1 -41
- package/icons/gcp/quantum-engine.js +1 -27
- package/icons/gcp/quotas.js +1 -42
- package/icons/gcp/real-world-insights.js +1 -19
- package/icons/gcp/recommendations-ai.js +1 -56
- package/icons/gcp/release-notes.js +1 -12
- package/icons/gcp/retail-api.js +1 -22
- package/icons/gcp/risk-manager.js +1 -12
- package/icons/gcp/runtime-config.js +1 -35
- package/icons/gcp/secret-manager.js +1 -13
- package/icons/gcp/security-command-center.js +1 -18
- package/icons/gcp/security-health-advisor.js +1 -61
- package/icons/gcp/security-key-enforcement.js +1 -21
- package/icons/gcp/security.js +1 -27
- package/icons/gcp/service-discovery.js +1 -36
- package/icons/gcp/speech-to-text.js +1 -93
- package/icons/gcp/stackdriver.js +1 -10
- package/icons/gcp/standard-network-tier.js +1 -13
- package/icons/gcp/stream-suite.js +1 -16
- package/icons/gcp/support.js +1 -29
- package/icons/gcp/tensorflow-enterprise.js +1 -13
- package/icons/gcp/text-to-speech.js +1 -24
- package/icons/gcp/tools-for-powershell.js +1 -29
- package/icons/gcp/trace.js +1 -17
- package/icons/gcp/traffic-director.js +1 -44
- package/icons/gcp/transfer-appliance.js +1 -32
- package/icons/gcp/transfer.js +1 -13
- package/icons/gcp/user-preferences.js +1 -35
- package/icons/gcp/vertex-ai.js +1 -48
- package/icons/gcp/video-intelligence-api.js +1 -15
- package/icons/gcp/virtual-private-cloud.js +1 -25
- package/icons/gcp/visual-inspection.js +1 -24
- package/icons/gcp/vmware-engine.js +1 -13
- package/icons/gcp/web-risk.js +1 -55
- package/icons/gcp/web-security-scanner.js +1 -27
- package/icons/gcp/workflows.js +1 -82
- package/icons/gcp/workload-identity-pool.js +1 -24
- package/icons/tech/aarch64.js +1 -48
- package/icons/tech/adobe-illustrator.js +1 -14
- package/icons/tech/adobe-photoshop.js +1 -14
- package/icons/tech/adobe-premiere-pro.js +1 -16
- package/icons/tech/adobe-xd.js +1 -12
- package/icons/tech/adonis-js.js +1 -14
- package/icons/tech/after-effects.js +1 -16
- package/icons/tech/airflow.js +1 -64
- package/icons/tech/akka.js +1 -21
- package/icons/tech/algolia.js +1 -12
- package/icons/tech/alpine-js.js +1 -17
- package/icons/tech/amazon-web-services.js +1 -21
- package/icons/tech/anaconda.js +1 -12
- package/icons/tech/android-studio.js +1 -44
- package/icons/tech/android.js +1 -35
- package/icons/tech/angular-js.js +1 -24
- package/icons/tech/angular.js +1 -37
- package/icons/tech/ansible.js +1 -15
- package/icons/tech/ant-design.js +1 -112
- package/icons/tech/apache.js +1 -222
- package/icons/tech/apl.js +1 -21
- package/icons/tech/appcelerator.js +1 -12
- package/icons/tech/apple-safari.js +1 -39
- package/icons/tech/apple.js +1 -6
- package/icons/tech/appwrite.js +1 -21
- package/icons/tech/arch-linux.js +1 -29
- package/icons/tech/arduino.js +1 -9
- package/icons/tech/argo-cd.js +1 -134
- package/icons/tech/astro.js +1 -62
- package/icons/tech/atom.js +1 -14
- package/icons/tech/autodesk-maya.js +1 -144
- package/icons/tech/autodesk-shot-grid.js +1 -15
- package/icons/tech/awk.js +1 -34
- package/icons/tech/azios.js +1 -12
- package/icons/tech/azure-devops.js +1 -33
- package/icons/tech/azure-sql-database.js +1 -95
- package/icons/tech/azure.js +1 -55
- package/icons/tech/babel.js +1 -15
- package/icons/tech/backbone-js.js +1 -16
- package/icons/tech/ballerina.js +1 -12
- package/icons/tech/bamboo.js +1 -62
- package/icons/tech/bash.js +1 -22
- package/icons/tech/behance.js +1 -19
- package/icons/tech/bitbucket.js +1 -37
- package/icons/tech/blender.js +1 -21
- package/icons/tech/bootstrap.js +1 -78
- package/icons/tech/bower.js +1 -123
- package/icons/tech/browserstack.js +1 -77
- package/icons/tech/bulma.js +1 -6
- package/icons/tech/bun.js +1 -68
- package/icons/tech/c.js +1 -28
- package/icons/tech/cairo-graphics.js +1 -21
- package/icons/tech/cake-php.js +1 -12
- package/icons/tech/canva.js +1 -9
- package/icons/tech/capacitor.js +1 -25
- package/icons/tech/cassandra.js +1 -101
- package/icons/tech/cent-os.js +1 -22
- package/icons/tech/chrome.js +1 -156
- package/icons/tech/circle-ci.js +1 -12
- package/icons/tech/clarity.js +1 -35
- package/icons/tech/clion.js +1 -98
- package/icons/tech/clojure-script.js +1 -39
- package/icons/tech/clojure.js +1 -42
- package/icons/tech/cloudflare-workers.js +1 -196
- package/icons/tech/cloudflare.js +1 -22
- package/icons/tech/cmake.js +1 -11
- package/icons/tech/code-igniter.js +1 -12
- package/icons/tech/code-pen.js +1 -12
- package/icons/tech/codeac.js +1 -12
- package/icons/tech/codecov.js +1 -12
- package/icons/tech/coffee-script.js +1 -12
- package/icons/tech/composer.js +1 -59
- package/icons/tech/confluence.js +1 -57
- package/icons/tech/consul.js +1 -12
- package/icons/tech/contao.js +1 -15
- package/icons/tech/corejs.js +1 -6
- package/icons/tech/cosmosdb.js +1 -52
- package/icons/tech/couchdb.js +1 -12
- package/icons/tech/cplusplus.js +1 -35
- package/icons/tech/crystal.js +1 -12
- package/icons/tech/csharp.js +1 -28
- package/icons/tech/css3.js +1 -25
- package/icons/tech/cucumber.js +1 -12
- package/icons/tech/cypress.js +1 -34
- package/icons/tech/d3js.js +1 -145
- package/icons/tech/dart.js +1 -24
- package/icons/tech/data-grip.js +1 -109
- package/icons/tech/data-spell.js +1 -102
- package/icons/tech/dbeaver.js +1 -56
- package/icons/tech/debian.js +1 -12
- package/icons/tech/deno.js +1 -6
- package/icons/tech/devicon.js +1 -25
- package/icons/tech/digital-ocean.js +1 -9
- package/icons/tech/discord-js.js +1 -56
- package/icons/tech/django-rest.js +1 -35
- package/icons/tech/django.js +1 -9
- package/icons/tech/docker.js +1 -133
- package/icons/tech/doctrine.js +1 -21
- package/icons/tech/dropwizard.js +1 -70
- package/icons/tech/drupal.js +1 -56
- package/icons/tech/eclipse-ceylon.js +1 -44
- package/icons/tech/eclipse-ide.js +1 -99
- package/icons/tech/eclipse-vert-x.js +1 -29
- package/icons/tech/elasticbeats.js +1 -22
- package/icons/tech/elasticsearch.js +1 -28
- package/icons/tech/electron.js +1 -11
- package/icons/tech/eleventy-11ty.js +1 -15
- package/icons/tech/elixir.js +1 -211
- package/icons/tech/elm.js +1 -19
- package/icons/tech/embedded-c.js +1 -42
- package/icons/tech/ember-js.js +1 -16
- package/icons/tech/envoy.js +1 -28
- package/icons/tech/erlang.js +1 -12
- package/icons/tech/eslint.js +1 -21
- package/icons/tech/express.js +1 -6
- package/icons/tech/facebook.js +1 -15
- package/icons/tech/fast-api.js +1 -12
- package/icons/tech/fastify.js +1 -15
- package/icons/tech/fauna.js +1 -12
- package/icons/tech/feathers.js +1 -6
- package/icons/tech/fedora.js +1 -53
- package/icons/tech/figma.js +1 -24
- package/icons/tech/file-zilla.js +1 -29
- package/icons/tech/firebase.js +1 -12
- package/icons/tech/firefox.js +1 -1405
- package/icons/tech/flask.js +1 -12
- package/icons/tech/flutter.js +1 -16
- package/icons/tech/fortran.js +1 -15
- package/icons/tech/foundation.js +1 -240
- package/icons/tech/fsharp.js +1 -10
- package/icons/tech/gatling.js +1 -12
- package/icons/tech/gatsby.js +1 -12
- package/icons/tech/gazebo.js +1 -23
- package/icons/tech/gcc.js +1 -44
- package/icons/tech/gentoo.js +1 -14
- package/icons/tech/ghost.js +1 -27
- package/icons/tech/gimp.js +1 -382
- package/icons/tech/git.js +1 -12
- package/icons/tech/gitbook.js +1 -13
- package/icons/tech/github-actions.js +1 -21
- package/icons/tech/github-codespaces.js +1 -85
- package/icons/tech/github.js +1 -16
- package/icons/tech/gitlab.js +1 -35
- package/icons/tech/gitpod.js +1 -32
- package/icons/tech/gitter.js +1 -6
- package/icons/tech/gnu-emacs.js +1 -15
- package/icons/tech/go-land.js +1 -88
- package/icons/tech/go.js +1 -294
- package/icons/tech/godot-engine.js +1 -56
- package/icons/tech/google-cloud.js +1 -29
- package/icons/tech/google.js +1 -42
- package/icons/tech/gradle.js +1 -12
- package/icons/tech/grafana.js +1 -30
- package/icons/tech/grails.js +1 -21
- package/icons/tech/graphql.js +1 -15
- package/icons/tech/groovy.js +1 -715
- package/icons/tech/grunt-js.js +1 -260
- package/icons/tech/gulp-js.js +1 -14
- package/icons/tech/hadoop.js +1 -36
- package/icons/tech/handlebars.js +1 -9
- package/icons/tech/hardhat.js +1 -98
- package/icons/tech/harvester.js +1 -10
- package/icons/tech/hashicorp-vault.js +1 -12
- package/icons/tech/haskell.js +1 -10
- package/icons/tech/haxe.js +1 -17
- package/icons/tech/helm.js +1 -12
- package/icons/tech/heroku.js +1 -12
- package/icons/tech/hibernate.js +1 -15
- package/icons/tech/homebrew.js +1 -36
- package/icons/tech/html5.js +1 -23
- package/icons/tech/hugo.js +1 -22
- package/icons/tech/ibm-spss-statistics.js +1 -21
- package/icons/tech/ie10.js +1 -12
- package/icons/tech/ifttt.js +1 -6
- package/icons/tech/influxdb.js +1 -14
- package/icons/tech/inkscape.js +1 -573
- package/icons/tech/insomnia.js +1 -44
- package/icons/tech/intellij-idea.js +1 -92
- package/icons/tech/ionic.js +1 -9
- package/icons/tech/jaeger.js +1 -102
- package/icons/tech/jamstack.js +1 -12
- package/icons/tech/jasmine.js +1 -10
- package/icons/tech/java.js +1 -42
- package/icons/tech/javascript.js +1 -15
- package/icons/tech/jeet.js +1 -163
- package/icons/tech/jekyll.js +1 -232
- package/icons/tech/jenkins.js +1 -126
- package/icons/tech/jest.js +1 -12
- package/icons/tech/jetbrains.js +1 -118
- package/icons/tech/jira-align.js +1 -57
- package/icons/tech/jira.js +1 -62
- package/icons/tech/jquery.js +1 -12
- package/icons/tech/json.js +1 -57
- package/icons/tech/jule.js +1 -12
- package/icons/tech/julia.js +1 -49
- package/icons/tech/junit.js +1 -30
- package/icons/tech/jupyter.js +1 -35
- package/icons/tech/k3os.js +1 -6
- package/icons/tech/k3s.js +1 -12
- package/icons/tech/kafka.js +1 -12
- package/icons/tech/kaggle.js +1 -12
- package/icons/tech/karate.js +1 -15
- package/icons/tech/karma.js +1 -21
- package/icons/tech/keras.js +1 -15
- package/icons/tech/kibana.js +1 -10
- package/icons/tech/knex-js.js +1 -12
- package/icons/tech/knockout.js +1 -13
- package/icons/tech/kotlin.js +1 -25
- package/icons/tech/krakenjs.js +1 -14
- package/icons/tech/ktor.js +1 -48
- package/icons/tech/kubernetes.js +1 -10
- package/icons/tech/labview.js +1 -69
- package/icons/tech/laravel.js +1 -15
- package/icons/tech/latex.js +1 -12
- package/icons/tech/less-js.js +1 -14
- package/icons/tech/linkedin.js +1 -21
- package/icons/tech/linux.js +1 -5267
- package/icons/tech/liquibase.js +1 -12
- package/icons/tech/livewire.js +1 -79
- package/icons/tech/llvm.js +1 -36
- package/icons/tech/logstash.js +1 -10
- package/icons/tech/lua.js +1 -28
- package/icons/tech/lumen.js +1 -12
- package/icons/tech/magento.js +1 -12
- package/icons/tech/markdown.js +1 -44
- package/icons/tech/material-ui.js +1 -11
- package/icons/tech/materialize.js +1 -21
- package/icons/tech/matlab.js +1 -73
- package/icons/tech/matplotlib.js +1 -182
- package/icons/tech/maven.js +1 -620
- package/icons/tech/meteor-js.js +1 -12
- package/icons/tech/microsoft-sql-server.js +1 -6
- package/icons/tech/minitab.js +1 -45
- package/icons/tech/mob-x.js +1 -57
- package/icons/tech/mocha.js +1 -21
- package/icons/tech/modx.js +1 -18
- package/icons/tech/moleculer.js +1 -12
- package/icons/tech/mongodb.js +1 -135
- package/icons/tech/mongoose-js.js +1 -29
- package/icons/tech/moodle.js +1 -145
- package/icons/tech/ms-dos.js +1 -78
- package/icons/tech/mysql.js +1 -12
- package/icons/tech/nano.js +1 -12
- package/icons/tech/nerog.js +1 -136
- package/icons/tech/nestjs.js +1 -12
- package/icons/tech/net-core.js +1 -9
- package/icons/tech/net.js +1 -551
- package/icons/tech/network-x.js +1 -58
- package/icons/tech/new4j.js +1 -21
- package/icons/tech/nextjs.js +1 -6
- package/icons/tech/nginx.js +1 -12
- package/icons/tech/nhibernate.js +1 -21
- package/icons/tech/nim.js +1 -29
- package/icons/tech/nimble.js +1 -84
- package/icons/tech/nix.js +1 -25
- package/icons/tech/nodejs.js +1 -12
- package/icons/tech/nodemon.js +1 -21
- package/icons/tech/nodewebkit.js +1 -42
- package/icons/tech/npm.js +1 -12
- package/icons/tech/nuget.js +1 -12
- package/icons/tech/num-py.js +1 -29
- package/icons/tech/nuxt-js.js +1 -28
- package/icons/tech/objective-c.js +1 -9
- package/icons/tech/ocaml.js +1 -96
- package/icons/tech/oh-my-zsh.js +1 -38
- package/icons/tech/okta.js +1 -21
- package/icons/tech/open-al.js +1 -22
- package/icons/tech/open-api.js +1 -139
- package/icons/tech/open-cl.js +1 -42
- package/icons/tech/open-cv.js +1 -28
- package/icons/tech/open-gl.js +1 -35
- package/icons/tech/open-stack.js +1 -12
- package/icons/tech/open-suse.js +1 -15
- package/icons/tech/open-telemetry.js +1 -21
- package/icons/tech/opera.js +1 -32
- package/icons/tech/oracle.js +1 -12
- package/icons/tech/p5js.js +1 -12
- package/icons/tech/packer.js +1 -15
- package/icons/tech/pandas.js +1 -62
- package/icons/tech/perl.js +1 -21
- package/icons/tech/pf-sense.js +1 -6
- package/icons/tech/phalcon.js +1 -32
- package/icons/tech/phoenix-framework.js +1 -12
- package/icons/tech/photon-engine.js +1 -41
- package/icons/tech/php-storm.js +1 -105
- package/icons/tech/php.js +1 -62
- package/icons/tech/playwrite.js +1 -56
- package/icons/tech/ploty.js +1 -28
- package/icons/tech/podman.js +1 -150
- package/icons/tech/polygon.js +1 -15
- package/icons/tech/portainer.js +1 -12
- package/icons/tech/postcss.js +1 -28
- package/icons/tech/postgresql.js +1 -23
- package/icons/tech/postman.js +1 -28
- package/icons/tech/powershell.js +1 -79
- package/icons/tech/processing.js +1 -201
- package/icons/tech/prometheus.js +1 -12
- package/icons/tech/protractor.js +1 -12
- package/icons/tech/purescript.js +1 -16
- package/icons/tech/putty.js +1 -56
- package/icons/tech/pycharm.js +1 -81
- package/icons/tech/pyscript.js +1 -15
- package/icons/tech/pytest.js +1 -21
- package/icons/tech/python-poetry.js +1 -155
- package/icons/tech/python.js +1 -78
- package/icons/tech/pytorch.js +1 -15
- package/icons/tech/qodana.js +1 -52
- package/icons/tech/qt.js +1 -12
- package/icons/tech/quarkus.js +1 -23
- package/icons/tech/quasar.js +1 -15
- package/icons/tech/qwik.js +1 -37
- package/icons/tech/r.js +1 -57
- package/icons/tech/rabbitmq.js +1 -12
- package/icons/tech/rancher.js +1 -6
- package/icons/tech/raspberrypi.js +1 -28
- package/icons/tech/reach.js +1 -27
- package/icons/tech/react-bootstrap.js +1 -12
- package/icons/tech/react.js +1 -9
- package/icons/tech/realm.js +1 -63
- package/icons/tech/red-cube-s-epic-compiler-thingy-programming-re-ct.js +1 -17
- package/icons/tech/redhat.js +1 -22
- package/icons/tech/redis.js +1 -59
- package/icons/tech/redux.js +1 -12
- package/icons/tech/ren-py.js +1 -547
- package/icons/tech/rider.js +1 -38
- package/icons/tech/robot-operating-system-ros.js +1 -15
- package/icons/tech/rocksdb.js +1 -9
- package/icons/tech/rollup-js.js +1 -155
- package/icons/tech/rspec.js +1 -35
- package/icons/tech/rstudio.js +1 -30
- package/icons/tech/ruby-mine.js +1 -52
- package/icons/tech/ruby-on-rails.js +1 -14
- package/icons/tech/ruby.js +1 -359
- package/icons/tech/rust.js +1 -6
- package/icons/tech/salesforce.js +1 -28
- package/icons/tech/sanity.js +1 -22
- package/icons/tech/sass.js +1 -14
- package/icons/tech/scala.js +1 -21
- package/icons/tech/scalingo.js +1 -29
- package/icons/tech/sdl.js +1 -42
- package/icons/tech/selenium.js +1 -15
- package/icons/tech/sema-software.js +1 -15
- package/icons/tech/sequelize.js +1 -34
- package/icons/tech/shopware.js +1 -9
- package/icons/tech/sketch.js +1 -14
- package/icons/tech/slack.js +1 -35
- package/icons/tech/socket-io.js +1 -45
- package/icons/tech/solid-js.js +1 -121
- package/icons/tech/solidity.js +1 -13
- package/icons/tech/sonarqube.js +1 -12
- package/icons/tech/sourcetree.js +1 -12
- package/icons/tech/spark.js +1 -12
- package/icons/tech/splunk.js +1 -12
- package/icons/tech/spring.js +1 -12
- package/icons/tech/sql-developer.js +1 -43
- package/icons/tech/sqlalchemy.js +1 -21
- package/icons/tech/sqlite.js +1 -45
- package/icons/tech/ssh.js +1 -12
- package/icons/tech/stackoverflow.js +1 -15
- package/icons/tech/stata.js +1 -12
- package/icons/tech/storybook.js +1 -12
- package/icons/tech/streamlit.js +1 -31
- package/icons/tech/stylus.js +1 -9
- package/icons/tech/subversion.js +1 -12
- package/icons/tech/svelte.js +1 -23
- package/icons/tech/swagger.js +1 -21
- package/icons/tech/swift.js +1 -21
- package/icons/tech/symfony.js +1 -12
- package/icons/tech/tailwind-css.js +1 -12
- package/icons/tech/tauri.js +1 -35
- package/icons/tech/tensorflow.js +1 -12
- package/icons/tech/terraform.js +1 -16
- package/icons/tech/tex.js +1 -6
- package/icons/tech/the-algorithms.js +1 -12
- package/icons/tech/three-js.js +1 -139
- package/icons/tech/titanium-sdk.js +1 -12
- package/icons/tech/tomcat.js +1 -26
- package/icons/tech/tortoise-git.js +1 -37
- package/icons/tech/tower.js +1 -369
- package/icons/tech/traefik-mesh.js +1 -12
- package/icons/tech/traefik-proxy.js +1 -12
- package/icons/tech/travis-ci.js +1 -12
- package/icons/tech/trello.js +1 -12
- package/icons/tech/twitter.js +1 -12
- package/icons/tech/typescript.js +1 -16
- package/icons/tech/typo3.js +1 -12
- package/icons/tech/ubuntu.js +1 -12
- package/icons/tech/uml.js +1 -29
- package/icons/tech/unity.js +1 -22
- package/icons/tech/unix.js +1 -12
- package/icons/tech/unreal-engine.js +1 -9
- package/icons/tech/uwsgi.js +1 -38
- package/icons/tech/v8.js +1 -109
- package/icons/tech/vagrant.js +1 -21
- package/icons/tech/vala.js +1 -57
- package/icons/tech/vercel.js +1 -6
- package/icons/tech/veutify.js +1 -11
- package/icons/tech/vim.js +1 -82
- package/icons/tech/visualstudio.js +1 -12
- package/icons/tech/vite.js +1 -6
- package/icons/tech/vitejs.js +1 -56
- package/icons/tech/vscode.js +1 -114
- package/icons/tech/vsphere.js +1 -25
- package/icons/tech/vue-storefront.js +1 -22
- package/icons/tech/vue.js +1 -16
- package/icons/tech/vyper.js +1 -17
- package/icons/tech/webassembly.js +1 -12
- package/icons/tech/webflow.js +1 -12
- package/icons/tech/weblate.js +1 -80
- package/icons/tech/webpack.js +1 -21
- package/icons/tech/webstorm.js +1 -80
- package/icons/tech/windows11.js +1 -12
- package/icons/tech/windows8.js +1 -12
- package/icons/tech/woo-commerce.js +1 -22
- package/icons/tech/wordpress.js +1 -70
- package/icons/tech/xamarin.js +1 -12
- package/icons/tech/xcode.js +1 -623
- package/icons/tech/xml.js +1 -51
- package/icons/tech/yaml.js +1 -16
- package/icons/tech/yarn.js +1 -9
- package/icons/tech/yii-framework.js +1 -35
- package/icons/tech/yuno-host.js +1 -15
- package/icons/tech/zend-framework.js +1 -14
- package/icons/tech/zig.js +1 -28
- package/package.json +54 -63
- package/react/index.d.mts +2659 -0
- package/react/index.mjs +166 -0
- package/vite-plugin-modules.d.ts +46 -2
- package/__app__/webcomponent/webcomponent.js +0 -74
- package/dist/cli/index.d.ts +0 -1
- package/dist/index.d.ts +0 -102
- package/dist/model/index.d.ts +0 -10
- package/dist/shared/likec4.CdjXfSGc.mjs +0 -3682
- package/dist/shared/likec4.DGrST4wG.d.mts +0 -2064
- package/dist/shared/likec4.DGrST4wG.d.ts +0 -2064
- package/dist/shared/likec4.DQwwl5M9.mjs +0 -354
- package/dist/vite-plugin/index.d.ts +0 -48
- package/react/index.d.ts +0 -853
- package/react/index.js +0 -41671
- package/react/likec4.css +0 -1
|
@@ -0,0 +1,2659 @@
|
|
|
1
|
+
// Generated by dts-bundle-generator v9.5.1
|
|
2
|
+
|
|
3
|
+
import { CSSProperties, ComponentType, DependencyList, HTMLAttributes, JSX, MouseEvent as ReactMouseEvent, PropsWithChildren, ReactNode, WheelEvent as WheelEvent$1 } from 'react';
|
|
4
|
+
|
|
5
|
+
type Primitive = null | undefined | string | number | boolean | symbol | bigint;
|
|
6
|
+
type UnionToIntersection<Union> = (
|
|
7
|
+
// `extends unknown` is always going to be the case and is used to convert the
|
|
8
|
+
// `Union` into a [distributive conditional
|
|
9
|
+
// type](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html#distributive-conditional-types).
|
|
10
|
+
Union extends unknown ? (distributedUnion: Union) => void : never) extends ((mergedIntersection: infer Intersection) => void) ? Intersection & Union : never;
|
|
11
|
+
type Simplify<T> = {
|
|
12
|
+
[KeyType in keyof T]: T[KeyType];
|
|
13
|
+
} & {};
|
|
14
|
+
type LiteralUnion<LiteralType, BaseType extends Primitive> = LiteralType | (BaseType & Record<never, never>);
|
|
15
|
+
declare const tag: unique symbol;
|
|
16
|
+
type TagContainer<Token> = {
|
|
17
|
+
readonly [tag]: Token;
|
|
18
|
+
};
|
|
19
|
+
type Tag<Token extends PropertyKey, TagMetadata> = TagContainer<{
|
|
20
|
+
[K in Token]: TagMetadata;
|
|
21
|
+
}>;
|
|
22
|
+
type Tagged<Type, TagName extends PropertyKey, TagMetadata = never> = Type & Tag<TagName, TagMetadata>;
|
|
23
|
+
type TupleToUnion<ArrayType> = ArrayType extends readonly unknown[] ? ArrayType[number] : never;
|
|
24
|
+
declare const ThemeColors: readonly [
|
|
25
|
+
"amber",
|
|
26
|
+
"blue",
|
|
27
|
+
"gray",
|
|
28
|
+
"slate",
|
|
29
|
+
"green",
|
|
30
|
+
"indigo",
|
|
31
|
+
"muted",
|
|
32
|
+
"primary",
|
|
33
|
+
"red",
|
|
34
|
+
"secondary",
|
|
35
|
+
"sky"
|
|
36
|
+
];
|
|
37
|
+
type ThemeColor = typeof ThemeColors[number];
|
|
38
|
+
type HexColorLiteral = `#${string}`;
|
|
39
|
+
type ColorLiteral = HexColorLiteral;
|
|
40
|
+
type Color = LiteralUnion<ThemeColor, string>;
|
|
41
|
+
type ShapeSize = "xs" | "sm" | "md" | "lg" | "xl";
|
|
42
|
+
type SpacingSize = "xs" | "sm" | "md" | "lg" | "xl";
|
|
43
|
+
type TextSize = "xs" | "sm" | "md" | "lg" | "xl";
|
|
44
|
+
interface ElementThemeColorValues {
|
|
45
|
+
fill: ColorLiteral;
|
|
46
|
+
stroke: ColorLiteral;
|
|
47
|
+
hiContrast: ColorLiteral;
|
|
48
|
+
loContrast: ColorLiteral;
|
|
49
|
+
}
|
|
50
|
+
interface RelationshipThemeColorValues {
|
|
51
|
+
lineColor: ColorLiteral;
|
|
52
|
+
labelBgColor: ColorLiteral;
|
|
53
|
+
labelColor: ColorLiteral;
|
|
54
|
+
}
|
|
55
|
+
interface ThemeColorValues {
|
|
56
|
+
elements: ElementThemeColorValues;
|
|
57
|
+
relationships: RelationshipThemeColorValues;
|
|
58
|
+
}
|
|
59
|
+
type NonEmptyArray<T> = [
|
|
60
|
+
T,
|
|
61
|
+
...T[]
|
|
62
|
+
];
|
|
63
|
+
type IconUrl = Tagged<string, "IconUrl"> | "none";
|
|
64
|
+
type Point = readonly [
|
|
65
|
+
x: number,
|
|
66
|
+
y: number
|
|
67
|
+
];
|
|
68
|
+
interface XYPoint {
|
|
69
|
+
x: number;
|
|
70
|
+
y: number;
|
|
71
|
+
}
|
|
72
|
+
type AllNever<Expressions> = UnionToIntersection<{
|
|
73
|
+
[Name in keyof Expressions]: {
|
|
74
|
+
-readonly [Key in keyof Expressions[Name]]?: never;
|
|
75
|
+
};
|
|
76
|
+
}[keyof Expressions]>;
|
|
77
|
+
type ExclusiveUnion<Expressions> = Expressions extends object ? {
|
|
78
|
+
[Name in keyof Expressions]: Simplify<Omit<AllNever<Expressions>, keyof Expressions[Name]> & Expressions[Name]>;
|
|
79
|
+
}[keyof Expressions] : Expressions;
|
|
80
|
+
type Fqn<Id extends string = string> = Tagged<Id, "Fqn">;
|
|
81
|
+
declare const BorderStyles: readonly [
|
|
82
|
+
"solid",
|
|
83
|
+
"dashed",
|
|
84
|
+
"dotted",
|
|
85
|
+
"none"
|
|
86
|
+
];
|
|
87
|
+
type BorderStyle = TupleToUnion<typeof BorderStyles>;
|
|
88
|
+
type ElementKind<Kinds extends string = string> = Tagged<Kinds, "ElementKind">;
|
|
89
|
+
declare namespace ElementKind {
|
|
90
|
+
const Group: ElementKind;
|
|
91
|
+
}
|
|
92
|
+
declare const ElementShapes: readonly [
|
|
93
|
+
"rectangle",
|
|
94
|
+
"person",
|
|
95
|
+
"browser",
|
|
96
|
+
"mobile",
|
|
97
|
+
"cylinder",
|
|
98
|
+
"storage",
|
|
99
|
+
"queue"
|
|
100
|
+
];
|
|
101
|
+
type ElementShape = TupleToUnion<typeof ElementShapes>;
|
|
102
|
+
interface ElementStyle {
|
|
103
|
+
readonly border?: BorderStyle;
|
|
104
|
+
/**
|
|
105
|
+
* In percentage 0-100, 0 is fully transparent
|
|
106
|
+
*
|
|
107
|
+
* @default 100
|
|
108
|
+
*/
|
|
109
|
+
readonly opacity?: number;
|
|
110
|
+
/**
|
|
111
|
+
* If true, the element is rendered as multiple shapes
|
|
112
|
+
* @default false
|
|
113
|
+
*/
|
|
114
|
+
readonly multiple?: boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Shape size
|
|
117
|
+
*
|
|
118
|
+
* @default 'md'
|
|
119
|
+
*/
|
|
120
|
+
readonly size?: ShapeSize;
|
|
121
|
+
readonly padding?: SpacingSize;
|
|
122
|
+
readonly textSize?: TextSize;
|
|
123
|
+
}
|
|
124
|
+
type Tag$1<Tags extends string = string> = Tagged<Tags, "Tag">;
|
|
125
|
+
interface Link {
|
|
126
|
+
readonly title?: string;
|
|
127
|
+
readonly url: string;
|
|
128
|
+
readonly relative?: string;
|
|
129
|
+
}
|
|
130
|
+
type EqualOperator<V> = {
|
|
131
|
+
eq: V;
|
|
132
|
+
neq?: never;
|
|
133
|
+
} | {
|
|
134
|
+
eq?: never;
|
|
135
|
+
neq: V;
|
|
136
|
+
};
|
|
137
|
+
type AllNever$1 = {
|
|
138
|
+
not?: never;
|
|
139
|
+
and?: never;
|
|
140
|
+
or?: never;
|
|
141
|
+
tag?: never;
|
|
142
|
+
kind?: never;
|
|
143
|
+
participant?: never;
|
|
144
|
+
};
|
|
145
|
+
type TagEqual<Tag> = Omit<AllNever$1, "tag"> & {
|
|
146
|
+
tag: EqualOperator<Tag>;
|
|
147
|
+
};
|
|
148
|
+
type KindEqual<Kind> = Omit<AllNever$1, "kind"> & {
|
|
149
|
+
kind: EqualOperator<Kind>;
|
|
150
|
+
};
|
|
151
|
+
type Participant = "source" | "target";
|
|
152
|
+
type ParticipantOperator<Tag, Kind> = Omit<AllNever$1, "participant"> & {
|
|
153
|
+
participant: Participant;
|
|
154
|
+
operator: KindEqual<Kind> | TagEqual<Tag>;
|
|
155
|
+
};
|
|
156
|
+
type NotOperator<Tag, Kind> = Omit<AllNever$1, "not"> & {
|
|
157
|
+
not: WhereOperator<Tag, Kind>;
|
|
158
|
+
};
|
|
159
|
+
type AndOperator<Tag, Kind> = Omit<AllNever$1, "and"> & {
|
|
160
|
+
and: NonEmptyArray<WhereOperator<Tag, Kind>>;
|
|
161
|
+
};
|
|
162
|
+
type OrOperator<Tag, Kind> = Omit<AllNever$1, "or"> & {
|
|
163
|
+
or: NonEmptyArray<WhereOperator<Tag, Kind>>;
|
|
164
|
+
};
|
|
165
|
+
type WhereOperator<Tag, Kind> = TagEqual<Tag> | KindEqual<Kind> | ParticipantOperator<Tag, Kind> | NotOperator<Tag, Kind> | AndOperator<Tag, Kind> | OrOperator<Tag, Kind>;
|
|
166
|
+
interface BaseExpr {
|
|
167
|
+
where?: never;
|
|
168
|
+
element?: never;
|
|
169
|
+
custom?: never;
|
|
170
|
+
expanded?: never;
|
|
171
|
+
elementKind?: never;
|
|
172
|
+
elementTag?: never;
|
|
173
|
+
isEqual?: never;
|
|
174
|
+
isChildren?: never;
|
|
175
|
+
isDescendants?: never;
|
|
176
|
+
wildcard?: never;
|
|
177
|
+
source?: never;
|
|
178
|
+
target?: never;
|
|
179
|
+
inout?: never;
|
|
180
|
+
incoming?: never;
|
|
181
|
+
outgoing?: never;
|
|
182
|
+
customRelation?: never;
|
|
183
|
+
}
|
|
184
|
+
interface ElementRefExpr extends Omit<BaseExpr, "element" | "isChildren" | "isDescendants"> {
|
|
185
|
+
element: Fqn;
|
|
186
|
+
isChildren?: boolean;
|
|
187
|
+
isDescendants?: boolean;
|
|
188
|
+
}
|
|
189
|
+
interface ExpandedElementExpr extends Omit<BaseExpr, "expanded"> {
|
|
190
|
+
expanded: Fqn;
|
|
191
|
+
}
|
|
192
|
+
interface CustomElementExpr extends Omit<BaseExpr, "custom"> {
|
|
193
|
+
custom: {
|
|
194
|
+
expr: ElementExpression | ElementWhereExpr;
|
|
195
|
+
title?: string;
|
|
196
|
+
description?: string;
|
|
197
|
+
technology?: string;
|
|
198
|
+
notation?: string;
|
|
199
|
+
shape?: ElementShape;
|
|
200
|
+
color?: Color;
|
|
201
|
+
icon?: IconUrl;
|
|
202
|
+
border?: BorderStyle;
|
|
203
|
+
opacity?: number;
|
|
204
|
+
navigateTo?: ViewId;
|
|
205
|
+
multiple?: boolean;
|
|
206
|
+
size?: ShapeSize;
|
|
207
|
+
padding?: ShapeSize;
|
|
208
|
+
textSize?: ShapeSize;
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
interface WildcardExpr extends Omit<BaseExpr, "wildcard"> {
|
|
212
|
+
wildcard: true;
|
|
213
|
+
}
|
|
214
|
+
interface ElementKindExpr extends Omit<BaseExpr, "elementKind" | "isEqual"> {
|
|
215
|
+
elementKind: ElementKind;
|
|
216
|
+
isEqual: boolean;
|
|
217
|
+
}
|
|
218
|
+
interface ElementTagExpr extends Omit<BaseExpr, "elementTag" | "isEqual"> {
|
|
219
|
+
elementTag: Tag$1;
|
|
220
|
+
isEqual: boolean;
|
|
221
|
+
}
|
|
222
|
+
type NonWilcard = ElementRefExpr | ElementKindExpr | ElementTagExpr | ExpandedElementExpr;
|
|
223
|
+
type ElementExpression = NonWilcard | WildcardExpr;
|
|
224
|
+
interface ElementWhereExpr extends Omit<BaseExpr, "where"> {
|
|
225
|
+
where: {
|
|
226
|
+
expr: ElementExpression;
|
|
227
|
+
condition: WhereOperator<string, string>;
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
type ElementPredicateExpression = ElementExpression | ElementWhereExpr | CustomElementExpr;
|
|
231
|
+
interface DirectRelationExpr extends Omit<BaseExpr, "source" | "target"> {
|
|
232
|
+
source: ElementExpression;
|
|
233
|
+
target: ElementExpression;
|
|
234
|
+
isBidirectional?: boolean;
|
|
235
|
+
}
|
|
236
|
+
interface InOutExpr extends Omit<BaseExpr, "inout"> {
|
|
237
|
+
inout: ElementExpression;
|
|
238
|
+
}
|
|
239
|
+
interface IncomingExpr extends Omit<BaseExpr, "incoming"> {
|
|
240
|
+
incoming: ElementExpression;
|
|
241
|
+
}
|
|
242
|
+
interface OutgoingExpr extends Omit<BaseExpr, "outgoing"> {
|
|
243
|
+
outgoing: ElementExpression;
|
|
244
|
+
}
|
|
245
|
+
type RelationExpression = DirectRelationExpr | InOutExpr | IncomingExpr | OutgoingExpr;
|
|
246
|
+
interface RelationWhereExpr extends Omit<BaseExpr, "where"> {
|
|
247
|
+
where: {
|
|
248
|
+
expr: RelationExpression;
|
|
249
|
+
condition: WhereOperator<string, string>;
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
interface CustomRelationExpr extends Omit<BaseExpr, "customRelation"> {
|
|
253
|
+
customRelation: {
|
|
254
|
+
relation: RelationExpression | RelationWhereExpr;
|
|
255
|
+
title?: string;
|
|
256
|
+
description?: string;
|
|
257
|
+
technology?: string;
|
|
258
|
+
notation?: string;
|
|
259
|
+
navigateTo?: ViewId;
|
|
260
|
+
notes?: string;
|
|
261
|
+
color?: Color;
|
|
262
|
+
line?: RelationshipLineType;
|
|
263
|
+
head?: RelationshipArrowType;
|
|
264
|
+
tail?: RelationshipArrowType;
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
type RelationPredicateExpression = RelationExpression | RelationWhereExpr | CustomRelationExpr;
|
|
268
|
+
type Expression = ElementPredicateExpression | RelationPredicateExpression;
|
|
269
|
+
declare namespace FqnRef {
|
|
270
|
+
/**
|
|
271
|
+
* Represents a reference to an instance within a deployment.
|
|
272
|
+
*
|
|
273
|
+
* @template D - The type representing the deployment fqn. Defaults to `Fqn`.
|
|
274
|
+
* @template M - The type representing the model fqn. Defaults to `Fqn`.
|
|
275
|
+
*
|
|
276
|
+
* @property {D} deployment - TThe fully qualified name (FQN) of the deployed instance.
|
|
277
|
+
* @property {M} element - The element reference within the deployment.
|
|
278
|
+
*/
|
|
279
|
+
type InsideInstanceRef<D = Fqn, M = Fqn> = {
|
|
280
|
+
deployment: D;
|
|
281
|
+
element: M;
|
|
282
|
+
};
|
|
283
|
+
const isInsideInstanceRef: (ref: FqnRef) => ref is InsideInstanceRef;
|
|
284
|
+
/**
|
|
285
|
+
* Represents a reference to a deployment element.
|
|
286
|
+
*
|
|
287
|
+
* @template F - The type of the fully qualified name (FQN) of the deployment element. Defaults to `Fqn`.
|
|
288
|
+
* @property {F} deployment - The fully qualified name (FQN) of the deployment element.
|
|
289
|
+
*/
|
|
290
|
+
type DeploymentElementRef<F = Fqn> = {
|
|
291
|
+
deployment: F;
|
|
292
|
+
};
|
|
293
|
+
const isDeploymentElementRef: (ref: FqnRef) => ref is DeploymentElementRef;
|
|
294
|
+
type DeploymentRef<D = Fqn, M = Fqn> = DeploymentElementRef<D> | InsideInstanceRef<D, M>;
|
|
295
|
+
const isDeploymentRef: (ref: FqnRef) => ref is DeploymentRef;
|
|
296
|
+
/**
|
|
297
|
+
* Reference to logical model element
|
|
298
|
+
*/
|
|
299
|
+
type ModelRef<F = Fqn> = {
|
|
300
|
+
model: F;
|
|
301
|
+
};
|
|
302
|
+
const isModelRef: (ref: FqnRef) => ref is ModelRef;
|
|
303
|
+
const toDeploymentRef: (ref: FqnRef) => DeploymentRef;
|
|
304
|
+
}
|
|
305
|
+
type FqnRef<D = Fqn, M = Fqn> = ExclusiveUnion<{
|
|
306
|
+
InsideInstanceRef: FqnRef.InsideInstanceRef<D, M>;
|
|
307
|
+
DeploymentRef: FqnRef.DeploymentRef<D>;
|
|
308
|
+
ModelRef: FqnRef.ModelRef<M>;
|
|
309
|
+
}>;
|
|
310
|
+
declare namespace FqnExpr {
|
|
311
|
+
type Wildcard = {
|
|
312
|
+
wildcard: true;
|
|
313
|
+
};
|
|
314
|
+
const isWildcard: (expr: ExpressionV2) => expr is Wildcard;
|
|
315
|
+
type ModelRef<M = Fqn> = {
|
|
316
|
+
ref: FqnRef.ModelRef<M>;
|
|
317
|
+
selector?: PredicateSelector;
|
|
318
|
+
};
|
|
319
|
+
const isModelRef: (ref: ExpressionV2) => ref is ModelRef;
|
|
320
|
+
type DeploymentRef<D = Fqn, M = Fqn> = {
|
|
321
|
+
ref: FqnRef.DeploymentRef<D> | FqnRef.InsideInstanceRef<D, M>;
|
|
322
|
+
selector?: PredicateSelector;
|
|
323
|
+
};
|
|
324
|
+
const isDeploymentRef: (ref: ExpressionV2) => ref is FqnExpr.DeploymentRef;
|
|
325
|
+
type NonWildcard<D = Fqn, M = Fqn> = ExclusiveUnion<{
|
|
326
|
+
ModelRef: ModelRef<M>;
|
|
327
|
+
DeploymentRef: DeploymentRef<D, M>;
|
|
328
|
+
}>;
|
|
329
|
+
}
|
|
330
|
+
type FqnExpr<D = Fqn, M = Fqn> = ExclusiveUnion<{
|
|
331
|
+
Wildcard: FqnExpr.Wildcard;
|
|
332
|
+
ModelRef: FqnExpr.ModelRef<M>;
|
|
333
|
+
DeploymentRef: FqnExpr.DeploymentRef<D, M>;
|
|
334
|
+
}>;
|
|
335
|
+
declare namespace RelationExpr {
|
|
336
|
+
type Direct<D = Fqn, M = Fqn> = {
|
|
337
|
+
source: FqnExpr<D, M>;
|
|
338
|
+
target: FqnExpr<D, M>;
|
|
339
|
+
isBidirectional?: boolean;
|
|
340
|
+
};
|
|
341
|
+
const isDirect: (expr: ExpressionV2) => expr is Direct;
|
|
342
|
+
type Incoming<D = Fqn, M = Fqn> = {
|
|
343
|
+
incoming: FqnExpr<D, M>;
|
|
344
|
+
};
|
|
345
|
+
const isIncoming: (expr: ExpressionV2) => expr is Incoming;
|
|
346
|
+
type Outgoing<D = Fqn, M = Fqn> = {
|
|
347
|
+
outgoing: FqnExpr<D, M>;
|
|
348
|
+
};
|
|
349
|
+
const isOutgoing: (expr: ExpressionV2) => expr is Outgoing;
|
|
350
|
+
type InOut<D = Fqn, M = Fqn> = {
|
|
351
|
+
inout: FqnExpr<D, M>;
|
|
352
|
+
};
|
|
353
|
+
const isInOut: (expr: ExpressionV2) => expr is InOut;
|
|
354
|
+
type Where<D = Fqn, M = Fqn> = {
|
|
355
|
+
where: {
|
|
356
|
+
expr: ExpressionV2<D, M>;
|
|
357
|
+
condition: WhereOperator<string, string>;
|
|
358
|
+
};
|
|
359
|
+
};
|
|
360
|
+
const isWhere: (expr: ExpressionV2) => expr is Where;
|
|
361
|
+
}
|
|
362
|
+
type RelationExpr<D = Fqn, M = Fqn> = ExclusiveUnion<{
|
|
363
|
+
Direct: RelationExpr.Direct<D, M>;
|
|
364
|
+
Incoming: RelationExpr.Incoming<D, M>;
|
|
365
|
+
Outgoing: RelationExpr.Outgoing<D, M>;
|
|
366
|
+
InOut: RelationExpr.InOut<D, M>;
|
|
367
|
+
Where: RelationExpr.Where<D, M>;
|
|
368
|
+
}>;
|
|
369
|
+
type ExpressionV2<D = Fqn, M = Fqn> = ExclusiveUnion<{
|
|
370
|
+
Wildcard: FqnExpr.Wildcard;
|
|
371
|
+
ModelRef: FqnExpr.ModelRef<M>;
|
|
372
|
+
DeploymentRef: FqnExpr.DeploymentRef<D, M>;
|
|
373
|
+
Direct: RelationExpr.Direct<D, M>;
|
|
374
|
+
Incoming: RelationExpr.Incoming<D, M>;
|
|
375
|
+
Outgoing: RelationExpr.Outgoing<D, M>;
|
|
376
|
+
InOut: RelationExpr.InOut<D, M>;
|
|
377
|
+
RelationPredicateOrWhere: RelationExpr.Where<D, M>;
|
|
378
|
+
}>;
|
|
379
|
+
declare namespace ExpressionV2 {
|
|
380
|
+
const isFqnExpr: (expr: ExpressionV2) => expr is FqnExpr;
|
|
381
|
+
const isRelation: (expr: ExpressionV2) => expr is RelationExpr;
|
|
382
|
+
}
|
|
383
|
+
type GlobalPredicateId = Tagged<string, "GlobalPredicateId">;
|
|
384
|
+
type GlobalStyleID = Tagged<string, "GlobalStyleID">;
|
|
385
|
+
type ElementNotation = {
|
|
386
|
+
kinds: string[];
|
|
387
|
+
shape: ElementShape;
|
|
388
|
+
color: Color;
|
|
389
|
+
title: string;
|
|
390
|
+
};
|
|
391
|
+
type ViewId<Id extends string = string> = Tagged<Id, "ViewID">;
|
|
392
|
+
type ViewRulePredicate = {
|
|
393
|
+
include: Expression[];
|
|
394
|
+
exclude?: never;
|
|
395
|
+
} | {
|
|
396
|
+
include?: never;
|
|
397
|
+
exclude: Expression[];
|
|
398
|
+
};
|
|
399
|
+
interface ViewRuleGlobalPredicateRef {
|
|
400
|
+
predicateId: GlobalPredicateId;
|
|
401
|
+
}
|
|
402
|
+
interface ViewRuleStyle {
|
|
403
|
+
targets: ElementExpression[];
|
|
404
|
+
notation?: string;
|
|
405
|
+
style: ElementStyle & {
|
|
406
|
+
color?: Color;
|
|
407
|
+
shape?: ElementShape;
|
|
408
|
+
icon?: IconUrl;
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
interface ViewRuleGlobalStyle {
|
|
412
|
+
styleId: GlobalStyleID;
|
|
413
|
+
}
|
|
414
|
+
type AutoLayoutDirection = "TB" | "BT" | "LR" | "RL";
|
|
415
|
+
interface ViewRuleAutoLayout {
|
|
416
|
+
direction: AutoLayoutDirection;
|
|
417
|
+
nodeSep?: number;
|
|
418
|
+
rankSep?: number;
|
|
419
|
+
}
|
|
420
|
+
interface ViewRuleGroup {
|
|
421
|
+
groupRules: Array<ViewRulePredicate | ViewRuleGroup>;
|
|
422
|
+
title: string | null;
|
|
423
|
+
color?: Color;
|
|
424
|
+
border?: BorderStyle;
|
|
425
|
+
opacity?: number;
|
|
426
|
+
multiple?: boolean;
|
|
427
|
+
size?: ShapeSize;
|
|
428
|
+
padding?: SpacingSize;
|
|
429
|
+
textSize?: TextSize;
|
|
430
|
+
}
|
|
431
|
+
type ViewRule = ViewRulePredicate | ViewRuleGlobalPredicateRef | ViewRuleGroup | ViewRuleStyle | ViewRuleGlobalStyle | ViewRuleAutoLayout;
|
|
432
|
+
interface BasicView<ViewType extends "element" | "dynamic" | "deployment", ViewIDs extends string, Tags extends string> {
|
|
433
|
+
readonly __?: ViewType;
|
|
434
|
+
readonly id: ViewId<ViewIDs>;
|
|
435
|
+
readonly title: string | null;
|
|
436
|
+
readonly description: string | null;
|
|
437
|
+
readonly tags: NonEmptyArray<Tag$1<Tags>> | null;
|
|
438
|
+
readonly links: NonEmptyArray<Link> | null;
|
|
439
|
+
/**
|
|
440
|
+
* URI to the source file of this view.
|
|
441
|
+
* Undefined if the view is auto-generated.
|
|
442
|
+
*/
|
|
443
|
+
readonly docUri?: string;
|
|
444
|
+
/**
|
|
445
|
+
* For all views we find common ancestor path.
|
|
446
|
+
* This is used to generate relative paths, i.e.:
|
|
447
|
+
* - "/home/project/index.c4" becomes "index.c4"
|
|
448
|
+
* - "/home/project/subdir/views.c4" becomes "subdir/views.c4"
|
|
449
|
+
*
|
|
450
|
+
* Undefined if the view is auto-generated.
|
|
451
|
+
*/
|
|
452
|
+
readonly relativePath?: string;
|
|
453
|
+
/**
|
|
454
|
+
* If the view is changed manually this field contains the layout data.
|
|
455
|
+
*/
|
|
456
|
+
readonly manualLayout?: ViewManualLayout | undefined;
|
|
457
|
+
readonly customColorDefinitions: CustomColorDefinitions;
|
|
458
|
+
}
|
|
459
|
+
interface BasicElementView<ViewIDs extends string, Tags extends string> extends BasicView<"element", ViewIDs, Tags> {
|
|
460
|
+
readonly viewOf?: Fqn;
|
|
461
|
+
readonly rules: ViewRule[];
|
|
462
|
+
}
|
|
463
|
+
interface ScopedElementView<ViewIDs extends string, Tags extends string> extends BasicElementView<ViewIDs, Tags> {
|
|
464
|
+
readonly viewOf: Fqn;
|
|
465
|
+
}
|
|
466
|
+
interface ExtendsElementView<ViewIDs extends string, Tags extends string> extends BasicElementView<ViewIDs, Tags> {
|
|
467
|
+
readonly extends: ViewId<ViewIDs>;
|
|
468
|
+
}
|
|
469
|
+
type ElementView<ViewIDs extends string = string, Tags extends string = string> = ScopedElementView<ViewIDs, Tags> | ExtendsElementView<ViewIDs, Tags> | BasicElementView<ViewIDs, Tags>;
|
|
470
|
+
interface DynamicViewStep {
|
|
471
|
+
readonly source: Fqn;
|
|
472
|
+
readonly target: Fqn;
|
|
473
|
+
readonly title: string | null;
|
|
474
|
+
readonly description?: string;
|
|
475
|
+
readonly technology?: string;
|
|
476
|
+
readonly notation?: string;
|
|
477
|
+
readonly notes?: string;
|
|
478
|
+
readonly color?: Color;
|
|
479
|
+
readonly line?: RelationshipLineType;
|
|
480
|
+
readonly head?: RelationshipArrowType;
|
|
481
|
+
readonly tail?: RelationshipArrowType;
|
|
482
|
+
readonly isBackward?: boolean;
|
|
483
|
+
readonly navigateTo?: ViewId;
|
|
484
|
+
__parallel?: never;
|
|
485
|
+
}
|
|
486
|
+
interface DynamicViewParallelSteps {
|
|
487
|
+
readonly __parallel: DynamicViewStep[];
|
|
488
|
+
}
|
|
489
|
+
type DynamicViewStepOrParallel = DynamicViewStep | DynamicViewParallelSteps;
|
|
490
|
+
type DynamicViewIncludeRule = {
|
|
491
|
+
include: ElementPredicateExpression[];
|
|
492
|
+
};
|
|
493
|
+
type DynamicViewRule = DynamicViewIncludeRule | ViewRuleGlobalPredicateRef | ViewRuleStyle | ViewRuleGlobalStyle | ViewRuleAutoLayout;
|
|
494
|
+
interface DynamicView<ViewIDs extends string = string, Tags extends string = string> extends BasicView<"dynamic", ViewIDs, Tags> {
|
|
495
|
+
readonly __: "dynamic";
|
|
496
|
+
readonly steps: DynamicViewStepOrParallel[];
|
|
497
|
+
readonly rules: DynamicViewRule[];
|
|
498
|
+
}
|
|
499
|
+
type CustomColorDefinitions = {
|
|
500
|
+
[key: string]: ThemeColorValues;
|
|
501
|
+
};
|
|
502
|
+
type DeploymentViewRulePredicate = {
|
|
503
|
+
include: ExpressionV2[];
|
|
504
|
+
exclude?: never;
|
|
505
|
+
} | {
|
|
506
|
+
include?: never;
|
|
507
|
+
exclude: ExpressionV2[];
|
|
508
|
+
};
|
|
509
|
+
type DeploymentViewRuleStyle = {
|
|
510
|
+
targets: FqnExpr[];
|
|
511
|
+
notation?: string;
|
|
512
|
+
style: ElementStyle & {
|
|
513
|
+
color?: Color;
|
|
514
|
+
shape?: ElementShape;
|
|
515
|
+
icon?: IconUrl;
|
|
516
|
+
};
|
|
517
|
+
};
|
|
518
|
+
type DeploymentViewRule = DeploymentViewRulePredicate | ViewRuleAutoLayout | DeploymentViewRuleStyle;
|
|
519
|
+
interface DeploymentView<ViewIDs extends string = string, Tags extends string = string> extends BasicView<"deployment", ViewIDs, Tags> {
|
|
520
|
+
readonly __: "deployment";
|
|
521
|
+
readonly rules: DeploymentViewRule[];
|
|
522
|
+
}
|
|
523
|
+
type NodeId<IDs extends string = string> = Tagged<IDs, "Fqn">;
|
|
524
|
+
type EdgeId = Tagged<string, "EdgeId">;
|
|
525
|
+
interface ComputedNode {
|
|
526
|
+
id: NodeId;
|
|
527
|
+
kind: string;
|
|
528
|
+
parent: NodeId | null;
|
|
529
|
+
/**
|
|
530
|
+
* Reference to model element
|
|
531
|
+
* If 1 - node id is a reference
|
|
532
|
+
*/
|
|
533
|
+
modelRef?: 1 | Fqn;
|
|
534
|
+
/**
|
|
535
|
+
* Reference to deployment element
|
|
536
|
+
* If 1 - node id is a reference
|
|
537
|
+
*/
|
|
538
|
+
deploymentRef?: 1 | Fqn;
|
|
539
|
+
title: string;
|
|
540
|
+
description: string | null;
|
|
541
|
+
technology: string | null;
|
|
542
|
+
notation?: string;
|
|
543
|
+
tags: NonEmptyArray<Tag$1> | null;
|
|
544
|
+
links: NonEmptyArray<Link> | null;
|
|
545
|
+
children: NodeId[];
|
|
546
|
+
inEdges: EdgeId[];
|
|
547
|
+
outEdges: EdgeId[];
|
|
548
|
+
shape: ElementShape;
|
|
549
|
+
color: Color;
|
|
550
|
+
/**
|
|
551
|
+
* @deprecated Use `style` instead
|
|
552
|
+
*/
|
|
553
|
+
icon?: IconUrl;
|
|
554
|
+
style: ElementStyle;
|
|
555
|
+
navigateTo?: ViewId | null;
|
|
556
|
+
level: number;
|
|
557
|
+
depth?: number;
|
|
558
|
+
/**
|
|
559
|
+
* If this node was customized in the view
|
|
560
|
+
*/
|
|
561
|
+
isCustomized?: boolean;
|
|
562
|
+
}
|
|
563
|
+
declare namespace ComputedNode {
|
|
564
|
+
function modelRef(node: ComputedNode): Fqn | null;
|
|
565
|
+
function deploymentRef(node: ComputedNode): Fqn | null;
|
|
566
|
+
/**
|
|
567
|
+
* Nodes group is a special kind of node, exisiting only in view
|
|
568
|
+
*/
|
|
569
|
+
function isNodesGroup(node: ComputedNode): boolean;
|
|
570
|
+
}
|
|
571
|
+
interface ComputedEdge {
|
|
572
|
+
id: EdgeId;
|
|
573
|
+
parent: NodeId | null;
|
|
574
|
+
source: NodeId;
|
|
575
|
+
target: NodeId;
|
|
576
|
+
label: string | null;
|
|
577
|
+
description?: string;
|
|
578
|
+
technology?: string;
|
|
579
|
+
relations: RelationId[];
|
|
580
|
+
kind?: RelationshipKind;
|
|
581
|
+
notation?: string;
|
|
582
|
+
notes?: string;
|
|
583
|
+
color?: Color;
|
|
584
|
+
line?: RelationshipLineType;
|
|
585
|
+
head?: RelationshipArrowType;
|
|
586
|
+
tail?: RelationshipArrowType;
|
|
587
|
+
tags?: NonEmptyArray<Tag$1>;
|
|
588
|
+
navigateTo?: ViewId;
|
|
589
|
+
/**
|
|
590
|
+
* If this edge is derived from custom relationship predicate
|
|
591
|
+
*/
|
|
592
|
+
isCustomized?: boolean;
|
|
593
|
+
/**
|
|
594
|
+
* For layouting purposes
|
|
595
|
+
* @default 'forward'
|
|
596
|
+
*/
|
|
597
|
+
dir?: "forward" | "back" | "both";
|
|
598
|
+
}
|
|
599
|
+
interface ViewWithHash {
|
|
600
|
+
/**
|
|
601
|
+
* Hash of the view object.
|
|
602
|
+
* This is used to detect changes in layout
|
|
603
|
+
*/
|
|
604
|
+
hash: string;
|
|
605
|
+
}
|
|
606
|
+
interface ViewWithNotation {
|
|
607
|
+
notation?: {
|
|
608
|
+
elements: ElementNotation[];
|
|
609
|
+
};
|
|
610
|
+
}
|
|
611
|
+
interface ViewAutoLayout {
|
|
612
|
+
direction: ViewRuleAutoLayout["direction"];
|
|
613
|
+
rankSep?: number;
|
|
614
|
+
nodeSep?: number;
|
|
615
|
+
}
|
|
616
|
+
interface ComputedElementView<ViewIDs extends string = string, Tags extends string = string> extends Omit<ElementView<ViewIDs, Tags>, "rules" | "docUri">, ViewWithHash, ViewWithNotation {
|
|
617
|
+
readonly extends?: ViewId<ViewIDs>;
|
|
618
|
+
readonly autoLayout: ViewAutoLayout;
|
|
619
|
+
readonly nodes: ComputedNode[];
|
|
620
|
+
readonly edges: ComputedEdge[];
|
|
621
|
+
rules?: never;
|
|
622
|
+
docUri?: never;
|
|
623
|
+
}
|
|
624
|
+
interface ComputedDynamicView<ViewIDs extends string = string, Tags extends string = string> extends Omit<DynamicView<ViewIDs, Tags>, "rules" | "steps" | "docUri">, ViewWithHash, ViewWithNotation {
|
|
625
|
+
readonly autoLayout: ViewAutoLayout;
|
|
626
|
+
readonly nodes: ComputedNode[];
|
|
627
|
+
readonly edges: ComputedEdge[];
|
|
628
|
+
steps?: never;
|
|
629
|
+
rules?: never;
|
|
630
|
+
docUri?: never;
|
|
631
|
+
}
|
|
632
|
+
interface ComputedDeploymentView<ViewIDs extends string = string, Tags extends string = string> extends Omit<DeploymentView<ViewIDs, Tags>, "rules" | "docUri">, ViewWithHash, ViewWithNotation {
|
|
633
|
+
readonly autoLayout: ViewAutoLayout;
|
|
634
|
+
readonly nodes: ComputedNode[];
|
|
635
|
+
readonly edges: ComputedEdge[];
|
|
636
|
+
rules?: never;
|
|
637
|
+
docUri?: never;
|
|
638
|
+
}
|
|
639
|
+
type ComputedView<ViewIDs extends string = string, Tags extends string = string> = ComputedElementView<ViewIDs, Tags> | ComputedDynamicView<ViewIDs, Tags> | ComputedDeploymentView<ViewIDs, Tags>;
|
|
640
|
+
declare namespace ComputedView {
|
|
641
|
+
function isDeployment(view: ComputedView): view is ComputedDeploymentView;
|
|
642
|
+
function isDynamic(view: ComputedView): view is ComputedDynamicView;
|
|
643
|
+
function isElement(view: ComputedView): view is ComputedElementView;
|
|
644
|
+
}
|
|
645
|
+
type BBox = {
|
|
646
|
+
x: number;
|
|
647
|
+
y: number;
|
|
648
|
+
width: number;
|
|
649
|
+
height: number;
|
|
650
|
+
};
|
|
651
|
+
interface DiagramNode extends ComputedNode {
|
|
652
|
+
width: number;
|
|
653
|
+
height: number;
|
|
654
|
+
position: Point;
|
|
655
|
+
labelBBox: BBox;
|
|
656
|
+
}
|
|
657
|
+
declare namespace DiagramNode {
|
|
658
|
+
function modelRef(node: DiagramNode): Fqn | null;
|
|
659
|
+
function deploymentRef(node: DiagramNode): Fqn | null;
|
|
660
|
+
/**
|
|
661
|
+
* Nodes group is a special kind of node, exisiting only in view
|
|
662
|
+
*/
|
|
663
|
+
function isNodesGroup(node: DiagramNode): boolean;
|
|
664
|
+
}
|
|
665
|
+
interface DiagramEdge extends ComputedEdge {
|
|
666
|
+
points: NonEmptyArray<Point>;
|
|
667
|
+
controlPoints?: NonEmptyArray<XYPoint>;
|
|
668
|
+
labelBBox?: BBox | null;
|
|
669
|
+
dotpos?: string;
|
|
670
|
+
}
|
|
671
|
+
interface DiagramView<ViewIDs extends string = string, Tags extends string = string> extends Omit<ComputedView<ViewIDs, Tags>, "nodes" | "edges" | "manualLayout"> {
|
|
672
|
+
readonly nodes: DiagramNode[];
|
|
673
|
+
readonly edges: DiagramEdge[];
|
|
674
|
+
readonly bounds: BBox;
|
|
675
|
+
/**
|
|
676
|
+
* If diagram has manual layout
|
|
677
|
+
* But was changed and layout should be recalculated
|
|
678
|
+
*/
|
|
679
|
+
hasLayoutDrift?: boolean;
|
|
680
|
+
manualLayout?: never;
|
|
681
|
+
}
|
|
682
|
+
type ViewManualLayout = {
|
|
683
|
+
readonly hash: string;
|
|
684
|
+
readonly x: number;
|
|
685
|
+
readonly y: number;
|
|
686
|
+
readonly width: number;
|
|
687
|
+
readonly height: number;
|
|
688
|
+
readonly autoLayout: ViewAutoLayout;
|
|
689
|
+
readonly nodes: Record<string, {
|
|
690
|
+
isCompound: boolean;
|
|
691
|
+
x: number;
|
|
692
|
+
y: number;
|
|
693
|
+
width: number;
|
|
694
|
+
height: number;
|
|
695
|
+
}>;
|
|
696
|
+
readonly edges: Record<string, {
|
|
697
|
+
dotpos?: string;
|
|
698
|
+
points: NonEmptyArray<Point>;
|
|
699
|
+
controlPoints?: NonEmptyArray<XYPoint>;
|
|
700
|
+
labelBBox?: BBox;
|
|
701
|
+
}>;
|
|
702
|
+
};
|
|
703
|
+
type RelationId = Tagged<string, "RelationID">;
|
|
704
|
+
type RelationshipKind<Kinds extends string = string> = Tagged<Kinds, "RelationshipKind">;
|
|
705
|
+
type RelationshipLineType = "dashed" | "solid" | "dotted";
|
|
706
|
+
type RelationshipArrowType = "none" | "normal" | "onormal" | "dot" | "odot" | "diamond" | "odiamond" | "crow" | "open" | "vee";
|
|
707
|
+
type PredicateSelector = "children" | "expanded" | "descendants";
|
|
708
|
+
declare namespace ViewChange {
|
|
709
|
+
interface ChangeElementStyle {
|
|
710
|
+
op: "change-element-style";
|
|
711
|
+
style: {
|
|
712
|
+
border?: BorderStyle;
|
|
713
|
+
opacity?: number;
|
|
714
|
+
shape?: ElementShape;
|
|
715
|
+
color?: ThemeColor;
|
|
716
|
+
};
|
|
717
|
+
targets: NonEmptyArray<Fqn>;
|
|
718
|
+
}
|
|
719
|
+
interface SaveManualLayout {
|
|
720
|
+
op: "save-manual-layout";
|
|
721
|
+
layout: ViewManualLayout;
|
|
722
|
+
}
|
|
723
|
+
interface ChangeAutoLayout {
|
|
724
|
+
op: "change-autolayout";
|
|
725
|
+
layout: {
|
|
726
|
+
direction: AutoLayoutDirection;
|
|
727
|
+
nodeSep?: number | null;
|
|
728
|
+
rankSep?: number | null;
|
|
729
|
+
};
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
type ViewChange = ViewChange.ChangeElementStyle | ViewChange.SaveManualLayout | ViewChange.ChangeAutoLayout;
|
|
733
|
+
type NodeDimensionChange = {
|
|
734
|
+
id: string;
|
|
735
|
+
type: "dimensions";
|
|
736
|
+
dimensions?: Dimensions;
|
|
737
|
+
resizing?: boolean;
|
|
738
|
+
setAttributes?: boolean;
|
|
739
|
+
};
|
|
740
|
+
type NodePositionChange = {
|
|
741
|
+
id: string;
|
|
742
|
+
type: "position";
|
|
743
|
+
position?: XYPosition;
|
|
744
|
+
positionAbsolute?: XYPosition;
|
|
745
|
+
dragging?: boolean;
|
|
746
|
+
};
|
|
747
|
+
type NodeSelectionChange = {
|
|
748
|
+
id: string;
|
|
749
|
+
type: "select";
|
|
750
|
+
selected: boolean;
|
|
751
|
+
};
|
|
752
|
+
type NodeRemoveChange = {
|
|
753
|
+
id: string;
|
|
754
|
+
type: "remove";
|
|
755
|
+
};
|
|
756
|
+
type NodeAddChange<NodeType extends NodeBase = NodeBase> = {
|
|
757
|
+
item: NodeType;
|
|
758
|
+
type: "add";
|
|
759
|
+
index?: number;
|
|
760
|
+
};
|
|
761
|
+
type NodeReplaceChange<NodeType extends NodeBase = NodeBase> = {
|
|
762
|
+
id: string;
|
|
763
|
+
item: NodeType;
|
|
764
|
+
type: "replace";
|
|
765
|
+
};
|
|
766
|
+
type NodeChange<NodeType extends NodeBase = NodeBase> = NodeDimensionChange | NodePositionChange | NodeSelectionChange | NodeRemoveChange | NodeAddChange<NodeType> | NodeReplaceChange<NodeType>;
|
|
767
|
+
type EdgeSelectionChange = NodeSelectionChange;
|
|
768
|
+
type EdgeRemoveChange = NodeRemoveChange;
|
|
769
|
+
type EdgeAddChange<EdgeType extends EdgeBase = EdgeBase> = {
|
|
770
|
+
item: EdgeType;
|
|
771
|
+
type: "add";
|
|
772
|
+
index?: number;
|
|
773
|
+
};
|
|
774
|
+
type EdgeReplaceChange<EdgeType extends EdgeBase = EdgeBase> = {
|
|
775
|
+
id: string;
|
|
776
|
+
item: EdgeType;
|
|
777
|
+
type: "replace";
|
|
778
|
+
};
|
|
779
|
+
type EdgeChange<EdgeType extends EdgeBase = EdgeBase> = EdgeSelectionChange | EdgeRemoveChange | EdgeAddChange<EdgeType> | EdgeReplaceChange<EdgeType>;
|
|
780
|
+
declare enum Position {
|
|
781
|
+
Left = "left",
|
|
782
|
+
Top = "top",
|
|
783
|
+
Right = "right",
|
|
784
|
+
Bottom = "bottom"
|
|
785
|
+
}
|
|
786
|
+
type XYPosition = {
|
|
787
|
+
x: number;
|
|
788
|
+
y: number;
|
|
789
|
+
};
|
|
790
|
+
type Dimensions = {
|
|
791
|
+
width: number;
|
|
792
|
+
height: number;
|
|
793
|
+
};
|
|
794
|
+
type Rect = Dimensions & XYPosition;
|
|
795
|
+
type CoordinateExtent = [
|
|
796
|
+
[
|
|
797
|
+
number,
|
|
798
|
+
number
|
|
799
|
+
],
|
|
800
|
+
[
|
|
801
|
+
number,
|
|
802
|
+
number
|
|
803
|
+
]
|
|
804
|
+
];
|
|
805
|
+
type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
|
|
806
|
+
type NodeBase<NodeData extends Record<string, unknown> = Record<string, unknown>, NodeType extends string = string> = {
|
|
807
|
+
/** Unique id of a node */
|
|
808
|
+
id: string;
|
|
809
|
+
/**
|
|
810
|
+
* Position of a node on the pane
|
|
811
|
+
* @example { x: 0, y: 0 }
|
|
812
|
+
*/
|
|
813
|
+
position: XYPosition;
|
|
814
|
+
/** Arbitrary data passed to a node */
|
|
815
|
+
data: NodeData;
|
|
816
|
+
/** Type of node defined in nodeTypes */
|
|
817
|
+
type?: NodeType;
|
|
818
|
+
/**
|
|
819
|
+
* Only relevant for default, source, target nodeType. controls source position
|
|
820
|
+
* @example 'right', 'left', 'top', 'bottom'
|
|
821
|
+
*/
|
|
822
|
+
sourcePosition?: Position;
|
|
823
|
+
/**
|
|
824
|
+
* Only relevant for default, source, target nodeType. controls target position
|
|
825
|
+
* @example 'right', 'left', 'top', 'bottom'
|
|
826
|
+
*/
|
|
827
|
+
targetPosition?: Position;
|
|
828
|
+
hidden?: boolean;
|
|
829
|
+
selected?: boolean;
|
|
830
|
+
/** True, if node is being dragged */
|
|
831
|
+
dragging?: boolean;
|
|
832
|
+
draggable?: boolean;
|
|
833
|
+
selectable?: boolean;
|
|
834
|
+
connectable?: boolean;
|
|
835
|
+
deletable?: boolean;
|
|
836
|
+
dragHandle?: string;
|
|
837
|
+
width?: number;
|
|
838
|
+
height?: number;
|
|
839
|
+
initialWidth?: number;
|
|
840
|
+
initialHeight?: number;
|
|
841
|
+
/** Parent node id, used for creating sub-flows */
|
|
842
|
+
parentId?: string;
|
|
843
|
+
zIndex?: number;
|
|
844
|
+
/**
|
|
845
|
+
* Boundary a node can be moved in
|
|
846
|
+
* @example 'parent' or [[0, 0], [100, 100]]
|
|
847
|
+
*/
|
|
848
|
+
extent?: "parent" | CoordinateExtent;
|
|
849
|
+
expandParent?: boolean;
|
|
850
|
+
ariaLabel?: string;
|
|
851
|
+
/**
|
|
852
|
+
* Origin of the node relative to it's position
|
|
853
|
+
* @example
|
|
854
|
+
* [0.5, 0.5] // centers the node
|
|
855
|
+
* [0, 0] // top left
|
|
856
|
+
* [1, 1] // bottom right
|
|
857
|
+
*/
|
|
858
|
+
origin?: NodeOrigin;
|
|
859
|
+
handles?: NodeHandle[];
|
|
860
|
+
measured?: {
|
|
861
|
+
width?: number;
|
|
862
|
+
height?: number;
|
|
863
|
+
};
|
|
864
|
+
};
|
|
865
|
+
type InternalNodeBase<NodeType extends NodeBase = NodeBase> = NodeType & {
|
|
866
|
+
measured: {
|
|
867
|
+
width?: number;
|
|
868
|
+
height?: number;
|
|
869
|
+
};
|
|
870
|
+
internals: {
|
|
871
|
+
positionAbsolute: XYPosition;
|
|
872
|
+
z: number;
|
|
873
|
+
/**
|
|
874
|
+
* Holds a reference to the original node object provided by the user.
|
|
875
|
+
* Used as an optimization to avoid certain operations.
|
|
876
|
+
*/
|
|
877
|
+
userNode: NodeType;
|
|
878
|
+
handleBounds?: NodeHandleBounds;
|
|
879
|
+
bounds?: NodeBounds;
|
|
880
|
+
};
|
|
881
|
+
};
|
|
882
|
+
type NodeProps<NodeType extends NodeBase> = Pick<NodeType, "id" | "data" | "width" | "height" | "sourcePosition" | "targetPosition" | "dragHandle" | "parentId"> & Required<Pick<NodeType, "type" | "dragging" | "zIndex" | "selectable" | "deletable" | "selected" | "draggable">> & {
|
|
883
|
+
/** whether a node is connectable or not */
|
|
884
|
+
isConnectable: boolean;
|
|
885
|
+
/** position absolute x value */
|
|
886
|
+
positionAbsoluteX: number;
|
|
887
|
+
/** position absolute x value */
|
|
888
|
+
positionAbsoluteY: number;
|
|
889
|
+
};
|
|
890
|
+
type NodeHandleBounds = {
|
|
891
|
+
source: Handle[] | null;
|
|
892
|
+
target: Handle[] | null;
|
|
893
|
+
};
|
|
894
|
+
type NodeBounds = XYPosition & {
|
|
895
|
+
width: number | null;
|
|
896
|
+
height: number | null;
|
|
897
|
+
};
|
|
898
|
+
type NodeOrigin = [
|
|
899
|
+
number,
|
|
900
|
+
number
|
|
901
|
+
];
|
|
902
|
+
type NodeHandle = Omit<Optional<Handle, "width" | "height">, "nodeId">;
|
|
903
|
+
type HandleType = "source" | "target";
|
|
904
|
+
type Handle = {
|
|
905
|
+
id?: string | null;
|
|
906
|
+
nodeId: string;
|
|
907
|
+
x: number;
|
|
908
|
+
y: number;
|
|
909
|
+
position: Position;
|
|
910
|
+
type: HandleType;
|
|
911
|
+
width: number;
|
|
912
|
+
height: number;
|
|
913
|
+
};
|
|
914
|
+
type OnMove = (event: MouseEvent | TouchEvent | null, viewport: Viewport) => void;
|
|
915
|
+
type OnMoveStart = OnMove;
|
|
916
|
+
type OnMoveEnd = OnMove;
|
|
917
|
+
type ZoomInOut = (options?: ViewportHelperFunctionOptions) => Promise<boolean>;
|
|
918
|
+
type ZoomTo = (zoomLevel: number, options?: ViewportHelperFunctionOptions) => Promise<boolean>;
|
|
919
|
+
type GetZoom = () => number;
|
|
920
|
+
type GetViewport = () => Viewport;
|
|
921
|
+
type SetViewport = (viewport: Viewport, options?: ViewportHelperFunctionOptions) => Promise<boolean>;
|
|
922
|
+
type SetCenter = (x: number, y: number, options?: SetCenterOptions) => Promise<boolean>;
|
|
923
|
+
type FitBounds = (bounds: Rect, options?: FitBoundsOptions) => Promise<boolean>;
|
|
924
|
+
type Connection = {
|
|
925
|
+
source: string;
|
|
926
|
+
target: string;
|
|
927
|
+
sourceHandle: string | null;
|
|
928
|
+
targetHandle: string | null;
|
|
929
|
+
};
|
|
930
|
+
type HandleConnection = Connection & {
|
|
931
|
+
edgeId: string;
|
|
932
|
+
};
|
|
933
|
+
type NodeConnection = Connection & {
|
|
934
|
+
edgeId: string;
|
|
935
|
+
};
|
|
936
|
+
declare enum ConnectionMode {
|
|
937
|
+
Strict = "strict",
|
|
938
|
+
Loose = "loose"
|
|
939
|
+
}
|
|
940
|
+
type OnConnectStartParams = {
|
|
941
|
+
nodeId: string | null;
|
|
942
|
+
handleId: string | null;
|
|
943
|
+
handleType: HandleType | null;
|
|
944
|
+
};
|
|
945
|
+
type OnConnectStart = (event: MouseEvent | TouchEvent, params: OnConnectStartParams) => void;
|
|
946
|
+
type OnConnect = (connection: Connection) => void;
|
|
947
|
+
type OnConnectEnd = (event: MouseEvent | TouchEvent, connectionState: FinalConnectionState) => void;
|
|
948
|
+
type FitViewOptionsBase<NodeType extends NodeBase = NodeBase> = {
|
|
949
|
+
padding?: number;
|
|
950
|
+
includeHiddenNodes?: boolean;
|
|
951
|
+
minZoom?: number;
|
|
952
|
+
maxZoom?: number;
|
|
953
|
+
duration?: number;
|
|
954
|
+
nodes?: (NodeType | {
|
|
955
|
+
id: string;
|
|
956
|
+
})[];
|
|
957
|
+
};
|
|
958
|
+
type Viewport = {
|
|
959
|
+
x: number;
|
|
960
|
+
y: number;
|
|
961
|
+
zoom: number;
|
|
962
|
+
};
|
|
963
|
+
type KeyCode = string | Array<string>;
|
|
964
|
+
type SnapGrid = [
|
|
965
|
+
number,
|
|
966
|
+
number
|
|
967
|
+
];
|
|
968
|
+
declare enum PanOnScrollMode {
|
|
969
|
+
Free = "free",
|
|
970
|
+
Vertical = "vertical",
|
|
971
|
+
Horizontal = "horizontal"
|
|
972
|
+
}
|
|
973
|
+
type ViewportHelperFunctionOptions = {
|
|
974
|
+
duration?: number;
|
|
975
|
+
};
|
|
976
|
+
type SetCenterOptions = ViewportHelperFunctionOptions & {
|
|
977
|
+
zoom?: number;
|
|
978
|
+
};
|
|
979
|
+
type FitBoundsOptions = ViewportHelperFunctionOptions & {
|
|
980
|
+
padding?: number;
|
|
981
|
+
};
|
|
982
|
+
type PanelPosition = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
|
|
983
|
+
type ProOptions = {
|
|
984
|
+
account?: string;
|
|
985
|
+
hideAttribution: boolean;
|
|
986
|
+
};
|
|
987
|
+
declare enum SelectionMode$1 {
|
|
988
|
+
Partial = "partial",
|
|
989
|
+
Full = "full"
|
|
990
|
+
}
|
|
991
|
+
type OnError = (id: string, message: string) => void;
|
|
992
|
+
type NoConnection = {
|
|
993
|
+
inProgress: false;
|
|
994
|
+
isValid: null;
|
|
995
|
+
from: null;
|
|
996
|
+
fromHandle: null;
|
|
997
|
+
fromPosition: null;
|
|
998
|
+
fromNode: null;
|
|
999
|
+
to: null;
|
|
1000
|
+
toHandle: null;
|
|
1001
|
+
toPosition: null;
|
|
1002
|
+
toNode: null;
|
|
1003
|
+
};
|
|
1004
|
+
type ConnectionInProgress<NodeType extends InternalNodeBase = InternalNodeBase> = {
|
|
1005
|
+
inProgress: true;
|
|
1006
|
+
isValid: boolean | null;
|
|
1007
|
+
from: XYPosition;
|
|
1008
|
+
fromHandle: Handle;
|
|
1009
|
+
fromPosition: Position;
|
|
1010
|
+
fromNode: NodeType;
|
|
1011
|
+
to: XYPosition;
|
|
1012
|
+
toHandle: Handle | null;
|
|
1013
|
+
toPosition: Position;
|
|
1014
|
+
toNode: NodeType | null;
|
|
1015
|
+
};
|
|
1016
|
+
type ConnectionState<NodeType extends InternalNodeBase = InternalNodeBase> = ConnectionInProgress<NodeType> | NoConnection;
|
|
1017
|
+
type FinalConnectionState<NodeType extends InternalNodeBase = InternalNodeBase> = Omit<ConnectionState<NodeType>, "inProgress">;
|
|
1018
|
+
type ColorModeClass = "light" | "dark";
|
|
1019
|
+
type ColorMode = ColorModeClass | "system";
|
|
1020
|
+
type OnBeforeDeleteBase<NodeType extends NodeBase = NodeBase, EdgeType extends EdgeBase = EdgeBase> = ({ nodes, edges, }: {
|
|
1021
|
+
nodes: NodeType[];
|
|
1022
|
+
edges: EdgeType[];
|
|
1023
|
+
}) => Promise<boolean | {
|
|
1024
|
+
nodes: NodeType[];
|
|
1025
|
+
edges: EdgeType[];
|
|
1026
|
+
}>;
|
|
1027
|
+
type EdgeBase<EdgeData extends Record<string, unknown> = Record<string, unknown>, EdgeType extends string | undefined = string | undefined> = {
|
|
1028
|
+
/** Unique id of an edge */
|
|
1029
|
+
id: string;
|
|
1030
|
+
/** Type of an edge defined in edgeTypes */
|
|
1031
|
+
type?: EdgeType;
|
|
1032
|
+
/** Id of source node */
|
|
1033
|
+
source: string;
|
|
1034
|
+
/** Id of target node */
|
|
1035
|
+
target: string;
|
|
1036
|
+
/**
|
|
1037
|
+
* Id of source handle
|
|
1038
|
+
* only needed if there are multiple handles per node
|
|
1039
|
+
*/
|
|
1040
|
+
sourceHandle?: string | null;
|
|
1041
|
+
/**
|
|
1042
|
+
* Id of target handle
|
|
1043
|
+
* only needed if there are multiple handles per node
|
|
1044
|
+
*/
|
|
1045
|
+
targetHandle?: string | null;
|
|
1046
|
+
animated?: boolean;
|
|
1047
|
+
hidden?: boolean;
|
|
1048
|
+
deletable?: boolean;
|
|
1049
|
+
selectable?: boolean;
|
|
1050
|
+
/** Arbitrary data passed to an edge */
|
|
1051
|
+
data?: EdgeData;
|
|
1052
|
+
selected?: boolean;
|
|
1053
|
+
/**
|
|
1054
|
+
* Set the marker on the beginning of an edge
|
|
1055
|
+
* @example 'arrow', 'arrowclosed' or custom marker
|
|
1056
|
+
*/
|
|
1057
|
+
markerStart?: EdgeMarkerType;
|
|
1058
|
+
/**
|
|
1059
|
+
* Set the marker on the end of an edge
|
|
1060
|
+
* @example 'arrow', 'arrowclosed' or custom marker
|
|
1061
|
+
*/
|
|
1062
|
+
markerEnd?: EdgeMarkerType;
|
|
1063
|
+
zIndex?: number;
|
|
1064
|
+
ariaLabel?: string;
|
|
1065
|
+
/** Padding around the edge where interaction is still possible */
|
|
1066
|
+
interactionWidth?: number;
|
|
1067
|
+
};
|
|
1068
|
+
type DefaultEdgeOptionsBase<EdgeType extends EdgeBase> = Omit<EdgeType, "id" | "source" | "target" | "sourceHandle" | "targetHandle" | "selected">;
|
|
1069
|
+
declare enum ConnectionLineType {
|
|
1070
|
+
Bezier = "default",
|
|
1071
|
+
Straight = "straight",
|
|
1072
|
+
Step = "step",
|
|
1073
|
+
SmoothStep = "smoothstep",
|
|
1074
|
+
SimpleBezier = "simplebezier"
|
|
1075
|
+
}
|
|
1076
|
+
type EdgeMarker = {
|
|
1077
|
+
type: MarkerType;
|
|
1078
|
+
color?: string;
|
|
1079
|
+
width?: number;
|
|
1080
|
+
height?: number;
|
|
1081
|
+
markerUnits?: string;
|
|
1082
|
+
orient?: string;
|
|
1083
|
+
strokeWidth?: number;
|
|
1084
|
+
};
|
|
1085
|
+
type EdgeMarkerType = string | EdgeMarker;
|
|
1086
|
+
declare enum MarkerType {
|
|
1087
|
+
Arrow = "arrow",
|
|
1088
|
+
ArrowClosed = "arrowclosed"
|
|
1089
|
+
}
|
|
1090
|
+
type EdgePosition = {
|
|
1091
|
+
sourceX: number;
|
|
1092
|
+
sourceY: number;
|
|
1093
|
+
targetX: number;
|
|
1094
|
+
targetY: number;
|
|
1095
|
+
sourcePosition: Position;
|
|
1096
|
+
targetPosition: Position;
|
|
1097
|
+
};
|
|
1098
|
+
type OnNodesChange<NodeType extends Node$1 = Node$1> = (changes: NodeChange<NodeType>[]) => void;
|
|
1099
|
+
type OnEdgesChange<EdgeType extends Edge = Edge> = (changes: EdgeChange<EdgeType>[]) => void;
|
|
1100
|
+
type OnNodesDelete<NodeType extends Node$1 = Node$1> = (nodes: NodeType[]) => void;
|
|
1101
|
+
type OnEdgesDelete<EdgeType extends Edge = Edge> = (edges: EdgeType[]) => void;
|
|
1102
|
+
type OnDelete<NodeType extends Node$1 = Node$1, EdgeType extends Edge = Edge> = (params: {
|
|
1103
|
+
nodes: NodeType[];
|
|
1104
|
+
edges: EdgeType[];
|
|
1105
|
+
}) => void;
|
|
1106
|
+
type NodeTypes = Record<string, ComponentType<NodeProps$1 & {
|
|
1107
|
+
data: any;
|
|
1108
|
+
type: any;
|
|
1109
|
+
}>>;
|
|
1110
|
+
type EdgeTypes = Record<string, ComponentType<EdgeProps & {
|
|
1111
|
+
data: any;
|
|
1112
|
+
type: any;
|
|
1113
|
+
}>>;
|
|
1114
|
+
type OnSelectionChangeParams<NodeType extends Node$1 = Node$1, EdgeType extends Edge = Edge> = {
|
|
1115
|
+
nodes: NodeType[];
|
|
1116
|
+
edges: EdgeType[];
|
|
1117
|
+
};
|
|
1118
|
+
type OnSelectionChangeFunc<NodeType extends Node$1 = Node$1, EdgeType extends Edge = Edge> = (params: OnSelectionChangeParams<NodeType, EdgeType>) => void;
|
|
1119
|
+
type FitViewOptions<NodeType extends Node$1 = Node$1> = FitViewOptionsBase<NodeType>;
|
|
1120
|
+
type FitView = (fitViewOptions?: FitViewOptions) => Promise<boolean>;
|
|
1121
|
+
type OnInit<NodeType extends Node$1 = Node$1, EdgeType extends Edge = Edge> = (reactFlowInstance: ReactFlowInstance<NodeType, EdgeType>) => void;
|
|
1122
|
+
type ViewportHelperFunctions = {
|
|
1123
|
+
/**
|
|
1124
|
+
* Zooms viewport in by 1.2.
|
|
1125
|
+
*
|
|
1126
|
+
* @param options.duration - optional duration. If set, a transition will be applied
|
|
1127
|
+
*/
|
|
1128
|
+
zoomIn: ZoomInOut;
|
|
1129
|
+
/**
|
|
1130
|
+
* Zooms viewport out by 1 / 1.2.
|
|
1131
|
+
*
|
|
1132
|
+
* @param options.duration - optional duration. If set, a transition will be applied
|
|
1133
|
+
*/
|
|
1134
|
+
zoomOut: ZoomInOut;
|
|
1135
|
+
/**
|
|
1136
|
+
* Sets the current zoom level.
|
|
1137
|
+
*
|
|
1138
|
+
* @param zoomLevel - the zoom level to set
|
|
1139
|
+
* @param options.duration - optional duration. If set, a transition will be applied
|
|
1140
|
+
*/
|
|
1141
|
+
zoomTo: ZoomTo;
|
|
1142
|
+
/**
|
|
1143
|
+
* Returns the current zoom level.
|
|
1144
|
+
*
|
|
1145
|
+
* @returns current zoom as a number
|
|
1146
|
+
*/
|
|
1147
|
+
getZoom: GetZoom;
|
|
1148
|
+
/**
|
|
1149
|
+
* Sets the current viewport.
|
|
1150
|
+
*
|
|
1151
|
+
* @param viewport - the viewport to set
|
|
1152
|
+
* @param options.duration - optional duration. If set, a transition will be applied
|
|
1153
|
+
*/
|
|
1154
|
+
setViewport: SetViewport;
|
|
1155
|
+
/**
|
|
1156
|
+
* Returns the current viewport.
|
|
1157
|
+
*
|
|
1158
|
+
* @returns Viewport
|
|
1159
|
+
*/
|
|
1160
|
+
getViewport: GetViewport;
|
|
1161
|
+
/**
|
|
1162
|
+
* Fits the view.
|
|
1163
|
+
*
|
|
1164
|
+
* @param options.padding - optional padding
|
|
1165
|
+
* @param options.includeHiddenNodes - optional includeHiddenNodes
|
|
1166
|
+
* @param options.minZoom - optional minZoom
|
|
1167
|
+
* @param options.maxZoom - optional maxZoom
|
|
1168
|
+
* @param options.duration - optional duration. If set, a transition will be applied
|
|
1169
|
+
* @param options.nodes - optional nodes to fit the view to
|
|
1170
|
+
*/
|
|
1171
|
+
fitView: FitView;
|
|
1172
|
+
/**
|
|
1173
|
+
* Sets the center of the view to the given position.
|
|
1174
|
+
*
|
|
1175
|
+
* @param x - x position
|
|
1176
|
+
* @param y - y position
|
|
1177
|
+
* @param options.zoom - optional zoom
|
|
1178
|
+
*/
|
|
1179
|
+
setCenter: SetCenter;
|
|
1180
|
+
/**
|
|
1181
|
+
* Fits the view to the given bounds .
|
|
1182
|
+
*
|
|
1183
|
+
* @param bounds - the bounds ({ x: number, y: number, width: number, height: number }) to fit the view to
|
|
1184
|
+
* @param options.padding - optional padding
|
|
1185
|
+
*/
|
|
1186
|
+
fitBounds: FitBounds;
|
|
1187
|
+
/**
|
|
1188
|
+
* Converts a screen / client position to a flow position.
|
|
1189
|
+
*
|
|
1190
|
+
* @param clientPosition - the screen / client position. When you are working with events you can use event.clientX and event.clientY
|
|
1191
|
+
* @param options.snapToGrid - if true, the converted position will be snapped to the grid
|
|
1192
|
+
* @returns position as { x: number, y: number }
|
|
1193
|
+
*
|
|
1194
|
+
* @example
|
|
1195
|
+
* const flowPosition = screenToFlowPosition({ x: event.clientX, y: event.clientY })
|
|
1196
|
+
*/
|
|
1197
|
+
screenToFlowPosition: (clientPosition: XYPosition, options?: {
|
|
1198
|
+
snapToGrid: boolean;
|
|
1199
|
+
}) => XYPosition;
|
|
1200
|
+
/**
|
|
1201
|
+
* Converts a flow position to a screen / client position.
|
|
1202
|
+
*
|
|
1203
|
+
* @param flowPosition - the screen / client position. When you are working with events you can use event.clientX and event.clientY
|
|
1204
|
+
* @returns position as { x: number, y: number }
|
|
1205
|
+
*
|
|
1206
|
+
* @example
|
|
1207
|
+
* const clientPosition = flowToScreenPosition({ x: node.position.x, y: node.position.y })
|
|
1208
|
+
*/
|
|
1209
|
+
flowToScreenPosition: (flowPosition: XYPosition) => XYPosition;
|
|
1210
|
+
};
|
|
1211
|
+
type OnBeforeDelete<NodeType extends Node$1 = Node$1, EdgeType extends Edge = Edge> = OnBeforeDeleteBase<NodeType, EdgeType>;
|
|
1212
|
+
type IsValidConnection<EdgeType extends Edge = Edge> = (edge: EdgeType | Connection) => boolean;
|
|
1213
|
+
type Node$1<NodeData extends Record<string, unknown> = Record<string, unknown>, NodeType extends string = string> = NodeBase<NodeData, NodeType> & {
|
|
1214
|
+
style?: CSSProperties;
|
|
1215
|
+
className?: string;
|
|
1216
|
+
resizing?: boolean;
|
|
1217
|
+
focusable?: boolean;
|
|
1218
|
+
};
|
|
1219
|
+
type InternalNode<NodeType extends Node$1 = Node$1> = InternalNodeBase<NodeType>;
|
|
1220
|
+
type NodeMouseHandler<NodeType extends Node$1 = Node$1> = (event: ReactMouseEvent, node: NodeType) => void;
|
|
1221
|
+
type SelectionDragHandler<NodeType extends Node$1 = Node$1> = (event: ReactMouseEvent, nodes: NodeType[]) => void;
|
|
1222
|
+
type OnNodeDrag<NodeType extends Node$1 = Node$1> = (event: ReactMouseEvent, node: NodeType, nodes: NodeType[]) => void;
|
|
1223
|
+
type NodeProps$1<NodeType extends Node$1 = Node$1> = NodeProps<NodeType>;
|
|
1224
|
+
type EdgeLabelOptions = {
|
|
1225
|
+
label?: string | ReactNode;
|
|
1226
|
+
labelStyle?: CSSProperties;
|
|
1227
|
+
labelShowBg?: boolean;
|
|
1228
|
+
labelBgStyle?: CSSProperties;
|
|
1229
|
+
labelBgPadding?: [
|
|
1230
|
+
number,
|
|
1231
|
+
number
|
|
1232
|
+
];
|
|
1233
|
+
labelBgBorderRadius?: number;
|
|
1234
|
+
};
|
|
1235
|
+
type Edge<EdgeData extends Record<string, unknown> = Record<string, unknown>, EdgeType extends string | undefined = string | undefined> = EdgeBase<EdgeData, EdgeType> & EdgeLabelOptions & {
|
|
1236
|
+
style?: CSSProperties;
|
|
1237
|
+
className?: string;
|
|
1238
|
+
reconnectable?: boolean | HandleType;
|
|
1239
|
+
focusable?: boolean;
|
|
1240
|
+
};
|
|
1241
|
+
type EdgeMouseHandler<EdgeType extends Edge = Edge> = (event: ReactMouseEvent, edge: EdgeType) => void;
|
|
1242
|
+
type DefaultEdgeOptions = DefaultEdgeOptionsBase<Edge>;
|
|
1243
|
+
type EdgeProps<EdgeType extends Edge = Edge> = Pick<EdgeType, "id" | "animated" | "data" | "style" | "selected" | "source" | "target" | "selectable" | "deletable"> & EdgePosition & EdgeLabelOptions & {
|
|
1244
|
+
sourceHandleId?: string | null;
|
|
1245
|
+
targetHandleId?: string | null;
|
|
1246
|
+
markerStart?: string;
|
|
1247
|
+
markerEnd?: string;
|
|
1248
|
+
pathOptions?: any;
|
|
1249
|
+
interactionWidth?: number;
|
|
1250
|
+
};
|
|
1251
|
+
type OnReconnect<EdgeType extends Edge = Edge> = (oldEdge: EdgeType, newConnection: Connection) => void;
|
|
1252
|
+
type ConnectionLineComponentProps<NodeType extends Node$1 = Node$1> = {
|
|
1253
|
+
connectionLineStyle?: CSSProperties;
|
|
1254
|
+
connectionLineType: ConnectionLineType;
|
|
1255
|
+
fromNode: InternalNode<NodeType>;
|
|
1256
|
+
fromHandle: Handle;
|
|
1257
|
+
fromX: number;
|
|
1258
|
+
fromY: number;
|
|
1259
|
+
toX: number;
|
|
1260
|
+
toY: number;
|
|
1261
|
+
fromPosition: Position;
|
|
1262
|
+
toPosition: Position;
|
|
1263
|
+
connectionStatus: "valid" | "invalid" | null;
|
|
1264
|
+
toNode: InternalNode<NodeType> | null;
|
|
1265
|
+
toHandle: Handle | null;
|
|
1266
|
+
};
|
|
1267
|
+
type ConnectionLineComponent<NodeType extends Node$1 = Node$1> = ComponentType<ConnectionLineComponentProps<NodeType>>;
|
|
1268
|
+
interface ReactFlowProps<NodeType extends Node$1 = Node$1, EdgeType extends Edge = Edge> extends Omit<HTMLAttributes<HTMLDivElement>, "onError"> {
|
|
1269
|
+
/**
|
|
1270
|
+
* An array of nodes to render in a controlled flow.
|
|
1271
|
+
* @example
|
|
1272
|
+
* const nodes = [
|
|
1273
|
+
* {
|
|
1274
|
+
* id: 'node-1',
|
|
1275
|
+
* type: 'input',
|
|
1276
|
+
* data: { label: 'Node 1' },
|
|
1277
|
+
* position: { x: 250, y: 50 }
|
|
1278
|
+
* }
|
|
1279
|
+
* ];
|
|
1280
|
+
*/
|
|
1281
|
+
nodes?: NodeType[];
|
|
1282
|
+
/**
|
|
1283
|
+
* An array of edges to render in a controlled flow.
|
|
1284
|
+
* @example
|
|
1285
|
+
* const edges = [
|
|
1286
|
+
* {
|
|
1287
|
+
* id: 'edge-1-2',
|
|
1288
|
+
* source: 'node-1',
|
|
1289
|
+
* target: 'node-2',
|
|
1290
|
+
* }
|
|
1291
|
+
* ];
|
|
1292
|
+
*/
|
|
1293
|
+
edges?: EdgeType[];
|
|
1294
|
+
/** The initial nodes to render in an uncontrolled flow. */
|
|
1295
|
+
defaultNodes?: NodeType[];
|
|
1296
|
+
/** The initial edges to render in an uncontrolled flow. */
|
|
1297
|
+
defaultEdges?: EdgeType[];
|
|
1298
|
+
/**
|
|
1299
|
+
* Defaults to be applied to all new edges that are added to the flow.
|
|
1300
|
+
*
|
|
1301
|
+
* Properties on a new edge will override these defaults if they exist.
|
|
1302
|
+
* @example
|
|
1303
|
+
* const defaultEdgeOptions = {
|
|
1304
|
+
* type: 'customEdgeType',
|
|
1305
|
+
* animated: true,
|
|
1306
|
+
* interactionWidth: 10,
|
|
1307
|
+
* data: { label: 'custom label' },
|
|
1308
|
+
* hidden: false,
|
|
1309
|
+
* deletable: true,
|
|
1310
|
+
* selected: false,
|
|
1311
|
+
* focusable: true,
|
|
1312
|
+
* markerStart: EdgeMarker.ArrowClosed,
|
|
1313
|
+
* markerEnd: EdgeMarker.ArrowClosed,
|
|
1314
|
+
* zIndex: 12,
|
|
1315
|
+
* ariaLabel: 'custom aria label'
|
|
1316
|
+
* }
|
|
1317
|
+
*/
|
|
1318
|
+
defaultEdgeOptions?: DefaultEdgeOptions;
|
|
1319
|
+
/** This event handler is called when a user clicks on a node */
|
|
1320
|
+
onNodeClick?: NodeMouseHandler<NodeType>;
|
|
1321
|
+
/** This event handler is called when a user double clicks on a node */
|
|
1322
|
+
onNodeDoubleClick?: NodeMouseHandler<NodeType>;
|
|
1323
|
+
/** This event handler is called when mouse of a user enters a node */
|
|
1324
|
+
onNodeMouseEnter?: NodeMouseHandler<NodeType>;
|
|
1325
|
+
/** This event handler is called when mouse of a user moves over a node */
|
|
1326
|
+
onNodeMouseMove?: NodeMouseHandler<NodeType>;
|
|
1327
|
+
/** This event handler is called when mouse of a user leaves a node */
|
|
1328
|
+
onNodeMouseLeave?: NodeMouseHandler<NodeType>;
|
|
1329
|
+
/** This event handler is called when a user right clicks on a node */
|
|
1330
|
+
onNodeContextMenu?: NodeMouseHandler<NodeType>;
|
|
1331
|
+
/** This event handler is called when a user starts to drag a node */
|
|
1332
|
+
onNodeDragStart?: OnNodeDrag<NodeType>;
|
|
1333
|
+
/** This event handler is called when a user drags a node */
|
|
1334
|
+
onNodeDrag?: OnNodeDrag<NodeType>;
|
|
1335
|
+
/** This event handler is called when a user stops dragging a node */
|
|
1336
|
+
onNodeDragStop?: OnNodeDrag<NodeType>;
|
|
1337
|
+
/** This event handler is called when a user clicks on an edge */
|
|
1338
|
+
onEdgeClick?: (event: ReactMouseEvent, edge: EdgeType) => void;
|
|
1339
|
+
/** This event handler is called when a user right clicks on an edge */
|
|
1340
|
+
onEdgeContextMenu?: EdgeMouseHandler<EdgeType>;
|
|
1341
|
+
/** This event handler is called when mouse of a user enters an edge */
|
|
1342
|
+
onEdgeMouseEnter?: EdgeMouseHandler<EdgeType>;
|
|
1343
|
+
/** This event handler is called when mouse of a user moves over an edge */
|
|
1344
|
+
onEdgeMouseMove?: EdgeMouseHandler<EdgeType>;
|
|
1345
|
+
/** This event handler is called when mouse of a user leaves an edge */
|
|
1346
|
+
onEdgeMouseLeave?: EdgeMouseHandler<EdgeType>;
|
|
1347
|
+
/** This event handler is called when a user double clicks on an edge */
|
|
1348
|
+
onEdgeDoubleClick?: EdgeMouseHandler<EdgeType>;
|
|
1349
|
+
onReconnect?: OnReconnect<EdgeType>;
|
|
1350
|
+
onReconnectStart?: (event: ReactMouseEvent, edge: EdgeType, handleType: HandleType) => void;
|
|
1351
|
+
onReconnectEnd?: (event: MouseEvent | TouchEvent, edge: EdgeType, handleType: HandleType) => void;
|
|
1352
|
+
/**
|
|
1353
|
+
* This event handler is called when a Node is updated
|
|
1354
|
+
* @example // Use NodesState hook to create edges and get onNodesChange handler
|
|
1355
|
+
* import ReactFlow, { useNodesState } from '@xyflow/react';
|
|
1356
|
+
* const [edges, setNodes, onNodesChange] = useNodesState(initialNodes);
|
|
1357
|
+
*
|
|
1358
|
+
* return (<ReactFlow onNodeChange={onNodeChange} {...rest} />)
|
|
1359
|
+
* @example // Use helper function to update edge
|
|
1360
|
+
* import ReactFlow, { applyNodeChanges } from '@xyflow/react';
|
|
1361
|
+
*
|
|
1362
|
+
* const onNodeChange = useCallback(
|
|
1363
|
+
* (changes) => setNode((eds) => applyNodeChanges(changes, eds)),
|
|
1364
|
+
* [],
|
|
1365
|
+
* );
|
|
1366
|
+
*
|
|
1367
|
+
* return (<ReactFlow onNodeChange={onNodeChange} {...rest} />)
|
|
1368
|
+
*/
|
|
1369
|
+
onNodesChange?: OnNodesChange<NodeType>;
|
|
1370
|
+
/**
|
|
1371
|
+
* This event handler is called when a Edge is updated
|
|
1372
|
+
* @example // Use EdgesState hook to create edges and get onEdgesChange handler
|
|
1373
|
+
* import ReactFlow, { useEdgesState } from '@xyflow/react';
|
|
1374
|
+
* const [edges, setEdges, onEdgesChange] = useEdgesState(initialEdges);
|
|
1375
|
+
*
|
|
1376
|
+
* return (<ReactFlow onEdgesChange={onEdgesChange} {...rest} />)
|
|
1377
|
+
* @example // Use helper function to update edge
|
|
1378
|
+
* import ReactFlow, { applyEdgeChanges } from '@xyflow/react';
|
|
1379
|
+
*
|
|
1380
|
+
* const onEdgesChange = useCallback(
|
|
1381
|
+
* (changes) => setEdges((eds) => applyEdgeChanges(changes, eds)),
|
|
1382
|
+
* [],
|
|
1383
|
+
* );
|
|
1384
|
+
*
|
|
1385
|
+
* return (<ReactFlow onEdgesChange={onEdgesChange} {...rest} />)
|
|
1386
|
+
*/
|
|
1387
|
+
onEdgesChange?: OnEdgesChange<EdgeType>;
|
|
1388
|
+
/** This event handler gets called when a Node is deleted */
|
|
1389
|
+
onNodesDelete?: OnNodesDelete<NodeType>;
|
|
1390
|
+
/** This event handler gets called when a Edge is deleted */
|
|
1391
|
+
onEdgesDelete?: OnEdgesDelete<EdgeType>;
|
|
1392
|
+
/** This event handler gets called when a Node or Edge is deleted */
|
|
1393
|
+
onDelete?: OnDelete<NodeType, EdgeType>;
|
|
1394
|
+
/** This event handler gets called when a user starts to drag a selection box */
|
|
1395
|
+
onSelectionDragStart?: SelectionDragHandler<NodeType>;
|
|
1396
|
+
/** This event handler gets called when a user drags a selection box */
|
|
1397
|
+
onSelectionDrag?: SelectionDragHandler<NodeType>;
|
|
1398
|
+
/** This event handler gets called when a user stops dragging a selection box */
|
|
1399
|
+
onSelectionDragStop?: SelectionDragHandler<NodeType>;
|
|
1400
|
+
onSelectionStart?: (event: ReactMouseEvent) => void;
|
|
1401
|
+
onSelectionEnd?: (event: ReactMouseEvent) => void;
|
|
1402
|
+
onSelectionContextMenu?: (event: ReactMouseEvent, nodes: NodeType[]) => void;
|
|
1403
|
+
/**
|
|
1404
|
+
* When a connection line is completed and two nodes are connected by the user, this event fires with the new connection.
|
|
1405
|
+
*
|
|
1406
|
+
* You can use the addEdge utility to convert the connection to a complete edge.
|
|
1407
|
+
* @example // Use helper function to update edges onConnect
|
|
1408
|
+
* import ReactFlow, { addEdge } from '@xyflow/react';
|
|
1409
|
+
*
|
|
1410
|
+
* const onConnect = useCallback(
|
|
1411
|
+
* (params) => setEdges((eds) => addEdge(params, eds)),
|
|
1412
|
+
* [],
|
|
1413
|
+
* );
|
|
1414
|
+
*
|
|
1415
|
+
* return (<ReactFlow onConnect={onConnect} {...rest} />)
|
|
1416
|
+
*/
|
|
1417
|
+
onConnect?: OnConnect;
|
|
1418
|
+
/** This event handler gets called when a user starts to drag a connection line */
|
|
1419
|
+
onConnectStart?: OnConnectStart;
|
|
1420
|
+
/** This event handler gets called when a user stops dragging a connection line */
|
|
1421
|
+
onConnectEnd?: OnConnectEnd;
|
|
1422
|
+
onClickConnectStart?: OnConnectStart;
|
|
1423
|
+
onClickConnectEnd?: OnConnectEnd;
|
|
1424
|
+
/** This event handler gets called when a flow has finished initializing */
|
|
1425
|
+
onInit?: OnInit<NodeType, EdgeType>;
|
|
1426
|
+
/** This event handler is called while the user is either panning or zooming the viewport. */
|
|
1427
|
+
onMove?: OnMove;
|
|
1428
|
+
/** This event handler gets called when a user starts to pan or zoom the viewport */
|
|
1429
|
+
onMoveStart?: OnMoveStart;
|
|
1430
|
+
/** This event handler gets called when a user stops panning or zooming the viewport */
|
|
1431
|
+
onMoveEnd?: OnMoveEnd;
|
|
1432
|
+
/** This event handler gets called when a user changes group of selected elements in the flow */
|
|
1433
|
+
onSelectionChange?: OnSelectionChangeFunc<NodeType, EdgeType>;
|
|
1434
|
+
/** This event handler gets called when user scroll inside the pane */
|
|
1435
|
+
onPaneScroll?: (event?: WheelEvent) => void;
|
|
1436
|
+
/** This event handler gets called when user clicks inside the pane */
|
|
1437
|
+
onPaneClick?: (event: ReactMouseEvent) => void;
|
|
1438
|
+
/** This event handler gets called when user right clicks inside the pane */
|
|
1439
|
+
onPaneContextMenu?: (event: ReactMouseEvent | MouseEvent) => void;
|
|
1440
|
+
/** This event handler gets called when mouse enters the pane */
|
|
1441
|
+
onPaneMouseEnter?: (event: ReactMouseEvent) => void;
|
|
1442
|
+
/** This event handler gets called when mouse moves over the pane */
|
|
1443
|
+
onPaneMouseMove?: (event: ReactMouseEvent) => void;
|
|
1444
|
+
/** This event handler gets called when mouse leaves the pane */
|
|
1445
|
+
onPaneMouseLeave?: (event: ReactMouseEvent) => void;
|
|
1446
|
+
/**
|
|
1447
|
+
* Distance that the mouse can move between mousedown/up that will trigger a click
|
|
1448
|
+
* @default 0
|
|
1449
|
+
*/
|
|
1450
|
+
paneClickDistance?: number;
|
|
1451
|
+
/**
|
|
1452
|
+
* Distance that the mouse can move between mousedown/up that will trigger a click
|
|
1453
|
+
* @default 0
|
|
1454
|
+
*/
|
|
1455
|
+
nodeClickDistance?: number;
|
|
1456
|
+
/** This handler gets called before the user deletes nodes or edges and provides a way to abort the deletion by returning false. */
|
|
1457
|
+
onBeforeDelete?: OnBeforeDelete<NodeType, EdgeType>;
|
|
1458
|
+
/**
|
|
1459
|
+
* Custom node types to be available in a flow.
|
|
1460
|
+
*
|
|
1461
|
+
* React Flow matches a node's type to a component in the nodeTypes object.
|
|
1462
|
+
* @example
|
|
1463
|
+
* import CustomNode from './CustomNode';
|
|
1464
|
+
*
|
|
1465
|
+
* const nodeTypes = { nameOfNodeType: CustomNode };
|
|
1466
|
+
*/
|
|
1467
|
+
nodeTypes?: NodeTypes;
|
|
1468
|
+
/**
|
|
1469
|
+
* Custom edge types to be available in a flow.
|
|
1470
|
+
*
|
|
1471
|
+
* React Flow matches an edge's type to a component in the edgeTypes object.
|
|
1472
|
+
* @example
|
|
1473
|
+
* import CustomEdge from './CustomEdge';
|
|
1474
|
+
*
|
|
1475
|
+
* const edgeTypes = { nameOfEdgeType: CustomEdge };
|
|
1476
|
+
*/
|
|
1477
|
+
edgeTypes?: EdgeTypes;
|
|
1478
|
+
/**
|
|
1479
|
+
* The type of edge path to use for connection lines.
|
|
1480
|
+
*
|
|
1481
|
+
* Although created edges can be of any type, React Flow needs to know what type of path to render for the connection line before the edge is created!
|
|
1482
|
+
*/
|
|
1483
|
+
connectionLineType?: ConnectionLineType;
|
|
1484
|
+
/** Styles to be applied to the connection line */
|
|
1485
|
+
connectionLineStyle?: CSSProperties;
|
|
1486
|
+
/** React Component to be used as a connection line */
|
|
1487
|
+
connectionLineComponent?: ConnectionLineComponent<NodeType>;
|
|
1488
|
+
/** Styles to be applied to the container of the connection line */
|
|
1489
|
+
connectionLineContainerStyle?: CSSProperties;
|
|
1490
|
+
/**
|
|
1491
|
+
* 'strict' connection mode will only allow you to connect source handles to target handles.
|
|
1492
|
+
*
|
|
1493
|
+
* 'loose' connection mode will allow you to connect handles of any type to one another.
|
|
1494
|
+
* @default 'strict'
|
|
1495
|
+
*/
|
|
1496
|
+
connectionMode?: ConnectionMode;
|
|
1497
|
+
/**
|
|
1498
|
+
* Pressing down this key deletes all selected nodes & edges.
|
|
1499
|
+
* @default 'Backspace'
|
|
1500
|
+
*/
|
|
1501
|
+
deleteKeyCode?: KeyCode | null;
|
|
1502
|
+
/**
|
|
1503
|
+
* If a key is set, you can pan the viewport while that key is held down even if panOnScroll is set to false.
|
|
1504
|
+
*
|
|
1505
|
+
* By setting this prop to null you can disable this functionality.
|
|
1506
|
+
* @default 'Space'
|
|
1507
|
+
*/
|
|
1508
|
+
selectionKeyCode?: KeyCode | null;
|
|
1509
|
+
/** Select multiple elements with a selection box, without pressing down selectionKey */
|
|
1510
|
+
selectionOnDrag?: boolean;
|
|
1511
|
+
/**
|
|
1512
|
+
* When set to "partial", when the user creates a selection box by click and dragging nodes that are only partially in the box are still selected.
|
|
1513
|
+
* @default 'full'
|
|
1514
|
+
*/
|
|
1515
|
+
selectionMode?: SelectionMode$1;
|
|
1516
|
+
/**
|
|
1517
|
+
* If a key is set, you can pan the viewport while that key is held down even if panOnScroll is set to false.
|
|
1518
|
+
*
|
|
1519
|
+
* By setting this prop to null you can disable this functionality.
|
|
1520
|
+
* @default 'Space'
|
|
1521
|
+
*/
|
|
1522
|
+
panActivationKeyCode?: KeyCode | null;
|
|
1523
|
+
/**
|
|
1524
|
+
* Pressing down this key you can select multiple elements by clicking.
|
|
1525
|
+
* @default 'Meta' for macOS, "Ctrl" for other systems
|
|
1526
|
+
*/
|
|
1527
|
+
multiSelectionKeyCode?: KeyCode | null;
|
|
1528
|
+
/**
|
|
1529
|
+
* If a key is set, you can zoom the viewport while that key is held down even if panOnScroll is set to false.
|
|
1530
|
+
*
|
|
1531
|
+
* By setting this prop to null you can disable this functionality.
|
|
1532
|
+
* @default 'Meta' for macOS, "Ctrl" for other systems
|
|
1533
|
+
*
|
|
1534
|
+
*/
|
|
1535
|
+
zoomActivationKeyCode?: KeyCode | null;
|
|
1536
|
+
/** Set this prop to make the flow snap to the grid */
|
|
1537
|
+
snapToGrid?: boolean;
|
|
1538
|
+
/**
|
|
1539
|
+
* Grid all nodes will snap to
|
|
1540
|
+
* @example [20, 20]
|
|
1541
|
+
*/
|
|
1542
|
+
snapGrid?: SnapGrid;
|
|
1543
|
+
/**
|
|
1544
|
+
* You can enable this optimisation to instruct Svelte Flow to only render nodes and edges that would be visible in the viewport.
|
|
1545
|
+
*
|
|
1546
|
+
* This might improve performance when you have a large number of nodes and edges but also adds an overhead.
|
|
1547
|
+
* @default false
|
|
1548
|
+
*/
|
|
1549
|
+
onlyRenderVisibleElements?: boolean;
|
|
1550
|
+
/**
|
|
1551
|
+
* Controls if all nodes should be draggable
|
|
1552
|
+
* @default true
|
|
1553
|
+
*/
|
|
1554
|
+
nodesDraggable?: boolean;
|
|
1555
|
+
/**
|
|
1556
|
+
* Controls if all nodes should be connectable to each other
|
|
1557
|
+
* @default true
|
|
1558
|
+
*/
|
|
1559
|
+
nodesConnectable?: boolean;
|
|
1560
|
+
/**
|
|
1561
|
+
* Controls if all nodes should be focusable
|
|
1562
|
+
* @default true
|
|
1563
|
+
*/
|
|
1564
|
+
nodesFocusable?: boolean;
|
|
1565
|
+
/**
|
|
1566
|
+
* Defines nodes relative position to its coordinates
|
|
1567
|
+
* @example
|
|
1568
|
+
* [0, 0] // default, top left
|
|
1569
|
+
* [0.5, 0.5] // center
|
|
1570
|
+
* [1, 1] // bottom right
|
|
1571
|
+
*/
|
|
1572
|
+
nodeOrigin?: NodeOrigin;
|
|
1573
|
+
/**
|
|
1574
|
+
* Controls if all edges should be focusable
|
|
1575
|
+
* @default true
|
|
1576
|
+
*/
|
|
1577
|
+
edgesFocusable?: boolean;
|
|
1578
|
+
/**
|
|
1579
|
+
* Controls if all edges should be updateable
|
|
1580
|
+
* @default true
|
|
1581
|
+
*/
|
|
1582
|
+
edgesReconnectable?: boolean;
|
|
1583
|
+
/**
|
|
1584
|
+
* Controls if all elements should (nodes & edges) be selectable
|
|
1585
|
+
* @default true
|
|
1586
|
+
*/
|
|
1587
|
+
elementsSelectable?: boolean;
|
|
1588
|
+
/**
|
|
1589
|
+
* If true, nodes get selected on drag
|
|
1590
|
+
* @default true
|
|
1591
|
+
*/
|
|
1592
|
+
selectNodesOnDrag?: boolean;
|
|
1593
|
+
/**
|
|
1594
|
+
* Enableing this prop allows users to pan the viewport by clicking and dragging.
|
|
1595
|
+
*
|
|
1596
|
+
* You can also set this prop to an array of numbers to limit which mouse buttons can activate panning.
|
|
1597
|
+
* @example [0, 2] // allows panning with the left and right mouse buttons
|
|
1598
|
+
* [0, 1, 2, 3, 4] // allows panning with all mouse buttons
|
|
1599
|
+
*/
|
|
1600
|
+
panOnDrag?: boolean | number[];
|
|
1601
|
+
/**
|
|
1602
|
+
* Minimum zoom level
|
|
1603
|
+
* @default 0.5
|
|
1604
|
+
*/
|
|
1605
|
+
minZoom?: number;
|
|
1606
|
+
/**
|
|
1607
|
+
* Maximum zoom level
|
|
1608
|
+
* @default 2
|
|
1609
|
+
*/
|
|
1610
|
+
maxZoom?: number;
|
|
1611
|
+
/** Controlled viewport to be used instead of internal one */
|
|
1612
|
+
viewport?: Viewport;
|
|
1613
|
+
/**
|
|
1614
|
+
* Sets the initial position and zoom of the viewport.
|
|
1615
|
+
*
|
|
1616
|
+
* If a default viewport is provided but fitView is enabled, the default viewport will be ignored.
|
|
1617
|
+
* @example
|
|
1618
|
+
* const initialViewport = {
|
|
1619
|
+
* zoom: 0.5,
|
|
1620
|
+
* position: { x: 0, y: 0 }
|
|
1621
|
+
* };
|
|
1622
|
+
*/
|
|
1623
|
+
defaultViewport?: Viewport;
|
|
1624
|
+
/**
|
|
1625
|
+
* Gets called when the viewport changes.
|
|
1626
|
+
*/
|
|
1627
|
+
onViewportChange?: (viewport: Viewport) => void;
|
|
1628
|
+
/**
|
|
1629
|
+
* By default the viewport extends infinitely. You can use this prop to set a boundary.
|
|
1630
|
+
*
|
|
1631
|
+
* The first pair of coordinates is the top left boundary and the second pair is the bottom right.
|
|
1632
|
+
* @example [[-1000, -10000], [1000, 1000]]
|
|
1633
|
+
*/
|
|
1634
|
+
translateExtent?: CoordinateExtent;
|
|
1635
|
+
/**
|
|
1636
|
+
* Disabling this prop will allow the user to scroll the page even when their pointer is over the flow.
|
|
1637
|
+
* @default true
|
|
1638
|
+
*/
|
|
1639
|
+
preventScrolling?: boolean;
|
|
1640
|
+
/**
|
|
1641
|
+
* By default nodes can be placed on an infinite flow. You can use this prop to set a boundary.
|
|
1642
|
+
*
|
|
1643
|
+
* The first pair of coordinates is the top left boundary and the second pair is the bottom right.
|
|
1644
|
+
* @example [[-1000, -10000], [1000, 1000]]
|
|
1645
|
+
*/
|
|
1646
|
+
nodeExtent?: CoordinateExtent;
|
|
1647
|
+
/**
|
|
1648
|
+
* Color of edge markers
|
|
1649
|
+
* @example "#b1b1b7"
|
|
1650
|
+
*/
|
|
1651
|
+
defaultMarkerColor?: string;
|
|
1652
|
+
/** Controls if the viewport should zoom by scrolling inside the container */
|
|
1653
|
+
zoomOnScroll?: boolean;
|
|
1654
|
+
/** Controls if the viewport should zoom by pinching on a touch screen */
|
|
1655
|
+
zoomOnPinch?: boolean;
|
|
1656
|
+
/**
|
|
1657
|
+
* Controls if the viewport should pan by scrolling inside the container
|
|
1658
|
+
*
|
|
1659
|
+
* Can be limited to a specific direction with panOnScrollMode
|
|
1660
|
+
*/
|
|
1661
|
+
panOnScroll?: boolean;
|
|
1662
|
+
/**
|
|
1663
|
+
* Controls how fast viewport should be panned on scroll.
|
|
1664
|
+
*
|
|
1665
|
+
* Use togther with panOnScroll prop.
|
|
1666
|
+
*/
|
|
1667
|
+
panOnScrollSpeed?: number;
|
|
1668
|
+
/**
|
|
1669
|
+
* This prop is used to limit the direction of panning when panOnScroll is enabled.
|
|
1670
|
+
*
|
|
1671
|
+
* The "free" option allows panning in any direction.
|
|
1672
|
+
* @default "free"
|
|
1673
|
+
* @example "horizontal" | "vertical"
|
|
1674
|
+
*/
|
|
1675
|
+
panOnScrollMode?: PanOnScrollMode;
|
|
1676
|
+
/** Controls if the viewport should zoom by double clicking somewhere on the flow */
|
|
1677
|
+
zoomOnDoubleClick?: boolean;
|
|
1678
|
+
reconnectRadius?: number;
|
|
1679
|
+
noDragClassName?: string;
|
|
1680
|
+
noWheelClassName?: string;
|
|
1681
|
+
noPanClassName?: string;
|
|
1682
|
+
/** If set, initial viewport will show all nodes & edges */
|
|
1683
|
+
fitView?: boolean;
|
|
1684
|
+
/**
|
|
1685
|
+
* Options to be used in combination with fitView
|
|
1686
|
+
* @example
|
|
1687
|
+
* const fitViewOptions = {
|
|
1688
|
+
* padding: 0.1,
|
|
1689
|
+
* includeHiddenNodes: false,
|
|
1690
|
+
* minZoom: 0.1,
|
|
1691
|
+
* maxZoom: 1,
|
|
1692
|
+
* duration: 200,
|
|
1693
|
+
* nodes: [{id: 'node-1'}, {id: 'node-2'}], // nodes to fit
|
|
1694
|
+
* };
|
|
1695
|
+
*/
|
|
1696
|
+
fitViewOptions?: FitViewOptions;
|
|
1697
|
+
/**
|
|
1698
|
+
*The connectOnClick option lets you click or tap on a source handle to start a connection
|
|
1699
|
+
* and then click on a target handle to complete the connection.
|
|
1700
|
+
*
|
|
1701
|
+
* If you set this option to false, users will need to drag the connection line to the target
|
|
1702
|
+
* handle to create a connection.
|
|
1703
|
+
*/
|
|
1704
|
+
connectOnClick?: boolean;
|
|
1705
|
+
/**
|
|
1706
|
+
* Set position of the attribution
|
|
1707
|
+
* @default 'bottom-right'
|
|
1708
|
+
* @example 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right'
|
|
1709
|
+
*/
|
|
1710
|
+
attributionPosition?: PanelPosition;
|
|
1711
|
+
/**
|
|
1712
|
+
* By default, we render a small attribution in the corner of your flows that links back to the project.
|
|
1713
|
+
*
|
|
1714
|
+
* Anyone is free to remove this attribution whether they're a Pro subscriber or not
|
|
1715
|
+
* but we ask that you take a quick look at our {@link https://reactflow.dev/learn/troubleshooting/remove-attribution | removing attribution guide}
|
|
1716
|
+
* before doing so.
|
|
1717
|
+
*/
|
|
1718
|
+
proOptions?: ProOptions;
|
|
1719
|
+
/**
|
|
1720
|
+
* Enabling this option will raise the z-index of nodes when they are selected.
|
|
1721
|
+
* @default true
|
|
1722
|
+
*/
|
|
1723
|
+
elevateNodesOnSelect?: boolean;
|
|
1724
|
+
/**
|
|
1725
|
+
* Enabling this option will raise the z-index of edges when they are selected.
|
|
1726
|
+
* @default true
|
|
1727
|
+
*/
|
|
1728
|
+
elevateEdgesOnSelect?: boolean;
|
|
1729
|
+
/**
|
|
1730
|
+
* Can be set true if built-in keyboard controls should be disabled.
|
|
1731
|
+
* @default false
|
|
1732
|
+
*/
|
|
1733
|
+
disableKeyboardA11y?: boolean;
|
|
1734
|
+
/**
|
|
1735
|
+
* You can enable this prop to automatically pan the viewport while dragging a node.
|
|
1736
|
+
* @default true
|
|
1737
|
+
*/
|
|
1738
|
+
autoPanOnNodeDrag?: boolean;
|
|
1739
|
+
/**
|
|
1740
|
+
* You can enable this prop to automatically pan the viewport while dragging a node.
|
|
1741
|
+
* @default true
|
|
1742
|
+
*/
|
|
1743
|
+
autoPanOnConnect?: boolean;
|
|
1744
|
+
/**
|
|
1745
|
+
* The speed at which the viewport pans while dragging a node or a selection box.
|
|
1746
|
+
* @default 15
|
|
1747
|
+
*/
|
|
1748
|
+
autoPanSpeed?: number;
|
|
1749
|
+
/**
|
|
1750
|
+
* You can enable this prop to automatically pan the viewport while making a new connection.
|
|
1751
|
+
* @default true
|
|
1752
|
+
*/
|
|
1753
|
+
connectionRadius?: number;
|
|
1754
|
+
/**
|
|
1755
|
+
* Ocassionally something may happen that causes Svelte Flow to throw an error.
|
|
1756
|
+
*
|
|
1757
|
+
* Instead of exploding your application, we log a message to the console and then call this event handler.
|
|
1758
|
+
* You might use it for additional logging or to show a message to the user.
|
|
1759
|
+
*/
|
|
1760
|
+
onError?: OnError;
|
|
1761
|
+
/**
|
|
1762
|
+
* This callback can be used to validate a new connection
|
|
1763
|
+
*
|
|
1764
|
+
* If you return false, the edge will not be added to your flow.
|
|
1765
|
+
* If you have custom connection logic its preferred to use this callback over the isValidConnection prop on the handle component for performance reasons.
|
|
1766
|
+
* @default (connection: Connection) => true
|
|
1767
|
+
*/
|
|
1768
|
+
isValidConnection?: IsValidConnection<EdgeType>;
|
|
1769
|
+
/**
|
|
1770
|
+
* With a threshold greater than zero you can control the distinction between node drag and click events.
|
|
1771
|
+
*
|
|
1772
|
+
* If threshold equals 1, you need to drag the node 1 pixel before a drag event is fired.
|
|
1773
|
+
* @default 1
|
|
1774
|
+
*/
|
|
1775
|
+
nodeDragThreshold?: number;
|
|
1776
|
+
/** Sets a fixed width for the flow */
|
|
1777
|
+
width?: number;
|
|
1778
|
+
/** Sets a fixed height for the flow */
|
|
1779
|
+
height?: number;
|
|
1780
|
+
/**
|
|
1781
|
+
* Controls color scheme used for styling the flow
|
|
1782
|
+
* @default 'system'
|
|
1783
|
+
* @example 'system' | 'light' | 'dark'
|
|
1784
|
+
*/
|
|
1785
|
+
colorMode?: ColorMode;
|
|
1786
|
+
/**
|
|
1787
|
+
* If set true, some debug information will be logged to the console like which events are fired.
|
|
1788
|
+
*
|
|
1789
|
+
* @default undefined
|
|
1790
|
+
*/
|
|
1791
|
+
debug?: boolean;
|
|
1792
|
+
}
|
|
1793
|
+
type ReactFlowJsonObject<NodeType extends Node$1 = Node$1, EdgeType extends Edge = Edge> = {
|
|
1794
|
+
nodes: NodeType[];
|
|
1795
|
+
edges: EdgeType[];
|
|
1796
|
+
viewport: Viewport;
|
|
1797
|
+
};
|
|
1798
|
+
type DeleteElementsOptions = {
|
|
1799
|
+
nodes?: (Node$1 | {
|
|
1800
|
+
id: Node$1["id"];
|
|
1801
|
+
})[];
|
|
1802
|
+
edges?: (Edge | {
|
|
1803
|
+
id: Edge["id"];
|
|
1804
|
+
})[];
|
|
1805
|
+
};
|
|
1806
|
+
type GeneralHelpers<NodeType extends Node$1 = Node$1, EdgeType extends Edge = Edge> = {
|
|
1807
|
+
/**
|
|
1808
|
+
* Returns nodes.
|
|
1809
|
+
*
|
|
1810
|
+
* @returns nodes array
|
|
1811
|
+
*/
|
|
1812
|
+
getNodes: () => NodeType[];
|
|
1813
|
+
/**
|
|
1814
|
+
* Sets nodes.
|
|
1815
|
+
*
|
|
1816
|
+
* @param payload - the nodes to set or a function that receives the current nodes and returns the new nodes
|
|
1817
|
+
*/
|
|
1818
|
+
setNodes: (payload: NodeType[] | ((nodes: NodeType[]) => NodeType[])) => void;
|
|
1819
|
+
/**
|
|
1820
|
+
* Adds nodes.
|
|
1821
|
+
*
|
|
1822
|
+
* @param payload - the nodes to add
|
|
1823
|
+
*/
|
|
1824
|
+
addNodes: (payload: NodeType[] | NodeType) => void;
|
|
1825
|
+
/**
|
|
1826
|
+
* Returns a node by id.
|
|
1827
|
+
*
|
|
1828
|
+
* @param id - the node id
|
|
1829
|
+
* @returns the node or undefined if no node was found
|
|
1830
|
+
*/
|
|
1831
|
+
getNode: (id: string) => NodeType | undefined;
|
|
1832
|
+
/**
|
|
1833
|
+
* Returns an internal node by id.
|
|
1834
|
+
*
|
|
1835
|
+
* @param id - the node id
|
|
1836
|
+
* @returns the internal node or undefined if no node was found
|
|
1837
|
+
*/
|
|
1838
|
+
getInternalNode: (id: string) => InternalNode<NodeType> | undefined;
|
|
1839
|
+
/**
|
|
1840
|
+
* Returns edges.
|
|
1841
|
+
*
|
|
1842
|
+
* @returns edges array
|
|
1843
|
+
*/
|
|
1844
|
+
getEdges: () => EdgeType[];
|
|
1845
|
+
/**
|
|
1846
|
+
* Sets edges.
|
|
1847
|
+
*
|
|
1848
|
+
* @param payload - the edges to set or a function that receives the current edges and returns the new edges
|
|
1849
|
+
*/
|
|
1850
|
+
setEdges: (payload: EdgeType[] | ((edges: EdgeType[]) => EdgeType[])) => void;
|
|
1851
|
+
/**
|
|
1852
|
+
* Adds edges.
|
|
1853
|
+
*
|
|
1854
|
+
* @param payload - the edges to add
|
|
1855
|
+
*/
|
|
1856
|
+
addEdges: (payload: EdgeType[] | EdgeType) => void;
|
|
1857
|
+
/**
|
|
1858
|
+
* Returns an edge by id.
|
|
1859
|
+
*
|
|
1860
|
+
* @param id - the edge id
|
|
1861
|
+
* @returns the edge or undefined if no edge was found
|
|
1862
|
+
*/
|
|
1863
|
+
getEdge: (id: string) => EdgeType | undefined;
|
|
1864
|
+
/**
|
|
1865
|
+
* Returns the nodes, edges and the viewport as a JSON object.
|
|
1866
|
+
*
|
|
1867
|
+
* @returns the nodes, edges and the viewport as a JSON object
|
|
1868
|
+
*/
|
|
1869
|
+
toObject: () => ReactFlowJsonObject<NodeType, EdgeType>;
|
|
1870
|
+
/**
|
|
1871
|
+
* Deletes nodes and edges.
|
|
1872
|
+
*
|
|
1873
|
+
* @param params.nodes - optional nodes array to delete
|
|
1874
|
+
* @param params.edges - optional edges array to delete
|
|
1875
|
+
*
|
|
1876
|
+
* @returns a promise that resolves with the deleted nodes and edges
|
|
1877
|
+
*/
|
|
1878
|
+
deleteElements: (params: DeleteElementsOptions) => Promise<{
|
|
1879
|
+
deletedNodes: Node$1[];
|
|
1880
|
+
deletedEdges: Edge[];
|
|
1881
|
+
}>;
|
|
1882
|
+
/**
|
|
1883
|
+
* Returns all nodes that intersect with the given node or rect.
|
|
1884
|
+
*
|
|
1885
|
+
* @param node - the node or rect to check for intersections
|
|
1886
|
+
* @param partially - if true, the node is considered to be intersecting if it partially overlaps with the passed node or rect
|
|
1887
|
+
* @param nodes - optional nodes array to check for intersections
|
|
1888
|
+
*
|
|
1889
|
+
* @returns an array of intersecting nodes
|
|
1890
|
+
*/
|
|
1891
|
+
getIntersectingNodes: (node: NodeType | {
|
|
1892
|
+
id: Node$1["id"];
|
|
1893
|
+
} | Rect, partially?: boolean, nodes?: NodeType[]) => NodeType[];
|
|
1894
|
+
/**
|
|
1895
|
+
* Checks if the given node or rect intersects with the passed rect.
|
|
1896
|
+
*
|
|
1897
|
+
* @param node - the node or rect to check for intersections
|
|
1898
|
+
* @param area - the rect to check for intersections
|
|
1899
|
+
* @param partially - if true, the node is considered to be intersecting if it partially overlaps with the passed react
|
|
1900
|
+
*
|
|
1901
|
+
* @returns true if the node or rect intersects with the given area
|
|
1902
|
+
*/
|
|
1903
|
+
isNodeIntersecting: (node: NodeType | {
|
|
1904
|
+
id: Node$1["id"];
|
|
1905
|
+
} | Rect, area: Rect, partially?: boolean) => boolean;
|
|
1906
|
+
/**
|
|
1907
|
+
* Updates a node.
|
|
1908
|
+
*
|
|
1909
|
+
* @param id - id of the node to update
|
|
1910
|
+
* @param nodeUpdate - the node update as an object or a function that receives the current node and returns the node update
|
|
1911
|
+
* @param options.replace - if true, the node is replaced with the node update, otherwise the changes get merged
|
|
1912
|
+
*
|
|
1913
|
+
* @example
|
|
1914
|
+
* updateNode('node-1', (node) => ({ position: { x: node.position.x + 10, y: node.position.y } }));
|
|
1915
|
+
*/
|
|
1916
|
+
updateNode: (id: string, nodeUpdate: Partial<NodeType> | ((node: NodeType) => Partial<NodeType>), options?: {
|
|
1917
|
+
replace: boolean;
|
|
1918
|
+
}) => void;
|
|
1919
|
+
/**
|
|
1920
|
+
* Updates the data attribute of a node.
|
|
1921
|
+
*
|
|
1922
|
+
* @param id - id of the node to update
|
|
1923
|
+
* @param dataUpdate - the data update as an object or a function that receives the current data and returns the data update
|
|
1924
|
+
* @param options.replace - if true, the data is replaced with the data update, otherwise the changes get merged
|
|
1925
|
+
*
|
|
1926
|
+
* @example
|
|
1927
|
+
* updateNodeData('node-1', { label: 'A new label' });
|
|
1928
|
+
*/
|
|
1929
|
+
updateNodeData: (id: string, dataUpdate: Partial<NodeType["data"]> | ((node: NodeType) => Partial<NodeType["data"]>), options?: {
|
|
1930
|
+
replace: boolean;
|
|
1931
|
+
}) => void;
|
|
1932
|
+
/**
|
|
1933
|
+
* Updates an edge.
|
|
1934
|
+
*
|
|
1935
|
+
* @param id - id of the edge to update
|
|
1936
|
+
* @param edgeUpdate - the edge update as an object or a function that receives the current edge and returns the edge update
|
|
1937
|
+
* @param options.replace - if true, the edge is replaced with the edge update, otherwise the changes get merged
|
|
1938
|
+
*
|
|
1939
|
+
* @example
|
|
1940
|
+
* updateEdge('edge-1', (edge) => ({ label: 'A new label' }));
|
|
1941
|
+
*/
|
|
1942
|
+
updateEdge: (id: string, edgeUpdate: Partial<EdgeType> | ((edge: EdgeType) => Partial<EdgeType>), options?: {
|
|
1943
|
+
replace: boolean;
|
|
1944
|
+
}) => void;
|
|
1945
|
+
/**
|
|
1946
|
+
* Updates the data attribute of a edge.
|
|
1947
|
+
*
|
|
1948
|
+
* @param id - id of the edge to update
|
|
1949
|
+
* @param dataUpdate - the data update as an object or a function that receives the current data and returns the data update
|
|
1950
|
+
* @param options.replace - if true, the data is replaced with the data update, otherwise the changes get merged
|
|
1951
|
+
*
|
|
1952
|
+
* @example
|
|
1953
|
+
* updateEdgeData('edge-1', { label: 'A new label' });
|
|
1954
|
+
*/
|
|
1955
|
+
updateEdgeData: (id: string, dataUpdate: Partial<EdgeType["data"]> | ((edge: EdgeType) => Partial<EdgeType["data"]>), options?: {
|
|
1956
|
+
replace: boolean;
|
|
1957
|
+
}) => void;
|
|
1958
|
+
/**
|
|
1959
|
+
* Returns the bounds of the given nodes or node ids.
|
|
1960
|
+
*
|
|
1961
|
+
* @param nodes - the nodes or node ids to calculate the bounds for
|
|
1962
|
+
*
|
|
1963
|
+
* @returns the bounds of the given nodes
|
|
1964
|
+
*/
|
|
1965
|
+
getNodesBounds: (nodes: (NodeType | InternalNode | string)[]) => Rect;
|
|
1966
|
+
/**
|
|
1967
|
+
* Gets all connections for a given handle belonging to a specific node.
|
|
1968
|
+
* @deprecated
|
|
1969
|
+
* @param type - handle type 'source' or 'target'
|
|
1970
|
+
* @param id - the handle id (this is only needed if you have multiple handles of the same type, meaning you have to provide a unique id for each handle)
|
|
1971
|
+
* @param nodeId - the node id the handle belongs to
|
|
1972
|
+
* @returns an array with handle connections
|
|
1973
|
+
*/
|
|
1974
|
+
getHandleConnections: ({ type, id, nodeId, }: {
|
|
1975
|
+
type: HandleType;
|
|
1976
|
+
nodeId: string;
|
|
1977
|
+
id?: string | null;
|
|
1978
|
+
}) => HandleConnection[];
|
|
1979
|
+
/**
|
|
1980
|
+
* Gets all connections to a node. Can be filtered by handle type and id.
|
|
1981
|
+
* @param type - handle type 'source' or 'target'
|
|
1982
|
+
* @param handleId - the handle id (this is only needed if you have multiple handles of the same type, meaning you have to provide a unique id for each handle)
|
|
1983
|
+
* @param nodeId - the node id the handle belongs to
|
|
1984
|
+
* @returns an array with handle connections
|
|
1985
|
+
*/
|
|
1986
|
+
getNodeConnections: ({ type, handleId, nodeId, }: {
|
|
1987
|
+
type?: HandleType;
|
|
1988
|
+
nodeId: string;
|
|
1989
|
+
handleId?: string | null;
|
|
1990
|
+
}) => NodeConnection[];
|
|
1991
|
+
};
|
|
1992
|
+
type ReactFlowInstance<NodeType extends Node$1 = Node$1, EdgeType extends Edge = Edge> = GeneralHelpers<NodeType, EdgeType> & Omit<ViewportHelperFunctions, "initialized"> & {
|
|
1993
|
+
viewportInitialized: boolean;
|
|
1994
|
+
};
|
|
1995
|
+
type ControlsCustomLayoutProps = {
|
|
1996
|
+
burgerMenu: ReactNode;
|
|
1997
|
+
navigationButtons: ReactNode;
|
|
1998
|
+
search: ReactNode;
|
|
1999
|
+
actionsGroup: ReactNode;
|
|
2000
|
+
syncInProgressBadge: ReactNode;
|
|
2001
|
+
};
|
|
2002
|
+
type ControlsCustomLayout = (props: ControlsCustomLayoutProps) => ReactNode;
|
|
2003
|
+
type DiagramNodeWithNavigate<ID = ViewId> = Omit<DiagramNode, "navigateTo"> & {
|
|
2004
|
+
navigateTo: ID;
|
|
2005
|
+
};
|
|
2006
|
+
type ElementIconRendererProps = {
|
|
2007
|
+
node: {
|
|
2008
|
+
id: string;
|
|
2009
|
+
title: string;
|
|
2010
|
+
icon?: string | null | undefined;
|
|
2011
|
+
};
|
|
2012
|
+
};
|
|
2013
|
+
type ElementIconRenderer = (props: ElementIconRendererProps) => ReactNode;
|
|
2014
|
+
type OnNavigateTo<ID = ViewId> = (to: ID, event?: ReactMouseEvent, element?: DiagramNodeWithNavigate<ID>) => void;
|
|
2015
|
+
type OnNodeClick = (node: DiagramNode, event: ReactMouseEvent) => void;
|
|
2016
|
+
type OnEdgeClick = (edge: DiagramEdge, event: ReactMouseEvent) => void;
|
|
2017
|
+
type OnCanvasClick = (event: ReactMouseEvent) => void;
|
|
2018
|
+
type ChangeEvent = {
|
|
2019
|
+
change: ViewChange;
|
|
2020
|
+
};
|
|
2021
|
+
type OnChange = (event: ChangeEvent) => void;
|
|
2022
|
+
type OverrideReactFlowProps = Pick<ReactFlowProps, "paneClickDistance" | "nodeClickDistance" | "selectionKeyCode" | "panActivationKeyCode" | "multiSelectionKeyCode" | "zoomActivationKeyCode" | "snapToGrid" | "snapGrid" | "onlyRenderVisibleElements" | "nodesDraggable" | "nodesFocusable" | "elementsSelectable" | "selectNodesOnDrag" | "panOnDrag" | "preventScrolling" | "zoomOnScroll" | "zoomOnPinch" | "panOnScroll" | "panOnScrollSpeed" | "panOnScrollMode" | "zoomOnDoubleClick" | "nodeDragThreshold">;
|
|
2023
|
+
interface LikeC4DiagramProperties {
|
|
2024
|
+
view: DiagramView;
|
|
2025
|
+
className?: string | undefined;
|
|
2026
|
+
/**
|
|
2027
|
+
* Enable/disable panning
|
|
2028
|
+
* @default true
|
|
2029
|
+
*/
|
|
2030
|
+
pannable?: boolean | undefined;
|
|
2031
|
+
/**
|
|
2032
|
+
* Enable/disable zooming
|
|
2033
|
+
* @default true
|
|
2034
|
+
*/
|
|
2035
|
+
zoomable?: boolean | undefined;
|
|
2036
|
+
/**
|
|
2037
|
+
* Disable any editing (dragging still can be enabled with `nodesDraggable`)
|
|
2038
|
+
* @default true
|
|
2039
|
+
*/
|
|
2040
|
+
readonly?: boolean | undefined;
|
|
2041
|
+
/**
|
|
2042
|
+
* Show/hide panel with top left controls,
|
|
2043
|
+
*
|
|
2044
|
+
* @default true if not readonly
|
|
2045
|
+
*/
|
|
2046
|
+
controls?: boolean | undefined;
|
|
2047
|
+
/**
|
|
2048
|
+
* If set, initial viewport will show all nodes & edges
|
|
2049
|
+
* @default true
|
|
2050
|
+
*/
|
|
2051
|
+
fitView?: boolean | undefined;
|
|
2052
|
+
/**
|
|
2053
|
+
* Seems like this is percentage of the view size
|
|
2054
|
+
* @default 0
|
|
2055
|
+
*/
|
|
2056
|
+
fitViewPadding?: number | undefined;
|
|
2057
|
+
/**
|
|
2058
|
+
* @default false if readonly
|
|
2059
|
+
*/
|
|
2060
|
+
nodesSelectable?: boolean | undefined;
|
|
2061
|
+
/**
|
|
2062
|
+
* @default false if readonly
|
|
2063
|
+
*/
|
|
2064
|
+
nodesDraggable?: boolean | undefined;
|
|
2065
|
+
initialWidth?: number | undefined;
|
|
2066
|
+
initialHeight?: number | undefined;
|
|
2067
|
+
/**
|
|
2068
|
+
* Background pattern
|
|
2069
|
+
* @default 'dots'
|
|
2070
|
+
*/
|
|
2071
|
+
background?: "transparent" | "solid" | "dots" | "lines" | "cross" | undefined;
|
|
2072
|
+
/**
|
|
2073
|
+
* Display webview with diagram title / description
|
|
2074
|
+
* @default true
|
|
2075
|
+
*/
|
|
2076
|
+
showDiagramTitle?: boolean | undefined;
|
|
2077
|
+
/**
|
|
2078
|
+
* Show back/forward history navigation buttons
|
|
2079
|
+
* @default true if `onNavigateTo` is set
|
|
2080
|
+
*/
|
|
2081
|
+
showNavigationButtons?: undefined | boolean;
|
|
2082
|
+
/**
|
|
2083
|
+
* Display notations of the view
|
|
2084
|
+
* @default true
|
|
2085
|
+
*/
|
|
2086
|
+
showNotations?: boolean | undefined;
|
|
2087
|
+
/**
|
|
2088
|
+
* Display dropdown with details on relationship's label click
|
|
2089
|
+
* @default false
|
|
2090
|
+
*/
|
|
2091
|
+
enableRelationshipDetails?: boolean | undefined;
|
|
2092
|
+
/**
|
|
2093
|
+
* If double click on a node should enable focus mode, i.e. highlight incoming/outgoing edges
|
|
2094
|
+
* @default false
|
|
2095
|
+
*/
|
|
2096
|
+
enableFocusMode?: boolean | undefined;
|
|
2097
|
+
/**
|
|
2098
|
+
* Enable search popup for elements and views
|
|
2099
|
+
* @default true
|
|
2100
|
+
*/
|
|
2101
|
+
enableSearch?: boolean | undefined;
|
|
2102
|
+
/**
|
|
2103
|
+
* Enable modal with element details
|
|
2104
|
+
* @default false
|
|
2105
|
+
*/
|
|
2106
|
+
enableElementDetails?: boolean | undefined;
|
|
2107
|
+
/**
|
|
2108
|
+
* Experimental feature to browse relationships
|
|
2109
|
+
*
|
|
2110
|
+
* @default false
|
|
2111
|
+
*/
|
|
2112
|
+
enableRelationshipBrowser?: boolean | undefined;
|
|
2113
|
+
/**
|
|
2114
|
+
* If Walkthrough for dynamic views should be enabled
|
|
2115
|
+
* @default false
|
|
2116
|
+
*/
|
|
2117
|
+
enableDynamicViewWalkthrough?: boolean | undefined;
|
|
2118
|
+
/**
|
|
2119
|
+
* Experimental feature to enable edge editing
|
|
2120
|
+
* @default false
|
|
2121
|
+
*/
|
|
2122
|
+
experimentalEdgeEditing?: boolean | undefined;
|
|
2123
|
+
/**
|
|
2124
|
+
* Improve performance by hiding certain elements and reducing visual effects (disable mix-blend, shadows, animations)
|
|
2125
|
+
*
|
|
2126
|
+
* @default 'auto' - will be set to true if view has more then 3000 * 2000 pixels
|
|
2127
|
+
*/
|
|
2128
|
+
reduceGraphics?: "auto" | boolean | undefined;
|
|
2129
|
+
/**
|
|
2130
|
+
* Render icon for an element, bundled or remote
|
|
2131
|
+
* By default, if icon is http:// or https://, it will be rendered as an image
|
|
2132
|
+
*/
|
|
2133
|
+
renderIcon?: ElementIconRenderer | undefined;
|
|
2134
|
+
/**
|
|
2135
|
+
* Customize layout of the controls on the top left
|
|
2136
|
+
*/
|
|
2137
|
+
renderControls?: ControlsCustomLayout | undefined;
|
|
2138
|
+
/**
|
|
2139
|
+
* Dynamic filter, applies both to nodes and edges
|
|
2140
|
+
*/
|
|
2141
|
+
where?: WhereOperator<string, string> | undefined;
|
|
2142
|
+
/**
|
|
2143
|
+
* Override ReactFlow props
|
|
2144
|
+
*/
|
|
2145
|
+
reactFlowProps?: OverrideReactFlowProps | undefined;
|
|
2146
|
+
}
|
|
2147
|
+
type OpenSourceParams = {
|
|
2148
|
+
element: Fqn;
|
|
2149
|
+
property?: string;
|
|
2150
|
+
} | {
|
|
2151
|
+
relation: RelationId;
|
|
2152
|
+
} | {
|
|
2153
|
+
deployment: Fqn;
|
|
2154
|
+
property?: string;
|
|
2155
|
+
} | {
|
|
2156
|
+
view: ViewId;
|
|
2157
|
+
};
|
|
2158
|
+
interface LikeC4DiagramEventHandlers {
|
|
2159
|
+
onChange?: OnChange | null | undefined;
|
|
2160
|
+
onNavigateTo?: OnNavigateTo | null | undefined;
|
|
2161
|
+
onNodeClick?: OnNodeClick | null | undefined;
|
|
2162
|
+
onNodeContextMenu?: OnNodeClick | null | undefined;
|
|
2163
|
+
onCanvasContextMenu?: OnCanvasClick | null | undefined;
|
|
2164
|
+
onEdgeClick?: OnEdgeClick | null | undefined;
|
|
2165
|
+
onEdgeContextMenu?: OnEdgeClick | null | undefined;
|
|
2166
|
+
onCanvasClick?: OnCanvasClick | null | undefined;
|
|
2167
|
+
onCanvasDblClick?: OnCanvasClick | null | undefined;
|
|
2168
|
+
onBurgerMenuClick?: null | undefined | (() => void);
|
|
2169
|
+
onOpenSource?: null | undefined | ((params: OpenSourceParams) => void);
|
|
2170
|
+
}
|
|
2171
|
+
export interface LikeC4ViewProps<ViewId = string, Tag = string, Kind = string> {
|
|
2172
|
+
/**
|
|
2173
|
+
* View to display.
|
|
2174
|
+
*/
|
|
2175
|
+
viewId: ViewId;
|
|
2176
|
+
/**
|
|
2177
|
+
* Enable/disable panning
|
|
2178
|
+
* @default false
|
|
2179
|
+
*/
|
|
2180
|
+
pannable?: boolean | undefined;
|
|
2181
|
+
/**
|
|
2182
|
+
* Enable/disable zooming
|
|
2183
|
+
* @default false
|
|
2184
|
+
*/
|
|
2185
|
+
zoomable?: boolean | undefined;
|
|
2186
|
+
/**
|
|
2187
|
+
* @default true
|
|
2188
|
+
*/
|
|
2189
|
+
keepAspectRatio?: boolean | undefined;
|
|
2190
|
+
/**
|
|
2191
|
+
* Background pattern
|
|
2192
|
+
* @default 'transparent'
|
|
2193
|
+
*/
|
|
2194
|
+
background?: "dots" | "lines" | "cross" | "transparent" | "solid" | undefined;
|
|
2195
|
+
/**
|
|
2196
|
+
* Click on the view opens a modal with browser.
|
|
2197
|
+
* You can customize or disable the browser.
|
|
2198
|
+
*
|
|
2199
|
+
* @default true
|
|
2200
|
+
*/
|
|
2201
|
+
browser?: boolean | LikeC4BrowserProps | undefined;
|
|
2202
|
+
/**
|
|
2203
|
+
* @default - determined by the user's system preferences.
|
|
2204
|
+
*/
|
|
2205
|
+
colorScheme?: "light" | "dark" | undefined;
|
|
2206
|
+
/**
|
|
2207
|
+
* LikeC4 views are using 'IBM Plex Sans' font.
|
|
2208
|
+
* By default, component injects the CSS to document head.
|
|
2209
|
+
* Set to false if you want to handle the font yourself.
|
|
2210
|
+
*
|
|
2211
|
+
* @default true
|
|
2212
|
+
*/
|
|
2213
|
+
injectFontCss?: boolean | undefined;
|
|
2214
|
+
/**
|
|
2215
|
+
* Show/hide panel with top left controls,
|
|
2216
|
+
* @default false
|
|
2217
|
+
*/
|
|
2218
|
+
controls?: boolean | undefined;
|
|
2219
|
+
/**
|
|
2220
|
+
* If set, initial viewport will show all nodes & edges
|
|
2221
|
+
* @default true
|
|
2222
|
+
*/
|
|
2223
|
+
fitView?: boolean | undefined;
|
|
2224
|
+
/**
|
|
2225
|
+
* Seems like this is percentage of the view size
|
|
2226
|
+
* @default 0.1
|
|
2227
|
+
*/
|
|
2228
|
+
fitViewPadding?: number | undefined;
|
|
2229
|
+
/**
|
|
2230
|
+
* Display diagram title / description
|
|
2231
|
+
*
|
|
2232
|
+
* @default false
|
|
2233
|
+
*/
|
|
2234
|
+
showDiagramTitle?: boolean | undefined;
|
|
2235
|
+
/**
|
|
2236
|
+
* Show back/forward navigation buttons
|
|
2237
|
+
* @default false
|
|
2238
|
+
*/
|
|
2239
|
+
showNavigationButtons?: undefined | boolean;
|
|
2240
|
+
/**
|
|
2241
|
+
* Display notations of the view
|
|
2242
|
+
* @default false
|
|
2243
|
+
*/
|
|
2244
|
+
showNotations?: boolean | undefined;
|
|
2245
|
+
/**
|
|
2246
|
+
* If double click on a node should enable focus mode, i.e. highlight incoming/outgoing edges
|
|
2247
|
+
* Conflicts with `browser` prop
|
|
2248
|
+
*
|
|
2249
|
+
* @default false
|
|
2250
|
+
*/
|
|
2251
|
+
enableFocusMode?: boolean | undefined;
|
|
2252
|
+
/**
|
|
2253
|
+
* If Walkthrough for dynamic views should be enabled
|
|
2254
|
+
* @default enableFocusMode
|
|
2255
|
+
*/
|
|
2256
|
+
enableDynamicViewWalkthrough?: boolean | undefined;
|
|
2257
|
+
/**
|
|
2258
|
+
* Enable popup with element details
|
|
2259
|
+
* @default false
|
|
2260
|
+
*/
|
|
2261
|
+
enableElementDetails?: boolean | undefined;
|
|
2262
|
+
/**
|
|
2263
|
+
* Experimental feature to browse relationships
|
|
2264
|
+
*
|
|
2265
|
+
* @default enableElementDetails
|
|
2266
|
+
*/
|
|
2267
|
+
enableRelationshipBrowser?: boolean | undefined;
|
|
2268
|
+
/**
|
|
2269
|
+
* Display dropdown with details on relationship's label click
|
|
2270
|
+
* @default enableRelationshipBrowser
|
|
2271
|
+
*/
|
|
2272
|
+
enableRelationshipDetails?: boolean | undefined;
|
|
2273
|
+
/**
|
|
2274
|
+
* Improve performance by hiding certain elements and reducing visual effects (disable mix-blend, shadows, animations)
|
|
2275
|
+
*
|
|
2276
|
+
* @default 'auto' - will be set to true if view is pannable and has more than 3000 * 2000 pixels
|
|
2277
|
+
*/
|
|
2278
|
+
reduceGraphics?: "auto" | boolean | undefined;
|
|
2279
|
+
where?: WhereOperator<Tag, Kind> | undefined;
|
|
2280
|
+
/**
|
|
2281
|
+
* Override some react flow props
|
|
2282
|
+
*/
|
|
2283
|
+
reactFlowProps?: OverrideReactFlowProps | undefined;
|
|
2284
|
+
className?: string | undefined;
|
|
2285
|
+
style?: CSSProperties | undefined;
|
|
2286
|
+
/**
|
|
2287
|
+
* Override Mantine theme
|
|
2288
|
+
*/
|
|
2289
|
+
mantineTheme?: any;
|
|
2290
|
+
/** Function to generate nonce attribute added to all generated `<style />` tags */
|
|
2291
|
+
styleNonce?: string | (() => string) | undefined;
|
|
2292
|
+
/**
|
|
2293
|
+
* Render custom icon for a node
|
|
2294
|
+
* By default, if icon is http:// or https://, it will be rendered as an image
|
|
2295
|
+
*/
|
|
2296
|
+
renderIcon?: ElementIconRenderer | undefined;
|
|
2297
|
+
}
|
|
2298
|
+
interface LikeC4BrowserProps {
|
|
2299
|
+
/**
|
|
2300
|
+
* Background pattern for the browser view.
|
|
2301
|
+
* @default 'dots'
|
|
2302
|
+
*/
|
|
2303
|
+
background?: "dots" | "lines" | "cross" | "transparent" | "solid" | undefined;
|
|
2304
|
+
/**
|
|
2305
|
+
* Seems like this is percentage of the view size
|
|
2306
|
+
* @default 0.1
|
|
2307
|
+
*/
|
|
2308
|
+
fitViewPadding?: number | undefined;
|
|
2309
|
+
/**
|
|
2310
|
+
* Show/hide panel with top left controls,
|
|
2311
|
+
* @default true
|
|
2312
|
+
*/
|
|
2313
|
+
controls?: boolean | undefined;
|
|
2314
|
+
/**
|
|
2315
|
+
* Display diagram title / description
|
|
2316
|
+
*
|
|
2317
|
+
* @default true
|
|
2318
|
+
*/
|
|
2319
|
+
showDiagramTitle?: boolean | undefined;
|
|
2320
|
+
/**
|
|
2321
|
+
* Show back/forward navigation buttons
|
|
2322
|
+
* @default true
|
|
2323
|
+
*/
|
|
2324
|
+
showNavigationButtons?: undefined | boolean;
|
|
2325
|
+
/**
|
|
2326
|
+
* Enable search popup for elements and views
|
|
2327
|
+
* @default true
|
|
2328
|
+
*/
|
|
2329
|
+
enableSearch?: boolean | undefined;
|
|
2330
|
+
/**
|
|
2331
|
+
* If double click on a node should enable focus mode
|
|
2332
|
+
*
|
|
2333
|
+
* @default true
|
|
2334
|
+
*/
|
|
2335
|
+
enableFocusMode?: boolean | undefined;
|
|
2336
|
+
/**
|
|
2337
|
+
* If Walkthrough for dynamic views should be enabled
|
|
2338
|
+
* @default true
|
|
2339
|
+
*/
|
|
2340
|
+
enableDynamicViewWalkthrough?: boolean | undefined;
|
|
2341
|
+
/**
|
|
2342
|
+
* Enable popup with element details
|
|
2343
|
+
* @default true
|
|
2344
|
+
*/
|
|
2345
|
+
enableElementDetails?: boolean | undefined;
|
|
2346
|
+
/**
|
|
2347
|
+
* Experimental feature to browse relationships
|
|
2348
|
+
*
|
|
2349
|
+
* @default enableElementDetails
|
|
2350
|
+
*/
|
|
2351
|
+
enableRelationshipBrowser?: boolean | undefined;
|
|
2352
|
+
/**
|
|
2353
|
+
* Display dropdown with details on relationship's label click
|
|
2354
|
+
* @default enableRelationshipBrowser
|
|
2355
|
+
*/
|
|
2356
|
+
enableRelationshipDetails?: boolean | undefined;
|
|
2357
|
+
/**
|
|
2358
|
+
* Display notations of the view
|
|
2359
|
+
* @default true
|
|
2360
|
+
*/
|
|
2361
|
+
showNotations?: boolean | undefined;
|
|
2362
|
+
/**
|
|
2363
|
+
* Improve performance by hiding certain elements and reducing visual effects (disable mix-blend, shadows, animations)
|
|
2364
|
+
*
|
|
2365
|
+
* @default 'auto' - will be set to true if view is pannable and has more than 3000 * 2000 pixels
|
|
2366
|
+
*/
|
|
2367
|
+
reduceGraphics?: "auto" | boolean | undefined;
|
|
2368
|
+
className?: string | undefined;
|
|
2369
|
+
style?: CSSProperties | undefined;
|
|
2370
|
+
/**
|
|
2371
|
+
* Override some react flow props
|
|
2372
|
+
*/
|
|
2373
|
+
reactFlowProps?: OverrideReactFlowProps | undefined;
|
|
2374
|
+
}
|
|
2375
|
+
export declare function LikeC4View<ViewId extends string = string, Tag = string, Kind = string>({ viewId, ...props }: LikeC4ViewProps<ViewId, Tag, Kind>): import("react/jsx-runtime").JSX.Element;
|
|
2376
|
+
type LikeC4DiagramProps = PropsWithChildren<LikeC4DiagramProperties & LikeC4DiagramEventHandlers>;
|
|
2377
|
+
export type ReactLikeC4Props<ViewId = string, Tag = string, Kind = string> = Omit<LikeC4DiagramProps, "view" | "where" | "onNavigateTo"> & {
|
|
2378
|
+
viewId: ViewId;
|
|
2379
|
+
/**
|
|
2380
|
+
* Keep aspect ratio of the diagram
|
|
2381
|
+
* Disable if you need to manage the viewport (use className)
|
|
2382
|
+
*
|
|
2383
|
+
* @default true
|
|
2384
|
+
*/
|
|
2385
|
+
keepAspectRatio?: boolean | undefined;
|
|
2386
|
+
/**
|
|
2387
|
+
* By default determined by the user's system preferences.
|
|
2388
|
+
*/
|
|
2389
|
+
colorScheme?: "light" | "dark" | undefined;
|
|
2390
|
+
/**
|
|
2391
|
+
* LikeC4 views are using 'IBM Plex Sans' font.
|
|
2392
|
+
* By default, component injects the CSS to document head.
|
|
2393
|
+
* Set to false if you want to handle the font yourself.
|
|
2394
|
+
*
|
|
2395
|
+
* @default true
|
|
2396
|
+
*/
|
|
2397
|
+
injectFontCss?: boolean | undefined;
|
|
2398
|
+
style?: CSSProperties | undefined;
|
|
2399
|
+
where?: WhereOperator<Tag, Kind> | undefined;
|
|
2400
|
+
onNavigateTo?: OnNavigateTo<ViewId> | undefined;
|
|
2401
|
+
mantineTheme?: any;
|
|
2402
|
+
/** Function to generate nonce attribute added to all generated `<style />` tags */
|
|
2403
|
+
styleNonce?: string | (() => string) | undefined;
|
|
2404
|
+
};
|
|
2405
|
+
export declare function ReactLikeC4<ViewId extends string = string, Tag = string, Kind = string>({ viewId, ...props }: ReactLikeC4Props<ViewId, Tag, Kind>): import("react/jsx-runtime").JSX.Element;
|
|
2406
|
+
export declare namespace ReactLikeC4 {
|
|
2407
|
+
var displayName: string;
|
|
2408
|
+
}
|
|
2409
|
+
type LikeC4ModelProviderProps = PropsWithChildren<{
|
|
2410
|
+
/**
|
|
2411
|
+
* The LikeC4 model to be provided to the context.
|
|
2412
|
+
* TODO: refer to 'likec4/model'
|
|
2413
|
+
*/
|
|
2414
|
+
likec4model: any;
|
|
2415
|
+
}>;
|
|
2416
|
+
export declare const LikeC4ModelProvider: (props: LikeC4ModelProviderProps) => JSX.Element;
|
|
2417
|
+
type AllKeys<T> = T extends any ? keyof T : never;
|
|
2418
|
+
type Primitive$1 = boolean | number | string;
|
|
2419
|
+
type ReadonlyIfObject<Value> = Value extends undefined ? Value : Value extends (...args: any) => any ? Value : Value extends Primitive$1 ? Value : Value extends object ? Readonly<Value> : Value;
|
|
2420
|
+
interface ReadableAtom<Value = any> {
|
|
2421
|
+
/**
|
|
2422
|
+
* Get store value.
|
|
2423
|
+
*
|
|
2424
|
+
* In contrast with {@link ReadableAtom#value} this value will be always
|
|
2425
|
+
* initialized even if store had no listeners.
|
|
2426
|
+
*
|
|
2427
|
+
* ```js
|
|
2428
|
+
* $store.get()
|
|
2429
|
+
* ```
|
|
2430
|
+
*
|
|
2431
|
+
* @returns Store value.
|
|
2432
|
+
*/
|
|
2433
|
+
get(): Value;
|
|
2434
|
+
/**
|
|
2435
|
+
* Listeners count.
|
|
2436
|
+
*/
|
|
2437
|
+
readonly lc: number;
|
|
2438
|
+
/**
|
|
2439
|
+
* Subscribe to store changes.
|
|
2440
|
+
*
|
|
2441
|
+
* In contrast with {@link Store#subscribe} it do not call listener
|
|
2442
|
+
* immediately.
|
|
2443
|
+
*
|
|
2444
|
+
* @param listener Callback with store value and old value.
|
|
2445
|
+
* @returns Function to remove listener.
|
|
2446
|
+
*/
|
|
2447
|
+
listen(listener: (value: ReadonlyIfObject<Value>, oldValue: ReadonlyIfObject<Value>) => void): () => void;
|
|
2448
|
+
/**
|
|
2449
|
+
* Low-level method to notify listeners about changes in the store.
|
|
2450
|
+
*
|
|
2451
|
+
* Can cause unexpected behaviour when combined with frontend frameworks
|
|
2452
|
+
* that perform equality checks for values, such as React.
|
|
2453
|
+
*/
|
|
2454
|
+
notify(oldValue?: ReadonlyIfObject<Value>): void;
|
|
2455
|
+
/**
|
|
2456
|
+
* Unbind all listeners.
|
|
2457
|
+
*/
|
|
2458
|
+
off(): void;
|
|
2459
|
+
/**
|
|
2460
|
+
* Subscribe to store changes and call listener immediately.
|
|
2461
|
+
*
|
|
2462
|
+
* ```
|
|
2463
|
+
* import { $router } from '../store'
|
|
2464
|
+
*
|
|
2465
|
+
* $router.subscribe(page => {
|
|
2466
|
+
* console.log(page)
|
|
2467
|
+
* })
|
|
2468
|
+
* ```
|
|
2469
|
+
*
|
|
2470
|
+
* @param listener Callback with store value and old value.
|
|
2471
|
+
* @returns Function to remove listener.
|
|
2472
|
+
*/
|
|
2473
|
+
subscribe(listener: (value: ReadonlyIfObject<Value>, oldValue?: ReadonlyIfObject<Value>) => void): () => void;
|
|
2474
|
+
/**
|
|
2475
|
+
* Low-level method to read store’s value without calling `onStart`.
|
|
2476
|
+
*
|
|
2477
|
+
* Try to use only {@link ReadableAtom#get}.
|
|
2478
|
+
* Without subscribers, value can be undefined.
|
|
2479
|
+
*/
|
|
2480
|
+
readonly value: undefined | Value;
|
|
2481
|
+
}
|
|
2482
|
+
interface WritableAtom<Value = any> extends ReadableAtom<Value> {
|
|
2483
|
+
/**
|
|
2484
|
+
* Change store value.
|
|
2485
|
+
*
|
|
2486
|
+
* ```js
|
|
2487
|
+
* $router.set({ path: location.pathname, page: parse(location.pathname) })
|
|
2488
|
+
* ```
|
|
2489
|
+
*
|
|
2490
|
+
* @param newValue New store value.
|
|
2491
|
+
*/
|
|
2492
|
+
set(newValue: Value): void;
|
|
2493
|
+
}
|
|
2494
|
+
interface PreinitializedWritableAtom<Value> extends WritableAtom<Value> {
|
|
2495
|
+
readonly value: Value;
|
|
2496
|
+
}
|
|
2497
|
+
type Atom<Value = any> = ReadableAtom<Value> | WritableAtom<Value>;
|
|
2498
|
+
declare function atom<Value, StoreExt = object>(...args: undefined extends Value ? [
|
|
2499
|
+
] | [
|
|
2500
|
+
Value
|
|
2501
|
+
] : [
|
|
2502
|
+
Value
|
|
2503
|
+
]): PreinitializedWritableAtom<Value> & StoreExt;
|
|
2504
|
+
type KeyofBase = keyof any;
|
|
2505
|
+
type Get<T, K extends KeyofBase> = Extract<T, {
|
|
2506
|
+
[K1 in K]: any;
|
|
2507
|
+
}>[K];
|
|
2508
|
+
type WritableStore<Value = any> = (Value extends object ? MapStore<Value> : never) | WritableAtom<Value>;
|
|
2509
|
+
type Store<Value = any> = ReadableAtom<Value> | WritableStore<Value>;
|
|
2510
|
+
type AnyStore<Value = any> = {
|
|
2511
|
+
get(): Value;
|
|
2512
|
+
readonly value: undefined | Value;
|
|
2513
|
+
};
|
|
2514
|
+
type StoreValue<SomeStore> = SomeStore extends {
|
|
2515
|
+
get(): infer Value;
|
|
2516
|
+
} ? Value : any;
|
|
2517
|
+
interface MapStore<Value extends object = any> extends WritableAtom<Value> {
|
|
2518
|
+
/**
|
|
2519
|
+
* Subscribe to store changes.
|
|
2520
|
+
*
|
|
2521
|
+
* In contrast with {@link Store#subscribe} it do not call listener
|
|
2522
|
+
* immediately.
|
|
2523
|
+
*
|
|
2524
|
+
* @param listener Callback with store value and old value.
|
|
2525
|
+
* @param changedKey Key that was changed. Will present only if `setKey`
|
|
2526
|
+
* has been used to change a store.
|
|
2527
|
+
* @returns Function to remove listener.
|
|
2528
|
+
*/
|
|
2529
|
+
listen(listener: (value: ReadonlyIfObject<Value>, oldValue: ReadonlyIfObject<Value>, changedKey: AllKeys<Value>) => void): () => void;
|
|
2530
|
+
/**
|
|
2531
|
+
* Low-level method to notify listeners about changes in the store.
|
|
2532
|
+
*
|
|
2533
|
+
* Can cause unexpected behaviour when combined with frontend frameworks
|
|
2534
|
+
* that perform equality checks for values, such as React.
|
|
2535
|
+
*/
|
|
2536
|
+
notify(oldValue?: ReadonlyIfObject<Value>, changedKey?: AllKeys<Value>): void;
|
|
2537
|
+
/**
|
|
2538
|
+
* Change store value.
|
|
2539
|
+
*
|
|
2540
|
+
* ```js
|
|
2541
|
+
* $settings.set({ theme: 'dark' })
|
|
2542
|
+
* ```
|
|
2543
|
+
*
|
|
2544
|
+
* Operation is atomic, subscribers will be notified once with the new value.
|
|
2545
|
+
* `changedKey` will be undefined
|
|
2546
|
+
*
|
|
2547
|
+
* @param newValue New store value.
|
|
2548
|
+
*/
|
|
2549
|
+
set(newValue: Value): void;
|
|
2550
|
+
/**
|
|
2551
|
+
* Change key in store value.
|
|
2552
|
+
*
|
|
2553
|
+
* ```js
|
|
2554
|
+
* $settings.setKey('theme', 'dark')
|
|
2555
|
+
* ```
|
|
2556
|
+
*
|
|
2557
|
+
* To delete key set `undefined`.
|
|
2558
|
+
*
|
|
2559
|
+
* ```js
|
|
2560
|
+
* $settings.setKey('theme', undefined)
|
|
2561
|
+
* ```
|
|
2562
|
+
*
|
|
2563
|
+
* @param key The key name.
|
|
2564
|
+
* @param value New value.
|
|
2565
|
+
*/
|
|
2566
|
+
setKey<Key extends AllKeys<Value>>(key: Key, value: Get<Value, Key> | Value[Key]): void;
|
|
2567
|
+
/**
|
|
2568
|
+
* Subscribe to store changes and call listener immediately.
|
|
2569
|
+
*
|
|
2570
|
+
* ```
|
|
2571
|
+
* import { $router } from '../store'
|
|
2572
|
+
*
|
|
2573
|
+
* $router.subscribe(page => {
|
|
2574
|
+
* console.log(page)
|
|
2575
|
+
* })
|
|
2576
|
+
* ```
|
|
2577
|
+
*
|
|
2578
|
+
* @param listener Callback with store value and old value.
|
|
2579
|
+
* @param changedKey Key that was changed. Will present only
|
|
2580
|
+
* if `setKey` has been used to change a store.
|
|
2581
|
+
* @returns Function to remove listener.
|
|
2582
|
+
*/
|
|
2583
|
+
subscribe(listener: (value: ReadonlyIfObject<Value>, oldValue: ReadonlyIfObject<Value> | undefined, changedKey: AllKeys<Value> | undefined) => void): () => void;
|
|
2584
|
+
}
|
|
2585
|
+
interface PreinitializedMapStore<Value extends object = any> extends MapStore<Value> {
|
|
2586
|
+
readonly value: Value;
|
|
2587
|
+
}
|
|
2588
|
+
declare function map<Value extends object, StoreExt extends object = object>(value?: Value): PreinitializedMapStore<Value> & StoreExt;
|
|
2589
|
+
interface Task<Value> extends Promise<Value> {
|
|
2590
|
+
t: true;
|
|
2591
|
+
}
|
|
2592
|
+
type StoreValues<Stores extends AnyStore[]> = {
|
|
2593
|
+
[Index in keyof Stores]: StoreValue<Stores[Index]>;
|
|
2594
|
+
};
|
|
2595
|
+
interface Computed {
|
|
2596
|
+
<Value, OriginStore extends Store>(stores: OriginStore, cb: (value: StoreValue<OriginStore>) => Task<Value>): ReadableAtom<undefined | Value>;
|
|
2597
|
+
<Value, OriginStores extends AnyStore[]>(stores: [
|
|
2598
|
+
...OriginStores
|
|
2599
|
+
], cb: (...values: StoreValues<OriginStores>) => Task<Value>): ReadableAtom<undefined | Value>;
|
|
2600
|
+
<Value, OriginStore extends Store>(stores: OriginStore, cb: (value: StoreValue<OriginStore>) => Value): ReadableAtom<Value>;
|
|
2601
|
+
/**
|
|
2602
|
+
* Create derived store, which use generates value from another stores.
|
|
2603
|
+
*
|
|
2604
|
+
* ```js
|
|
2605
|
+
* import { computed } from 'nanostores'
|
|
2606
|
+
*
|
|
2607
|
+
* import { $users } from './users.js'
|
|
2608
|
+
*
|
|
2609
|
+
* export const $admins = computed($users, users => {
|
|
2610
|
+
* return users.filter(user => user.isAdmin)
|
|
2611
|
+
* })
|
|
2612
|
+
* ```
|
|
2613
|
+
*
|
|
2614
|
+
* An async function can be evaluated by using {@link task}.
|
|
2615
|
+
*
|
|
2616
|
+
* ```js
|
|
2617
|
+
* import { computed, task } from 'nanostores'
|
|
2618
|
+
*
|
|
2619
|
+
* import { $userId } from './users.js'
|
|
2620
|
+
*
|
|
2621
|
+
* export const $user = computed($userId, userId => task(async () => {
|
|
2622
|
+
* const response = await fetch(`https://my-api/users/${userId}`)
|
|
2623
|
+
* return response.json()
|
|
2624
|
+
* }))
|
|
2625
|
+
* ```
|
|
2626
|
+
*/
|
|
2627
|
+
<Value, OriginStores extends AnyStore[]>(stores: [
|
|
2628
|
+
...OriginStores
|
|
2629
|
+
], cb: (...values: StoreValues<OriginStores>) => Task<Value> | Value): ReadableAtom<Value>;
|
|
2630
|
+
}
|
|
2631
|
+
declare const computed: Computed;
|
|
2632
|
+
type StoreKeys<T> = T extends {
|
|
2633
|
+
setKey: (k: infer K, v: any) => unknown;
|
|
2634
|
+
} ? K : never;
|
|
2635
|
+
interface UseStoreOptions<SomeStore> {
|
|
2636
|
+
/**
|
|
2637
|
+
* @default
|
|
2638
|
+
* ```ts
|
|
2639
|
+
* [store, options.keys]
|
|
2640
|
+
* ```
|
|
2641
|
+
*/
|
|
2642
|
+
deps?: DependencyList;
|
|
2643
|
+
/**
|
|
2644
|
+
* Will re-render components only on specific key changes.
|
|
2645
|
+
*/
|
|
2646
|
+
keys?: StoreKeys<SomeStore>[];
|
|
2647
|
+
}
|
|
2648
|
+
declare function useStore<SomeStore extends Store>(store: SomeStore, options?: UseStoreOptions<SomeStore>): StoreValue<SomeStore>;
|
|
2649
|
+
export declare const createHooksForModel: ($atom: WritableAtom) => any;
|
|
2650
|
+
|
|
2651
|
+
declare namespace nano {
|
|
2652
|
+
export { Atom, WritableAtom, atom, computed, map, useStore };
|
|
2653
|
+
}
|
|
2654
|
+
|
|
2655
|
+
export {
|
|
2656
|
+
nano,
|
|
2657
|
+
};
|
|
2658
|
+
|
|
2659
|
+
export {};
|