@visactor/vrender-core 1.1.0-alpha.24 → 1.1.0-alpha.25
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/cjs/allocator/bounds-allocate.js +1 -2
- package/cjs/canvas/constants.js +2 -1
- package/cjs/common/bezier-utils.js +1 -2
- package/cjs/common/event-transformer.js +2 -1
- package/cjs/common/performance-raf.js +1 -2
- package/cjs/common/polygon.js +2 -2
- package/cjs/common/rect-utils.js +1 -1
- package/cjs/common/render-area.js +1 -1
- package/cjs/common/render-command-list.js +1 -1
- package/cjs/common/render-curve.js +1 -1
- package/cjs/common/render-utils.js +1 -1
- package/cjs/common/seg-context.js +1 -1
- package/cjs/container.d.ts +2 -0
- package/cjs/container.js +50 -0
- package/cjs/container.js.map +1 -0
- package/cjs/core/application.js +1 -1
- package/cjs/core/camera.js +1 -1
- package/cjs/core/constants.js +1 -1
- package/cjs/core/core-modules.js +1 -1
- package/cjs/core/global-module.js +2 -0
- package/cjs/core/global.js +1 -1
- package/cjs/core/graphic-utils.js +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/layer-service.js +2 -1
- package/cjs/core/layer.js +1 -1
- package/cjs/core/light.js +1 -1
- package/cjs/core/stage.d.ts +0 -9
- package/cjs/core/stage.js +12 -30
- package/cjs/core/stage.js.map +1 -1
- package/cjs/core/window.js +1 -1
- package/cjs/entries/miniapp.d.ts +0 -1
- package/cjs/entries/miniapp.js +1 -5
- package/cjs/entries/miniapp.js.map +1 -1
- package/cjs/entries/node.d.ts +0 -1
- package/cjs/entries/node.js +1 -5
- package/cjs/entries/node.js.map +1 -1
- package/cjs/env.d.ts +1 -0
- package/cjs/env.js +25 -0
- package/cjs/env.js.map +1 -0
- package/cjs/event/public-constant.d.ts +7 -0
- package/cjs/event/public-constant.js +100 -0
- package/cjs/event/public-constant.js.map +1 -0
- package/cjs/event/util.d.ts +1 -1
- package/cjs/graphic/base.d.ts +2 -0
- package/cjs/graphic/base.js +15 -0
- package/cjs/graphic/base.js.map +1 -0
- package/cjs/graphic/creator.d.ts +16 -0
- package/cjs/graphic/creator.js +160 -0
- package/cjs/graphic/creator.js.map +1 -0
- package/cjs/graphic/glyph.js +4 -8
- package/cjs/graphic/glyph.js.map +1 -1
- package/cjs/graphic/graphic.d.ts +19 -29
- package/cjs/graphic/graphic.js +121 -199
- package/cjs/graphic/graphic.js.map +1 -1
- package/cjs/graphic/group.d.ts +1 -3
- package/cjs/graphic/group.js +22 -28
- package/cjs/graphic/group.js.map +1 -1
- package/cjs/graphic/modules.d.ts +16 -0
- package/cjs/graphic/modules.js +150 -0
- package/cjs/graphic/modules.js.map +1 -0
- package/cjs/graphic/node-tree.d.ts +3 -3
- package/cjs/graphic/node-tree.js +1 -0
- package/cjs/graphic/node-tree.js.map +1 -1
- package/cjs/graphic/state/shared-state-refresh.js +11 -32
- package/cjs/graphic/state/shared-state-refresh.js.map +1 -1
- package/cjs/graphic/state/shared-state-scope.d.ts +2 -5
- package/cjs/graphic/state/shared-state-scope.js +8 -27
- package/cjs/graphic/state/shared-state-scope.js.map +1 -1
- package/cjs/graphic/state/state-definition-compiler.js +4 -5
- package/cjs/graphic/state/state-definition-compiler.js.map +1 -1
- package/cjs/graphic/state/state-definition.d.ts +2 -5
- package/cjs/graphic/state/state-definition.js.map +1 -1
- package/cjs/graphic/state/state-engine.d.ts +0 -5
- package/cjs/graphic/state/state-engine.js +20 -70
- package/cjs/graphic/state/state-engine.js.map +1 -1
- package/cjs/graphic/state/state-transition-orchestrator.d.ts +7 -9
- package/cjs/graphic/state/state-transition-orchestrator.js +10 -13
- package/cjs/graphic/state/state-transition-orchestrator.js.map +1 -1
- package/cjs/interface/graphic/group.d.ts +0 -2
- package/cjs/interface/graphic/group.js.map +1 -1
- package/cjs/interface/graphic.d.ts +1 -5
- package/cjs/interface/graphic.js.map +1 -1
- package/cjs/interface/index.js.map +1 -1
- package/cjs/interface/node-tree.d.ts +3 -0
- package/cjs/interface/node-tree.js.map +1 -1
- package/cjs/interface/stage.d.ts +0 -7
- package/cjs/interface/stage.js.map +1 -1
- package/cjs/interpolate.d.ts +2 -0
- package/cjs/interpolate.js +34 -0
- package/cjs/interpolate.js.map +1 -0
- package/cjs/modules.js.map +1 -1
- package/cjs/path.d.ts +4 -0
- package/cjs/path.js +33 -0
- package/cjs/path.js.map +1 -0
- package/cjs/plugin/3d.d.ts +3 -0
- package/cjs/plugin/3d.js +33 -0
- package/cjs/plugin/3d.js.map +1 -0
- package/cjs/plugin/attribute.d.ts +2 -0
- package/cjs/plugin/attribute.js +24 -0
- package/cjs/plugin/attribute.js.map +1 -0
- package/cjs/plugin/flex-layout.d.ts +1 -0
- package/cjs/plugin/flex-layout.js +15 -0
- package/cjs/plugin/flex-layout.js.map +1 -0
- package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js +8 -8
- package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
- package/cjs/plugins/index.d.ts +0 -4
- package/cjs/plugins/index.js +1 -3
- package/cjs/plugins/index.js.map +1 -1
- package/cjs/plugins/plugin-service.d.ts +0 -1
- package/cjs/plugins/plugin-service.js +2 -3
- package/cjs/plugins/plugin-service.js.map +1 -1
- package/cjs/plugins/types.d.ts +1 -8
- package/cjs/plugins/types.js.map +1 -1
- package/cjs/register/graphic.d.ts +19 -0
- package/cjs/register/graphic.js +177 -0
- package/cjs/register/graphic.js.map +1 -0
- package/cjs/registry/contribution-registry.d.ts +0 -1
- package/cjs/registry/contribution-registry.js +0 -3
- package/cjs/registry/contribution-registry.js.map +1 -1
- package/cjs/registry/picker-registry.d.ts +0 -1
- package/cjs/registry/picker-registry.js +0 -3
- package/cjs/registry/picker-registry.js.map +1 -1
- package/cjs/registry/renderer-registry.d.ts +0 -1
- package/cjs/registry/renderer-registry.js +0 -3
- package/cjs/registry/renderer-registry.js.map +1 -1
- package/cjs/registry/types.d.ts +0 -3
- package/cjs/registry/types.js.map +1 -1
- package/cjs/svg.d.ts +1 -0
- package/cjs/svg.js +15 -0
- package/cjs/svg.js.map +1 -0
- package/cjs/text.d.ts +2 -0
- package/cjs/text.js +29 -0
- package/cjs/text.js.map +1 -0
- package/dist/index.es.js +279 -1591
- package/es/allocator/bounds-allocate.js +1 -2
- package/es/canvas/constants.js +2 -1
- package/es/common/bezier-utils.js +1 -2
- package/es/common/event-transformer.js +2 -1
- package/es/common/performance-raf.js +1 -2
- package/es/common/polygon.js +1 -1
- package/es/common/rect-utils.js +1 -1
- package/es/common/render-area.js +1 -1
- package/es/common/render-command-list.js +1 -1
- package/es/common/render-curve.js +1 -1
- package/es/common/render-utils.js +1 -1
- package/es/common/seg-context.js +1 -1
- package/es/container.d.ts +2 -0
- package/es/container.js +2 -0
- package/es/container.js.map +1 -0
- package/es/core/application.js +1 -1
- package/es/core/camera.js +1 -1
- package/es/core/constants.js +1 -1
- package/es/core/core-modules.js +1 -1
- package/es/core/global-module.js +2 -0
- package/es/core/global.js +1 -1
- package/es/core/graphic-utils.js +1 -1
- package/es/core/index.js +1 -1
- package/es/core/layer-service.js +2 -1
- package/es/core/layer.js +1 -1
- package/es/core/light.js +1 -1
- package/es/core/stage.d.ts +0 -9
- package/es/core/stage.js +10 -31
- package/es/core/stage.js.map +1 -1
- package/es/core/window.js +1 -1
- package/es/entries/miniapp.d.ts +0 -1
- package/es/entries/miniapp.js +1 -5
- package/es/entries/miniapp.js.map +1 -1
- package/es/entries/node.d.ts +0 -1
- package/es/entries/node.js +1 -5
- package/es/entries/node.js.map +1 -1
- package/es/env.d.ts +1 -0
- package/es/env.js +2 -0
- package/es/env.js.map +1 -0
- package/es/event/public-constant.d.ts +7 -0
- package/es/event/public-constant.js +12 -0
- package/es/event/public-constant.js.map +1 -0
- package/es/event/util.d.ts +1 -1
- package/es/graphic/base.d.ts +2 -0
- package/es/graphic/base.js +2 -0
- package/es/graphic/base.js.map +1 -0
- package/es/graphic/creator.d.ts +16 -0
- package/es/graphic/creator.js +32 -0
- package/es/graphic/creator.js.map +1 -0
- package/es/graphic/glyph.js +4 -8
- package/es/graphic/glyph.js.map +1 -1
- package/es/graphic/graphic.d.ts +19 -29
- package/es/graphic/graphic.js +120 -204
- package/es/graphic/graphic.js.map +1 -1
- package/es/graphic/group.d.ts +1 -3
- package/es/graphic/group.js +22 -28
- package/es/graphic/group.js.map +1 -1
- package/es/graphic/modules.d.ts +16 -0
- package/es/graphic/modules.js +32 -0
- package/es/graphic/modules.js.map +1 -0
- package/es/graphic/node-tree.d.ts +3 -3
- package/es/graphic/node-tree.js +1 -0
- package/es/graphic/node-tree.js.map +1 -1
- package/es/graphic/state/shared-state-refresh.js +8 -28
- package/es/graphic/state/shared-state-refresh.js.map +1 -1
- package/es/graphic/state/shared-state-scope.d.ts +2 -5
- package/es/graphic/state/shared-state-scope.js +7 -28
- package/es/graphic/state/shared-state-scope.js.map +1 -1
- package/es/graphic/state/state-definition-compiler.js +4 -5
- package/es/graphic/state/state-definition-compiler.js.map +1 -1
- package/es/graphic/state/state-definition.d.ts +2 -5
- package/es/graphic/state/state-definition.js.map +1 -1
- package/es/graphic/state/state-engine.d.ts +0 -5
- package/es/graphic/state/state-engine.js +17 -67
- package/es/graphic/state/state-engine.js.map +1 -1
- package/es/graphic/state/state-transition-orchestrator.d.ts +7 -9
- package/es/graphic/state/state-transition-orchestrator.js +10 -13
- package/es/graphic/state/state-transition-orchestrator.js.map +1 -1
- package/es/interface/graphic/group.d.ts +0 -2
- package/es/interface/graphic/group.js.map +1 -1
- package/es/interface/graphic.d.ts +1 -5
- package/es/interface/graphic.js.map +1 -1
- package/es/interface/index.js.map +1 -1
- package/es/interface/node-tree.d.ts +3 -0
- package/es/interface/node-tree.js.map +1 -1
- package/es/interface/stage.d.ts +0 -7
- package/es/interface/stage.js.map +1 -1
- package/es/interpolate.d.ts +2 -0
- package/es/interpolate.js +4 -0
- package/es/interpolate.js.map +1 -0
- package/es/modules.js.map +1 -1
- package/es/path.d.ts +4 -0
- package/es/path.js +6 -0
- package/es/path.js.map +1 -0
- package/es/plugin/3d.d.ts +3 -0
- package/es/plugin/3d.js +6 -0
- package/es/plugin/3d.js.map +1 -0
- package/es/plugin/attribute.d.ts +2 -0
- package/es/plugin/attribute.js +4 -0
- package/es/plugin/attribute.js.map +1 -0
- package/es/plugin/flex-layout.d.ts +1 -0
- package/es/plugin/flex-layout.js +2 -0
- package/es/plugin/flex-layout.js.map +1 -0
- package/es/plugins/builtin-plugin/dirty-bounds-plugin.js +8 -8
- package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
- package/es/plugins/index.d.ts +0 -4
- package/es/plugins/index.js +0 -8
- package/es/plugins/index.js.map +1 -1
- package/es/plugins/plugin-service.d.ts +0 -1
- package/es/plugins/plugin-service.js +2 -3
- package/es/plugins/plugin-service.js.map +1 -1
- package/es/plugins/types.d.ts +1 -8
- package/es/plugins/types.js.map +1 -1
- package/es/register/graphic.d.ts +19 -0
- package/es/register/graphic.js +38 -0
- package/es/register/graphic.js.map +1 -0
- package/es/registry/contribution-registry.d.ts +0 -1
- package/es/registry/contribution-registry.js +0 -3
- package/es/registry/contribution-registry.js.map +1 -1
- package/es/registry/picker-registry.d.ts +0 -1
- package/es/registry/picker-registry.js +0 -3
- package/es/registry/picker-registry.js.map +1 -1
- package/es/registry/renderer-registry.d.ts +0 -1
- package/es/registry/renderer-registry.js +0 -3
- package/es/registry/renderer-registry.js.map +1 -1
- package/es/registry/types.d.ts +0 -3
- package/es/registry/types.js.map +1 -1
- package/es/svg.d.ts +1 -0
- package/es/svg.js +2 -0
- package/es/svg.js.map +1 -0
- package/es/text.d.ts +2 -0
- package/es/text.js +4 -0
- package/es/text.js.map +1 -0
- package/package.json +247 -3
- package/cjs/graphic/state/state-batch-scheduler.d.ts +0 -42
- package/cjs/graphic/state/state-batch-scheduler.js +0 -285
- package/cjs/graphic/state/state-batch-scheduler.js.map +0 -1
- package/cjs/graphic/state/state-model.d.ts +0 -43
- package/cjs/graphic/state/state-model.js +0 -143
- package/cjs/graphic/state/state-model.js.map +0 -1
- package/cjs/graphic/state/state-perf-monitor.d.ts +0 -120
- package/cjs/graphic/state/state-perf-monitor.js +0 -224
- package/cjs/graphic/state/state-perf-monitor.js.map +0 -1
- package/cjs/graphic/state/state-style-resolver.d.ts +0 -13
- package/cjs/graphic/state/state-style-resolver.js +0 -50
- package/cjs/graphic/state/state-style-resolver.js.map +0 -1
- package/cjs/interface/animate.d.ts +0 -1
- package/cjs/interface/animate.js +0 -3
- package/cjs/interface/animate.js.map +0 -1
- package/cjs/plugins/base-plugin.d.ts +0 -8
- package/cjs/plugins/base-plugin.js +0 -15
- package/cjs/plugins/base-plugin.js.map +0 -1
- package/cjs/plugins/browser-env-plugin.d.ts +0 -8
- package/cjs/plugins/browser-env-plugin.js +0 -24
- package/cjs/plugins/browser-env-plugin.js.map +0 -1
- package/cjs/plugins/picker-plugin.d.ts +0 -7
- package/cjs/plugins/picker-plugin.js +0 -19
- package/cjs/plugins/picker-plugin.js.map +0 -1
- package/cjs/plugins/renderer-plugin.d.ts +0 -7
- package/cjs/plugins/renderer-plugin.js +0 -19
- package/cjs/plugins/renderer-plugin.js.map +0 -1
- package/es/graphic/state/state-batch-scheduler.d.ts +0 -42
- package/es/graphic/state/state-batch-scheduler.js +0 -278
- package/es/graphic/state/state-batch-scheduler.js.map +0 -1
- package/es/graphic/state/state-model.d.ts +0 -43
- package/es/graphic/state/state-model.js +0 -135
- package/es/graphic/state/state-model.js.map +0 -1
- package/es/graphic/state/state-perf-monitor.d.ts +0 -120
- package/es/graphic/state/state-perf-monitor.js +0 -214
- package/es/graphic/state/state-perf-monitor.js.map +0 -1
- package/es/graphic/state/state-style-resolver.d.ts +0 -13
- package/es/graphic/state/state-style-resolver.js +0 -42
- package/es/graphic/state/state-style-resolver.js.map +0 -1
- package/es/interface/animate.d.ts +0 -1
- package/es/interface/animate.js +0 -3
- package/es/interface/animate.js.map +0 -1
- package/es/plugins/base-plugin.d.ts +0 -8
- package/es/plugins/base-plugin.js +0 -7
- package/es/plugins/base-plugin.js.map +0 -1
- package/es/plugins/browser-env-plugin.d.ts +0 -8
- package/es/plugins/browser-env-plugin.js +0 -16
- package/es/plugins/browser-env-plugin.js.map +0 -1
- package/es/plugins/picker-plugin.d.ts +0 -7
- package/es/plugins/picker-plugin.js +0 -11
- package/es/plugins/picker-plugin.js.map +0 -1
- package/es/plugins/renderer-plugin.d.ts +0 -7
- package/es/plugins/renderer-plugin.js +0 -11
- package/es/plugins/renderer-plugin.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graphic/state/state-perf-monitor.ts"],"names":[],"mappings":"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","file":"state-perf-monitor.js","sourcesContent":["import type { IGroup, ILayer, IStage } from '../../interface';\nimport { UpdateCategory } from './attribute-update-classifier';\n\nexport type DeferredIneligibleReason =\n | 'config_disabled'\n | 'context_disabled'\n | 'non_batch_operation'\n | 'mixed_update_category'\n | 'resolver_unstable_keys'\n | 'graphic_unavailable';\n\nexport interface IStatePerfConfig {\n enabled?: boolean;\n recordEvents?: boolean;\n maxEventRecords?: number;\n}\n\nexport interface IDeferredStateConfig {\n enabled?: boolean;\n frameBudget?: number;\n maxGraphicsPerFrame?: number;\n}\n\nexport interface IDeferredStateContextConfig {\n deferred?: IDeferredStateConfig;\n priority?: number;\n localEnabled?: boolean;\n}\n\nexport type IDeferredStateOwnerConfig = IDeferredStateConfig | IDeferredStateContextConfig;\n\nexport type IStatePerfEventType =\n | 'state-commit'\n | 'shared-refresh-flush'\n | 'deferred-job-start'\n | 'deferred-job-yield'\n | 'deferred-job-cancel'\n | 'deferred-job-complete'\n | 'deferred-ineligible';\n\nexport interface IStatePerfEventRecord {\n type: IStatePerfEventType;\n at: number;\n detail?: Record<string, unknown>;\n}\n\nexport interface IStatePerfSnapshot {\n counters: {\n stateCommits: number;\n sharedRefreshCommits: number;\n deferredJobsCreated: number;\n deferredJobsCompleted: number;\n deferredJobsCancelled: number;\n deferredJobsCoalesced: number;\n deferredGraphicsCommitted: number;\n deferredBudgetYields: number;\n deferredIneligibleGraphics: number;\n };\n deferredIneligibleByReason: Record<DeferredIneligibleReason, number>;\n categoryBreakdown: {\n paint: number;\n transform: number;\n shape: number;\n bounds: number;\n layout: number;\n pick: number;\n };\n refresh: {\n queuedGraphics: number;\n flushedGraphics: number;\n ensureFreshCalls: number;\n renderScheduled: number;\n };\n resolver: {\n cacheHits: number;\n cacheMisses: number;\n invalidations: number;\n };\n cost: {\n resolverTotalMs: number;\n resolverMaxMs: number;\n patchTotalMs: number;\n patchMaxMs: number;\n sharedRefreshTotalMs: number;\n sharedRefreshMaxMs: number;\n batchSliceTotalMs: number;\n batchSliceMaxMs: number;\n };\n allocationHints: {\n patchObjectsCreated: number;\n batchEntriesCreated: number;\n refreshQueuePushes: number;\n };\n batch: {\n pendingJobs: number;\n maxPendingJobs: number;\n maxGraphicsInJob: number;\n maxFrameSliceCost: number;\n };\n events?: IStatePerfEventRecord[];\n}\n\ntype SnapshotCounterKey = keyof IStatePerfSnapshot['counters'];\ntype SnapshotRefreshKey = keyof IStatePerfSnapshot['refresh'];\ntype SnapshotResolverKey = keyof IStatePerfSnapshot['resolver'];\ntype SnapshotAllocationKey = keyof IStatePerfSnapshot['allocationHints'];\ntype SnapshotCostKind = 'resolver' | 'patch' | 'sharedRefresh' | 'batchSlice';\n\nexport interface IResolvedDeferredContext {\n contextOwner: IStage | ILayer | IGroup;\n contextOwnerId: number;\n config: Required<IDeferredStateConfig>;\n configFingerprint: string;\n}\n\nconst DEFAULT_MAX_EVENT_RECORDS = 100;\nconst STAGE_PERF_MONITOR = Symbol('vrender.statePerfMonitor');\n\nfunction createReasonBreakdown(): Record<DeferredIneligibleReason, number> {\n return {\n config_disabled: 0,\n context_disabled: 0,\n non_batch_operation: 0,\n mixed_update_category: 0,\n resolver_unstable_keys: 0,\n graphic_unavailable: 0\n };\n}\n\nexport function createEmptyStatePerfSnapshot(): IStatePerfSnapshot {\n return {\n counters: {\n stateCommits: 0,\n sharedRefreshCommits: 0,\n deferredJobsCreated: 0,\n deferredJobsCompleted: 0,\n deferredJobsCancelled: 0,\n deferredJobsCoalesced: 0,\n deferredGraphicsCommitted: 0,\n deferredBudgetYields: 0,\n deferredIneligibleGraphics: 0\n },\n deferredIneligibleByReason: createReasonBreakdown(),\n categoryBreakdown: {\n paint: 0,\n transform: 0,\n shape: 0,\n bounds: 0,\n layout: 0,\n pick: 0\n },\n refresh: {\n queuedGraphics: 0,\n flushedGraphics: 0,\n ensureFreshCalls: 0,\n renderScheduled: 0\n },\n resolver: {\n cacheHits: 0,\n cacheMisses: 0,\n invalidations: 0\n },\n cost: {\n resolverTotalMs: 0,\n resolverMaxMs: 0,\n patchTotalMs: 0,\n patchMaxMs: 0,\n sharedRefreshTotalMs: 0,\n sharedRefreshMaxMs: 0,\n batchSliceTotalMs: 0,\n batchSliceMaxMs: 0\n },\n allocationHints: {\n patchObjectsCreated: 0,\n batchEntriesCreated: 0,\n refreshQueuePushes: 0\n },\n batch: {\n pendingJobs: 0,\n maxPendingJobs: 0,\n maxGraphicsInJob: 0,\n maxFrameSliceCost: 0\n },\n events: []\n };\n}\n\nfunction cloneSnapshot(snapshot: IStatePerfSnapshot): IStatePerfSnapshot {\n return {\n counters: { ...snapshot.counters },\n deferredIneligibleByReason: { ...snapshot.deferredIneligibleByReason },\n categoryBreakdown: { ...snapshot.categoryBreakdown },\n refresh: { ...snapshot.refresh },\n resolver: { ...snapshot.resolver },\n cost: { ...snapshot.cost },\n allocationHints: { ...snapshot.allocationHints },\n batch: { ...snapshot.batch },\n events: snapshot.events ? snapshot.events.slice() : []\n };\n}\n\nfunction isDeferredStateContextConfig(\n value: IDeferredStateOwnerConfig | undefined\n): value is IDeferredStateContextConfig {\n return (\n !!value &&\n (Object.prototype.hasOwnProperty.call(value, 'deferred') ||\n Object.prototype.hasOwnProperty.call(value, 'localEnabled'))\n );\n}\n\nexport function normalizeDeferredStateOwnerConfig(\n value?: IDeferredStateOwnerConfig\n): IDeferredStateContextConfig | undefined {\n if (!value) {\n return undefined;\n }\n\n if (isDeferredStateContextConfig(value)) {\n return value;\n }\n\n return {\n deferred: value\n };\n}\n\nexport function normalizeDeferredStateConfig(config?: IDeferredStateConfig): Required<IDeferredStateConfig> {\n return {\n enabled: config?.enabled ?? false,\n frameBudget: config?.frameBudget ?? 8,\n maxGraphicsPerFrame: config?.maxGraphicsPerFrame ?? 100\n };\n}\n\nexport function fingerprintDeferredStateConfig(config: Required<IDeferredStateConfig>): string {\n return `${config.enabled ? 1 : 0}:${config.frameBudget}:${config.maxGraphicsPerFrame}`;\n}\n\nexport class StatePerfMonitor {\n private readonly snapshot = createEmptyStatePerfSnapshot();\n\n constructor(private configSource?: IStatePerfConfig | (() => IStatePerfConfig | undefined)) {}\n\n setConfig(config?: IStatePerfConfig): void {\n this.configSource = config;\n }\n\n getSnapshot(): IStatePerfSnapshot {\n return cloneSnapshot(this.snapshot);\n }\n\n reset(): void {\n const next = createEmptyStatePerfSnapshot();\n Object.assign(this.snapshot.counters, next.counters);\n Object.assign(this.snapshot.deferredIneligibleByReason, next.deferredIneligibleByReason);\n Object.assign(this.snapshot.categoryBreakdown, next.categoryBreakdown);\n Object.assign(this.snapshot.refresh, next.refresh);\n Object.assign(this.snapshot.resolver, next.resolver);\n Object.assign(this.snapshot.cost, next.cost);\n Object.assign(this.snapshot.allocationHints, next.allocationHints);\n Object.assign(this.snapshot.batch, next.batch);\n this.snapshot.events = [];\n }\n\n incrementCounter(key: SnapshotCounterKey, delta: number = 1): void {\n if (!this.isEnabled()) {\n return;\n }\n this.snapshot.counters[key] += delta;\n }\n\n recordDeferredIneligible(reason: DeferredIneligibleReason, delta: number = 1): void {\n if (!this.isEnabled()) {\n return;\n }\n this.snapshot.deferredIneligibleByReason[reason] += delta;\n this.snapshot.counters.deferredIneligibleGraphics += delta;\n this.recordEvent('deferred-ineligible', { reason, count: delta });\n }\n\n recordCategory(category: UpdateCategory): void {\n if (!this.isEnabled()) {\n return;\n }\n if (category & UpdateCategory.PAINT) {\n this.snapshot.categoryBreakdown.paint += 1;\n }\n if (category & UpdateCategory.TRANSFORM) {\n this.snapshot.categoryBreakdown.transform += 1;\n }\n if (category & UpdateCategory.SHAPE) {\n this.snapshot.categoryBreakdown.shape += 1;\n }\n if (category & UpdateCategory.BOUNDS) {\n this.snapshot.categoryBreakdown.bounds += 1;\n }\n if (category & UpdateCategory.LAYOUT) {\n this.snapshot.categoryBreakdown.layout += 1;\n }\n if (category & UpdateCategory.PICK) {\n this.snapshot.categoryBreakdown.pick += 1;\n }\n }\n\n recordRefresh(key: SnapshotRefreshKey, delta: number = 1): void {\n if (!this.isEnabled()) {\n return;\n }\n this.snapshot.refresh[key] += delta;\n }\n\n recordResolver(key: SnapshotResolverKey, delta: number = 1): void {\n if (!this.isEnabled()) {\n return;\n }\n this.snapshot.resolver[key] += delta;\n }\n\n recordCost(kind: SnapshotCostKind, durationMs: number): void {\n if (!this.isEnabled()) {\n return;\n }\n if (kind === 'resolver') {\n this.snapshot.cost.resolverTotalMs += durationMs;\n this.snapshot.cost.resolverMaxMs = Math.max(this.snapshot.cost.resolverMaxMs, durationMs);\n return;\n }\n if (kind === 'patch') {\n this.snapshot.cost.patchTotalMs += durationMs;\n this.snapshot.cost.patchMaxMs = Math.max(this.snapshot.cost.patchMaxMs, durationMs);\n return;\n }\n if (kind === 'sharedRefresh') {\n this.snapshot.cost.sharedRefreshTotalMs += durationMs;\n this.snapshot.cost.sharedRefreshMaxMs = Math.max(this.snapshot.cost.sharedRefreshMaxMs, durationMs);\n return;\n }\n\n this.snapshot.cost.batchSliceTotalMs += durationMs;\n this.snapshot.cost.batchSliceMaxMs = Math.max(this.snapshot.cost.batchSliceMaxMs, durationMs);\n this.snapshot.batch.maxFrameSliceCost = Math.max(this.snapshot.batch.maxFrameSliceCost, durationMs);\n }\n\n recordAllocation(key: SnapshotAllocationKey, delta: number = 1): void {\n if (!this.isEnabled()) {\n return;\n }\n this.snapshot.allocationHints[key] += delta;\n }\n\n updateBatchPending(pendingJobs: number): void {\n if (!this.isEnabled()) {\n return;\n }\n this.snapshot.batch.pendingJobs = pendingJobs;\n this.snapshot.batch.maxPendingJobs = Math.max(this.snapshot.batch.maxPendingJobs, pendingJobs);\n }\n\n updateMaxGraphicsInJob(count: number): void {\n if (!this.isEnabled()) {\n return;\n }\n this.snapshot.batch.maxGraphicsInJob = Math.max(this.snapshot.batch.maxGraphicsInJob, count);\n }\n\n recordEvent(type: IStatePerfEventType, detail?: Record<string, unknown>): void {\n if (!this.shouldRecordEvents()) {\n return;\n }\n const events = this.snapshot.events ?? (this.snapshot.events = []);\n events.push({\n type,\n at: Date.now(),\n detail\n });\n const max = this.getConfig()?.maxEventRecords ?? DEFAULT_MAX_EVENT_RECORDS;\n if (events.length > max) {\n events.splice(0, events.length - max);\n }\n }\n\n private isEnabled(): boolean {\n return this.getConfig()?.enabled === true;\n }\n\n private shouldRecordEvents(): boolean {\n const config = this.getConfig();\n return !!config?.enabled && !!config.recordEvents;\n }\n\n private getConfig(): IStatePerfConfig | undefined {\n return typeof this.configSource === 'function' ? this.configSource() : this.configSource;\n }\n}\n\nexport function ensureStageStatePerfMonitor(stage: IStage): StatePerfMonitor {\n const stageAny = stage as any;\n if (!stageAny[STAGE_PERF_MONITOR]) {\n stageAny[STAGE_PERF_MONITOR] = new StatePerfMonitor(() => (stage as any).statePerfConfig);\n }\n\n return stageAny[STAGE_PERF_MONITOR] as StatePerfMonitor;\n}\n\nexport function getStageStatePerfMonitor(stage?: IStage): StatePerfMonitor | undefined {\n if (!stage) {\n return undefined;\n }\n return (stage as any)[STAGE_PERF_MONITOR] as StatePerfMonitor | undefined;\n}\n\nexport function getActiveStageStatePerfMonitor(stage?: IStage): StatePerfMonitor | undefined {\n if (!stage) {\n return undefined;\n }\n\n const current = getStageStatePerfMonitor(stage);\n if (current) {\n return current;\n }\n\n return (stage as any).statePerfConfig?.enabled === true ? ensureStageStatePerfMonitor(stage) : undefined;\n}\n"]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { StateProxy, StateSort } from './state-model';
|
|
2
|
-
export type StateMergeMode = 'shallow' | 'deep';
|
|
3
|
-
export interface IStateStyleResolverOptions {
|
|
4
|
-
mergeMode?: StateMergeMode;
|
|
5
|
-
}
|
|
6
|
-
export interface IStateStyleResolver<T> {
|
|
7
|
-
resolve: (normalAttrs: Partial<T>, states: Record<string, Partial<T>> | undefined, stateProxy: StateProxy<T> | undefined, currentStates: string[], stateSort?: StateSort) => Partial<T>;
|
|
8
|
-
}
|
|
9
|
-
export declare class StateStyleResolver<T extends Record<string, any> = Record<string, any>> implements IStateStyleResolver<T> {
|
|
10
|
-
private readonly options;
|
|
11
|
-
constructor(options?: IStateStyleResolverOptions);
|
|
12
|
-
resolve(normalAttrs: Partial<T>, states: Record<string, Partial<T>> | undefined, stateProxy: StateProxy<T> | undefined, currentStates: string[], stateSort?: StateSort): Partial<T>;
|
|
13
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function isPlainObject(value) {
|
|
4
|
-
return null != value && "object" == typeof value && !Array.isArray(value);
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
function cloneValue(value) {
|
|
8
|
-
if (!isPlainObject(value)) return value;
|
|
9
|
-
const clone = {};
|
|
10
|
-
for (const key in value) Object.prototype.hasOwnProperty.call(value, key) && (clone[key] = cloneValue(value[key]));
|
|
11
|
-
return clone;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
function deepMerge(base, value) {
|
|
15
|
-
const result = cloneValue(base) || {};
|
|
16
|
-
for (const key in value) {
|
|
17
|
-
if (!Object.prototype.hasOwnProperty.call(value, key)) continue;
|
|
18
|
-
const nextValue = value[key], previousValue = result[key];
|
|
19
|
-
isPlainObject(previousValue) && isPlainObject(nextValue) ? result[key] = deepMerge(previousValue, nextValue) : result[key] = cloneValue(nextValue);
|
|
20
|
-
}
|
|
21
|
-
return result;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
Object.defineProperty(exports, "__esModule", {
|
|
25
|
-
value: !0
|
|
26
|
-
}), exports.StateStyleResolver = void 0;
|
|
27
|
-
|
|
28
|
-
class StateStyleResolver {
|
|
29
|
-
constructor(options = {}) {
|
|
30
|
-
this.options = options;
|
|
31
|
-
}
|
|
32
|
-
resolve(normalAttrs, states, stateProxy, currentStates, stateSort) {
|
|
33
|
-
var _a;
|
|
34
|
-
const mergeMode = null !== (_a = this.options.mergeMode) && void 0 !== _a ? _a : "shallow", sortedStates = stateSort ? currentStates.slice().sort(stateSort) : currentStates.slice(), resolvedAttrs = {};
|
|
35
|
-
return sortedStates.forEach((stateName => {
|
|
36
|
-
const attrs = stateProxy ? stateProxy(stateName, sortedStates) : null == states ? void 0 : states[stateName];
|
|
37
|
-
if (null != attrs) for (const key in attrs) {
|
|
38
|
-
if (!Object.prototype.hasOwnProperty.call(attrs, key)) continue;
|
|
39
|
-
const nextValue = attrs[key];
|
|
40
|
-
if ("deep" === mergeMode && isPlainObject(nextValue) && (isPlainObject(resolvedAttrs[key]) || isPlainObject(normalAttrs[key]))) {
|
|
41
|
-
const baseValue = isPlainObject(resolvedAttrs[key]) ? resolvedAttrs[key] : isPlainObject(normalAttrs[key]) ? normalAttrs[key] : {};
|
|
42
|
-
resolvedAttrs[key] = deepMerge(baseValue, nextValue);
|
|
43
|
-
} else resolvedAttrs[key] = cloneValue(nextValue);
|
|
44
|
-
}
|
|
45
|
-
})), resolvedAttrs;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
exports.StateStyleResolver = StateStyleResolver;
|
|
50
|
-
//# sourceMappingURL=state-style-resolver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graphic/state/state-style-resolver.ts"],"names":[],"mappings":"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","file":"state-style-resolver.js","sourcesContent":["import type { StateProxy, StateSort } from './state-model';\n\nexport type StateMergeMode = 'shallow' | 'deep';\n\nexport interface IStateStyleResolverOptions {\n mergeMode?: StateMergeMode;\n}\n\nexport interface IStateStyleResolver<T> {\n resolve: (\n normalAttrs: Partial<T>,\n states: Record<string, Partial<T>> | undefined,\n stateProxy: StateProxy<T> | undefined,\n currentStates: string[],\n stateSort?: StateSort\n ) => Partial<T>;\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, any> {\n return value != null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction cloneValue<T>(value: T): T {\n if (!isPlainObject(value)) {\n return value;\n }\n\n const clone: Record<string, any> = {};\n for (const key in value) {\n if (!Object.prototype.hasOwnProperty.call(value, key)) {\n continue;\n }\n clone[key] = cloneValue((value as Record<string, any>)[key]);\n }\n return clone as T;\n}\n\nfunction deepMerge(base: Record<string, any>, value: Record<string, any>): Record<string, any> {\n const result: Record<string, any> = cloneValue(base) || {};\n\n for (const key in value) {\n if (!Object.prototype.hasOwnProperty.call(value, key)) {\n continue;\n }\n\n const nextValue = value[key];\n const previousValue = result[key];\n\n if (isPlainObject(previousValue) && isPlainObject(nextValue)) {\n result[key] = deepMerge(previousValue, nextValue);\n } else {\n result[key] = cloneValue(nextValue);\n }\n }\n\n return result;\n}\n\nexport class StateStyleResolver<T extends Record<string, any> = Record<string, any>> implements IStateStyleResolver<T> {\n constructor(private readonly options: IStateStyleResolverOptions = {}) {}\n\n resolve(\n normalAttrs: Partial<T>,\n states: Record<string, Partial<T>> | undefined,\n stateProxy: StateProxy<T> | undefined,\n currentStates: string[],\n stateSort?: StateSort\n ): Partial<T> {\n const mergeMode = this.options.mergeMode ?? 'shallow';\n const sortedStates = stateSort ? currentStates.slice().sort(stateSort) : currentStates.slice();\n const resolvedAttrs: Partial<T> = {};\n\n sortedStates.forEach(stateName => {\n const attrs = stateProxy ? stateProxy(stateName, sortedStates) : states?.[stateName];\n\n if (attrs == null) {\n return;\n }\n\n for (const key in attrs) {\n if (!Object.prototype.hasOwnProperty.call(attrs, key)) {\n continue;\n }\n\n const nextValue = attrs[key];\n\n if (\n mergeMode === 'deep' &&\n isPlainObject(nextValue) &&\n (isPlainObject((resolvedAttrs as Record<string, any>)[key]) ||\n isPlainObject((normalAttrs as Record<string, any>)[key]))\n ) {\n const baseValue = isPlainObject((resolvedAttrs as Record<string, any>)[key])\n ? (resolvedAttrs as Record<string, any>)[key]\n : isPlainObject((normalAttrs as Record<string, any>)[key])\n ? (normalAttrs as Record<string, any>)[key]\n : {};\n (resolvedAttrs as Record<string, any>)[key] = deepMerge(baseValue, nextValue);\n } else {\n (resolvedAttrs as Record<string, any>)[key] = cloneValue(nextValue);\n }\n }\n });\n\n return resolvedAttrs;\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
package/cjs/interface/animate.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interface/animate.ts"],"names":[],"mappings":"","file":"animate.js","sourcesContent":["// import type { EventEmitter } from '@visactor/vutils';\n// import type { AnimateStepType } from '../common/enums';\n// import type { Releaseable } from './common';\n// import type { IGraphic } from './graphic';\n\n// enum AnimateStatus {\n// INITIAL = 0,\n// RUNNING = 1,\n// PAUSED = 2,\n// END = 3\n// }\n\n// enum AnimateMode {\n// NORMAL = 0b0000,\n// SET_ATTR_IMMEDIATELY = 0b0001\n// }\n\n// // export type EasingType = (...args: any) => any;\n\n// // export declare class Easing {\n// // static linear(t: number): number;\n// // static none(): typeof Easing.linear;\n// // /**\n// // * 获取缓动函数,amount指示这个缓动函数的插值方式\n// // * @param amount\n// // * @returns\n// // */\n// // static get(amount: number): (t: number) => number;\n// // static getPowIn(pow: number): (t: number) => number;\n// // static getPowOut(pow: number): (t: number) => number;\n// // static getPowInOut(pow: number): (t: number) => number;\n// // static quadIn: (t: number) => number;\n// // static quadOut: (t: number) => number;\n// // static quadInOut: (t: number) => number;\n// // static cubicIn: (t: number) => number;\n// // static cubicOut: (t: number) => number;\n// // static cubicInOut: (t: number) => number;\n// // static quartIn: (t: number) => number;\n// // static quartOut: (t: number) => number;\n// // static quartInOut: (t: number) => number;\n// // static quintIn: (t: number) => number;\n// // static quintOut: (t: number) => number;\n// // static quintInOut: (t: number) => number;\n// // static getBackIn(amount: number): (t: number) => number;\n// // static getBackOut(amount: number): (t: number) => number;\n// // static getBackInOut(amount: number): (t: number) => number;\n// // static backIn: (t: number) => number;\n// // static backOut: (t: number) => number;\n// // static backInOut: (t: number) => number;\n// // static circIn(t: number): number;\n// // static circOut(t: number): number;\n// // static circInOut(t: number): number;\n// // static bounceOut(t: number): number;\n// // static bounceIn(t: number): number;\n// // static bounceInOut(t: number): number;\n// // static getElasticIn(amplitude: number, period: number): (t: number) => number;\n// // static getElasticOut(amplitude: number, period: number): (t: number) => number;\n// // static getElasticInOut(amplitude: number, period: number): (t: number) => number;\n// // static elasticIn: (t: number) => number;\n// // static elasticOut: (t: number) => number;\n// // static elasticInOut: (t: number) => number;\n// // }\n\n// // timeline管理一堆的animate,多个timeline互不影响\n// // timeline主要作用是基于layer层面的整体管理\n// // 每个layer默认带有一个timeline\n// export interface Timeline {\n// AnimateList: IAnimate[];\n// }\n\n// type IStopType = 'end' | 'start' | 'current';\n\n// // TODO: 提供options配置可序列化\n// interface AnimateSpecItem {\n// type: 'to' | 'delay' | 'stop' | 'any';\n// params: any[];\n// }\n\n// export type EasingTypeStr =\n// | 'linear'\n// | 'quadIn'\n// | 'quadOut'\n// | 'quadInOut'\n// | 'quadInOut'\n// | 'cubicIn'\n// | 'cubicOut'\n// | 'cubicInOut'\n// | 'quartIn'\n// | 'quartOut'\n// | 'quartInOut'\n// | 'quintIn'\n// | 'quintOut'\n// | 'quintInOut'\n// | 'backIn'\n// | 'backOut'\n// | 'backInOut'\n// | 'circIn'\n// | 'circOut'\n// | 'circInOut'\n// | 'bounceOut'\n// | 'bounceIn'\n// | 'bounceInOut'\n// | 'elasticIn'\n// | 'elasticOut'\n// | 'elasticInOut'\n// | 'sineIn'\n// | 'sineOut'\n// | 'sineInOut'\n// | 'expoIn'\n// | 'expoOut'\n// | 'expoInOut'\n// // @since 0.21.0\n// | 'easeInOutQuad'\n// | 'easeOutElastic'\n// | 'easeInOutElastic'\n// | '';\n// export type EasingTypeFunc = (t: number) => number;\n\n// export type EasingType = EasingTypeStr | EasingTypeFunc;\n\n// export type IAnimateStepType = keyof typeof AnimateStepType;\n\n// export interface IStep {\n// type: IAnimateStepType;\n// prev?: IStep;\n// // 持续时间\n// duration: number;\n// // 在animate中的位置\n// position: number;\n// next?: IStep;\n// props?: any;\n// parsedProps?: any;\n// propKeys?: string[];\n// easing?: EasingTypeFunc;\n// customAnimate?: ICustomAnimate;\n\n// append: (step: IStep) => void;\n// getLastProps: () => any;\n// }\n\n// export interface IStepConfig {\n// tempProps?: boolean; // props为临时props,可以直接使用不用拷贝\n// noPreventAttrs?: boolean;\n// }\n\n// export interface IAnimateTarget {\n// onAnimateBind?: (animte: IAnimate | ISubAnimate) => void;\n// // 获取属性\n// getComputedAttribute: (name: string) => any;\n// // 获取默认属性\n// getDefaultAttribute: (name: string) => any;\n// onStop: (props?: Record<string, any>) => void;\n// animates: Map<string | number, IAnimate>;\n// [key: string]: any;\n// }\n\n// export interface ICustomAnimate {\n// duration: number;\n// easing: EasingType;\n// step?: IStep;\n// mode?: AnimateMode;\n\n// bind: (target: IAnimateTarget, subAni: ISubAnimate) => void;\n// // 在第一次调用的时候触发\n// onBind: () => void;\n// // 第一次执行的时候调用\n// onFirstRun: () => void;\n// // 开始执行的时候调用(如果有循环,那每个周期都会调用)\n// onStart: () => void;\n// // 结束执行的时候调用(如果有循环,那每个周期都会调用)\n// onEnd: () => void;\n// onUpdate: (end: boolean, ratio: number, out: Record<string, any>) => void;\n// update: (end: boolean, ratio: number, out: Record<string, any>) => void;\n// getEndProps: () => Record<string, any> | void;\n// getFromProps: () => Record<string, any> | void;\n// getMergedEndProps: () => Record<string, any> | void;\n// }\n\n// export type IAnimateConstructor = new (...args: any[]) => IAnimate;\n\n// // 每一个animate绑定一个graphic,用于描述这个graphic的动画内容\n// // 在timeline层面,animate相当于是一段timeslice\n// export interface IAnimate {\n// readonly id: string | number;\n// status: AnimateStatus;\n\n// interpolateFunc: (key: string, ratio: number, from: any, to: any, nextAttributes: any) => boolean;\n\n// _onStart?: (() => void)[];\n// _onFrame?: ((step: IStep, ratio: number) => void)[];\n// _onEnd?: (() => void)[];\n// _onRemove?: (() => void)[];\n\n// getStartProps: () => Record<string, any>;\n// getEndProps: () => Record<string, any>;\n\n// setTimeline: (timeline: ITimeline) => void;\n// // getTimeline: () => ITimeline;\n// readonly timeline: ITimeline;\n\n// bind: (target: IAnimateTarget) => this;\n// to: (props: Record<string, any>, duration: number, easing: EasingType, params?: IStepConfig) => this;\n// from: (props: Record<string, any>, duration: number, easing: EasingType, params?: IStepConfig) => this;\n// pause: () => void;\n// resume: () => void;\n// onStart: (cb: () => void) => void;\n// onEnd: (cb: () => void) => void;\n// onFrame: (cb: (step: IStep, ratio: number) => void) => void;\n// onRemove: (cb: () => void) => void;\n// // 屏蔽属性\n// preventAttr: (key: string) => void;\n// // 屏蔽属性\n// preventAttrs: (key: string[]) => void;\n// // 属性是否合法\n// validAttr: (key: string) => boolean;\n\n// runCb: (cb: (a: IAnimate, step: IStep) => void) => IAnimate;\n\n// // 自定义插值,返回false表示没有匹配上\n// customInterpolate: (\n// key: string,\n// ratio: number,\n// from: any,\n// to: any,\n// target: IAnimateTarget,\n// ret: Record<string, any>\n// ) => boolean;\n// //\n// play: (customAnimate: ICustomAnimate) => this;\n\n// // 获取该属性的上一个值\n// // getLastPropByName: (name: string, step: IStep) => any;\n// // delay: (duration: number) => IAnimate;\n// stop: (type?: 'start' | 'end' | Record<string, any>) => void;\n// /** 打上END标志,下一帧被删除 */\n// release: () => void;\n// // 获取持续的时长\n// getDuration: () => number;\n// // 获取动画开始时间(注意并不是子动画的startAt)\n// getStartTime: () => number;\n// // done: (cb: (_: any) => any) => IAnimate;\n// // pause: () => IAnimate;\n// // spec: (spec: AnimateSpecItem[]) => IAnimate;\n// // start: () => void; // 有start方法,避免动画提前开始(VGrammar需要时间处理数据)\n// wait: (delay: number) => this;\n\n// // // 编排\n// afterAll: (list: IAnimate[]) => this;\n// after: (animate: IAnimate) => this;\n// parallel: (animate: IAnimate) => this;\n\n// // // timislice (getter)\n// // startTime: number;\n// // endTime: number;\n// // startTimes: number[];\n// // endTimes: number[];\n\n// // // 高级参数,frame到frameEnd之间可以进行reverse,loop,bounce效果\n// // frame: () => IAnimate;\n// // frameEnd: () => IAnimate;\n// reversed: (r: boolean) => IAnimate;\n// loop: (n: number) => IAnimate;\n// bounce: (b: boolean) => IAnimate;\n\n// nextAnimate?: IAnimate;\n// prevAnimate?: IAnimate;\n\n// advance: (delta: number) => void;\n\n// startAt: (t: number) => IAnimate;\n\n// // // 语法糖\n// // create: (duration: number) => IAnimate;\n// // fadeIn: (duration: number) => IAnimate;\n// }\n\n// export interface ISubAnimate {\n// getLastStep: () => IStep;\n// animate: IAnimate;\n// // 获取该属性的上一个值\n// getLastPropByName: (name: string, step: IStep) => any;\n// }\n\n// // rect.animate().abc().to({}, 1000).delay(1000).frame().to().delay().to().frameEnd().loop().bounce()\n\n// export interface BaseAnimateConfig {\n// id?: number | string;\n// interpolate?: (key: string, ratio: number, from: any, to: any, nextAttributes: any) => boolean;\n// onStart?: () => void;\n// onFrame?: (step: IStep, ratio: number) => void;\n// onEnd?: () => void;\n// onRemove?: () => void;\n// }\n\n// // VGrammar和 vrender命名不一致,好尴尬\n// export interface MorphingAnimateConfig extends Omit<BaseAnimateConfig, 'interpolate'> {\n// duration?: number;\n// easing?: EasingType; // 统一到easing\n// delay?: number;\n// }\n\n// export interface MultiMorphingAnimateConfig extends MorphingAnimateConfig {\n// splitPath?: 'clone' | ((graphic: IGraphic, count: number, needAppend?: boolean) => IGraphic[]);\n// individualDelay?: (index: number, count: number, fromGraphic: IGraphic, toGraphic: IGraphic) => number;\n// }\n\n// export interface ITimeline {\n// id: number;\n// animateCount: number;\n// isGlobal: boolean;\n// addAnimate: (animate: IAnimate) => void;\n// removeAnimate: (animate: IAnimate, release?: boolean) => void;\n// tick: (delta: number) => void;\n// clear: () => void;\n// pause: () => void;\n// resume: () => void;\n// }\n\n// export type ITimelineConstructor = new (...args: any[]) => ITimeline;\n\n// export type ITickerConstructor = new (...args: any[]) => ITicker;\n\n// export interface ITickHandler extends Releaseable {\n// avaliable: () => boolean;\n// /**\n// * 开始执行tick\n// * @param interval 延时 ms\n// * @param cb 执行的回调\n// */\n// tick: (interval: number, cb: (handler: ITickHandler) => void) => void; // 开始\n// tickTo?: (t: number, cb: (handler: ITickHandler, params?: { once: boolean }) => void) => void;\n// getTime: () => number; // 获取时间\n// }\n\n// export interface ITickerHandlerStatic {\n// Avaliable: () => boolean;\n// new (): ITickHandler;\n// }\n\n// export interface ITicker extends EventEmitter {\n// setFPS?: (fps: number) => void;\n// setInterval?: (interval: number) => void;\n// getFPS?: () => number;\n// getInterval?: () => number;\n// tick: (interval: number) => void;\n// tickAt?: (time: number) => void;\n// pause: () => boolean;\n// resume: () => boolean;\n// /**\n// * 开启tick,force为true强制开启,否则如果timeline为空则不开启\n// */\n// start: (force?: boolean) => boolean;\n// stop: () => void;\n// addTimeline: (timeline: ITimeline) => void;\n// remTimeline: (timeline: ITimeline) => void;\n// trySyncTickStatus: () => void;\n// getTimelines: () => ITimeline[];\n\n// release: () => void;\n\n// // 是否自动停止,默认为true\n// autoStop: boolean;\n// }\n"]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { IPlugin, IPluginContext } from './types';
|
|
2
|
-
export declare abstract class BasePlugin implements IPlugin {
|
|
3
|
-
readonly name: string;
|
|
4
|
-
readonly version: string;
|
|
5
|
-
constructor(name: string, version?: string);
|
|
6
|
-
abstract install(context: IPluginContext): void;
|
|
7
|
-
uninstall(): void;
|
|
8
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: !0
|
|
5
|
-
}), exports.BasePlugin = void 0;
|
|
6
|
-
|
|
7
|
-
class BasePlugin {
|
|
8
|
-
constructor(name, version = "1.0.0") {
|
|
9
|
-
this.name = name, this.version = version;
|
|
10
|
-
}
|
|
11
|
-
uninstall() {}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
exports.BasePlugin = BasePlugin;
|
|
15
|
-
//# sourceMappingURL=base-plugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugins/base-plugin.ts"],"names":[],"mappings":";;;AAEA,MAAsB,UAAU;IAC9B,YAA4B,IAAY,EAAkB,UAAkB,OAAO;QAAvD,SAAI,GAAJ,IAAI,CAAQ;QAAkB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAIvF,SAAS;QACP,OAAO;IACT,CAAC;CACF;AARD,gCAQC","file":"base-plugin.js","sourcesContent":["import type { IPlugin, IPluginContext } from './types';\n\nexport abstract class BasePlugin implements IPlugin {\n constructor(public readonly name: string, public readonly version: string = '1.0.0') {}\n\n abstract install(context: IPluginContext): void;\n\n uninstall(): void {\n return;\n }\n}\n"]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { BasePlugin } from './base-plugin';
|
|
2
|
-
import type { IBrowserEnvPluginHooks, IPluginContext } from './types';
|
|
3
|
-
export declare class BrowserEnvPlugin extends BasePlugin {
|
|
4
|
-
private readonly hooks;
|
|
5
|
-
constructor(name: string, hooks?: IBrowserEnvPluginHooks, version?: string);
|
|
6
|
-
install(context: IPluginContext): void;
|
|
7
|
-
uninstall(): void;
|
|
8
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: !0
|
|
5
|
-
}), exports.BrowserEnvPlugin = void 0;
|
|
6
|
-
|
|
7
|
-
const base_plugin_1 = require("./base-plugin");
|
|
8
|
-
|
|
9
|
-
class BrowserEnvPlugin extends base_plugin_1.BasePlugin {
|
|
10
|
-
constructor(name, hooks = {}, version) {
|
|
11
|
-
super(name, version), this.hooks = hooks;
|
|
12
|
-
}
|
|
13
|
-
install(context) {
|
|
14
|
-
var _a, _b;
|
|
15
|
-
null === (_b = (_a = this.hooks).install) || void 0 === _b || _b.call(_a, context);
|
|
16
|
-
}
|
|
17
|
-
uninstall() {
|
|
18
|
-
var _a, _b;
|
|
19
|
-
null === (_b = (_a = this.hooks).uninstall) || void 0 === _b || _b.call(_a);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
exports.BrowserEnvPlugin = BrowserEnvPlugin;
|
|
24
|
-
//# sourceMappingURL=browser-env-plugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugins/browser-env-plugin.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAG3C,MAAa,gBAAiB,SAAQ,wBAAU;IAC9C,YAAY,IAAY,EAAmB,QAAgC,EAAE,EAAE,OAAgB;QAC7F,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QADoB,UAAK,GAAL,KAAK,CAA6B;IAE7E,CAAC;IAED,OAAO,CAAC,OAAuB;;QAC7B,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,OAAO,mDAAG,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,SAAS;;QACP,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,SAAS,kDAAI,CAAC;IAC3B,CAAC;CACF;AAZD,4CAYC","file":"browser-env-plugin.js","sourcesContent":["import { BasePlugin } from './base-plugin';\nimport type { IBrowserEnvPluginHooks, IPluginContext } from './types';\n\nexport class BrowserEnvPlugin extends BasePlugin {\n constructor(name: string, private readonly hooks: IBrowserEnvPluginHooks = {}, version?: string) {\n super(name, version);\n }\n\n install(context: IPluginContext): void {\n this.hooks.install?.(context);\n }\n\n uninstall(): void {\n this.hooks.uninstall?.();\n }\n}\n"]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { BasePlugin } from './base-plugin';
|
|
2
|
-
import type { IPickerPluginEntries, IPluginContext } from './types';
|
|
3
|
-
export declare class PickerPlugin extends BasePlugin {
|
|
4
|
-
private readonly entries;
|
|
5
|
-
constructor(name: string, entries: IPickerPluginEntries, version?: string);
|
|
6
|
-
install(context: IPluginContext): void;
|
|
7
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: !0
|
|
5
|
-
}), exports.PickerPlugin = void 0;
|
|
6
|
-
|
|
7
|
-
const base_plugin_1 = require("./base-plugin");
|
|
8
|
-
|
|
9
|
-
class PickerPlugin extends base_plugin_1.BasePlugin {
|
|
10
|
-
constructor(name, entries, version) {
|
|
11
|
-
super(name, version), this.entries = entries;
|
|
12
|
-
}
|
|
13
|
-
install(context) {
|
|
14
|
-
context.registry.picker.registerMany(this.entries);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
exports.PickerPlugin = PickerPlugin;
|
|
19
|
-
//# sourceMappingURL=picker-plugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugins/picker-plugin.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAG3C,MAAa,YAAa,SAAQ,wBAAU;IAC1C,YAAY,IAAY,EAAmB,OAA6B,EAAE,OAAgB;QACxF,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QADoB,YAAO,GAAP,OAAO,CAAsB;IAExE,CAAC;IAED,OAAO,CAAC,OAAuB;QAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;CACF;AARD,oCAQC","file":"picker-plugin.js","sourcesContent":["import { BasePlugin } from './base-plugin';\nimport type { IPickerPluginEntries, IPluginContext } from './types';\n\nexport class PickerPlugin extends BasePlugin {\n constructor(name: string, private readonly entries: IPickerPluginEntries, version?: string) {\n super(name, version);\n }\n\n install(context: IPluginContext): void {\n context.registry.picker.registerMany(this.entries);\n }\n}\n"]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { BasePlugin } from './base-plugin';
|
|
2
|
-
import type { IPluginContext, IRendererPluginEntries } from './types';
|
|
3
|
-
export declare class RendererPlugin extends BasePlugin {
|
|
4
|
-
private readonly entries;
|
|
5
|
-
constructor(name: string, entries: IRendererPluginEntries, version?: string);
|
|
6
|
-
install(context: IPluginContext): void;
|
|
7
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: !0
|
|
5
|
-
}), exports.RendererPlugin = void 0;
|
|
6
|
-
|
|
7
|
-
const base_plugin_1 = require("./base-plugin");
|
|
8
|
-
|
|
9
|
-
class RendererPlugin extends base_plugin_1.BasePlugin {
|
|
10
|
-
constructor(name, entries, version) {
|
|
11
|
-
super(name, version), this.entries = entries;
|
|
12
|
-
}
|
|
13
|
-
install(context) {
|
|
14
|
-
context.registry.renderer.registerMany(this.entries);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
exports.RendererPlugin = RendererPlugin;
|
|
19
|
-
//# sourceMappingURL=renderer-plugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugins/renderer-plugin.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAG3C,MAAa,cAAe,SAAQ,wBAAU;IAC5C,YAAY,IAAY,EAAmB,OAA+B,EAAE,OAAgB;QAC1F,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QADoB,YAAO,GAAP,OAAO,CAAwB;IAE1E,CAAC;IAED,OAAO,CAAC,OAAuB;QAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;CACF;AARD,wCAQC","file":"renderer-plugin.js","sourcesContent":["import { BasePlugin } from './base-plugin';\nimport type { IPluginContext, IRendererPluginEntries } from './types';\n\nexport class RendererPlugin extends BasePlugin {\n constructor(name: string, private readonly entries: IRendererPluginEntries, version?: string) {\n super(name, version);\n }\n\n install(context: IPluginContext): void {\n context.registry.renderer.registerMany(this.entries);\n }\n}\n"]}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { IGraphic, IGroup, ILayer, IStage } from '../../interface';
|
|
2
|
-
import { type IDeferredStateConfig, type StatePerfMonitor } from './state-perf-monitor';
|
|
3
|
-
type StateBatchJobKind = 'apply_states';
|
|
4
|
-
type StateBatchIntentKey = string;
|
|
5
|
-
export interface IStateBatchJob {
|
|
6
|
-
id: number;
|
|
7
|
-
kind: StateBatchJobKind;
|
|
8
|
-
intentKey: StateBatchIntentKey;
|
|
9
|
-
status: 'pending' | 'running' | 'completed' | 'cancelled';
|
|
10
|
-
targetStates: string[];
|
|
11
|
-
targetStatesKey: string;
|
|
12
|
-
pendingGraphics: Set<IGraphic>;
|
|
13
|
-
orderedGraphics: IGraphic[];
|
|
14
|
-
config: Required<IDeferredStateConfig>;
|
|
15
|
-
contextOwner: IStage | ILayer | IGroup;
|
|
16
|
-
contextOwnerId: number;
|
|
17
|
-
configFingerprint: string;
|
|
18
|
-
createdAt: number;
|
|
19
|
-
processedCount: number;
|
|
20
|
-
}
|
|
21
|
-
export declare class StateBatchScheduler {
|
|
22
|
-
private readonly stage;
|
|
23
|
-
private readonly perfMonitor?;
|
|
24
|
-
readonly jobsByIntentKey: Map<string, IStateBatchJob>;
|
|
25
|
-
readonly pendingIntentByGraphic: Map<IGraphic<Partial<import("../../interface").IGraphicAttribute>>, string>;
|
|
26
|
-
private nextJobId;
|
|
27
|
-
private readonly runningJobs;
|
|
28
|
-
constructor(stage: IStage, perfMonitor?: StatePerfMonitor);
|
|
29
|
-
schedule(graphics: IGraphic[], targetStates: string[]): void;
|
|
30
|
-
release(): void;
|
|
31
|
-
private resolveEligibility;
|
|
32
|
-
private resolveDeferredContext;
|
|
33
|
-
private classifyGraphicTargetStates;
|
|
34
|
-
private enqueueDeferredIntent;
|
|
35
|
-
private removeGraphicFromPending;
|
|
36
|
-
private removeGraphicFromIntentJob;
|
|
37
|
-
private ensureJobRunning;
|
|
38
|
-
private runJob;
|
|
39
|
-
private waitForNextFrame;
|
|
40
|
-
private commitSynchronously;
|
|
41
|
-
}
|
|
42
|
-
export {};
|