@oracle/oraclejet-webdriver 10.1.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 (667) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +16 -0
  3. package/bin/generate +509 -0
  4. package/bin/generate-jet +163 -0
  5. package/bin/templates/baseclass.ts-template +13 -0
  6. package/bin/templates/class.ts-template +12 -0
  7. package/bin/templates/element-test.spec.ts-template +28 -0
  8. package/bin/templates/index.ts-template +27 -0
  9. package/bin/templates/jetcomponents.json +71 -0
  10. package/bin/templates/package.json-template +15 -0
  11. package/bin/templates/tsconfig.json-template +19 -0
  12. package/elements/OjWebElement.js +232 -0
  13. package/elements/OjWebElement.js.map +1 -0
  14. package/elements/OjWebElement.ts +674 -0
  15. package/elements/index.js +214 -0
  16. package/elements/index.js.map +1 -0
  17. package/elements/index.ts +75 -0
  18. package/elements/oj-accordion/OjAccordion.js +8 -0
  19. package/elements/oj-accordion/OjAccordion.js.map +1 -0
  20. package/elements/oj-accordion/OjAccordion.ts +12 -0
  21. package/elements/oj-accordion/OjAccordionBase.js +20 -0
  22. package/elements/oj-accordion/OjAccordionBase.js.map +1 -0
  23. package/elements/oj-accordion/OjAccordionBase.ts +48 -0
  24. package/elements/oj-accordion/index.js +17 -0
  25. package/elements/oj-accordion/index.js.map +1 -0
  26. package/elements/oj-accordion/index.ts +27 -0
  27. package/elements/oj-button/OjButton.js +20 -0
  28. package/elements/oj-button/OjButton.js.map +1 -0
  29. package/elements/oj-button/OjButton.ts +35 -0
  30. package/elements/oj-button/OjButtonBase.js +23 -0
  31. package/elements/oj-button/OjButtonBase.js.map +1 -0
  32. package/elements/oj-button/OjButtonBase.ts +57 -0
  33. package/elements/oj-button/index.js +17 -0
  34. package/elements/oj-button/index.js.map +1 -0
  35. package/elements/oj-button/index.ts +27 -0
  36. package/elements/oj-buttonset-many/OjButtonsetMany.js +8 -0
  37. package/elements/oj-buttonset-many/OjButtonsetMany.js.map +1 -0
  38. package/elements/oj-buttonset-many/OjButtonsetMany.ts +11 -0
  39. package/elements/oj-buttonset-many/OjButtonsetManyBase.js +35 -0
  40. package/elements/oj-buttonset-many/OjButtonsetManyBase.js.map +1 -0
  41. package/elements/oj-buttonset-many/OjButtonsetManyBase.ts +93 -0
  42. package/elements/oj-buttonset-many/index.js +17 -0
  43. package/elements/oj-buttonset-many/index.js.map +1 -0
  44. package/elements/oj-buttonset-many/index.ts +27 -0
  45. package/elements/oj-buttonset-one/OjButtonsetOne.js +8 -0
  46. package/elements/oj-buttonset-one/OjButtonsetOne.js.map +1 -0
  47. package/elements/oj-buttonset-one/OjButtonsetOne.ts +11 -0
  48. package/elements/oj-buttonset-one/OjButtonsetOneBase.js +35 -0
  49. package/elements/oj-buttonset-one/OjButtonsetOneBase.js.map +1 -0
  50. package/elements/oj-buttonset-one/OjButtonsetOneBase.ts +93 -0
  51. package/elements/oj-buttonset-one/index.js +17 -0
  52. package/elements/oj-buttonset-one/index.js.map +1 -0
  53. package/elements/oj-buttonset-one/index.ts +27 -0
  54. package/elements/oj-chart/OjChart.js +8 -0
  55. package/elements/oj-chart/OjChart.js.map +1 -0
  56. package/elements/oj-chart/OjChart.ts +12 -0
  57. package/elements/oj-chart/OjChartBase.js +170 -0
  58. package/elements/oj-chart/OjChartBase.js.map +1 -0
  59. package/elements/oj-chart/OjChartBase.ts +2468 -0
  60. package/elements/oj-chart/index.js +17 -0
  61. package/elements/oj-chart/index.js.map +1 -0
  62. package/elements/oj-chart/index.ts +27 -0
  63. package/elements/oj-checkboxset/OjCheckboxset.js +39 -0
  64. package/elements/oj-checkboxset/OjCheckboxset.js.map +1 -0
  65. package/elements/oj-checkboxset/OjCheckboxset.ts +74 -0
  66. package/elements/oj-checkboxset/OjCheckboxsetBase.js +68 -0
  67. package/elements/oj-checkboxset/OjCheckboxsetBase.js.map +1 -0
  68. package/elements/oj-checkboxset/OjCheckboxsetBase.ts +262 -0
  69. package/elements/oj-checkboxset/index.js +17 -0
  70. package/elements/oj-checkboxset/index.js.map +1 -0
  71. package/elements/oj-checkboxset/index.ts +27 -0
  72. package/elements/oj-collapsible/OjCollapsible.js +23 -0
  73. package/elements/oj-collapsible/OjCollapsible.js.map +1 -0
  74. package/elements/oj-collapsible/OjCollapsible.ts +36 -0
  75. package/elements/oj-collapsible/OjCollapsibleBase.js +23 -0
  76. package/elements/oj-collapsible/OjCollapsibleBase.js.map +1 -0
  77. package/elements/oj-collapsible/OjCollapsibleBase.ts +57 -0
  78. package/elements/oj-collapsible/index.js +17 -0
  79. package/elements/oj-collapsible/index.js.map +1 -0
  80. package/elements/oj-collapsible/index.ts +27 -0
  81. package/elements/oj-color-palette/OjColorPalette.js +8 -0
  82. package/elements/oj-color-palette/OjColorPalette.js.map +1 -0
  83. package/elements/oj-color-palette/OjColorPalette.ts +12 -0
  84. package/elements/oj-color-palette/OjColorPaletteBase.js +65 -0
  85. package/elements/oj-color-palette/OjColorPaletteBase.js.map +1 -0
  86. package/elements/oj-color-palette/OjColorPaletteBase.ts +235 -0
  87. package/elements/oj-color-palette/index.js +17 -0
  88. package/elements/oj-color-palette/index.js.map +1 -0
  89. package/elements/oj-color-palette/index.ts +27 -0
  90. package/elements/oj-color-spectrum/OjColorSpectrum.js +8 -0
  91. package/elements/oj-color-spectrum/OjColorSpectrum.js.map +1 -0
  92. package/elements/oj-color-spectrum/OjColorSpectrum.ts +12 -0
  93. package/elements/oj-color-spectrum/OjColorSpectrumBase.js +56 -0
  94. package/elements/oj-color-spectrum/OjColorSpectrumBase.js.map +1 -0
  95. package/elements/oj-color-spectrum/OjColorSpectrumBase.ts +210 -0
  96. package/elements/oj-color-spectrum/index.js +17 -0
  97. package/elements/oj-color-spectrum/index.js.map +1 -0
  98. package/elements/oj-color-spectrum/index.ts +27 -0
  99. package/elements/oj-combobox-many/OjComboboxMany.js +51 -0
  100. package/elements/oj-combobox-many/OjComboboxMany.js.map +1 -0
  101. package/elements/oj-combobox-many/OjComboboxMany.ts +80 -0
  102. package/elements/oj-combobox-many/OjComboboxManyBase.js +98 -0
  103. package/elements/oj-combobox-many/OjComboboxManyBase.js.map +1 -0
  104. package/elements/oj-combobox-many/OjComboboxManyBase.ts +428 -0
  105. package/elements/oj-combobox-many/index.js +17 -0
  106. package/elements/oj-combobox-many/index.js.map +1 -0
  107. package/elements/oj-combobox-many/index.ts +27 -0
  108. package/elements/oj-combobox-one/OjComboboxOne.js +49 -0
  109. package/elements/oj-combobox-one/OjComboboxOne.js.map +1 -0
  110. package/elements/oj-combobox-one/OjComboboxOne.ts +74 -0
  111. package/elements/oj-combobox-one/OjComboboxOneBase.js +101 -0
  112. package/elements/oj-combobox-one/OjComboboxOneBase.js.map +1 -0
  113. package/elements/oj-combobox-one/OjComboboxOneBase.ts +437 -0
  114. package/elements/oj-combobox-one/index.js +17 -0
  115. package/elements/oj-combobox-one/index.js.map +1 -0
  116. package/elements/oj-combobox-one/index.ts +27 -0
  117. package/elements/oj-conveyor-belt/OjConveyorBelt.js +16 -0
  118. package/elements/oj-conveyor-belt/OjConveyorBelt.js.map +1 -0
  119. package/elements/oj-conveyor-belt/OjConveyorBelt.ts +30 -0
  120. package/elements/oj-conveyor-belt/OjConveyorBeltBase.js +29 -0
  121. package/elements/oj-conveyor-belt/OjConveyorBeltBase.js.map +1 -0
  122. package/elements/oj-conveyor-belt/OjConveyorBeltBase.ts +87 -0
  123. package/elements/oj-conveyor-belt/index.js +17 -0
  124. package/elements/oj-conveyor-belt/index.js.map +1 -0
  125. package/elements/oj-conveyor-belt/index.ts +27 -0
  126. package/elements/oj-data-grid/OjDataGrid.js +198 -0
  127. package/elements/oj-data-grid/OjDataGrid.js.map +1 -0
  128. package/elements/oj-data-grid/OjDataGrid.ts +279 -0
  129. package/elements/oj-data-grid/OjDataGridBase.js +65 -0
  130. package/elements/oj-data-grid/OjDataGridBase.js.map +1 -0
  131. package/elements/oj-data-grid/OjDataGridBase.ts +705 -0
  132. package/elements/oj-data-grid/index.js +17 -0
  133. package/elements/oj-data-grid/index.js.map +1 -0
  134. package/elements/oj-data-grid/index.ts +27 -0
  135. package/elements/oj-date-picker/OjDatePicker.js +8 -0
  136. package/elements/oj-date-picker/OjDatePicker.js.map +1 -0
  137. package/elements/oj-date-picker/OjDatePicker.ts +12 -0
  138. package/elements/oj-date-picker/OjDatePickerBase.js +104 -0
  139. package/elements/oj-date-picker/OjDatePickerBase.js.map +1 -0
  140. package/elements/oj-date-picker/OjDatePickerBase.ts +536 -0
  141. package/elements/oj-date-picker/index.js +17 -0
  142. package/elements/oj-date-picker/index.js.map +1 -0
  143. package/elements/oj-date-picker/index.ts +27 -0
  144. package/elements/oj-date-time-picker/OjDateTimePicker.js +8 -0
  145. package/elements/oj-date-time-picker/OjDateTimePicker.js.map +1 -0
  146. package/elements/oj-date-time-picker/OjDateTimePicker.ts +32 -0
  147. package/elements/oj-date-time-picker/OjDateTimePickerBase.js +107 -0
  148. package/elements/oj-date-time-picker/OjDateTimePickerBase.js.map +1 -0
  149. package/elements/oj-date-time-picker/OjDateTimePickerBase.ts +567 -0
  150. package/elements/oj-date-time-picker/index.js +17 -0
  151. package/elements/oj-date-time-picker/index.js.map +1 -0
  152. package/elements/oj-date-time-picker/index.ts +27 -0
  153. package/elements/oj-diagram/OjDiagram.js +8 -0
  154. package/elements/oj-diagram/OjDiagram.js.map +1 -0
  155. package/elements/oj-diagram/OjDiagram.ts +12 -0
  156. package/elements/oj-diagram/OjDiagramBase.js +128 -0
  157. package/elements/oj-diagram/OjDiagramBase.js.map +1 -0
  158. package/elements/oj-diagram/OjDiagramBase.ts +740 -0
  159. package/elements/oj-diagram/index.js +17 -0
  160. package/elements/oj-diagram/index.js.map +1 -0
  161. package/elements/oj-diagram/index.ts +27 -0
  162. package/elements/oj-dialog/OjDialog.js +13 -0
  163. package/elements/oj-dialog/OjDialog.js.map +1 -0
  164. package/elements/oj-dialog/OjDialog.ts +21 -0
  165. package/elements/oj-dialog/OjDialogBase.js +32 -0
  166. package/elements/oj-dialog/OjDialogBase.js.map +1 -0
  167. package/elements/oj-dialog/OjDialogBase.ts +144 -0
  168. package/elements/oj-dialog/index.js +17 -0
  169. package/elements/oj-dialog/index.js.map +1 -0
  170. package/elements/oj-dialog/index.ts +27 -0
  171. package/elements/oj-file-picker/OjFilePicker.js +36 -0
  172. package/elements/oj-file-picker/OjFilePicker.js.map +1 -0
  173. package/elements/oj-file-picker/OjFilePicker.ts +49 -0
  174. package/elements/oj-file-picker/OjFilePickerBase.js +29 -0
  175. package/elements/oj-file-picker/OjFilePickerBase.js.map +1 -0
  176. package/elements/oj-file-picker/OjFilePickerBase.ts +75 -0
  177. package/elements/oj-file-picker/index.js +17 -0
  178. package/elements/oj-file-picker/index.js.map +1 -0
  179. package/elements/oj-file-picker/index.ts +27 -0
  180. package/elements/oj-film-strip/OjFilmStrip.js +8 -0
  181. package/elements/oj-film-strip/OjFilmStrip.js.map +1 -0
  182. package/elements/oj-film-strip/OjFilmStrip.ts +12 -0
  183. package/elements/oj-film-strip/OjFilmStripBase.js +32 -0
  184. package/elements/oj-film-strip/OjFilmStripBase.js.map +1 -0
  185. package/elements/oj-film-strip/OjFilmStripBase.ts +118 -0
  186. package/elements/oj-film-strip/index.js +17 -0
  187. package/elements/oj-film-strip/index.js.map +1 -0
  188. package/elements/oj-film-strip/index.ts +27 -0
  189. package/elements/oj-gantt/OjGantt.js +8 -0
  190. package/elements/oj-gantt/OjGantt.js.map +1 -0
  191. package/elements/oj-gantt/OjGantt.ts +12 -0
  192. package/elements/oj-gantt/OjGanttBase.js +98 -0
  193. package/elements/oj-gantt/OjGanttBase.js.map +1 -0
  194. package/elements/oj-gantt/OjGanttBase.ts +996 -0
  195. package/elements/oj-gantt/index.js +17 -0
  196. package/elements/oj-gantt/index.js.map +1 -0
  197. package/elements/oj-gantt/index.ts +27 -0
  198. package/elements/oj-indexer/OjIndexer.js +8 -0
  199. package/elements/oj-indexer/OjIndexer.js.map +1 -0
  200. package/elements/oj-indexer/OjIndexer.ts +12 -0
  201. package/elements/oj-indexer/OjIndexerBase.js +14 -0
  202. package/elements/oj-indexer/OjIndexerBase.js.map +1 -0
  203. package/elements/oj-indexer/OjIndexerBase.ts +62 -0
  204. package/elements/oj-indexer/index.js +17 -0
  205. package/elements/oj-indexer/index.js.map +1 -0
  206. package/elements/oj-indexer/index.ts +27 -0
  207. package/elements/oj-input-date/OjInputDate.js +10 -0
  208. package/elements/oj-input-date/OjInputDate.js.map +1 -0
  209. package/elements/oj-input-date/OjInputDate.ts +14 -0
  210. package/elements/oj-input-date/OjInputDateBase.js +107 -0
  211. package/elements/oj-input-date/OjInputDateBase.js.map +1 -0
  212. package/elements/oj-input-date/OjInputDateBase.ts +545 -0
  213. package/elements/oj-input-date/index.js +17 -0
  214. package/elements/oj-input-date/index.js.map +1 -0
  215. package/elements/oj-input-date/index.ts +27 -0
  216. package/elements/oj-input-date-time/OjInputDateTime.js +10 -0
  217. package/elements/oj-input-date-time/OjInputDateTime.js.map +1 -0
  218. package/elements/oj-input-date-time/OjInputDateTime.ts +14 -0
  219. package/elements/oj-input-date-time/OjInputDateTimeBase.js +110 -0
  220. package/elements/oj-input-date-time/OjInputDateTimeBase.js.map +1 -0
  221. package/elements/oj-input-date-time/OjInputDateTimeBase.ts +576 -0
  222. package/elements/oj-input-date-time/index.js +17 -0
  223. package/elements/oj-input-date-time/index.js.map +1 -0
  224. package/elements/oj-input-date-time/index.ts +27 -0
  225. package/elements/oj-input-number/OjInputNumber.js +10 -0
  226. package/elements/oj-input-number/OjInputNumber.js.map +1 -0
  227. package/elements/oj-input-number/OjInputNumber.ts +14 -0
  228. package/elements/oj-input-number/OjInputNumberBase.js +98 -0
  229. package/elements/oj-input-number/OjInputNumberBase.js.map +1 -0
  230. package/elements/oj-input-number/OjInputNumberBase.ts +406 -0
  231. package/elements/oj-input-number/index.js +17 -0
  232. package/elements/oj-input-number/index.js.map +1 -0
  233. package/elements/oj-input-number/index.ts +27 -0
  234. package/elements/oj-input-password/OjInputPassword.js +10 -0
  235. package/elements/oj-input-password/OjInputPassword.js.map +1 -0
  236. package/elements/oj-input-password/OjInputPassword.ts +14 -0
  237. package/elements/oj-input-password/OjInputPasswordBase.js +83 -0
  238. package/elements/oj-input-password/OjInputPasswordBase.js.map +1 -0
  239. package/elements/oj-input-password/OjInputPasswordBase.ts +323 -0
  240. package/elements/oj-input-password/index.js +17 -0
  241. package/elements/oj-input-password/index.js.map +1 -0
  242. package/elements/oj-input-password/index.ts +27 -0
  243. package/elements/oj-input-search/OjInputSearch.js +41 -0
  244. package/elements/oj-input-search/OjInputSearch.js.map +1 -0
  245. package/elements/oj-input-search/OjInputSearch.ts +64 -0
  246. package/elements/oj-input-search/OjInputSearchBase.js +26 -0
  247. package/elements/oj-input-search/OjInputSearchBase.js.map +1 -0
  248. package/elements/oj-input-search/OjInputSearchBase.ts +66 -0
  249. package/elements/oj-input-search/index.js +17 -0
  250. package/elements/oj-input-search/index.js.map +1 -0
  251. package/elements/oj-input-search/index.ts +27 -0
  252. package/elements/oj-input-text/OjInputText.js +10 -0
  253. package/elements/oj-input-text/OjInputText.js.map +1 -0
  254. package/elements/oj-input-text/OjInputText.ts +15 -0
  255. package/elements/oj-input-text/OjInputTextBase.js +95 -0
  256. package/elements/oj-input-text/OjInputTextBase.js.map +1 -0
  257. package/elements/oj-input-text/OjInputTextBase.ts +361 -0
  258. package/elements/oj-input-text/index.js +17 -0
  259. package/elements/oj-input-text/index.js.map +1 -0
  260. package/elements/oj-input-text/index.ts +27 -0
  261. package/elements/oj-input-time/OjInputTime.js +10 -0
  262. package/elements/oj-input-time/OjInputTime.js.map +1 -0
  263. package/elements/oj-input-time/OjInputTime.ts +14 -0
  264. package/elements/oj-input-time/OjInputTimeBase.js +101 -0
  265. package/elements/oj-input-time/OjInputTimeBase.js.map +1 -0
  266. package/elements/oj-input-time/OjInputTimeBase.ts +477 -0
  267. package/elements/oj-input-time/index.js +17 -0
  268. package/elements/oj-input-time/index.js.map +1 -0
  269. package/elements/oj-input-time/index.ts +27 -0
  270. package/elements/oj-label/OjLabel.js +8 -0
  271. package/elements/oj-label/OjLabel.js.map +1 -0
  272. package/elements/oj-label/OjLabel.ts +12 -0
  273. package/elements/oj-label/OjLabelBase.js +23 -0
  274. package/elements/oj-label/OjLabelBase.js.map +1 -0
  275. package/elements/oj-label/OjLabelBase.ts +79 -0
  276. package/elements/oj-label/index.js +17 -0
  277. package/elements/oj-label/index.js.map +1 -0
  278. package/elements/oj-label/index.ts +27 -0
  279. package/elements/oj-led-gauge/OjLedGauge.js +8 -0
  280. package/elements/oj-led-gauge/OjLedGauge.js.map +1 -0
  281. package/elements/oj-led-gauge/OjLedGauge.ts +12 -0
  282. package/elements/oj-led-gauge/OjLedGaugeBase.js +62 -0
  283. package/elements/oj-led-gauge/OjLedGaugeBase.js.map +1 -0
  284. package/elements/oj-led-gauge/OjLedGaugeBase.ts +302 -0
  285. package/elements/oj-led-gauge/index.js +17 -0
  286. package/elements/oj-led-gauge/index.js.map +1 -0
  287. package/elements/oj-led-gauge/index.ts +27 -0
  288. package/elements/oj-legend/OjLegend.js +8 -0
  289. package/elements/oj-legend/OjLegend.js.map +1 -0
  290. package/elements/oj-legend/OjLegend.ts +12 -0
  291. package/elements/oj-legend/OjLegendBase.js +74 -0
  292. package/elements/oj-legend/OjLegendBase.js.map +1 -0
  293. package/elements/oj-legend/OjLegendBase.ts +324 -0
  294. package/elements/oj-legend/index.js +17 -0
  295. package/elements/oj-legend/index.js.map +1 -0
  296. package/elements/oj-legend/index.ts +27 -0
  297. package/elements/oj-list-view/OjListView.js +25 -0
  298. package/elements/oj-list-view/OjListView.js.map +1 -0
  299. package/elements/oj-list-view/OjListView.ts +36 -0
  300. package/elements/oj-list-view/OjListViewBase.js +71 -0
  301. package/elements/oj-list-view/OjListViewBase.js.map +1 -0
  302. package/elements/oj-list-view/OjListViewBase.ts +355 -0
  303. package/elements/oj-list-view/index.js +17 -0
  304. package/elements/oj-list-view/index.js.map +1 -0
  305. package/elements/oj-list-view/index.ts +27 -0
  306. package/elements/oj-masonry-layout/OjMasonryLayout.js +8 -0
  307. package/elements/oj-masonry-layout/OjMasonryLayout.js.map +1 -0
  308. package/elements/oj-masonry-layout/OjMasonryLayout.ts +12 -0
  309. package/elements/oj-masonry-layout/OjMasonryLayoutBase.js +14 -0
  310. package/elements/oj-masonry-layout/OjMasonryLayoutBase.js.map +1 -0
  311. package/elements/oj-masonry-layout/OjMasonryLayoutBase.ts +46 -0
  312. package/elements/oj-masonry-layout/index.js +17 -0
  313. package/elements/oj-masonry-layout/index.js.map +1 -0
  314. package/elements/oj-masonry-layout/index.ts +27 -0
  315. package/elements/oj-menu/OjMenu.js +28 -0
  316. package/elements/oj-menu/OjMenu.js.map +1 -0
  317. package/elements/oj-menu/OjMenu.ts +42 -0
  318. package/elements/oj-menu/OjMenuBase.js +17 -0
  319. package/elements/oj-menu/OjMenuBase.js.map +1 -0
  320. package/elements/oj-menu/OjMenuBase.ts +121 -0
  321. package/elements/oj-menu/index.js +17 -0
  322. package/elements/oj-menu/index.js.map +1 -0
  323. package/elements/oj-menu/index.ts +27 -0
  324. package/elements/oj-menu-button/OjMenuButton.js +14 -0
  325. package/elements/oj-menu-button/OjMenuButton.js.map +1 -0
  326. package/elements/oj-menu-button/OjMenuButton.ts +20 -0
  327. package/elements/oj-menu-button/OjMenuButtonBase.js +20 -0
  328. package/elements/oj-menu-button/OjMenuButtonBase.js.map +1 -0
  329. package/elements/oj-menu-button/OjMenuButtonBase.ts +48 -0
  330. package/elements/oj-menu-button/index.js +17 -0
  331. package/elements/oj-menu-button/index.js.map +1 -0
  332. package/elements/oj-menu-button/index.ts +27 -0
  333. package/elements/oj-message/OjMessage.js +13 -0
  334. package/elements/oj-message/OjMessage.js.map +1 -0
  335. package/elements/oj-message/OjMessage.ts +19 -0
  336. package/elements/oj-message/OjMessageBase.js +17 -0
  337. package/elements/oj-message/OjMessageBase.js.map +1 -0
  338. package/elements/oj-message/OjMessageBase.ts +113 -0
  339. package/elements/oj-message/index.js +17 -0
  340. package/elements/oj-message/index.js.map +1 -0
  341. package/elements/oj-message/index.ts +27 -0
  342. package/elements/oj-n-box/OjNBox.js +8 -0
  343. package/elements/oj-n-box/OjNBox.js.map +1 -0
  344. package/elements/oj-n-box/OjNBox.ts +12 -0
  345. package/elements/oj-n-box/OjNBoxBase.js +116 -0
  346. package/elements/oj-n-box/OjNBoxBase.js.map +1 -0
  347. package/elements/oj-n-box/OjNBoxBase.ts +880 -0
  348. package/elements/oj-n-box/index.js +17 -0
  349. package/elements/oj-n-box/index.js.map +1 -0
  350. package/elements/oj-n-box/index.ts +27 -0
  351. package/elements/oj-navigation-list/OjNavigationList.js +186 -0
  352. package/elements/oj-navigation-list/OjNavigationList.js.map +1 -0
  353. package/elements/oj-navigation-list/OjNavigationList.ts +250 -0
  354. package/elements/oj-navigation-list/OjNavigationListBase.js +50 -0
  355. package/elements/oj-navigation-list/OjNavigationListBase.js.map +1 -0
  356. package/elements/oj-navigation-list/OjNavigationListBase.ts +164 -0
  357. package/elements/oj-navigation-list/index.js +17 -0
  358. package/elements/oj-navigation-list/index.js.map +1 -0
  359. package/elements/oj-navigation-list/index.ts +27 -0
  360. package/elements/oj-paging-control/OjPagingControl.js +13 -0
  361. package/elements/oj-paging-control/OjPagingControl.js.map +1 -0
  362. package/elements/oj-paging-control/OjPagingControl.ts +26 -0
  363. package/elements/oj-paging-control/OjPagingControlBase.js +29 -0
  364. package/elements/oj-paging-control/OjPagingControlBase.js.map +1 -0
  365. package/elements/oj-paging-control/OjPagingControlBase.ts +235 -0
  366. package/elements/oj-paging-control/index.js +17 -0
  367. package/elements/oj-paging-control/index.js.map +1 -0
  368. package/elements/oj-paging-control/index.ts +27 -0
  369. package/elements/oj-picto-chart/OjPictoChart.js +8 -0
  370. package/elements/oj-picto-chart/OjPictoChart.js.map +1 -0
  371. package/elements/oj-picto-chart/OjPictoChart.ts +12 -0
  372. package/elements/oj-picto-chart/OjPictoChartBase.js +86 -0
  373. package/elements/oj-picto-chart/OjPictoChartBase.js.map +1 -0
  374. package/elements/oj-picto-chart/OjPictoChartBase.ts +394 -0
  375. package/elements/oj-picto-chart/index.js +17 -0
  376. package/elements/oj-picto-chart/index.js.map +1 -0
  377. package/elements/oj-picto-chart/index.ts +27 -0
  378. package/elements/oj-popup/OjPopup.js +8 -0
  379. package/elements/oj-popup/OjPopup.js.map +1 -0
  380. package/elements/oj-popup/OjPopup.ts +11 -0
  381. package/elements/oj-popup/OjPopupBase.js +29 -0
  382. package/elements/oj-popup/OjPopupBase.js.map +1 -0
  383. package/elements/oj-popup/OjPopupBase.ts +155 -0
  384. package/elements/oj-popup/index.js +17 -0
  385. package/elements/oj-popup/index.js.map +1 -0
  386. package/elements/oj-popup/index.ts +27 -0
  387. package/elements/oj-progress/OjProgress.js +8 -0
  388. package/elements/oj-progress/OjProgress.js.map +1 -0
  389. package/elements/oj-progress/OjProgress.ts +12 -0
  390. package/elements/oj-progress/OjProgressBase.js +23 -0
  391. package/elements/oj-progress/OjProgressBase.js.map +1 -0
  392. package/elements/oj-progress/OjProgressBase.ts +65 -0
  393. package/elements/oj-progress/index.js +17 -0
  394. package/elements/oj-progress/index.js.map +1 -0
  395. package/elements/oj-progress/index.ts +27 -0
  396. package/elements/oj-progress-list/OjProgressList.js +8 -0
  397. package/elements/oj-progress-list/OjProgressList.js.map +1 -0
  398. package/elements/oj-progress-list/OjProgressList.ts +12 -0
  399. package/elements/oj-progress-list/OjProgressListBase.js +11 -0
  400. package/elements/oj-progress-list/OjProgressListBase.js.map +1 -0
  401. package/elements/oj-progress-list/OjProgressListBase.ts +21 -0
  402. package/elements/oj-progress-list/index.js +17 -0
  403. package/elements/oj-progress-list/index.js.map +1 -0
  404. package/elements/oj-progress-list/index.ts +27 -0
  405. package/elements/oj-radioset/OjRadioset.js +32 -0
  406. package/elements/oj-radioset/OjRadioset.js.map +1 -0
  407. package/elements/oj-radioset/OjRadioset.ts +63 -0
  408. package/elements/oj-radioset/OjRadiosetBase.js +68 -0
  409. package/elements/oj-radioset/OjRadiosetBase.js.map +1 -0
  410. package/elements/oj-radioset/OjRadiosetBase.ts +262 -0
  411. package/elements/oj-radioset/index.js +17 -0
  412. package/elements/oj-radioset/index.js.map +1 -0
  413. package/elements/oj-radioset/index.ts +27 -0
  414. package/elements/oj-rating-gauge/OjRatingGauge.js +8 -0
  415. package/elements/oj-rating-gauge/OjRatingGauge.js.map +1 -0
  416. package/elements/oj-rating-gauge/OjRatingGauge.ts +12 -0
  417. package/elements/oj-rating-gauge/OjRatingGaugeBase.js +80 -0
  418. package/elements/oj-rating-gauge/OjRatingGaugeBase.js.map +1 -0
  419. package/elements/oj-rating-gauge/OjRatingGaugeBase.ts +424 -0
  420. package/elements/oj-rating-gauge/index.js +17 -0
  421. package/elements/oj-rating-gauge/index.js.map +1 -0
  422. package/elements/oj-rating-gauge/index.ts +27 -0
  423. package/elements/oj-refresher/OjRefresher.js +8 -0
  424. package/elements/oj-refresher/OjRefresher.js.map +1 -0
  425. package/elements/oj-refresher/OjRefresher.ts +12 -0
  426. package/elements/oj-refresher/OjRefresherBase.js +20 -0
  427. package/elements/oj-refresher/OjRefresherBase.js.map +1 -0
  428. package/elements/oj-refresher/OjRefresherBase.ts +64 -0
  429. package/elements/oj-refresher/index.js +17 -0
  430. package/elements/oj-refresher/index.js.map +1 -0
  431. package/elements/oj-refresher/index.ts +27 -0
  432. package/elements/oj-row-expander/OjRowExpander.js +8 -0
  433. package/elements/oj-row-expander/OjRowExpander.js.map +1 -0
  434. package/elements/oj-row-expander/OjRowExpander.ts +12 -0
  435. package/elements/oj-row-expander/OjRowExpanderBase.js +20 -0
  436. package/elements/oj-row-expander/OjRowExpanderBase.js.map +1 -0
  437. package/elements/oj-row-expander/OjRowExpanderBase.ts +76 -0
  438. package/elements/oj-row-expander/index.js +17 -0
  439. package/elements/oj-row-expander/index.js.map +1 -0
  440. package/elements/oj-row-expander/index.ts +27 -0
  441. package/elements/oj-select-many/OjSelectMany.js +51 -0
  442. package/elements/oj-select-many/OjSelectMany.js.map +1 -0
  443. package/elements/oj-select-many/OjSelectMany.ts +80 -0
  444. package/elements/oj-select-many/OjSelectManyBase.js +89 -0
  445. package/elements/oj-select-many/OjSelectManyBase.js.map +1 -0
  446. package/elements/oj-select-many/OjSelectManyBase.ts +387 -0
  447. package/elements/oj-select-many/index.js +17 -0
  448. package/elements/oj-select-many/index.js.map +1 -0
  449. package/elements/oj-select-many/index.ts +27 -0
  450. package/elements/oj-select-one/OjSelectOne.js +45 -0
  451. package/elements/oj-select-one/OjSelectOne.js.map +1 -0
  452. package/elements/oj-select-one/OjSelectOne.ts +70 -0
  453. package/elements/oj-select-one/OjSelectOneBase.js +89 -0
  454. package/elements/oj-select-one/OjSelectOneBase.js.map +1 -0
  455. package/elements/oj-select-one/OjSelectOneBase.ts +387 -0
  456. package/elements/oj-select-one/index.js +17 -0
  457. package/elements/oj-select-one/index.js.map +1 -0
  458. package/elements/oj-select-one/index.ts +27 -0
  459. package/elements/oj-select-single/OjSelectSingle.js +35 -0
  460. package/elements/oj-select-single/OjSelectSingle.js.map +1 -0
  461. package/elements/oj-select-single/OjSelectSingle.ts +51 -0
  462. package/elements/oj-select-single/OjSelectSingleBase.js +77 -0
  463. package/elements/oj-select-single/OjSelectSingleBase.js.map +1 -0
  464. package/elements/oj-select-single/OjSelectSingleBase.ts +303 -0
  465. package/elements/oj-select-single/index.js +17 -0
  466. package/elements/oj-select-single/index.js.map +1 -0
  467. package/elements/oj-select-single/index.ts +27 -0
  468. package/elements/oj-selector/OjSelector.js +13 -0
  469. package/elements/oj-selector/OjSelector.js.map +1 -0
  470. package/elements/oj-selector/OjSelector.ts +20 -0
  471. package/elements/oj-selector/OjSelectorBase.js +26 -0
  472. package/elements/oj-selector/OjSelectorBase.js.map +1 -0
  473. package/elements/oj-selector/OjSelectorBase.ts +66 -0
  474. package/elements/oj-selector/index.js +17 -0
  475. package/elements/oj-selector/index.js.map +1 -0
  476. package/elements/oj-selector/index.ts +27 -0
  477. package/elements/oj-slider/OjSlider.js +15 -0
  478. package/elements/oj-slider/OjSlider.js.map +1 -0
  479. package/elements/oj-slider/OjSlider.ts +25 -0
  480. package/elements/oj-slider/OjSliderBase.js +71 -0
  481. package/elements/oj-slider/OjSliderBase.js.map +1 -0
  482. package/elements/oj-slider/OjSliderBase.ts +259 -0
  483. package/elements/oj-slider/index.js +17 -0
  484. package/elements/oj-slider/index.js.map +1 -0
  485. package/elements/oj-slider/index.ts +27 -0
  486. package/elements/oj-spark-chart/OjSparkChart.js +8 -0
  487. package/elements/oj-spark-chart/OjSparkChart.js.map +1 -0
  488. package/elements/oj-spark-chart/OjSparkChart.ts +12 -0
  489. package/elements/oj-spark-chart/OjSparkChartBase.js +95 -0
  490. package/elements/oj-spark-chart/OjSparkChartBase.js.map +1 -0
  491. package/elements/oj-spark-chart/OjSparkChartBase.ts +431 -0
  492. package/elements/oj-spark-chart/index.js +17 -0
  493. package/elements/oj-spark-chart/index.js.map +1 -0
  494. package/elements/oj-spark-chart/index.ts +27 -0
  495. package/elements/oj-status-meter-gauge/OjStatusMeterGauge.js +8 -0
  496. package/elements/oj-status-meter-gauge/OjStatusMeterGauge.js.map +1 -0
  497. package/elements/oj-status-meter-gauge/OjStatusMeterGauge.ts +12 -0
  498. package/elements/oj-status-meter-gauge/OjStatusMeterGaugeBase.js +107 -0
  499. package/elements/oj-status-meter-gauge/OjStatusMeterGaugeBase.js.map +1 -0
  500. package/elements/oj-status-meter-gauge/OjStatusMeterGaugeBase.ts +491 -0
  501. package/elements/oj-status-meter-gauge/index.js +17 -0
  502. package/elements/oj-status-meter-gauge/index.js.map +1 -0
  503. package/elements/oj-status-meter-gauge/index.ts +27 -0
  504. package/elements/oj-stream-list/OjStreamList.js +70 -0
  505. package/elements/oj-stream-list/OjStreamList.js.map +1 -0
  506. package/elements/oj-stream-list/OjStreamList.ts +79 -0
  507. package/elements/oj-stream-list/OjStreamListBase.js +29 -0
  508. package/elements/oj-stream-list/OjStreamListBase.js.map +1 -0
  509. package/elements/oj-stream-list/OjStreamListBase.ts +109 -0
  510. package/elements/oj-stream-list/index.js +17 -0
  511. package/elements/oj-stream-list/index.js.map +1 -0
  512. package/elements/oj-stream-list/index.ts +27 -0
  513. package/elements/oj-sunburst/OjSunburst.js +8 -0
  514. package/elements/oj-sunburst/OjSunburst.js.map +1 -0
  515. package/elements/oj-sunburst/OjSunburst.ts +12 -0
  516. package/elements/oj-sunburst/OjSunburstBase.js +104 -0
  517. package/elements/oj-sunburst/OjSunburstBase.js.map +1 -0
  518. package/elements/oj-sunburst/OjSunburstBase.ts +512 -0
  519. package/elements/oj-sunburst/index.js +17 -0
  520. package/elements/oj-sunburst/index.js.map +1 -0
  521. package/elements/oj-sunburst/index.ts +27 -0
  522. package/elements/oj-swipe-actions/OjSwipeActions.js +19 -0
  523. package/elements/oj-swipe-actions/OjSwipeActions.js.map +1 -0
  524. package/elements/oj-swipe-actions/OjSwipeActions.ts +30 -0
  525. package/elements/oj-swipe-actions/OjSwipeActionsBase.js +11 -0
  526. package/elements/oj-swipe-actions/OjSwipeActionsBase.js.map +1 -0
  527. package/elements/oj-swipe-actions/OjSwipeActionsBase.ts +37 -0
  528. package/elements/oj-swipe-actions/index.js +17 -0
  529. package/elements/oj-swipe-actions/index.js.map +1 -0
  530. package/elements/oj-swipe-actions/index.ts +27 -0
  531. package/elements/oj-switch/OjSwitch.js +16 -0
  532. package/elements/oj-switch/OjSwitch.js.map +1 -0
  533. package/elements/oj-switch/OjSwitch.ts +26 -0
  534. package/elements/oj-switch/OjSwitchBase.js +56 -0
  535. package/elements/oj-switch/OjSwitchBase.js.map +1 -0
  536. package/elements/oj-switch/OjSwitchBase.ts +192 -0
  537. package/elements/oj-switch/index.js +17 -0
  538. package/elements/oj-switch/index.js.map +1 -0
  539. package/elements/oj-switch/index.ts +27 -0
  540. package/elements/oj-tab-bar/OjTabBar.js +8 -0
  541. package/elements/oj-tab-bar/OjTabBar.js.map +1 -0
  542. package/elements/oj-tab-bar/OjTabBar.ts +12 -0
  543. package/elements/oj-tab-bar/OjTabBarBase.js +50 -0
  544. package/elements/oj-tab-bar/OjTabBarBase.js.map +1 -0
  545. package/elements/oj-tab-bar/OjTabBarBase.ts +200 -0
  546. package/elements/oj-tab-bar/index.js +17 -0
  547. package/elements/oj-tab-bar/index.js.map +1 -0
  548. package/elements/oj-tab-bar/index.ts +27 -0
  549. package/elements/oj-table/OjTable.js +33 -0
  550. package/elements/oj-table/OjTable.js.map +1 -0
  551. package/elements/oj-table/OjTable.ts +52 -0
  552. package/elements/oj-table/OjTableBase.js +98 -0
  553. package/elements/oj-table/OjTableBase.js.map +1 -0
  554. package/elements/oj-table/OjTableBase.ts +702 -0
  555. package/elements/oj-table/index.js +17 -0
  556. package/elements/oj-table/index.js.map +1 -0
  557. package/elements/oj-table/index.ts +27 -0
  558. package/elements/oj-tag-cloud/OjTagCloud.js +8 -0
  559. package/elements/oj-tag-cloud/OjTagCloud.js.map +1 -0
  560. package/elements/oj-tag-cloud/OjTagCloud.ts +12 -0
  561. package/elements/oj-tag-cloud/OjTagCloudBase.js +68 -0
  562. package/elements/oj-tag-cloud/OjTagCloudBase.js.map +1 -0
  563. package/elements/oj-tag-cloud/OjTagCloudBase.ts +318 -0
  564. package/elements/oj-tag-cloud/index.js +17 -0
  565. package/elements/oj-tag-cloud/index.js.map +1 -0
  566. package/elements/oj-tag-cloud/index.ts +27 -0
  567. package/elements/oj-text-area/OjTextArea.js +10 -0
  568. package/elements/oj-text-area/OjTextArea.js.map +1 -0
  569. package/elements/oj-text-area/OjTextArea.ts +14 -0
  570. package/elements/oj-text-area/OjTextAreaBase.js +95 -0
  571. package/elements/oj-text-area/OjTextAreaBase.js.map +1 -0
  572. package/elements/oj-text-area/OjTextAreaBase.ts +365 -0
  573. package/elements/oj-text-area/index.js +17 -0
  574. package/elements/oj-text-area/index.js.map +1 -0
  575. package/elements/oj-text-area/index.ts +27 -0
  576. package/elements/oj-thematic-map/OjThematicMap.js +8 -0
  577. package/elements/oj-thematic-map/OjThematicMap.js.map +1 -0
  578. package/elements/oj-thematic-map/OjThematicMap.ts +12 -0
  579. package/elements/oj-thematic-map/OjThematicMapBase.js +119 -0
  580. package/elements/oj-thematic-map/OjThematicMapBase.js.map +1 -0
  581. package/elements/oj-thematic-map/OjThematicMapBase.ts +777 -0
  582. package/elements/oj-thematic-map/index.js +17 -0
  583. package/elements/oj-thematic-map/index.js.map +1 -0
  584. package/elements/oj-thematic-map/index.ts +27 -0
  585. package/elements/oj-time-axis/OjTimeAxis.js +8 -0
  586. package/elements/oj-time-axis/OjTimeAxis.js.map +1 -0
  587. package/elements/oj-time-axis/OjTimeAxis.ts +12 -0
  588. package/elements/oj-time-axis/OjTimeAxisBase.js +26 -0
  589. package/elements/oj-time-axis/OjTimeAxisBase.js.map +1 -0
  590. package/elements/oj-time-axis/OjTimeAxisBase.ts +176 -0
  591. package/elements/oj-time-axis/index.js +17 -0
  592. package/elements/oj-time-axis/index.js.map +1 -0
  593. package/elements/oj-time-axis/index.ts +27 -0
  594. package/elements/oj-timeline/OjTimeline.js +8 -0
  595. package/elements/oj-timeline/OjTimeline.js.map +1 -0
  596. package/elements/oj-timeline/OjTimeline.ts +12 -0
  597. package/elements/oj-timeline/OjTimelineBase.js +71 -0
  598. package/elements/oj-timeline/OjTimelineBase.js.map +1 -0
  599. package/elements/oj-timeline/OjTimelineBase.ts +715 -0
  600. package/elements/oj-timeline/index.js +17 -0
  601. package/elements/oj-timeline/index.js.map +1 -0
  602. package/elements/oj-timeline/index.ts +27 -0
  603. package/elements/oj-train/OjTrain.js +8 -0
  604. package/elements/oj-train/OjTrain.js.map +1 -0
  605. package/elements/oj-train/OjTrain.ts +12 -0
  606. package/elements/oj-train/OjTrainBase.js +20 -0
  607. package/elements/oj-train/OjTrainBase.js.map +1 -0
  608. package/elements/oj-train/OjTrainBase.ts +72 -0
  609. package/elements/oj-train/index.js +17 -0
  610. package/elements/oj-train/index.js.map +1 -0
  611. package/elements/oj-train/index.ts +27 -0
  612. package/elements/oj-tree-view/OjTreeView.js +80 -0
  613. package/elements/oj-tree-view/OjTreeView.js.map +1 -0
  614. package/elements/oj-tree-view/OjTreeView.ts +117 -0
  615. package/elements/oj-tree-view/OjTreeViewBase.js +35 -0
  616. package/elements/oj-tree-view/OjTreeViewBase.js.map +1 -0
  617. package/elements/oj-tree-view/OjTreeViewBase.ts +131 -0
  618. package/elements/oj-tree-view/index.js +17 -0
  619. package/elements/oj-tree-view/index.js.map +1 -0
  620. package/elements/oj-tree-view/index.ts +27 -0
  621. package/elements/oj-treemap/OjTreemap.js +8 -0
  622. package/elements/oj-treemap/OjTreemap.js.map +1 -0
  623. package/elements/oj-treemap/OjTreemap.ts +12 -0
  624. package/elements/oj-treemap/OjTreemapBase.js +110 -0
  625. package/elements/oj-treemap/OjTreemapBase.js.map +1 -0
  626. package/elements/oj-treemap/OjTreemapBase.ts +594 -0
  627. package/elements/oj-treemap/index.js +17 -0
  628. package/elements/oj-treemap/index.js.map +1 -0
  629. package/elements/oj-treemap/index.ts +27 -0
  630. package/elements/oj-waterfall-layout/OjWaterfallLayout.js +8 -0
  631. package/elements/oj-waterfall-layout/OjWaterfallLayout.js.map +1 -0
  632. package/elements/oj-waterfall-layout/OjWaterfallLayout.ts +12 -0
  633. package/elements/oj-waterfall-layout/OjWaterfallLayoutBase.js +23 -0
  634. package/elements/oj-waterfall-layout/OjWaterfallLayoutBase.js.map +1 -0
  635. package/elements/oj-waterfall-layout/OjWaterfallLayoutBase.ts +87 -0
  636. package/elements/oj-waterfall-layout/index.js +17 -0
  637. package/elements/oj-waterfall-layout/index.js.map +1 -0
  638. package/elements/oj-waterfall-layout/index.ts +27 -0
  639. package/index.js +164 -0
  640. package/index.js.map +1 -0
  641. package/index.ts +440 -0
  642. package/lib/Expectation.js +189 -0
  643. package/lib/Expectation.js.map +1 -0
  644. package/lib/Expectation.ts +272 -0
  645. package/lib/OjFetch.js +83 -0
  646. package/lib/OjFetch.js.map +1 -0
  647. package/lib/OjFetch.ts +158 -0
  648. package/lib/ScreenshotManager.js +113 -0
  649. package/lib/ScreenshotManager.js.map +1 -0
  650. package/lib/ScreenshotManager.ts +195 -0
  651. package/lib/driver-manager.js +89 -0
  652. package/lib/driver-manager.js.map +1 -0
  653. package/lib/driver-manager.ts +330 -0
  654. package/lib/driver-override.js +120 -0
  655. package/lib/driver-override.js.map +1 -0
  656. package/lib/driver-override.ts +255 -0
  657. package/lib/input-utils.js +24 -0
  658. package/lib/input-utils.js.map +1 -0
  659. package/lib/input-utils.ts +50 -0
  660. package/lib/slot-proxy.js +25 -0
  661. package/lib/slot-proxy.js.map +1 -0
  662. package/lib/slot-proxy.ts +61 -0
  663. package/lib/stale-element.js +29 -0
  664. package/lib/stale-element.js.map +1 -0
  665. package/lib/stale-element.ts +44 -0
  666. package/package.json +19 -0
  667. package/tsconfig.json +10 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Oracle Corporation. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE
