dothtml 6.0.0-beta.2 → 6.0.0-beta.20

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 (62) 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 +4 -0
  7. package/build_module/css/format-css-type.js +66 -0
  8. package/build_module/css/format-css-type.js.map +1 -0
  9. package/build_module/decoration/component.d.ts +5 -17
  10. package/build_module/decoration/component.js +29 -17
  11. package/build_module/decoration/component.js.map +1 -1
  12. package/build_module/decoration/use-styles.d.ts +13 -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 +164 -301
  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 +19 -0
  19. package/build_module/helpers/render-css.js.map +1 -0
  20. package/build_module/helpers.d.ts +1 -0
  21. package/build_module/helpers.js +1 -0
  22. package/build_module/helpers.js.map +1 -1
  23. package/build_module/reactive.d.ts +10 -1
  24. package/build_module/reactive.js +34 -4
  25. package/build_module/reactive.js.map +1 -1
  26. package/build_module/v-meta-nodes/attribute-v-node.d.ts +12 -0
  27. package/build_module/v-meta-nodes/attribute-v-node.js +48 -0
  28. package/build_module/v-meta-nodes/attribute-v-node.js.map +1 -0
  29. package/build_module/v-meta-nodes/style-v-node.d.ts +16 -0
  30. package/build_module/v-meta-nodes/style-v-node.js +125 -0
  31. package/build_module/v-meta-nodes/style-v-node.js.map +1 -0
  32. package/build_module/v-meta-nodes/v-meta-node.d.ts +5 -0
  33. package/build_module/v-meta-nodes/v-meta-node.js +3 -0
  34. package/build_module/v-meta-nodes/v-meta-node.js.map +1 -0
  35. package/build_module/v-style-nodes/base-v-style.d.ts +14 -0
  36. package/build_module/v-style-nodes/base-v-style.js +112 -0
  37. package/build_module/v-style-nodes/base-v-style.js.map +1 -0
  38. package/build_module/v-style-nodes/css-function-builder-v-style.d.ts +17 -0
  39. package/build_module/v-style-nodes/css-function-builder-v-style.js +28 -0
  40. package/build_module/v-style-nodes/css-function-builder-v-style.js.map +1 -0
  41. package/build_module/v-style-nodes/filter-v-style.d.ts +13 -0
  42. package/build_module/v-style-nodes/filter-v-style.js +35 -0
  43. package/build_module/v-style-nodes/filter-v-style.js.map +1 -0
  44. package/build_module/v-style-nodes/transform-v-style.d.ts +28 -0
  45. package/build_module/v-style-nodes/transform-v-style.js +76 -0
  46. package/build_module/v-style-nodes/transform-v-style.js.map +1 -0
  47. package/build_module/v-style-nodes/v-style.d.ts +6 -0
  48. package/build_module/v-style-nodes/v-style.js +6 -0
  49. package/build_module/v-style-nodes/v-style.js.map +1 -0
  50. package/build_module/vdom-nodes/component-vdom.js +6 -5
  51. package/build_module/vdom-nodes/component-vdom.js.map +1 -1
  52. package/build_module/vdom-nodes/container-vdom.d.ts +2 -0
  53. package/build_module/vdom-nodes/container-vdom.js +12 -0
  54. package/build_module/vdom-nodes/container-vdom.js.map +1 -1
  55. package/build_module/vdom-nodes/element-vdom.d.ts +3 -0
  56. package/build_module/vdom-nodes/element-vdom.js +39 -0
  57. package/build_module/vdom-nodes/element-vdom.js.map +1 -1
  58. package/package.json +6 -5
  59. package/readme.md +1 -1
  60. package/build_module/decoration/style.js +0 -1
  61. package/build_module/decoration/style.js.map +0 -1
  62. /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;AASvI,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,4 @@
