4
4
5
5
import 'package:dartdoc/src/model/model.dart' ;
6
6
7
+ typedef ContainerSidebar = String Function (Container , TemplateData );
8
+ typedef LibrarySidebar = String Function (Library , TemplateData );
9
+
7
10
abstract class TemplateOptions {
8
11
String get relCanonicalPrefix;
9
12
String get toolVersion;
@@ -118,11 +121,13 @@ class CategoryTemplateData extends TemplateData<Category> {
118
121
119
122
class LibraryTemplateData extends TemplateData <Library > {
120
123
final Library library;
124
+ final LibrarySidebar _sidebarForLibrary;
121
125
122
- LibraryTemplateData (
123
- TemplateOptions htmlOptions, PackageGraph packageGraph, this .library )
126
+ LibraryTemplateData (TemplateOptions htmlOptions, PackageGraph packageGraph,
127
+ this .library, this ._sidebarForLibrary )
124
128
: super (htmlOptions, packageGraph);
125
129
130
+ String get sidebarForLibrary => _sidebarForLibrary (library, this );
126
131
@override
127
132
String get title => '${library .name } library - Dart API' ;
128
133
@override
@@ -145,9 +150,15 @@ class LibraryTemplateData extends TemplateData<Library> {
145
150
class MixinTemplateData extends ClassTemplateData <Mixin > {
146
151
final Mixin mixin ;
147
152
148
- MixinTemplateData (TemplateOptions htmlOptions, PackageGraph packageGraph,
149
- Library library, this .mixin )
150
- : super (htmlOptions, packageGraph, library, mixin );
153
+ MixinTemplateData (
154
+ TemplateOptions htmlOptions,
155
+ PackageGraph packageGraph,
156
+ Library library,
157
+ this .mixin ,
158
+ LibrarySidebar _sidebarForLibrary,
159
+ ContainerSidebar _sidebarForContainer)
160
+ : super (htmlOptions, packageGraph, library, mixin , _sidebarForLibrary,
161
+ _sidebarForContainer);
151
162
152
163
@override
153
164
Mixin get self => mixin ;
@@ -158,11 +169,23 @@ class ClassTemplateData<T extends Class> extends TemplateData<T> {
158
169
final Class clazz;
159
170
final Library library;
160
171
Class _objectType;
161
-
162
- ClassTemplateData (TemplateOptions htmlOptions, PackageGraph packageGraph,
163
- this .library, this .clazz)
172
+ final LibrarySidebar _sidebarForLibrary;
173
+ final ContainerSidebar _sidebarForContainer;
174
+
175
+ ClassTemplateData (
176
+ TemplateOptions htmlOptions,
177
+ PackageGraph packageGraph,
178
+ this .library,
179
+ this .clazz,
180
+ this ._sidebarForLibrary,
181
+ this ._sidebarForContainer)
164
182
: super (htmlOptions, packageGraph);
165
183
184
+ String get sidebarForLibrary => _sidebarForLibrary (library, this );
185
+ String get sidebarForContainer => _sidebarForContainer (container, this );
186
+
187
+ Container get container => clazz;
188
+
166
189
@override
167
190
T get self => clazz;
168
191
String get linkedObjectType =>
@@ -199,11 +222,23 @@ class ClassTemplateData<T extends Class> extends TemplateData<T> {
199
222
class ExtensionTemplateData <T extends Extension > extends TemplateData <T > {
200
223
final T extension ;
201
224
final Library library;
202
-
203
- ExtensionTemplateData (TemplateOptions htmlOptions, PackageGraph packageGraph,
204
- this .library, this .extension )
225
+ final ContainerSidebar _sidebarForContainer;
226
+ final LibrarySidebar _sidebarForLibrary;
227
+
228
+ ExtensionTemplateData (
229
+ TemplateOptions htmlOptions,
230
+ PackageGraph packageGraph,
231
+ this .library,
232
+ this .extension ,
233
+ this ._sidebarForLibrary,
234
+ this ._sidebarForContainer)
205
235
: super (htmlOptions, packageGraph);
206
236
237
+ String get sidebarForContainer => _sidebarForContainer (container, this );
238
+ String get sidebarForLibrary => _sidebarForLibrary (library, this );
239
+
240
+ Container get container => extension ;
241
+
207
242
@override
208
243
T get self => extension ;
209
244
@@ -227,11 +262,20 @@ class ConstructorTemplateData extends TemplateData<Constructor> {
227
262
final Library library;
228
263
final Class clazz;
229
264
final Constructor constructor;
230
-
231
- ConstructorTemplateData (TemplateOptions htmlOptions,
232
- PackageGraph packageGraph, this .library, this .clazz, this .constructor)
265
+ final ContainerSidebar _sidebarForContainer;
266
+
267
+ ConstructorTemplateData (
268
+ TemplateOptions htmlOptions,
269
+ PackageGraph packageGraph,
270
+ this .library,
271
+ this .clazz,
272
+ this .constructor,
273
+ this ._sidebarForContainer)
233
274
: super (htmlOptions, packageGraph);
234
275
276
+ String get sidebarForContainer => _sidebarForContainer (container, this );
277
+
278
+ Container get container => clazz;
235
279
@override
236
280
Constructor get self => constructor;
237
281
@override
@@ -255,9 +299,15 @@ class ConstructorTemplateData extends TemplateData<Constructor> {
255
299
}
256
300
257
301
class EnumTemplateData extends ClassTemplateData <Enum > {
258
- EnumTemplateData (TemplateOptions htmlOptions, PackageGraph packageGraph,
259
- Library library, Enum eNum)
260
- : super (htmlOptions, packageGraph, library, eNum);
302
+ EnumTemplateData (
303
+ TemplateOptions htmlOptions,
304
+ PackageGraph packageGraph,
305
+ Library library,
306
+ Enum eNum,
307
+ LibrarySidebar _sidebarForLibrary,
308
+ ContainerSidebar _sidebarForContainer)
309
+ : super (htmlOptions, packageGraph, library, eNum, _sidebarForLibrary,
310
+ _sidebarForContainer);
261
311
262
312
Enum get eNum => clazz;
263
313
@override
@@ -267,11 +317,14 @@ class EnumTemplateData extends ClassTemplateData<Enum> {
267
317
class FunctionTemplateData extends TemplateData <ModelFunction > {
268
318
final ModelFunction function;
269
319
final Library library;
320
+ final LibrarySidebar _sidebarForLibrary;
270
321
271
322
FunctionTemplateData (TemplateOptions htmlOptions, PackageGraph packageGraph,
272
- this .library, this .function)
323
+ this .library, this .function, this ._sidebarForLibrary )
273
324
: super (htmlOptions, packageGraph);
274
325
326
+ String get sidebarForLibrary => _sidebarForLibrary (library, this );
327
+
275
328
@override
276
329
ModelFunction get self => function;
277
330
@override
@@ -294,14 +347,18 @@ class MethodTemplateData extends TemplateData<Method> {
294
347
final Library library;
295
348
final Method method;
296
349
final Container container;
350
+ final ContainerSidebar _sidebarForContainer;
351
+
297
352
String containerDesc;
298
353
299
354
MethodTemplateData (TemplateOptions htmlOptions, PackageGraph packageGraph,
300
- this .library, this .container, this .method)
355
+ this .library, this .container, this .method, this ._sidebarForContainer )
301
356
: super (htmlOptions, packageGraph) {
302
357
containerDesc = container.isClass ? 'class' : 'extension' ;
303
358
}
304
359
360
+ String get sidebarForContainer => _sidebarForContainer (container, this );
361
+
305
362
@override
306
363
Method get self => method;
307
364
@override
@@ -327,14 +384,17 @@ class PropertyTemplateData extends TemplateData<Field> {
327
384
final Library library;
328
385
final Container container;
329
386
final Field property;
387
+ final ContainerSidebar _sidebarForContainer;
330
388
String containerDesc;
331
389
332
390
PropertyTemplateData (TemplateOptions htmlOptions, PackageGraph packageGraph,
333
- this .library, this .container, this .property)
391
+ this .library, this .container, this .property, this ._sidebarForContainer )
334
392
: super (htmlOptions, packageGraph) {
335
393
containerDesc = container.isClass ? 'class' : 'extension' ;
336
394
}
337
395
396
+ String get sidebarForContainer => _sidebarForContainer (container, this );
397
+
338
398
@override
339
399
Field get self => property;
340
400
@@ -360,11 +420,14 @@ class PropertyTemplateData extends TemplateData<Field> {
360
420
class TypedefTemplateData extends TemplateData <Typedef > {
361
421
final Library library;
362
422
final Typedef typeDef;
423
+ final LibrarySidebar _sidebarForLibrary;
363
424
364
425
TypedefTemplateData (TemplateOptions htmlOptions, PackageGraph packageGraph,
365
- this .library, this .typeDef)
426
+ this .library, this .typeDef, this ._sidebarForLibrary )
366
427
: super (htmlOptions, packageGraph);
367
428
429
+ String get sidebarForLibrary => _sidebarForLibrary (library, this );
430
+
368
431
@override
369
432
Typedef get self => typeDef;
370
433
@@ -387,11 +450,18 @@ class TypedefTemplateData extends TemplateData<Typedef> {
387
450
class TopLevelPropertyTemplateData extends TemplateData <TopLevelVariable > {
388
451
final Library library;
389
452
final TopLevelVariable property;
390
-
391
- TopLevelPropertyTemplateData (TemplateOptions htmlOptions,
392
- PackageGraph packageGraph, this .library, this .property)
453
+ final LibrarySidebar _sidebarForLibrary;
454
+
455
+ TopLevelPropertyTemplateData (
456
+ TemplateOptions htmlOptions,
457
+ PackageGraph packageGraph,
458
+ this .library,
459
+ this .property,
460
+ this ._sidebarForLibrary)
393
461
: super (htmlOptions, packageGraph);
394
462
463
+ String get sidebarForLibrary => _sidebarForLibrary (library, this );
464
+
395
465
@override
396
466
TopLevelVariable get self => property;
397
467
0 commit comments