package/README.md ADDED
@@ -0,0 +1,16 @@
1
+ # Oracle JET Component WebElements
2
+ Usage:
3
+
4
+ ```javascript
5
+ import ojwd from '@oracle/oraclejet-webdriver';
6
+ import {ojInputText, ...} from '@oracle/oraclejet-webdriver/elements';
7
+
8
+ describe('My suite of tests', function() {
9
+ it('can use Component WebElements', async function() {
10
+ let input = await ojInputText(driver, By.id('text-input-1'));
11
+ ...
12
+ })
13
+ })
14
+ ```
15
+
16
+ See [Testing JET UIs With WebDriver](https://confluence.oraclecorp.com/confluence/display/JET/Testing+JET+UIs+With+WebDriver) for details.
package/bin/generate ADDED
@@ -0,0 +1,509 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Generate a component WebElement package from its metadata descriptor
5
+ */
6
+
7
+ 'use strict';
8
+
9
+ const fs = require('fs');
10
+ const path = require('path');
11
+
12
+ // Map known types to an output type. Used by getSanitizedType() to ensure that
13
+ // component types can be mapped to valid TypeScript types.
14
+ const KNOWN_TYPES = {
15
+ // Known good types
16
+ boolean: 'boolean',
17
+ null: 'null',
18
+ number: 'number',
19
+ object: 'object',
20
+ string: 'string',
21
+ tuple: 'tuple',
22
+ undefined: 'undefined',
23
+ void: 'void',
24
+ any: 'any',
25
+ // Known bad types. Convert to valid types
26
+ function: 'null',
27
+ promise: 'null',
28
+ array: 'Array<unknown>'
29
+ };
30
+ // Map of reserved property names. Used to ensure that a superclass's mutator
31
+ // isn't overridden by one generated from properties.
32
+ const RESERVED_PROPS = {
33
+ metadata: 'metadataProperty',
34
+ size: 'sizeProperty',
35
+ text: 'textProperty'
36
+ };
37
+
38
+ const node = process.argv.shift();
39
+ const cmd = process.argv.shift();
40
+ const mdPath = process.argv.shift();
41
+ let pkgDir = process.argv.shift() || '.';
42
+
43
+ if (!mdPath) {
44
+ console.log(
45
+ '\nUsage: ' + path.basename(cmd) + ' <metadata|-> [<output dir>]'
46
+ );
47
+ console.log('\nwhere <metadata> is one of:');
48
+ console.log('\t- a file path to component metadata (component.json)');
49
+ console.log('\t- "-" read metadata from stdin');
50
+ return;
51
+ }
52
+
53
+ const templateDir = path.dirname(cmd) + path.sep + 'templates';
54
+
55
+ let className;
56
+ // Main function, executed as async IIFE so that we can await on getMetadata()
57
+ (async function() {
58
+ const mdContents = await getMetadata(mdPath);
59
+ const md = JSON.parse(mdContents);
60
+ const name = md.name;
61
+ const version = md.version || '0.0.1';
62
+ className = titleCase(name);
63
+ const camelName = camelCase(name);
64
+ const props = md.properties;
65
+
66
+ // Package output dir is CCA's name
67
+ pkgDir += path.sep + name;
68
+ mkDirParents(pkgDir);
69
+
70
+ // Copy package.json files
71
+ copy(
72
+ templateDir + path.sep + 'package.json-template',
73
+ pkgDir + path.sep + 'package.json',
74
+ {
75
+ '@NAME@': name,
76
+ '@CLASSNAME@': className,
77
+ '@VERSION@': version
78
+ }
79
+ );
80
+ // Copy tsconfig.json
81
+ copy(
82
+ templateDir + path.sep + 'tsconfig.json-template',
83
+ pkgDir + path.sep + 'tsconfig.json'
84
+ );
85
+
86
+ // Create baseclass.ts content
87
+ let content = [];
88
+ let types = [];
89
+ Object.keys(props || {}).forEach(propName => {
90
+ const properties = props[propName];
91
+ const typeDef = getTypeDefinition(propName, properties);
92
+ let type = typeDef.type;
93
+ const desc = getHTMLEscapedText(properties.description) || '';
94
+
95
+ if (type) {
96
+ // Extended properties for "object" type
97
+ if (typeDef.typeDecl.length) {
98
+ types = types.concat(typeDef.typeDecl);
99
+ }
100
+ // Writeback propertyes get "changeNNN" function
101
+ if (properties && properties.writeback && !properties.readOnly) {
102
+ content = content.concat(indent(getSetterContent(propName, type, desc)));
103
+ }
104
+ content = content.concat(indent(getGetterContent(propName, type, desc)));
105
+ }
106
+ });
107
+
108
+ // If extended properties for "object" type, wrap definitions in namespace
109
+ if (types.length) {
110
+ indent(types);
111
+ types.unshift(`\nnamespace ${className}Base {`);
112
+ types.push('}');
113
+ }
114
+
115
+ copy(
116
+ templateDir + path.sep + 'baseclass.ts-template',
117
+ pkgDir + path.sep + className + 'Base.ts',
118
+ {
119
+ '@CLASSNAME@': className,
120
+ '@CONTENT@': content.join('\n'),
121
+ '@TYPES@': types.join('\n')
122
+ }
123
+ );
124
+
125
+ copy(
126
+ templateDir + path.sep + 'class.ts-template',
127
+ pkgDir + path.sep + className + '.ts',
128
+ {
129
+ '@NAME@': name,
130
+ '@CLASSNAME@': className,
131
+ '@CAMELNAME@': camelName
132
+ }
133
+ );
134
+ copy(
135
+ templateDir + path.sep + 'index.ts-template',
136
+ pkgDir + path.sep + 'index.ts',
137
+ {
138
+ '@NAME@': name,
139
+ '@CLASSNAME@': className,
140
+ '@CAMELNAME@': camelName
141
+ }
142
+ );
143
+
144
+ copy(
145
+ templateDir + path.sep + 'element-test.spec.ts-template',
146
+ pkgDir + path.sep + 'element-test.spec.ts',
147
+ {
148
+ '@NAME@': name,
149
+ '@CAMELNAME@': camelName
150
+ }
151
+ );
152
+
153
+ console.log('Generated WebElement package in ' + pkgDir);
154
+ })();
155
+
156
+ /**
157
+ * Get the data type for the given declared type. This function ensures that
158
+ * the declared type is legal in TypeScript by checking for known types in JET
159
+ * components that should be mapped to others.
160
+ * @param {string} name The property's name
161
+ * @param {object} props The property's object describing itself
162
+ * @return {object} An object describing the data type. Object keys are "type" "typeDecl"
163
+ * <code>
164
+ * {
165
+ * "type": string,
166
+ * "typeDecl": string[]
167
+ * }
168
+ * </code>
169
+ */
170
+ function getTypeDefinition(name, props) {
171
+ const origType = getSanitizedType(props.type);
172
+ const types = (origType || '').split('|');
173
+ let decls = [];
174
+ // Iterate through all types if multiples exist ("string|number|...")
175
+ types.forEach(function(type, i) {
176
+ if (type.match(/^object$|Array<object>/i)) {
177
+ const decl = getObjectType(name, type, props);
178
+ types[i] = decl.type;
179
+ decls = decls.concat(decl.typeDecl);
180
+ }
181
+ });
182
+ return {
183
+ type: types.join('|'),
184
+ typeDecl: decls
185
+ };
186
+ }
187
+
188
+ /**
189
+ * Get the data type for the given declared type. This function ensures that
190
+ * the declared type is legal in TypeScript by checking for known types in JET
191
+ * components that should be mapped to others.
192
+ * JET-specific types such as KeySet, DataProvider cannot be converted to TypeScript,
193
+ * and this function will return 'undefined' or anything it doesn't know about.
194
+ * @param {string} origType The original delcared data type
195
+ * @return {string} The data type inferred from the declared type, or undefined
196
+ * if no known good type exists.
197
+ */
198
+ function getSanitizedType(origType) {
199
+ if (!origType) {
200
+ return origType;
201
+ }
202
+ // Check for multiple types "string|number|object ..."
203
+ if (origType.indexOf('|') > -1) {
204
+ let parts = [];
205
+ origType.split('|').forEach(type => {
206
+ type = getSanitizedType(type);
207
+ type && parts.push(type);
208
+ });
209
+ return parts.join('|');
210
+ }
211
+ // Check against KNOWN_TYPES for mapped data type
212
+ let sanitizedType = KNOWN_TYPES[origType.toLowerCase()];
213
+ // Parameterized types
214
+ const typeParams = origType.match(/([a-z\.]+)<(.+?)>/i);
215
+ if (typeParams) {
216
+ const generic = typeParams[1];
217
+ const params = typeParams[2];
218
+ // Paramterized Object not supported
219
+ if (generic.match(/^object/i)) {
220
+ sanitizedType = 'unknown';
221
+ }
222
+ else {
223
+ // Get sanitized type for each param type
224
+ const paramTypes = [];
225
+ params.split(',').forEach(p => {
226
+ const sp = getSanitizedType(p);
227
+ sp && paramTypes.push(sp);
228
+ });
229
+ if (paramTypes.length) {
230
+ sanitizedType = `${generic}<${paramTypes.join(',')}>`;
231
+ }
232
+ }
233
+ }
234
+ return sanitizedType;
235
+ }
236
+
237
+ /**
238
+ * Given a property whose type is "object" or "Array<object>", get its Type
239
+ * definition.
240
+ * @param {string} name The property's name
241
+ * @param {string} type The property's type
242
+ * @param {object} props The property descriptor, whose own "properties" object will
243
+ * be converted to a type declaration
244
+ * @return {object} An object containing the Type declaration for the properties, i.e.
245
+ * "type" - a type string
246
+ * "typeDecl" - array of strings containing any type definitions for the generic
247
+ * object types
248
+ */
249
+ function getObjectType(name, type, props) {
250
+ let buf = [];
251
+ const typeProps = type.match(/^array</i)
252
+ ? getProperty('extension.vbdt.itemProperties', props)
253
+ : props.properties;
254
+
255
+ if (typeProps) {
256
+ const typeInArray = type.match(/^Array/);
257
+ type = titleCase(name);
258
+ buf.push('export interface ' + type + ' {');
259
+ // Add on namespace to type
260
+ type = `${className}Base.${type}`;
261
+ if (typeInArray) {
262
+ type = 'Array<' + type + '>';
263
+ }
264
+ let nestedDecl = [];
265
+ // Iterate through all property types and build their definitions
266
+ Object.keys(typeProps).forEach(prop => {
267
+ const desc = getHTMLEscapedText(typeProps[prop].description) || '';
268
+ let type = getSanitizedType(typeProps[prop].type);
269
+ // Nested object type
270
+ if (type && type.match(/object|Array<object>/i)) {
271
+ const decl = getObjectType(
272
+ name + titleCase(prop),
273
+ type,
274
+ typeProps[prop]
275
+ );
276
+ type = decl.type;
277
+ nestedDecl = nestedDecl.concat(decl.typeDecl);
278
+ }
279
+ if (type && type !== 'null') {
280
+ buf = buf.concat(indent(['/**', ' * ' + desc, ' */']));
281
+ buf = buf.concat(indent(['"' + prop + '": ' + type + ';']));
282
+ }
283
+ });
284
+ buf.push('}');
285
+ buf = buf.concat(nestedDecl);
286
+ }
287
+ return {
288
+ type: type,
289
+ typeDecl: buf
290
+ };
291
+ }
292
+
293
+ /**
294
+ * Convenience function to retrieve a property within an object using dot-notation.
295
+ * This is espcially useful when a nested property's parents MAY NOT exist, and
296
+ * we don't want to have to test for every parent level to get to the property.
297
+ * @param {string} propName The dot-notated property name
298
+ * @param {object} obj The root object in which to search for the property
299
+ * @return {any} The property value
300
+ */
301
+ function getProperty(propName, obj) {
302
+ if (!obj) {
303
+ return obj;
304
+ }
305
+ if (propName in obj) {
306
+ return obj[propName];
307
+ } else if (propName.match(/\./)) {
308
+ const parts = propName.split('.');
309
+ const root = parts.shift();
310
+ return getProperty(parts.join('.'), obj[root]);
311
+ }
312
+ }
313
+
314
+ /**
315
+ * Ensure that the given text is sanitized so that it can be displayed as markup.
316
+ * @param {string} text The text to be sanitized
317
+ * @return {string} The HTML-sanitized text
318
+ */
319
+ function getHTMLEscapedText(text) {
320
+ text = (text || '').replace(/</g, '&lt;');
321
+ return text;
322
+ }
323
+
324
+ /**
325
+ * Convenience function to create a nested directory and all of its parents, if
326
+ * necessary. Equivalent to "mkdir -p my/child/dir"
327
+ * @param {string} dirname The path-separated directory name
328
+ */
329
+ function mkDirParents(dirname) {
330
+ // Loop thru dirnames to make parent dirs
331
+ const parents = [];
332
+ dirname.split(path.sep).forEach(function(dir) {
333
+ try {
334
+ parents.push(dir);
335
+ fs.mkdirSync(parents.join(path.sep));
336
+ } catch (e) {}
337
+ });
338
+ }
339
+
340
+ /**
341
+ * Get the accessor function name for the given property
342
+ * @param {string} prop The property name
343
+ * @return {string} The property's accessor name
344
+ */
345
+ function getGetterName(prop) {
346
+ prop = getAlternativePropName(prop);
347
+ return 'get' + titleCase(prop);
348
+ }
349
+ /**
350
+ * Get the mutator functio nname for the given property
351
+ * @param {string} prop The property name
352
+ * @return {string} The property's mutator name
353
+ */
354
+ function getSetterName(prop) {
355
+ prop = getAlternativePropName(prop);
356
+ return 'change' + titleCase(prop);
357
+ }
358
+ /**
359
+ * Get an alternate name for the given property name, if one exists. This function
360
+ * checks against reserved property names which shouldn't be overridden. If the
361
+ * given property name is reserved, it will return an alternative name, otherwise,
362
+ * it will return the same (given) name.
363
+ * @param {string} prop The property name
364
+ * @return {string} The alternative property name or the original one, if not
365
+ * reserved.
366
+ */
367
+ function getAlternativePropName(prop) {
368
+ return RESERVED_PROPS[prop] || prop;
369
+ }
370
+
371
+ /**
372
+ * Get the contents of the accessor (getter) function for the given property.
373
+ * @param {string} prop The property name to be set
374
+ * @param {string} type The property type
375
+ * @param {string=} desc An optional description of the property
376
+ * @return {string} The getter function contents
377
+ */
378
+ function getGetterContent(prop, type, desc) {
379
+ const func = getGetterName(prop);
380
+ return [
381
+ '/**',
382
+ ' * Gets the value of "' + prop + '" property.',
383
+ ' * ' + desc,
384
+ ' * @return The value of "' + prop + '" property.',
385
+ ' */',
386
+ 'public ' + func + '(): Promise<' + type + '> {',
387
+ ' return this.getProperty<' + type + '>("' + prop + '");',
388
+ '}',
389
+ ''
390
+ ];
391
+ }
392
+
393
+ /**
394
+ * Get the contents of the mutator (setter) function for the given property.
395
+ * @param {string} prop The property name to be set
396
+ * @param {string} type The property type
397
+ * @param {string=} desc An optional description of the property
398
+ * @return {string} The setter function contents
399
+ */
400
+ function getSetterContent(prop, type, desc) {
401
+ const func = getSetterName(prop);
402
+ return [
403
+ '/**',
404
+ ' * Sets the value of "' + prop + '" property.',
405
+ ' * ' + desc,
406
+ ' * @param ' + prop + ' The value to set for "' + prop + '"',
407
+ ' */',
408
+ 'public ' + func + '(' + prop + ': ' + type + '): Promise<void> {',
409
+ ' return this.setProperty<' + type + '>("' + prop + '", ' + prop + ');',
410
+ '}',
411
+ ''
412
+ ];
413
+ }
414
+
415
+ /**
416
+ * Convert 'dashed-name' to 'dashedName'
417
+ * @param {string} name
418
+ * @return {string} The camel-cased name
419
+ */
420
+ function camelCase(name) {
421
+ return name.replace(/[^a-z0-9](.)/gi, function(v) {
422
+ return v[1].toUpperCase();
423
+ });
424
+ }
425
+
426
+ /**
427
+ * Convert 'dashed-name' to 'DashedName'
428
+ * @param {string} name
429
+ * @return {string} The title-cased name
430
+ */
431
+ function titleCase(name) {
432
+ name = camelCase(name);
433
+ return name.charAt(0).toUpperCase() + name.substring(1);
434
+ }
435
+
436
+ /**
437
+ * Indent lines by padding with the given number of spaces. This function modifies
438
+ * the contents of the original array inline.
439
+ * @param {string[]} src The original source array of lines to indent
440
+ * @param {number=} spaces Optional spaces to indent. Defaults to 2
441
+ * @return {Array<string>} The original src string[]
442
+ */
443
+ function indent(src, spaces) {
444
+ if (spaces === undefined) {
445
+ spaces = 2;
446
+ }
447
+ for (let i = 0, len = src.length; i < len; i++) {
448
+ const line = src[i];
449
+ if (line) {
450
+ src[i] = new Array(spaces + 1).join(' ') + line;
451
+ }
452
+ }
453
+ return src;
454
+ }
455
+
456
+ /**
457
+ * Copy the contents of the source file to the destination, optionally substituting
458
+ * key values. If the destination file exists, its contents won't be overwritten.
459
+ * @param {string} src The path to the source file
460
+ * @param {string} dest The path to the destination file
461
+ * @param {object} filters An object of filters to replace during the copy. The
462
+ * object keys are the tokens to be replaced with their values.
463
+ */
464
+ function copy(src, dest, filters) {
465
+ let contents = fs.readFileSync(src, 'utf8');
466
+ Object.keys(filters || {}).forEach(function(key) {
467
+ // Use function to return 'val' to prevent values containing RegExp
468
+ // patterns like "$&" from repeating the key
469
+ function val() { return filters[key]; }
470
+ while (contents.indexOf(key) > -1) {
471
+ contents = contents.replace(key, val);
472
+ }
473
+ });
474
+ fs.writeFileSync(dest, contents, { mode: 0o644 });
475
+ }
476
+
477
+ /**
478
+ * Get the metadata given the metadata path. If the path is "-", read from stdin.
479
+ * @param {string} mdPath The path to the metadata. Can be a file path or stdin.
480
+ * @return {string} The metadata JSON contents
481
+ */
482
+ async function getMetadata(mdPath) {
483
+ let md;
484
+ if (mdPath === '-') {
485
+ md = await readStdin();
486
+ } else {
487
+ md = fs.readFileSync(mdPath, 'utf8');
488
+ }
489
+ return md;
490
+ }
491
+
492
+ /**
493
+ * Fetch the JET metadata object for the given element, whose name is embedded
494
+ * as the "&element=" parameter in the URL.
495
+ *
496
+ * @return Promise<string> A Promise which resolves to the metadata contents string
497
+ */
498
+ function readStdin() {
499
+ process.stdin.resume();
500
+ process.stdin.setEncoding('utf8');
501
+
502
+ const md = [];
503
+ return new Promise(function(resolve, reject) {
504
+ process.stdin.on('data', chunk => {
505
+ md.push(chunk);
506
+ });
507
+ process.stdin.on('end', () => resolve(md.join('\n')));
508
+ });
509
+ }
@@ -0,0 +1,163 @@
1
+ #!/usr/bin/env node
2
+
3
+ 'use strict';
4
+
5
+ /*
6
+ * Iterate through JET component metadata files to generate WebElements. This
7
+ * script takes either a directory, from which it will scan for all *.json files,
8
+ * or a single JSON file.
9
+ * The file(s) are passed to the "generate" utility to create the component
10
+ * WebElement package.
11
+ */
12
+ const {spawnSync} = require('child_process');
13
+ const fs = require('fs');
14
+ const path = require('path');
15
+
16
+ const node = process.argv.shift();
17
+ const cmd = process.argv.shift();
18
+ let allComps = process.argv.shift();
19
+ const pkgRoot = path.dirname(cmd)+path.sep+'..'
20
+ const generate = [pkgRoot, 'bin', 'generate'].join(path.sep);
21
+ const elements = pkgRoot+path.sep+'elements';
22
+ const output = pkgRoot+path.sep+'generated';
23
+
24
+ if (!allComps) {
25
+ console.log('\nUsage: ' +path.basename(cmd)+ ' <JET allComponents.json metadata file>');
26
+ return;
27
+ }
28
+
29
+ // Create 'generated' output dir--try/catch in case it already exists
30
+ try {
31
+ fs.mkdirSync(output);
32
+ } catch (ex) {
33
+ console.warn(ex.message);
34
+ }
35
+
36
+ const compUrlsFile = path.dirname(cmd)+path.sep+'templates'+path.sep+'jetcomponents.json';
37
+ const compUrls = JSON.parse(fs.readFileSync(compUrlsFile), 'utf8');
38
+
39
+ // Generate individual files from allComponents.json so that 'generate' script
40
+ // can read them
41
+ let files = [];
42
+ const comps = JSON.parse(fs.readFileSync(allComps), 'utf8').components;
43
+ Object.keys(comps).forEach((key) => {
44
+ let file = [output, key + '.json'].join(path.sep);
45
+ files.push(file);
46
+ let contents = JSON.stringify(comps[key], null, 2);
47
+ fs.writeFileSync(file, contents, {mode: 0o644});
48
+ });
49
+
50
+ files.forEach((absFile) => {
51
+ if (absFile.match(/\.json$/)) {
52
+ // Test if element name exists in whitelist
53
+ let md = JSON.parse(fs.readFileSync(absFile), 'utf8');
54
+ if (compUrls.indexOf(md.name) > -1) {
55
+ let out = spawnSync(node, [generate, absFile, output]);
56
+ const err = out.stderr.toString();
57
+ if (!err) {
58
+ postProcess(md.name);
59
+ console.log(out.output.join(''));
60
+ }
61
+ else {
62
+ throw err;
63
+ }
64
+ }
65
+ }
66
+ });
67
+
68
+ updateIndex();
69
+
70
+ /**
71
+ * Post-process the 'generate' output files. Copies the generated content (from
72
+ * "generated" dir) to the repo directory, "elements."
73
+ * @param name The element tag name
74
+ */
75
+ function postProcess(name) {
76
+ const className = titleCase(name);
77
+ const classFile = className+'.ts';
78
+ const elementDir = getElementDir(name);
79
+
80
+ if (!fs.existsSync(elementDir)) {
81
+ fs.mkdirSync(elementDir);
82
+ }
83
+
84
+ // index.ts - always replace
85
+ let indexFile = getOutputFile(name, 'index.ts');
86
+ let indexContent = fs.readFileSync(indexFile).toString();
87
+ indexContent = indexContent
88
+ .replace(/@oracle\/oraclejet-webdriver/g, '../../')
89
+ fs.writeFileSync(indexFile, indexContent);
90
+ fs.copyFileSync(indexFile, getElementFile(name, 'index.ts'));
91
+ // <ClassName>.ts - copy only if doesn't already exist
92
+ let classFilePath = getElementFile(name, classFile);
93
+ if (!fs.existsSync(classFilePath)) {
94
+ fs.copyFileSync(getOutputFile(name, classFile), classFilePath);
95
+ }
96
+ // <ClassName>Base.ts - always replace
97
+ const baseName = className+'Base';
98
+ let baseFile = getOutputFile(name, baseName+'.ts');
99
+ let baseContent = fs.readFileSync(baseFile).toString();
100
+ baseContent = baseContent
101
+ .replace(/@oracle\/oraclejet-webdriver\/elements/g, '../')
102
+ fs.writeFileSync(baseFile, baseContent);
103
+ fs.copyFileSync(baseFile, getElementFile(name, baseName+'.ts'));
104
+ // Remove unneeded files
105
+ fs.unlinkSync(getOutputFile(name, 'element-test.spec.ts'));
106
+ fs.unlinkSync(getOutputFile(name, 'package.json'));
107
+ fs.unlinkSync(getOutputFile(name, 'tsconfig.json'));
108
+ }
109
+
110
+ /**
111
+ * Update elements/index.ts to include all of the WebElements and their convenience
112
+ * functions to be exported.
113
+ */
114
+ function updateIndex() {
115
+ const indexFile = `${elements}/index.ts`;
116
+ const buffer = [`/**
117
+ * This file aggregates all JET WebElements together into a single module, and
118
+ * is generated by the build. DO NOT hand-edit this file as its contents will be
119
+ * overwritten.
120
+ */
121
+ export { ojWebElement, OjWebElement } from "./OjWebElement";`
122
+ ];
123
+ fs.readdirSync(elements).forEach(dir => {
124
+ // Test if "index.ts" exists under the directory
125
+ if (fs.existsSync(`${elements}${path.sep}${dir}${path.sep}index.ts`)) {
126
+ const className = titleCase(dir);
127
+ const helperName = camelCase(dir);
128
+ buffer.push(
129
+ `export { ${helperName}, ${className} } from "./${dir}";`
130
+ );
131
+ }
132
+ });
133
+ fs.writeFileSync(indexFile, buffer.join('\n'));
134
+ }
135
+
136
+ function getOutputFile(name, file) {
137
+ return output + path.sep + name + path.sep + file;
138
+ }
139
+ function getElementDir(name) {
140
+ return elements + path.sep + name;
141
+ }
142
+ function getElementFile(name, file) {
143
+ return getElementDir(name) + path.sep + file;
144
+ }
145
+
146
+ /**
147
+ * Convert 'dashed-name' to 'dashedName'
148
+ * @param {string} name
149
+ */
150
+ function camelCase(name) {
151
+ return name.replace(/[^a-z0-9](.)/ig, function(v) {
152
+ return v[1].toUpperCase()
153
+ });
154
+ }
155
+
156
+ /**
157
+ * Convert 'dashed-name' to 'DashedName'
158
+ * @param {string} name
159
+ */
160
+ function titleCase(name) {
161
+ name = camelCase(name);
162
+ return name.charAt(0).toUpperCase()+name.substring(1);
163
+ }