babel-plugin-wallace 0.0.5 → 0.0.7

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.
Files changed (61) hide show
  1. package/dist/ast-helpers.d.ts +1 -1
  2. package/dist/ast-helpers.js +2 -10
  3. package/dist/ast-helpers.js.map +1 -1
  4. package/dist/{builders/consolidation.d.ts → consolidation/ComponentDefinitionData.d.ts} +8 -9
  5. package/dist/consolidation/ComponentDefinitionData.js +79 -0
  6. package/dist/consolidation/ComponentDefinitionData.js.map +1 -0
  7. package/dist/consolidation/consolidateComponent.d.ts +6 -0
  8. package/dist/consolidation/consolidateComponent.js +41 -0
  9. package/dist/consolidation/consolidateComponent.js.map +1 -0
  10. package/dist/consolidation/index.d.ts +2 -0
  11. package/dist/consolidation/index.js +8 -0
  12. package/dist/consolidation/index.js.map +1 -0
  13. package/dist/consolidation/processNodes.d.ts +3 -0
  14. package/dist/consolidation/processNodes.js +219 -0
  15. package/dist/consolidation/processNodes.js.map +1 -0
  16. package/dist/{builders → consolidation}/types.d.ts +8 -2
  17. package/dist/{builders → consolidation}/types.js.map +1 -1
  18. package/dist/consolidation/utils.d.ts +21 -0
  19. package/dist/consolidation/utils.js +91 -0
  20. package/dist/consolidation/utils.js.map +1 -0
  21. package/dist/consolidation/visibility.d.ts +2 -0
  22. package/dist/consolidation/visibility.js +22 -0
  23. package/dist/consolidation/visibility.js.map +1 -0
  24. package/dist/constants.d.ts +3 -3
  25. package/dist/constants.js +3 -3
  26. package/dist/constants.js.map +1 -1
  27. package/dist/contexts/handlers.js +3 -3
  28. package/dist/contexts/handlers.js.map +1 -1
  29. package/dist/directives.js +121 -5
  30. package/dist/directives.js.map +1 -1
  31. package/dist/errors.d.ts +5 -3
  32. package/dist/errors.js +5 -3
  33. package/dist/errors.js.map +1 -1
  34. package/dist/models/component.js +4 -2
  35. package/dist/models/component.js.map +1 -1
  36. package/dist/models/index.d.ts +2 -2
  37. package/dist/models/index.js.map +1 -1
  38. package/dist/models/node.d.ts +32 -3
  39. package/dist/models/node.js +43 -107
  40. package/dist/models/node.js.map +1 -1
  41. package/dist/utils.d.ts +1 -0
  42. package/dist/utils.js +8 -1
  43. package/dist/utils.js.map +1 -1
  44. package/dist/visitors/attribute.js +6 -1
  45. package/dist/visitors/attribute.js.map +1 -1
  46. package/dist/{builders → writers}/define-component.d.ts +1 -1
  47. package/dist/{builders → writers}/define-component.js +31 -27
  48. package/dist/writers/define-component.js.map +1 -0
  49. package/dist/writers/index.d.ts +1 -0
  50. package/dist/{builders → writers}/index.js +1 -1
  51. package/dist/writers/index.js.map +1 -0
  52. package/package.json +4 -3
  53. package/dist/builders/consolidation.js +0 -321
  54. package/dist/builders/consolidation.js.map +0 -1
  55. package/dist/builders/define-component.js.map +0 -1
  56. package/dist/builders/index.d.ts +0 -2
  57. package/dist/builders/index.js.map +0 -1
  58. package/dist/builders/visibility.d.ts +0 -5
  59. package/dist/builders/visibility.js +0 -43
  60. package/dist/builders/visibility.js.map +0 -1
  61. /package/dist/{builders → consolidation}/types.js +0 -0
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processeVisibilityToggles = processeVisibilityToggles;
4
+ const utils_1 = require("../utils");
5
+ /**
6
+ * Sets the skipCount of each watch's shieldInfo.
7
+ * This indicates how many watches to skip if that element is hidden.
8
+ * Must be done after processing watches as we need to know how many watches to skip.
9
+ */
10
+ function setSkipCounts(watch, index, watches) {
11
+ watch.shieldInfo.skipCount = watches
12
+ .slice(index)
13
+ .filter((w) => (0, utils_1.arrayStartsWith)(watch.address, w.address)).length;
14
+ }
15
+ function processeVisibilityToggles(watches) {
16
+ watches.forEach((watch, index) => {
17
+ if (watch.shieldInfo) {
18
+ setSkipCounts(watch, index, watches);
19
+ }
20
+ });
21
+ }
22
+ //# sourceMappingURL=visibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visibility.js","sourceRoot":"","sources":["../../src/consolidation/visibility.ts"],"names":[],"mappings":";;AAkBA,8DAMC;AAxBD,oCAA2C;AAG3C;;;;GAIG;AACH,SAAS,aAAa,CACpB,KAAqB,EACrB,KAAa,EACb,OAA8B;IAE9B,KAAK,CAAC,UAAU,CAAC,SAAS,GAAG,OAAO;SACjC,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AACrE,CAAC;AAED,SAAgB,yBAAyB,CAAC,OAA8B;IACtE,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC/B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -15,7 +15,7 @@ export declare enum IMPORTABLES {
15
15
  findElement = "findElement",
