agilebuilder-ui 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 (392) hide show
  1. package/README.md +7 -0
  2. package/index.html +13 -0
  3. package/package.json +36 -0
  4. package/packages/IntervalSelection/index.js +6 -0
  5. package/packages/IntervalSelection/src/quarterScope.vue +405 -0
  6. package/packages/IntervalSelection/src/sectionDate.vue +475 -0
  7. package/packages/breadcrumb/index.js +6 -0
  8. package/packages/breadcrumb/src/breadcrumb.vue +81 -0
  9. package/packages/department-tree/index.js +6 -0
  10. package/packages/department-tree/src/department-tree.vue +114 -0
  11. package/packages/department-tree-inline/index.js +6 -0
  12. package/packages/department-tree-inline/src/department-multi-tree-inline.vue +494 -0
  13. package/packages/department-tree-inline/src/department-single-tree-inline.vue +367 -0
  14. package/packages/department-tree-inline/src/department-tree-inline.vue +86 -0
  15. package/packages/department-tree-inline/src/department-tree-service.js +344 -0
  16. package/packages/department-tree-inline/src/search-result.vue +238 -0
  17. package/packages/department-user-tree/index.js +6 -0
  18. package/packages/department-user-tree/src/department-user-multiple-tree.vue +133 -0
  19. package/packages/department-user-tree/src/department-user-single-tree.vue +96 -0
  20. package/packages/department-user-tree/src/department-user-tree.vue +115 -0
  21. package/packages/department-user-tree-inline/index.js +9 -0
  22. package/packages/department-user-tree-inline/src/department-user-multiple-tree-inline.vue +758 -0
  23. package/packages/department-user-tree-inline/src/department-user-single-tree-inline.vue +358 -0
  24. package/packages/department-user-tree-inline/src/department-user-tree-inline.vue +87 -0
  25. package/packages/department-user-tree-inline/src/department-user-tree-multi-service.js +309 -0
  26. package/packages/department-user-tree-inline/src/department-user-tree-single-service.js +180 -0
  27. package/packages/department-user-tree-inline/src/search-result.vue +286 -0
  28. package/packages/directives/prevent-reclick.js +22 -0
  29. package/packages/dynamic-source-select/index.js +6 -0
  30. package/packages/dynamic-source-select/src/dynamic-source-select-service.js +124 -0
  31. package/packages/dynamic-source-select/src/dynamic-source-select.vue +857 -0
  32. package/packages/dynamic-source-select/src/events.js +77 -0
  33. package/packages/fs-preview/index.js +6 -0
  34. package/packages/fs-preview/src/fs-preview.vue +303 -0
  35. package/packages/fs-upload/index.js +6 -0
  36. package/packages/fs-upload/src/fs-upload-multi.vue +458 -0
  37. package/packages/fs-upload/src/fs-upload-single.vue +365 -0
  38. package/packages/fs-upload/src/fs-upload.vue +191 -0
  39. package/packages/fs-upload/src/see-big-picture.vue +67 -0
  40. package/packages/fs-upload-list/index.js +6 -0
  41. package/packages/fs-upload-list/src/fs-upload-list.vue +387 -0
  42. package/packages/hamburger/index.js +6 -0
  43. package/packages/hamburger/src/hamburger.vue +50 -0
  44. package/packages/index.js +124 -0
  45. package/packages/multipart-upload/index.js +6 -0
  46. package/packages/multipart-upload/src/index.vue +66 -0
  47. package/packages/multipart-upload/src/multipart-upload-form.vue +395 -0
  48. package/packages/multipart-upload/src/multipart-upload-list.vue +539 -0
  49. package/packages/organization-input/index.js +6 -0
  50. package/packages/organization-input/src/organization-input.vue +579 -0
  51. package/packages/plugins/export-data-new.js +630 -0
  52. package/packages/plugins/export-data.js +431 -0
  53. package/packages/plugins/index.js +15 -0
  54. package/packages/plugins/public-method.js +47 -0
  55. package/packages/remove-department/index.js +6 -0
  56. package/packages/remove-department/src/remove-department.vue +201 -0
  57. package/packages/remove-department/src/remove-dept-service.js +31 -0
  58. package/packages/remove-user/index.js +6 -0
  59. package/packages/remove-user/src/remove-user-service.js +31 -0
  60. package/packages/remove-user/src/remove-user.vue +227 -0
  61. package/packages/remove-workgroup/index.js +6 -0
  62. package/packages/remove-workgroup/src/remove-workgroup-service.js +31 -0
  63. package/packages/remove-workgroup/src/remove-workgroup.vue +184 -0
  64. package/packages/rich-editor/index.js +7 -0
  65. package/packages/rich-editor/index.vue +314 -0
  66. package/packages/rich-editor/tinymce/icons/default/icons.min.js +1 -0
  67. package/packages/rich-editor/tinymce/langs/README.md +3 -0
  68. package/packages/rich-editor/tinymce/langs/zh-Hans.js +1 -0
  69. package/packages/rich-editor/tinymce/license.txt +21 -0
  70. package/packages/rich-editor/tinymce/models/dom/model.min.js +4 -0
  71. package/packages/rich-editor/tinymce/plugins/accordion/plugin.min.js +4 -0
  72. package/packages/rich-editor/tinymce/plugins/advlist/plugin.min.js +4 -0
  73. package/packages/rich-editor/tinymce/plugins/anchor/plugin.min.js +4 -0
  74. package/packages/rich-editor/tinymce/plugins/autolink/plugin.min.js +4 -0
  75. package/packages/rich-editor/tinymce/plugins/autoresize/plugin.min.js +4 -0
  76. package/packages/rich-editor/tinymce/plugins/autosave/plugin.min.js +4 -0
  77. package/packages/rich-editor/tinymce/plugins/charmap/plugin.min.js +4 -0
  78. package/packages/rich-editor/tinymce/plugins/code/plugin.min.js +4 -0
  79. package/packages/rich-editor/tinymce/plugins/codesample/plugin.min.js +4 -0
  80. package/packages/rich-editor/tinymce/plugins/directionality/plugin.min.js +4 -0
  81. package/packages/rich-editor/tinymce/plugins/emoticons/js/emojiimages.js +1 -0
  82. package/packages/rich-editor/tinymce/plugins/emoticons/js/emojiimages.min.js +3 -0
  83. package/packages/rich-editor/tinymce/plugins/emoticons/js/emojis.js +1 -0
  84. package/packages/rich-editor/tinymce/plugins/emoticons/js/emojis.min.js +2 -0
  85. package/packages/rich-editor/tinymce/plugins/emoticons/plugin.min.js +4 -0
  86. package/packages/rich-editor/tinymce/plugins/fullscreen/plugin.min.js +4 -0
  87. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/ar.js +90 -0
  88. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/bg_BG.js +90 -0
  89. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/ca.js +90 -0
  90. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/cs.js +90 -0
  91. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/da.js +90 -0
  92. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/de.js +90 -0
  93. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/el.js +90 -0
  94. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/en.js +90 -0
  95. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/es.js +90 -0
  96. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/eu.js +90 -0
  97. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/fa.js +90 -0
  98. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/fi.js +90 -0
  99. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/fr_FR.js +90 -0
  100. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/he_IL.js +90 -0
  101. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/hi.js +90 -0
  102. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/hr.js +90 -0
  103. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/hu_HU.js +90 -0
  104. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/id.js +90 -0
  105. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/it.js +90 -0
  106. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/ja.js +90 -0
  107. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/kk.js +90 -0
  108. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/ko_KR.js +90 -0
  109. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/ms.js +90 -0
  110. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/nb_NO.js +90 -0
  111. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/nl.js +90 -0
  112. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/pl.js +90 -0
  113. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/pt_BR.js +90 -0
  114. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/pt_PT.js +90 -0
  115. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/ro.js +90 -0
  116. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/ru.js +90 -0
  117. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/sk.js +90 -0
  118. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/sl_SI.js +90 -0
  119. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/sv_SE.js +90 -0
  120. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/th_TH.js +90 -0
  121. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/tr.js +90 -0
  122. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/uk.js +90 -0
  123. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/vi.js +90 -0
  124. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/zh_CN.js +84 -0
  125. package/packages/rich-editor/tinymce/plugins/help/js/i18n/keynav/zh_TW.js +90 -0
  126. package/packages/rich-editor/tinymce/plugins/help/plugin.min.js +4 -0
  127. package/packages/rich-editor/tinymce/plugins/image/plugin.min.js +4 -0
  128. package/packages/rich-editor/tinymce/plugins/importcss/plugin.min.js +4 -0
  129. package/packages/rich-editor/tinymce/plugins/insertdatetime/plugin.min.js +4 -0
  130. package/packages/rich-editor/tinymce/plugins/link/plugin.min.js +4 -0
  131. package/packages/rich-editor/tinymce/plugins/lists/plugin.min.js +4 -0
  132. package/packages/rich-editor/tinymce/plugins/media/plugin.min.js +4 -0
  133. package/packages/rich-editor/tinymce/plugins/nonbreaking/plugin.min.js +4 -0
  134. package/packages/rich-editor/tinymce/plugins/pagebreak/plugin.min.js +4 -0
  135. package/packages/rich-editor/tinymce/plugins/preview/plugin.min.js +4 -0
  136. package/packages/rich-editor/tinymce/plugins/quickbars/plugin.min.js +4 -0
  137. package/packages/rich-editor/tinymce/plugins/save/plugin.min.js +4 -0
  138. package/packages/rich-editor/tinymce/plugins/searchreplace/plugin.min.js +4 -0
  139. package/packages/rich-editor/tinymce/plugins/table/plugin.min.js +4 -0
  140. package/packages/rich-editor/tinymce/plugins/template/plugin.min.js +4 -0
  141. package/packages/rich-editor/tinymce/plugins/visualblocks/plugin.min.js +4 -0
  142. package/packages/rich-editor/tinymce/plugins/visualchars/plugin.min.js +4 -0
  143. package/packages/rich-editor/tinymce/plugins/wordcount/plugin.min.js +4 -0
  144. package/packages/rich-editor/tinymce/skins/content/dark/content.js +2 -0
  145. package/packages/rich-editor/tinymce/skins/content/dark/content.min.css +1 -0
  146. package/packages/rich-editor/tinymce/skins/content/default/content.js +2 -0
  147. package/packages/rich-editor/tinymce/skins/content/default/content.min.css +1 -0
  148. package/packages/rich-editor/tinymce/skins/content/document/content.js +2 -0
  149. package/packages/rich-editor/tinymce/skins/content/document/content.min.css +1 -0
  150. package/packages/rich-editor/tinymce/skins/content/tinymce-5/content.js +2 -0
  151. package/packages/rich-editor/tinymce/skins/content/tinymce-5/content.min.css +1 -0
  152. package/packages/rich-editor/tinymce/skins/content/tinymce-5-dark/content.js +2 -0
  153. package/packages/rich-editor/tinymce/skins/content/tinymce-5-dark/content.min.css +1 -0
  154. package/packages/rich-editor/tinymce/skins/content/writer/content.js +2 -0
  155. package/packages/rich-editor/tinymce/skins/content/writer/content.min.css +1 -0
  156. package/packages/rich-editor/tinymce/skins/ui/oxide/content.inline.js +2 -0
  157. package/packages/rich-editor/tinymce/skins/ui/oxide/content.inline.min.css +1 -0
  158. package/packages/rich-editor/tinymce/skins/ui/oxide/content.js +2 -0
  159. package/packages/rich-editor/tinymce/skins/ui/oxide/content.min.css +1 -0
  160. package/packages/rich-editor/tinymce/skins/ui/oxide/skin.js +2 -0
  161. package/packages/rich-editor/tinymce/skins/ui/oxide/skin.min.css +1 -0
  162. package/packages/rich-editor/tinymce/skins/ui/oxide/skin.shadowdom.js +2 -0
  163. package/packages/rich-editor/tinymce/skins/ui/oxide/skin.shadowdom.min.css +1 -0
  164. package/packages/rich-editor/tinymce/skins/ui/oxide-dark/content.inline.js +2 -0
  165. package/packages/rich-editor/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -0
  166. package/packages/rich-editor/tinymce/skins/ui/oxide-dark/content.js +2 -0
  167. package/packages/rich-editor/tinymce/skins/ui/oxide-dark/content.min.css +1 -0
  168. package/packages/rich-editor/tinymce/skins/ui/oxide-dark/skin.js +2 -0
  169. package/packages/rich-editor/tinymce/skins/ui/oxide-dark/skin.min.css +1 -0
  170. package/packages/rich-editor/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +2 -0
  171. package/packages/rich-editor/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -0
  172. package/packages/rich-editor/tinymce/skins/ui/tinymce-5/content.inline.js +2 -0
  173. package/packages/rich-editor/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -0
  174. package/packages/rich-editor/tinymce/skins/ui/tinymce-5/content.js +2 -0
  175. package/packages/rich-editor/tinymce/skins/ui/tinymce-5/content.min.css +1 -0
  176. package/packages/rich-editor/tinymce/skins/ui/tinymce-5/skin.js +2 -0
  177. package/packages/rich-editor/tinymce/skins/ui/tinymce-5/skin.min.css +1 -0
  178. package/packages/rich-editor/tinymce/skins/ui/tinymce-5/skin.shadowdom.js +2 -0
  179. package/packages/rich-editor/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css +1 -0
  180. package/packages/rich-editor/tinymce/skins/ui/tinymce-5-dark/content.inline.js +2 -0
  181. package/packages/rich-editor/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -0
  182. package/packages/rich-editor/tinymce/skins/ui/tinymce-5-dark/content.js +2 -0
  183. package/packages/rich-editor/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -0
  184. package/packages/rich-editor/tinymce/skins/ui/tinymce-5-dark/skin.js +2 -0
  185. package/packages/rich-editor/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -0
  186. package/packages/rich-editor/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js +2 -0
  187. package/packages/rich-editor/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +1 -0
  188. package/packages/rich-editor/tinymce/themes/silver/theme.min.js +4 -0
  189. package/packages/rich-editor/tinymce/tinymce.d.ts +3238 -0
  190. package/packages/rich-editor/tinymce/tinymce.min.js +4 -0
  191. package/packages/rich-editor/tinymce/zh_CN.js +418 -0
  192. package/packages/rich-editor/viewer.vue +105 -0
  193. package/packages/scan-code-input/index.js +6 -0
  194. package/packages/scan-code-input/src/events.js +34 -0
  195. package/packages/scan-code-input/src/scan-code-input-colse.vue +140 -0
  196. package/packages/scan-code-input/src/scan-code-input.vue +132 -0
  197. package/packages/secret-info/index.js +7 -0
  198. package/packages/secret-info/index.vue +100 -0
  199. package/packages/super-grid/index.js +7 -0
  200. package/packages/super-grid/src/apis.js +1193 -0
  201. package/packages/super-grid/src/columns-config.vue +429 -0
  202. package/packages/super-grid/src/components/grid-icon.vue +162 -0
  203. package/packages/super-grid/src/components/hyperlinks.vue +114 -0
  204. package/packages/super-grid/src/custom-formatter.js +430 -0
  205. package/packages/super-grid/src/dynamic-input.vue +1473 -0
  206. package/packages/super-grid/src/eventBus.js +10 -0
  207. package/packages/super-grid/src/events.js +56 -0
  208. package/packages/super-grid/src/formValidatorUtil.js +300 -0
  209. package/packages/super-grid/src/formatter.js +196 -0
  210. package/packages/super-grid/src/group-column.vue +99 -0
  211. package/packages/super-grid/src/header-context-menu.vue +82 -0
  212. package/packages/super-grid/src/index-column.vue +69 -0
  213. package/packages/super-grid/src/normal-column.vue +1239 -0
  214. package/packages/super-grid/src/public-methods.js +30 -0
  215. package/packages/super-grid/src/row-operation.vue +193 -0
  216. package/packages/super-grid/src/search-button.vue +79 -0
  217. package/packages/super-grid/src/search-condition-input.vue +74 -0
  218. package/packages/super-grid/src/search-condition-list.vue +70 -0
  219. package/packages/super-grid/src/search-form-advancedQuery.vue +833 -0
  220. package/packages/super-grid/src/search-form-dialog.vue +77 -0
  221. package/packages/super-grid/src/search-form-item.vue +496 -0
  222. package/packages/super-grid/src/search-form-number.vue +111 -0
  223. package/packages/super-grid/src/search-form-open.vue +178 -0
  224. package/packages/super-grid/src/search-form-ordinarySearch.vue +248 -0
  225. package/packages/super-grid/src/search-form.vue +767 -0
  226. package/packages/super-grid/src/search-methods.js +591 -0
  227. package/packages/super-grid/src/selection-column.vue +46 -0
  228. package/packages/super-grid/src/store.js +3 -0
  229. package/packages/super-grid/src/super-grid-service.js +729 -0
  230. package/packages/super-grid/src/super-grid.vue +3025 -0
  231. package/packages/super-grid/src/utils.js +880 -0
  232. package/packages/super-grid/src/view-image-dialog.vue +190 -0
  233. package/packages/super-nine-grid/index.js +7 -0
  234. package/packages/super-nine-grid/src/apis.js +108 -0
  235. package/packages/super-nine-grid/src/custom-formatter.js +73 -0
  236. package/packages/super-nine-grid/src/formatter.js +134 -0
  237. package/packages/super-nine-grid/src/search-form-number.vue +35 -0
  238. package/packages/super-nine-grid/src/search-form.vue +704 -0
  239. package/packages/super-nine-grid/src/search-methods.js +151 -0
  240. package/packages/super-nine-grid/src/store.js +3 -0
  241. package/packages/super-nine-grid/src/super-grid-service.js +108 -0
  242. package/packages/super-nine-grid/src/super-nine-grid.vue +1211 -0
  243. package/packages/super-nine-grid/src/utils.js +264 -0
  244. package/packages/svg-icon/index.js +6 -0
  245. package/packages/svg-icon/src/svg-icon.vue +43 -0
  246. package/packages/utils/date-util.js +292 -0
  247. package/packages/utils/dom.js +227 -0
  248. package/packages/utils/gogocodeTransfer.js +59 -0
  249. package/packages/utils/memory-cache-utils.js +117 -0
  250. package/packages/utils/utils.js +180 -0
  251. package/packages/utils/value-set.js +97 -0
  252. package/packages/valid-code/index.js +7 -0
  253. package/packages/valid-code/src/valid-code.vue +104 -0
  254. package/packages/workflow-button/index.js +6 -0
  255. package/packages/workflow-button/src/workflow-button.vue +569 -0
  256. package/packages/workflow-history-list/index.js +6 -0
  257. package/packages/workflow-history-list/src/api.js +7 -0
  258. package/packages/workflow-history-list/src/workflow-history-list.vue +302 -0
  259. package/packages/workgroup-tree/index.js +6 -0
  260. package/packages/workgroup-tree/src/workgroup-tree.vue +87 -0
  261. package/packages/workgroup-tree-inline/index.js +6 -0
  262. package/packages/workgroup-tree-inline/src/search-result.vue +226 -0
  263. package/packages/workgroup-tree-inline/src/workgroup-tree-inline.vue +539 -0
  264. package/packages/workgroup-tree-inline/src/workgroup-tree-service.js +93 -0
  265. package/packages/workgroup-user-tree/index.js +6 -0
  266. package/packages/workgroup-user-tree/src/workgroup-user-tree.vue +104 -0
  267. package/packages/workgroup-user-tree-inline/index.js +9 -0
  268. package/packages/workgroup-user-tree-inline/src/search-result.vue +270 -0
  269. package/packages/workgroup-user-tree-inline/src/workgroup-tree-inline-service.js +239 -0
  270. package/packages/workgroup-user-tree-inline/src/workgroup-user-tree-inline.vue +681 -0
  271. package/packages/year-range-picker/index.js +6 -0
  272. package/packages/year-range-picker/src/year-range-picker.vue +53 -0
  273. package/public/vite.svg +1 -0
  274. package/src/api/sso-service.js +193 -0
  275. package/src/api/tab.js +36 -0
  276. package/src/api/user-service.js +11 -0
  277. package/src/assets/401/401.gif +0 -0
  278. package/src/assets/404/404-cloud.png +0 -0
  279. package/src/assets/404/404.png +0 -0
  280. package/src/assets/cloud.png +0 -0
  281. package/src/assets/nonemessage.png +0 -0
  282. package/src/directives/permission/index.js +13 -0
  283. package/src/directives/permission/permission.js +20 -0
  284. package/src/i18n/i18n.js +16 -0
  285. package/src/i18n/langs/cn.js +266 -0
  286. package/src/i18n/langs/en.js +276 -0
  287. package/src/index.js +93 -0
  288. package/src/permission.js +242 -0
  289. package/src/plugins.js +18 -0
  290. package/src/router/index.js +92 -0
  291. package/src/store/getters.js +15 -0
  292. package/src/store/index.js +19 -0
  293. package/src/store/modules/app.js +54 -0
  294. package/src/store/modules/permission.js +143 -0
  295. package/src/store/modules/tab-content.js +36 -0
  296. package/src/store/modules/user.js +365 -0
  297. package/src/styles/display-layout.scss +34 -0
  298. package/src/styles/element-ui.scss +29 -0
  299. package/src/styles/index.scss +157 -0
  300. package/src/styles/mixin.scss +27 -0
  301. package/src/styles/theme/black/font-style.scss +70 -0
  302. package/src/styles/theme/black/index.scss +306 -0
  303. package/src/styles/theme/black/sidebar.scss +189 -0
  304. package/src/styles/theme/blue/font-style.scss +46 -0
  305. package/src/styles/theme/blue/index.scss +172 -0
  306. package/src/styles/theme/blue/sidebar.scss +171 -0
  307. package/src/styles/theme/blue2/font-style.scss +70 -0
  308. package/src/styles/theme/blue2/index.scss +188 -0
  309. package/src/styles/theme/blue2/sidebar.scss +201 -0
  310. package/src/styles/theme/dark-blue/button.scss +78 -0
  311. package/src/styles/theme/dark-blue/card.scss +63 -0
  312. package/src/styles/theme/dark-blue/checkbox.scss +10 -0
  313. package/src/styles/theme/dark-blue/dark-blue-var.scss +9 -0
  314. package/src/styles/theme/dark-blue/dialog.scss +17 -0
  315. package/src/styles/theme/dark-blue/element-variables.scss +7 -0
  316. package/src/styles/theme/dark-blue/font.scss +71 -0
  317. package/src/styles/theme/dark-blue/form.scss +51 -0
  318. package/src/styles/theme/dark-blue/index.scss +277 -0
  319. package/src/styles/theme/dark-blue/input.scss +15 -0
  320. package/src/styles/theme/dark-blue/message.scss +8 -0
  321. package/src/styles/theme/dark-blue/pagination.scss +18 -0
  322. package/src/styles/theme/dark-blue/radio.scss +13 -0
  323. package/src/styles/theme/dark-blue/scrollbar-style.scss +32 -0
  324. package/src/styles/theme/dark-blue/sidebar.scss +268 -0
  325. package/src/styles/theme/dark-blue/tab.scss +83 -0
  326. package/src/styles/theme/dark-blue/table.scss +60 -0
  327. package/src/styles/theme/dark-blue/tree.scss +57 -0
  328. package/src/styles/theme/dark-blue/var.scss +1028 -0
  329. package/src/styles/theme/gray/card-style.scss +54 -0
  330. package/src/styles/theme/gray/font-style.scss +70 -0
  331. package/src/styles/theme/gray/index.scss +172 -0
  332. package/src/styles/theme/gray/input-style.scss +19 -0
  333. package/src/styles/theme/gray/scrollbar-style.scss +32 -0
  334. package/src/styles/theme/gray/sidebar.scss +243 -0
  335. package/src/styles/theme/gray/tab-style.scss +81 -0
  336. package/src/styles/transition.scss +47 -0
  337. package/src/utils/auth-api.js +259 -0
  338. package/src/utils/auth.js +98 -0
  339. package/src/utils/calculator/calculator-factory-wf.js +558 -0
  340. package/src/utils/calculator/calculator-factory.js +145 -0
  341. package/src/utils/calculator/calculator-util.js +166 -0
  342. package/src/utils/common-util.js +474 -0
  343. package/src/utils/eventBus.js +10 -0
  344. package/src/utils/iconUtils.js +37 -0
  345. package/src/utils/index.js +102 -0
  346. package/src/utils/jump-page-utils.js +824 -0
  347. package/src/utils/local-storage.js +33 -0
  348. package/src/utils/menu.js +19 -0
  349. package/src/utils/permission.js +31 -0
  350. package/src/utils/permissionAuth.js +121 -0
  351. package/src/utils/range-selector.js +204 -0
  352. package/src/utils/request.js +280 -0
  353. package/src/utils/restful-interface-utils.js +57 -0
  354. package/src/utils/util.js +910 -0
  355. package/src/utils/validate.js +34 -0
  356. package/src/utils/watermark.js +108 -0
  357. package/src/utils/workflow-util.js +104 -0
  358. package/src/views/404.vue +248 -0
  359. package/src/views/dsc-component/Sidebar/Item.vue +81 -0
  360. package/src/views/dsc-component/Sidebar/Link.vue +38 -0
  361. package/src/views/dsc-component/Sidebar/SidebarItem.vue +197 -0
  362. package/src/views/dsc-component/Sidebar/index.vue +229 -0
  363. package/src/views/dsc-component/tabs/tab-content.vue +215 -0
  364. package/src/views/error-page/401.vue +106 -0
  365. package/src/views/error-page/404.vue +248 -0
  366. package/src/views/layout/EmptyLayout.vue +3 -0
  367. package/src/views/layout/Layout.vue +81 -0
  368. package/src/views/layout/NewLayout.vue +18 -0
  369. package/src/views/layout/components/AppMain.vue +39 -0
  370. package/src/views/layout/components/Breadcrumb/index.vue +158 -0
  371. package/src/views/layout/components/Menubar/Item.vue +79 -0
  372. package/src/views/layout/components/Menubar/Link.vue +38 -0
  373. package/src/views/layout/components/Menubar/SidebarItem.vue +261 -0
  374. package/src/views/layout/components/Menubar/index.vue +210 -0
  375. package/src/views/layout/components/Sidebar/Item.vue +53 -0
  376. package/src/views/layout/components/Sidebar/Link.vue +38 -0
  377. package/src/views/layout/components/Sidebar/SidebarItem.vue +135 -0
  378. package/src/views/layout/components/Sidebar/index.vue +141 -0
  379. package/src/views/layout/components/iframe-page.vue +38 -0
  380. package/src/views/layout/components/index.js +4 -0
  381. package/src/views/layout/components/tabs/tab-content.vue +214 -0
  382. package/src/views/layout/mixin/ResizeHandler.js +41 -0
  383. package/src/views/layout/tab-content-iframe-index.vue +38 -0
  384. package/src/views/layout/tab-content-index.vue +92 -0
  385. package/src/views/login/authredirect.vue +10 -0
  386. package/src/views/login/index.vue +296 -0
  387. package/src/views/login/update-password.vue +243 -0
  388. package/src/views/redirect/index.vue +14 -0
  389. package/src/views/svg-icon/index.js +6 -0
  390. package/src/views/svg-icon/src/svg-icon.vue +46 -0
  391. package/src/views/wf-history/tache-subprocess-history.vue +45 -0
  392. package/vite.config.js +37 -0
