b2adminui 1.0.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 (782) hide show
  1. package/Dockerfile +45 -0
  2. package/app-config-prod.json +6 -0
  3. package/app-config.json +10 -0
  4. package/b2@1.0.0 +0 -0
  5. package/bs-config.json +8 -0
  6. package/config/helpers.js +10 -0
  7. package/config/karma-test-shim.js +21 -0
  8. package/config/karma.conf.js +37 -0
  9. package/config/webpack.common.js +96 -0
  10. package/config/webpack.dev.js +24 -0
  11. package/config/webpack.eks.js +72 -0
  12. package/config/webpack.prod.js +72 -0
  13. package/config/webpack.test.js +53 -0
  14. package/default.nginx.config +60 -0
  15. package/docker-entrypoint.sh +6 -0
  16. package/e2e-spec.ts +21 -0
  17. package/favicon.ico +0 -0
  18. package/karma.webpack.conf.js +1 -0
  19. package/npm +0 -0
  20. package/package.json +144 -0
  21. package/rimraf +0 -0
  22. package/src/app/app-config.ts +21 -0
  23. package/src/app/app-routing.module.ts +165 -0
  24. package/src/app/app.component.ts +30 -0
  25. package/src/app/app.module.ts +72 -0
  26. package/src/app/auth/auth.guard.ts +192 -0
  27. package/src/app/customer-management/customer-management.module.ts +52 -0
  28. package/src/app/customer-management/customer-personal-details/components/customer-personal-details.component.ts +766 -0
  29. package/src/app/customer-management/customer-personal-details/customer-personal-details.component.css +4 -0
  30. package/src/app/customer-management/customer-personal-details/customer-personal-details.component.html +812 -0
  31. package/src/app/customer-management/customer-personal-details/models/companyrisksetting.model.ts +65 -0
  32. package/src/app/customer-management/customer-profile-history-list/components/customer-profile-history-list.component.ts +149 -0
  33. package/src/app/customer-management/customer-profile-history-list/customer-profile-history-list.component.html +104 -0
  34. package/src/app/customer-management/customer-profile-history-list/models/customer-profile-history-list.model.ts +33 -0
  35. package/src/app/customer-management/customer-profile-history-list/models/index.ts +1 -0
  36. package/src/app/customer-management/customer-registration/components/customer-registration.component.ts +1567 -0
  37. package/src/app/customer-management/customer-registration/customer-registration.component.css +6 -0
  38. package/src/app/customer-management/customer-registration/customer-registration.component.html +1140 -0
  39. package/src/app/customer-management/customer-registration/models/approve-customer.model.ts +5 -0
  40. package/src/app/customer-management/customer-registration/models/index.ts +1 -0
  41. package/src/app/customer-management/customer-registration/models/wallet-registration.model.ts +191 -0
  42. package/src/app/customer-management/customer-registration-list/components/customer-registration-list.component.ts +444 -0
  43. package/src/app/customer-management/customer-registration-list/customer-registration-list.component.html +350 -0
  44. package/src/app/customer-management/customer-registration-list/models/index.ts +2 -0
  45. package/src/app/customer-management/customer-registration-list/models/wallet-list.model.ts +41 -0
  46. package/src/app/customer-management/customer-registration-list/models/wallet.model.ts +13 -0
  47. package/src/app/customer-management/manual-topup/components/manual-topup.component.ts +299 -0
  48. package/src/app/customer-management/manual-topup/manual-topup.component.html +173 -0
  49. package/src/app/customer-management/manual-topup/models/index.ts +1 -0
  50. package/src/app/customer-management/manual-topup/models/manual-topup.model.ts +17 -0
  51. package/src/app/customer-management/wallet-balance-history/components/wallet-balance-history.component.ts +243 -0
  52. package/src/app/customer-management/wallet-balance-history/models/balance-history-list.model.ts +25 -0
  53. package/src/app/customer-management/wallet-balance-history/models/balance-history.model.ts +13 -0
  54. package/src/app/customer-management/wallet-balance-history/models/index.ts +3 -0
  55. package/src/app/customer-management/wallet-balance-history/models/wallet.model.ts +13 -0
  56. package/src/app/customer-management/wallet-balance-history/wallet-balance-history.component.html +182 -0
  57. package/src/app/customer-management/wallet-history/components/wallet-history.component.ts +239 -0
  58. package/src/app/customer-management/wallet-history/models/index.ts +2 -0
  59. package/src/app/customer-management/wallet-history/models/wallet-history-list.model.ts +11 -0
  60. package/src/app/customer-management/wallet-history/models/wallet-history.model.ts +10 -0
  61. package/src/app/customer-management/wallet-history/wallet-history.component.html +85 -0
  62. package/src/app/external-change-password/components/external-change-password.component.ts +71 -0
  63. package/src/app/external-change-password/external-change-password.component.html +57 -0
  64. package/src/app/external-change-password/models/external-change-password.model.ts +6 -0
  65. package/src/app/fee-management/company/company.component.html +491 -0
  66. package/src/app/fee-management/company/components/company.component.ts +472 -0
  67. package/src/app/fee-management/company/models/company.model.ts +55 -0
  68. package/src/app/fee-management/company/models/index.ts +1 -0
  69. package/src/app/fee-management/company-wallet-profile/company-wallet-profile.component.html +161 -0
  70. package/src/app/fee-management/company-wallet-profile/components/company-wallet-profile.component.ts +194 -0
  71. package/src/app/fee-management/fee-management.module.ts +51 -0
  72. package/src/app/fee-management/menu-setup/models/menu-setup.model.ts +75 -0
  73. package/src/app/fee-management/wallet-fee-setting/components/wallet-fee-setting.component.ts +337 -0
  74. package/src/app/fee-management/wallet-fee-setting/models/index.ts +7 -0
  75. package/src/app/fee-management/wallet-fee-setting/models/transfer-fee.model.ts +32 -0
  76. package/src/app/fee-management/wallet-fee-setting/models/verify-risk-level.model.ts +7 -0
  77. package/src/app/fee-management/wallet-fee-setting/models/wallet-fee-setting.model.ts +32 -0
  78. package/src/app/fee-management/wallet-fee-setting/models/wallet-setting.model.ts +17 -0
  79. package/src/app/fee-management/wallet-fee-setting/models/wallet.model.ts +28 -0
  80. package/src/app/fee-management/wallet-fee-setting/wallet-fee-setting.component.html +1226 -0
  81. package/src/app/fee-management/wallet-profile-limit-setting/components/wallet-profile-limit-setting.component.ts +284 -0
  82. package/src/app/fee-management/wallet-profile-limit-setting/models/index.ts +1 -0
  83. package/src/app/fee-management/wallet-profile-limit-setting/models/wallet-profile-limit-setting.model.ts +79 -0
  84. package/src/app/fee-management/wallet-profile-limit-setting/wallet-profile-limit-setting.component.html +1285 -0
  85. package/src/app/fee-management/wallet-profile-setting-list/components/wallet-profile-setting-list.component.ts +350 -0
  86. package/src/app/fee-management/wallet-profile-setting-list/models/index.ts +2 -0
  87. package/src/app/fee-management/wallet-profile-setting-list/models/wallet-profile-setting-list.model.ts +36 -0
  88. package/src/app/fee-management/wallet-profile-setting-list/models/wallet-profile-setting.model.ts +12 -0
  89. package/src/app/fee-management/wallet-profile-setting-list/wallet-profile-setting-list.component.html +220 -0
  90. package/src/app/fee-management/wallet-topup/components/wallet-topup.component.ts +209 -0
  91. package/src/app/fee-management/wallet-topup/models/index.ts +3 -0
  92. package/src/app/fee-management/wallet-topup/models/wallet-topup.model.ts +11 -0
  93. package/src/app/fee-management/wallet-topup/wallet-topup.component.html +97 -0
  94. package/src/app/forgot-password/components/forgot-password.component.ts +87 -0
  95. package/src/app/forgot-password/forgot-password.component.html +40 -0
  96. package/src/app/forgot-password/models/forgot-password.model.ts +5 -0
  97. package/src/app/forgot-password/models/index.ts +2 -0
  98. package/src/app/login/components/login.component.ts +199 -0
  99. package/src/app/login/login.component.html +49 -0
  100. package/src/app/login/models/common.model.ts +21 -0
  101. package/src/app/login/models/login.model.ts +5 -0
  102. package/src/app/models/audit-log-insert.model.ts +11 -0
  103. package/src/app/models/common.model.ts +56 -0
  104. package/src/app/models/index.ts +4 -0
  105. package/src/app/models/navigation-data.model.ts +24 -0
  106. package/src/app/models/page-info-model.ts +4 -0
  107. package/src/app/models/response-model.ts +5 -0
  108. package/src/app/models/search-model.ts +21 -0
  109. package/src/app/navbar/components/navbar.component.ts +288 -0
  110. package/src/app/navbar/navbar.component.html +200 -0
  111. package/src/app/profile-setting/change-password/change-password.component.html +85 -0
  112. package/src/app/profile-setting/change-password/components/change-password.component.ts +76 -0
  113. package/src/app/profile-setting/change-password/models/change-password.model.ts +5 -0
  114. package/src/app/profile-setting/change-password/models/index.ts +1 -0
  115. package/src/app/profile-setting/profile-setting/components/profile-setting.component.ts +234 -0
  116. package/src/app/profile-setting/profile-setting/models/profile-setting.model.ts +21 -0
  117. package/src/app/profile-setting/profile-setting/profile-setting.component.html +228 -0
  118. package/src/app/profile-setting/profile-setting.module.ts +22 -0
  119. package/src/app/shared/alerts/alertOptions.ts +14 -0
  120. package/src/app/shared/alerts/alerts.ts +57 -0
  121. package/src/app/shared/common/common.ts +1342 -0
  122. package/src/app/shared/constants/constants.ts +550 -0
  123. package/src/app/shared/interceptor/https-interceptor.ts +69 -0
  124. package/src/app/shared/service/shared.service.ts +287 -0
  125. package/src/app/shared/source-of-fund/source-of-fund.ts +4 -0
  126. package/src/app/shared/transaction/transaction-type-status.ts +32 -0
  127. package/src/app/transaction-history/transaction-history.module.ts +83 -0
  128. package/src/app/transaction-history/wallet-transaction-list/components/wallet-transaction-list.component.ts +500 -0
  129. package/src/app/transaction-history/wallet-transaction-list/models/wallet-transaction-list.model.ts +75 -0
  130. package/src/app/transaction-history/wallet-transaction-list/wallet-transaction-list.component.html +530 -0
  131. package/src/app/transaction-history/wallet-transaction-list-details/components/wallet-transaction-list-details.component.ts +154 -0
  132. package/src/app/transaction-history/wallet-transaction-list-details/models/index.ts +3 -0
  133. package/src/app/transaction-history/wallet-transaction-list-details/models/wallet-transaction-list-details.model.ts +39 -0
  134. package/src/app/transaction-history/wallet-transaction-list-details/models/wallet-transaction-refund.model.ts +5 -0
  135. package/src/app/transaction-history/wallet-transaction-list-details/wallet-transaction-list-details.component.html +452 -0
  136. package/src/app/user-management/audit-log-list/audit-log-list.component.html +198 -0
  137. package/src/app/user-management/audit-log-list/components/audit-log-list.component.ts +415 -0
  138. package/src/app/user-management/audit-log-list/models/audit-log-list.model.ts +38 -0
  139. package/src/app/user-management/audit-log-list/models/audit-log.model.ts +11 -0
  140. package/src/app/user-management/audit-log-list/models/index.ts +2 -0
  141. package/src/app/user-management/system-user/components/system-user.component.ts +466 -0
  142. package/src/app/user-management/system-user/models/system-user.model.ts +23 -0
  143. package/src/app/user-management/system-user/system-user.component.html +349 -0
  144. package/src/app/user-management/system-user-list/components/system-user-list.component.ts +399 -0
  145. package/src/app/user-management/system-user-list/models/index.ts +2 -0
  146. package/src/app/user-management/system-user-list/models/system-user-list.model.ts +40 -0
  147. package/src/app/user-management/system-user-list/models/system-user.model.ts +11 -0
  148. package/src/app/user-management/system-user-list/system-user-list.component.html +266 -0
  149. package/src/app/user-management/user-group-permission/components/user-group-permission.component.ts +1819 -0
  150. package/src/app/user-management/user-group-permission/models/user-group-permission.model.ts +288 -0
  151. package/src/app/user-management/user-group-permission/user-group-permission.component.html +100 -0
  152. package/src/app/user-management/user-group-permission-list/components/user-group-permission-list.component.ts +379 -0
  153. package/src/app/user-management/user-group-permission-list/models/index.ts +2 -0
  154. package/src/app/user-management/user-group-permission-list/models/user-group-permission-list.model.ts +28 -0
  155. package/src/app/user-management/user-group-permission-list/models/user-group-permission.model.ts +8 -0
  156. package/src/app/user-management/user-group-permission-list/user-group-permission-list.component.html +184 -0
  157. package/src/app/user-management/user-management.module.ts +38 -0
  158. package/src/app/validate-change-password/components/validate-change-password.component.ts +66 -0
  159. package/src/app/validate-change-password/validate-change-password.component.html +8 -0
  160. package/src/assets/css/animate.css +2848 -0
  161. package/src/assets/css/bootstrap.css +6760 -0
  162. package/src/assets/css/bootstrap.css.map +1 -0
  163. package/src/assets/css/bootstrap.min.css +6 -0
  164. package/src/assets/css/bootstrap.min.css.map +1 -0
  165. package/src/assets/css/font.css +10 -0
  166. package/src/assets/css/plugins/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css +251 -0
  167. package/src/assets/css/plugins/blueimp/css/blueimp-gallery-indicator.css +71 -0
  168. package/src/assets/css/plugins/blueimp/css/blueimp-gallery-video.css +87 -0
  169. package/src/assets/css/plugins/blueimp/css/blueimp-gallery.css +226 -0
  170. package/src/assets/css/plugins/blueimp/css/blueimp-gallery.min.css +1 -0
  171. package/src/assets/css/plugins/blueimp/css/demo.css +51 -0
  172. package/src/assets/css/plugins/blueimp/img/error.png +0 -0
  173. package/src/assets/css/plugins/blueimp/img/error.svg +5 -0
  174. package/src/assets/css/plugins/blueimp/img/loading.gif +0 -0
  175. package/src/assets/css/plugins/blueimp/img/play-pause.png +0 -0
  176. package/src/assets/css/plugins/blueimp/img/play-pause.svg +6 -0
  177. package/src/assets/css/plugins/blueimp/img/video-play.png +0 -0
  178. package/src/assets/css/plugins/blueimp/img/video-play.svg +5 -0
  179. package/src/assets/css/plugins/bootstrap-datepicker/bootstrap-datepicker3.min.css +9 -0
  180. package/src/assets/css/plugins/bootstrap-markdown/bootstrap-markdown.min.css +1 -0
  181. package/src/assets/css/plugins/bootstrap-rtl/bootstrap-rtl.css +1468 -0
  182. package/src/assets/css/plugins/bootstrap-rtl/bootstrap-rtl.css.map +1 -0
  183. package/src/assets/css/plugins/bootstrap-rtl/bootstrap-rtl.min.css +9 -0
  184. package/src/assets/css/plugins/bootstrap-timepicker/bootstrap-timepicker.min.css +10 -0
  185. package/src/assets/css/plugins/bootstrapTour/bootstrap-tour.min.css +22 -0
  186. package/src/assets/css/plugins/c3/c3.min.css +1 -0
  187. package/src/assets/css/plugins/chartist/chartist.min.css +773 -0
  188. package/src/assets/css/plugins/chosen/chosen-sprite.png +0 -0
  189. package/src/assets/css/plugins/chosen/chosen-sprite@2x.png +0 -0
  190. package/src/assets/css/plugins/chosen/chosen.css +429 -0
  191. package/src/assets/css/plugins/clockpicker/clockpicker.css +168 -0
  192. package/src/assets/css/plugins/codemirror/ambiance.css +77 -0
  193. package/src/assets/css/plugins/codemirror/codemirror.css +309 -0
  194. package/src/assets/css/plugins/colorpicker/bootstrap-colorpicker.min.css +9 -0
  195. package/src/assets/css/plugins/cropper/cropper.min.css +9 -0
  196. package/src/assets/css/plugins/dataTables/datatables.min.css +21 -0
  197. package/src/assets/css/plugins/datapicker/datepicker3.css +789 -0
  198. package/src/assets/css/plugins/datatables.net/css/jquery.dataTables.css +455 -0
  199. package/src/assets/css/plugins/datatables.net/images/sort_asc.png +0 -0
  200. package/src/assets/css/plugins/datatables.net/images/sort_asc_disabled.png +0 -0
  201. package/src/assets/css/plugins/datatables.net/images/sort_both.png +0 -0
  202. package/src/assets/css/plugins/datatables.net/images/sort_desc.png +0 -0
  203. package/src/assets/css/plugins/datatables.net/images/sort_desc_disabled.png +0 -0
  204. package/src/assets/css/plugins/daterangepicker/daterangepicker-bs3.css +335 -0
  205. package/src/assets/css/plugins/dropzone/basic.css +155 -0
  206. package/src/assets/css/plugins/dropzone/dropzone.css +410 -0
  207. package/src/assets/css/plugins/footable/fonts/footable.eot +0 -0
  208. package/src/assets/css/plugins/footable/fonts/footable.svg +78 -0
  209. package/src/assets/css/plugins/footable/fonts/footable.ttf +0 -0
  210. package/src/assets/css/plugins/footable/fonts/footable.woff +0 -0
  211. package/src/assets/css/plugins/footable/footable.core.css +178 -0
  212. package/src/assets/css/plugins/fullcalendar/fullcalendar.css +977 -0
  213. package/src/assets/css/plugins/fullcalendar/fullcalendar.print.css +202 -0
  214. package/src/assets/css/plugins/iCheck/custom.css +59 -0
  215. package/src/assets/css/plugins/iCheck/green.png +0 -0
  216. package/src/assets/css/plugins/iCheck/green@2x.png +0 -0
  217. package/src/assets/css/plugins/images/bootstrap-colorpicker/alpha-horizontal.png +0 -0
  218. package/src/assets/css/plugins/images/bootstrap-colorpicker/alpha.png +0 -0
  219. package/src/assets/css/plugins/images/bootstrap-colorpicker/hue-horizontal.png +0 -0
  220. package/src/assets/css/plugins/images/bootstrap-colorpicker/hue.png +0 -0
  221. package/src/assets/css/plugins/images/bootstrap-colorpicker/saturation.png +0 -0
  222. package/src/assets/css/plugins/images/sort.png +0 -0
  223. package/src/assets/css/plugins/images/sort_asc.png +0 -0
  224. package/src/assets/css/plugins/images/sort_desc.png +0 -0
  225. package/src/assets/css/plugins/images/sprite-skin-flat.png +0 -0
  226. package/src/assets/css/plugins/images/sprite-skin-flat2.png +0 -0
  227. package/src/assets/css/plugins/images/sprite-skin-nice.png +0 -0
  228. package/src/assets/css/plugins/images/sprite-skin-simple.png +0 -0
  229. package/src/assets/css/plugins/images/spritemap.png +0 -0
  230. package/src/assets/css/plugins/images/spritemap@2x.png +0 -0
  231. package/src/assets/css/plugins/ionRangeSlider/ion.rangeSlider.css +126 -0
  232. package/src/assets/css/plugins/ionRangeSlider/ion.rangeSlider.skinFlat.css +89 -0
  233. package/src/assets/css/plugins/ionRangeSlider/ion.rangeSlider.skinNice.css +85 -0
  234. package/src/assets/css/plugins/ionRangeSlider/ion.rangeSlider.skinSimple.css +85 -0
  235. package/src/assets/css/plugins/jQueryUI/images/animated-overlay.gif +0 -0
  236. package/src/assets/css/plugins/jQueryUI/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  237. package/src/assets/css/plugins/jQueryUI/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  238. package/src/assets/css/plugins/jQueryUI/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  239. package/src/assets/css/plugins/jQueryUI/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  240. package/src/assets/css/plugins/jQueryUI/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  241. package/src/assets/css/plugins/jQueryUI/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  242. package/src/assets/css/plugins/jQueryUI/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  243. package/src/assets/css/plugins/jQueryUI/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  244. package/src/assets/css/plugins/jQueryUI/images/ui-icons_222222_256x240.png +0 -0
  245. package/src/assets/css/plugins/jQueryUI/images/ui-icons_2e83ff_256x240.png +0 -0
  246. package/src/assets/css/plugins/jQueryUI/images/ui-icons_454545_256x240.png +0 -0
  247. package/src/assets/css/plugins/jQueryUI/images/ui-icons_888888_256x240.png +0 -0
  248. package/src/assets/css/plugins/jQueryUI/images/ui-icons_cd0a0a_256x240.png +0 -0
  249. package/src/assets/css/plugins/jQueryUI/jquery-ui-1.10.4.custom.min.css +7 -0
  250. package/src/assets/css/plugins/jQueryUI/jquery-ui.css +1177 -0
  251. package/src/assets/css/plugins/jasny/jasny-bootstrap.min.css +7 -0
  252. package/src/assets/css/plugins/jqGrid/ui.jqgrid.css +171 -0
  253. package/src/assets/css/plugins/jsTree/32px.png +0 -0
  254. package/src/assets/css/plugins/jsTree/39px.png +0 -0
  255. package/src/assets/css/plugins/jsTree/40px.png +0 -0
  256. package/src/assets/css/plugins/jsTree/style.css +1050 -0
  257. package/src/assets/css/plugins/jsTree/style.min.css +1 -0
  258. package/src/assets/css/plugins/jsTree/throbber.gif +0 -0
  259. package/src/assets/css/plugins/ladda/ladda-themeless.min.css +7 -0
  260. package/src/assets/css/plugins/ladda/ladda.min.css +9 -0
  261. package/src/assets/css/plugins/morris/morris-0.4.3.min.css +2 -0
  262. package/src/assets/css/plugins/nouslider/jquery.nouislider.css +165 -0
  263. package/src/assets/css/plugins/select2/select2.min.css +1 -0
  264. package/src/assets/css/plugins/slick/ajax-loader.gif +0 -0
  265. package/src/assets/css/plugins/slick/fonts/slick.eot +0 -0
  266. package/src/assets/css/plugins/slick/fonts/slick.svg +14 -0
  267. package/src/assets/css/plugins/slick/fonts/slick.ttf +0 -0
  268. package/src/assets/css/plugins/slick/fonts/slick.woff +0 -0
  269. package/src/assets/css/plugins/slick/slick-theme.css +201 -0
  270. package/src/assets/css/plugins/slick/slick.css +119 -0
  271. package/src/assets/css/plugins/social-buttons/social-buttons.css +68 -0
  272. package/src/assets/css/plugins/steps/jquery.steps.css +380 -0
  273. package/src/assets/css/plugins/summernote/summernote-bs3.css +5970 -0
  274. package/src/assets/css/plugins/summernote/summernote.css +446 -0
  275. package/src/assets/css/plugins/sweetalert/sweetalert.css +715 -0
  276. package/src/assets/css/plugins/switchery/switchery.css +32 -0
  277. package/src/assets/css/plugins/toastr/ng2-toastr.min.css +1 -0
  278. package/src/assets/css/plugins/toastr/toastr.min.css +222 -0
  279. package/src/assets/css/plugins/touchspin/jquery.bootstrap-touchspin.min.css +10 -0
  280. package/src/assets/css/style.css +9725 -0
  281. package/src/assets/css/style.scss +1 -0
  282. package/src/assets/font-awesome/css/font-awesome.css +2337 -0
  283. package/src/assets/font-awesome/css/font-awesome.min.css +4 -0
  284. package/src/assets/font-awesome/fonts/FontAwesome.otf +0 -0
  285. package/src/assets/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  286. package/src/assets/font-awesome/fonts/fontawesome-webfont.svg +2671 -0
  287. package/src/assets/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  288. package/src/assets/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  289. package/src/assets/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  290. package/src/assets/font-awesome/less/animated.less +34 -0
  291. package/src/assets/font-awesome/less/bordered-pulled.less +25 -0
  292. package/src/assets/font-awesome/less/core.less +12 -0
  293. package/src/assets/font-awesome/less/fixed-width.less +6 -0
  294. package/src/assets/font-awesome/less/font-awesome.less +18 -0
  295. package/src/assets/font-awesome/less/icons.less +789 -0
  296. package/src/assets/font-awesome/less/larger.less +13 -0
  297. package/src/assets/font-awesome/less/list.less +19 -0
  298. package/src/assets/font-awesome/less/mixins.less +60 -0
  299. package/src/assets/font-awesome/less/path.less +15 -0
  300. package/src/assets/font-awesome/less/rotated-flipped.less +20 -0
  301. package/src/assets/font-awesome/less/screen-reader.less +5 -0
  302. package/src/assets/font-awesome/less/stacked.less +20 -0
  303. package/src/assets/font-awesome/less/variables.less +800 -0
  304. package/src/assets/font-awesome/scss/_animated.scss +34 -0
  305. package/src/assets/font-awesome/scss/_bordered-pulled.scss +25 -0
  306. package/src/assets/font-awesome/scss/_core.scss +12 -0
  307. package/src/assets/font-awesome/scss/_fixed-width.scss +6 -0
  308. package/src/assets/font-awesome/scss/_icons.scss +789 -0
  309. package/src/assets/font-awesome/scss/_larger.scss +13 -0
  310. package/src/assets/font-awesome/scss/_list.scss +19 -0
  311. package/src/assets/font-awesome/scss/_mixins.scss +60 -0
  312. package/src/assets/font-awesome/scss/_path.scss +15 -0
  313. package/src/assets/font-awesome/scss/_rotated-flipped.scss +20 -0
  314. package/src/assets/font-awesome/scss/_screen-reader.scss +5 -0
  315. package/src/assets/font-awesome/scss/_stacked.scss +20 -0
  316. package/src/assets/font-awesome/scss/_variables.scss +800 -0
  317. package/src/assets/font-awesome/scss/font-awesome.scss +18 -0
  318. package/src/assets/fonts/DejaVuSans-Bold.ttf +0 -0
  319. package/src/assets/fonts/DejaVuSans-Oblique.ttf +0 -0
  320. package/src/assets/fonts/DejaVuSans.ttf +0 -0
  321. package/src/assets/fonts/Garuda.ttf +0 -0
  322. package/src/assets/fonts/NotoSansThaiUI-Regular.ttf +0 -0
  323. package/src/assets/fonts/TH-Charmonman-Regular.ttf +0 -0
  324. package/src/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  325. package/src/assets/fonts/glyphicons-halflings-regular.svg +288 -0
  326. package/src/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  327. package/src/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  328. package/src/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
  329. package/src/assets/fonts/kanit-v3-latin_latin-ext_thai-regular.ttf +0 -0
  330. package/src/assets/img/2c2p_169x60.png +0 -0
  331. package/src/assets/img/2c2p_169x60_black_header.png +0 -0
  332. package/src/assets/img/calendar_gray.png +0 -0
  333. package/src/assets/img/success.png +0 -0
  334. package/src/assets/img/user.png +0 -0
  335. package/src/assets/img/warning.png +0 -0
  336. package/src/assets/js/bootstrap.js +2363 -0
  337. package/src/assets/js/bootstrap.min.js +7 -0
  338. package/src/assets/js/demo/chartjs-demo.js +217 -0
  339. package/src/assets/js/demo/dashboard-demo.js +117 -0
  340. package/src/assets/js/demo/flot-demo.js +308 -0
  341. package/src/assets/js/demo/flot-demo2.js +377 -0
  342. package/src/assets/js/demo/morris-demo.js +89 -0
  343. package/src/assets/js/demo/peity-demo.js +33 -0
  344. package/src/assets/js/demo/rickshaw-demo.js +103 -0
  345. package/src/assets/js/demo/sparkline-demo.js +51 -0
  346. package/src/assets/js/inspinia.js +301 -0
  347. package/src/assets/js/jquery-2.1.1.js +4 -0
  348. package/src/assets/js/jquery-3.3.1.min.js +2 -0
  349. package/src/assets/js/jquery-ui-1.10.4.min.js +7 -0
  350. package/src/assets/js/jquery-ui.custom.min.js +16 -0
  351. package/src/assets/js/plugins/blueimp/jquery.blueimp-gallery.min.js +1 -0
  352. package/src/assets/js/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js +9 -0
  353. package/src/assets/js/plugins/bootstrap-markdown/bootstrap-markdown.js +1386 -0
  354. package/src/assets/js/plugins/bootstrap-markdown/markdown.js +1616 -0
  355. package/src/assets/js/plugins/bootstrap-timepicker/bootstrap-timepicker.min.js +5 -0
  356. package/src/assets/js/plugins/bootstrapTour/bootstrap-tour.min.js +22 -0
  357. package/src/assets/js/plugins/c3/c3.min.js +5 -0
  358. package/src/assets/js/plugins/chartJs/Chart.min.js +14 -0
  359. package/src/assets/js/plugins/chartist/chartist.min.js +9 -0
  360. package/src/assets/js/plugins/chartist/chartist.min.js.map +1 -0
  361. package/src/assets/js/plugins/chosen/chosen.jquery.js +1211 -0
  362. package/src/assets/js/plugins/clipboard/clipboard.min.js +7 -0
  363. package/src/assets/js/plugins/clockpicker/clockpicker.js +729 -0
  364. package/src/assets/js/plugins/codemirror/codemirror.js +7830 -0
  365. package/src/assets/js/plugins/codemirror/mode/apl/apl.js +175 -0
  366. package/src/assets/js/plugins/codemirror/mode/apl/index.html +72 -0
  367. package/src/assets/js/plugins/codemirror/mode/asterisk/asterisk.js +198 -0
  368. package/src/assets/js/plugins/codemirror/mode/asterisk/index.html +154 -0
  369. package/src/assets/js/plugins/codemirror/mode/clike/clike.js +474 -0
  370. package/src/assets/js/plugins/codemirror/mode/clike/index.html +225 -0
  371. package/src/assets/js/plugins/codemirror/mode/clike/scala.html +767 -0
  372. package/src/assets/js/plugins/codemirror/mode/clojure/clojure.js +243 -0
  373. package/src/assets/js/plugins/codemirror/mode/clojure/index.html +88 -0
  374. package/src/assets/js/plugins/codemirror/mode/cobol/cobol.js +255 -0
  375. package/src/assets/js/plugins/codemirror/mode/cobol/index.html +210 -0
  376. package/src/assets/js/plugins/codemirror/mode/coffeescript/coffeescript.js +369 -0
  377. package/src/assets/js/plugins/codemirror/mode/coffeescript/index.html +740 -0
  378. package/src/assets/js/plugins/codemirror/mode/commonlisp/commonlisp.js +120 -0
  379. package/src/assets/js/plugins/codemirror/mode/commonlisp/index.html +177 -0
  380. package/src/assets/js/plugins/codemirror/mode/css/css.js +717 -0
  381. package/src/assets/js/plugins/codemirror/mode/css/index.html +70 -0
  382. package/src/assets/js/plugins/codemirror/mode/css/less.html +152 -0
  383. package/src/assets/js/plugins/codemirror/mode/css/less_test.js +51 -0
  384. package/src/assets/js/plugins/codemirror/mode/css/scss.html +157 -0
  385. package/src/assets/js/plugins/codemirror/mode/css/scss_test.js +110 -0
  386. package/src/assets/js/plugins/codemirror/mode/css/test.js +135 -0
  387. package/src/assets/js/plugins/codemirror/mode/cypher/cypher.js +146 -0
  388. package/src/assets/js/plugins/codemirror/mode/cypher/index.html +63 -0
  389. package/src/assets/js/plugins/codemirror/mode/d/d.js +218 -0
  390. package/src/assets/js/plugins/codemirror/mode/d/index.html +273 -0
  391. package/src/assets/js/plugins/codemirror/mode/diff/diff.js +47 -0
  392. package/src/assets/js/plugins/codemirror/mode/diff/index.html +117 -0
  393. package/src/assets/js/plugins/codemirror/mode/django/django.js +67 -0
  394. package/src/assets/js/plugins/codemirror/mode/django/index.html +63 -0
  395. package/src/assets/js/plugins/codemirror/mode/dtd/dtd.js +142 -0
  396. package/src/assets/js/plugins/codemirror/mode/dtd/index.html +89 -0
  397. package/src/assets/js/plugins/codemirror/mode/dylan/dylan.js +299 -0
  398. package/src/assets/js/plugins/codemirror/mode/dylan/index.html +407 -0
  399. package/src/assets/js/plugins/codemirror/mode/ecl/ecl.js +207 -0
  400. package/src/assets/js/plugins/codemirror/mode/ecl/index.html +52 -0
  401. package/src/assets/js/plugins/codemirror/mode/eiffel/eiffel.js +162 -0
  402. package/src/assets/js/plugins/codemirror/mode/eiffel/index.html +429 -0
  403. package/src/assets/js/plugins/codemirror/mode/erlang/erlang.js +622 -0
  404. package/src/assets/js/plugins/codemirror/mode/erlang/index.html +76 -0
  405. package/src/assets/js/plugins/codemirror/mode/fortran/fortran.js +188 -0
  406. package/src/assets/js/plugins/codemirror/mode/fortran/index.html +81 -0
  407. package/src/assets/js/plugins/codemirror/mode/gas/gas.js +345 -0
  408. package/src/assets/js/plugins/codemirror/mode/gas/index.html +68 -0
  409. package/src/assets/js/plugins/codemirror/mode/gfm/gfm.js +122 -0
  410. package/src/assets/js/plugins/codemirror/mode/gfm/index.html +82 -0
  411. package/src/assets/js/plugins/codemirror/mode/gfm/test.js +164 -0
  412. package/src/assets/js/plugins/codemirror/mode/gherkin/gherkin.js +178 -0
  413. package/src/assets/js/plugins/codemirror/mode/gherkin/index.html +48 -0
  414. package/src/assets/js/plugins/codemirror/mode/go/go.js +184 -0
  415. package/src/assets/js/plugins/codemirror/mode/go/index.html +85 -0
  416. package/src/assets/js/plugins/codemirror/mode/groovy/groovy.js +226 -0
  417. package/src/assets/js/plugins/codemirror/mode/groovy/index.html +84 -0
  418. package/src/assets/js/plugins/codemirror/mode/haml/haml.js +159 -0
  419. package/src/assets/js/plugins/codemirror/mode/haml/index.html +79 -0
  420. package/src/assets/js/plugins/codemirror/mode/haml/test.js +97 -0
  421. package/src/assets/js/plugins/codemirror/mode/haskell/haskell.js +267 -0
  422. package/src/assets/js/plugins/codemirror/mode/haskell/index.html +73 -0
  423. package/src/assets/js/plugins/codemirror/mode/haxe/haxe.js +518 -0
  424. package/src/assets/js/plugins/codemirror/mode/haxe/index.html +124 -0
  425. package/src/assets/js/plugins/codemirror/mode/htmlembedded/htmlembedded.js +86 -0
  426. package/src/assets/js/plugins/codemirror/mode/htmlembedded/index.html +58 -0
  427. package/src/assets/js/plugins/codemirror/mode/htmlmixed/htmlmixed.js +121 -0
  428. package/src/assets/js/plugins/codemirror/mode/htmlmixed/index.html +85 -0
  429. package/src/assets/js/plugins/codemirror/mode/http/http.js +113 -0
  430. package/src/assets/js/plugins/codemirror/mode/http/index.html +45 -0
  431. package/src/assets/js/plugins/codemirror/mode/index.html +125 -0
  432. package/src/assets/js/plugins/codemirror/mode/jade/index.html +70 -0
  433. package/src/assets/js/plugins/codemirror/mode/jade/jade.js +590 -0
  434. package/src/assets/js/plugins/codemirror/mode/javascript/index.html +114 -0
  435. package/src/assets/js/plugins/codemirror/mode/javascript/javascript.js +684 -0
  436. package/src/assets/js/plugins/codemirror/mode/javascript/json-ld.html +72 -0
  437. package/src/assets/js/plugins/codemirror/mode/javascript/test.js +194 -0
  438. package/src/assets/js/plugins/codemirror/mode/javascript/typescript.html +61 -0
  439. package/src/assets/js/plugins/codemirror/mode/jinja2/index.html +54 -0
  440. package/src/assets/js/plugins/codemirror/mode/jinja2/jinja2.js +142 -0
  441. package/src/assets/js/plugins/codemirror/mode/julia/index.html +195 -0
  442. package/src/assets/js/plugins/codemirror/mode/julia/julia.js +301 -0
  443. package/src/assets/js/plugins/codemirror/mode/kotlin/index.html +89 -0
  444. package/src/assets/js/plugins/codemirror/mode/kotlin/kotlin.js +280 -0
  445. package/src/assets/js/plugins/codemirror/mode/livescript/index.html +459 -0
  446. package/src/assets/js/plugins/codemirror/mode/livescript/livescript.js +280 -0
  447. package/src/assets/js/plugins/codemirror/mode/lua/index.html +85 -0
  448. package/src/assets/js/plugins/codemirror/mode/lua/lua.js +159 -0
  449. package/src/assets/js/plugins/codemirror/mode/markdown/index.html +359 -0
  450. package/src/assets/js/plugins/codemirror/mode/markdown/markdown.js +758 -0
  451. package/src/assets/js/plugins/codemirror/mode/markdown/test.js +754 -0
  452. package/src/assets/js/plugins/codemirror/mode/meta.js +144 -0
  453. package/src/assets/js/plugins/codemirror/mode/mirc/index.html +160 -0
  454. package/src/assets/js/plugins/codemirror/mode/mirc/mirc.js +193 -0
  455. package/src/assets/js/plugins/codemirror/mode/mllike/index.html +179 -0
  456. package/src/assets/js/plugins/codemirror/mode/mllike/mllike.js +205 -0
  457. package/src/assets/js/plugins/codemirror/mode/modelica/index.html +67 -0
  458. package/src/assets/js/plugins/codemirror/mode/modelica/modelica.js +245 -0
  459. package/src/assets/js/plugins/codemirror/mode/nginx/index.html +181 -0
  460. package/src/assets/js/plugins/codemirror/mode/nginx/nginx.js +178 -0
  461. package/src/assets/js/plugins/codemirror/mode/ntriples/index.html +45 -0
  462. package/src/assets/js/plugins/codemirror/mode/ntriples/ntriples.js +186 -0
  463. package/src/assets/js/plugins/codemirror/mode/octave/index.html +83 -0
  464. package/src/assets/js/plugins/codemirror/mode/octave/octave.js +135 -0
  465. package/src/assets/js/plugins/codemirror/mode/pascal/index.html +61 -0
  466. package/src/assets/js/plugins/codemirror/mode/pascal/pascal.js +109 -0
  467. package/src/assets/js/plugins/codemirror/mode/pegjs/index.html +66 -0
  468. package/src/assets/js/plugins/codemirror/mode/pegjs/pegjs.js +114 -0
  469. package/src/assets/js/plugins/codemirror/mode/perl/index.html +75 -0
  470. package/src/assets/js/plugins/codemirror/mode/perl/perl.js +832 -0
  471. package/src/assets/js/plugins/codemirror/mode/php/index.html +64 -0
  472. package/src/assets/js/plugins/codemirror/mode/php/php.js +226 -0
  473. package/src/assets/js/plugins/codemirror/mode/php/test.js +154 -0
  474. package/src/assets/js/plugins/codemirror/mode/pig/index.html +55 -0
  475. package/src/assets/js/plugins/codemirror/mode/pig/pig.js +188 -0
  476. package/src/assets/js/plugins/codemirror/mode/properties/index.html +53 -0
  477. package/src/assets/js/plugins/codemirror/mode/properties/properties.js +78 -0
  478. package/src/assets/js/plugins/codemirror/mode/puppet/index.html +121 -0
  479. package/src/assets/js/plugins/codemirror/mode/puppet/puppet.js +220 -0
  480. package/src/assets/js/plugins/codemirror/mode/python/index.html +198 -0
  481. package/src/assets/js/plugins/codemirror/mode/python/python.js +359 -0
  482. package/src/assets/js/plugins/codemirror/mode/q/index.html +144 -0
  483. package/src/assets/js/plugins/codemirror/mode/q/q.js +139 -0
  484. package/src/assets/js/plugins/codemirror/mode/r/index.html +85 -0
  485. package/src/assets/js/plugins/codemirror/mode/r/r.js +162 -0
  486. package/src/assets/js/plugins/codemirror/mode/rpm/changes/index.html +66 -0
  487. package/src/assets/js/plugins/codemirror/mode/rpm/index.html +149 -0
  488. package/src/assets/js/plugins/codemirror/mode/rpm/rpm.js +101 -0
  489. package/src/assets/js/plugins/codemirror/mode/rst/index.html +535 -0
  490. package/src/assets/js/plugins/codemirror/mode/rst/rst.js +557 -0
  491. package/src/assets/js/plugins/codemirror/mode/ruby/index.html +184 -0
  492. package/src/assets/js/plugins/codemirror/mode/ruby/ruby.js +285 -0
  493. package/src/assets/js/plugins/codemirror/mode/ruby/test.js +14 -0
  494. package/src/assets/js/plugins/codemirror/mode/rust/index.html +60 -0
  495. package/src/assets/js/plugins/codemirror/mode/rust/rust.js +451 -0
  496. package/src/assets/js/plugins/codemirror/mode/sass/index.html +66 -0
  497. package/src/assets/js/plugins/codemirror/mode/sass/sass.js +327 -0
  498. package/src/assets/js/plugins/codemirror/mode/scheme/index.html +77 -0
  499. package/src/assets/js/plugins/codemirror/mode/scheme/scheme.js +248 -0
  500. package/src/assets/js/plugins/codemirror/mode/shell/index.html +66 -0
  501. package/src/assets/js/plugins/codemirror/mode/shell/shell.js +138 -0
  502. package/src/assets/js/plugins/codemirror/mode/shell/test.js +58 -0
  503. package/src/assets/js/plugins/codemirror/mode/sieve/index.html +93 -0
  504. package/src/assets/js/plugins/codemirror/mode/sieve/sieve.js +193 -0
  505. package/src/assets/js/plugins/codemirror/mode/slim/index.html +96 -0
  506. package/src/assets/js/plugins/codemirror/mode/slim/slim.js +575 -0
  507. package/src/assets/js/plugins/codemirror/mode/slim/test.js +96 -0
  508. package/src/assets/js/plugins/codemirror/mode/smalltalk/index.html +68 -0
  509. package/src/assets/js/plugins/codemirror/mode/smalltalk/smalltalk.js +168 -0
  510. package/src/assets/js/plugins/codemirror/mode/smarty/index.html +136 -0
  511. package/src/assets/js/plugins/codemirror/mode/smarty/smarty.js +221 -0
  512. package/src/assets/js/plugins/codemirror/mode/smartymixed/index.html +114 -0
  513. package/src/assets/js/plugins/codemirror/mode/smartymixed/smartymixed.js +197 -0
  514. package/src/assets/js/plugins/codemirror/mode/solr/index.html +57 -0
  515. package/src/assets/js/plugins/codemirror/mode/solr/solr.js +104 -0
  516. package/src/assets/js/plugins/codemirror/mode/sparql/index.html +53 -0
  517. package/src/assets/js/plugins/codemirror/mode/sparql/sparql.js +160 -0
  518. package/src/assets/js/plugins/codemirror/mode/sql/index.html +84 -0
  519. package/src/assets/js/plugins/codemirror/mode/sql/sql.js +393 -0
  520. package/src/assets/js/plugins/codemirror/mode/stex/index.html +110 -0
  521. package/src/assets/js/plugins/codemirror/mode/stex/stex.js +262 -0
  522. package/src/assets/js/plugins/codemirror/mode/stex/test.js +123 -0
  523. package/src/assets/js/plugins/codemirror/mode/tcl/index.html +142 -0
  524. package/src/assets/js/plugins/codemirror/mode/tcl/tcl.js +147 -0
  525. package/src/assets/js/plugins/codemirror/mode/textile/index.html +191 -0
  526. package/src/assets/js/plugins/codemirror/mode/textile/test.js +406 -0
  527. package/src/assets/js/plugins/codemirror/mode/textile/textile.js +553 -0
  528. package/src/assets/js/plugins/codemirror/mode/tiddlywiki/index.html +154 -0
  529. package/src/assets/js/plugins/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  530. package/src/assets/js/plugins/codemirror/mode/tiddlywiki/tiddlywiki.js +369 -0
  531. package/src/assets/js/plugins/codemirror/mode/tiki/index.html +95 -0
  532. package/src/assets/js/plugins/codemirror/mode/tiki/tiki.css +26 -0
  533. package/src/assets/js/plugins/codemirror/mode/tiki/tiki.js +323 -0
  534. package/src/assets/js/plugins/codemirror/mode/toml/index.html +73 -0
  535. package/src/assets/js/plugins/codemirror/mode/toml/toml.js +88 -0
  536. package/src/assets/js/plugins/codemirror/mode/tornado/index.html +63 -0
  537. package/src/assets/js/plugins/codemirror/mode/tornado/tornado.js +68 -0
  538. package/src/assets/js/plugins/codemirror/mode/turtle/index.html +50 -0
  539. package/src/assets/js/plugins/codemirror/mode/turtle/turtle.js +160 -0
  540. package/src/assets/js/plugins/codemirror/mode/vb/index.html +102 -0
  541. package/src/assets/js/plugins/codemirror/mode/vb/vb.js +274 -0
  542. package/src/assets/js/plugins/codemirror/mode/vbscript/index.html +55 -0
  543. package/src/assets/js/plugins/codemirror/mode/vbscript/vbscript.js +350 -0
  544. package/src/assets/js/plugins/codemirror/mode/velocity/index.html +118 -0
  545. package/src/assets/js/plugins/codemirror/mode/velocity/velocity.js +201 -0
  546. package/src/assets/js/plugins/codemirror/mode/verilog/index.html +120 -0
  547. package/src/assets/js/plugins/codemirror/mode/verilog/test.js +273 -0
  548. package/src/assets/js/plugins/codemirror/mode/verilog/verilog.js +364 -0
  549. package/src/assets/js/plugins/codemirror/mode/xml/index.html +57 -0
  550. package/src/assets/js/plugins/codemirror/mode/xml/test.js +51 -0
  551. package/src/assets/js/plugins/codemirror/mode/xml/xml.js +384 -0
  552. package/src/assets/js/plugins/codemirror/mode/xquery/index.html +210 -0
  553. package/src/assets/js/plugins/codemirror/mode/xquery/test.js +67 -0
  554. package/src/assets/js/plugins/codemirror/mode/xquery/xquery.js +447 -0
  555. package/src/assets/js/plugins/codemirror/mode/yaml/index.html +80 -0
  556. package/src/assets/js/plugins/codemirror/mode/yaml/yaml.js +112 -0
  557. package/src/assets/js/plugins/codemirror/mode/z80/index.html +52 -0
  558. package/src/assets/js/plugins/codemirror/mode/z80/z80.js +100 -0
  559. package/src/assets/js/plugins/colorpicker/bootstrap-colorpicker.min.js +1 -0
  560. package/src/assets/js/plugins/cropper/cropper.min.js +9 -0
  561. package/src/assets/js/plugins/d3/d3.min.js +5 -0
  562. package/src/assets/js/plugins/dataTables/datatables.min.js +336 -0
  563. package/src/assets/js/plugins/datapicker/bootstrap-datepicker.js +1671 -0
  564. package/src/assets/js/plugins/datatables.net/jquery.dataTables.js +15344 -0
  565. package/src/assets/js/plugins/daterangepicker/daterangepicker.js +1304 -0
  566. package/src/assets/js/plugins/diff_match_patch/COPYING +177 -0
  567. package/src/assets/js/plugins/diff_match_patch/README.txt +43 -0
  568. package/src/assets/js/plugins/diff_match_patch/javascript/diff_match_patch.js +49 -0
  569. package/src/assets/js/plugins/dotdotdot/jquery.dotdotdot.min.js +13 -0
  570. package/src/assets/js/plugins/dropzone/dropzone.js +1841 -0
  571. package/src/assets/js/plugins/easypiechart/easypiechart.js +350 -0
  572. package/src/assets/js/plugins/easypiechart/jquery.easypiechart.js +359 -0
  573. package/src/assets/js/plugins/flot/curvedLines.js +315 -0
  574. package/src/assets/js/plugins/flot/excanvas.min.js +1 -0
  575. package/src/assets/js/plugins/flot/jquery.flot.js +3168 -0
  576. package/src/assets/js/plugins/flot/jquery.flot.pie.js +820 -0
  577. package/src/assets/js/plugins/flot/jquery.flot.resize.js +59 -0
  578. package/src/assets/js/plugins/flot/jquery.flot.spline.js +212 -0
  579. package/src/assets/js/plugins/flot/jquery.flot.symbol.js +71 -0
  580. package/src/assets/js/plugins/flot/jquery.flot.time.js +432 -0
  581. package/src/assets/js/plugins/flot/jquery.flot.tooltip.min.js +12 -0
  582. package/src/assets/js/plugins/footable/footable.all.min.js +14 -0
  583. package/src/assets/js/plugins/fullcalendar/fullcalendar.min.js +8 -0
  584. package/src/assets/js/plugins/fullcalendar/moment.min.js +7 -0
  585. package/src/assets/js/plugins/gritter/images/gritter-light.png +0 -0
  586. package/src/assets/js/plugins/gritter/images/gritter-long.png +0 -0
  587. package/src/assets/js/plugins/gritter/images/gritter.png +0 -0
  588. package/src/assets/js/plugins/gritter/images/ie-spacer.gif +0 -0
  589. package/src/assets/js/plugins/gritter/jquery.gritter.css +137 -0
  590. package/src/assets/js/plugins/gritter/jquery.gritter.min.js +1 -0
  591. package/src/assets/js/plugins/i18next/i18next.min.js +7 -0
  592. package/src/assets/js/plugins/iCheck/icheck.min.js +11 -0
  593. package/src/assets/js/plugins/idle-timer/idle-timer.min.js +2 -0
  594. package/src/assets/js/plugins/ionRangeSlider/ion.rangeSlider.min.js +26 -0
  595. package/src/assets/js/plugins/jasny/jasny-bootstrap.min.js +6 -0
  596. package/src/assets/js/plugins/jeditable/jquery.jeditable.js +543 -0
  597. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-ar.js +128 -0
  598. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-bg.js +134 -0
  599. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-bg1251.js +132 -0
  600. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-cat.js +130 -0
  601. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-cn.js +169 -0
  602. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-cs.js +130 -0
  603. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-da.js +130 -0
  604. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-de.js +173 -0
  605. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-dk.js +129 -0
  606. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-el.js +128 -0
  607. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-en.js +170 -0
  608. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-es.js +130 -0
  609. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-fa.js +147 -0
  610. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-fi.js +131 -0
  611. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-fr.js +128 -0
  612. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-gl.js +128 -0
  613. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-he.js +129 -0
  614. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-hr.js +164 -0
  615. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-hr1250.js +164 -0
  616. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-hu.js +131 -0
  617. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-id.js +170 -0
  618. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-is.js +128 -0
  619. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-it.js +1 -0
  620. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-ja.js +158 -0
  621. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-kr.js +130 -0
  622. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-lt.js +130 -0
  623. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-mne.js +130 -0
  624. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-nl.js +150 -0
  625. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-no.js +1 -0
  626. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-pl.js +134 -0
  627. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-pt-br.js +137 -0
  628. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-pt.js +127 -0
  629. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-ro.js +141 -0
  630. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-ru.js +129 -0
  631. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-sk.js +129 -0
  632. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-sr-latin.js +130 -0
  633. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-sr.js +130 -0
  634. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-sv.js +129 -0
  635. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-th.js +130 -0
  636. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-tr.js +128 -0
  637. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-tw.js +131 -0
  638. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-ua.js +129 -0
  639. package/src/assets/js/plugins/jqGrid/i18n/grid.locale-vi.js +170 -0
  640. package/src/assets/js/plugins/jqGrid/jquery.jqGrid.min.js +545 -0
  641. package/src/assets/js/plugins/jquery-ui/i18n/jquery-ui-i18n.min.js +6 -0
  642. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-af.min.js +4 -0
  643. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-ar-DZ.min.js +4 -0
  644. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-ar.min.js +4 -0
  645. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-az.min.js +4 -0
  646. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-be.min.js +4 -0
  647. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-bg.min.js +4 -0
  648. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-bs.min.js +4 -0
  649. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-ca.min.js +4 -0
  650. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-cs.min.js +4 -0
  651. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-cy-GB.min.js +4 -0
  652. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-da.min.js +4 -0
  653. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-de.min.js +4 -0
  654. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-el.min.js +4 -0
  655. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-en-AU.min.js +4 -0
  656. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-en-GB.min.js +4 -0
  657. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-en-NZ.min.js +4 -0
  658. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-eo.min.js +4 -0
  659. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-es.min.js +4 -0
  660. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-et.min.js +4 -0
  661. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-eu.min.js +4 -0
  662. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-fa.min.js +4 -0
  663. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-fi.min.js +4 -0
  664. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-fo.min.js +4 -0
  665. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-fr-CA.min.js +4 -0
  666. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-fr-CH.min.js +4 -0
  667. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-fr.min.js +4 -0
  668. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-gl.min.js +4 -0
  669. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-he.min.js +4 -0
  670. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-hi.min.js +4 -0
  671. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-hr.min.js +4 -0
  672. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-hu.min.js +4 -0
  673. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-hy.min.js +4 -0
  674. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-id.min.js +4 -0
  675. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-is.min.js +4 -0
  676. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-it.min.js +4 -0
  677. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-ja.min.js +4 -0
  678. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-ka.min.js +4 -0
  679. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-kk.min.js +4 -0
  680. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-km.min.js +4 -0
  681. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-ko.min.js +4 -0
  682. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-ky.min.js +4 -0
  683. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-lb.min.js +4 -0
  684. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-lt.min.js +4 -0
  685. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-lv.min.js +4 -0
  686. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-mk.min.js +4 -0
  687. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-ml.min.js +4 -0
  688. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-ms.min.js +4 -0
  689. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-nb.min.js +4 -0
  690. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-nl-BE.min.js +4 -0
  691. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-nl.min.js +4 -0
  692. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-nn.min.js +4 -0
  693. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-no.min.js +4 -0
  694. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-pl.min.js +4 -0
  695. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-pt-BR.min.js +4 -0
  696. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-pt.min.js +4 -0
  697. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-rm.min.js +4 -0
  698. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-ro.min.js +4 -0
  699. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-ru.min.js +4 -0
  700. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-sk.min.js +4 -0
  701. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-sl.min.js +4 -0
  702. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-sq.min.js +4 -0
  703. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-sr-SR.min.js +4 -0
  704. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-sr.min.js +4 -0
  705. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-sv.min.js +4 -0
  706. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-ta.min.js +4 -0
  707. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-th.min.js +4 -0
  708. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-tj.min.js +4 -0
  709. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-tr.min.js +4 -0
  710. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-uk.min.js +4 -0
  711. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-vi.min.js +4 -0
  712. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-zh-CN.min.js +4 -0
  713. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-zh-HK.min.js +4 -0
  714. package/src/assets/js/plugins/jquery-ui/i18n/jquery.ui.datepicker-zh-TW.min.js +4 -0
  715. package/src/assets/js/plugins/jquery-ui/images/animated-overlay.gif +0 -0
  716. package/src/assets/js/plugins/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  717. package/src/assets/js/plugins/jquery-ui/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  718. package/src/assets/js/plugins/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  719. package/src/assets/js/plugins/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  720. package/src/assets/js/plugins/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  721. package/src/assets/js/plugins/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  722. package/src/assets/js/plugins/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  723. package/src/assets/js/plugins/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  724. package/src/assets/js/plugins/jquery-ui/images/ui-icons_222222_256x240.png +0 -0
  725. package/src/assets/js/plugins/jquery-ui/images/ui-icons_2e83ff_256x240.png +0 -0
  726. package/src/assets/js/plugins/jquery-ui/images/ui-icons_454545_256x240.png +0 -0
  727. package/src/assets/js/plugins/jquery-ui/images/ui-icons_888888_256x240.png +0 -0
  728. package/src/assets/js/plugins/jquery-ui/images/ui-icons_cd0a0a_256x240.png +0 -0
  729. package/src/assets/js/plugins/jquery-ui/jquery-ui.css +1189 -0
  730. package/src/assets/js/plugins/jquery-ui/jquery-ui.js +15040 -0
  731. package/src/assets/js/plugins/jquery-ui/jquery-ui.min.css +4 -0
  732. package/src/assets/js/plugins/jquery-ui/jquery-ui.min.js +12 -0
  733. package/src/assets/js/plugins/jsKnob/jquery.knob.js +791 -0
  734. package/src/assets/js/plugins/jsTree/jstree.min.js +5 -0
  735. package/src/assets/js/plugins/justified-gallery/README.md +14 -0
  736. package/src/assets/js/plugins/justified-gallery/jquery.justifiedgallery.css +73 -0
  737. package/src/assets/js/plugins/justified-gallery/jquery.justifiedgallery.js +258 -0
  738. package/src/assets/js/plugins/justified-gallery/jquery.justifiedgallery.min.css +17 -0
  739. package/src/assets/js/plugins/justified-gallery/jquery.justifiedgallery.min.js +24 -0
  740. package/src/assets/js/plugins/justified-gallery/loading.gif +0 -0
  741. package/src/assets/js/plugins/jvectormap/jquery-jvectormap-2.0.2.css +130 -0
  742. package/src/assets/js/plugins/jvectormap/jquery-jvectormap-2.0.2.min.js +3328 -0
  743. package/src/assets/js/plugins/jvectormap/jquery-jvectormap-world-mill-en.js +1 -0
  744. package/src/assets/js/plugins/ladda/ladda.jquery.min.js +8 -0
  745. package/src/assets/js/plugins/ladda/ladda.min.js +8 -0
  746. package/src/assets/js/plugins/ladda/spin.min.js +1 -0
  747. package/src/assets/js/plugins/masonary/masonry.pkgd.min.js +9 -0
  748. package/src/assets/js/plugins/metisMenu/jquery.metisMenu.js +10 -0
  749. package/src/assets/js/plugins/morris/morris.js +1892 -0
  750. package/src/assets/js/plugins/morris/raphael-2.1.0.min.js +10 -0
  751. package/src/assets/js/plugins/nestable/jquery.nestable.js +484 -0
  752. package/src/assets/js/plugins/nouslider/jquery.nouislider.min.js +34 -0
  753. package/src/assets/js/plugins/pace/pace.min.js +2 -0
  754. package/src/assets/js/plugins/peity/jquery.peity.min.js +13 -0
  755. package/src/assets/js/plugins/preetyTextDiff/jquery.pretty-text-diff.min.js +76 -0
  756. package/src/assets/js/plugins/rickshaw/rickshaw.min.js +3 -0
  757. package/src/assets/js/plugins/rickshaw/vendor/d3.v3.js +5 -0
  758. package/src/assets/js/plugins/select2/select2.full.min.js +3 -0
  759. package/src/assets/js/plugins/slick/slick.min.js +18 -0
  760. package/src/assets/js/plugins/slimscroll/jquery.slimscroll.js +474 -0
  761. package/src/assets/js/plugins/slimscroll/jquery.slimscroll.min.js +16 -0
  762. package/src/assets/js/plugins/sparkline/jquery.sparkline.min.js +5 -0
  763. package/src/assets/js/plugins/staps/jquery.steps.min.js +6 -0
  764. package/src/assets/js/plugins/summernote/summernote.min.js +2 -0
  765. package/src/assets/js/plugins/sweetalert/sweetalert.min.js +1 -0
  766. package/src/assets/js/plugins/switchery/switchery.js +1 -0
  767. package/src/assets/js/plugins/tinycon/tinycon.min.js +8 -0
  768. package/src/assets/js/plugins/toastr/toastr.min.js +2 -0
  769. package/src/assets/js/plugins/touchspin/jquery.bootstrap-touchspin.min.js +9 -0
  770. package/src/assets/js/plugins/validate/jquery.validate.min.js +4 -0
  771. package/src/assets/js/plugins/video/responsible-video.js +21 -0
  772. package/src/assets/js/plugins/wow/wow.min.js +2 -0
  773. package/src/environment.ts +24 -0
  774. package/src/index.html +23 -0
  775. package/src/main.ts +10 -0
  776. package/src/polyfills.ts +3 -0
  777. package/src/tsconfig.json +21 -0
  778. package/src/vendor.ts +32 -0
  779. package/tslint.json +93 -0
  780. package/types.d.ts +0 -0
  781. package/web.config +34 -0
  782. package/webpack.config.js +1 -0