16
16
  nestComponent = "nestComponent",
17
17
  saveRef = "saveRef",
18
- saveMiscObject = "saveMiscObject",
18
+ stashMisc = "stashMisc",
19
19
  onEvent = "onEvent",
20
20
  getSequentialPool = "getSequentialPool"
21
21
  }
@@ -25,7 +25,7 @@ export declare enum EVENT_CALLBACK_VARIABLES {
25
25
  event = "_event"
26
26
  }
27
27
  export declare enum SPECIAL_SYMBOLS {
28
- objectStash = "_o",
29
- alwaysUpdate = "*",
28
+ objectStash = "_s",
29
+ alwaysUpdate = "__",
30
30
  patch = "patch"
31
31
  }
package/dist/constants.js CHANGED
@@ -21,7 +21,7 @@ var IMPORTABLES;
21
21
  IMPORTABLES["findElement"] = "findElement";
22
22
  IMPORTABLES["nestComponent"] = "nestComponent";
23
23
  IMPORTABLES["saveRef"] = "saveRef";
24
- IMPORTABLES["saveMiscObject"] = "saveMiscObject";
24
+ IMPORTABLES["stashMisc"] = "stashMisc";
25
25
  IMPORTABLES["onEvent"] = "onEvent";
26
26
  IMPORTABLES["getSequentialPool"] = "getSequentialPool";
27
27
  })(IMPORTABLES || (exports.IMPORTABLES = IMPORTABLES = {}));
@@ -33,8 +33,8 @@ var EVENT_CALLBACK_VARIABLES;
33
33
  })(EVENT_CALLBACK_VARIABLES || (exports.EVENT_CALLBACK_VARIABLES = EVENT_CALLBACK_VARIABLES = {}));
34
34
  var SPECIAL_SYMBOLS;
35
35
  (function (SPECIAL_SYMBOLS) {
36
- SPECIAL_SYMBOLS["objectStash"] = "_o";
37
- SPECIAL_SYMBOLS["alwaysUpdate"] = "*";
36
+ SPECIAL_SYMBOLS["objectStash"] = "_s";
37
+ SPECIAL_SYMBOLS["alwaysUpdate"] = "__";
38
38
  SPECIAL_SYMBOLS["patch"] = "patch";
39
39
  })(SPECIAL_SYMBOLS || (exports.SPECIAL_SYMBOLS = SPECIAL_SYMBOLS = {}));
40
40
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,qBAMX;AAND,WAAY,qBAAqB;IAC/B,uCAAc,CAAA;IACd,uCAAc,CAAA;IACd,sCAAa,CAAA;IACb,oCAAW,CAAA;IACX,wCAAe,CAAA;AACjB,CAAC,EANW,qBAAqB,qCAArB,qBAAqB,QAMhC;AAED,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,iDAAuB,CAAA;IACvB,8CAAoB,CAAA;AACtB,CAAC,EAHW,sBAAsB,sCAAtB,sBAAsB,QAGjC;AAED,IAAY,WASX;AATD,WAAY,WAAW;IACrB,kDAAmC,CAAA;IACnC,kDAAmC,CAAA;IACnC,0CAA2B,CAAA;IAC3B,8CAA+B,CAAA;IAC/B,kCAAmB,CAAA;IACnB,gDAAiC,CAAA;IACjC,kCAAmB,CAAA;IACnB,sDAAuC,CAAA;AACzC,CAAC,EATW,WAAW,2BAAX,WAAW,QAStB;AAED,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,oDAAwB,CAAA;IACxB,gDAAoB,CAAA;IACpB,4CAAgB,CAAA;AAClB,CAAC,EAJW,wBAAwB,wCAAxB,wBAAwB,QAInC;AAED,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,qCAAkB,CAAA;IAClB,qCAAkB,CAAA;IAClB,kCAAe,CAAA;AACjB,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,qBAMX;AAND,WAAY,qBAAqB;IAC/B,uCAAc,CAAA;IACd,uCAAc,CAAA;IACd,sCAAa,CAAA;IACb,oCAAW,CAAA;IACX,wCAAe,CAAA;AACjB,CAAC,EANW,qBAAqB,qCAArB,qBAAqB,QAMhC;AAED,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,iDAAuB,CAAA;IACvB,8CAAoB,CAAA;AACtB,CAAC,EAHW,sBAAsB,sCAAtB,sBAAsB,QAGjC;AAED,IAAY,WASX;AATD,WAAY,WAAW;IACrB,kDAAmC,CAAA;IACnC,kDAAmC,CAAA;IACnC,0CAA2B,CAAA;IAC3B,8CAA+B,CAAA;IAC/B,kCAAmB,CAAA;IACnB,sCAAuB,CAAA;IACvB,kCAAmB,CAAA;IACnB,sDAAuC,CAAA;AACzC,CAAC,EATW,WAAW,2BAAX,WAAW,QAStB;AAED,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,oDAAwB,CAAA;IACxB,gDAAoB,CAAA;IACpB,4CAAgB,CAAA;AAClB,CAAC,EAJW,wBAAwB,wCAAxB,wBAAwB,QAInC;AAED,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,qCAAkB,CAAA;IAClB,sCAAmB,CAAA;IACnB,kCAAe,CAAA;AACjB,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B"}
@@ -4,7 +4,7 @@ exports.identifyContextToBeHandled = identifyContextToBeHandled;
4
4
  const t = require("@babel/types");
