1 | import { __assign } from "tslib";
|
2 | import { Module, injectable, decorate } from 'mana-syringe';
|
3 | import { EventEmitter } from 'eventemitter3';
|
4 | import { DisplayObjectPool } from './DisplayObjectPool';
|
5 | import { CircleUpdater, EllipseUpdater, GeometryAABBUpdater, GeometryUpdaterFactory, LineUpdater, PathUpdater, PolylineUpdater, RectUpdater, TextUpdater, TextService, OffscreenCanvasCreator, DefaultSceneGraphService, DefaultSceneGraphSelector, SceneGraphSelector, SceneGraphSelectorFactory } from './services';
|
6 | import { LayoutRegistry, CSSPropertyLocalPosition, CSSPropertyLengthOrPercentage, CSSPropertyAnchor, CSSPropertyClipPath, CSSPropertyColor, CSSPropertyFilter, CSSPropertyLineDash, CSSPropertyOffsetDistance, CSSPropertyOffsetPath, CSSPropertyOpacity, CSSPropertyPath, CSSPropertyPoints, CSSPropertyText, CSSPropertyTextTransform, CSSPropertyTransform, CSSPropertyTransformOrigin, CSSPropertyZIndex, CSSPropertyShadowBlur, DefaultStyleValueRegistry } from './css';
|
7 | import { ContextNode, FragmentResult, FragmentResultFactory, FragmentResultOptions, LayoutChildren, LayoutChildrenFactory, LayoutChildrenOptions, LayoutContext, LayoutContextFactory, LayoutContextOptions, LayoutEdges, LayoutEdgesFactory, LayoutEdgesOptions, LayoutEngine, LayoutFragment, LayoutFragmentFactory, LayoutFragmentOptions } from './css/layout';
|
8 | export var containerModule = Module(function (register) {
|
9 | decorate(injectable(), EventEmitter);
|
10 |
|
11 | register(DisplayObjectPool);
|
12 |
|
13 | register(DefaultSceneGraphSelector);
|
14 | register({
|
15 | token: SceneGraphSelectorFactory,
|
16 | useFactory: function useFactory(context) {
|
17 | return function () {
|
18 | return context.container.get(SceneGraphSelector);
|
19 | };
|
20 | }
|
21 | });
|
22 |
|
23 | register(DefaultSceneGraphService);
|
24 |
|
25 | register(OffscreenCanvasCreator);
|
26 | register(TextService);
|
27 |
|
28 | register(CircleUpdater);
|
29 | register(EllipseUpdater);
|
30 | register(RectUpdater);
|
31 | register(TextUpdater);
|
32 | register(LineUpdater);
|
33 | register(PolylineUpdater);
|
34 | register(PathUpdater);
|
35 | register({
|
36 | token: GeometryUpdaterFactory,
|
37 | useFactory: function useFactory(context) {
|
38 | var cache = {};
|
39 | return function (tagName) {
|
40 | if (!cache[tagName]) {
|
41 | if (context.container.isBoundNamed(GeometryAABBUpdater, tagName)) {
|
42 | cache[tagName] = context.container.getNamed(GeometryAABBUpdater, tagName);
|
43 | }
|
44 | }
|
45 |
|
46 | return cache[tagName];
|
47 | };
|
48 | }
|
49 | });
|
50 |
|
51 | register(LayoutRegistry);
|
52 | register(DefaultStyleValueRegistry);
|
53 | register(CSSPropertyLengthOrPercentage);
|
54 | register(CSSPropertyLocalPosition);
|
55 | register(CSSPropertyOpacity);
|
56 | register(CSSPropertyColor);
|
57 | register(CSSPropertyFilter);
|
58 | register(CSSPropertyLineDash);
|
59 | register(CSSPropertyShadowBlur);
|
60 | register(CSSPropertyOffsetPath);
|
61 | register(CSSPropertyOffsetDistance);
|
62 | register(CSSPropertyAnchor);
|
63 | register(CSSPropertyZIndex);
|
64 | register(CSSPropertyTransform);
|
65 | register(CSSPropertyTransformOrigin);
|
66 | register(CSSPropertyPath);
|
67 | register(CSSPropertyPoints);
|
68 | register(CSSPropertyClipPath);
|
69 | register(CSSPropertyText);
|
70 | register(CSSPropertyTextTransform);
|
71 |
|
72 | register(LayoutEngine);
|
73 | register(LayoutEdges);
|
74 | register({
|
75 | token: LayoutEdgesFactory,
|
76 | useFactory: function useFactory(context) {
|
77 | return function (options) {
|
78 | var container = context.container.createChild();
|
79 | container.register({
|
80 | token: LayoutEdgesOptions,
|
81 | useValue: options
|
82 | });
|
83 | return container.get(LayoutEdges);
|
84 | };
|
85 | }
|
86 | });
|
87 | register({
|
88 | token: LayoutContextFactory,
|
89 | useFactory: function useFactory(context) {
|
90 | return function (options) {
|
91 | var container = context.container.createChild();
|
92 | container.register(LayoutContext);
|
93 | container.register(LayoutChildren);
|
94 | container.register({
|
95 | token: LayoutChildrenFactory,
|
96 | useFactory: function useFactory(childContext) {
|
97 | return function (childOptions) {
|
98 | var childContainer = childContext.container.createChild();
|
99 | childContainer.register({
|
100 | token: LayoutChildrenOptions,
|
101 | useValue: childOptions
|
102 | });
|
103 | return childContainer.get(LayoutChildren);
|
104 | };
|
105 | }
|
106 | });
|
107 | container.register(FragmentResult);
|
108 | container.register({
|
109 | token: FragmentResultFactory,
|
110 | useFactory: function useFactory(childContext) {
|
111 | return function (childOptions, node) {
|
112 | var childContainer = childContext.container.createChild();
|
113 | childContainer.register({
|
114 | token: FragmentResultOptions,
|
115 | useValue: childOptions
|
116 | });
|
117 | childContainer.register({
|
118 | token: ContextNode,
|
119 | useValue: node
|
120 | });
|
121 | return childContainer.get(FragmentResult);
|
122 | };
|
123 | }
|
124 | });
|
125 | container.register(LayoutFragment);
|
126 | container.register({
|
127 | token: LayoutFragmentFactory,
|
128 | useFactory: function useFactory(childContext) {
|
129 | return function (childOptions) {
|
130 | var childContainer = childContext.container.createChild();
|
131 | childContainer.register({
|
132 | token: LayoutFragmentOptions,
|
133 | useValue: childOptions
|
134 | });
|
135 | return childContainer.get(LayoutFragment);
|
136 | };
|
137 | }
|
138 | });
|
139 | var layoutChildrenFactory = container.get(LayoutChildrenFactory);
|
140 | var layoutFragmentFactory = container.get(LayoutFragmentFactory);
|
141 | var fragmentResultFactory = container.get(FragmentResultFactory);
|
142 | container.register({
|
143 | token: LayoutContextOptions,
|
144 | useValue: __assign(__assign({}, options), {
|
145 | layoutChildrenFactory: layoutChildrenFactory,
|
146 | layoutFragmentFactory: layoutFragmentFactory,
|
147 | fragmentResultFactory: fragmentResultFactory
|
148 | })
|
149 | });
|
150 | var layoutContext = container.get(LayoutContext);
|
151 | return layoutContext;
|
152 | };
|
153 | }
|
154 | });
|
155 | }); |
\ | No newline at end of file |