tweak-ui 0.4.3 → 0.5.0

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 (184) hide show
  1. package/LICENSE +7 -7
  2. package/README.md +32 -32
  3. package/dist/lib/builder.d.ts +166 -162
  4. package/dist/lib/builder.d.ts.map +1 -1
  5. package/dist/lib/builder.js +250 -0
  6. package/dist/lib/builder.js.map +1 -0
  7. package/dist/lib/color-formats/array-format.d.ts +8 -8
  8. package/dist/lib/color-formats/array-format.js +18 -0
  9. package/dist/lib/color-formats/array-format.js.map +1 -0
  10. package/dist/lib/color-formats/converter.d.ts +18 -18
  11. package/dist/lib/color-formats/converter.js +85 -0
  12. package/dist/lib/color-formats/converter.js.map +1 -0
  13. package/dist/lib/color-formats/css-string-format.d.ts +7 -7
  14. package/dist/lib/color-formats/css-string-format.js +28 -0
  15. package/dist/lib/color-formats/css-string-format.js.map +1 -0
  16. package/dist/lib/color-formats/formatter.d.ts +8 -8
  17. package/dist/lib/color-formats/formatter.js +35 -0
  18. package/dist/lib/color-formats/formatter.js.map +1 -0
  19. package/dist/lib/color-formats/hex-string-format.d.ts +7 -7
  20. package/dist/lib/color-formats/hex-string-format.js +28 -0
  21. package/dist/lib/color-formats/hex-string-format.js.map +1 -0
  22. package/dist/lib/color-formats/index.d.ts +3 -3
  23. package/dist/lib/color-formats/index.js +4 -0
  24. package/dist/lib/color-formats/index.js.map +1 -0
  25. package/dist/lib/color-formats/number-format.d.ts +8 -8
  26. package/dist/lib/color-formats/number-format.js +23 -0
  27. package/dist/lib/color-formats/number-format.js.map +1 -0
  28. package/dist/lib/color-formats/object-format.d.ts +14 -14
  29. package/dist/lib/color-formats/object-format.js +23 -0
  30. package/dist/lib/color-formats/object-format.js.map +1 -0
  31. package/dist/lib/color-formats/types.d.ts +101 -101
  32. package/dist/lib/color-formats/types.js +2 -0
  33. package/dist/lib/color-formats/types.js.map +1 -0
  34. package/dist/lib/components/button.d.ts +28 -28
  35. package/dist/lib/components/button.d.ts.map +1 -1
  36. package/dist/lib/components/button.js +15 -0
  37. package/dist/lib/components/button.js.map +1 -0
  38. package/dist/lib/components/content.d.ts +21 -21
  39. package/dist/lib/components/content.d.ts.map +1 -1
  40. package/dist/lib/components/content.js +10 -0
  41. package/dist/lib/components/content.js.map +1 -0
  42. package/dist/lib/components/controls/angle.d.ts +51 -51
  43. package/dist/lib/components/controls/angle.d.ts.map +1 -1
  44. package/dist/lib/components/controls/angle.js +201 -0
  45. package/dist/lib/components/controls/angle.js.map +1 -0
  46. package/dist/lib/components/controls/checkbox.d.ts +28 -28
  47. package/dist/lib/components/controls/checkbox.d.ts.map +1 -1
  48. package/dist/lib/components/controls/checkbox.js +31 -0
  49. package/dist/lib/components/controls/checkbox.js.map +1 -0
  50. package/dist/lib/components/controls/color-picker.d.ts +56 -56
  51. package/dist/lib/components/controls/color-picker.d.ts.map +1 -1
  52. package/dist/lib/components/controls/color-picker.js +267 -0
  53. package/dist/lib/components/controls/color-picker.js.map +1 -0
  54. package/dist/lib/components/controls/color.d.ts +51 -51
  55. package/dist/lib/components/controls/color.d.ts.map +1 -1
  56. package/dist/lib/components/controls/color.js +77 -0
  57. package/dist/lib/components/controls/color.js.map +1 -0
  58. package/dist/lib/components/controls/index.d.ts +10 -10
  59. package/dist/lib/components/controls/index.js +11 -0
  60. package/dist/lib/components/controls/index.js.map +1 -0
  61. package/dist/lib/components/controls/number.d.ts +47 -47
  62. package/dist/lib/components/controls/number.d.ts.map +1 -1
  63. package/dist/lib/components/controls/number.js +142 -0
  64. package/dist/lib/components/controls/number.js.map +1 -0
  65. package/dist/lib/components/controls/point.d.ts +47 -47
  66. package/dist/lib/components/controls/point.d.ts.map +1 -1
  67. package/dist/lib/components/controls/point.js +137 -0
  68. package/dist/lib/components/controls/point.js.map +1 -0
  69. package/dist/lib/components/controls/position.d.ts +55 -55
  70. package/dist/lib/components/controls/position.d.ts.map +1 -1
  71. package/dist/lib/components/controls/position.js +36 -0
  72. package/dist/lib/components/controls/position.js.map +1 -0
  73. package/dist/lib/components/controls/select.d.ts +59 -59
  74. package/dist/lib/components/controls/select.d.ts.map +1 -1
  75. package/dist/lib/components/controls/select.js +132 -0
  76. package/dist/lib/components/controls/select.js.map +1 -0
  77. package/dist/lib/components/controls/spherical.d.ts +74 -74
  78. package/dist/lib/components/controls/spherical.d.ts.map +1 -1
  79. package/dist/lib/components/controls/spherical.js +302 -0
  80. package/dist/lib/components/controls/spherical.js.map +1 -0
  81. package/dist/lib/components/controls/text.d.ts +35 -35
  82. package/dist/lib/components/controls/text.d.ts.map +1 -1
  83. package/dist/lib/components/controls/text.js +24 -0
  84. package/dist/lib/components/controls/text.js.map +1 -0
  85. package/dist/lib/components/groups/accordion.d.ts +21 -21
  86. package/dist/lib/components/groups/accordion.d.ts.map +1 -1
  87. package/dist/lib/components/groups/accordion.js +34 -0
  88. package/dist/lib/components/groups/accordion.js.map +1 -0
  89. package/dist/lib/components/groups/container.d.ts +24 -24
  90. package/dist/lib/components/groups/container.d.ts.map +1 -1
  91. package/dist/lib/components/groups/container.js +19 -0
  92. package/dist/lib/components/groups/container.js.map +1 -0
  93. package/dist/lib/components/groups/group.d.ts +48 -48
  94. package/dist/lib/components/groups/group.d.ts.map +1 -1
  95. package/dist/lib/components/groups/group.js +50 -0
  96. package/dist/lib/components/groups/group.js.map +1 -0
  97. package/dist/lib/components/groups/index.d.ts +4 -4
  98. package/dist/lib/components/groups/index.js +5 -0
  99. package/dist/lib/components/groups/index.js.map +1 -0
  100. package/dist/lib/components/groups/tabs.d.ts +21 -21
  101. package/dist/lib/components/groups/tabs.d.ts.map +1 -1
  102. package/dist/lib/components/groups/tabs.js +31 -0
  103. package/dist/lib/components/groups/tabs.js.map +1 -0
  104. package/dist/lib/components/image.d.ts +36 -36
  105. package/dist/lib/components/image.d.ts.map +1 -1
  106. package/dist/lib/components/image.js +46 -0
  107. package/dist/lib/components/image.js.map +1 -0
  108. package/dist/lib/components/index.d.ts +5 -5
  109. package/dist/lib/components/index.js +6 -0
  110. package/dist/lib/components/index.js.map +1 -0
  111. package/dist/lib/core/index.d.ts +4 -4
  112. package/dist/lib/core/index.js +5 -0
  113. package/dist/lib/core/index.js.map +1 -0
  114. package/dist/lib/core/registry.d.ts +17 -17
  115. package/dist/lib/core/registry.js +30 -0
  116. package/dist/lib/core/registry.js.map +1 -0
  117. package/dist/lib/core/render.d.ts +9 -9
  118. package/dist/lib/core/render.d.ts.map +1 -1
  119. package/dist/lib/core/render.js +19 -0
  120. package/dist/lib/core/render.js.map +1 -0
  121. package/dist/lib/core/types.d.ts +87 -87
  122. package/dist/lib/core/types.d.ts.map +1 -1
  123. package/dist/lib/core/types.js +2 -0
  124. package/dist/lib/core/types.js.map +1 -0
  125. package/dist/lib/core/utils.d.ts +93 -93
  126. package/dist/lib/core/utils.d.ts.map +1 -1
  127. package/dist/lib/core/utils.js +193 -0
  128. package/dist/lib/core/utils.js.map +1 -0
  129. package/dist/lib/core/value-accessor.d.ts +17 -17
  130. package/dist/lib/core/value-accessor.js +52 -0
  131. package/dist/lib/core/value-accessor.js.map +1 -0
  132. package/dist/lib/index.d.ts +21 -27
  133. package/dist/lib/index.d.ts.map +1 -1
  134. package/dist/lib/index.js +29 -0
  135. package/dist/lib/index.js.map +1 -0
  136. package/dist/lib/mount.d.ts +45 -45
  137. package/dist/lib/mount.js +85 -0
  138. package/dist/lib/mount.js.map +1 -0
  139. package/dist/tweak-ui.css +133 -138
  140. package/dist/tweak-ui.css.map +1 -1
  141. package/dist/tweak-ui.min.css +1 -1
  142. package/dist/tweak-ui.min.css.map +1 -1
  143. package/dist/tweak-ui.module.js +2733 -2396
  144. package/dist/tweak-ui.module.js.map +1 -1
  145. package/dist/tweak-ui.umd.js +1 -4419
  146. package/dist/tweak-ui.umd.js.map +1 -1
  147. package/package.json +25 -42
  148. package/dist/index.html +0 -1063
  149. package/dist/lib/color-formats/array-format.spec.d.ts +0 -2
  150. package/dist/lib/color-formats/array-format.spec.d.ts.map +0 -1
  151. package/dist/lib/color-formats/converter.spec.d.ts +0 -2
  152. package/dist/lib/color-formats/converter.spec.d.ts.map +0 -1
  153. package/dist/lib/color-formats/css-string-format.spec.d.ts +0 -2
  154. package/dist/lib/color-formats/css-string-format.spec.d.ts.map +0 -1
  155. package/dist/lib/color-formats/formatter.spec.d.ts +0 -2
  156. package/dist/lib/color-formats/formatter.spec.d.ts.map +0 -1
  157. package/dist/lib/color-formats/hex-string-format.spec.d.ts +0 -2
  158. package/dist/lib/color-formats/hex-string-format.spec.d.ts.map +0 -1
  159. package/dist/lib/color-formats/number-format.spec.d.ts +0 -2
  160. package/dist/lib/color-formats/number-format.spec.d.ts.map +0 -1
  161. package/dist/lib/color-formats/object-format.spec.d.ts +0 -2
  162. package/dist/lib/color-formats/object-format.spec.d.ts.map +0 -1
  163. package/dist/scss/_style.scss +0 -120
  164. package/dist/scss/_themes.scss +0 -23
  165. package/dist/scss/_utils.scss +0 -24
  166. package/dist/scss/_variables.scss +0 -30
  167. package/dist/scss/controls/_angle.scss +0 -64
  168. package/dist/scss/controls/_button.scss +0 -0
  169. package/dist/scss/controls/_checkbox.scss +0 -19
  170. package/dist/scss/controls/_color-picker.scss +0 -124
  171. package/dist/scss/controls/_color.scss +0 -14
  172. package/dist/scss/controls/_container.scss +0 -13
  173. package/dist/scss/controls/_group.scss +0 -69
  174. package/dist/scss/controls/_image.scss +0 -27
  175. package/dist/scss/controls/_number.scss +0 -38
  176. package/dist/scss/controls/_point.scss +0 -36
  177. package/dist/scss/controls/_position.scss +0 -9
  178. package/dist/scss/controls/_select.scss +0 -0
  179. package/dist/scss/controls/_spherical.scss +0 -87
  180. package/dist/scss/controls/_tabs.scss +0 -38
  181. package/dist/scss/controls/_text.scss +0 -0
  182. package/dist/scss/index.scss +0 -21
  183. package/dist/tweak-ui.umd.min.js +0 -17
  184. package/dist/tweak-ui.umd.min.js.map +0 -1
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Gets a value of a view model
3
+ *
4
+ * @public
5
+ * @param model - The model of a component
6
+ */
7
+ export function getValue(model) {
8
+ return decode(model, readValue(model));
9
+ }
10
+ /**
11
+ * Sets a value on a view model
12
+ *
13
+ * @public
14
+ * @param model - The model of a component
15
+ * @param value - The value for the component
16
+ * @returns the encoded value as it was written to the model
17
+ */
18
+ export function setValue(model, value) {
19
+ const encoded = encode(model, value);
20
+ writeValue(model, encoded);
21
+ return encoded;
22
+ }
23
+ function readValue(model) {
24
+ if ('target' in model &&
25
+ model.target &&
26
+ model.property != null &&
27
+ model.property in model.target) {
28
+ return model.target[model.property];
29
+ }
30
+ if ('value' in model) {
31
+ return model.value;
32
+ }
33
+ }
34
+ function writeValue(model, value) {
35
+ if ('target' in model && model.target && model.property != null) {
36
+ model.target[model.property] = value;
37
+ }
38
+ else if (isWriteable(model, 'value')) {
39
+ model.value = value;
40
+ }
41
+ }
42
+ function isWriteable(obj, key) {
43
+ const desc = Object.getOwnPropertyDescriptor(obj, key);
44
+ return !desc || !!desc.writable || !!desc.set;
45
+ }
46
+ function encode(source, value) {
47
+ return 'codec' in source && source.codec ? source.codec.encode(value) : value;
48
+ }
49
+ function decode(source, value) {
50
+ return 'codec' in source && source.codec ? source.codec.decode(value) : value;
51
+ }
52
+ //# sourceMappingURL=value-accessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-accessor.js","sourceRoot":"","sources":["../../../src/lib/core/value-accessor.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAI,KAA0B;IACpD,OAAO,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAM,CAAA;AAC7C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAI,KAA0B,EAAE,KAAQ;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACpC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC1B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,KAA4B;IAC7C,IACE,QAAQ,IAAI,KAAK;QACjB,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,QAAQ,IAAI,IAAI;QACtB,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,EAC9B,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,KAAK,CAAA;IACpB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAI,KAA0B,EAAE,KAAQ;IACzD,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QAChE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAA;IACtC,CAAC;SAAM,IAAI,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;IACrB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAI,GAAM,EAAE,GAAY;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACtD,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;AAC/C,CAAC;AAED,SAAS,MAAM,CAAI,MAA2B,EAAE,KAAQ;IACtD,OAAO,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAC/E,CAAC;AACD,SAAS,MAAM,CAAI,MAA2B,EAAE,KAAQ;IACtD,OAAO,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAC/E,CAAC","sourcesContent":["import type { ValueSource } from './types'\r\nimport { call } from './utils'\r\n\r\n/**\r\n * Gets a value of a view model\r\n *\r\n * @public\r\n * @param model - The model of a component\r\n */\r\nexport function getValue<V>(model: ValueSource<any, V>): V {\r\n return decode(model, readValue(model)) as V\r\n}\r\n\r\n/**\r\n * Sets a value on a view model\r\n *\r\n * @public\r\n * @param model - The model of a component\r\n * @param value - The value for the component\r\n * @returns the encoded value as it was written to the model\r\n */\r\nexport function setValue<V>(model: ValueSource<any, V>, value: V): unknown {\r\n const encoded = encode(model, value)\r\n writeValue(model, encoded)\r\n return encoded\r\n}\r\n\r\nfunction readValue(model: ValueSource<any, any>) {\r\n if (\r\n 'target' in model &&\r\n model.target &&\r\n model.property != null &&\r\n model.property in model.target\r\n ) {\r\n return model.target[model.property]\r\n }\r\n if ('value' in model) {\r\n return model.value\r\n }\r\n}\r\n\r\nfunction writeValue<V>(model: ValueSource<any, V>, value: V): void {\r\n if ('target' in model && model.target && model.property != null) {\r\n model.target[model.property] = value\r\n } else if (isWriteable(model, 'value')) {\r\n model.value = value\r\n }\r\n}\r\n\r\nfunction isWriteable<T>(obj: T, key: keyof T): boolean {\r\n const desc = Object.getOwnPropertyDescriptor(obj, key)\r\n return !desc || !!desc.writable || !!desc.set\r\n}\r\n\r\nfunction encode<V>(source: ValueSource<any, V>, value: V) {\r\n return 'codec' in source && source.codec ? source.codec.encode(value) : value\r\n}\r\nfunction decode<V>(source: ValueSource<any, V>, value: V) {\r\n return 'codec' in source && source.codec ? source.codec.decode(value) : value\r\n}\r\n"]}
@@ -1,28 +1,22 @@
1
- /**
2
- * Tweak UI is a lightweight js library for building input controls with data binding
3
- *
4
- * @remarks
5
- * The library provides a set of common ui components built with mithriljs. The main objective
6
- * is to allow a developer to rapidly scaffold input interfaces for manipulating javascript objects
7
- * at runtime.
8
- *
9
- * Similar projects are:
10
- * {@link https://github.com/dataarts/dat.gui | dat.GUI}
11
- * {@link https://github.com/automat/controlkit.js | controlkit}
12
- * {@link https://github.com/colejd/guify | guify}
13
- *
14
- * @packageDocumentation
15
- */
16
- import './components';
17
- export * from './builder';
18
- export * from './color-formats';
19
- export * from './components';
20
- export * from './core';
21
- export * from './mount';
22
- /**
23
- * The version string
24
- *
25
- * @public
26
- */
27
- export declare const VERSION: string;
1
+ /**
2
+ * Tweak UI is a lightweight js library for building input controls with data binding
3
+ *
4
+ * @remarks
5
+ * The library provides a set of common ui components built with mithriljs. The main objective
6
+ * is to allow a developer to rapidly scaffold input interfaces for manipulating javascript objects
7
+ * at runtime.
8
+ *
9
+ * Similar projects are:
10
+ * {@link https://github.com/dataarts/dat.gui | dat.GUI}
11
+ * {@link https://github.com/automat/controlkit.js | controlkit}
12
+ * {@link https://github.com/colejd/guify | guify}
13
+ *
14
+ * @packageDocumentation
15
+ */
16
+ import './components';
17
+ export * from './builder';
18
+ export * from './color-formats';
19
+ export * from './components';
20
+ export * from './core';
21
+ export * from './mount';
28
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,cAAc,CAAA;AAErB,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AAIvB;;;;GAIG;AACH,eAAO,MAAM,OAAO,QAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,cAAc,CAAA;AAErB,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Tweak UI is a lightweight js library for building input controls with data binding
3
+ *
4
+ * @remarks
5
+ * The library provides a set of common ui components built with mithriljs. The main objective
6
+ * is to allow a developer to rapidly scaffold input interfaces for manipulating javascript objects
7
+ * at runtime.
8
+ *
9
+ * Similar projects are:
10
+ * {@link https://github.com/dataarts/dat.gui | dat.GUI}
11
+ * {@link https://github.com/automat/controlkit.js | controlkit}
12
+ * {@link https://github.com/colejd/guify | guify}
13
+ *
14
+ * @packageDocumentation
15
+ */
16
+ import './components';
17
+ export * from './builder';
18
+ export * from './color-formats';
19
+ export * from './components';
20
+ export * from './core';
21
+ export * from './mount';
22
+ // declare const VERSION_STRING: string
23
+ // /**
24
+ // * The version string
25
+ // *
26
+ // * @public
27
+ // */
28
+ // export const VERSION = VERSION_STRING
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,cAAc,CAAA;AAErB,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AAEvB,uCAAuC;AAEvC,MAAM;AACN,wBAAwB;AACxB,KAAK;AACL,aAAa;AACb,MAAM;AACN,wCAAwC","sourcesContent":["/**\n * Tweak UI is a lightweight js library for building input controls with data binding\n *\n * @remarks\n * The library provides a set of common ui components built with mithriljs. The main objective\n * is to allow a developer to rapidly scaffold input interfaces for manipulating javascript objects\n * at runtime.\n *\n * Similar projects are:\n * {@link https://github.com/dataarts/dat.gui | dat.GUI}\n * {@link https://github.com/automat/controlkit.js | controlkit}\n * {@link https://github.com/colejd/guify | guify}\n *\n * @packageDocumentation\n */\n\nimport './components'\n\nexport * from './builder'\nexport * from './color-formats'\nexport * from './components'\nexport * from './core'\nexport * from './mount'\n\n// declare const VERSION_STRING: string\n\n// /**\n// * The version string\n// *\n// * @public\n// */\n// export const VERSION = VERSION_STRING\n"]}
@@ -1,46 +1,46 @@
1
- import type { ComponentModel } from './core/types';
2
- import { default as m } from 'mithril';
3
- import { BuilderFn } from './builder';
4
- /**
5
- * Mithril's hyperscript function.
6
- *
7
- * @public
8
- * @remarks
9
- * Useful to create custom components
10
- */
11
- export declare const h: m.Static;
12
- /**
13
- * Runs the function through a builder system and returns the created controls
14
- *
15
- * @param fn - The builder function
16
- * @returns
17
- */
18
- export declare function build(fn: BuilderFn): ComponentModel[];
19
- /**
20
- * Mounts a ui to the given element
21
- *
22
- * @public
23
- * @param el - The ui host element
24
- * @param data - The ui definition object
25
- */
26
- export declare function mount<T extends ComponentModel>(el: Element | string, data: T | Array<T> | BuilderFn): void;
27
- /**
28
- * Unmounts the ui from given host element
29
- *
30
- * @public
31
- * @param el - The ui host element
32
- */
33
- export declare function unmount(el: Element | string): void;
34
- /**
35
- * Redraws the ui
36
- *
37
- * @public
38
- * @remarks
39
- * When changing the ui description object qui callbacks (e.g. `onInput` or `onChange`)
40
- * the ui will redraw automatically.
41
- *
42
- * However if the ui description object is changed from outside the qui callback
43
- * then this method must be called in order to update the visual state.
44
- */
45
- export declare function redraw(): void;
1
+ import type { ComponentModel } from './core/types';
2
+ import { default as m } from 'mithril';
3
+ import { BuilderFn } from './builder';
4
+ /**
5
+ * Mithril's hyperscript function.
6
+ *
7
+ * @public
8
+ * @remarks
9
+ * Useful to create custom components
10
+ */
11
+ export declare const h: m.Static;
12
+ /**
13
+ * Runs the function through a builder system and returns the created controls
14
+ *
15
+ * @param fn - The builder function
16
+ * @returns
17
+ */
18
+ export declare function build(fn: BuilderFn): ComponentModel[];
19
+ /**
20
+ * Mounts a ui to the given element
21
+ *
22
+ * @public
23
+ * @param el - The ui host element
24
+ * @param data - The ui definition object
25
+ */
26
+ export declare function mount<T extends ComponentModel>(el: Element | string, data: T | Array<T> | BuilderFn): void;
27
+ /**
28
+ * Unmounts the ui from given host element
29
+ *
30
+ * @public
31
+ * @param el - The ui host element
32
+ */
33
+ export declare function unmount(el: Element | string): void;
34
+ /**
35
+ * Redraws the ui
36
+ *
37
+ * @public
38
+ * @remarks
39
+ * When changing the ui description object qui callbacks (e.g. `onInput` or `onChange`)
40
+ * the ui will redraw automatically.
41
+ *
42
+ * However if the ui description object is changed from outside the qui callback
43
+ * then this method must be called in order to update the visual state.
44
+ */
45
+ export declare function redraw(): void;
46
46
  //# sourceMappingURL=mount.d.ts.map
@@ -0,0 +1,85 @@
1
+ import { default as m } from 'mithril';
2
+ import { Builder } from './builder';
3
+ import { isFunction } from './core/utils';
4
+ import { renderModel } from './core';
5
+ /**
6
+ * Mithril's hyperscript function.
7
+ *
8
+ * @public
9
+ * @remarks
10
+ * Useful to create custom components
11
+ */
12
+ export const h = m;
13
+ /**
14
+ * Runs the function through a builder system and returns the created controls
15
+ *
16
+ * @param fn - The builder function
17
+ * @returns
18
+ */
19
+ export function build(fn) {
20
+ const builder = new Builder();
21
+ fn(builder);
22
+ return builder.controls;
23
+ }
24
+ /**
25
+ * Mounts a ui to the given element
26
+ *
27
+ * @public
28
+ * @param el - The ui host element
29
+ * @param data - The ui definition object
30
+ */
31
+ export function mount(el, data) {
32
+ el = typeof el === 'string' ? document.querySelector(el) : el;
33
+ el.classList.add('twui-root');
34
+ if (!data) {
35
+ m.mount(el, null);
36
+ }
37
+ else if (Array.isArray(data)) {
38
+ m.mount(el, {
39
+ view: () => renderModel({
40
+ type: 'group',
41
+ children: data,
42
+ }),
43
+ });
44
+ }
45
+ else if (isFunction(data)) {
46
+ const builder = new Builder();
47
+ data(builder);
48
+ m.mount(el, {
49
+ view: () => renderModel({
50
+ type: 'group',
51
+ children: builder.controls,
52
+ }),
53
+ });
54
+ }
55
+ else {
56
+ m.mount(el, {
57
+ view: () => renderModel(data),
58
+ });
59
+ }
60
+ }
61
+ /**
62
+ * Unmounts the ui from given host element
63
+ *
64
+ * @public
65
+ * @param el - The ui host element
66
+ */
67
+ export function unmount(el) {
68
+ el = typeof el === 'string' ? document.querySelector(el) : el;
69
+ m.mount(el, null);
70
+ }
71
+ /**
72
+ * Redraws the ui
73
+ *
74
+ * @public
75
+ * @remarks
76
+ * When changing the ui description object qui callbacks (e.g. `onInput` or `onChange`)
77
+ * the ui will redraw automatically.
78
+ *
79
+ * However if the ui description object is changed from outside the qui callback
80
+ * then this method must be called in order to update the visual state.
81
+ */
82
+ export function redraw() {
83
+ m.redraw();
84
+ }
85
+ //# sourceMappingURL=mount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mount.js","sourceRoot":"","sources":["../../src/lib/mount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAa,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAGpC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAElB;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,EAAa;IACjC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAC7B,EAAE,CAAC,OAAO,CAAC,CAAA;IACX,OAAO,OAAO,CAAC,QAAQ,CAAA;AACzB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAA2B,EAAoB,EAAE,IAA8B;IAClG,EAAE,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7D,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IACnB,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;YACV,IAAI,EAAE,GAAG,EAAE,CACT,WAAW,CAAa;gBACtB,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,IAAI;aACf,CAAC;SACL,CAAC,CAAA;IACJ,CAAC;SAAM,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;QAC7B,IAAI,CAAC,OAAO,CAAC,CAAA;QACb,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;YACV,IAAI,EAAE,GAAG,EAAE,CACT,WAAW,CAAa;gBACtB,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B,CAAC;SACL,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;YACV,IAAI,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;SAC9B,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,EAAoB;IAC1C,EAAE,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7D,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;AACnB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM;IACpB,CAAC,CAAC,MAAM,EAAE,CAAA;AACZ,CAAC","sourcesContent":["import type { ComponentModel } from './core/types'\nimport { default as m } from 'mithril'\nimport { Builder, BuilderFn } from './builder'\nimport { isFunction } from './core/utils'\nimport { renderModel } from './core'\nimport { GroupModel } from './components'\n\n/**\n * Mithril's hyperscript function.\n *\n * @public\n * @remarks\n * Useful to create custom components\n */\nexport const h = m\n\n/**\n * Runs the function through a builder system and returns the created controls\n *\n * @param fn - The builder function\n * @returns\n */\nexport function build(fn: BuilderFn) {\n const builder = new Builder()\n fn(builder)\n return builder.controls\n}\n\n/**\n * Mounts a ui to the given element\n *\n * @public\n * @param el - The ui host element\n * @param data - The ui definition object\n */\nexport function mount<T extends ComponentModel>(el: Element | string, data: T | Array<T> | BuilderFn) {\n el = typeof el === 'string' ? document.querySelector(el) : el\n el.classList.add('twui-root')\n if (!data) {\n m.mount(el, null)\n } else if (Array.isArray(data)) {\n m.mount(el, {\n view: () =>\n renderModel<GroupModel>({\n type: 'group',\n children: data,\n }),\n })\n } else if (isFunction(data)) {\n const builder = new Builder()\n data(builder)\n m.mount(el, {\n view: () =>\n renderModel<GroupModel>({\n type: 'group',\n children: builder.controls,\n }),\n })\n } else {\n m.mount(el, {\n view: () => renderModel(data),\n })\n }\n}\n\n/**\n * Unmounts the ui from given host element\n *\n * @public\n * @param el - The ui host element\n */\nexport function unmount(el: Element | string) {\n el = typeof el === 'string' ? document.querySelector(el) : el\n m.mount(el, null)\n}\n\n/**\n * Redraws the ui\n *\n * @public\n * @remarks\n * When changing the ui description object qui callbacks (e.g. `onInput` or `onChange`)\n * the ui will redraw automatically.\n *\n * However if the ui description object is changed from outside the qui callback\n * then this method must be called in order to update the visual state.\n */\nexport function redraw() {\n m.redraw()\n}\n"]}