@@ -0,0 +1,264 @@
1
+ import store from './store'
2
+ import * as Vue from 'vue'
3
+ export function getColumnValues(data, prop) {
4
+ const values = []
5
+ for (const obj of data) {
6
+ values.push(obj[prop])
7
+ }
8
+ return values
9
+ }
10
+ /**
11
+ * 返回的数组表示当前列每行的合并情况:[3,0,0,1,1]表示1到3行合并,四五行不合并
12
+ * @param {Array} data 列表数据
13
+ * @param {String} prop 列名
14
+ */
15
+ export function getSpanValuesForColumn(data, prop) {
16
+ const spanArr = []
17
+ let pos = 0
18
+ for (let i = 0; i < data.length; i++) {
19
+ if (i === 0) {
20
+ spanArr.push(1)
21
+ pos = 0
22
+ } else {
23
+ // 判断当前元素与上一个元素是否相同
24
+ if (data[i][prop] === data[i - 1][prop]) {
25
+ spanArr[pos] += 1
26
+ spanArr.push(0)
27
+ } else {
28
+ spanArr.push(1)
29
+ pos = i
30
+ }
31
+ }
32
+ }
33
+ return spanArr
34
+ }
35
+
36
+ export function getFirstEditableColumn(listCode) {
37
+ if (!listCode) {
38
+ listCode = store.get('_nine_list_code')
39
+ }
40
+ if (listCode && listCode.indexOf('~') < 0) {
41
+ // 拼接默认的九宫格gridId
42
+ listCode = listCode + '~' + '_nineGrid'
43
+ }
44
+ for (const column of store.get(listCode).columns) {
45
+ if (column.editable) {
46
+ return column.prop
47
+ }
48
+ }
49
+ return null
50
+ }
51
+
52
+ const ArrowKeyAction = {
53
+ getIndex(prop) {
54
+ let i = 0
55
+ for (const column of store.columns) {
56
+ if (column.prop === prop) {
57
+ return i
58
+ } else {
59
+ i++
60
+ }
61
+ }
62
+ },
63
+ getLeftColumn(prop) {
64
+ const index = ArrowKeyAction.getIndex(prop)
65
+ let i = 0
66
+ for (i = index - 1; i >= 0; i--) {
67
+ if (store.columns[i].editable) {
68
+ return store.columns[i].prop
69
+ } else {
70
+ return null
71
+ }
72
+ }
73
+ },
74
+ }
75
+ export { ArrowKeyAction }
76
+
77
+ /**
78
+ * 是否是行编辑时的属性
79
+ * @param {*} event
80
+ */
81
+ export function isHasEditOption(event, listCode) {
82
+ if (!listCode) {
83
+ listCode = store.get('_nine_list_code')
84
+ }
85
+ if (listCode && listCode.indexOf('~') < 0) {
86
+ // 拼接默认的九宫格gridId
87
+ listCode = listCode + '~' + '_nineGrid'
88
+ }
89
+ const gridParams = store.get(listCode)
90
+ if (
91
+ gridParams.options.lineEditOptions &&
92
+ gridParams.options.lineEditOptions[event]
93
+ ) {
94
+ return true
95
+ }
96
+ return false
97
+ }
98
+
99
+ export function isEditOptionFunction(event, listCode) {
100
+ if (!listCode) {
101
+ listCode = store.get('_nine_list_code')
102
+ }
103
+ if (listCode && listCode.indexOf('~') < 0) {
104
+ // 拼接默认的九宫格gridId
105
+ listCode = listCode + '~' + '_nineGrid'
106
+ }
107
+ const gridParams = store.get(listCode)
108
+ if (
109
+ gridParams.options.lineEditOptions &&
110
+ typeof gridParams.options.lineEditOptions[event] === 'function'
111
+ ) {
112
+ return true
113
+ }
114
+ return false
115
+ }
116
+
117
+ /**
118
+ * 是否是行编辑时的属性
119
+ * @param {*} event
120
+ */
121
+ export function isHasOptionFunction(event, listCode) {
122
+ if (!listCode) {
123
+ listCode = store.get('_nine_list_code')
124
+ }
125
+ if (listCode && listCode.indexOf('~') < 0) {
126
+ // 拼接默认的九宫格gridId
127
+ listCode = listCode + '~' + '_nineGrid'
128
+ }
129
+ const gridParams = store.get(listCode)
130
+ if (gridParams.options && typeof gridParams.options[event] === 'function') {
131
+ return true
132
+ }
133
+ return false
134
+ }
135
+
136
+ export function isOptionFunction(props, listCode) {
137
+ if (!listCode) {
138
+ listCode = store.get('_nine_list_code')
139
+ }
140
+ if (listCode && listCode.indexOf('~') < 0) {
141
+ // 拼接默认的九宫格gridId
142
+ listCode = listCode + '~' + '_nineGrid'
143
+ }
144
+ const gridParams = store.get(listCode)
145
+ if (props.indexOf('.') > 0) {
146
+ let optionProp = gridParams.options
147
+ const propsArr = props.split('.')
148
+ for (let i = 0; i < propsArr.length; i++) {
149
+ const event = propsArr[i]
150
+ if (optionProp) {
151
+ if (typeof optionProp[event] === 'function') {
152
+ return true
153
+ } else {
154
+ optionProp = optionProp[event]
155
+ }
156
+ } else {
157
+ return false
158
+ }
159
+ }
160
+ } else {
161
+ if (gridParams.options && typeof gridParams.options[event] === 'function') {
162
+ return true
163
+ }
164
+ }
165
+ }
166
+
167
+ /**
168
+ * 获得控制表格需要的参数
169
+ */
170
+ export function getGridParams() {
171
+ const gridParams = {
172
+ columns: [],
173
+ gridData: [],
174
+ orgGridData: [], // 行编辑保存时使用
175
+ showValidateError: true, // 是否可以显示验证信息,防止同时弹出两个验证信息的
176
+ options: {
177
+ // id: '_nineGrid', // 九宫格组件的元素id,影响格子拖动功能,当tab页签中有多个九宫格时必须配置该属性,如果当前页面中只有一个九宫格组件,不配也可以
178
+ // 附加参数
179
+ // extraParam: {},
180
+ // 表格及数据均加载完成后
181
+ // gridComplete: function(gridData, columns) {}, // gridData, columns
182
+ // 刚请求到字段配置,没有请求数据时,可以通过该方法修改表头或添加自定义表头
183
+ // loadBeforeSend: function(columns, settings) { return true }, // columns, settings(列表所有设置,包括字段设置、分页设置、查询设置、行编辑设置)
184
+ // 数据加载失败的回调方法
185
+ // loadError: function(code, error) {}, // code, error
186
+ // 数据请求成功后,表格记录显示前的回调方法,该方法主要是处理业务数据,比如:处理xss攻击
187
+ // gridDataLoaded: function(data) { return data },
188
+ // 查询组件需要的一些参数
189
+ // search: {
190
+ // // 属性自定义组件,当不是行编辑时,查询框需要自定义控件时
191
+ // customSearchElements: function(column) { return null },
192
+ // labelWidth: '150px',
193
+ // fieldNum: 4, // 查询的每行排放的字段个数,默认是4个字段
194
+ // },
195
+ // isSql:false, // 是否是sql查询数据内容。在使用sql语句查询表内容时,否则会导致列表字段的值不显示,都显示为空
196
+ // initSearchForm: [], // 初始查询条件,格式同“查询”按钮封装的json格式
197
+ // multiple: true/false,// 是否多选,默认以列表管理中配置的为准
198
+ // initSortInfo: {prop:'',order: 'ASC/DESC'},// 默认排序字段,和排序方式
199
+ // pageSizes: '20,30,50,100',// 可选行数
200
+ // initSearch: true/false, // 初始化时是否查询,默认是查询
201
+ // isHiddenSearchForm: false, //查询时,是否隐藏查询区域,不配置默认是显示的
202
+ // isHasCreate: true/false, // 是否显示新建按钮
203
+ // createPermission: 'a.b.c', // 新建按钮的资源编码,用于控制新建按钮的权限
204
+ // props: {imageUrl:'prop1', content:'prop1', title:'prop2', subTitle:'prop3'}, // 九宫格中图片、标题、副标题属性名配置
205
+ // operations: [ // 按钮区按钮信息
206
+ // {
207
+ // name:'修改',
208
+ // icon:'el-icon-edit',
209
+ // event: this.updateItem,
210
+ // permission:'sss.ddd.ddds'
211
+ // },
212
+ // {
213
+ // name:'删除',
214
+ // icon:'el-icon-delete',
215
+ // event: this.deleteItem
216
+ // },
217
+ // {
218
+ // name:'设为模板',
219
+ // icon:'el-icon-document-copy',
220
+ // event: this.setToTemplate
221
+ // }
222
+ // ]
223
+ },
224
+ }
225
+ return Vue.reactive(gridParams)
226
+ }
227
+
228
+ export function addDynamicProp(target, prop, propValue) {
229
+ const nestedProp = prop.split('.')
230
+ if (nestedProp.length === 1) {
231
+ if (propValue !== undefined) {
232
+ target[prop] = propValue
233
+ } else {
234
+ target[prop] = null
235
+ }
236
+ return
237
+ }
238
+ // 如果是嵌套属性,就要逐层添加空对象,起点是searchForm,属性每多一层嵌套,parent就前进一层,到倒数第二层为止
239
+ let parent = target
240
+ for (let i = 0; i < nestedProp.length - 1; i++) {
241
+ if (parent[nestedProp[i]] === undefined) {
242
+ parent[nestedProp[i]] = {}
243
+ }
244
+ parent = parent[nestedProp[i]]
245
+ }
246
+ if (propValue !== undefined) {
247
+ parent[nestedProp[nestedProp.length - 1]] = propValue
248
+ } else {
249
+ parent[nestedProp[nestedProp.length - 1]] = null
250
+ }
251
+ }
252
+
253
+ export function getTableHeight(showSearch, searchForm) {
254
+ if (showSearch === true) {
255
+ let searchHeight = 0
256
+ if (searchForm) {
257
+ // 获得查询区高度
258
+ searchHeight = searchForm.$el.offsetHeight
259
+ }
260
+ return window.innerHeight - searchHeight - 165
261
+ } else {
262
+ return window.innerHeight - 165
263
+ }
264
+ }
@@ -0,0 +1,6 @@
1
+ import SvgIcon from './src/svg-icon.vue'
2
+ SvgIcon.install = function (Vue) {
3
+ Vue.component(SvgIcon.name, SvgIcon)
4
+ }
5
+
6
+ export default SvgIcon
@@ -0,0 +1,43 @@
1
+ <template>
2
+ <svg :class="svgClass" aria-hidden="true">
3
+ <use :xlink:href="iconName" />
4
+ </svg>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'SvgIcon',
10
+ props: {
11
+ iconClass: {
12
+ type: String,
13
+ required: true,
14
+ },
15
+ className: {
16
+ type: String,
17
+ default: '',
18
+ },
19
+ },
20
+ computed: {
21
+ iconName() {
22
+ return `#icon-${this.iconClass}`
23
+ },
24
+ svgClass() {
25
+ if (this.className) {
26
+ return 'svg-icon ' + this.className
27
+ } else {
28
+ return 'svg-icon'
29
+ }
30
+ },
31
+ },
32
+ }
33
+ </script>
34
+
35
+ <style scoped>
36
+ .svg-icon {
37
+ width: 1.2em;
38
+ height: 1.2em;
39
+ vertical-align: -0.25em;
40
+ fill: currentColor;
41
+ overflow: hidden;
42
+ }
43
+ </style>
@@ -0,0 +1,292 @@
1
+ import fecha from 'element-ui/src/utils/date';
2
+ import { t } from 'element-ui/src/locale';
3
+
4
+ const weeks = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
5
+ const months = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];
6
+
7
+ const newArray = function(start, end) {
8
+ let result = [];
9
+ for (let i = start; i <= end; i++) {
10
+ result.push(i);
11
+ }
12
+ return result;
13
+ };
14
+
15
+ export const getI18nSettings = () => {
16
+ return {
17
+ dayNamesShort: weeks.map(week => t(`el.datepicker.weeks.${ week }`)),
18
+ dayNames: weeks.map(week => t(`el.datepicker.weeks.${ week }`)),
19
+ monthNamesShort: months.map(month => t(`el.datepicker.months.${ month }`)),
20
+ monthNames: months.map((month, index) => t(`el.datepicker.month${ index + 1 }`)),
21
+ amPm: ['am', 'pm']
22
+ };
23
+ };
24
+
25
+ export const toDate = function(date) {
26
+ return isDate(date) ? new Date(date) : null;
27
+ };
28
+
29
+ export const isDate = function(date) {
30
+ if (date === null || date === undefined) return false;
31
+ if (isNaN(new Date(date).getTime())) return false;
32
+ if (Array.isArray(date)) return false; // deal with `new Date([ new Date() ]) -> new Date()`
33
+ return true;
34
+ };
35
+
36
+ export const isDateObject = function(val) {
37
+ return val instanceof Date;
38
+ };
39
+
40
+ export const formatDate = function(date, format) {
41
+ date = toDate(date);
42
+ if (!date) return '';
43
+ return fecha.format(date, format || 'yyyy-MM-dd', getI18nSettings());
44
+ };
45
+
46
+ export const parseDate = function(string, format) {
47
+ return fecha.parse(string, format || 'yyyy-MM-dd', getI18nSettings());
48
+ };
49
+
50
+ export const getDayCountOfMonth = function(year, month) {
51
+ if (month === 3 || month === 5 || month === 8 || month === 10) {
52
+ return 30;
53
+ }
54
+
55
+ if (month === 1) {
56
+ if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
57
+ return 29;
58
+ } else {
59
+ return 28;
60
+ }
61
+ }
62
+
63
+ return 31;
64
+ };
65
+
66
+ export const getDayCountOfYear = function(year) {
67
+ const isLeapYear = year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0);
68
+ return isLeapYear ? 366 : 365;
69
+ };
70
+
71
+ export const getFirstDayOfMonth = function(date) {
72
+ const temp = new Date(date.getTime());
73
+ temp.setDate(1);
74
+ return temp.getDay();
75
+ };
76
+
77
+ // see: https://stackoverflow.com/questions/3674539/incrementing-a-date-in-javascript
78
+ // {prev, next} Date should work for Daylight Saving Time
79
+ // Adding 24 * 60 * 60 * 1000 does not work in the above scenario
80
+ export const prevDate = function(date, amount = 1) {
81
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate() - amount);
82
+ };
83
+
84
+ export const nextDate = function(date, amount = 1) {
85
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate() + amount);
86
+ };
87
+
88
+ export const getStartDateOfMonth = function(year, month) {
89
+ const result = new Date(year, month, 1);
90
+ const day = result.getDay();
91
+
92
+ if (day === 0) {
93
+ return prevDate(result, 7);
94
+ } else {
95
+ return prevDate(result, day);
96
+ }
97
+ };
98
+
99
+ export const getWeekNumber = function(src) {
100
+ if (!isDate(src)) return null;
101
+ const date = new Date(src.getTime());
102
+ date.setHours(0, 0, 0, 0);
103
+ // Thursday in current week decides the year.
104
+ date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7);
105
+ // January 4 is always in week 1.
106
+ const week1 = new Date(date.getFullYear(), 0, 4);
107
+ // Adjust to Thursday in week 1 and count number of weeks from date to week 1.
108
+ // Rounding should be fine for Daylight Saving Time. Its shift should never be more than 12 hours.
109
+ return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);
110
+ };
111
+
112
+ export const getRangeHours = function(ranges) {
113
+ const hours = [];
114
+ let disabledHours = [];
115
+
116
+ (ranges || []).forEach(range => {
117
+ const value = range.map(date => date.getHours());
118
+
119
+ disabledHours = disabledHours.concat(newArray(value[0], value[1]));
120
+ });
121
+
122
+ if (disabledHours.length) {
123
+ for (let i = 0; i < 24; i++) {
124
+ hours[i] = disabledHours.indexOf(i) === -1;
125
+ }
126
+ } else {
127
+ for (let i = 0; i < 24; i++) {
128
+ hours[i] = false;
129
+ }
130
+ }
131
+
132
+ return hours;
133
+ };
134
+
135
+ export const getPrevMonthLastDays = (date, amount) => {
136
+ if (amount <= 0) return [];
137
+ const temp = new Date(date.getTime());
138
+ temp.setDate(0);
139
+ const lastDay = temp.getDate();
140
+ return range(amount).map((_, index) => lastDay - (amount - index - 1));
141
+ };
142
+
143
+ export const getMonthDays = (date) => {
144
+ const temp = new Date(date.getFullYear(), date.getMonth() + 1, 0);
145
+ const days = temp.getDate();
146
+ return range(days).map((_, index) => index + 1);
147
+ };
148
+
149
+ function setRangeData(arr, start, end, value) {
150
+ for (let i = start; i < end; i++) {
151
+ arr[i] = value;
152
+ }
153
+ }
154
+
155
+ export const getRangeMinutes = function(ranges, hour) {
156
+ const minutes = new Array(60);
157
+
158
+ if (ranges.length > 0) {
159
+ ranges.forEach(range => {
160
+ const start = range[0];
161
+ const end = range[1];
162
+ const startHour = start.getHours();
163
+ const startMinute = start.getMinutes();
164
+ const endHour = end.getHours();
165
+ const endMinute = end.getMinutes();
166
+ if (startHour === hour && endHour !== hour) {
167
+ setRangeData(minutes, startMinute, 60, true);
168
+ } else if (startHour === hour && endHour === hour) {
169
+ setRangeData(minutes, startMinute, endMinute + 1, true);
170
+ } else if (startHour !== hour && endHour === hour) {
171
+ setRangeData(minutes, 0, endMinute + 1, true);
172
+ } else if (startHour < hour && endHour > hour) {
173
+ setRangeData(minutes, 0, 60, true);
174
+ }
175
+ });
176
+ } else {
177
+ setRangeData(minutes, 0, 60, true);
178
+ }
179
+ return minutes;
180
+ };
181
+
182
+ export const range = function(n) {
183
+ // see https://stackoverflow.com/questions/3746725/create-a-javascript-array-containing-1-n
184
+ return Array.apply(null, {length: n}).map((_, n) => n);
185
+ };
186
+
187
+ export const modifyDate = function(date, y, m, d) {
188
+ return new Date(y, m, d, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
189
+ };
190
+
191
+ export const modifyTime = function(date, h, m, s) {
192
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate(), h, m, s, date.getMilliseconds());
193
+ };
194
+
195
+ export const modifyWithTimeString = (date, time) => {
196
+ if (date == null || !time) {
197
+ return date;
198
+ }
199
+ time = parseDate(time, 'HH:mm:ss');
200
+ return modifyTime(date, time.getHours(), time.getMinutes(), time.getSeconds());
201
+ };
202
+
203
+ export const clearTime = function(date) {
204
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate());
205
+ };
206
+
207
+ export const clearMilliseconds = function(date) {
208
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);
209
+ };
210
+
211
+ export const limitTimeRange = function(date, ranges, format = 'HH:mm:ss') {
212
+ // TODO: refactory a more elegant solution
213
+ if (ranges.length === 0) return date;
214
+ const normalizeDate = date => fecha.parse(fecha.format(date, format), format);
215
+ const ndate = normalizeDate(date);
216
+ const nranges = ranges.map(range => range.map(normalizeDate));
217
+ if (nranges.some(nrange => ndate >= nrange[0] && ndate <= nrange[1])) return date;
218
+
219
+ let minDate = nranges[0][0];
220
+ let maxDate = nranges[0][0];
221
+
222
+ nranges.forEach(nrange => {
223
+ minDate = new Date(Math.min(nrange[0], minDate));
224
+ maxDate = new Date(Math.max(nrange[1], minDate));
225
+ });
226
+
227
+ const ret = ndate < minDate ? minDate : maxDate;
228
+ // preserve Year/Month/Date
229
+ return modifyDate(
230
+ ret,
231
+ date.getFullYear(),
232
+ date.getMonth(),
233
+ date.getDate()
234
+ );
235
+ };
236
+
237
+ export const timeWithinRange = function(date, selectableRange, format) {
238
+ const limitedDate = limitTimeRange(date, selectableRange, format);
239
+ return limitedDate.getTime() === date.getTime();
240
+ };
241
+
242
+ export const changeYearMonthAndClampDate = function(date, year, month) {
243
+ // clamp date to the number of days in `year`, `month`
244
+ // eg: (2010-1-31, 2010, 2) => 2010-2-28
245
+ const monthDate = Math.min(date.getDate(), getDayCountOfMonth(year, month));
246
+ return modifyDate(date, year, month, monthDate);
247
+ };
248
+
249
+ export const prevMonth = function(date) {
250
+ const year = date.getFullYear();
251
+ const month = date.getMonth();
252
+ return month === 0
253
+ ? changeYearMonthAndClampDate(date, year - 1, 11)
254
+ : changeYearMonthAndClampDate(date, year, month - 1);
255
+ };
256
+
257
+ export const nextMonth = function(date) {
258
+ const year = date.getFullYear();
259
+ const month = date.getMonth();
260
+ return month === 11
261
+ ? changeYearMonthAndClampDate(date, year + 1, 0)
262
+ : changeYearMonthAndClampDate(date, year, month + 1);
263
+ };
264
+
265
+ export const prevYear = function(date, amount = 1) {
266
+ const year = date.getFullYear();
267
+ const month = date.getMonth();
268
+ return changeYearMonthAndClampDate(date, year - amount, month);
269
+ };
270
+
271
+ export const nextYear = function(date, amount = 1) {
272
+ const year = date.getFullYear();
273
+ const month = date.getMonth();
274
+ return changeYearMonthAndClampDate(date, year + amount, month);
275
+ };
276
+
277
+ export const extractDateFormat = function(format) {
278
+ return format
279
+ .replace(/\W?m{1,2}|\W?ZZ/g, '')
280
+ .replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, '')
281
+ .trim();
282
+ };
283
+
284
+ export const extractTimeFormat = function(format) {
285
+ return format
286
+ .replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g, '')
287
+ .trim();
288
+ };
289
+
290
+ export const validateRangeInOneMonth = function(start, end) {
291
+ return (start.getMonth() === end.getMonth()) && (start.getFullYear() === end.getFullYear());
292
+ };