widgets.js 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. 'use strict';
  2. define(function () {
  3. /*
  4. * Cell widgets
  5. */
  6. class Widgets {
  7. constructor() {
  8. console.log("widget constructor")
  9. }
  10. get divider(){
  11. return {
  12. $cell: true,
  13. $type: "hr",
  14. class: "mdc-list-divider",
  15. }
  16. }
  17. headerH3(headertype, label, cssclass) {
  18. return {
  19. $cell: true,
  20. $type: headertype,
  21. class: cssclass,
  22. $text: label
  23. }
  24. }
  25. sliderDiscrete(obj) {
  26. return {
  27. $cell: true,
  28. $type: "div",
  29. class: "mdc-slider mdc-slider--discrete",
  30. role: "slider",
  31. 'aria-valuemin': obj.min,
  32. 'aria-valuemax': obj.max,
  33. 'aria-label': obj.label,
  34. $init: obj.init,
  35. $components: [
  36. {
  37. $cell: true,
  38. $type: "div",
  39. class: "mdc-slider__track-container",
  40. $components: [
  41. {
  42. $cell: true,
  43. $type: "div",
  44. class: "mdc-slider__track",
  45. }
  46. ]
  47. },
  48. {
  49. $cell: true,
  50. $type: "div",
  51. class: "mdc-slider__thumb-container",
  52. $components: [
  53. {
  54. $cell: true,
  55. $type: "div",
  56. class: "mdc-slider__pin",
  57. $components: [
  58. {
  59. $cell: true,
  60. $type: "span",
  61. class: "mdc-slider__pin-value-marker",
  62. }
  63. ]
  64. },
  65. {
  66. $cell: true,
  67. $type: "svg",
  68. class: "mdc-slider__thumb",
  69. width: 21,
  70. height: 21,
  71. $components: [
  72. {
  73. $cell: true,
  74. $type: "circle",
  75. cx: 10.5,
  76. cy: 10.5,
  77. r: 7.875
  78. }
  79. ]
  80. },
  81. {
  82. $cell: true,
  83. $type: "div",
  84. class: "mdc-slider__focus-ring"
  85. }
  86. ]
  87. }
  88. ]
  89. }
  90. }
  91. sliderContinuous(obj) {
  92. return {
  93. $cell: true,
  94. $type: "div",
  95. class: "mdc-slider",
  96. role: "slider",
  97. tabindex: 0,
  98. 'id': obj.id,
  99. 'aria-valuemin': obj.min,
  100. 'aria-valuemax': obj.max,
  101. 'aria-label': obj.label,
  102. 'aria-valuenow': obj.value,
  103. 'data-step': obj.step,
  104. $init: obj.init,
  105. $components: [
  106. {
  107. $cell: true,
  108. $type: "div",
  109. class: "mdc-slider__track-container",
  110. $components: [
  111. {
  112. $cell: true,
  113. $type: "div",
  114. class: "mdc-slider__track",
  115. }
  116. ]
  117. },
  118. {
  119. $cell: true,
  120. $type: "div",
  121. class: "mdc-slider__thumb-container",
  122. $components: [
  123. {
  124. $cell: true,
  125. $type: "svg",
  126. class: "mdc-slider__thumb",
  127. width: 21,
  128. height: 21,
  129. $components: [
  130. {
  131. $cell: true,
  132. $type: "circle",
  133. cx: 10.5,
  134. cy: 10.5,
  135. r: 7.875
  136. }
  137. ]
  138. },
  139. {
  140. $cell: true,
  141. $type: "div",
  142. class: "mdc-slider__focus-ring"
  143. }
  144. ]
  145. }
  146. ]
  147. }
  148. }
  149. icontoggle(obj) {
  150. return {
  151. $cell: true,
  152. $type: "i",
  153. class: "mdc-icon-toggle material-icons",
  154. role: "button",
  155. $text: obj.label,
  156. id: obj.id,
  157. 'data-toggle-on': obj.on,
  158. 'data-toggle-off': obj.off,
  159. 'aria-pressed': obj.state,
  160. //'aria-hidden': true,
  161. $init: obj.init
  162. }
  163. }
  164. switch(obj) {
  165. return {
  166. $cell: true,
  167. $type: "div",
  168. class: "mdc-switch",
  169. $components: [
  170. {
  171. $type: "input",
  172. type: "checkbox",
  173. class: "mdc-switch__native-control",
  174. id: obj.id,
  175. $init: obj.init,
  176. //id: "basic-switch",
  177. onchange: obj.onchange
  178. },
  179. {
  180. $type: "div",
  181. class: "mdc-switch__background",
  182. $components: [
  183. {
  184. $type: "div",
  185. class: "mdc-switch__knob"
  186. }
  187. ]
  188. }
  189. ]
  190. }
  191. }
  192. }
  193. return new Widgets;
  194. })