UNPKG

4.61 kBJavaScriptView Raw
1import { BindingOnSyntax } from "./binding_on_syntax";
2import { namedConstraint, taggedConstraint, traverseAncerstors, typeConstraint } from "./constraint_helpers";
3var BindingWhenSyntax = (function () {
4 function BindingWhenSyntax(binding) {
5 this._binding = binding;
6 }
7 BindingWhenSyntax.prototype.when = function (constraint) {
8 this._binding.constraint = constraint;
9 return new BindingOnSyntax(this._binding);
10 };
11 BindingWhenSyntax.prototype.whenTargetNamed = function (name) {
12 this._binding.constraint = namedConstraint(name);
13 return new BindingOnSyntax(this._binding);
14 };
15 BindingWhenSyntax.prototype.whenTargetIsDefault = function () {
16 this._binding.constraint = function (request) {
17 if (request === null) {
18 return false;
19 }
20 var targetIsDefault = (request.target !== null) &&
21 (!request.target.isNamed()) &&
22 (!request.target.isTagged());
23 return targetIsDefault;
24 };
25 return new BindingOnSyntax(this._binding);
26 };
27 BindingWhenSyntax.prototype.whenTargetTagged = function (tag, value) {
28 this._binding.constraint = taggedConstraint(tag)(value);
29 return new BindingOnSyntax(this._binding);
30 };
31 BindingWhenSyntax.prototype.whenInjectedInto = function (parent) {
32 this._binding.constraint = function (request) {
33 return request !== null && typeConstraint(parent)(request.parentRequest);
34 };
35 return new BindingOnSyntax(this._binding);
36 };
37 BindingWhenSyntax.prototype.whenParentNamed = function (name) {
38 this._binding.constraint = function (request) {
39 return request !== null && namedConstraint(name)(request.parentRequest);
40 };
41 return new BindingOnSyntax(this._binding);
42 };
43 BindingWhenSyntax.prototype.whenParentTagged = function (tag, value) {
44 this._binding.constraint = function (request) {
45 return request !== null && taggedConstraint(tag)(value)(request.parentRequest);
46 };
47 return new BindingOnSyntax(this._binding);
48 };
49 BindingWhenSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
50 this._binding.constraint = function (request) {
51 return request !== null && traverseAncerstors(request, typeConstraint(ancestor));
52 };
53 return new BindingOnSyntax(this._binding);
54 };
55 BindingWhenSyntax.prototype.whenNoAncestorIs = function (ancestor) {
56 this._binding.constraint = function (request) {
57 return request !== null && !traverseAncerstors(request, typeConstraint(ancestor));
58 };
59 return new BindingOnSyntax(this._binding);
60 };
61 BindingWhenSyntax.prototype.whenAnyAncestorNamed = function (name) {
62 this._binding.constraint = function (request) {
63 return request !== null && traverseAncerstors(request, namedConstraint(name));
64 };
65 return new BindingOnSyntax(this._binding);
66 };
67 BindingWhenSyntax.prototype.whenNoAncestorNamed = function (name) {
68 this._binding.constraint = function (request) {
69 return request !== null && !traverseAncerstors(request, namedConstraint(name));
70 };
71 return new BindingOnSyntax(this._binding);
72 };
73 BindingWhenSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
74 this._binding.constraint = function (request) {
75 return request !== null && traverseAncerstors(request, taggedConstraint(tag)(value));
76 };
77 return new BindingOnSyntax(this._binding);
78 };
79 BindingWhenSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
80 this._binding.constraint = function (request) {
81 return request !== null && !traverseAncerstors(request, taggedConstraint(tag)(value));
82 };
83 return new BindingOnSyntax(this._binding);
84 };
85 BindingWhenSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
86 this._binding.constraint = function (request) {
87 return request !== null && traverseAncerstors(request, constraint);
88 };
89 return new BindingOnSyntax(this._binding);
90 };
91 BindingWhenSyntax.prototype.whenNoAncestorMatches = function (constraint) {
92 this._binding.constraint = function (request) {
93 return request !== null && !traverseAncerstors(request, constraint);
94 };
95 return new BindingOnSyntax(this._binding);
96 };
97 return BindingWhenSyntax;
98}());
99export { BindingWhenSyntax };
100//# sourceMappingURL=binding_when_syntax.js.map
\No newline at end of file