Skip to content

Commit b43f292

Browse files
chore(all): prepare release 1.6.0
1 parent 7096e66 commit b43f292

File tree

9 files changed

+104
-21
lines changed

9 files changed

+104
-21
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "aurelia-templating",
3-
"version": "1.5.0",
3+
"version": "1.6.0",
44
"description": "An extensible HTML templating engine supporting databinding, custom elements, attached behaviors and more.",
55
"keywords": [
66
"aurelia",

dist/amd/aurelia-templating.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2828,13 +2828,16 @@ define(['exports', 'aurelia-logging', 'aurelia-metadata', 'aurelia-pal', 'aureli
28282828
auTargetID = makeIntoInstructionTarget(node);
28292829
instructions[auTargetID] = TargetInstruction.lifting(parentInjectorId, liftingInstruction);
28302830
} else {
2831+
var skipContentProcessing = false;
2832+
28312833
if (expressions.length || behaviorInstructions.length) {
28322834
injectorId = behaviorInstructions.length ? getNextInjectorId() : false;
28332835

28342836
for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {
28352837
instruction = behaviorInstructions[i];
28362838
instruction.type.compile(this, resources, node, instruction, parentNode);
28372839
providers.push(instruction.type.target);
2840+
skipContentProcessing = skipContentProcessing || instruction.skipContentProcessing;
28382841
}
28392842

28402843
for (i = 0, ii = expressions.length; i < ii; ++i) {
@@ -2848,7 +2851,7 @@ define(['exports', 'aurelia-logging', 'aurelia-metadata', 'aurelia-pal', 'aureli
28482851
instructions[auTargetID] = TargetInstruction.normal(injectorId, parentInjectorId, providers, behaviorInstructions, expressions, elementInstruction);
28492852
}
28502853

2851-
if (elementInstruction && elementInstruction.skipContentProcessing) {
2854+
if (skipContentProcessing) {
28522855
return node.nextSibling;
28532856
}
28542857

@@ -3167,6 +3170,8 @@ define(['exports', 'aurelia-logging', 'aurelia-metadata', 'aurelia-pal', 'aureli
31673170
return ProxyViewFactory;
31683171
}();
31693172

3173+
var auSlotBehavior = null;
3174+
31703175
var ViewEngine = exports.ViewEngine = (_dec8 = (0, _aureliaDependencyInjection.inject)(_aureliaLoader.Loader, _aureliaDependencyInjection.Container, ViewCompiler, ModuleAnalyzer, ViewResources), _dec8(_class14 = (_temp4 = _class15 = function () {
31713176
function ViewEngine(loader, container, viewCompiler, moduleAnalyzer, appResources) {
31723177

@@ -3178,8 +3183,12 @@ define(['exports', 'aurelia-logging', 'aurelia-metadata', 'aurelia-pal', 'aureli
31783183
this.appResources = appResources;
31793184
this._pluginMap = {};
31803185

3181-
var auSlotBehavior = new HtmlBehaviorResource();
3182-
auSlotBehavior.attributeName = 'au-slot';
3186+
if (auSlotBehavior === null) {
3187+
auSlotBehavior = new HtmlBehaviorResource();
3188+
auSlotBehavior.attributeName = 'au-slot';
3189+
_aureliaMetadata.metadata.define(_aureliaMetadata.metadata.resource, auSlotBehavior, SlotCustomAttribute);
3190+
}
3191+
31833192
auSlotBehavior.initialize(container, SlotCustomAttribute);
31843193
auSlotBehavior.register(appResources);
31853194
}
@@ -4046,6 +4055,8 @@ define(['exports', 'aurelia-logging', 'aurelia-metadata', 'aurelia-pal', 'aureli
40464055
} else {
40474056
instruction.skipContentProcessing = true;
40484057
}
4058+
} else if (!this.processContent(compiler, resources, node, instruction)) {
4059+
instruction.skipContentProcessing = true;
40494060
}
40504061

40514062
return node;

dist/aurelia-templating.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3528,13 +3528,16 @@ export class ViewCompiler {
35283528
auTargetID = makeIntoInstructionTarget(node);
35293529
instructions[auTargetID] = TargetInstruction.lifting(parentInjectorId, liftingInstruction);
35303530
} else {
3531+
let skipContentProcessing = false;
3532+
35313533
if (expressions.length || behaviorInstructions.length) {
35323534
injectorId = behaviorInstructions.length ? getNextInjectorId() : false;
35333535

35343536
for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {
35353537
instruction = behaviorInstructions[i];
35363538
instruction.type.compile(this, resources, node, instruction, parentNode);
35373539
providers.push(instruction.type.target);
3540+
skipContentProcessing = skipContentProcessing || instruction.skipContentProcessing;
35383541
}
35393542

35403543
for (i = 0, ii = expressions.length; i < ii; ++i) {
@@ -3555,7 +3558,7 @@ export class ViewCompiler {
35553558
);
35563559
}
35573560

3558-
if (elementInstruction && elementInstruction.skipContentProcessing) {
3561+
if (skipContentProcessing) {
35593562
return node.nextSibling;
35603563
}
35613564

@@ -3921,6 +3924,8 @@ class ProxyViewFactory {
39213924
}
39223925
}
39233926

3927+
let auSlotBehavior = null;
3928+
39243929
/**
39253930
* Controls the view resource loading pipeline.
39263931
*/
@@ -3947,8 +3952,12 @@ export class ViewEngine {
39473952
this.appResources = appResources;
39483953
this._pluginMap = {};
39493954

3950-
let auSlotBehavior = new HtmlBehaviorResource();
3951-
auSlotBehavior.attributeName = 'au-slot';
3955+
if (auSlotBehavior === null) {
3956+
auSlotBehavior = new HtmlBehaviorResource();
3957+
auSlotBehavior.attributeName = 'au-slot';
3958+
metadata.define(metadata.resource, auSlotBehavior, SlotCustomAttribute);
3959+
}
3960+
39523961
auSlotBehavior.initialize(container, SlotCustomAttribute);
39533962
auSlotBehavior.register(appResources);
39543963
}
@@ -4989,6 +4998,8 @@ export class HtmlBehaviorResource {
49894998
} else {
49904999
instruction.skipContentProcessing = true;
49915000
}
5001+
} else if (!this.processContent(compiler, resources, node, instruction)) {
5002+
instruction.skipContentProcessing = true;
49925003
}
49935004

49945005
return node;

dist/commonjs/aurelia-templating.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2809,13 +2809,16 @@ var ViewCompiler = exports.ViewCompiler = (_dec7 = (0, _aureliaDependencyInjecti
28092809
auTargetID = makeIntoInstructionTarget(node);
28102810
instructions[auTargetID] = TargetInstruction.lifting(parentInjectorId, liftingInstruction);
28112811
} else {
2812+
var skipContentProcessing = false;
2813+
28122814
if (expressions.length || behaviorInstructions.length) {
28132815
injectorId = behaviorInstructions.length ? getNextInjectorId() : false;
28142816

28152817
for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {
28162818
instruction = behaviorInstructions[i];
28172819
instruction.type.compile(this, resources, node, instruction, parentNode);
28182820
providers.push(instruction.type.target);
2821+
skipContentProcessing = skipContentProcessing || instruction.skipContentProcessing;
28192822
}
28202823

28212824
for (i = 0, ii = expressions.length; i < ii; ++i) {
@@ -2829,7 +2832,7 @@ var ViewCompiler = exports.ViewCompiler = (_dec7 = (0, _aureliaDependencyInjecti
28292832
instructions[auTargetID] = TargetInstruction.normal(injectorId, parentInjectorId, providers, behaviorInstructions, expressions, elementInstruction);
28302833
}
28312834

2832-
if (elementInstruction && elementInstruction.skipContentProcessing) {
2835+
if (skipContentProcessing) {
28332836
return node.nextSibling;
28342837
}
28352838

@@ -3148,6 +3151,8 @@ var ProxyViewFactory = function () {
31483151
return ProxyViewFactory;
31493152
}();
31503153

3154+
var auSlotBehavior = null;
3155+
31513156
var ViewEngine = exports.ViewEngine = (_dec8 = (0, _aureliaDependencyInjection.inject)(_aureliaLoader.Loader, _aureliaDependencyInjection.Container, ViewCompiler, ModuleAnalyzer, ViewResources), _dec8(_class14 = (_temp4 = _class15 = function () {
31523157
function ViewEngine(loader, container, viewCompiler, moduleAnalyzer, appResources) {
31533158

@@ -3159,8 +3164,12 @@ var ViewEngine = exports.ViewEngine = (_dec8 = (0, _aureliaDependencyInjection.i
31593164
this.appResources = appResources;
31603165
this._pluginMap = {};
31613166

3162-
var auSlotBehavior = new HtmlBehaviorResource();
3163-
auSlotBehavior.attributeName = 'au-slot';
3167+
if (auSlotBehavior === null) {
3168+
auSlotBehavior = new HtmlBehaviorResource();
3169+
auSlotBehavior.attributeName = 'au-slot';
3170+
_aureliaMetadata.metadata.define(_aureliaMetadata.metadata.resource, auSlotBehavior, SlotCustomAttribute);
3171+
}
3172+
31643173
auSlotBehavior.initialize(container, SlotCustomAttribute);
31653174
auSlotBehavior.register(appResources);
31663175
}
@@ -4027,6 +4036,8 @@ var HtmlBehaviorResource = exports.HtmlBehaviorResource = function () {
40274036
} else {
40284037
instruction.skipContentProcessing = true;
40294038
}
4039+
} else if (!this.processContent(compiler, resources, node, instruction)) {
4040+
instruction.skipContentProcessing = true;
40304041
}
40314042

40324043
return node;

dist/es2015/aurelia-templating.js

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2585,13 +2585,16 @@ export let ViewCompiler = (_dec7 = inject(BindingLanguage, ViewResources), _dec7
25852585
auTargetID = makeIntoInstructionTarget(node);
25862586
instructions[auTargetID] = TargetInstruction.lifting(parentInjectorId, liftingInstruction);
25872587
} else {
2588+
let skipContentProcessing = false;
2589+
25882590
if (expressions.length || behaviorInstructions.length) {
25892591
injectorId = behaviorInstructions.length ? getNextInjectorId() : false;
25902592

25912593
for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {
25922594
instruction = behaviorInstructions[i];
25932595
instruction.type.compile(this, resources, node, instruction, parentNode);
25942596
providers.push(instruction.type.target);
2597+
skipContentProcessing = skipContentProcessing || instruction.skipContentProcessing;
25952598
}
25962599

25972600
for (i = 0, ii = expressions.length; i < ii; ++i) {
@@ -2605,7 +2608,7 @@ export let ViewCompiler = (_dec7 = inject(BindingLanguage, ViewResources), _dec7
26052608
instructions[auTargetID] = TargetInstruction.normal(injectorId, parentInjectorId, providers, behaviorInstructions, expressions, elementInstruction);
26062609
}
26072610

2608-
if (elementInstruction && elementInstruction.skipContentProcessing) {
2611+
if (skipContentProcessing) {
26092612
return node.nextSibling;
26102613
}
26112614

@@ -2899,6 +2902,9 @@ let ProxyViewFactory = class ProxyViewFactory {
28992902
}
29002903
};
29012904

2905+
2906+
let auSlotBehavior = null;
2907+
29022908
export let ViewEngine = (_dec8 = inject(Loader, Container, ViewCompiler, ModuleAnalyzer, ViewResources), _dec8(_class14 = (_temp4 = _class15 = class ViewEngine {
29032909
constructor(loader, container, viewCompiler, moduleAnalyzer, appResources) {
29042910
this.loader = loader;
@@ -2908,8 +2914,12 @@ export let ViewEngine = (_dec8 = inject(Loader, Container, ViewCompiler, ModuleA
29082914
this.appResources = appResources;
29092915
this._pluginMap = {};
29102916

2911-
let auSlotBehavior = new HtmlBehaviorResource();
2912-
auSlotBehavior.attributeName = 'au-slot';
2917+
if (auSlotBehavior === null) {
2918+
auSlotBehavior = new HtmlBehaviorResource();
2919+
auSlotBehavior.attributeName = 'au-slot';
2920+
metadata.define(metadata.resource, auSlotBehavior, SlotCustomAttribute);
2921+
}
2922+
29132923
auSlotBehavior.initialize(container, SlotCustomAttribute);
29142924
auSlotBehavior.register(appResources);
29152925
}
@@ -3733,6 +3743,8 @@ export let HtmlBehaviorResource = class HtmlBehaviorResource {
37333743
} else {
37343744
instruction.skipContentProcessing = true;
37353745
}
3746+
} else if (!this.processContent(compiler, resources, node, instruction)) {
3747+
instruction.skipContentProcessing = true;
37363748
}
37373749

37383750
return node;

dist/native-modules/aurelia-templating.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2772,13 +2772,16 @@ export var ViewCompiler = (_dec7 = inject(BindingLanguage, ViewResources), _dec7
27722772
auTargetID = makeIntoInstructionTarget(node);
27732773
instructions[auTargetID] = TargetInstruction.lifting(parentInjectorId, liftingInstruction);
27742774
} else {
2775+
var skipContentProcessing = false;
2776+
27752777
if (expressions.length || behaviorInstructions.length) {
27762778
injectorId = behaviorInstructions.length ? getNextInjectorId() : false;
27772779

27782780
for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {
27792781
instruction = behaviorInstructions[i];
27802782
instruction.type.compile(this, resources, node, instruction, parentNode);
27812783
providers.push(instruction.type.target);
2784+
skipContentProcessing = skipContentProcessing || instruction.skipContentProcessing;
27822785
}
27832786

27842787
for (i = 0, ii = expressions.length; i < ii; ++i) {
@@ -2792,7 +2795,7 @@ export var ViewCompiler = (_dec7 = inject(BindingLanguage, ViewResources), _dec7
27922795
instructions[auTargetID] = TargetInstruction.normal(injectorId, parentInjectorId, providers, behaviorInstructions, expressions, elementInstruction);
27932796
}
27942797

2795-
if (elementInstruction && elementInstruction.skipContentProcessing) {
2798+
if (skipContentProcessing) {
27962799
return node.nextSibling;
27972800
}
27982801

@@ -3111,6 +3114,8 @@ var ProxyViewFactory = function () {
31113114
return ProxyViewFactory;
31123115
}();
31133116

3117+
var auSlotBehavior = null;
3118+
31143119
export var ViewEngine = (_dec8 = inject(Loader, Container, ViewCompiler, ModuleAnalyzer, ViewResources), _dec8(_class14 = (_temp4 = _class15 = function () {
31153120
function ViewEngine(loader, container, viewCompiler, moduleAnalyzer, appResources) {
31163121

@@ -3122,8 +3127,12 @@ export var ViewEngine = (_dec8 = inject(Loader, Container, ViewCompiler, ModuleA
31223127
this.appResources = appResources;
31233128
this._pluginMap = {};
31243129

3125-
var auSlotBehavior = new HtmlBehaviorResource();
3126-
auSlotBehavior.attributeName = 'au-slot';
3130+
if (auSlotBehavior === null) {
3131+
auSlotBehavior = new HtmlBehaviorResource();
3132+
auSlotBehavior.attributeName = 'au-slot';
3133+
metadata.define(metadata.resource, auSlotBehavior, SlotCustomAttribute);
3134+
}
3135+
31273136
auSlotBehavior.initialize(container, SlotCustomAttribute);
31283137
auSlotBehavior.register(appResources);
31293138
}
@@ -3989,6 +3998,8 @@ export var HtmlBehaviorResource = function () {
39893998
} else {
39903999
instruction.skipContentProcessing = true;
39914000
}
4001+
} else if (!this.processContent(compiler, resources, node, instruction)) {
4002+
instruction.skipContentProcessing = true;
39924003
}
39934004

39944005
return node;

dist/system/aurelia-templating.js

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
System.register(['aurelia-logging', 'aurelia-metadata', 'aurelia-pal', 'aurelia-path', 'aurelia-loader', 'aurelia-dependency-injection', 'aurelia-binding', 'aurelia-task-queue'], function (_export, _context) {
44
"use strict";
55

6-
var LogManager, metadata, Origin, protocol, DOM, PLATFORM, FEATURE, relativeToFile, TemplateRegistryEntry, Loader, inject, Container, resolver, Binding, createOverrideContext, ValueConverterResource, BindingBehaviorResource, subscriberCollection, bindingMode, ObserverLocator, EventManager, TaskQueue, _createClass, _class, _temp, _dec, _class2, _dec2, _class3, _dec3, _class4, _dec4, _class5, _dec5, _class6, _class7, _temp2, _dec6, _class8, _class9, _temp3, _class11, _dec7, _class13, _dec8, _class14, _class15, _temp4, _dec9, _class16, _dec10, _class17, _dec11, _class18, _typeof, animationEvent, Animator, CompositionTransactionNotifier, CompositionTransactionOwnershipToken, CompositionTransaction, capitalMatcher, ViewEngineHooksResource, ElementEvents, ResourceLoadContext, ViewCompileInstruction, BehaviorInstruction, TargetInstruction, viewStrategy, RelativeViewStrategy, ConventionalViewStrategy, NoViewStrategy, TemplateRegistryViewStrategy, InlineViewStrategy, ViewLocator, BindingLanguage, noNodes, SlotCustomAttribute, PassThroughSlot, ShadowSlot, ShadowDOM, ViewResources, View, ViewSlot, ProviderResolver, providerResolverInstance, BoundViewFactory, ViewFactory, nextInjectorId, lastAUTargetID, ViewCompiler, ResourceModule, ResourceDescription, ModuleAnalyzer, logger, ProxyViewFactory, ViewEngine, Controller, BehaviorPropertyObserver, BindableProperty, lastProviderId, HtmlBehaviorResource, ChildObserver, noMutations, ChildObserverBinder, SwapStrategies, CompositionEngine, ElementConfigResource, defaultShadowDOMOptions, TemplatingEngine;
6+
var LogManager, metadata, Origin, protocol, DOM, PLATFORM, FEATURE, relativeToFile, TemplateRegistryEntry, Loader, inject, Container, resolver, Binding, createOverrideContext, ValueConverterResource, BindingBehaviorResource, subscriberCollection, bindingMode, ObserverLocator, EventManager, TaskQueue, _createClass, _class, _temp, _dec, _class2, _dec2, _class3, _dec3, _class4, _dec4, _class5, _dec5, _class6, _class7, _temp2, _dec6, _class8, _class9, _temp3, _class11, _dec7, _class13, _dec8, _class14, _class15, _temp4, _dec9, _class16, _dec10, _class17, _dec11, _class18, _typeof, animationEvent, Animator, CompositionTransactionNotifier, CompositionTransactionOwnershipToken, CompositionTransaction, capitalMatcher, ViewEngineHooksResource, ElementEvents, ResourceLoadContext, ViewCompileInstruction, BehaviorInstruction, TargetInstruction, viewStrategy, RelativeViewStrategy, ConventionalViewStrategy, NoViewStrategy, TemplateRegistryViewStrategy, InlineViewStrategy, ViewLocator, BindingLanguage, noNodes, SlotCustomAttribute, PassThroughSlot, ShadowSlot, ShadowDOM, ViewResources, View, ViewSlot, ProviderResolver, providerResolverInstance, BoundViewFactory, ViewFactory, nextInjectorId, lastAUTargetID, ViewCompiler, ResourceModule, ResourceDescription, ModuleAnalyzer, logger, ProxyViewFactory, auSlotBehavior, ViewEngine, Controller, BehaviorPropertyObserver, BindableProperty, lastProviderId, HtmlBehaviorResource, ChildObserver, noMutations, ChildObserverBinder, SwapStrategies, CompositionEngine, ElementConfigResource, defaultShadowDOMOptions, TemplatingEngine;
77

88

99

@@ -3239,13 +3239,16 @@ System.register(['aurelia-logging', 'aurelia-metadata', 'aurelia-pal', 'aurelia-
32393239
auTargetID = makeIntoInstructionTarget(node);
32403240
instructions[auTargetID] = TargetInstruction.lifting(parentInjectorId, liftingInstruction);
32413241
} else {
3242+
var skipContentProcessing = false;
3243+
32423244
if (expressions.length || behaviorInstructions.length) {
32433245
injectorId = behaviorInstructions.length ? getNextInjectorId() : false;
32443246

32453247
for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {
32463248
instruction = behaviorInstructions[i];
32473249
instruction.type.compile(this, resources, node, instruction, parentNode);
32483250
providers.push(instruction.type.target);
3251+
skipContentProcessing = skipContentProcessing || instruction.skipContentProcessing;
32493252
}
32503253

32513254
for (i = 0, ii = expressions.length; i < ii; ++i) {
@@ -3259,7 +3262,7 @@ System.register(['aurelia-logging', 'aurelia-metadata', 'aurelia-pal', 'aurelia-
32593262
instructions[auTargetID] = TargetInstruction.normal(injectorId, parentInjectorId, providers, behaviorInstructions, expressions, elementInstruction);
32603263
}
32613264

3262-
if (elementInstruction && elementInstruction.skipContentProcessing) {
3265+
if (skipContentProcessing) {
32633266
return node.nextSibling;
32643267
}
32653268

@@ -3578,6 +3581,8 @@ System.register(['aurelia-logging', 'aurelia-metadata', 'aurelia-pal', 'aurelia-
35783581
return ProxyViewFactory;
35793582
}();
35803583

3584+
auSlotBehavior = null;
3585+
35813586
_export('ViewEngine', ViewEngine = (_dec8 = inject(Loader, Container, ViewCompiler, ModuleAnalyzer, ViewResources), _dec8(_class14 = (_temp4 = _class15 = function () {
35823587
function ViewEngine(loader, container, viewCompiler, moduleAnalyzer, appResources) {
35833588

@@ -3589,8 +3594,12 @@ System.register(['aurelia-logging', 'aurelia-metadata', 'aurelia-pal', 'aurelia-
35893594
this.appResources = appResources;
35903595
this._pluginMap = {};
35913596

3592-
var auSlotBehavior = new HtmlBehaviorResource();
3593-
auSlotBehavior.attributeName = 'au-slot';
3597+
if (auSlotBehavior === null) {
3598+
auSlotBehavior = new HtmlBehaviorResource();
3599+
auSlotBehavior.attributeName = 'au-slot';
3600+
metadata.define(metadata.resource, auSlotBehavior, SlotCustomAttribute);
3601+
}
3602+
35943603
auSlotBehavior.initialize(container, SlotCustomAttribute);
35953604
auSlotBehavior.register(appResources);
35963605
}
@@ -4438,6 +4447,8 @@ System.register(['aurelia-logging', 'aurelia-metadata', 'aurelia-pal', 'aurelia-
44384447
} else {
44394448
instruction.skipContentProcessing = true;
44404449
}
4450+
} else if (!this.processContent(compiler, resources, node, instruction)) {
4451+
instruction.skipContentProcessing = true;
44414452
}
44424453

44434454
return node;

doc/CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,19 @@
1+
<a name="1.6.0"></a>
2+
# [1.6.0](https://github.com/aurelia/templating/compare/1.5.0...v1.6.0) (2017-10-16)
3+
4+
5+
### Bug Fixes
6+
7+
* **view-engine:** define metadata for SlotCustomAttribute ([e3474bb](https://github.com/aurelia/templating/commit/e3474bb)), closes [#566](https://github.com/aurelia/templating/issues/566)
8+
* **view-engine:** singleton instance of auSlotBehavior ([c08db20](https://github.com/aurelia/templating/commit/c08db20))
9+
10+
11+
### Features
12+
13+
* **html-behavior:** enable processContent via custom attributes ([7096e66](https://github.com/aurelia/templating/commit/7096e66))
14+
15+
16+
117
<a name="1.5.0"></a>
218
# [1.5.0](https://github.com/aurelia/templating/compare/1.4.2...v1.5.0) (2017-10-02)
319

0 commit comments

Comments
 (0)