@@ -0,0 +1,767 @@
1
+ <!doctype html>
2
+
3
+ <title>CodeMirror: Scala mode</title>
4
+ <meta charset="utf-8"/>
5
+ <link rel=stylesheet href="../../doc/docs.css">
6
+
7
+ <link rel="stylesheet" href="../../lib/codemirror.css">
8
+ <link rel="stylesheet" href="../../theme/ambiance.css">
9
+ <script src="../../lib/codemirror.js"></script>
10
+ <script src="../../addon/edit/matchbrackets.js"></script>
11
+ <script src="clike.js"></script>
12
+ <div id=nav>
13
+ <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
14
+
15
+ <ul>
16
+ <li><a href="../../index.html">Home</a>
17
+ <li><a href="../../doc/manual.html">Manual</a>
18
+ <li><a href="https://github.com/codemirror/codemirror">Code</a>
19
+ </ul>
20
+ <ul>
21
+ <li><a href="../index.html">Language modes</a>
22
+ <li><a class=active href="#">Scala</a>
23
+ </ul>
24
+ </div>
25
+
26
+ <article>
27
+ <h2>Scala mode</h2>
28
+ <form>
29
+ <textarea id="code" name="code">
30
+
31
+ /* __ *\
32
+ ** ________ ___ / / ___ Scala API **
33
+ ** / __/ __// _ | / / / _ | (c) 2003-2011, LAMP/EPFL **
34
+ ** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
35
+ ** /____/\___/_/ |_/____/_/ | | **
36
+ ** |/ **
37
+ \* */
38
+
39
+ package scala.collection
40
+
41
+ import generic._
42
+ import mutable.{ Builder, ListBuffer }
43
+ import annotation.{tailrec, migration, bridge}
44
+ import annotation.unchecked.{ uncheckedVariance => uV }
45
+ import parallel.ParIterable
46
+
47
+ /** A template trait for traversable collections of type `Traversable[A]`.
48
+ *
49
+ * $traversableInfo
50
+ * @define mutability
51
+ * @define traversableInfo
52
+ * This is a base trait of all kinds of $mutability Scala collections. It
53
+ * implements the behavior common to all collections, in terms of a method
54
+ * `foreach` with signature:
55
+ * {{{
56
+ * def foreach[U](f: Elem => U): Unit
57
+ * }}}
58
+ * Collection classes mixing in this trait provide a concrete
59
+ * `foreach` method which traverses all the
60
+ * elements contained in the collection, applying a given function to each.
61
+ * They also need to provide a method `newBuilder`
62
+ * which creates a builder for collections of the same kind.
63
+ *
64
+ * A traversable class might or might not have two properties: strictness
65
+ * and orderedness. Neither is represented as a type.
66
+ *
67
+ * The instances of a strict collection class have all their elements
68
+ * computed before they can be used as values. By contrast, instances of
69
+ * a non-strict collection class may defer computation of some of their
70
+ * elements until after the instance is available as a value.
71
+ * A typical example of a non-strict collection class is a
72
+ * <a href="../immutable/Stream.html" target="ContentFrame">
73
+ * `scala.collection.immutable.Stream`</a>.
74
+ * A more general class of examples are `TraversableViews`.
75
+ *
76
+ * If a collection is an instance of an ordered collection class, traversing
77
+ * its elements with `foreach` will always visit elements in the
78
+ * same order, even for different runs of the program. If the class is not
79
+ * ordered, `foreach` can visit elements in different orders for
80
+ * different runs (but it will keep the same order in the same run).'
81
+ *
82
+ * A typical example of a collection class which is not ordered is a
83
+ * `HashMap` of objects. The traversal order for hash maps will
84
+ * depend on the hash codes of its elements, and these hash codes might
85
+ * differ from one run to the next. By contrast, a `LinkedHashMap`
86
+ * is ordered because it's `foreach` method visits elements in the
87
+ * order they were inserted into the `HashMap`.
88
+ *
89
+ * @author Martin Odersky
90
+ * @version 2.8
91
+ * @since 2.8
92
+ * @tparam A the element type of the collection
93
+ * @tparam Repr the type of the actual collection containing the elements.
94
+ *
95
+ * @define Coll Traversable
96
+ * @define coll traversable collection
97
+ */
98
+ trait TraversableLike[+A, +Repr] extends HasNewBuilder[A, Repr]
99
+ with FilterMonadic[A, Repr]
100
+ with TraversableOnce[A]
101
+ with GenTraversableLike[A, Repr]
102
+ with Parallelizable[A, ParIterable[A]]
103
+ {
104
+ self =>
105
+
106
+ import Traversable.breaks._
107
+
108
+ /** The type implementing this traversable */
109
+ protected type Self = Repr
110
+
111
+ /** The collection of type $coll underlying this `TraversableLike` object.
112
+ * By default this is implemented as the `TraversableLike` object itself,
113
+ * but this can be overridden.
114
+ */
115
+ def repr: Repr = this.asInstanceOf[Repr]
116
+
117
+ /** The underlying collection seen as an instance of `$Coll`.
118
+ * By default this is implemented as the current collection object itself,
119
+ * but this can be overridden.
120
+ */
121
+ protected[this] def thisCollection: Traversable[A] = this.asInstanceOf[Traversable[A]]
122
+
123
+ /** A conversion from collections of type `Repr` to `$Coll` objects.
124
+ * By default this is implemented as just a cast, but this can be overridden.
125
+ */
126
+ protected[this] def toCollection(repr: Repr): Traversable[A] = repr.asInstanceOf[Traversable[A]]
127
+
128
+ /** Creates a new builder for this collection type.
129
+ */
130
+ protected[this] def newBuilder: Builder[A, Repr]
131
+
132
+ protected[this] def parCombiner = ParIterable.newCombiner[A]
133
+
134
+ /** Applies a function `f` to all elements of this $coll.
135
+ *
136
+ * Note: this method underlies the implementation of most other bulk operations.
137
+ * It's important to implement this method in an efficient way.
138
+ *
139
+ *
140
+ * @param f the function that is applied for its side-effect to every element.
141
+ * The result of function `f` is discarded.
142
+ *
143
+ * @tparam U the type parameter describing the result of function `f`.
144
+ * This result will always be ignored. Typically `U` is `Unit`,
145
+ * but this is not necessary.
146
+ *
147
+ * @usecase def foreach(f: A => Unit): Unit
148
+ */
149
+ def foreach[U](f: A => U): Unit
150
+
151
+ /** Tests whether this $coll is empty.
152
+ *
153
+ * @return `true` if the $coll contain no elements, `false` otherwise.
154
+ */
155
+ def isEmpty: Boolean = {
156
+ var result = true
157
+ breakable {
158
+ for (x <- this) {
159
+ result = false
160
+ break
161
+ }
162
+ }
163
+ result
164
+ }
165
+
166
+ /** Tests whether this $coll is known to have a finite size.
167
+ * All strict collections are known to have finite size. For a non-strict collection
168
+ * such as `Stream`, the predicate returns `true` if all elements have been computed.
169
+ * It returns `false` if the stream is not yet evaluated to the end.
170
+ *
171
+ * Note: many collection methods will not work on collections of infinite sizes.
172
+ *
173
+ * @return `true` if this collection is known to have finite size, `false` otherwise.
174
+ */
175
+ def hasDefiniteSize = true
176
+
177
+ def ++[B >: A, That](that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {
178
+ val b = bf(repr)
179
+ if (that.isInstanceOf[IndexedSeqLike[_, _]]) b.sizeHint(this, that.seq.size)
180
+ b ++= thisCollection
181
+ b ++= that.seq
182
+ b.result
183
+ }
184
+
185
+ @bridge
186
+ def ++[B >: A, That](that: TraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That =
187
+ ++(that: GenTraversableOnce[B])(bf)
188
+
189
+ /** Concatenates this $coll with the elements of a traversable collection.
190
+ * It differs from ++ in that the right operand determines the type of the
191
+ * resulting collection rather than the left one.
192
+ *
193
+ * @param that the traversable to append.
194
+ * @tparam B the element type of the returned collection.
195
+ * @tparam That $thatinfo
196
+ * @param bf $bfinfo
197
+ * @return a new collection of type `That` which contains all elements
198
+ * of this $coll followed by all elements of `that`.
199
+ *
200
+ * @usecase def ++:[B](that: TraversableOnce[B]): $Coll[B]
201
+ *
202
+ * @return a new $coll which contains all elements of this $coll
203
+ * followed by all elements of `that`.
204
+ */
205
+ def ++:[B >: A, That](that: TraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {
206
+ val b = bf(repr)
207
+ if (that.isInstanceOf[IndexedSeqLike[_, _]]) b.sizeHint(this, that.size)
208
+ b ++= that
209
+ b ++= thisCollection
210
+ b.result
211
+ }
212
+
213
+ /** This overload exists because: for the implementation of ++: we should reuse
214
+ * that of ++ because many collections override it with more efficient versions.
215
+ * Since TraversableOnce has no '++' method, we have to implement that directly,
216
+ * but Traversable and down can use the overload.
217
+ */
218
+ def ++:[B >: A, That](that: Traversable[B])(implicit bf: CanBuildFrom[Repr, B, That]): That =
219
+ (that ++ seq)(breakOut)
220
+
221
+ def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {
222
+ val b = bf(repr)
223
+ b.sizeHint(this)
224
+ for (x <- this) b += f(x)
225
+ b.result
226
+ }
227
+
228
+ def flatMap[B, That](f: A => GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {
229
+ val b = bf(repr)
230
+ for (x <- this) b ++= f(x).seq
231
+ b.result
232
+ }
233
+
234
+ /** Selects all elements of this $coll which satisfy a predicate.
235
+ *
236
+ * @param p the predicate used to test elements.
237
+ * @return a new $coll consisting of all elements of this $coll that satisfy the given
238
+ * predicate `p`. The order of the elements is preserved.
239
+ */
240
+ def filter(p: A => Boolean): Repr = {
241
+ val b = newBuilder
242
+ for (x <- this)
243
+ if (p(x)) b += x
244
+ b.result
245
+ }
246
+
247
+ /** Selects all elements of this $coll which do not satisfy a predicate.
248
+ *
249
+ * @param p the predicate used to test elements.
250
+ * @return a new $coll consisting of all elements of this $coll that do not satisfy the given
251
+ * predicate `p`. The order of the elements is preserved.
252
+ */
253
+ def filterNot(p: A => Boolean): Repr = filter(!p(_))
254
+
255
+ def collect[B, That](pf: PartialFunction[A, B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {
256
+ val b = bf(repr)
257
+ for (x <- this) if (pf.isDefinedAt(x)) b += pf(x)
258
+ b.result
259
+ }
260
+
261
+ /** Builds a new collection by applying an option-valued function to all
262
+ * elements of this $coll on which the function is defined.
263
+ *
264
+ * @param f the option-valued function which filters and maps the $coll.
265
+ * @tparam B the element type of the returned collection.
266
+ * @tparam That $thatinfo
267
+ * @param bf $bfinfo
268
+ * @return a new collection of type `That` resulting from applying the option-valued function
269
+ * `f` to each element and collecting all defined results.
270
+ * The order of the elements is preserved.
271
+ *
272
+ * @usecase def filterMap[B](f: A => Option[B]): $Coll[B]
273
+ *
274
+ * @param pf the partial function which filters and maps the $coll.
275
+ * @return a new $coll resulting from applying the given option-valued function
276
+ * `f` to each element and collecting all defined results.
277
+ * The order of the elements is preserved.
278
+ def filterMap[B, That](f: A => Option[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {
279
+ val b = bf(repr)
280
+ for (x <- this)
281
+ f(x) match {
282
+ case Some(y) => b += y
283
+ case _ =>
284
+ }
285
+ b.result
286
+ }
287
+ */
288
+
289
+ /** Partitions this $coll in two ${coll}s according to a predicate.
290
+ *
291
+ * @param p the predicate on which to partition.
292
+ * @return a pair of ${coll}s: the first $coll consists of all elements that
293
+ * satisfy the predicate `p` and the second $coll consists of all elements
294
+ * that don't. The relative order of the elements in the resulting ${coll}s
295
+ * is the same as in the original $coll.
296
+ */
297
+ def partition(p: A => Boolean): (Repr, Repr) = {
298
+ val l, r = newBuilder
299
+ for (x <- this) (if (p(x)) l else r) += x
300
+ (l.result, r.result)
301
+ }
302
+
303
+ def groupBy[K](f: A => K): immutable.Map[K, Repr] = {
304
+ val m = mutable.Map.empty[K, Builder[A, Repr]]
305
+ for (elem <- this) {
306
+ val key = f(elem)
307
+ val bldr = m.getOrElseUpdate(key, newBuilder)
308
+ bldr += elem
309
+ }
310
+ val b = immutable.Map.newBuilder[K, Repr]
311
+ for ((k, v) <- m)
312
+ b += ((k, v.result))
313
+
314
+ b.result
315
+ }
316
+
317
+ /** Tests whether a predicate holds for all elements of this $coll.
318
+ *
319
+ * $mayNotTerminateInf
320
+ *
321
+ * @param p the predicate used to test elements.
322
+ * @return `true` if the given predicate `p` holds for all elements
323
+ * of this $coll, otherwise `false`.
324
+ */
325
+ def forall(p: A => Boolean): Boolean = {
326
+ var result = true
327
+ breakable {
328
+ for (x <- this)
329
+ if (!p(x)) { result = false; break }
330
+ }
331
+ result
332
+ }
333
+
334
+ /** Tests whether a predicate holds for some of the elements of this $coll.
335
+ *
336
+ * $mayNotTerminateInf
337
+ *
338
+ * @param p the predicate used to test elements.
339
+ * @return `true` if the given predicate `p` holds for some of the
340
+ * elements of this $coll, otherwise `false`.
341
+ */
342
+ def exists(p: A => Boolean): Boolean = {
343
+ var result = false
344
+ breakable {
345
+ for (x <- this)
346
+ if (p(x)) { result = true; break }
347
+ }
348
+ result
349
+ }
350
+
351
+ /** Finds the first element of the $coll satisfying a predicate, if any.
352
+ *
353
+ * $mayNotTerminateInf
354
+ * $orderDependent
355
+ *
356
+ * @param p the predicate used to test elements.
357
+ * @return an option value containing the first element in the $coll
358
+ * that satisfies `p`, or `None` if none exists.
359
+ */
360
+ def find(p: A => Boolean): Option[A] = {
361
+ var result: Option[A] = None
362
+ breakable {
363
+ for (x <- this)
364
+ if (p(x)) { result = Some(x); break }
365
+ }
366
+ result
367
+ }
368
+
369
+ def scan[B >: A, That](z: B)(op: (B, B) => B)(implicit cbf: CanBuildFrom[Repr, B, That]): That = scanLeft(z)(op)
370
+
371
+ def scanLeft[B, That](z: B)(op: (B, A) => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {
372
+ val b = bf(repr)
373
+ b.sizeHint(this, 1)
374
+ var acc = z
375
+ b += acc
376
+ for (x <- this) { acc = op(acc, x); b += acc }
377
+ b.result
378
+ }
379
+
380
+ @migration(2, 9,
381
+ "This scanRight definition has changed in 2.9.\n" +
382
+ "The previous behavior can be reproduced with scanRight.reverse."
383
+ )
384
+ def scanRight[B, That](z: B)(op: (A, B) => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {
385
+ var scanned = List(z)
386
+ var acc = z
387
+ for (x <- reversed) {
388
+ acc = op(x, acc)
389
+ scanned ::= acc
390
+ }
391
+ val b = bf(repr)
392
+ for (elem <- scanned) b += elem
393
+ b.result
394
+ }
395
+
396
+ /** Selects the first element of this $coll.
397
+ * $orderDependent
398
+ * @return the first element of this $coll.
399
+ * @throws `NoSuchElementException` if the $coll is empty.
400
+ */
401
+ def head: A = {
402
+ var result: () => A = () => throw new NoSuchElementException
403
+ breakable {
404
+ for (x <- this) {
405
+ result = () => x
406
+ break
407
+ }
408
+ }
409
+ result()
410
+ }
411
+
412
+ /** Optionally selects the first element.
413
+ * $orderDependent
414
+ * @return the first element of this $coll if it is nonempty, `None` if it is empty.
415
+ */
416
+ def headOption: Option[A] = if (isEmpty) None else Some(head)
417
+
418
+ /** Selects all elements except the first.
419
+ * $orderDependent
420
+ * @return a $coll consisting of all elements of this $coll
421
+ * except the first one.
422
+ * @throws `UnsupportedOperationException` if the $coll is empty.
423
+ */
424
+ override def tail: Repr = {
425
+ if (isEmpty) throw new UnsupportedOperationException("empty.tail")
426
+ drop(1)
427
+ }
428
+
429
+ /** Selects the last element.
430
+ * $orderDependent
431
+ * @return The last element of this $coll.
432
+ * @throws NoSuchElementException If the $coll is empty.
433
+ */
434
+ def last: A = {
435
+ var lst = head
436
+ for (x <- this)
437
+ lst = x
438
+ lst
439
+ }
440
+
441
+ /** Optionally selects the last element.
442
+ * $orderDependent
443
+ * @return the last element of this $coll$ if it is nonempty, `None` if it is empty.
444
+ */
445
+ def lastOption: Option[A] = if (isEmpty) None else Some(last)
446
+
447
+ /** Selects all elements except the last.
448
+ * $orderDependent
449
+ * @return a $coll consisting of all elements of this $coll
450
+ * except the last one.
451
+ * @throws `UnsupportedOperationException` if the $coll is empty.
452
+ */
453
+ def init: Repr = {
454
+ if (isEmpty) throw new UnsupportedOperationException("empty.init")
455
+ var lst = head
456
+ var follow = false
457
+ val b = newBuilder
458
+ b.sizeHint(this, -1)
459
+ for (x <- this.seq) {
460
+ if (follow) b += lst
461
+ else follow = true
462
+ lst = x
463
+ }
464
+ b.result
465
+ }
466
+
467
+ def take(n: Int): Repr = slice(0, n)
468
+
469
+ def drop(n: Int): Repr =
470
+ if (n <= 0) {
471
+ val b = newBuilder
472
+ b.sizeHint(this)
473
+ b ++= thisCollection result
474
+ }
475
+ else sliceWithKnownDelta(n, Int.MaxValue, -n)
476
+
477
+ def slice(from: Int, until: Int): Repr = sliceWithKnownBound(math.max(from, 0), until)
478
+
479
+ // Precondition: from >= 0, until > 0, builder already configured for building.
480
+ private[this] def sliceInternal(from: Int, until: Int, b: Builder[A, Repr]): Repr = {
481
+ var i = 0
482
+ breakable {
483
+ for (x <- this.seq) {
484
+ if (i >= from) b += x
485
+ i += 1
486
+ if (i >= until) break
487
+ }
488
+ }
489
+ b.result
490
+ }
491
+ // Precondition: from >= 0
492
+ private[scala] def sliceWithKnownDelta(from: Int, until: Int, delta: Int): Repr = {
493
+ val b = newBuilder
494
+ if (until <= from) b.result
495
+ else {
496
+ b.sizeHint(this, delta)
497
+ sliceInternal(from, until, b)
498
+ }
499
+ }
500
+ // Precondition: from >= 0
501
+ private[scala] def sliceWithKnownBound(from: Int, until: Int): Repr = {
502
+ val b = newBuilder
503
+ if (until <= from) b.result
504
+ else {
505
+ b.sizeHintBounded(until - from, this)
506
+ sliceInternal(from, until, b)
507
+ }
508
+ }
509
+
510
+ def takeWhile(p: A => Boolean): Repr = {
511
+ val b = newBuilder
512
+ breakable {
513
+ for (x <- this) {
514
+ if (!p(x)) break
515
+ b += x
516
+ }
517
+ }
518
+ b.result
519
+ }
520
+
521
+ def dropWhile(p: A => Boolean): Repr = {
522
+ val b = newBuilder
523
+ var go = false
524
+ for (x <- this) {
525
+ if (!p(x)) go = true
526
+ if (go) b += x
527
+ }
528
+ b.result
529
+ }
530
+
531
+ def span(p: A => Boolean): (Repr, Repr) = {
532
+ val l, r = newBuilder
533
+ var toLeft = true
534
+ for (x <- this) {
535
+ toLeft = toLeft && p(x)
536
+ (if (toLeft) l else r) += x
537
+ }
538
+ (l.result, r.result)
539
+ }
540
+
541
+ def splitAt(n: Int): (Repr, Repr) = {
542
+ val l, r = newBuilder
543
+ l.sizeHintBounded(n, this)
544
+ if (n >= 0) r.sizeHint(this, -n)
545
+ var i = 0
546
+ for (x <- this) {
547
+ (if (i < n) l else r) += x
548
+ i += 1
549
+ }
550
+ (l.result, r.result)
551
+ }
552
+
553
+ /** Iterates over the tails of this $coll. The first value will be this
554
+ * $coll and the final one will be an empty $coll, with the intervening
555
+ * values the results of successive applications of `tail`.
556
+ *
557
+ * @return an iterator over all the tails of this $coll
558
+ * @example `List(1,2,3).tails = Iterator(List(1,2,3), List(2,3), List(3), Nil)`
559
+ */
560
+ def tails: Iterator[Repr] = iterateUntilEmpty(_.tail)
561
+
562
+ /** Iterates over the inits of this $coll. The first value will be this
563
+ * $coll and the final one will be an empty $coll, with the intervening
564
+ * values the results of successive applications of `init`.
565
+ *
566
+ * @return an iterator over all the inits of this $coll
567
+ * @example `List(1,2,3).inits = Iterator(List(1,2,3), List(1,2), List(1), Nil)`
568
+ */
569
+ def inits: Iterator[Repr] = iterateUntilEmpty(_.init)
570
+
571
+ /** Copies elements of this $coll to an array.
572
+ * Fills the given array `xs` with at most `len` elements of
573
+ * this $coll, starting at position `start`.
574
+ * Copying will stop once either the end of the current $coll is reached,
575
+ * or the end of the array is reached, or `len` elements have been copied.
576
+ *
577
+ * $willNotTerminateInf
578
+ *
579
+ * @param xs the array to fill.
580
+ * @param start the starting index.
581
+ * @param len the maximal number of elements to copy.
582
+ * @tparam B the type of the elements of the array.
583
+ *
584
+ *
585
+ * @usecase def copyToArray(xs: Array[A], start: Int, len: Int): Unit
586
+ */
587
+ def copyToArray[B >: A](xs: Array[B], start: Int, len: Int) {
588
+ var i = start
589
+ val end = (start + len) min xs.length
590
+ breakable {
591
+ for (x <- this) {
592
+ if (i >= end) break
593
+ xs(i) = x
594
+ i += 1
595
+ }
596
+ }
597
+ }
598
+
599
+ def toTraversable: Traversable[A] = thisCollection
600
+ def toIterator: Iterator[A] = toStream.iterator
601
+ def toStream: Stream[A] = toBuffer.toStream
602
+
603
+ /** Converts this $coll to a string.
604
+ *
605
+ * @return a string representation of this collection. By default this
606
+ * string consists of the `stringPrefix` of this $coll,
607
+ * followed by all elements separated by commas and enclosed in parentheses.
608
+ */
609
+ override def toString = mkString(stringPrefix + "(", ", ", ")")
610
+
611
+ /** Defines the prefix of this object's `toString` representation.
612
+ *
613
+ * @return a string representation which starts the result of `toString`
614
+ * applied to this $coll. By default the string prefix is the
615
+ * simple name of the collection class $coll.
616
+ */
617
+ def stringPrefix : String = {
618
+ var string = repr.asInstanceOf[AnyRef].getClass.getName
619
+ val idx1 = string.lastIndexOf('.' : Int)
620
+ if (idx1 != -1) string = string.substring(idx1 + 1)
621
+ val idx2 = string.indexOf('$')
622
+ if (idx2 != -1) string = string.substring(0, idx2)
623
+ string
624
+ }
625
+
626
+ /** Creates a non-strict view of this $coll.
627
+ *
628
+ * @return a non-strict view of this $coll.
629
+ */
630
+ def view = new TraversableView[A, Repr] {
631
+ protected lazy val underlying = self.repr
632
+ override def foreach[U](f: A => U) = self foreach f
633
+ }
634
+
635
+ /** Creates a non-strict view of a slice of this $coll.
636
+ *
637
+ * Note: the difference between `view` and `slice` is that `view` produces
638
+ * a view of the current $coll, whereas `slice` produces a new $coll.
639
+ *
640
+ * Note: `view(from, to)` is equivalent to `view.slice(from, to)`
641
+ * $orderDependent
642
+ *
643
+ * @param from the index of the first element of the view
644
+ * @param until the index of the element following the view
645
+ * @return a non-strict view of a slice of this $coll, starting at index `from`
646
+ * and extending up to (but not including) index `until`.
647
+ */
648
+ def view(from: Int, until: Int): TraversableView[A, Repr] = view.slice(from, until)
649
+
650
+ /** Creates a non-strict filter of this $coll.
651
+ *
652
+ * Note: the difference between `c filter p` and `c withFilter p` is that
653
+ * the former creates a new collection, whereas the latter only
654
+ * restricts the domain of subsequent `map`, `flatMap`, `foreach`,
655
+ * and `withFilter` operations.
656
+ * $orderDependent
657
+ *
658
+ * @param p the predicate used to test elements.
659
+ * @return an object of class `WithFilter`, which supports
660
+ * `map`, `flatMap`, `foreach`, and `withFilter` operations.
661
+ * All these operations apply to those elements of this $coll which
662
+ * satisfy the predicate `p`.
663
+ */
664
+ def withFilter(p: A => Boolean): FilterMonadic[A, Repr] = new WithFilter(p)
665
+
666
+ /** A class supporting filtered operations. Instances of this class are
667
+ * returned by method `withFilter`.
668
+ */
669
+ class WithFilter(p: A => Boolean) extends FilterMonadic[A, Repr] {
670
+
671
+ /** Builds a new collection by applying a function to all elements of the
672
+ * outer $coll containing this `WithFilter` instance that satisfy predicate `p`.
673
+ *
674
+ * @param f the function to apply to each element.
675
+ * @tparam B the element type of the returned collection.
676
+ * @tparam That $thatinfo
677
+ * @param bf $bfinfo
678
+ * @return a new collection of type `That` resulting from applying
679
+ * the given function `f` to each element of the outer $coll
680
+ * that satisfies predicate `p` and collecting the results.
681
+ *
682
+ * @usecase def map[B](f: A => B): $Coll[B]
683
+ *
684
+ * @return a new $coll resulting from applying the given function
685
+ * `f` to each element of the outer $coll that satisfies
686
+ * predicate `p` and collecting the results.
687
+ */
688
+ def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {
689
+ val b = bf(repr)
690
+ for (x <- self)
691
+ if (p(x)) b += f(x)
692
+ b.result
693
+ }
694
+
695
+ /** Builds a new collection by applying a function to all elements of the
696
+ * outer $coll containing this `WithFilter` instance that satisfy
697
+ * predicate `p` and concatenating the results.
698
+ *
699
+ * @param f the function to apply to each element.
700
+ * @tparam B the element type of the returned collection.
701
+ * @tparam That $thatinfo
702
+ * @param bf $bfinfo
703
+ * @return a new collection of type `That` resulting from applying
704
+ * the given collection-valued function `f` to each element
705
+ * of the outer $coll that satisfies predicate `p` and
706
+ * concatenating the results.
707
+ *
708
+ * @usecase def flatMap[B](f: A => TraversableOnce[B]): $Coll[B]
709
+ *
710
+ * @return a new $coll resulting from applying the given collection-valued function
711
+ * `f` to each element of the outer $coll that satisfies predicate `p` and concatenating the results.
712
+ */
713
+ def flatMap[B, That](f: A => GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {
714
+ val b = bf(repr)
715
+ for (x <- self)
716
+ if (p(x)) b ++= f(x).seq
717
+ b.result
718
+ }
719
+
720
+ /** Applies a function `f` to all elements of the outer $coll containing
721
+ * this `WithFilter` instance that satisfy predicate `p`.
722
+ *
723
+ * @param f the function that is applied for its side-effect to every element.
724
+ * The result of function `f` is discarded.
725
+ *
726
+ * @tparam U the type parameter describing the result of function `f`.
727
+ * This result will always be ignored. Typically `U` is `Unit`,
728
+ * but this is not necessary.
729
+ *
730
+ * @usecase def foreach(f: A => Unit): Unit
731
+ */
732
+ def foreach[U](f: A => U): Unit =
733
+ for (x <- self)
734
+ if (p(x)) f(x)
735
+
736
+ /** Further refines the filter for this $coll.
737
+ *
738
+ * @param q the predicate used to test elements.
739
+ * @return an object of class `WithFilter`, which supports
740
+ * `map`, `flatMap`, `foreach`, and `withFilter` operations.
741
+ * All these operations apply to those elements of this $coll which
742
+ * satisfy the predicate `q` in addition to the predicate `p`.
743
+ */
744
+ def withFilter(q: A => Boolean): WithFilter =
745
+ new WithFilter(x => p(x) && q(x))
746
+ }
747
+
748
+ // A helper for tails and inits.
749
+ private def iterateUntilEmpty(f: Traversable[A @uV] => Traversable[A @uV]): Iterator[Repr] = {
750
+ val it = Iterator.iterate(thisCollection)(f) takeWhile (x => !x.isEmpty)
751
+ it ++ Iterator(Nil) map (newBuilder ++= _ result)
752
+ }
753
+ }
754
+
755
+
756
+ </textarea>
757
+ </form>
758
+
759
+ <script>
760
+ var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
761
+ lineNumbers: true,
762
+ matchBrackets: true,
763
+ theme: "ambiance",
764
+ mode: "text/x-scala"
765
+ });
766
+ </script>
767
+ </article>