dothtml 6.0.0-beta.4 → 6.0.0-beta.40

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 (110) hide show
  1. package/build_module/css/css-props.d.ts +8 -0
  2. package/build_module/css/css-props.js +40 -0
  3. package/build_module/css/css-props.js.map +1 -0
  4. package/build_module/css/css.js +1 -0
  5. package/build_module/css/css.js.map +1 -0
  6. package/build_module/css/format-css-type.d.ts +5 -0
  7. package/build_module/css/format-css-type.js +73 -0
  8. package/build_module/css/format-css-type.js.map +1 -0
  9. package/build_module/decoration/component.d.ts +9 -20
  10. package/build_module/decoration/component.js +20 -17
  11. package/build_module/decoration/component.js.map +1 -1
  12. package/build_module/decoration/use-styles.d.ts +14 -0
  13. package/build_module/decoration/use-styles.js +19 -0
  14. package/build_module/decoration/use-styles.js.map +1 -0
  15. package/build_module/dot.js +174 -349
  16. package/build_module/dot.js.map +1 -1
  17. package/build_module/helpers/render-css.d.ts +2 -0
  18. package/build_module/helpers/render-css.js +20 -0
  19. package/build_module/helpers/render-css.js.map +1 -0
  20. package/build_module/helpers/render-stylesheet.d.ts +2 -0
  21. package/build_module/helpers/render-stylesheet.js +27 -0
  22. package/build_module/helpers/render-stylesheet.js.map +1 -0
  23. package/build_module/helpers/tools.d.ts +3 -0
  24. package/build_module/helpers/tools.js +50 -0
  25. package/build_module/helpers/tools.js.map +1 -0
  26. package/build_module/helpers.d.ts +1 -0
  27. package/build_module/helpers.js +1 -0
  28. package/build_module/helpers.js.map +1 -1
  29. package/build_module/index.js +1 -0
  30. package/build_module/index.js.map +1 -1
  31. package/build_module/reactive.d.ts +10 -1
  32. package/build_module/reactive.js +34 -4
  33. package/build_module/reactive.js.map +1 -1
  34. package/build_module/reactivity/binding.d.ts +13 -0
  35. package/build_module/reactivity/binding.js +20 -0
  36. package/build_module/reactivity/binding.js.map +1 -0
  37. package/build_module/reactivity/bound-reactive.d.ts +13 -0
  38. package/build_module/reactivity/bound-reactive.js +20 -0
  39. package/build_module/reactivity/bound-reactive.js.map +1 -0
  40. package/build_module/reactivity/reactive-attr.d.ts +6 -0
  41. package/build_module/reactivity/reactive-attr.js +7 -0
  42. package/build_module/reactivity/reactive-attr.js.map +1 -0
  43. package/build_module/reactivity/reactive-style.d.ts +6 -0
  44. package/build_module/reactivity/reactive-style.js +7 -0
  45. package/build_module/reactivity/reactive-style.js.map +1 -0
  46. package/build_module/reactivity/reactive.d.ts +22 -0
  47. package/build_module/reactivity/reactive.js +54 -0
  48. package/build_module/reactivity/reactive.js.map +1 -0
  49. package/build_module/reactivity/subscription.d.ts +7 -0
  50. package/build_module/reactivity/subscription.js +41 -0
  51. package/build_module/reactivity/subscription.js.map +1 -0
  52. package/build_module/reactivity/watcher.d.ts +22 -0
  53. package/build_module/reactivity/watcher.js +61 -0
  54. package/build_module/reactivity/watcher.js.map +1 -0
  55. package/build_module/v-meta-nodes/attribute-v-node.d.ts +12 -0
  56. package/build_module/v-meta-nodes/attribute-v-node.js +53 -0
  57. package/build_module/v-meta-nodes/attribute-v-node.js.map +1 -0
  58. package/build_module/v-meta-nodes/style-v-node.d.ts +16 -0
  59. package/build_module/v-meta-nodes/style-v-node.js +135 -0
  60. package/build_module/v-meta-nodes/style-v-node.js.map +1 -0
  61. package/build_module/v-meta-nodes/v-meta-node.d.ts +5 -0
  62. package/build_module/v-meta-nodes/v-meta-node.js +3 -0
  63. package/build_module/v-meta-nodes/v-meta-node.js.map +1 -0
  64. package/build_module/v-style-nodes/base-v-style.d.ts +14 -0
  65. package/build_module/v-style-nodes/base-v-style.js +113 -0
  66. package/build_module/v-style-nodes/base-v-style.js.map +1 -0
  67. package/build_module/v-style-nodes/css-function-builder-v-style.d.ts +17 -0
  68. package/build_module/v-style-nodes/css-function-builder-v-style.js +28 -0
  69. package/build_module/v-style-nodes/css-function-builder-v-style.js.map +1 -0
  70. package/build_module/v-style-nodes/filter-v-style.d.ts +13 -0
  71. package/build_module/v-style-nodes/filter-v-style.js +35 -0
  72. package/build_module/v-style-nodes/filter-v-style.js.map +1 -0
  73. package/build_module/v-style-nodes/transform-v-style.d.ts +28 -0
  74. package/build_module/v-style-nodes/transform-v-style.js +76 -0
  75. package/build_module/v-style-nodes/transform-v-style.js.map +1 -0
  76. package/build_module/v-style-nodes/v-style.d.ts +6 -0
  77. package/build_module/v-style-nodes/v-style.js +6 -0
  78. package/build_module/v-style-nodes/v-style.js.map +1 -0
  79. package/build_module/vdom-nodes/collection-vdom.d.ts +3 -3
  80. package/build_module/vdom-nodes/collection-vdom.js +18 -15
  81. package/build_module/vdom-nodes/collection-vdom.js.map +1 -1
  82. package/build_module/vdom-nodes/component-vdom.d.ts +3 -4
  83. package/build_module/vdom-nodes/component-vdom.js +56 -15
  84. package/build_module/vdom-nodes/component-vdom.js.map +1 -1
  85. package/build_module/vdom-nodes/conditional-vdom.d.ts +4 -3
  86. package/build_module/vdom-nodes/conditional-vdom.js +35 -34
  87. package/build_module/vdom-nodes/conditional-vdom.js.map +1 -1
  88. package/build_module/vdom-nodes/container-vdom.d.ts +12 -8
  89. package/build_module/vdom-nodes/container-vdom.js +35 -11
  90. package/build_module/vdom-nodes/container-vdom.js.map +1 -1
  91. package/build_module/vdom-nodes/element-vdom.d.ts +10 -1
  92. package/build_module/vdom-nodes/element-vdom.js +71 -10
  93. package/build_module/vdom-nodes/element-vdom.js.map +1 -1
  94. package/build_module/vdom-nodes/html-vdom.d.ts +3 -3
  95. package/build_module/vdom-nodes/html-vdom.js +8 -8
  96. package/build_module/vdom-nodes/html-vdom.js.map +1 -1
  97. package/build_module/vdom-nodes/text-vdom.d.ts +3 -3
  98. package/build_module/vdom-nodes/text-vdom.js +7 -7
  99. package/build_module/vdom-nodes/text-vdom.js.map +1 -1
  100. package/build_module/vdom-nodes/vdom.d.ts +3 -0
  101. package/build_module/vdom-nodes/vdom.js +13 -0
  102. package/build_module/vdom-nodes/vdom.js.map +1 -1
  103. package/build_module/window-wrapper.d.ts +20 -0
  104. package/build_module/window-wrapper.js +39 -0
  105. package/build_module/window-wrapper.js.map +1 -0
  106. package/package.json +4 -3
  107. package/readme.md +1 -1
  108. package/build_module/decoration/style.js +0 -1
  109. package/build_module/decoration/style.js.map +0 -1
  110. /package/build_module/{decoration/style.d.ts → css/css.d.ts} +0 -0