5
5
  const constants_1 = require("../constants");
6
6
  const jsx_1 = require("../visitors/jsx");
7
- const builders_1 = require("../builders");
7
+ const writers_1 = require("../writers");
8
8
  const errors_1 = require("../errors");
9
9
  const models_1 = require("../models");
10
10
  const helpers_1 = require("../helpers");
@@ -54,7 +54,7 @@ class AssignedJsxFunction extends AbstractContextHandler {
54
54
  applyTransformations() {
55
55
  (0, parameters_1.processFunctionParameters)(this.path, this.component);
56
56
  this.path.traverse(jsx_1.jsxVisitors, { component: this.component });
57
- this.pathToReplace.replaceWith((0, builders_1.buildDefineComponentCall)(this.component));
57
+ this.pathToReplace.replaceWith((0, writers_1.buildDefineComponentCall)(this.component));
58
58
  }
59
59
  }
60
60
  class JsxClassMethod extends AbstractContextHandler {
@@ -73,7 +73,7 @@ class JsxClassMethod extends AbstractContextHandler {
73
73
  applyTransformations() {
74
74
  (0, parameters_1.processFunctionParameters)(this.path, this.component);
75
75
  this.path.traverse(jsx_1.jsxVisitors, { component: this.component });
76
- this.classDeclarationPath.insertAfter((0, builders_1.buildExtendComponentCall)(this.component));
76
+ this.classDeclarationPath.insertAfter((0, writers_1.buildExtendComponentCall)(this.component));
77
77
  }
78
78
  }
79
79
  // NOT SUPPORTED UNTIL WE FIND A WAY TO MAKE IT WORK WITH .nest AND .repeat
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/contexts/handlers.ts"],"names":[],"mappings":";;AAiKA,gEAgBC;AAjLD,kCAAkC;AAGlC,4CAA2C;AAC3C,yCAA8C;AAC9C,0CAGqB;AACrB,sCAAkD;AAClD,sCAA8C;AAC9C,wCAAoD;AACpD,oCAAyC;AACzC,6CAAyD;AAEzD;;GAEG;AACH,MAAM,sBAAsB;IAM1B,YAAY,IAAwB,EAAE,MAAc;QAHpD,YAAO,GAAY,KAAK,CAAC;QAIvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IACD,oBAAoB;QAClB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACD,mBAAmB,CAAC,aAAqB;QACvC,IAAI,CAAC,IAAA,qBAAa,EAAC,aAAa,CAAC,EAAE,CAAC;YAClC,IAAA,cAAK,EAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,uBAAc,CAAC,0BAA0B,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAS,CAC5B,aAAa,EACb,IAAI,CAAC,MAAM,EACX,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAChC,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CACjC,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;CACF;AAED,SAAS,eAAe,CAAC,IAAwB;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IACxC,IAAI,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;QACxE,OAAO,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC;IAC5B,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,mBAAoB,SAAQ,sBAAsB;IAEtD,YAAY,IAAwB,EAAE,MAAc;QAClD,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpB,IAAI,IAAA,gCAAsB,EAAC,IAAI,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,aAAa,CAAC,uBAAW,CAAC,eAAe,CAAC,CAAC;YAClD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,oBAAoB;QAClB,IAAA,sCAAyB,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAW,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAA,mCAAwB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF;AAED,MAAM,cAAe,SAAQ,sBAAsB;IAEjD,YAAY,IAAwB,EAAE,MAAc;QAClD,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpB,IAAI,IAAA,gCAAsB,EAAC,IAAI,CAAC,EAAE,CAAC;YACjC,aAAa;YACb,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACvD,IAAI,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzD,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;gBACzD,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;gBACpC,MAAM,CAAC,aAAa,CAAC,uBAAW,CAAC,eAAe,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IACD,oBAAoB;QAClB,IAAA,sCAAyB,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAW,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,oBAAoB,CAAC,WAAW,CACnC,IAAA,mCAAwB,EAAC,IAAI,CAAC,SAAS,CAAC,CACzC,CAAC;IACJ,CAAC;CACF;AAED,2EAA2E;AAC3E,sEAAsE;AACtE,sDAAsD;AACtD,4DAA4D;AAC5D,2BAA2B;AAC3B,qCAAqC;AACrC,iDAAiD;AACjD,6CAA6C;AAC7C,wBAAwB;AACxB,gDAAgD;AAChD,wBAAwB;AACxB,6EAA6E;AAC7E,wBAAwB;AACxB,oEAAoE;AACpE,4DAA4D;AAC5D,UAAU;AACV,QAAQ;AACR,MAAM;AACN,sDAAsD;AACtD,0CAA0C;AAC1C,MAAM;AACN,cAAc;AACd,gCAAgC;AAChC,wBAAwB;AACxB,yBAAyB;AACzB,sBAAsB;AACtB,QAAQ;AACR,0CAA0C;AAC1C,MAAM;AACN,IAAI;AAEJ,qFAAqF;AACrF,sDAAsD;AACtD,6CAA6C;AAC7C,MAAM;AACN,cAAc;AACd,gCAAgC;AAChC,wBAAwB;AACxB,yBAAyB;AACzB,sBAAsB;AACtB,QAAQ;AACR,gCAAgC;AAChC,6CAA6C;AAC7C,2DAA2D;AAC3D,eAAe;AACf,kFAAkF;AAClF,QAAQ;AACR,MAAM;AACN,mCAAmC;AACnC,4DAA4D;AAC5D,sEAAsE;AACtE,6CAA6C;AAC7C,kDAAkD;AAClD,SAAS;AACT,MAAM;AACN,IAAI;AAEJ,MAAM,cAAc,GAAG;IACrB,mBAAmB;IACnB,kBAAkB;IAClB,yCAAyC;CAC1C,CAAC;AAEF,SAAgB,0BAA0B,CACxC,IAAwB,EACxB,MAAc;IAEd,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,cAAc,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QACtC,QAAQ,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/contexts/handlers.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.builtinDirectives = void 0;
4
4
  const models_1 = require("./models");
5
+ const constants_1 = require("./constants");
6
+ const errors_1 = require("./errors");
5
7
  class BaseDirective extends models_1.Directive {
6
8
  apply(node, value, qualifier, base) {
7
9
  node.setBaseComponent(value.expression);
@@ -13,6 +15,50 @@ BaseDirective.help = `
13
15
 
14
16
  /h <div base={OtherComponent}></div>
15
17
  `;
18
+ class BindDirective extends models_1.Directive {
19
+ apply(node, value, qualifier, base) {
20
+ const eventName = qualifier || "change";
21
+ node.addBindInstruction(eventName, value.expression);
22
+ }
23
+ }
24
+ BindDirective.attributeName = "bind";
25
+ BindDirective.help = `
26
+ Create a two-way binding between and input element's "value" property and the
27
+ expression, which must be assignable.
28
+ If the input is of type "checkbox", it uses the "checked" property instead.
29
+
30
+ /h <div bind={p.count}></div>
31
+
32
+ By defaults it listens to "change" event, but you can specify a different one:
33
+
34
+ /h <div bind:keyup={p.count}></div>
35
+ `;
36
+ class ClassDirective extends models_1.Directive {
37
+ apply(node, value, qualifier, base) {
38
+ if (value.type === "null") {
39
+ throw new Error("Value cannot be null");
40
+ }
41
+ if (qualifier) {
42
+ node.addToggleTarget(qualifier, value.type === "expression" ? value.expression : value.value);
43
+ }
44
+ else {
45
+ // TODO: refactor as "process as normal" function.
46
+ if (value.type === "string") {
47
+ node.addFixedAttribute(base, value.value);
48
+ }
49
+ else if (value.type === "expression") {
50
+ node.watchAttribute("class", value.expression);
51
+ }
52
+ }
53
+ }
54
+ }
55
+ ClassDirective.attributeName = "class";
56
+ ClassDirective.help = `
57
+ Without a qualifer this acts as a normal attribute, but with a qualifier it creates
58
+ a toggle target for use with the "toggle" directive:
59
+
60
+ /h <div class:danger="btn-danger" toggle:danger={expr}></div>
61
+ `;
16
62
  class HelpDirective extends models_1.Directive {
17
63
  apply(node, value, qualifier, base) {
18
64
  console.log(`Help launched`);
@@ -27,15 +73,30 @@ HelpDirective.help = `
27
73
  class HideDirective extends models_1.Directive {
28
74
  apply(node, value, qualifier, base) {
29
75
  // this.ensureValueType();
30
- node.setConditionalDisplay(value.expression, false);
76
+ node.setVisibilityToggle(value.expression, false, false);
31
77
  }
32
78
  }
33
79
  HideDirective.attributeName = "hide";
34
80
  HideDirective.help = `
35
- Conditionally hides an element and all nested elements.
81
+ Hides an element by toggling its hidden attribute.
36
82
 
37
83
  /h <div hide={}></div>
38
84
  `;
85
+ class IfDirective extends models_1.Directive {
86
+ apply(node, value, qualifier, base) {
87
+ // this.ensureValueType();
88
+ if (node.isRepeatedNode || node.isNestedClass) {
89
+ (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.CANNOT_USE_IF_ON_NESTED_OR_REPEATED_ELEMENT);
90
+ }
91
+ node.setVisibilityToggle(value.expression, true, true);
92
+ }
93
+ }
94
+ IfDirective.attributeName = "if";
95
+ IfDirective.help = `
96
+ Conditionally includes/exludes an element from the DOM.
97
+
98
+ /h <div if={}></div>
99
+ `;
39
100
  class OnEventDirective extends models_1.Directive {
40
101
  apply(node, value, qualifier, base) {
41
102
  // TODO: change behaviour if value vs expression
@@ -66,29 +127,84 @@ class RefDirective extends models_1.Directive {
66
127
  }
67
128
  RefDirective.attributeName = "ref";
68
129
  RefDirective.help = `
69
- Saves a reference to an element:
130
+ Saves a reference to an element or nested component:
70
131
 
71
132
  /h <div ref:title></div>
72
133
  `;
73
134
  class ShowDirective extends models_1.Directive {
74
135
  apply(node, value, _qualifier, _base) {
75
136
  // this.ensureValueType();
76
- node.setConditionalDisplay(value.expression, true);
137
+ node.setVisibilityToggle(value.expression, true, false);
77
138
  }
78
139
  }
79
140
  ShowDirective.attributeName = "show";
80
141
  ShowDirective.help = `
81
- Conditionally shows an element and all nested elements.
142
+ Shows an element by toggling its hidden attribute.
82
143
 
83
144
  /h <div show={}></div>
84
145
  `;
146
+ class StyleDirective extends models_1.Directive {
147
+ apply(node, value, qualifier, base) {
148
+ if (value.type === "null") {
149
+ throw new Error("Value cannot be null");
150
+ }
151
+ if (qualifier) {
152
+ if (value.type === "string") {
153
+ throw new Error("Value must be an expression");
154
+ }
155
+ else if (value.type === "expression") {
156
+ node.addWatch(value.expression, `${constants_1.WATCH_CALLBACK_PARAMS.element}.style.${qualifier} = n`);
157
+ }
158
+ }
159
+ else {
160
+ if (value.type === "string") {
161
+ node.addFixedAttribute(base, value.value);
162
+ }
163
+ else if (value.type === "expression") {
164
+ node.watchAttribute("style", value.expression);
165
+ }
166
+ }
167
+ }
168
+ }
169
+ StyleDirective.attributeName = "style";
170
+ StyleDirective.help = `
171
+
172
+ /h <div style:color="red"></div>
173
+ `;
174
+ class ToggleDirective extends models_1.Directive {
175
+ apply(node, value, qualifier, base) {
176
+ if (!qualifier) {
177
+ throw new Error("Toggle must have a qualifier");
178
+ }
179
+ if (value.type !== "expression") {
180
+ throw new Error("Value must be an expression");
181
+ }
182
+ node.addToggleTrigger(qualifier, value.expression);
183
+ }
184
+ }
185
+ ToggleDirective.attributeName = "toggle";
186
+ ToggleDirective.help = `
187
+ If used on its own, the qualifer is the name of the css class to toggle:
188
+
189
+ /h <div toggle:danger={expr}></div>
190
+
191
+ If the element has class sets, then the qualifer corresponds to the name of the
192
+ class set:
193
+
194
+ /h <div class:danger="red danger" toggle:danger={expr}></div>
195
+ `;
85
196
  exports.builtinDirectives = [
86
197
  BaseDirective,
198
+ BindDirective,
199
+ ClassDirective,
87
200
  HelpDirective,
88
201
  HideDirective,
202
+ IfDirective,
89
203
  OnEventDirective,
90
204
  PropsDirective,
91
205
  RefDirective,
92
206
  ShowDirective,
207
+ StyleDirective,
208
+ ToggleDirective,
93
209
  ];
94
210
  //# sourceMappingURL=directives.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directives.js","sourceRoot":"","sources":["../src/directives.ts"],"names":[],"mappings":";;;AAAA,qCAAoE;AAEpE,MAAM,aAAc,SAAQ,kBAAS;IAOnC,KAAK,CAAC,IAAa,EAAE,KAAgB,EAAE,SAAoB,EAAE,IAAY;QACvE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;;AARM,2BAAa,GAAG,MAAM,CAAC;AACvB,kBAAI,GAAG;;;;KAIX,CAAC;AAMN,MAAM,aAAc,SAAQ,kBAAS;IAOnC,KAAK,CAAC,IAAa,EAAE,KAAgB,EAAE,SAAoB,EAAE,IAAY;QACvE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC/B,CAAC;;AARM,2BAAa,GAAG,MAAM,CAAC;AACvB,kBAAI,GAAG;;;;KAIX,CAAC;AAMN,MAAM,aAAc,SAAQ,kBAAS;IAOnC,KAAK,CAAC,IAAa,EAAE,KAAgB,EAAE,SAAoB,EAAE,IAAY;QACvE,0BAA0B;QAC1B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;;AATM,2BAAa,GAAG,MAAM,CAAC;AACvB,kBAAI,GAAG;;;;KAIX,CAAC;AAON,MAAM,gBAAiB,SAAQ,kBAAS;IAOtC,KAAK,CAAC,IAAa,EAAE,KAAgB,EAAE,SAAoB,EAAE,IAAY;QACvE,gDAAgD;QAChD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;;AAbM,8BAAa,GAAG,KAAK,CAAC;AACtB,qBAAI,GAAG;;;;KAIX,CAAC;AAWN,MAAM,cAAe,SAAQ,kBAAS;IAUpC,KAAK,CAAC,IAAa,EAAE,KAAgB,EAAE,UAAqB,EAAE,KAAa;QACzE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;;AAXM,4BAAa,GAAG,OAAO,CAAC;AAcjC,MAAM,YAAa,SAAQ,kBAAS;IAOlC,KAAK,CAAC,IAAa,EAAE,MAAiB,EAAE,SAAoB,EAAE,KAAa;QACzE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC;;AARM,0BAAa,GAAG,KAAK,CAAC;AACtB,iBAAI,GAAG;;;;KAIX,CAAC;AAMN,MAAM,aAAc,SAAQ,kBAAS;IAOnC,KAAK,CAAC,IAAa,EAAE,KAAgB,EAAE,UAAqB,EAAE,KAAa;QACzE,0BAA0B;QAC1B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;;AATM,2BAAa,GAAG,MAAM,CAAC;AACvB,kBAAI,GAAG;;;;KAIX,CAAC;AAOO,QAAA,iBAAiB,GAAG;IAC/B,aAAa;IACb,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,aAAa;CACd,CAAC"}
1
+ {"version":3,"file":"directives.js","sourceRoot":"","sources":["../src/directives.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -4,15 +4,16 @@ export declare const ERROR_MESSAGES: {
4
4
  FOUND_JSX_IN_INVALID_LOCATION: string;
5
5
  CLASS_METHOD_MUST_BE_PROPERTY_JSX: string;
6
6
  CAPITALISED_COMPONENT_NAME: string;
7
+ CANNOT_USE_IF_ON_ROOT_ELEMENT: string;
8
+ CANNOT_USE_IF_ON_NESTED_OR_REPEATED_ELEMENT: string;
7
9
  NESTED_COMPONENT_MUST_BE_CAPTIALIZED: string;
8
10
  INCORRECTLY_NESTED_COMPONENT: string;
9
11
  ARROW_FUNCTION_NOT_ASSIGNED: string;
10
- PLACEHOLDER_MAY_NOT_BE_EMPTY: string;
12
+ BIND_ONLY_ALLOWED_ON_INPUT: string;
11
13
  PLACEHOLDER_MAY_NOT_BE_LITERAL_OBJECT: string;
12
- INVALID_PLACEHOLDER_EXPRESSION: string;
13
14
  JSX_ELEMENTS_NOT_ALLOWED_IN_EXPRESSIONS: string;
14
15
  UNSUPPORTED_ATTRIBUTE_VALUE: string;
15
- CONDITIONAL_DISPLAY_ALREADY_DEFINED: string;
16
+ VISIBILITY_TOGGLE_DISPLAY_ALREADY_DEFINED: string;
16
17
  REF_ALREADY_DEFINED: string;
17
18
  STUB_ALREADY_DEFINED: string;
18
19
  PROPS_ALREADY_DEFINED: string;
@@ -24,6 +25,7 @@ export declare const ERROR_MESSAGES: {
24
25
  REPEAT_WITHOUT_PARENT: string;
25
26
  REPEAT_DIRECTIVE_WITH_SIBLINGS: string;
26
27
  REPEAT_DIRECTIVE_WITH_CHILDREN: string;
28
+ TOGGLE_TARGETS_WITHOUT_TOGGLE_TRIGGERS: string;
27
29
  UNSUPPORTED_NAMESPACE: string;
28
30
  ILLEGAL_NAMES_IN_PROPS: (names: string[]) => string;
29
31
  ILLEGAL_PARAMETERS: (name: string) => string;
package/dist/errors.js CHANGED
@@ -8,15 +8,16 @@ exports.ERROR_MESSAGES = {
8
8
  FOUND_JSX_IN_INVALID_LOCATION: "Found JSX in invalid location.",
9
9
  CLASS_METHOD_MUST_BE_PROPERTY_JSX: "Function returning JSX in a class must be assigned to property 'jsx'",
10
10
  CAPITALISED_COMPONENT_NAME: "Component name must be capitalized.",
11
+ CANNOT_USE_IF_ON_ROOT_ELEMENT: "Cannot use 'if' on root element.",
12
+ CANNOT_USE_IF_ON_NESTED_OR_REPEATED_ELEMENT: "Cannot use 'if' on nested or repeated element.",
11
13
  NESTED_COMPONENT_MUST_BE_CAPTIALIZED: "Nested component must be capitalized.",
12
14
  INCORRECTLY_NESTED_COMPONENT: "Nest components using <Name.nest /> or <Name.repeat />.",
13
15
  ARROW_FUNCTION_NOT_ASSIGNED: "Component function must be assigned to a variable.",
14
- PLACEHOLDER_MAY_NOT_BE_EMPTY: "Placeholder expressions may not be empty.",
16
+ BIND_ONLY_ALLOWED_ON_INPUT: "The `bind` directive may only be used on `input` tags.",
15
17
  PLACEHOLDER_MAY_NOT_BE_LITERAL_OBJECT: "Literal objects in placeholders not allowed as they will become constants.",
16
- INVALID_PLACEHOLDER_EXPRESSION: "Invalid expressions for a placeholder",
17
18
  JSX_ELEMENTS_NOT_ALLOWED_IN_EXPRESSIONS: "JSX elements are not allowed in expressions.",
18
19
  UNSUPPORTED_ATTRIBUTE_VALUE: "Attribute value must be a string or expression.",
19
- CONDITIONAL_DISPLAY_ALREADY_DEFINED: "Conditional display already defined on element.",
20
+ VISIBILITY_TOGGLE_DISPLAY_ALREADY_DEFINED: "Can only define one visibility toggle on element.",
20
21
  REF_ALREADY_DEFINED: "Ref already defined on element.",
21
22
  STUB_ALREADY_DEFINED: "Stub already defined on element.",
22
23
  PROPS_ALREADY_DEFINED: "Props already defined on element.",
@@ -28,6 +29,7 @@ exports.ERROR_MESSAGES = {
28
29
  REPEAT_WITHOUT_PARENT: "Repeat may only be used under a parent node.",
29
30
  REPEAT_DIRECTIVE_WITH_SIBLINGS: "Repeat may only be used when the parent node has no other children.",
30
31
  REPEAT_DIRECTIVE_WITH_CHILDREN: "Repeat may not have child nodes.",
32
+ TOGGLE_TARGETS_WITHOUT_TOGGLE_TRIGGERS: "Toggle targets must have toggle triggers.",
31
33
  UNSUPPORTED_NAMESPACE: "Unsupported namespace, may only use 'stub'.",
32
34
  ILLEGAL_NAMES_IN_PROPS: (names) => `Illegal names in props: ${names
33
35
  .map((name) => `"${name}"`)
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AA+CA,sBAEC;AAED,wBAQC;AAzDY,QAAA,cAAc,GAAG;IAC5B,8BAA8B,EAAE,iCAAiC;IACjE,6BAA6B,EAAE,gCAAgC;IAC/D,iCAAiC,EAC/B,sEAAsE;IACxE,0BAA0B,EAAE,qCAAqC;IACjE,oCAAoC,EAAE,uCAAuC;IAC7E,4BAA4B,EAC1B,yDAAyD;IAC3D,2BAA2B,EACzB,oDAAoD;IACtD,4BAA4B,EAAE,2CAA2C;IACzE,qCAAqC,EACnC,4EAA4E;IAC9E,8BAA8B,EAAE,uCAAuC;IACvE,uCAAuC,EACrC,8CAA8C;IAChD,2BAA2B,EACzB,iDAAiD;IACnD,mCAAmC,EACjC,iDAAiD;IACnD,mBAAmB,EAAE,iCAAiC;IACtD,oBAAoB,EAAE,kCAAkC;IACxD,qBAAqB,EAAE,mCAAmC;IAC1D,8BAA8B,EAAE,4CAA4C;IAC5E,6BAA6B,EAC3B,kDAAkD;IACpD,yCAAyC,EACvC,4CAA4C;IAC9C,sBAAsB,EAAE,oCAAoC;IAC5D,2BAA2B,EACzB,mDAAmD;IACrD,qBAAqB,EAAE,8CAA8C;IACrE,8BAA8B,EAC5B,qEAAqE;IACvE,8BAA8B,EAAE,kCAAkC;IAClE,qBAAqB,EAAE,6CAA6C;IACpE,sBAAsB,EAAE,CAAC,KAAe,EAAE,EAAE,CAC1C,2BAA2B,KAAK;SAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,4CAA4C;IAC3D,kBAAkB,EAAE,CAAC,IAAY,EAAE,EAAE,CACnC,wBAAwB,IAAI,gEAAgE;CAC/F,CAAC;AAEF,SAAgB,KAAK,CAAC,IAAmB,EAAE,YAAoB;IAC7D,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,MAAM,CACpB,SAAkB,EAClB,IAAmB,EACnB,YAAoB;IAEpB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAoDA,sBAEC;AAED,wBAQC;AA9DY,QAAA,cAAc,GAAG;IAC5B,8BAA8B,EAAE,iCAAiC;IACjE,6BAA6B,EAAE,gCAAgC;IAC/D,iCAAiC,EAC/B,sEAAsE;IACxE,0BAA0B,EAAE,qCAAqC;IACjE,6BAA6B,EAAE,kCAAkC;IACjE,2CAA2C,EACzC,gDAAgD;IAClD,oCAAoC,EAAE,uCAAuC;IAC7E,4BAA4B,EAC1B,yDAAyD;IAC3D,2BAA2B,EACzB,oDAAoD;IACtD,0BAA0B,EACxB,wDAAwD;IAC1D,qCAAqC,EACnC,4EAA4E;IAC9E,uCAAuC,EACrC,8CAA8C;IAChD,2BAA2B,EACzB,iDAAiD;IACnD,yCAAyC,EACvC,mDAAmD;IACrD,mBAAmB,EAAE,iCAAiC;IACtD,oBAAoB,EAAE,kCAAkC;IACxD,qBAAqB,EAAE,mCAAmC;IAC1D,8BAA8B,EAAE,4CAA4C;IAC5E,6BAA6B,EAC3B,kDAAkD;IACpD,yCAAyC,EACvC,4CAA4C;IAC9C,sBAAsB,EAAE,oCAAoC;IAC5D,2BAA2B,EACzB,mDAAmD;IACrD,qBAAqB,EAAE,8CAA8C;IACrE,8BAA8B,EAC5B,qEAAqE;IACvE,8BAA8B,EAAE,kCAAkC;IAClE,sCAAsC,EACpC,2CAA2C;IAC7C,qBAAqB,EAAE,6CAA6C;IACpE,sBAAsB,EAAE,CAAC,KAAe,EAAE,EAAE,CAC1C,2BAA2B,KAAK;SAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,4CAA4C;IAC3D,kBAAkB,EAAE,CAAC,IAAY,EAAE,EAAE,CACnC,wBAAwB,IAAI,gEAAgE;CAC/F,CAAC;AAEF,SAAgB,KAAK,CAAC,IAAmB,EAAE,YAAoB;IAC7D,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,MAAM,CACpB,SAAkB,EAClB,IAAmB,EACnB,YAAoB;IAEpB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -71,8 +71,10 @@ class Component {
71
71
  processJSXExpressionInText(path, tracker) {
72
72
  __classPrivateFieldGet(this, _Component_instances, "m", _Component_enterLevel).call(this, tracker.childIndex);
73
73
  const expression = (0, ast_helpers_1.getPlaceholderExpression)(path, path.node.expression);
74
- const extractedNode = new node_1.DynamicTextNode(path, __classPrivateFieldGet(this, _Component_instances, "m", _Component_getCurrentAddress).call(this), tracker.parent, expression);
75
- __classPrivateFieldGet(this, _Component_instances, "m", _Component_addNode).call(this, extractedNode, path, tracker);
74
+ if (expression) {
75
+ const extractedNode = new node_1.DynamicTextNode(path, __classPrivateFieldGet(this, _Component_instances, "m", _Component_getCurrentAddress).call(this), tracker.parent, expression);
76
+ __classPrivateFieldGet(this, _Component_instances, "m", _Component_addNode).call(this, extractedNode, path, tracker);
77
+ }
76
78
  __classPrivateFieldGet(this, _Component_instances, "m", _Component_exitLevel).call(this);
77
79
  }
78
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/models/component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/models/component.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Module } from "./module";
2
2
  import { Directive, NodeValue, Qualifier } from "./directive";
3
3
  import { Component, WalkTracker } from "./component";
4
- import { ExtractedNode, TagNode, DynamicTextNode, PlainTextNode } from "./node";
5
- export { Component, Directive, NodeValue, ExtractedNode, TagNode, DynamicTextNode, PlainTextNode, Module, Qualifier, WalkTracker, };
4
+ import { ExtractedNode, TagNode, DynamicTextNode, PlainTextNode, VisibilityToggle } from "./node";
5
+ export { Component, VisibilityToggle, Directive, NodeValue, ExtractedNode, TagNode, DynamicTextNode, PlainTextNode, Module, Qualifier, WalkTracker, };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAahC,uFAbO,eAAM,OAaP;AAZR,2CAA8D;AAM5D,0FANO,qBAAS,OAMP;AALX,2CAAqD;AAInD,0FAJO,qBAAS,OAIP;AAHX,iCAAgF;AAM9E,8FANO,oBAAa,OAMP;AACb,wFAPsB,cAAO,OAOtB;AACP,gGAR+B,sBAAe,OAQ/B;AACf,8FATgD,oBAAa,OAShD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAoBhC,uFApBO,eAAM,OAoBP;AAnBR,2CAA8D;AAa5D,0FAbO,qBAAS,OAaP;AAZX,2CAAqD;AAUnD,0FAVO,qBAAS,OAUP;AATX,iCAMgB;AAOd,8FAZA,oBAAa,OAYA;AACb,wFAZA,cAAO,OAYA;AACP,gGAZA,sBAAe,OAYA;AACf,8FAZA,oBAAa,OAYA"}
@@ -17,9 +17,22 @@ interface EventListener {
17
17
  eventName: string;
18
18
  callback: Expression;
19
19
  }
20
- interface ConditionalDisplay {
20
+ interface BindInstruction {
21
+ eventName: string;
22
+ expression: Expression;
23
+ }
24
+ export interface VisibilityToggle {
21
25
  expression: Expression;
22
26
  reverse: boolean;
27
+ detach: boolean;
28
+ }
29
+ interface ToggleTrigger {
30
+ name: string;
31
+ expression: Expression;
32
+ }
33
+ interface ToggleTarget {
34
+ name: string;
35
+ value: Expression | string;
23
36
  }
24
37
  type ValidElementType = JSXElement | JSXExpressionContainer | JSXText;
25
38
  export declare class ExtractedNode {
@@ -27,6 +40,8 @@ export declare class ExtractedNode {
27
40
  component: any;
28
41
  tagName: string;
29
42
  element: HTMLElement | Text | undefined;
43
+ elementKey: string | undefined;
44
+ detacherStashKey: number | undefined;
30
45
  isRepeatedNode: boolean;
31
46
  repeatNode: ExtractedNode | undefined;
32
47
  address: Array<number>;
@@ -34,18 +49,32 @@ export declare class ExtractedNode {
34
49
  parent: TagNode;
35
50
  watches: Watch[];
36
51
  eventListeners: EventListener[];
52
+ bindInstructions: BindInstruction[];
37
53
  isNestedClass: boolean;
54
+ hasConditionalChildren: boolean;
38
55
  repeatExpression: Expression | undefined;
39
56
  poolExpression: Expression | undefined;
57
+ /**
58
+ * The sets of classes that may be toggled.
59
+ */
60
+ toggleTargets: ToggleTarget[];
61
+ /**
62
+ * The triggers that cause the classes to be toggled.
63
+ */
64
+ toggleTriggers: ToggleTrigger[];
40
65
  constructor(address: Array<number>, path: NodePath<ValidElementType>, parent: TagNode);
41
66
  getElement(): HTMLElement | Text;
42
67
  addEventListener(eventName: string, callback: Expression): void;
68
+ addBindInstruction(eventName: string, expression: Expression): void;
69
+ addWatch(expression: Expression, callback: string): void;
70
+ addToggleTrigger(name: string, expression: Expression): void;
71
+ addToggleTarget(name: string, value: Expression | string): void;
43
72
  watchAttribute(attName: string, expression: Expression): void;
44
73
  watchText(expression: Expression): void;
45
74
  setProps(expression: Expression): void;
46
75
  getProps(): Expression | undefined;
47
- setConditionalDisplay(expression: Expression, reverse: boolean): void;
48
- getShieldInfo(): ConditionalDisplay | undefined;
76
+ setVisibilityToggle(expression: Expression, reverse: boolean, detach: boolean): void;
77
+ getVisibilityToggle(): VisibilityToggle | undefined;
49
78
  setRef(name: string): void;
50
79
  getRef(): string | undefined;
51
80
  setRepeatExpression(expression: Expression): void;