1
+ export declare function formatCssLength(value: string | number | Array<string | number>, defaultUnits?: string): any;
2
+ export declare function formatCssPercentage(value: string | number | Array<string | number>): any;
3
+ export declare function formatCssColor(value: string | number): string;
4
+ export declare function formatCssAngle(value: string | number | Array<string | number>): any;
@@ -0,0 +1,66 @@
1
+ import { floatRegex } from "../helpers";
2
+ export function formatCssLength(value, defaultUnits = "px") {
3
+ value = value || "0px";
4
+ if (value instanceof Array) {
5
+ return value.map(v => formatCssLength(v, defaultUnits)).join(" ");
6
+ }
7
+ if (!isNaN(value))
8
+ value = Math.round(value) + defaultUnits;
9
+ let tokens = value.trim().split(" ");
10
+ if (tokens.length > 1) {
11
+ return tokens.map(t => formatCssLength(t, defaultUnits)).join(" ");
12
+ }
13
+ else {
14
+ let length = Number(value.match(floatRegex)[0]);
15
+ let units = value.split(floatRegex)[1] || defaultUnits;
16
+ return `${length}${units}`;
17
+ }
18
+ }
19
+ export function formatCssPercentage(value) {
20
+ value = value || "0%";
21
+ if (value instanceof Array) {
22
+ return value.map(v => formatCssPercentage(v)).join(" ");
23
+ }
24
+ let tokens = value.trim().split(" ");
25
+ if (tokens.length > 1) {
26
+ return tokens.map(t => formatCssPercentage(t)).join(" ");
27
+ }
28
+ else {
29
+ return isNaN(value) ? value : `${value}%`;
30
+ }
31
+ }
32
+ export function formatCssColor(value) {
33
+ if (typeof value == "number") {
34
+ let r = 0;
35
+ let g = 0;
36
+ let b = 0;
37
+ let a = 1;
38
+ b = value & 0xFF;
39
+ value >>= 8;
40
+ g = value & 0xFF;
41
+ value >>= 8;
42
+ r = value & 0xFF;
43
+ return `rgb(${r} ${g} ${b})`;
44
+ }
45
+ else if (typeof value == "string") {
46
+ return value;
47
+ }
48
+ }
49
+ export function formatCssAngle(value) {
50
+ value = value || "0deg";
51
+ if (value instanceof Array) {
52
+ return value.map(v => formatCssAngle(v)).join(" ");
53
+ }
54
+ if (!isNaN(value))
55
+ value = `${Math.round(value)}deg`;
56
+ let tokens = value.trim().split(" ");
57
+ if (tokens.length > 1) {
58
+ return tokens.map(t => formatCssAngle(t)).join(" ");
59
+ }
60
+ else {
61
+ let angle = Number(value.match(floatRegex)[0]);
62
+ let units = value.split(floatRegex)[1] || "deg";
63
+ return `${angle}${units}`;
64
+ }
65
+ }
66
+ //# 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,22 +1,10 @@
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: []): {
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;
4
+ _: FrameworkItems;
5
+ build(): import("dothtml-interfaces").IDotDocument;
18
6
  style?(css: import("dothtml-interfaces").IDotCss): void;
19
- creating?(...args: any[]): void;
7
+ creating?(): void;
20
8
  ready?(): void;
21
9
  deleting?(): void;
22
10
  deleted?(): void;
@@ -1,30 +1,42 @@
1
+ import renderCss from "../helpers/render-css";
1
2
  let tagId = 0x10000;
2
3
  function restyle(c) {
3
- if (c._.root) {
4
- let root = c._.root;
4
+ if (c._._meta.shadowRoot && c._?._meta?.sharedStyles) {
5
+ c._._meta.shadowRoot.adoptedStyleSheets = c._._meta.sharedStyles;
5
6
  }
6
7
  }
7
- export function component(Base) {
8
+ export function component(Base, styles) {
8
9
  let ts = (Math.floor(performance.now() * 10000000000000)).toString(16);
9
10
  let tId = (tagId++).toString(16);
10
11
  let tagName = `dothtml-${tId}${component["_addTimestamp"] ? `-${ts}` : ""}`;
11
- let sharedStyles = new CSSStyleSheet();
12
+ let sharedStyles = null;
13
+ if (styles) {
14
+ sharedStyles = [];
15
+ for (let i = 0; i < styles.length; i++) {
16
+ sharedStyles.push(renderCss(styles[i]));
17
+ }
18
+ }
12
19
  return class extends Base {
13
20
  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
- };
21
+ super();
22
+ if (!this._) {
23
+ this._ = {};
24
+ }
25
+ this._.refs = {};
26
+ this._.props = args[0] || {};
27
+ this._.restyle = () => { restyle(this); };
28
+ this._._meta = this._._meta || {};
27
29
  this._._meta.args = args;
30
+ this._._meta.isRendered = false;
31
+ this._._meta.tagName = tagName;
32
+ if (sharedStyles) {
33
+ if (this._._meta.sharedStyles) {
34
+ this._._meta.sharedStyles = [...this._._meta.sharedStyles, ...sharedStyles];
35
+ }
36
+ else {
37
+ this._._meta.sharedStyles = sharedStyles;
38
+ }
39
+ }
28
40
  }
29
41
  };
30
42
  }
@@ -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":"AACA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAE9C,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,UAAU,SAAS,CAAC,IAAyC,EAAE,MAAU;IAE9E,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;IAE5E,IAAI,YAAY,GAAG,IAAI,CAAC;IAExB,IAAG,MAAM,EAAC;QACT,YAAY,GAAG,EAAE,CAAC;QAClB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACrC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACxC;KACD;IAoBD,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;YAGxC,IAAG,YAAY,EAAC;gBACf,IAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAC;oBAC3B,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAoB,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,YAAY,CAAC,CAAC;iBACrF;qBACG;oBACF,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAoB,GAAG,YAAY,CAAC;iBAClD;aACD;QAEF,CAAC;KACD,CAAA;AACF,CAAC;AAED,SAAS,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { FrameworkItems, IComponent } from "dothtml-interfaces";
2
+ export declare function useStyles(styleCallback: any): (Base: new (...args: Array<any>) => IComponent) => {
3
+ new (...args: any[]): {
4
+ _: FrameworkItems;
5
+ build(): import("dothtml-interfaces").IDotDocument;
6
+ style?(css: import("dothtml-interfaces").IDotCss): void;
7
+ creating?(): void;
8
+ ready?(): void;
9
+ deleting?(): void;
10
+ deleted?(): void;
11
+ built?(): void;
12
+ };
13
+ };
@@ -0,0 +1,19 @@
1
+ import renderCss from "../helpers/render-css";
2
+ export function useStyles(styleCallback) {
3
+ let sharedStyles = renderCss(styleCallback);
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,SAAS,MAAM,uBAAuB,CAAC;AAE9C,MAAM,UAAU,SAAS,CAAC,aAAa;IAEtC,IAAI,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;IAE5C,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,YAAY,CAAC,CAAC;YAC9C,CAAC;SACD,CAAA;IACF,CAAC,CAAA;AACF,CAAC"}