@@ -0,0 +1,8 @@
1
+ type CssRule = {
2
+ dotName: string;
3
+ cssName: string;
4
+ type: string;
5
+ unit: string;
6
+ };
7
+ declare const cssProps: Record<string, CssRule>;
8
+ export default cssProps;
@@ -0,0 +1,40 @@
1
+ const allProps = {
2
+ color: "color|background-Color|border-Bottom-Color|border-Color|border-Left-Color|border-Right-Color|border-Top-Color|text-Decoration-Color|outline-Color|column-Rule-Color",
3
+ length: "background-Size|block-Size|border-Bottom-Left-Radius|border-Bottom-Right-Radius|border-Bottom-Width|border-Image-Width|border-Left-Width|border-Radius|border-Right-Width|border-Top-Left-Radius|border-Top-Right-Radius|border-Top-Width|border-Width|bottom|gap|height|left|margin|margin-Bottom|margin-Left|margin-Right|margin-Top|max-Height|max-Width|min-Height|min-Width|padding|padding-Bottom|padding-Left|padding-Right|padding-Top|right|top|width|line-Height|flex-Basis|font-Size|text-Indent",
4
+ url: "background-Image|border-Image|list-Style-Image|content|image-Orientation",
5
+ transformation: "transform",
6
+ filter: "filter|backdrop-Filter",
7
+ misc: "appearance|aspect-Ratio|opacity|background|background-Attachment|background-Blend-Mode|background-Position|background-Repeat|background-Clip|background-Origin|border|border-Bottom|border-Bottom-Style|border-Image-Outset|border-Image-Repeat|border-Image-Slice|border-Image-Source|border-Left|border-Left-Style|border-Right|border-Right-Style|border-Style|border-Top|border-Top-Style|box-Decoration-Break|box-Shadow|clear|clip|display|float|overflow|box|overflow-X|overflow-Y|position|visibility|vertical-Align|z-Index|align-Content|align-Items|align-Self|flex|flex-Basis|flex-Direction|flex-Flow|flex-Grow|flex-Shrink|flex-Wrap|grid|grid-Area|grid-Auto-Columns|grid-auto-Rows|grid-Column|grid-Column-End|grid-Column-Gap|grid-Column-Start|grid-Gap|grid-Row|grid-Row-End|grid-Row-Gap|grid-Row-Start|grid-Template|grid-Template-Areas|grid-Template-Columns|grid-Template-Rows|justify-Content|order|hanging-Punctuation|hyphens|letter-Spacing|line-Break|overflow-Wrap|tab-Size|text-Align|text-Align-Last|text-Combine-Upright|text-Justify|text-Transform|white-Space|word-Break|word-Spacing|word-Wrap|text-Decoration|text-Decoration-Line|text-Decoration-Style|text-Shadow|text-Underline-Position|font|font-Family|font-Feature-Settings|font-Kerning|font-Language-Override|font-Size-Adjust|font-Stretch|font-Style|font-Synthesis|font-Variant|font-Variant-Alternates|font-Variant-Caps|font-Variant-East-Asian|font-Variant-Ligatures|font-Variant-Numeric|font-Variant-Position|font-Weight|direction|text-Orientation|text-Combine-Upright|unicode-Bidi|user-Select|writing-Mode|border-Collapse|border-Spacing|caption-Side|empty-Cells|table-Layout|counter-Increment|counter-Reset|list-Style|list-Style-Position|list-Style-Type|animation|animation-Delay|animation-Direction|animation-Duration|animation-Fill-Mode|animation-Iteration-Count|animation-Name|animation-Play-State|animation-Timing-Function|backface-Visibility|perspective2d|perspective-Origin|transform-Origin|transform-Style|transition|transition-Property|transition-Duration|transition-Timing-Function|transition-Delay|box-Sizing|cursor|ime-Mode|nav-Down|nav-Index|nav-Left|nav-Right|nav-Up|outline|outline-Offset|outline-Style|outline-Width|resize|text-Overflow|break-After|break-Before|break-Inside|column-Count|column-Fill|column-Gap|column-Rule|column-Rule-Style|column-Rule-Width|column-Span|column-Width|columns|widows|orphans|page-Break-After|page-Break-Before|page-Break-Inside|marks|quotes|image-Rendering|image-Resolution|object-Fit|object-Position|mask|mask-Type|mark|mark-After|mark-Before|phonemes|rest|rest-After|rest-Before|voice-Balance|voice-Duration|voice-Pitch|voice-Pitch-Range|voice-Rate|voice-Stress|voice-Volume|marquee-Direction|marquee-Play-Count|marquee-Speed|marquee-Style|pointer-Events"
8
+ };
9
+ const lengthSuffixes = "Cm|Mm|In|Px|Pt|Pc|Q|Cap|Ch|Em|Ex|Ic|Lh|Rem|Rlh|Vh|Vw|Vmin|Vmax|Vb|Vi|Cqw|Cqh|Cqi|Cqb|Cqmin|Cqmax|P".split("|");
10
+ const cssProps = {};
11
+ for (let cssType in allProps) {
12
+ let props = allProps[cssType].split("|");
13
+ for (let p of props) {
14
+ let key = p.split("-").join("");
15
+ switch (cssType) {
16
+ case "length": {
17
+ for (let s of lengthSuffixes) {
18
+ cssProps[`${key}${s}`] = {
19
+ dotName: key,
20
+ cssName: p.toLowerCase(),
21
+ type: cssType,
22
+ unit: s == "P" ? "%" : s.toLowerCase()
23
+ };
24
+ }
25
+ break;
26
+ }
27
+ default: {
28
+ break;
29
+ }
30
+ }
31
+ cssProps[key] = {
32
+ dotName: key,
33
+ cssName: p.toLowerCase(),
34
+ type: cssType,
35
+ unit: undefined
36
+ };
37
+ }
38
+ }
39
+ export default cssProps;
40
+ //# sourceMappingURL=css-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css-props.js","sourceRoot":"","sources":["../../src/css/css-props.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAAG;IAChB,KAAK,EAAE,qKAAqK;IAC5K,MAAM,EAAE,6eAA6e;IACrf,GAAG,EAAE,0EAA0E;IAC/E,cAAc,EAAE,WAAW;IAC3B,MAAM,EAAE,wBAAwB;IAChC,IAAI,EAAE,wsFAAwsF;CAC9sF,CAAA;AAED,MAAM,cAAc,GAAG,oGAAoG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAWvI,MAAM,QAAQ,GAA4B,EAAE,CAAC;AAE7C,KAAI,IAAI,OAAO,IAAI,QAAQ,EAAC;IAC3B,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzC,KAAI,IAAI,CAAC,IAAI,KAAK,EAAC;QAClB,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,QAAO,OAAO,EAAC;YACd,KAAK,QAAQ,CAAC,CAAC;gBACd,KAAI,IAAI,CAAC,IAAI,cAAc,EAAC;oBAC3B,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG;wBACxB,OAAO,EAAE,GAAG;wBACZ,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE;wBACxB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;qBACtC,CAAC;iBACF;gBACD,MAAM;aACN;YACD,OAAO,CAAC,CAAC;gBACR,MAAM;aACN;SACD;QAED,QAAQ,CAAC,GAAG,CAAC,GAAG;YACf,OAAO,EAAE,GAAG;YACZ,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE;YACxB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,SAAS;SACf,CAAC;KACF;CACD;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css.js","sourceRoot":"","sources":["../../src/css/css.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import Binding from "../reactivity/binding";
2
+ export declare function formatCssLength(value: string | number | Binding | Array<string | number | Binding>, defaultUnits?: string): any;
3
+ export declare function formatCssPercentage(value: string | number | Binding | Array<string | number | Binding>): any;
4
+ export declare function formatCssColor(value: string | number): string;
5
+ export declare function formatCssAngle(value: string | number | Binding | Array<string | number | Binding>): any;
@@ -0,0 +1,73 @@
1
+ import { floatRegex } from "../helpers/tools";
2
+ import Binding from "../reactivity/binding";
3
+ export function formatCssLength(value, defaultUnits = "px") {
4
+ value = value || "0px";
5
+ if (value instanceof Binding)
6
+ value = value._get();
7
+ if (value instanceof Array) {
8
+ return value.map(v => formatCssLength(v, defaultUnits)).join(" ");
9
+ }
10
+ if (!isNaN(value))
11
+ value = Math.round(value) + defaultUnits;
12
+ let tokens = value.trim().split(" ");
13
+ if (tokens.length > 1) {
14
+ return tokens.map(t => formatCssLength(t, defaultUnits)).join(" ");
15
+ }
16
+ else {
17
+ let length = Number(value.match(floatRegex)[0]);
18
+ let units = value.split(floatRegex)[1] || defaultUnits;
19
+ return `${length}${units}`;
20
+ }
21
+ }
22
+ export function formatCssPercentage(value) {
23
+ value = value || "0%";
24
+ if (value instanceof Binding)
25
+ value = value._get();
26
+ if (value instanceof Array) {
27
+ return value.map(v => formatCssPercentage(v)).join(" ");
28
+ }
29
+ let tokens = value.trim().split(" ");
30
+ if (tokens.length > 1) {
31
+ return tokens.map(t => formatCssPercentage(t)).join(" ");
32
+ }
33
+ else {
34
+ return isNaN(value) ? value : `${value}%`;
35
+ }
36
+ }
37
+ export function formatCssColor(value) {
38
+ if (typeof value == "number") {
39
+ let r = 0;
40
+ let g = 0;
41
+ let b = 0;
42
+ let a = 1;
43
+ b = value & 0xFF;
44
+ value >>= 8;
45
+ g = value & 0xFF;
46
+ value >>= 8;
47
+ r = value & 0xFF;
48
+ return `rgb(${r} ${g} ${b})`;
49
+ }
50
+ else if (typeof value == "string") {
51
+ return value;
52
+ }
53
+ }
54
+ export function formatCssAngle(value) {
55
+ value = value || "0deg";
56
+ if (value instanceof Binding)
57
+ value = value._get();
58
+ if (value instanceof Array) {
59
+ return value.map(v => formatCssAngle(v)).join(" ");
60
+ }
61
+ if (!isNaN(value))
62
+ value = `${Math.round(value)}deg`;
63
+ let tokens = value.trim().split(" ");
64
+ if (tokens.length > 1) {
65
+ return tokens.map(t => formatCssAngle(t)).join(" ");
66
+ }
67
+ else {
68
+ let angle = Number(value.match(floatRegex)[0]);
69
+ let units = value.split(floatRegex)[1] || "deg";
70
+ return `${angle}${units}`;
71
+ }
72
+ }
73
+ //# sourceMappingURL=format-css-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-css-type.js","sourceRoot":"","sources":["../../src/css/format-css-type.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,14 @@
1
- import { IComponent } from "dothtml-interfaces";
2
- export declare function component(Base: new (...args: Array<any>) => IComponent): {
1
+ import { FrameworkItems, IComponent } from "dothtml-interfaces";
2
+ export declare function component(Base: new (...args: Array<any>) => IComponent, styles?: Array<string>): {
3
3
  new (...args: any[]): {
4
- _: {
5
- root: any;
6
- refs: any;
7
- emit: any;
8
- restyle: () => void;
9
- _meta: {
10
- isRendered: boolean;
11
- tagName: string;
12
- args: any[];
13
- sharedStyles: CSSStyleSheet;
14
- };
15
- };
16
- events?: string[];
17
- build(...args: any[]): import("dothtml-interfaces").IDotGenericElement;
18
- style?(css: import("dothtml-interfaces").IDotCss): void;
19
- creating?(...args: any[]): void;
20
- ready?(): void;
4
+ _: FrameworkItems;
5
+ build(): import("dothtml-interfaces").IDotDocument;
6
+ built?(): void;
7
+ mounting?(): void;
8
+ mounted?(): void;
9
+ unmounting?(): void;
10
+ unmounted?(): void;
21
11
  deleting?(): void;
22
12
  deleted?(): void;
23
- built?(): void;
24
13
  };
25
14
  };
@@ -1,30 +1,33 @@
1
1
  let tagId = 0x10000;
2
2
  function restyle(c) {
3
- if (c._.root) {
4
- let root = c._.root;
3
+ if (c._._meta.shadowRoot && c._?._meta?.sharedStyles) {
4
+ c._._meta.shadowRoot.adoptedStyleSheets = c._._meta.sharedStyles;
5
5
  }
6
6
  }
7
- export function component(Base) {
7
+ const documentStyles = {
8
+ default: {}
9
+ };
10
+ export function component(Base, styles = []) {
11
+ if (typeof styles == "string") {
12
+ styles = [styles];
13
+ }
8
14
  let ts = (Math.floor(performance.now() * 10000000000000)).toString(16);
9
15
  let tId = (tagId++).toString(16);
10
16
  let tagName = `dothtml-${tId}${component["_addTimestamp"] ? `-${ts}` : ""}`;
11
- let sharedStyles = new CSSStyleSheet();
12
17
  return class extends Base {
13
18
  constructor(...args) {
14
- super(...args);
15
- this._ = {
16
- root: null,
17
- refs: null,
18
- emit: null,
19
- restyle: () => { restyle(this); },
20
- _meta: {
21
- isRendered: false,
22
- tagName: tagName,
23
- args: null,
24
- sharedStyles: sharedStyles
25
- }
26
- };
19
+ super();
20
+ if (!this._) {
21
+ this._ = {};
22
+ }
23
+ this._.refs = {};
24
+ this._.props = args[0] || {};
25
+ this._.restyle = () => { restyle(this); };
26
+ this._._meta = this._._meta || {};
27
27
  this._._meta.args = args;
28
+ this._._meta.isRendered = false;
29
+ this._._meta.tagName = tagName;
30
+ this._._meta.styles = styles;
28
31
  }
29
32
  };
30
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/decoration/component.ts"],"names":[],"mappings":"AAEA,IAAI,KAAK,GAAG,OAAO,CAAC;AAEpB,SAAS,OAAO,CAAC,CAAC;IACjB,IAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAC;QACX,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAkB,CAAC;KAElC;AACF,CAAC;AAID,MAAM,UAAU,SAAS,CAAC,IAAyC;IAElE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrE,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,OAAO,GAAG,WAAW,GAAG,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC5E,IAAI,YAAY,GAAG,IAAI,aAAa,EAAE,CAAC;IAGvC,OAAO,KAAM,SAAQ,IAAI;QAcxB,YAAY,GAAG,IAAW;YACzB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAdhB,MAAC,GAAG;gBACH,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,GAAE,EAAE,GAAC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA,CAAC;gBAC5B,KAAK,EAAE;oBACN,UAAU,EAAE,KAAK;oBACjB,OAAO,EAAE,OAAO;oBAChB,IAAI,EAAE,IAAkB;oBACxB,YAAY,EAAE,YAAY;iBAC1B;aACD,CAAC;YAKD,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAC1B,CAAC;KACD,CAAA;AACF,CAAC;AAED,SAAS,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/decoration/component.ts"],"names":[],"mappings":"AAGA,IAAI,KAAK,GAAG,OAAO,CAAC;AAEpB,SAAS,OAAO,CAAC,CAAa;IAC7B,IAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAC;QACnD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;KAGjE;AACF,CAAC;AAED,MAAM,cAAc,GAAG;IACtB,OAAO,EAAE,EAAE;CACX,CAAC;AAKF,MAAM,UAAU,SAAS,CAAC,IAAyC,EAAE,SAAwB,EAAE;IAE9F,IAAG,OAAO,MAAM,IAAI,QAAQ,EAAC;QAC5B,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;KAClB;IAED,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrE,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,OAAO,GAAG,WAAW,GAAG,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAoB5E,OAAO,KAAM,SAAQ,IAAI;QAIxB,YAAY,GAAG,IAAW;YACzB,KAAK,EAAE,CAAC;YAER,IAAG,CAAC,IAAI,CAAC,CAAC,EAAC;gBACT,IAAI,CAAC,CAAS,GAAG,EAAE,CAAC;aACrB;YACA,IAAI,CAAC,CAAC,CAAC,IAAY,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,CAAC,KAAa,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,CAAC,CAAC,OAAe,GAAG,GAAE,EAAE,GAAC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA,CAAC,CAAC;YAC7C,IAAI,CAAC,CAAC,CAAC,KAAa,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAY,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,UAAkB,GAAG,KAAK,CAAC;YACxC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAe,GAAG,OAAO,CAAC;YACvC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAc,GAAG,MAAM,CAAC;QAWvC,CAAC;KACD,CAAA;AACF,CAAC;AAED,SAAS,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { FrameworkItems, IComponent } from "dothtml-interfaces";
2
+ export declare function useStyles(styleCallback: any, document?: Document): (Base: new (...args: Array<any>) => IComponent) => {
3
+ new (...args: any[]): {
4
+ _: FrameworkItems;
5
+ build(): import("dothtml-interfaces").IDotDocument;
6
+ built?(): void;
7
+ mounting?(): void;
8
+ mounted?(): void;
9
+ unmounting?(): void;
10
+ unmounted?(): void;
11
+ deleting?(): void;
12
+ deleted?(): void;
13
+ };
14
+ };
@@ -0,0 +1,19 @@
1
+ import renderStylesheet from "../helpers/render-stylesheet";
2
+ export function useStyles(styleCallback, document = window.document) {
3
+ let sharedStyles = renderStylesheet(styleCallback, document);
4
+ return function (Base) {
5
+ return class extends Base {
6
+ constructor(...args) {
7
+ super(...args);
8
+ if (!this._) {
9
+ this._ = { _meta: {} };
10
+ }
11
+ if (!this._._meta.sharedStyles) {
12
+ this._._meta.sharedStyles = [];
13
+ }
14
+ this._._meta.sharedStyles.push(sharedStyles);
15
+ }
16
+ };
17
+ };
18
+ }
19
+ //# sourceMappingURL=use-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-styles.js","sourceRoot":"","sources":["../../src/decoration/use-styles.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,8BAA8B,CAAC;AAK5D,MAAM,UAAU,SAAS,CAAC,aAAa,EAAE,WAAqB,MAAM,CAAC,QAAQ;IAE5E,IAAI,YAAY,GAAG,gBAAgB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAE7D,OAAO,UAAS,IAAyC;QAGxD,OAAO,KAAM,SAAQ,IAAI;YAIxB,YAAY,GAAG,IAAW;gBACzB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;gBACf,IAAG,CAAC,IAAI,CAAC,CAAC,EAAC;oBACT,IAAI,CAAC,CAAS,GAAG,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC;iBAC9B;gBACD,IAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAC;oBAC5B,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAoB,GAAG,EAAE,CAAC;iBACxC;gBACD,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,YAAmB,CAAC,CAAC;YACrD,CAAC;SACD,CAAA;IACF,CAAC,CAAA;AACF,CAAC"}