@worktile/gantt 12.0.0 → 12.0.1

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 (230) hide show
  1. package/.all-contributorsrc +53 -0
  2. package/.angulardoc.json +4 -0
  3. package/.circleci/config.yml +17 -0
  4. package/.coveralls.yml +1 -0
  5. package/.docgenirc.js +64 -0
  6. package/.editorconfig +22 -0
  7. package/.prettierrc +24 -0
  8. package/.travis.yml +23 -0
  9. package/CHANGELOG.md +564 -0
  10. package/Dockerfile +4 -0
  11. package/LICENSE +21 -0
  12. package/README.md +116 -13
  13. package/angular.json +136 -0
  14. package/docs/guides/basic/components.md +54 -0
  15. package/docs/guides/basic/event.md +70 -0
  16. package/docs/guides/basic/index.md +4 -0
  17. package/docs/guides/basic/style.md +68 -0
  18. package/docs/guides/basic/type.md +70 -0
  19. package/docs/guides/basic/usage.md +189 -0
  20. package/docs/guides/index.md +5 -0
  21. package/docs/guides/intro/getting-started.md +79 -0
  22. package/docs/guides/intro/index.md +51 -0
  23. package/docs/index.md +0 -0
  24. package/example/browserslist +12 -0
  25. package/example/src/app/app-routing.module.ts +26 -0
  26. package/example/src/app/app.component.html +2 -0
  27. package/example/src/app/app.component.ts +11 -0
  28. package/example/src/app/app.module.ts +57 -0
  29. package/example/src/app/components/components.component.html +6 -0
  30. package/example/src/app/components/components.component.ts +33 -0
  31. package/example/src/app/configuration/parameters/api/zh-cn.js +350 -0
  32. package/example/src/app/configuration/parameters/doc/zh-cn.md +5 -0
  33. package/example/src/app/gantt/gantt.component.html +51 -0
  34. package/example/src/app/gantt/gantt.component.ts +119 -0
  35. package/example/src/app/gantt-advanced/component/flat.component.html +30 -0
  36. package/example/src/app/gantt-advanced/component/flat.component.ts +72 -0
  37. package/example/src/app/gantt-advanced/component/flat.scss +31 -0
  38. package/example/src/app/gantt-advanced/gantt-advanced.component.html +32 -0
  39. package/example/src/app/gantt-advanced/gantt-advanced.component.ts +34 -0
  40. package/example/src/app/gantt-advanced/mocks.ts +158 -0
  41. package/example/src/app/gantt-groups/gantt-groups.component.html +42 -0
  42. package/example/src/app/gantt-groups/gantt-groups.component.ts +62 -0
  43. package/example/src/app/gantt-range/gantt-range.component.html +66 -0
  44. package/example/src/app/gantt-range/gantt-range.component.ts +67 -0
  45. package/example/src/app/gantt-range/mocks.ts +150 -0
  46. package/example/src/app/helper.ts +38 -0
  47. package/example/src/assets/.gitkeep +0 -0
  48. package/example/src/environments/environment.prod.ts +3 -0
  49. package/example/src/environments/environment.ts +16 -0
  50. package/example/src/favicon.ico +0 -0
  51. package/example/src/index.html +13 -0
  52. package/example/src/main.ts +12 -0
  53. package/example/src/polyfills.ts +63 -0
  54. package/example/src/styles.scss +56 -0
  55. package/example/tsconfig.app.json +18 -0
  56. package/nginx.conf +17 -0
  57. package/package.json +113 -17
  58. package/packages/gantt/README.md +24 -0
  59. package/packages/gantt/karma.conf.js +46 -0
  60. package/packages/gantt/ng-package.json +7 -0
  61. package/packages/gantt/ng-package.prod.json +7 -0
  62. package/packages/gantt/package.json +16 -0
  63. package/packages/gantt/src/class/date-point.ts +14 -0
  64. package/{class/event.d.ts → packages/gantt/src/class/event.ts} +12 -6
  65. package/packages/gantt/src/class/group.ts +36 -0
  66. package/{class/index.d.ts → packages/gantt/src/class/index.ts} +0 -0
  67. package/packages/gantt/src/class/item.ts +129 -0
  68. package/packages/gantt/src/class/test/group.spec.ts +21 -0
  69. package/packages/gantt/src/class/test/item.spec.ts +102 -0
  70. package/packages/gantt/src/class/view-type.ts +7 -0
  71. package/packages/gantt/src/components/bar/bar-drag.ts +298 -0
  72. package/packages/gantt/src/components/bar/bar.component.html +17 -0
  73. package/packages/gantt/src/components/bar/bar.component.scss +169 -0
  74. package/packages/gantt/src/components/bar/bar.component.ts +109 -0
  75. package/packages/gantt/src/components/bar/test/bar.component.spec.ts +54 -0
  76. package/packages/gantt/src/components/bar/test/bar.drag.spec.ts +196 -0
  77. package/packages/gantt/src/components/calendar/calendar.component.html +52 -0
  78. package/packages/gantt/src/components/calendar/calendar.component.scss +77 -0
  79. package/packages/gantt/src/components/calendar/calendar.component.ts +100 -0
  80. package/packages/gantt/src/components/drag-backdrop/drag-backdrop.component.html +6 -0
  81. package/packages/gantt/src/components/drag-backdrop/drag-backdrop.component.scss +48 -0
  82. package/packages/gantt/src/components/drag-backdrop/drag-backdrop.component.ts +13 -0
  83. package/packages/gantt/src/components/icon/icon.component.scss +13 -0
  84. package/packages/gantt/src/components/icon/icon.component.ts +28 -0
  85. package/packages/gantt/src/components/icon/icons.ts +86 -0
  86. package/packages/gantt/src/components/links/links.component.html +19 -0
  87. package/packages/gantt/src/components/links/links.component.scss +27 -0
  88. package/packages/gantt/src/components/links/links.component.ts +263 -0
  89. package/packages/gantt/src/components/main/gantt-main.component.html +35 -0
  90. package/packages/gantt/src/components/main/gantt-main.component.ts +35 -0
  91. package/packages/gantt/src/components/range/range.component.html +8 -0
  92. package/packages/gantt/src/components/range/range.component.scss +35 -0
  93. package/packages/gantt/src/components/range/range.component.ts +27 -0
  94. package/packages/gantt/src/components/range/test/range.component.spec.ts +80 -0
  95. package/packages/gantt/src/components/table/gantt-table.component.html +105 -0
  96. package/packages/gantt/src/components/table/gantt-table.component.scss +144 -0
  97. package/packages/gantt/src/components/table/gantt-table.component.ts +166 -0
  98. package/packages/gantt/src/components/table/test/table.spec.ts +129 -0
  99. package/packages/gantt/src/gantt-abstract.ts +14 -0
  100. package/packages/gantt/src/gantt-dom.service.ts +134 -0
  101. package/packages/gantt/src/gantt-drag-container.ts +73 -0
  102. package/packages/gantt/src/gantt-item-upper.ts +50 -0
  103. package/packages/gantt/src/gantt-print.service.ts +104 -0
  104. package/packages/gantt/src/gantt-upper.ts +289 -0
  105. package/packages/gantt/src/gantt.component.html +18 -0
  106. package/packages/gantt/src/gantt.component.scss +77 -0
  107. package/packages/gantt/src/gantt.component.ts +134 -0
  108. package/packages/gantt/src/gantt.module.ts +47 -0
  109. package/packages/gantt/src/gantt.pipe.ts +31 -0
  110. package/packages/gantt/src/gantt.styles.ts +28 -0
  111. package/{public-api.d.ts → packages/gantt/src/public-api.ts} +6 -0
  112. package/packages/gantt/src/root.component.html +12 -0
  113. package/packages/gantt/src/root.component.ts +121 -0
  114. package/packages/gantt/src/styles/index.scss +9 -0
  115. package/packages/gantt/src/styles/variables.scss +46 -0
  116. package/packages/gantt/src/table/gantt-column.component.ts +25 -0
  117. package/packages/gantt/src/table/gantt-table.component.ts +14 -0
  118. package/packages/gantt/src/table/test/table.spec.ts +56 -0
  119. package/packages/gantt/src/test/gantt.component.spec.ts +404 -0
  120. package/packages/gantt/src/test/mocks/data.ts +303 -0
  121. package/packages/gantt/src/test.ts +21 -0
  122. package/packages/gantt/src/utils/date.ts +276 -0
  123. package/packages/gantt/src/utils/helpers.ts +66 -0
  124. package/packages/gantt/src/utils/test/date.spec.ts +105 -0
  125. package/packages/gantt/src/utils/test/helpers.spec.ts +73 -0
  126. package/packages/gantt/src/utils/testing.ts +64 -0
  127. package/packages/gantt/src/views/day.ts +74 -0
  128. package/packages/gantt/src/views/factory.ts +25 -0
  129. package/packages/gantt/src/views/month.ts +66 -0
  130. package/packages/gantt/src/views/quarter.ts +68 -0
  131. package/packages/gantt/src/views/test/day.spec.ts +45 -0
  132. package/packages/gantt/src/views/test/factory.spec.ts +41 -0
  133. package/packages/gantt/src/views/test/mock.ts +14 -0
  134. package/packages/gantt/src/views/test/month.spec.ts +45 -0
  135. package/packages/gantt/src/views/test/quarter.spec.ts +45 -0
  136. package/packages/gantt/src/views/test/view.spec.ts +144 -0
  137. package/packages/gantt/src/views/test/week.spec.ts +45 -0
  138. package/packages/gantt/src/views/test/year.spec.ts +45 -0
  139. package/packages/gantt/src/views/view.ts +186 -0
  140. package/packages/gantt/src/views/week.ts +66 -0
  141. package/packages/gantt/src/views/year.ts +62 -0
  142. package/packages/gantt/tsconfig.lib.json +20 -0
  143. package/packages/gantt/tsconfig.lib.prod.json +9 -0
  144. package/packages/gantt/tsconfig.schematics.json +25 -0
  145. package/packages/gantt/tsconfig.spec.json +17 -0
  146. package/packages/gantt/tslint.json +18 -0
  147. package/scss-bundle.config.json +7 -0
  148. package/tsconfig.json +26 -0
  149. package/tslint.json +51 -0
  150. package/bundles/worktile-gantt.umd.js +0 -3128
  151. package/bundles/worktile-gantt.umd.js.map +0 -1
  152. package/class/date-point.d.ts +0 -15
  153. package/class/group.d.ts +0 -22
  154. package/class/item.d.ts +0 -70
  155. package/class/view-type.d.ts +0 -7
  156. package/components/bar/bar-drag.d.ts +0 -34
  157. package/components/bar/bar.component.d.ts +0 -23
  158. package/components/calendar/calendar.component.d.ts +0 -25
  159. package/components/drag-backdrop/drag-backdrop.component.d.ts +0 -6
  160. package/components/icon/icon.component.d.ts +0 -10
  161. package/components/icon/icons.d.ts +0 -8
  162. package/components/links/links.component.d.ts +0 -44
  163. package/components/main/gantt-main.component.d.ts +0 -18
  164. package/components/range/range.component.d.ts +0 -10
  165. package/components/table/gantt-table.component.d.ts +0 -31
  166. package/esm2015/class/date-point.js +0 -10
  167. package/esm2015/class/event.js +0 -13
  168. package/esm2015/class/group.js +0 -17
  169. package/esm2015/class/index.js +0 -6
  170. package/esm2015/class/item.js +0 -78
  171. package/esm2015/class/view-type.js +0 -9
  172. package/esm2015/components/bar/bar-drag.js +0 -266
  173. package/esm2015/components/bar/bar.component.js +0 -91
  174. package/esm2015/components/calendar/calendar.component.js +0 -82
  175. package/esm2015/components/drag-backdrop/drag-backdrop.component.js +0 -18
  176. package/esm2015/components/icon/icon.component.js +0 -36
  177. package/esm2015/components/icon/icons.js +0 -87
  178. package/esm2015/components/links/links.component.js +0 -207
  179. package/esm2015/components/main/gantt-main.component.js +0 -35
  180. package/esm2015/components/range/range.component.js +0 -32
  181. package/esm2015/components/table/gantt-table.component.js +0 -125
  182. package/esm2015/gantt-dom.service.js +0 -101
  183. package/esm2015/gantt-drag-container.js +0 -57
  184. package/esm2015/gantt-item-upper.js +0 -55
  185. package/esm2015/gantt-print.service.js +0 -92
  186. package/esm2015/gantt-upper.js +0 -231
  187. package/esm2015/gantt.component.js +0 -105
  188. package/esm2015/gantt.module.js +0 -43
  189. package/esm2015/gantt.pipe.js +0 -33
  190. package/esm2015/gantt.styles.js +0 -15
  191. package/esm2015/public-api.js +0 -16
  192. package/esm2015/root.component.js +0 -111
  193. package/esm2015/table/gantt-column.component.js +0 -28
  194. package/esm2015/table/gantt-table.component.js +0 -18
  195. package/esm2015/utils/date.js +0 -160
  196. package/esm2015/utils/helpers.js +0 -45
  197. package/esm2015/views/day.js +0 -54
  198. package/esm2015/views/factory.js +0 -23
  199. package/esm2015/views/month.js +0 -48
  200. package/esm2015/views/quarter.js +0 -51
  201. package/esm2015/views/view.js +0 -121
  202. package/esm2015/views/week.js +0 -49
  203. package/esm2015/views/year.js +0 -50
  204. package/esm2015/worktile-gantt.js +0 -16
  205. package/fesm2015/worktile-gantt.js +0 -2488
  206. package/fesm2015/worktile-gantt.js.map +0 -1
  207. package/gantt-dom.service.d.ts +0 -29
  208. package/gantt-drag-container.d.ts +0 -20
  209. package/gantt-item-upper.d.ts +0 -17
  210. package/gantt-print.service.d.ts +0 -10
  211. package/gantt-upper.d.ts +0 -62
  212. package/gantt.component.d.ts +0 -28
  213. package/gantt.module.d.ts +0 -2
  214. package/gantt.pipe.d.ts +0 -11
  215. package/gantt.styles.d.ts +0 -15
  216. package/main.bundle.scss +0 -645
  217. package/root.component.d.ts +0 -25
  218. package/table/gantt-column.component.d.ts +0 -12
  219. package/table/gantt-table.component.d.ts +0 -7
  220. package/utils/date.d.ts +0 -59
  221. package/utils/helpers.d.ts +0 -11
  222. package/views/day.d.ts +0 -14
  223. package/views/factory.d.ts +0 -8
  224. package/views/month.d.ts +0 -12
  225. package/views/quarter.d.ts +0 -12
  226. package/views/view.d.ts +0 -56
  227. package/views/week.d.ts +0 -12
  228. package/views/year.d.ts +0 -12
  229. package/worktile-gantt.d.ts +0 -15
  230. package/worktile-gantt.metadata.json +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"worktile-gantt.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../packages/gantt/src/class/date-point.ts","../../../packages/gantt/src/class/event.ts","../../../packages/gantt/src/utils/date.ts","../../../packages/gantt/src/class/view-type.ts","../../../packages/gantt/src/class/item.ts","../../../packages/gantt/src/class/group.ts","../../../packages/gantt/src/views/view.ts","../../../packages/gantt/src/views/month.ts","../../../packages/gantt/src/views/quarter.ts","../../../packages/gantt/src/views/day.ts","../../../packages/gantt/src/views/week.ts","../../../packages/gantt/src/views/year.ts","../../../packages/gantt/src/views/factory.ts","../../../packages/gantt/src/gantt.styles.ts","../../../packages/gantt/src/utils/helpers.ts","../../../packages/gantt/src/gantt-upper.ts","../../../packages/gantt/src/table/gantt-column.component.ts","../../../packages/gantt/src/table/gantt-table.component.ts","../../../packages/gantt/src/gantt.component.ts","../../../packages/gantt/src/components/calendar/calendar.component.ts","../../../packages/gantt/src/components/table/gantt-table.component.ts","../../../packages/gantt/src/gantt-dom.service.ts","../../../packages/gantt/src/gantt-drag-container.ts","../../../packages/gantt/src/components/bar/bar-drag.ts","../../../packages/gantt/src/gantt-item-upper.ts","../../../packages/gantt/src/components/bar/bar.component.ts","../../../packages/gantt/src/components/main/gantt-main.component.ts","../../../packages/gantt/src/components/icon/icons.ts","../../../packages/gantt/src/components/icon/icon.component.ts","../../../packages/gantt/src/components/drag-backdrop/drag-backdrop.component.ts","../../../packages/gantt/src/components/links/links.component.ts","../../../packages/gantt/src/gantt-print.service.ts","../../../packages/gantt/src/root.component.ts","../../../packages/gantt/src/components/range/range.component.ts","../../../packages/gantt/src/gantt.pipe.ts","../../../packages/gantt/src/gantt.module.ts","../../../packages/gantt/src/public-api.ts","../../../packages/gantt/src/worktile-gantt.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { GanttDate } from '../utils/date';\n\nexport class GanttDatePoint {\n constructor(\n public start: GanttDate,\n public text: string,\n public x: number,\n public y: number,\n public additions?: {\n isWeekend: boolean;\n isToday: boolean;\n }\n ) {}\n}\n","import { QueryList } from '@angular/core';\nimport { NgxGanttTableColumnComponent } from '../table/gantt-column.component';\nimport { GanttItem } from './item';\n\nexport class GanttDragEvent<T = unknown> {\n item: GanttItem<T>;\n}\n\nexport class GanttTableEvent {\n columns: QueryList<NgxGanttTableColumnComponent>;\n}\n\nexport class GanttLinkDragEvent<T = unknown> {\n source: GanttItem<T>;\n target?: GanttItem<T>;\n}\n\nexport class GanttLoadOnScrollEvent {\n start: number;\n end: number;\n}\n\nexport class GanttLineClickEvent<T = unknown> {\n event: MouseEvent;\n source: GanttItem<T>;\n target: GanttItem<T>;\n}\n\nexport class GanttBarClickEvent<T = unknown> {\n event: Event;\n item: GanttItem<T>;\n}\n","import {\n addYears,\n addMonths,\n addDays,\n addWeeks,\n addQuarters,\n getUnixTime,\n startOfDay,\n startOfWeek,\n startOfMonth,\n startOfQuarter,\n startOfYear,\n endOfDay,\n endOfWeek,\n endOfMonth,\n endOfQuarter,\n endOfYear,\n format,\n fromUnixTime,\n getDaysInMonth,\n addSeconds,\n setDate,\n addMinutes,\n addHours,\n differenceInCalendarDays,\n isWeekend,\n getWeek,\n isToday,\n differenceInDays,\n differenceInCalendarQuarters,\n eachMonthOfInterval,\n eachWeekOfInterval,\n eachDayOfInterval\n} from 'date-fns';\n\nexport {\n addYears,\n addMonths,\n addDays,\n addWeeks,\n addQuarters,\n getUnixTime,\n startOfDay,\n startOfWeek,\n startOfMonth,\n startOfQuarter,\n startOfYear,\n endOfDay,\n endOfWeek,\n endOfMonth,\n endOfQuarter,\n endOfYear,\n format,\n fromUnixTime,\n getDaysInMonth,\n addSeconds,\n setDate,\n addMinutes,\n addHours,\n differenceInCalendarDays,\n isWeekend,\n getWeek,\n isToday,\n differenceInDays,\n differenceInCalendarQuarters,\n eachMonthOfInterval,\n eachWeekOfInterval,\n eachDayOfInterval\n} from 'date-fns';\n\nexport type GanttDateUtil = 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';\n\nexport class GanttDate {\n value: Date;\n\n constructor(date?: Date | string | number) {\n if (date) {\n if (date instanceof Date) {\n this.value = date;\n } else if (typeof date === 'string' || typeof date === 'number') {\n if (date.toString().length < 13) {\n this.value = fromUnixTime(+date);\n } else {\n this.value = new Date(date);\n }\n } else {\n throw new Error(\n `The input date type is not supported expect Date | string\n | number | { date: number; with_time: 0 | 1}, actual ${JSON.stringify(date)}`\n );\n }\n } else {\n this.value = new Date();\n }\n }\n\n getYear(): number {\n return this.value.getFullYear();\n }\n\n getMonth(): number {\n return this.value.getMonth();\n }\n\n getDay(): number {\n return this.value.getDay();\n }\n\n getTime(): number {\n return this.value.getTime();\n }\n\n getDate(): number {\n return this.value.getDate();\n }\n\n getHours(): number {\n return this.value.getHours();\n }\n\n getMinutes(): number {\n return this.value.getMinutes();\n }\n\n getSeconds(): number {\n return this.value.getSeconds();\n }\n\n getMilliseconds(): number {\n return this.value.getMilliseconds();\n }\n\n getWeek(options: { locale?: Locale; weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 } = { weekStartsOn: 1 }): number {\n return getWeek(this.value, options);\n }\n\n getDaysInMonth() {\n return getDaysInMonth(this.value);\n }\n\n getDaysInQuarter() {\n return differenceInCalendarDays(this.endOfQuarter().addSeconds(1).value, this.startOfQuarter().value);\n }\n\n getDaysInYear() {\n return differenceInCalendarDays(this.endOfYear().addSeconds(1).value, this.startOfYear().value);\n }\n\n setDate(dayOfMonth: number): GanttDate {\n return new GanttDate(setDate(this.value, dayOfMonth));\n }\n\n clone(): GanttDate {\n return new GanttDate(new Date(this.value));\n }\n\n add(amount: number, unit?: GanttDateUtil) {\n switch (unit) {\n case 'second':\n return new GanttDate(this.value).addSeconds(amount);\n case 'minute':\n return new GanttDate(this.value).addMinutes(amount);\n case 'hour':\n return new GanttDate(this.value).addHours(amount);\n case 'day':\n return new GanttDate(this.value).addDays(amount);\n case 'week':\n return new GanttDate(this.value).addWeeks(amount);\n case 'month':\n return new GanttDate(this.value).addMonths(amount);\n case 'quarter':\n return new GanttDate(this.value).addQuarters(amount);\n case 'year':\n return new GanttDate(this.value).addYears(amount);\n default:\n return new GanttDate(this.value).addSeconds(amount);\n }\n }\n\n addSeconds(amount: number): GanttDate {\n return new GanttDate(addSeconds(this.value, amount));\n }\n\n addMinutes(amount: number): GanttDate {\n return new GanttDate(addMinutes(this.value, amount));\n }\n\n addHours(amount: number): GanttDate {\n return new GanttDate(addHours(this.value, amount));\n }\n\n addDays(amount: number): GanttDate {\n return new GanttDate(addDays(this.value, amount));\n }\n\n addWeeks(amount: number) {\n return new GanttDate(addWeeks(this.value, amount));\n }\n\n addMonths(amount: number): GanttDate {\n return new GanttDate(addMonths(this.value, amount));\n }\n\n addQuarters(amount: number): GanttDate {\n return new GanttDate(addQuarters(this.value, amount));\n }\n\n addYears(amount: number): GanttDate {\n return new GanttDate(addYears(this.value, amount));\n }\n\n startOfDay(): GanttDate {\n return new GanttDate(startOfDay(this.value));\n }\n\n startOfWeek(options?: { locale?: Locale; weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 }): GanttDate {\n return new GanttDate(startOfWeek(this.value, options));\n }\n\n startOfMonth(): GanttDate {\n return new GanttDate(startOfMonth(this.value));\n }\n\n startOfQuarter(): GanttDate {\n return new GanttDate(startOfQuarter(this.value));\n }\n\n startOfYear(): GanttDate {\n return new GanttDate(startOfYear(this.value));\n }\n\n endOfDay(): GanttDate {\n return new GanttDate(endOfDay(this.value));\n }\n\n endOfWeek(options?: { locale?: Locale; weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 }): GanttDate {\n return new GanttDate(endOfWeek(this.value, options));\n }\n\n endOfMonth(): GanttDate {\n return new GanttDate(endOfMonth(this.value));\n }\n\n endOfQuarter(): GanttDate {\n return new GanttDate(endOfQuarter(this.value));\n }\n\n endOfYear(): GanttDate {\n return new GanttDate(endOfYear(this.value));\n }\n\n getUnixTime(): number {\n return getUnixTime(this.value);\n }\n\n format(\n mat: string,\n options?: {\n locale?: Locale;\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n firstWeekContainsDate?: number;\n useAdditionalWeekYearTokens?: boolean;\n useAdditionalDayOfYearTokens?: boolean;\n }\n ) {\n return format(this.value, mat, options);\n }\n\n isWeekend() {\n return isWeekend(this.value);\n }\n\n isToday() {\n return isToday(this.value);\n }\n}\n","export enum GanttViewType {\n day = 'day',\n quarter = 'quarter',\n month = 'month',\n year = 'year',\n week = 'week'\n}\n","import { GanttDate } from '../utils/date';\nimport { BehaviorSubject } from 'rxjs';\nimport { GanttViewType } from './view-type';\n\ninterface GanttItemRefs {\n width: number;\n x: number;\n y: number;\n}\n\nexport enum GanttItemType {\n bar = 'bar',\n range = 'range',\n custom = 'custom'\n}\n\nexport interface GanttItem<T = unknown> {\n id: string;\n title: string;\n start?: number;\n end?: number;\n group_id?: string;\n links?: string[];\n draggable?: boolean;\n linkable?: boolean;\n expandable?: boolean;\n expanded?: boolean;\n children?: GanttItem[];\n color?: string;\n barStyle?: Partial<CSSStyleDeclaration>;\n origin?: T;\n type?: GanttItemType;\n progress?: number;\n}\n\nexport class GanttItemInternal {\n id: string;\n title: string;\n start: GanttDate;\n end: GanttDate;\n links: string[];\n color?: string;\n barStyle?: Partial<CSSStyleDeclaration>;\n draggable?: boolean;\n linkable?: boolean;\n origin: GanttItem;\n expandable?: boolean;\n expanded?: boolean;\n loading: boolean;\n children: GanttItemInternal[];\n type?: GanttItemType;\n progress?: number;\n viewType?: GanttViewType;\n\n get refs() {\n return this.refs$.getValue();\n }\n\n refs$ = new BehaviorSubject<{ width: number; x?: number; y?: number }>(null);\n\n constructor(item: GanttItem, options?: { viewType: GanttViewType }) {\n this.origin = item;\n this.id = this.origin.id;\n this.links = this.origin.links || [];\n this.color = this.origin.color;\n this.barStyle = this.origin.barStyle;\n this.linkable = this.origin.linkable === undefined ? true : this.origin.linkable;\n this.draggable = this.origin.draggable === undefined ? true : this.origin.draggable;\n this.expandable = this.origin.expandable || (this.origin.children || []).length > 0;\n this.expanded = this.origin.expanded === undefined ? false : this.origin.expanded;\n this.start = item.start ? new GanttDate(item.start) : null;\n this.end = item.end ? new GanttDate(item.end) : null;\n this.viewType = options && options.viewType ? options.viewType : GanttViewType.month;\n this.children = (item.children || []).map((subItem) => {\n return new GanttItemInternal(subItem, { viewType: this.viewType });\n });\n this.type = this.origin.type || GanttItemType.bar;\n this.progress = this.origin.progress;\n // fill one month when start or end is null\n this.fillItemStartOrEnd(item);\n }\n\n fillItemStartOrEnd(item: GanttItem) {\n let addInterval: number;\n switch (this.viewType) {\n case GanttViewType.day:\n case GanttViewType.week:\n addInterval = 0;\n break;\n default:\n addInterval = 30;\n break;\n }\n if (item.start && !item.end) {\n this.end = new GanttDate(item.start).addDays(addInterval).endOfDay();\n }\n if (!item.start && item.end) {\n this.start = new GanttDate(item.end).addDays(-addInterval).startOfDay();\n }\n }\n\n updateRefs(refs: GanttItemRefs) {\n this.refs$.next(refs);\n }\n\n updateDate(start: GanttDate, end: GanttDate) {\n this.start = start.startOfDay();\n this.end = end.endOfDay();\n this.origin.start = this.start.getUnixTime();\n this.origin.end = this.end.getUnixTime();\n }\n\n addChildren(items: GanttItem[]) {\n this.origin.children = items;\n this.children = (items || []).map((subItem) => {\n return new GanttItemInternal(subItem, { viewType: this.viewType });\n });\n }\n\n setExpand(expanded: boolean) {\n this.expanded = expanded;\n this.origin.expanded = expanded;\n }\n\n addLink(linkId: string) {\n this.links = [...this.links, linkId];\n this.origin.links = this.links;\n }\n}\n","import { GanttItemInternal } from './item';\n\nexport interface GanttGroup<T = unknown> {\n id: string;\n title: string;\n expanded?: boolean;\n origin?: T;\n class?: string;\n}\n\nexport class GanttGroupInternal {\n id: string;\n title: string;\n origin: GanttGroup;\n items: GanttItemInternal[];\n mergedItems: GanttItemInternal[][];\n expanded?: boolean;\n refs?: {\n height?: number;\n } = {};\n class?: string;\n constructor(group: GanttGroup) {\n this.id = group.id;\n this.origin = group;\n this.title = group.title;\n this.expanded = group.expanded === undefined ? true : group.expanded;\n this.items = [];\n this.mergedItems = [[]];\n this.class = group.class || '';\n }\n\n setExpand(expanded: boolean) {\n this.expanded = expanded;\n this.origin.expanded = expanded;\n }\n}\n","import { GanttDate, differenceInDays, GanttDateUtil } from '../utils/date';\nimport { GanttDatePoint } from '../class/date-point';\nimport { BehaviorSubject } from 'rxjs';\n\nexport const primaryDatePointTop = 18;\n\nexport const secondaryDatePointTop = 36;\n\nexport interface GanttViewDate {\n date: GanttDate;\n isCustom?: boolean;\n}\n\nexport interface GanttViewOptions {\n start?: GanttDate;\n end?: GanttDate;\n min?: GanttDate;\n max?: GanttDate;\n cellWidth?: number;\n addAmount?: number;\n addUnit?: GanttDateUtil;\n}\n\nconst viewOptions: GanttViewOptions = {\n min: new GanttDate().addYears(-1).startOfYear(),\n max: new GanttDate().addYears(1).endOfYear()\n};\n\nexport abstract class GanttView {\n start$: BehaviorSubject<GanttDate>;\n\n end$: BehaviorSubject<GanttDate>;\n\n get start() {\n return this.start$.getValue();\n }\n\n get end() {\n return this.end$.getValue();\n }\n\n primaryDatePoints: GanttDatePoint[];\n\n secondaryDatePoints: GanttDatePoint[];\n\n width: number;\n\n cellWidth: number;\n\n primaryWidth: number;\n\n showTimeline = true;\n\n showWeekBackdrop: boolean;\n\n options: GanttViewOptions;\n\n constructor(start: GanttViewDate, end: GanttViewDate, options: GanttViewOptions) {\n this.options = Object.assign({}, viewOptions, options);\n const startDate = start.isCustom\n ? this.startOf(start.date)\n : this.startOf(start.date.value < this.options.start.value ? start.date : this.options.start);\n const endDate = end.isCustom\n ? this.endOf(end.date)\n : this.endOf(end.date.value > this.options.end.value ? end.date : this.options.end);\n this.start$ = new BehaviorSubject<GanttDate>(startDate);\n this.end$ = new BehaviorSubject<GanttDate>(endDate);\n this.initialize();\n }\n\n abstract startOf(date: GanttDate): GanttDate;\n\n abstract endOf(date: GanttDate): GanttDate;\n\n // 获取一级时间网格合并后的宽度\n abstract getPrimaryWidth(): number;\n\n // 获取当前视图下每一天占用的宽度\n abstract getDayOccupancyWidth(date: GanttDate): number;\n\n // 获取一级时间点(坐标,显示名称)\n abstract getPrimaryDatePoints(): GanttDatePoint[];\n\n // 获取二级时间点(坐标,显示名称)\n abstract getSecondaryDatePoints(): GanttDatePoint[];\n\n protected getDateIntervalWidth(start: GanttDate, end: GanttDate) {\n let result = 0;\n const days = differenceInDays(end.value, start.value);\n for (let i = 0; i < Math.abs(days); i++) {\n result += this.getDayOccupancyWidth(start.addDays(i));\n }\n result = days >= 0 ? result : -result;\n return Number(result.toFixed(3));\n }\n\n protected initialize() {\n this.primaryDatePoints = this.getPrimaryDatePoints();\n this.secondaryDatePoints = this.getSecondaryDatePoints();\n this.width = this.getWidth();\n this.cellWidth = this.getCellWidth();\n this.primaryWidth = this.getPrimaryWidth();\n }\n\n addStartDate() {\n const start = this.startOf(this.start.add(this.options.addAmount * -1, this.options.addUnit));\n if (start.value >= this.options.min.value) {\n const origin = this.start;\n this.start$.next(start);\n this.initialize();\n return { start: this.start, end: origin };\n }\n return null;\n }\n\n addEndDate() {\n const end = this.endOf(this.end.add(this.options.addAmount, this.options.addUnit));\n if (end.value <= this.options.max.value) {\n const origin = this.end;\n this.end$.next(end);\n this.initialize();\n return { start: origin, end: this.end };\n }\n return null;\n }\n\n updateDate(start: GanttDate, end: GanttDate) {\n start = this.startOf(start);\n end = this.endOf(end);\n if (start.value < this.start.value) {\n this.start$.next(start);\n }\n if (end.value > this.end.value) {\n this.end$.next(end);\n }\n this.initialize();\n }\n\n // 获取View的宽度\n getWidth() {\n return this.getCellWidth() * this.secondaryDatePoints.length;\n }\n\n // 获取单个网格的宽度\n getCellWidth() {\n return this.options.cellWidth;\n }\n\n // 获取当前时间的X坐标\n getTodayXPoint(): number {\n const toady = new GanttDate().startOfDay();\n if (toady.value > this.start.value && toady.value < this.end.value) {\n const x = this.getXPointByDate(toady) + this.getDayOccupancyWidth(toady) / 2;\n return x;\n } else {\n return null;\n }\n }\n\n // 获取指定时间的X坐标\n getXPointByDate(date: GanttDate) {\n return this.getDateIntervalWidth(this.start, date);\n }\n\n // 根据X坐标获取对应时间\n getDateByXPoint(x: number) {\n const indexOfSecondaryDate = Math.floor(x / this.getCellWidth());\n const matchDate = this.secondaryDatePoints[indexOfSecondaryDate];\n const dayWidth = this.getDayOccupancyWidth(matchDate?.start);\n if (dayWidth === this.getCellWidth()) {\n return matchDate?.start;\n } else {\n const day = Math.floor((x % this.getCellWidth()) / dayWidth) + 1;\n if (this.getCellWidth() / dayWidth === 7) {\n return matchDate?.start.addDays(day);\n }\n return matchDate?.start.setDate(day);\n }\n }\n\n // 获取指定时间范围的宽度\n getDateRangeWidth(start: GanttDate, end: GanttDate) {\n // addSeconds(1) 是因为计算相差天会以一个整天来计算 end时间一般是59分59秒不是一个整天,所以需要加1\n return this.getDateIntervalWidth(start, end.addSeconds(1));\n }\n}\n","import { GanttView, GanttViewOptions, primaryDatePointTop, secondaryDatePointTop, GanttViewDate } from './view';\nimport { GanttDate, differenceInCalendarQuarters, eachMonthOfInterval } from '../utils/date';\nimport { GanttDatePoint } from '../class/date-point';\n\nconst viewOptions: GanttViewOptions = {\n start: new GanttDate().startOfQuarter().addQuarters(-1),\n end: new GanttDate().endOfQuarter().addQuarters(2),\n cellWidth: 280,\n addAmount: 1,\n addUnit: 'quarter'\n};\n\nexport class GanttViewMonth extends GanttView {\n constructor(start: GanttViewDate, end: GanttViewDate, options?: GanttViewOptions) {\n super(start, end, Object.assign({}, viewOptions, options));\n }\n\n startOf(date: GanttDate) {\n return date.startOfQuarter();\n }\n\n endOf(date: GanttDate) {\n return date.endOfQuarter();\n }\n\n getPrimaryWidth() {\n return this.getCellWidth() * 3;\n }\n\n getDayOccupancyWidth(date: GanttDate): number {\n return this.cellWidth / date.getDaysInMonth();\n }\n\n getPrimaryDatePoints(): GanttDatePoint[] {\n const quarters = differenceInCalendarQuarters(this.end.addSeconds(1).value, this.start.value);\n const points: GanttDatePoint[] = [];\n for (let i = 0; i < quarters; i++) {\n const start = this.start.addQuarters(i);\n const point = new GanttDatePoint(\n start,\n start.format('yyyy年QQQ'),\n (this.getCellWidth() * 3) / 2 + i * (this.getCellWidth() * 3),\n primaryDatePointTop\n );\n points.push(point);\n }\n\n return points;\n }\n\n getSecondaryDatePoints(): GanttDatePoint[] {\n const months = eachMonthOfInterval({ start: this.start.value, end: this.end.value });\n const points: GanttDatePoint[] = [];\n for (let i = 0; i < months.length; i++) {\n const start = new GanttDate(months[i]);\n const point = new GanttDatePoint(\n start,\n `${start.getMonth() + 1}月`,\n i * this.getCellWidth() + this.getCellWidth() / 2,\n secondaryDatePointTop\n );\n points.push(point);\n }\n return points;\n }\n}\n","import { GanttView, GanttViewOptions, primaryDatePointTop, secondaryDatePointTop, GanttViewDate } from './view';\nimport { GanttDate } from '../utils/date';\nimport { GanttDatePoint } from '../class/date-point';\nimport { eachYearOfInterval, differenceInCalendarQuarters } from 'date-fns';\n\nconst viewOptions: GanttViewOptions = {\n start: new GanttDate().addYears(-1).startOfYear(),\n end: new GanttDate().addYears(1).endOfYear(),\n min: new GanttDate().addYears(-2).startOfYear(),\n max: new GanttDate().addYears(2).endOfYear(),\n cellWidth: 500,\n addAmount: 1,\n addUnit: 'year'\n};\n\nexport class GanttViewQuarter extends GanttView {\n constructor(start: GanttViewDate, end: GanttViewDate, options?: GanttViewOptions) {\n super(start, end, Object.assign({}, viewOptions, options));\n }\n\n startOf(date: GanttDate) {\n return date.startOfYear();\n }\n\n endOf(date: GanttDate) {\n return date.endOfYear();\n }\n\n getPrimaryWidth() {\n return this.getCellWidth() * 4;\n }\n\n getDayOccupancyWidth(date: GanttDate): number {\n return this.cellWidth / date.getDaysInQuarter();\n }\n\n getPrimaryDatePoints(): GanttDatePoint[] {\n const years = eachYearOfInterval({ start: this.start.value, end: this.end.value });\n const points: GanttDatePoint[] = [];\n for (let i = 0; i < years.length; i++) {\n const start = new GanttDate(years[i]);\n const point = new GanttDatePoint(\n start,\n `${start.format('yyyy')}年`,\n (this.getCellWidth() * 4) / 2 + i * (this.getCellWidth() * 4),\n primaryDatePointTop\n );\n points.push(point);\n }\n return points;\n }\n\n getSecondaryDatePoints(): GanttDatePoint[] {\n const quarters = differenceInCalendarQuarters(this.end.value, this.start.value);\n const points: GanttDatePoint[] = [];\n for (let i = 0; i <= quarters; i++) {\n const start = this.start.addQuarters(i);\n const point = new GanttDatePoint(\n start,\n start.format('QQQ'),\n i * this.getCellWidth() + this.getCellWidth() / 2,\n secondaryDatePointTop\n );\n points.push(point);\n }\n return points;\n }\n}\n","import { GanttView, GanttViewOptions, primaryDatePointTop, secondaryDatePointTop, GanttViewDate } from './view';\nimport { GanttDate, eachWeekOfInterval, eachDayOfInterval } from '../utils/date';\nimport { GanttDatePoint } from '../class/date-point';\n\nconst viewOptions: GanttViewOptions = {\n cellWidth: 35,\n start: new GanttDate().startOfYear().startOfWeek({ weekStartsOn: 1 }),\n end: new GanttDate().endOfYear().endOfWeek({ weekStartsOn: 1 }),\n addAmount: 1,\n addUnit: 'month'\n};\n\nexport class GanttViewDay extends GanttView {\n showWeekBackdrop = true;\n\n showTimeline = false;\n\n constructor(start: GanttViewDate, end: GanttViewDate, options?: GanttViewOptions) {\n super(start, end, Object.assign({}, viewOptions, options));\n }\n\n startOf(date: GanttDate) {\n return date.startOfWeek({ weekStartsOn: 1 });\n }\n\n endOf(date: GanttDate) {\n return date.endOfWeek({ weekStartsOn: 1 });\n }\n\n getPrimaryWidth() {\n return this.getCellWidth() * 7;\n }\n\n getDayOccupancyWidth(): number {\n return this.cellWidth;\n }\n\n getPrimaryDatePoints(): GanttDatePoint[] {\n const weeks = eachWeekOfInterval({ start: this.start.value, end: this.end.addSeconds(1).value }, { weekStartsOn: 1 });\n const points: GanttDatePoint[] = [];\n for (let i = 0; i < weeks.length; i++) {\n const weekStart = new GanttDate(weeks[i]);\n const increaseWeek = weekStart.getDaysInMonth() - weekStart.getDate() >= 3 ? 0 : 1;\n const point = new GanttDatePoint(\n weekStart,\n weekStart.addWeeks(increaseWeek).format('yyyy年MM月'),\n (this.getCellWidth() * 7) / 2 + i * (this.getCellWidth() * 7),\n primaryDatePointTop\n );\n points.push(point);\n }\n return points;\n }\n\n getSecondaryDatePoints(): GanttDatePoint[] {\n const days = eachDayOfInterval({ start: this.start.value, end: this.end.value });\n const points: GanttDatePoint[] = [];\n for (let i = 0; i < days.length; i++) {\n const start = new GanttDate(days[i]);\n const point = new GanttDatePoint(\n start,\n start.getDate().toString(),\n i * this.getCellWidth() + this.getCellWidth() / 2,\n secondaryDatePointTop,\n {\n isWeekend: start.isWeekend(),\n isToday: start.isToday()\n }\n );\n points.push(point);\n }\n return points;\n }\n}\n","import { GanttDatePoint } from '../class/date-point';\nimport { eachWeekOfInterval, GanttDate } from '../utils/date';\nimport { GanttView, GanttViewDate, GanttViewOptions, primaryDatePointTop, secondaryDatePointTop } from './view';\n\nconst viewOptions: GanttViewOptions = {\n cellWidth: 280,\n start: new GanttDate().startOfYear().startOfWeek({ weekStartsOn: 1 }),\n end: new GanttDate().endOfYear().endOfWeek({ weekStartsOn: 1 }),\n addAmount: 1,\n addUnit: 'month'\n};\n\nexport class GanttViewWeek extends GanttView {\n constructor(start: GanttViewDate, end: GanttViewDate, options?: GanttViewOptions) {\n super(start, end, Object.assign({}, viewOptions, options));\n }\n\n startOf(date: GanttDate) {\n return date.startOfWeek({ weekStartsOn: 1 });\n }\n\n endOf(date: GanttDate) {\n return date.endOfWeek({ weekStartsOn: 1 });\n }\n\n getPrimaryWidth() {\n return this.getCellWidth();\n }\n\n getDayOccupancyWidth(): number {\n return this.cellWidth / 7;\n }\n\n getPrimaryDatePoints(): GanttDatePoint[] {\n const weeks = eachWeekOfInterval({ start: this.start.value, end: this.end.addSeconds(1).value }, { weekStartsOn: 1 });\n const points: GanttDatePoint[] = [];\n for (let i = 0; i < weeks.length; i++) {\n const weekStart = new GanttDate(weeks[i]);\n const increaseWeek = weekStart.getDaysInMonth() - weekStart.getDate() >= 3 ? 0 : 1;\n const point = new GanttDatePoint(\n weekStart,\n weekStart.addWeeks(increaseWeek).format('yyyy年'),\n this.getCellWidth() / 2 + i * this.getCellWidth(),\n primaryDatePointTop\n );\n points.push(point);\n }\n return points;\n }\n\n getSecondaryDatePoints(): GanttDatePoint[] {\n const weeks = eachWeekOfInterval({ start: this.start.value, end: this.end.value });\n const points: GanttDatePoint[] = [];\n for (let i = 0; i < weeks.length; i++) {\n const start = new GanttDate(weeks[i]);\n const point = new GanttDatePoint(\n start,\n `第${start.format('w')}周`,\n i * this.getCellWidth() + this.getCellWidth() / 2,\n secondaryDatePointTop\n );\n points.push(point);\n }\n return points;\n }\n}\n","import { GanttView, GanttViewOptions, primaryDatePointTop, secondaryDatePointTop, GanttViewDate } from './view';\nimport { GanttDate } from '../utils/date';\nimport { GanttDatePoint } from '../class/date-point';\nimport { eachYearOfInterval, differenceInCalendarYears } from 'date-fns';\n\nconst viewOptions: GanttViewOptions = {\n cellWidth: 480,\n start: new GanttDate().addYears(-2).startOfYear(),\n end: new GanttDate().addYears(2).endOfYear(),\n addAmount: 1,\n addUnit: 'year'\n};\n\nexport class GanttViewYear extends GanttView {\n constructor(start: GanttViewDate, end: GanttViewDate, options?: GanttViewOptions) {\n super(start, end, Object.assign({}, viewOptions, options));\n }\n\n startOf(date: GanttDate) {\n return date.startOfYear();\n }\n\n endOf(date: GanttDate) {\n return date.endOfYear();\n }\n\n getPrimaryWidth() {\n return this.getCellWidth();\n }\n\n getDayOccupancyWidth(date: GanttDate): number {\n return this.cellWidth / date.getDaysInYear();\n }\n\n getPrimaryDatePoints(): GanttDatePoint[] {\n const years = eachYearOfInterval({ start: this.start.value, end: this.end.value });\n const points: GanttDatePoint[] = [];\n for (let i = 0; i < years.length; i++) {\n const start = new GanttDate(years[i]);\n const point = new GanttDatePoint(start, ``, this.getCellWidth() / 2 + i * this.getCellWidth(), primaryDatePointTop);\n points.push(point);\n }\n return points;\n }\n\n getSecondaryDatePoints(): GanttDatePoint[] {\n const years = differenceInCalendarYears(this.end.value, this.start.value);\n const points: GanttDatePoint[] = [];\n const pointTop = 27;\n for (let i = 0; i <= years; i++) {\n const start = this.start.addYears(i);\n const point = new GanttDatePoint(\n start,\n `${start.format('yyyy')}年`,\n i * this.getCellWidth() + this.getCellWidth() / 2,\n pointTop\n );\n points.push(point);\n }\n return points;\n }\n}\n","import { GanttViewOptions, GanttViewDate } from './view';\nimport { GanttViewMonth } from './month';\nimport { GanttDate } from '../utils/date';\nimport { GanttViewType } from '../class/view-type';\nimport { GanttViewQuarter } from './quarter';\nimport { GanttViewDay } from './day';\nimport { GanttViewWeek } from './week';\nimport { GanttViewYear } from './year';\n\nexport function createViewFactory(type: GanttViewType, start: GanttViewDate, end: GanttViewDate, options?: GanttViewOptions) {\n switch (type) {\n case GanttViewType.month:\n return new GanttViewMonth(start, end, options);\n case GanttViewType.week:\n return new GanttViewWeek(start, end, options);\n case GanttViewType.quarter:\n return new GanttViewQuarter(start, end, options);\n case GanttViewType.day:\n return new GanttViewDay(start, end, options);\n case GanttViewType.year:\n return new GanttViewYear(start, end, options);\n default:\n throw new Error('gantt view type invalid');\n }\n}\n","export const defaultStyles = {\n lineHeight: 44,\n barHeight: 22\n};\n\nexport const headerHeight = 44;\n\nexport type GanttStyles = typeof defaultStyles;\n\nexport const sideWidth = 400;\n\nexport const sideMiddleWidth = 500;\n\nexport const sideMaxWidth = 600;\n\nexport const sideMinWidth = 400;\n\nexport const barBackground = '#348fe4';\n\nexport const rangeHeight = 17;\n\nexport const todayHeight = 24;\n\nexport const todayWidth = 35;\n\nexport const todayBorderRadius = 4;\n\n\n","import { GanttItemInternal } from '../class/item';\n\nexport interface Dictionary<T = unknown> {\n [key: string]: T;\n}\n\nexport function isNumber(value: any) {\n return typeof value === 'number';\n}\n\nexport function isString(value: any) {\n return typeof value === 'string';\n}\n\nexport function isUndefined(value: any) {\n return value === undefined;\n}\n\nexport function hexToRgb(color: string, opacity = 1) {\n if (/^#/g.test(color)) {\n return `rgba(${parseInt(color.slice(1, 3), 16)},${parseInt(color.slice(3, 5), 16)},${parseInt(color.slice(5, 7), 16)},${opacity})`;\n } else {\n return color;\n }\n}\n\nexport function uniqBy<T = unknown>(array: T[], key: keyof T) {\n const valuesMap: Dictionary<T> = {};\n const result = [];\n (array || []).forEach((value) => {\n const _key = value[key as string];\n if (!valuesMap[_key]) {\n valuesMap[_key] = value;\n result.push(value);\n }\n });\n return result;\n}\n\nexport function flatten<T = unknown>(array: T[]) {\n return array.reduce((pre, cur) => {\n return pre.concat(Array.isArray(cur) ? flatten(cur) : cur);\n }, []);\n}\n\nexport function recursiveItems(items: GanttItemInternal[]) {\n const result = [];\n (items || []).forEach((item) => {\n result.push(item);\n if (item.expanded && item.children) {\n result.push(...recursiveItems(item.children));\n }\n });\n return result;\n}\n","import {\n Input,\n TemplateRef,\n Output,\n EventEmitter,\n ContentChild,\n ElementRef,\n HostBinding,\n ChangeDetectorRef,\n NgZone,\n SimpleChanges,\n InjectionToken,\n Directive\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil, take, skip } from 'rxjs/operators';\nimport {\n GanttItem,\n GanttGroup,\n GanttViewType,\n GanttLoadOnScrollEvent,\n GanttDragEvent,\n GanttGroupInternal,\n GanttItemInternal,\n GanttBarClickEvent,\n GanttLinkDragEvent\n} from './class';\nimport { GanttView, GanttViewOptions } from './views/view';\nimport { createViewFactory } from './views/factory';\nimport { GanttDate } from './utils/date';\nimport { GanttStyles, defaultStyles } from './gantt.styles';\nimport { uniqBy, flatten, recursiveItems } from './utils/helpers';\nimport { GanttDragContainer } from './gantt-drag-container';\n\n@Directive()\nexport abstract class GanttUpper {\n @Input('items') originItems: GanttItem[] = [];\n\n @Input('groups') originGroups: GanttGroup[] = [];\n\n @Input() viewType: GanttViewType = GanttViewType.month;\n\n @Input() start: number;\n\n @Input() end: number;\n\n @Input() showTodayLine = true;\n\n @Input() draggable: boolean;\n\n @Input() styles: GanttStyles;\n\n @Input() viewOptions: GanttViewOptions;\n\n @Input() disabledLoadOnScroll: boolean;\n\n @Output() loadOnScroll = new EventEmitter<GanttLoadOnScrollEvent>();\n\n @Output() dragStarted = new EventEmitter<GanttDragEvent>();\n\n @Output() dragEnded = new EventEmitter<GanttDragEvent>();\n\n @Output() barClick = new EventEmitter<GanttBarClickEvent>();\n\n @ContentChild('bar', { static: true }) barTemplate: TemplateRef<any>;\n\n @ContentChild('range', { static: true }) rangeTemplate: TemplateRef<any>;\n\n @ContentChild('item', { static: true }) itemTemplate: TemplateRef<any>;\n\n @ContentChild('group', { static: true }) groupTemplate: TemplateRef<any>;\n\n @ContentChild('groupHeader', { static: true }) groupHeaderTemplate: TemplateRef<any>;\n\n public linkable: boolean;\n\n public linkDragEnded = new EventEmitter<GanttLinkDragEvent>();\n\n public view: GanttView;\n\n public items: GanttItemInternal[] = [];\n\n public groups: GanttGroupInternal[] = [];\n\n public viewChange = new EventEmitter<GanttView>();\n\n public expandChange = new EventEmitter<void>();\n\n public get element() {\n return this.elementRef.nativeElement;\n }\n\n public firstChange = true;\n\n public dragContainer: GanttDragContainer;\n\n public unsubscribe$ = new Subject();\n\n private groupsMap: { [key: string]: GanttGroupInternal };\n\n private expandedItemIds: string[] = [];\n\n @HostBinding('class.gantt') ganttClass = true;\n\n constructor(protected elementRef: ElementRef<HTMLElement>, protected cdr: ChangeDetectorRef, protected ngZone: NgZone) {}\n\n private createView() {\n const viewDate = this.getViewDate();\n this.view = createViewFactory(this.viewType, viewDate.start, viewDate.end, this.viewOptions);\n }\n\n private setupGroups() {\n const collapsedIds = this.groups.filter((group) => group.expanded === false).map((group) => group.id);\n this.groupsMap = {};\n this.groups = [];\n this.originGroups.forEach((origin) => {\n const group = new GanttGroupInternal(origin);\n group.expanded = !collapsedIds.includes(group.id);\n this.groupsMap[group.id] = group;\n this.groups.push(group);\n });\n }\n\n private setupItems() {\n this.items = [];\n this.originItems = uniqBy(this.originItems, 'id');\n // 根据上一次数据展开状态同步新的数据展开状态\n this.originItems.forEach((item) => {\n if (!this.firstChange) {\n item.expanded = this.expandedItemIds.includes(item.id);\n }\n });\n if (this.groups.length > 0) {\n this.originItems.forEach((origin) => {\n const group = this.groupsMap[origin.group_id];\n if (group) {\n const item = new GanttItemInternal(origin, { viewType: this.viewType });\n group.items.push(item);\n }\n });\n } else {\n this.originItems.forEach((origin) => {\n const item = new GanttItemInternal(origin, { viewType: this.viewType });\n this.items.push(item);\n });\n }\n }\n\n private setupExpandedState() {\n let items: GanttItemInternal[] = [];\n if (this.items.length > 0) {\n items = recursiveItems(this.items);\n } else {\n items = flatten(this.groups.map((group) => recursiveItems(group.items)));\n }\n this.expandedItemIds = [];\n items.forEach((item) => {\n if (item.origin.expanded) {\n this.expandedItemIds.push(item.id);\n }\n });\n }\n\n private getViewDate() {\n let start = this.start;\n let end = this.end;\n if (!this.start || !this.end) {\n this.originItems.forEach((item) => {\n if (item.start && !this.start) {\n start = start ? Math.min(start, item.start) : item.start;\n }\n if (item.end && !this.end) {\n end = end ? Math.max(end, item.end) : item.end;\n }\n });\n }\n return {\n start: {\n date: new GanttDate(start),\n isCustom: this.start ? true : false\n },\n end: {\n date: new GanttDate(end),\n isCustom: this.end ? true : false\n }\n };\n }\n\n computeRefs() {\n this.groups.forEach((group) => {\n const groupItems = recursiveItems(group.items);\n this.computeItemsRefs(...groupItems);\n });\n const items = recursiveItems(this.items);\n this.computeItemsRefs(...items);\n }\n\n private expandGroups(expanded: boolean) {\n this.groups.forEach((group) => {\n group.setExpand(expanded);\n });\n this.expandChange.next();\n this.cdr.detectChanges();\n }\n\n onInit() {\n this.styles = Object.assign({}, defaultStyles, this.styles);\n this.createView();\n this.setupGroups();\n this.setupItems();\n this.computeRefs();\n this.firstChange = false;\n\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.element.style.opacity = '1';\n\n this.dragContainer.dragStarted.subscribe((event) => {\n this.dragStarted.emit(event);\n });\n this.dragContainer.dragEnded.subscribe((event) => {\n this.dragEnded.emit(event);\n this.computeRefs();\n this.detectChanges();\n });\n });\n\n this.view.start$.pipe(skip(1), takeUntil(this.unsubscribe$)).subscribe(() => {\n this.computeRefs();\n });\n }\n\n onChanges(changes: SimpleChanges) {\n if (!this.firstChange) {\n if (changes.viewType && changes.viewType.currentValue) {\n this.createView();\n this.setupGroups();\n this.setupItems();\n this.computeRefs();\n this.viewChange.emit(this.view);\n }\n if (changes.originItems || changes.originGroups) {\n this.setupExpandedState();\n this.setupGroups();\n this.setupItems();\n this.computeRefs();\n }\n }\n }\n\n onDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n computeItemsRefs(...items: GanttItemInternal[]) {\n items.forEach((item) => {\n item.updateRefs({\n width: item.start && item.end ? this.view.getDateRangeWidth(item.start.startOfDay(), item.end.endOfDay()) : 0,\n x: item.start ? this.view.getXPointByDate(item.start) : 0,\n y: (this.styles.lineHeight - this.styles.barHeight) / 2 - 1\n });\n });\n }\n\n trackBy(item: GanttGroupInternal | GanttItemInternal, index: number) {\n return item.id || index;\n }\n\n detectChanges() {\n this.cdr.detectChanges();\n }\n\n expandGroup(group: GanttGroupInternal) {\n group.setExpand(!group.expanded);\n this.expandChange.emit();\n this.cdr.detectChanges();\n }\n\n // public functions\n\n expandAll() {\n this.expandGroups(true);\n }\n\n collapseAll() {\n this.expandGroups(false);\n }\n}\n\nexport const GANTT_UPPER_TOKEN = new InjectionToken<GanttUpper>('GANTT_UPPER_TOKEN');\n","import { Component, OnInit, ContentChild, TemplateRef, Input, EventEmitter, Inject, Output } from '@angular/core';\nimport { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { GanttUpper, GANTT_UPPER_TOKEN } from '../gantt-upper';\n@Component({\n selector: 'ngx-gantt-column',\n template: ''\n})\nexport class NgxGanttTableColumnComponent implements OnInit {\n public columnWidth: string;\n\n @Input()\n set width(width: number | string) {\n this.columnWidth = coerceCssPixelValue(width);\n }\n\n @Input() name: string;\n\n @ContentChild('cell', { static: true }) templateRef: TemplateRef<any>;\n\n @ContentChild('header', { static: true }) headerTemplateRef: TemplateRef<any>;\n\n constructor(@Inject(GANTT_UPPER_TOKEN) public ganttUpper: GanttUpper) {}\n\n ngOnInit() {}\n}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { GanttTableEvent } from '../class';\n\n@Component({\n selector: 'ngx-gantt-table',\n template: ''\n})\nexport class NgxGanttTableComponent implements OnInit {\n @Output() columnChanges = new EventEmitter<GanttTableEvent>();\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import {\n Component,\n OnInit,\n ElementRef,\n ChangeDetectionStrategy,\n Input,\n EventEmitter,\n Output,\n ChangeDetectorRef,\n NgZone,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ContentChildren,\n QueryList,\n AfterViewInit,\n ViewChild,\n ContentChild,\n TemplateRef\n} from '@angular/core';\nimport { startWith, takeUntil, take, finalize } from 'rxjs/operators';\nimport { Subject, Observable } from 'rxjs';\nimport { GanttUpper, GANTT_UPPER_TOKEN } from './gantt-upper';\nimport { GanttLinkDragEvent, GanttLineClickEvent, GanttItemInternal, GanttItem } from './class';\nimport { NgxGanttTableColumnComponent } from './table/gantt-column.component';\nimport { sideWidth } from './gantt.styles';\nimport { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { NgxGanttTableComponent } from './table/gantt-table.component';\n\nexport const defaultColumnWidth = 100;\nexport const minColumnWidth = 80;\n\n@Component({\n selector: 'ngx-gantt',\n templateUrl: './gantt.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: GANTT_UPPER_TOKEN,\n useExisting: NgxGanttComponent\n }\n ]\n})\nexport class NgxGanttComponent extends GanttUpper implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n @Input() maxLevel = 2;\n\n @Input() async: boolean;\n\n @Input() childrenResolve: (GanttItem) => Observable<GanttItem[]>;\n\n @Input() linkable: boolean;\n\n @Output() linkDragStarted = new EventEmitter<GanttLinkDragEvent>();\n\n @Output() linkDragEnded = new EventEmitter<GanttLinkDragEvent>();\n\n @Output() lineClick = new EventEmitter<GanttLineClickEvent>();\n\n @ContentChild(NgxGanttTableComponent) table: NgxGanttTableComponent;\n\n @ContentChildren(NgxGanttTableColumnComponent, { descendants: true }) columns: QueryList<NgxGanttTableColumnComponent>;\n\n @ContentChild('tableEmpty', { static: true }) tableEmptyTemplate: TemplateRef<any>;\n\n private ngUnsubscribe$ = new Subject();\n\n public sideTableWidth = sideWidth;\n\n constructor(elementRef: ElementRef<HTMLElement>, cdr: ChangeDetectorRef, ngZone: NgZone) {\n super(elementRef, cdr, ngZone);\n }\n\n ngOnInit() {\n super.onInit();\n\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.dragContainer.linkDragStarted.pipe(takeUntil(this.ngUnsubscribe$)).subscribe((event: GanttLinkDragEvent) => {\n this.linkDragStarted.emit(event);\n });\n this.dragContainer.linkDragEnded.pipe(takeUntil(this.ngUnsubscribe$)).subscribe((event: GanttLinkDragEvent) => {\n this.linkDragEnded.emit(event);\n });\n });\n }\n\n ngAfterViewInit() {\n this.columns.changes.pipe(startWith(true), takeUntil(this.ngUnsubscribe$)).subscribe(() => {\n this.columns.forEach((column) => {\n if (!column.columnWidth) {\n column.columnWidth = coerceCssPixelValue(defaultColumnWidth);\n }\n });\n this.cdr.detectChanges();\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n super.onChanges(changes);\n }\n\n expandChildren(item: GanttItemInternal) {\n if (!item.expanded) {\n item.setExpand(true);\n if (this.async && this.childrenResolve && item.children.length === 0) {\n item.loading = true;\n this.childrenResolve(item.origin)\n .pipe(\n take(1),\n finalize(() => {\n item.loading = false;\n this.expandChange.emit();\n this.cdr.detectChanges();\n })\n )\n .subscribe((items) => {\n item.addChildren(items);\n this.computeItemsRefs(...item.children);\n });\n } else {\n this.computeItemsRefs(...item.children);\n this.expandChange.emit();\n }\n } else {\n item.setExpand(false);\n this.expandChange.emit();\n }\n }\n\n ngOnDestroy() {\n super.onDestroy();\n }\n}\n","import {\n Component,\n OnInit,\n HostBinding,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n NgZone,\n Inject,\n ElementRef,\n AfterViewInit\n} from '@angular/core';\nimport { GanttDatePoint } from '../../class/date-point';\nimport { Subject, merge } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { headerHeight, todayHeight, todayWidth, todayBorderRadius } from '../../gantt.styles';\nimport { isNumber } from '../../utils/helpers';\nimport { GanttDate } from '../../utils/date';\nimport { GANTT_UPPER_TOKEN, GanttUpper } from '../../gantt-upper';\nimport { GanttViewType } from './../../class/view-type';\n\nconst mainHeight = 5000;\n\n@Component({\n selector: 'gantt-calendar-overlay',\n templateUrl: './calendar.component.html'\n})\nexport class GanttCalendarComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n get view() {\n return this.ganttUpper.view;\n }\n\n private unsubscribe$ = new Subject();\n\n headerHeight = headerHeight;\n\n mainHeight = mainHeight;\n\n todayHeight = todayHeight;\n\n todayWidth = todayWidth;\n\n todayBorderRadius = todayBorderRadius;\n\n viewTypes = GanttViewType;\n\n @HostBinding('class.gantt-calendar-overlay') className = true;\n\n constructor(\n @Inject(GANTT_UPPER_TOKEN) public ganttUpper: GanttUpper,\n private ngZone: NgZone,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n setTodayPoint() {\n const x = this.view.getTodayXPoint();\n const today = new GanttDate().getDate();\n const todayEle = this.elementRef.nativeElement.getElementsByClassName('gantt-calendar-today-overlay')[0] as HTMLElement;\n const rect = this.elementRef.nativeElement.getElementsByClassName('today-rect')[0] as HTMLElement;\n const line = this.elementRef.nativeElement.getElementsByClassName('today-line')[0] as HTMLElement;\n\n if (isNumber(x)) {\n if (rect) {\n rect.style.left = `${x - todayWidth / 2}px`;\n rect.style.top = `${headerHeight - todayHeight}px`;\n rect.innerHTML = today.toString();\n }\n if (line) {\n line.style.left = `${x}px`;\n line.style.top = `${headerHeight}px`;\n line.style.bottom = `${-mainHeight}px`;\n }\n } else {\n todayEle.style.display = 'none';\n }\n }\n\n ngOnInit() {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n merge(this.ganttUpper.viewChange, this.ganttUpper.view.start$)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => {\n this.setTodayPoint();\n });\n });\n }\n\n ngAfterViewInit() {}\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n trackBy(point: GanttDatePoint, index: number) {\n return point.text || index;\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n}\n","import {\n Component,\n HostBinding,\n TemplateRef,\n QueryList,\n Input,\n OnInit,\n ViewChild,\n ElementRef,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\nimport { GanttItemInternal, GanttGroupInternal } from '../../class';\nimport { NgxGanttTableColumnComponent } from '../../table/gantt-column.component';\nimport { defaultColumnWidth, minColumnWidth, NgxGanttComponent } from '../../gantt.component';\nimport { CdkDragEnd, CdkDragMove, CdkDragStart } from '@angular/cdk/drag-drop';\nimport { coerceCssPixelValue } from '@angular/cdk/coercion';\n\ninterface DragFixedConfig {\n target: HTMLElement;\n originWidth: number;\n movedWidth: number;\n minWidth: number;\n}\n@Component({\n selector: 'gantt-table',\n templateUrl: './gantt-table.component.html'\n})\nexport class GanttTableComponent implements OnInit, OnChanges {\n public columnList: QueryList<NgxGanttTableColumnComponent>;\n\n public dragStartLeft: number;\n\n @Input() groups: GanttGroupInternal[];\n\n @Input() items: GanttItemInternal[];\n\n @Input()\n set columns(columns: QueryList<NgxGanttTableColumnComponent>) {\n columns.forEach((column) => {\n if (!column.columnWidth) {\n column.columnWidth = coerceCssPixelValue(defaultColumnWidth);\n }\n });\n this.columnList = columns;\n }\n\n @Input() groupTemplate: TemplateRef<any>;\n\n @Input() emptyTemplate: TemplateRef<any>;\n\n @ViewChild('dragLine', { static: true }) draglineElementRef: ElementRef<HTMLElement>;\n\n @HostBinding('class.gantt-table') ganttTableClass = true;\n\n @HostBinding('class.gantt-table-empty') ganttTableEmptyClass = false;\n\n constructor(public gantt: NgxGanttComponent, private elementRef: ElementRef) {}\n\n ngOnInit() {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (!changes.groups.currentValue?.length && !changes.items.currentValue?.length) {\n this.ganttTableEmptyClass = true;\n }\n }\n\n private dragFixed(config: DragFixedConfig) {\n if (config.movedWidth < config.minWidth) {\n config.target.style.transform = `translate3d(${config.minWidth - config.originWidth}px, 0, 0)`;\n }\n }\n\n expandGroup(group: GanttGroupInternal) {\n this.gantt.expandGroup(group);\n }\n\n expandChildren(item: GanttItemInternal) {\n this.gantt.expandChildren(item);\n }\n\n dragStarted(event: CdkDragStart) {\n const target = event.source.element.nativeElement;\n this.dragStartLeft = target.getBoundingClientRect().left;\n }\n\n dragMoved(event: CdkDragMove, column?: NgxGanttTableColumnComponent) {\n const target = event.source.element.nativeElement;\n const left = target.getBoundingClientRect().left;\n\n let originWidth: number;\n let movedWidth: number;\n let minWidth: number;\n if (column) {\n originWidth = parseInt(column.columnWidth, 10);\n movedWidth = originWidth + (left - this.dragStartLeft);\n minWidth = minColumnWidth;\n } else {\n originWidth = this.elementRef.nativeElement.getBoundingClientRect().width;\n movedWidth = originWidth + (left - this.dragStartLeft);\n minWidth = minColumnWidth * this.columnList.length;\n }\n\n this.dragFixed({\n target,\n originWidth,\n movedWidth,\n minWidth\n });\n\n this.showAuxiliaryLine(event);\n }\n\n columnDragEnded(event: CdkDragEnd, column: NgxGanttTableColumnComponent) {\n const target = event.source.element.nativeElement;\n const left = target.getBoundingClientRect().left;\n const width = parseInt(column.columnWidth, 10) + (left - this.dragStartLeft);\n const columnWidth = Math.max(width || 0, minColumnWidth);\n column.columnWidth = coerceCssPixelValue(columnWidth);\n if (this.gantt.table) {\n this.gantt.table.columnChanges.emit({ columns: this.columnList });\n }\n\n this.hideAuxiliaryLine();\n event.source.reset();\n }\n\n tableDragEnded(event: CdkDragEnd) {\n const target = event.source.element.nativeElement;\n const left = target.getBoundingClientRect().left;\n const tableWidth = this.elementRef.nativeElement.getBoundingClientRect().width;\n const dragWidth = left - this.dragStartLeft;\n this.columnList.forEach((column) => {\n const lastColumnWidth = parseInt(column.columnWidth, 10);\n const distributeWidth = parseInt(String(dragWidth * (lastColumnWidth / tableWidth)), 10);\n const columnWidth = Math.max(lastColumnWidth + distributeWidth || 0, minColumnWidth);\n column.columnWidth = coerceCssPixelValue(columnWidth);\n });\n\n if (this.gantt.table) {\n this.gantt.table.columnChanges.emit({ columns: this.columnList });\n }\n\n this.hideAuxiliaryLine();\n event.source.reset();\n }\n\n private showAuxiliaryLine(event: CdkDragMove) {\n const tableRect = this.elementRef.nativeElement.getBoundingClientRect();\n const targetRect = event.source.element.nativeElement.getBoundingClientRect();\n const distance = { x: targetRect.left - tableRect.left, y: targetRect.top - tableRect.top };\n this.draglineElementRef.nativeElement.style.left = `${distance.x}px`;\n this.draglineElementRef.nativeElement.style.display = 'block';\n }\n\n private hideAuxiliaryLine() {\n this.draglineElementRef.nativeElement.style.display = 'none';\n }\n}\n","import { Injectable, ElementRef, OnDestroy } from '@angular/core';\nimport { fromEvent, Subject, merge } from 'rxjs';\nimport { pairwise, map, auditTime, takeUntil, take, startWith } from 'rxjs/operators';\nimport { isNumber } from './utils/helpers';\n\nconst scrollThreshold = 50;\n\nexport enum ScrollDirection {\n NONE,\n LEFT,\n RIGHT\n}\n\nexport interface ScrollEvent {\n target: Element;\n direction: ScrollDirection;\n}\n\n@Injectable()\nexport class GanttDomService implements OnDestroy {\n public root: Element;\n\n public side: Element;\n\n public container: Element;\n\n public sideContainer: Element;\n\n public mainContainer: Element;\n\n public calendarOverlay: Element;\n\n public linksOverlay: Element;\n\n private unsubscribe$ = new Subject<void>();\n\n constructor() {}\n\n private monitorScrollChange() {\n merge(fromEvent(this.mainContainer, 'scroll'), fromEvent(this.sideContainer, 'scroll'))\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe((event) => {\n this.syncScroll(event);\n });\n\n fromEvent(this.mainContainer, 'scroll')\n .pipe(startWith(), takeUntil(this.unsubscribe$))\n .subscribe((event) => {\n // if (this.mainContainer.scrollLeft > 0) {\n // this.side.classList.add('gantt-side-has-shadow');\n // } else {\n // this.side.classList.remove('gantt-side-has-shadow');\n // }\n });\n }\n\n private syncScroll(event: Event) {\n const target = event.currentTarget as HTMLElement;\n this.calendarOverlay.scrollLeft = this.mainContainer.scrollLeft;\n\n this.sideContainer.scrollTop = target.scrollTop;\n this.mainContainer.scrollTop = target.scrollTop;\n }\n\n private disableBrowserWheelEvent() {\n const container = this.mainContainer as HTMLElement;\n fromEvent(container, 'wheel')\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe((event: WheelEvent) => {\n const delta = event.deltaX;\n if (!delta) {\n return;\n }\n if (\n (container.scrollLeft + container.offsetWidth === container.scrollWidth && delta > 0) ||\n (container.scrollLeft === 0 && delta < 0)\n ) {\n event.preventDefault();\n }\n });\n }\n\n initialize(root: ElementRef<HTMLElement>) {\n this.root = root.nativeElement;\n this.side = this.root.getElementsByClassName('gantt-side')[0];\n this.container = this.root.getElementsByClassName('gantt-container')[0];\n this.sideContainer = this.root.getElementsByClassName('gantt-side-container')[0];\n this.mainContainer = this.root.getElementsByClassName('gantt-main-container')[0];\n this.calendarOverlay = this.root.getElementsByClassName('gantt-calendar-overlay')[0];\n this.monitorScrollChange();\n this.disableBrowserWheelEvent();\n }\n\n getViewerScroll() {\n return fromEvent<Event>(this.mainContainer, 'scroll').pipe(\n map(() => this.mainContainer.scrollLeft),\n pairwise(),\n map(([previous, current]) => {\n const event: ScrollEvent = {\n target: this.mainContainer,\n direction: ScrollDirection.NONE\n };\n if (current - previous < 0) {\n if (this.mainContainer.scrollLeft < scrollThreshold && this.mainContainer.scrollLeft > 0) {\n event.direction = ScrollDirection.LEFT;\n }\n }\n if (current - previous > 0) {\n if (this.mainContainer.scrollWidth - this.mainContainer.clientWidth - this.mainContainer.scrollLeft < scrollThreshold) {\n event.direction = ScrollDirection.RIGHT;\n }\n }\n return event;\n })\n );\n }\n\n getResize() {\n return fromEvent(window, 'resize').pipe(auditTime(150));\n }\n\n scrollMainContainer(left: number) {\n if (isNumber(left)) {\n const scrollLeft = left - this.mainContainer.clientWidth / 2;\n this.mainContainer.scrollLeft = scrollLeft > scrollThreshold ? scrollLeft : 0;\n this.calendarOverlay.scrollLeft = this.mainContainer.scrollLeft;\n }\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n}\n","import { Injectable, EventEmitter } from '@angular/core';\nimport { GanttDragEvent, GanttLinkDragEvent } from './class/event';\nimport { GanttItemInternal } from './class/item';\n\nexport type LinkDragFrom = 'source' | 'target';\n\n@Injectable()\nexport class GanttDragContainer {\n dragStarted = new EventEmitter<GanttDragEvent>();\n\n dragEnded = new EventEmitter<GanttDragEvent>();\n\n linkDragStarted = new EventEmitter<GanttLinkDragEvent>();\n\n linkDragEntered = new EventEmitter<GanttLinkDragEvent>();\n\n linkDragEnded = new EventEmitter<GanttLinkDragEvent>();\n\n linkDraggingId: string;\n\n private linkDragSource: GanttItemInternal;\n\n private linkDragTarget: GanttItemInternal;\n\n private linkDragFrom: LinkDragFrom;\n\n constructor() {}\n\n emitLinkDragStarted(from: LinkDragFrom, item: GanttItemInternal) {\n this.linkDraggingId = item.id;\n this.linkDragFrom = from;\n this.linkDragSource = this.linkDragFrom === 'source' ? item : null;\n this.linkDragTarget = this.linkDragFrom === 'target' ? item : null;\n this.linkDragStarted.emit({\n source: this.linkDragSource && this.linkDragSource.origin,\n target: this.linkDragTarget && this.linkDragTarget.origin\n });\n }\n\n emitLinkDragEntered(item: GanttItemInternal) {\n if (this.linkDragFrom === 'source') {\n this.linkDragTarget = item;\n } else {\n this.linkDragSource = item;\n }\n this.linkDragEntered.emit({\n source: this.linkDragSource.origin,\n target: this.linkDragTarget.origin\n });\n }\n\n emitLinkDragLeaved() {\n if (this.linkDragFrom === 'source') {\n this.linkDragTarget = null;\n } else {\n this.linkDragSource = null;\n }\n }\n\n emitLinkDragEnded() {\n this.linkDraggingId = null;\n if (this.linkDragSource && this.linkDragTarget) {\n this.linkDragSource.addLink(this.linkDragTarget.id);\n\n this.linkDragEnded.emit({\n source: this.linkDragSource.origin,\n target: this.linkDragTarget.origin\n });\n }\n this.linkDragSource = null;\n this.linkDragTarget = null;\n }\n}\n","import { Injectable, ElementRef, OnDestroy, NgZone } from '@angular/core';\nimport { DragRef, DragDrop } from '@angular/cdk/drag-drop';\nimport { GanttDomService } from '../../gantt-dom.service';\nimport { GanttDragContainer } from '../../gantt-drag-container';\nimport { GanttItemInternal } from '../../class/item';\nimport { GanttDate, differenceInCalendarDays } from '../../utils/date';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { GanttUpper } from '../../gantt-upper';\n\nconst dragMinWidth = 10;\nconst activeClass = 'gantt-bar-active';\nconst linkDropClass = 'gantt-bar-link-drop';\n\nfunction createSvgElement(qualifiedName: string, className: string) {\n const element = document.createElementNS('http://www.w3.org/2000/svg', qualifiedName);\n element.classList.add(className);\n return element;\n}\n\n@Injectable()\nexport class GanttBarDrag implements OnDestroy {\n private ganttUpper: GanttUpper;\n\n private barElement: HTMLElement;\n\n private item: GanttItemInternal;\n\n private get dragDisabled() {\n return !this.item.draggable || !this.ganttUpper.draggable;\n }\n\n private get linkDragDisabled() {\n return !this.item.linkable || !this.ganttUpper.linkable;\n }\n\n private linkDraggingLine: SVGElement;\n\n private barDragRef: DragRef;\n\n private dragRefs: DragRef[] = [];\n\n private destroy$ = new Subject();\n\n constructor(private dragDrop: DragDrop, private dom: GanttDomService, private dragContainer: GanttDragContainer) {}\n\n private createMouseEvents() {\n fromEvent(this.barElement, 'mouseenter')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.dragContainer.linkDraggingId && this.dragContainer.linkDraggingId !== this.item.id) {\n if (this.item.linkable) {\n this.barElement.classList.add(linkDropClass);\n this.dragContainer.emitLinkDragEntered(this.item);\n }\n } else {\n this.barElement.classList.add(activeClass);\n }\n });\n\n fromEvent(this.barElement, 'mouseleave')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (!this.dragContainer.linkDraggingId) {\n this.barElement.classList.remove(activeClass);\n } else {\n this.dragContainer.emitLinkDragLeaved();\n }\n this.barElement.classList.remove(linkDropClass);\n });\n }\n\n private createBarDrag() {\n const dragRef = this.dragDrop.createDrag(this.barElement);\n dragRef.lockAxis = 'x';\n dragRef.started.subscribe(() => {\n this.setDraggingStyles();\n this.dragContainer.dragStarted.emit({ item: this.item.origin });\n });\n dragRef.moved.subscribe((event) => {\n const x = this.item.refs.x + event.distance.x;\n const days = differenceInCalendarDays(this.item.end.value, this.item.start.value);\n const start = this.ganttUpper.view.getDateByXPoint(x);\n const end = start.addDays(days);\n this.openDragBackdrop(this.barElement, this.ganttUpper.view.getDateByXPoint(x), end);\n });\n dragRef.ended.subscribe((event) => {\n const days = differenceInCalendarDays(this.item.end.value, this.item.start.value);\n const start = this.ganttUpper.view.getDateByXPoint(this.item.refs.x + event.distance.x);\n const end = start.addDays(days);\n this.item.updateDate(start, end);\n this.clearDraggingStyles();\n this.closeDragBackdrop();\n event.source.reset();\n this.dragContainer.dragEnded.emit({ item: this.item.origin });\n });\n this.barDragRef = dragRef;\n return dragRef;\n }\n\n private createBarHandleDrags() {\n const dragRefs = [];\n const handles = this.barElement.querySelectorAll<HTMLElement>('.drag-handles .handle');\n handles.forEach((handle, index) => {\n const isBefore = index === 0;\n const dragRef = this.dragDrop.createDrag(handle);\n dragRef.lockAxis = 'x';\n dragRef.withBoundaryElement(this.dom.root as HTMLElement);\n\n dragRef.started.subscribe(() => {\n this.setDraggingStyles();\n this.dragContainer.dragStarted.emit({ item: this.item.origin });\n });\n\n dragRef.moved.subscribe((event) => {\n if (isBefore) {\n const x = this.item.refs.x + event.distance.x;\n const width = this.item.refs.width + event.distance.x * -1;\n if (width > dragMinWidth) {\n this.barElement.style.width = width + 'px';\n this.barElement.style.left = x + 'px';\n this.openDragBackdrop(\n this.barElement,\n this.ganttUpper.view.getDateByXPoint(x),\n this.ganttUpper.view.getDateByXPoint(x + width)\n );\n }\n } else {\n const width = this.item.refs.width + event.distance.x;\n if (width > dragMinWidth) {\n this.barElement.style.width = width + 'px';\n this.openDragBackdrop(\n this.barElement,\n this.ganttUpper.view.getDateByXPoint(this.item.refs.x),\n this.ganttUpper.view.getDateByXPoint(this.item.refs.x + width)\n );\n }\n }\n event.source.reset();\n });\n\n dragRef.ended.subscribe((event) => {\n if (isBefore) {\n const width = this.item.refs.width + event.distance.x * -1;\n if (width > dragMinWidth) {\n this.item.updateDate(this.ganttUpper.view.getDateByXPoint(this.item.refs.x + event.distance.x), this.item.end);\n } else {\n this.item.updateDate(this.item.end.startOfDay(), this.item.end);\n }\n } else {\n const width = this.item.refs.width + event.distance.x;\n if (width > dragMinWidth) {\n this.item.updateDate(\n this.item.start,\n this.ganttUpper.view.getDateByXPoint(this.item.refs.x + this.item.refs.width + event.distance.x)\n );\n } else {\n this.item.updateDate(this.item.start, this.item.start.endOfDay());\n }\n }\n this.clearDraggingStyles();\n this.closeDragBackdrop();\n this.dragContainer.dragEnded.emit({ item: this.item.origin });\n });\n dragRefs.push(dragRef);\n });\n return dragRefs;\n }\n\n private createLinkHandleDrags() {\n const dragRefs = [];\n const handles = this.barElement.querySelectorAll<HTMLElement>('.link-handles .handle');\n handles.forEach((handle, index) => {\n const isBefore = index === 0;\n const dragRef = this.dragDrop.createDrag(handle);\n dragRef.withBoundaryElement(this.dom.root as HTMLElement);\n dragRef.beforeStarted.subscribe(() => {\n handle.style.pointerEvents = 'none';\n if (this.barDragRef) {\n this.barDragRef.disabled = true;\n }\n this.createLinkDraggingLine();\n this.dragContainer.emitLinkDragStarted(isBefore ? 'target' : 'source', this.item);\n });\n\n dragRef.moved.subscribe(() => {\n const positions = this.calcLinkLinePositions(handle, isBefore);\n this.linkDraggingLine.setAttribute('x1', positions.x1.toString());\n this.linkDraggingLine.setAttribute('y1', positions.y1.toString());\n this.linkDraggingLine.setAttribute('x2', positions.x2.toString());\n this.linkDraggingLine.setAttribute('y2', positions.y2.toString());\n });\n\n dragRef.ended.subscribe((event) => {\n event.source.reset();\n handle.style.pointerEvents = '';\n if (this.barDragRef) {\n this.barDragRef.disabled = false;\n }\n this.barElement.classList.remove(activeClass);\n this.destroyLinkDraggingLine();\n this.dragContainer.emitLinkDragEnded();\n });\n\n dragRefs.push(dragRef);\n });\n return dragRefs;\n }\n\n private openDragBackdrop(dragElement: HTMLElement, start: GanttDate, end: GanttDate) {\n const dragMaskElement = this.dom.root.querySelector('.gantt-drag-mask') as HTMLElement;\n const dragBackdropElement = this.dom.root.querySelector('.gantt-drag-backdrop') as HTMLElement;\n const rootRect = this.dom.root.getBoundingClientRect();\n const dragRect = dragElement.getBoundingClientRect();\n const left = dragRect.left - rootRect.left - this.dom.side.clientWidth;\n const width = dragRect.right - dragRect.left;\n dragMaskElement.style.left = left + 'px';\n dragMaskElement.style.width = width + 'px';\n dragMaskElement.querySelector('.start').innerHTML = start.format('MM-dd');\n dragMaskElement.querySelector('.end').innerHTML = end.format('MM-dd');\n dragMaskElement.style.display = 'block';\n dragBackdropElement.style.display = 'block';\n }\n\n private closeDragBackdrop() {\n const dragMaskElement = this.dom.root.querySelector('.gantt-drag-mask') as HTMLElement;\n const dragBackdropElement = this.dom.root.querySelector('.gantt-drag-backdrop') as HTMLElement;\n dragMaskElement.style.display = 'none';\n dragBackdropElement.style.display = 'none';\n }\n\n private setDraggingStyles() {\n this.barElement.style.pointerEvents = 'none';\n this.barElement.classList.add('gantt-bar-draggable-drag');\n }\n\n private clearDraggingStyles() {\n this.barElement.style.pointerEvents = '';\n this.barElement.classList.remove('gantt-bar-draggable-drag');\n }\n\n private calcLinkLinePositions(target: HTMLElement, isBefore: boolean) {\n const rootRect = this.dom.root.getBoundingClientRect();\n const targetRect = target.getBoundingClientRect();\n const layerRect = target.parentElement.parentElement.getBoundingClientRect();\n return {\n x1: layerRect.left + (isBefore ? 0 : layerRect.width) - rootRect.left,\n y1: layerRect.top + layerRect.height / 2 - rootRect.top,\n x2: targetRect.left - rootRect.left + targetRect.width / 2,\n y2: targetRect.top - rootRect.top + targetRect.height / 2\n };\n }\n\n private createLinkDraggingLine() {\n if (!this.linkDraggingLine) {\n const svgElement = createSvgElement('svg', 'gantt-link-drag-container');\n const linElement = createSvgElement('line', 'link-dragging-line');\n svgElement.appendChild(linElement);\n this.dom.root.appendChild(svgElement);\n this.linkDraggingLine = linElement;\n }\n }\n\n private destroyLinkDraggingLine() {\n if (this.linkDraggingLine) {\n this.linkDraggingLine.parentElement.remove();\n this.linkDraggingLine = null;\n }\n }\n\n createDrags(elementRef: ElementRef, item: GanttItemInternal, ganttUpper: GanttUpper) {\n this.item = item;\n this.barElement = elementRef.nativeElement;\n this.ganttUpper = ganttUpper;\n\n if (!item.draggable || (this.dragDisabled && this.linkDragDisabled)) {\n return;\n } else {\n this.createMouseEvents();\n if (!this.dragDisabled) {\n const dragRef = this.createBarDrag();\n const dragHandlesRefs = this.createBarHandleDrags();\n this.dragRefs.push(dragRef, ...dragHandlesRefs);\n }\n if (!this.linkDragDisabled) {\n const linkDragRefs = this.createLinkHandleDrags();\n this.dragRefs.push(...linkDragRefs);\n }\n }\n }\n\n ngOnDestroy() {\n this.closeDragBackdrop();\n this.dragRefs.forEach((dragRef) => dragRef.dispose());\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { Input, ElementRef, Inject, TemplateRef, Directive } from '@angular/core';\nimport { GanttItemInternal, GanttItemType } from './class';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { rangeHeight } from './gantt.styles';\nimport { GANTT_UPPER_TOKEN, GanttUpper } from './gantt-upper';\n\n@Directive()\nexport abstract class GanttItemUpper {\n @Input() template: TemplateRef<any>;\n\n @Input() item: GanttItemInternal;\n\n public firstChange = true;\n\n public unsubscribe$ = new Subject();\n\n constructor(protected elementRef: ElementRef<HTMLElement>, @Inject(GANTT_UPPER_TOKEN) protected ganttUpper: GanttUpper) {}\n\n onInit() {\n this.firstChange = false;\n this.item.refs$.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n this.setPositions();\n });\n }\n\n onChanges(): void {\n if (!this.firstChange) {\n this.setPositions();\n }\n }\n\n private setPositions() {\n const itemElement = this.elementRef.nativeElement;\n itemElement.style.left = this.item.refs.x + 'px';\n itemElement.style.top = this.item.refs.y + 'px';\n itemElement.style.width = this.item.refs.width + 'px';\n if (this.item.type === GanttItemType.bar) {\n itemElement.style.height = this.ganttUpper.styles.barHeight + 'px';\n } else if (this.item.type === GanttItemType.range) {\n itemElement.style.height = rangeHeight + 'px';\n } else {\n }\n }\n\n onDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n TemplateRef,\n HostBinding,\n ElementRef,\n OnChanges,\n OnDestroy,\n Inject,\n ViewChild,\n Output,\n EventEmitter,\n AfterViewInit\n} from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { GanttBarDrag } from './bar-drag';\nimport { hexToRgb } from '../../utils/helpers';\nimport { GanttDragContainer } from '../../gantt-drag-container';\nimport { barBackground } from '../../gantt.styles';\nimport { GanttBarClickEvent } from '../../class';\nimport { GANTT_UPPER_TOKEN, GanttUpper } from '../../gantt-upper';\nimport { GanttItemUpper } from '../../gantt-item-upper';\n\nfunction linearGradient(sideOrCorner: string, color: string, stop: string) {\n return `linear-gradient(${sideOrCorner},${color} 0%,${stop} 40%)`;\n}\n\n@Component({\n selector: 'ngx-gantt-bar,gantt-bar',\n templateUrl: './bar.component.html',\n providers: [GanttBarDrag]\n})\nexport class NgxGanttBarComponent extends GanttItemUpper implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n @Output() barClick = new EventEmitter<GanttBarClickEvent>();\n\n @ViewChild('content') contentElementRef: ElementRef<HTMLDivElement>;\n\n @HostBinding('class.gantt-bar') ganttItemClass = true;\n\n color = 'red';\n\n constructor(\n private dragContainer: GanttDragContainer,\n private drag: GanttBarDrag,\n elementRef: ElementRef<HTMLDivElement>,\n @Inject(GANTT_UPPER_TOKEN) public ganttUpper: GanttUpper\n ) {\n super(elementRef, ganttUpper);\n }\n\n ngOnInit() {\n super.onInit();\n this.dragContainer.dragEnded.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n this.setContentBackground();\n });\n }\n\n ngAfterViewInit() {\n this.drag.createDrags(this.elementRef, this.item, this.ganttUpper);\n this.setContentBackground();\n }\n\n ngOnChanges(): void {\n super.onChanges();\n }\n\n onBarClick(event: Event) {\n this.barClick.emit({ event, item: this.item.origin });\n }\n\n private setContentBackground() {\n const contentElement = this.contentElementRef.nativeElement;\n const color = this.item.color || barBackground;\n const style: Partial<CSSStyleDeclaration> = this.item.barStyle || {};\n if (this.item.origin.start && this.item.origin.end) {\n style.background = color;\n style.borderRadius = '';\n }\n if (this.item.origin.start && !this.item.origin.end) {\n style.background = linearGradient('to left', hexToRgb(color, 0.55), hexToRgb(color, 1));\n style.borderRadius = '4px 12.5px 12.5px 4px';\n }\n if (!this.item.origin.start && this.item.origin.end) {\n style.background = linearGradient('to right', hexToRgb(color, 0.55), hexToRgb(color, 1));\n style.borderRadius = '12.5px 4px 4px 12.5px';\n }\n if (this.item.progress >= 0) {\n const contentProgressElement = contentElement.querySelector('.gantt-bar-content-progress') as HTMLDivElement;\n style.background = hexToRgb(color, 0.3);\n style.borderRadius = '';\n contentProgressElement.style.background = color;\n }\n\n for (const key in style) {\n if (style.hasOwnProperty(key)) {\n contentElement.style[key] = style[key];\n }\n }\n }\n\n stopPropagation(event: Event) {\n event.stopPropagation();\n }\n\n ngOnDestroy() {\n super.onDestroy();\n }\n}\n","import { Component, OnInit, HostBinding, Inject, Input, TemplateRef, Output, EventEmitter } from '@angular/core';\nimport { GanttGroupInternal, GanttItemInternal, GanttBarClickEvent, GanttLineClickEvent } from '../../class';\nimport { GANTT_UPPER_TOKEN, GanttUpper } from '../../gantt-upper';\n\n@Component({\n selector: 'gantt-main',\n templateUrl: './gantt-main.component.html'\n})\nexport class GanttMainComponent implements OnInit {\n @Input() groups: GanttGroupInternal[];\n\n @Input() items: GanttItemInternal[];\n\n @Input() groupHeaderTemplate: TemplateRef<any>;\n\n @Input() itemTemplate: TemplateRef<any>;\n\n @Input() barTemplate: TemplateRef<any>;\n\n @Input() rangeTemplate: TemplateRef<any>;\n\n @Output() barClick = new EventEmitter<GanttBarClickEvent>();\n\n @Output() lineClick = new EventEmitter<GanttLineClickEvent>();\n\n @HostBinding('class.gantt-main-container') ganttMainClass = true;\n\n constructor(@Inject(GANTT_UPPER_TOKEN) public ganttUpper: GanttUpper) {}\n\n ngOnInit() {}\n\n trackBy(item: GanttGroupInternal | GanttItemInternal, index: number) {\n return item.id || index;\n }\n}\n","const angleRight = `<svg xmlns=\"http://www.w3.org/2000/svg\" fit=\"\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\"><g id=\"amnavigation/angle-right\" stroke-width=\"1\" fill-rule=\"evenodd\"><path d=\"M7.978 11.498l-.005.005L2.3 5.831 3.13 5l4.848 4.848L12.826 5l.83.831-5.673 5.672-.005-.005z\" transform=\"rotate(-90 7.978 8.252)\"></path></g></svg>`;\nconst angleDown = `<svg xmlns=\"http://www.w3.org/2000/svg\" fit=\"\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\"><g id=\"aknavigation/angle-down\" stroke-width=\"1\" fill-rule=\"evenodd\"><path d=\"M7.978 11.997l-.005.006L2.3 6.33l.83-.831 4.848 4.848L12.826 5.5l.83.83-5.673 5.673-.005-.006z\" ></path></g></svg>`;\nconst plusSquare = `<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" fit=\"\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\"><g id=\"kxaction/plus-square\" stroke-width=\"1\" fill-rule=\"evenodd\"><path d=\"M2 0h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2zm0 1.2a.8.8 0 0 0-.8.8v12a.8.8 0 0 0 .8.8h12a.8.8 0 0 0 .8-.8V2a.8.8 0 0 0-.8-.8H2zm5.45 6.2V4.75h1.2V7.4h2.65v1.2H8.65v2.65h-1.2V8.6H4.8V7.4h2.65z\"></path></g></svg>`;\nconst minusSquare = `<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" fit=\"\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\"><g id=\"jnaction/minus-square\" stroke-width=\"1\" fill-rule=\"evenodd\"><path d=\"M2 0h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2zm0 1.2a.8.8 0 0 0-.8.8v12a.8.8 0 0 0 .8.8h12a.8.8 0 0 0 .8-.8V2a.8.8 0 0 0-.8-.8H2zm2.8 6.2h6.5v1.2H4.8V7.4z\"></path></g></svg>`;\nconst loadingIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 50 50\" style=\"enable-background:new 0 0 50 50\" xml:space=\"preserve\">\n<path fill=\"#aaa\" d=\"M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z\" transform=\"rotate(275.098 25 25)\">\n <animateTransform attributeType=\"xml\" attributeName=\"transform\" type=\"rotate\" from=\"0 25 25\" to=\"360 25 25\" dur=\"0.6s\" repeatCount=\"indefinite\"></animateTransform>\n</path>\n</svg>`;\nconst emptyIcon = `<svg\nwidth=\"148px\"\nheight=\"134px\"\nviewBox=\"0 0 148 134\"\nversion=\"1.1\"\nxmlns=\"http://www.w3.org/2000/svg\"\nxmlns:xlink=\"http://www.w3.org/1999/xlink\"\n>\n<defs>\n <filter x=\"0.0%\" y=\"0.0%\" width=\"100.0%\" height=\"100.0%\" filterUnits=\"objectBoundingBox\" id=\"filter-1\">\n <feGaussianBlur stdDeviation=\"0\" in=\"SourceGraphic\"></feGaussianBlur>\n </filter>\n</defs>\n<g id=\"148x134\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g id=\"编组-6\" transform=\"translate(1.000000, 1.000000)\">\n <ellipse\n id=\"椭圆形\"\n fill=\"#EDEEF2\"\n opacity=\"0.3\"\n filter=\"url(#filter-1)\"\n cx=\"73.0800017\"\n cy=\"115.920003\"\n rx=\"73.0800017\"\n ry=\"16.8000004\"\n ></ellipse>\n <g id=\"编组-5\" transform=\"translate(15.120000, 0.000000)\">\n <polygon\n id=\"矩形\"\n fill=\"#E2E4E9\"\n points=\"19.2789848 49.5600011 99.1200023 48.7200011 117.600003 75.9297673 117.600003 92.313049 0 92.313049 0 75.0356267\"\n ></polygon>\n <path\n d=\"M23.5200005,0 L94.0800002,0 C97.7913538,2.06413823e-16 100.8,3.00864655 100.8,6.72000015 L100.8,99.1200023 L100.8,99.1200023 L16.8000004,99.1200023 L16.8000004,6.72000015 C16.8000004,3.00864655 19.8086469,1.56994302e-15 23.5200005,0 Z\"\n id=\"矩形\"\n fill=\"#F9FAFB\"\n ></path>\n <path\n d=\"M30.9200007,12.4400003 L86.6800019,12.4400003 C88.5356787,12.4400003 90.040002,13.9443236 90.040002,15.8000004 L90.040002,42.000001 C90.040002,43.8556778 88.5356787,45.360001 86.6800019,45.360001 L30.9200007,45.360001 C29.0643239,45.360001 27.5600006,43.8556778 27.5600006,42.000001 L27.5600006,15.8000004 C27.5600006,13.9443236 29.0643239,12.4400003 30.9200007,12.4400003 Z\"\n id=\"矩形\"\n fill=\"#E8EAEE\"\n ></path>\n <text\n id=\"&lt;/null&gt;\"\n font-family=\"PingFangSC-Medium, PingFang SC\"\n font-size=\"15.1200003\"\n font-weight=\"400\"\n fill=\"#BCBECD\"\n >\n <tspan x=\"33.6000008\" y=\"32.8000004\">&lt;/null&gt;</tspan>\n </text>\n <rect id=\"矩形\" fill=\"#E8EAEE\" x=\"27.5600006\" y=\"52.0800012\" width=\"61.4800014\" height=\"5.04000011\" rx=\"2.52000006\"></rect>\n <rect\n id=\"矩形备份\"\n fill=\"#E8EAEE\"\n x=\"27.5600006\"\n y=\"63.8400014\"\n width=\"61.4800014\"\n height=\"5.04000011\"\n rx=\"2.52000006\"\n ></rect>\n <path\n d=\"M0,75.6000017 L29.280235,75.6000017 C32.0637502,75.6000017 34.3202352,77.8564866 34.3202352,80.6400018 L34.3202352,86.2591426 C34.3202352,89.0426578 36.5767201,91.2991427 39.3602353,91.2991427 L78.4136737,91.2991427 C81.1971889,91.2991427 83.4536738,89.0426578 83.4536738,86.2591426 L83.4536738,80.6400018 C83.4536738,77.8564866 85.7101587,75.6000017 88.4936739,75.6000017 L117.600003,75.6000017 L117.600003,75.6000017 L117.600003,110.880003 C117.600003,115.519195 113.839194,119.280003 109.200002,119.280003 L8.40000019,119.280003 C3.76080819,119.280003 -6.53729019e-15,115.519195 0,110.880003 L0,75.6000017 L0,75.6000017 Z\"\n id=\"矩形\"\n fill=\"#EDEFF2\"\n ></path>\n </g>\n </g>\n</g>\n</svg>`;\nexport const icons = {\n 'angle-right': angleRight,\n 'angle-down': angleDown,\n 'plus-square': plusSquare,\n 'minus-square': minusSquare,\n loading: loadingIcon,\n empty: emptyIcon\n};\n","import { Component, OnInit, Input, AfterViewInit, ElementRef, HostBinding } from '@angular/core';\nimport { icons } from './icons';\n@Component({\n selector: 'gantt-icon',\n template: ''\n})\nexport class GanttIconComponent implements OnInit, AfterViewInit {\n @HostBinding('class.gantt-icon') isIcon = true;\n\n @Input() set iconName(name: string) {\n this.setSvg(name);\n }\n\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n ngOnInit(): void {}\n\n ngAfterViewInit() {}\n\n setSvg(name: string) {\n const iconSvg = icons[name];\n if (iconSvg) {\n this.elementRef.nativeElement.innerHTML = iconSvg;\n } else {\n this.elementRef.nativeElement.innerHTML = '';\n }\n }\n}\n","import { Component, OnInit, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'gantt-drag-backdrop',\n templateUrl: `./drag-backdrop.component.html`\n})\nexport class GanttDragBackdropComponent implements OnInit {\n @HostBinding('class.gantt-drag-backdrop') backdropClass = true;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n HostBinding,\n Inject,\n ChangeDetectorRef,\n ElementRef,\n OnDestroy,\n OnChanges\n} from '@angular/core';\nimport { merge, Subject } from 'rxjs';\nimport { takeUntil, skip } from 'rxjs/operators';\nimport { GanttGroupInternal } from '../../class/group';\nimport { GanttItemInternal, GanttItem } from './../../class/item';\nimport { GanttLineClickEvent } from '../../class/event';\nimport { GanttDragContainer } from '../../gantt-drag-container';\nimport { recursiveItems } from '../../utils/helpers';\nimport { GanttDate } from '../../utils/date';\nimport { GANTT_UPPER_TOKEN, GanttUpper } from '../../gantt-upper';\n\nenum LinkColors {\n default = '#cacaca',\n blocked = '#FF7575',\n active = '#348FE4'\n}\n\ninterface GanttLinkItem {\n id: string;\n before: { x: number; y: number };\n after: { x: number; y: number };\n start: GanttDate;\n end: GanttDate;\n origin: GanttItem;\n links: string[];\n}\n\ninterface LinkInternal {\n path: string;\n source: GanttItem;\n target: GanttItem;\n color: LinkColors;\n}\n\n@Component({\n selector: 'gantt-links-overlay',\n templateUrl: './links.component.html'\n})\nexport class GanttLinksComponent implements OnInit, OnChanges, OnDestroy {\n @Input() groups: GanttGroupInternal[] = [];\n\n @Input() items: GanttItemInternal[] = [];\n\n @Output() lineClick = new EventEmitter<GanttLineClickEvent>();\n\n public links: LinkInternal[] = [];\n\n private linkItems: GanttLinkItem[] = [];\n\n private bezierWeight = -0.5;\n\n private firstChange = true;\n\n private unsubscribe$ = new Subject();\n\n @HostBinding('class.gantt-links-overlay') ganttLinksOverlay = true;\n\n constructor(\n @Inject(GANTT_UPPER_TOKEN) public ganttUpper: GanttUpper,\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef,\n private ganttDragContainer: GanttDragContainer\n ) {}\n\n ngOnInit() {\n this.buildLinks();\n this.firstChange = false;\n\n this.ganttDragContainer.dragStarted.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n this.elementRef.nativeElement.style.visibility = 'hidden';\n });\n\n merge(\n this.ganttUpper.viewChange,\n this.ganttUpper.expandChange,\n this.ganttUpper.view.start$,\n this.ganttUpper.dragEnded,\n this.ganttUpper.linkDragEnded\n )\n .pipe(takeUntil(this.unsubscribe$), skip(1))\n .subscribe(() => {\n this.elementRef.nativeElement.style.visibility = 'visible';\n this.buildLinks();\n this.cdr.detectChanges();\n });\n }\n\n ngOnChanges() {\n if (!this.firstChange) {\n this.buildLinks();\n }\n }\n\n private computeItemPosition() {\n const lineHeight = this.ganttUpper.styles.lineHeight;\n const barHeight = this.ganttUpper.styles.barHeight;\n this.linkItems = [];\n if (this.groups.length > 0) {\n let itemNum = 0;\n let groupNum = 0;\n this.groups.forEach((group) => {\n groupNum++;\n if (group.expanded) {\n const items = recursiveItems(group.items);\n items.forEach((item, itemIndex) => {\n const y = (groupNum + itemNum + itemIndex) * lineHeight + item.refs.y + barHeight / 2;\n this.linkItems.push({\n ...item,\n before: {\n x: item.refs.x,\n y\n },\n after: {\n x: item.refs.x + item.refs.width,\n y\n }\n });\n });\n itemNum += items.length;\n }\n });\n } else {\n const items = recursiveItems(this.items);\n items.forEach((item, itemIndex) => {\n const y = itemIndex * lineHeight + item.refs.y + barHeight / 2;\n this.linkItems.push({\n ...item,\n before: {\n x: item.refs.x,\n y\n },\n after: {\n x: item.refs.x + item.refs.width,\n y\n }\n });\n });\n }\n }\n\n private generatePath(source: GanttLinkItem, target: GanttLinkItem) {\n if (source.before && source.after && target.before && target.after) {\n const x1 = source.after.x;\n const y1 = source.after.y;\n\n const x4 = target.before.x;\n const y4 = target.before.y;\n\n const dx = Math.abs(x4 - x1) * this.bezierWeight;\n const x2 = x1 - dx;\n const x3 = x4 + dx;\n\n const centerX = (x1 + x4) / 2;\n const centerY = (y1 + y4) / 2;\n\n let controlX = this.ganttUpper.styles.lineHeight / 2;\n const controlY = this.ganttUpper.styles.lineHeight / 2;\n\n if (x1 >= x4) {\n if (y4 > y1) {\n if (Math.abs(y4 - y1) <= this.ganttUpper.styles.lineHeight) {\n return `M ${x1} ${y1}\n C ${x1 + controlX} ${y1} ${x1 + controlX} ${y1 + controlX} ${x1} ${y1 + controlY}\n L ${x1} ${y1 + controlY} ${centerX} ${centerY}\n\n M ${x4} ${y4}\n C ${x4 - controlX} ${y4} ${x4 - controlX} ${y4 - controlX} ${x4} ${y4 - controlY}\n L ${x4} ${y4 - controlY} ${centerX} ${centerY}`;\n } else {\n controlX = this.ganttUpper.styles.lineHeight;\n return `M ${x1} ${y1}\n C ${x1 + controlX} ${y1} ${x1 + controlX} ${y1 + controlX} ${centerX} ${centerY}\n\n\n M ${x4} ${y4}\n C ${x4 - controlX} ${y4} ${x4 - controlX} ${y4 - controlX} ${centerX} ${centerY}`;\n }\n } else {\n if (Math.abs(y4 - y1) <= this.ganttUpper.styles.lineHeight) {\n return `M ${x1} ${y1}\n C ${x1 + controlX} ${y1} ${x1 + controlX} ${y1 - controlX} ${x1} ${y1 - controlY}\n L ${x1} ${y1 - controlY} ${centerX} ${centerY}\n\n M ${x4} ${y4}\n C ${x4 - controlX} ${y4} ${x4 - controlX} ${y4 + controlX} ${x4} ${y4 + controlY}\n L ${x4} ${y4 + controlY} ${centerX} ${centerY}\n `;\n } else {\n controlX = this.ganttUpper.styles.lineHeight;\n return `M ${x1} ${y1}\n C ${x1 + controlX} ${y1} ${x1 + controlX} ${y1 - controlX} ${centerX} ${centerY}\n\n M ${x4} ${y4}\n C ${x4 - controlX} ${y4} ${x4 - controlX} ${y4 + controlX} ${centerX} ${centerY}`;\n }\n }\n }\n\n return `M ${x1} ${y1} C ${x2} ${y1} ${x3} ${y4} ${x4} ${y4}`;\n }\n }\n\n buildLinks() {\n this.computeItemPosition();\n this.links = [];\n this.linkItems.forEach((source) => {\n if (source.origin.start || source.origin.end) {\n source.links.forEach((linkId) => {\n const target = this.linkItems.find((item) => item.id === linkId);\n if (target && (target.origin.start || target.origin.end)) {\n this.links.push({\n path: this.generatePath(source, target),\n source: source.origin,\n target: target.origin,\n color: source.end.getTime() > target.start.getTime() ? LinkColors.blocked : LinkColors.default\n });\n }\n });\n }\n });\n }\n\n trackBy(index: number) {\n return index;\n }\n\n onLineClick(event: MouseEvent, link: LinkInternal) {\n this.lineClick.emit({\n event,\n source: link.source,\n target: link.target\n });\n }\n\n mouseEnterPath(link: LinkInternal) {\n if (link.color === LinkColors.default) {\n link.color = LinkColors.active;\n }\n }\n\n mouseLeavePath(link: LinkInternal) {\n if (link.color === LinkColors.active) {\n link.color = LinkColors.default;\n }\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n}\n","import { Injectable, ElementRef } from '@angular/core';\nimport html2canvas from 'html2canvas';\n\n@Injectable()\nexport class GanttPrintService {\n private root: HTMLElement;\n\n private mainContainer: HTMLElement;\n\n constructor() {}\n\n private setInlineStyles(targetElem: Element) {\n const svgElements = Array.from(targetElem.getElementsByTagName('svg'));\n for (const svgElement of svgElements) {\n this.recursElementChildren(svgElement);\n }\n }\n\n private recursElementChildren(node: SVGSVGElement | HTMLElement) {\n const transformProperties = [\n 'fill',\n 'color',\n 'font-size',\n 'stroke',\n 'font',\n 'text-anchor',\n 'stroke-dasharray',\n 'shape-rendering',\n 'stroke-width'\n ];\n if (!node.style) {\n return;\n }\n const styles = getComputedStyle(node);\n for (const transformProperty of transformProperties) {\n node.style[transformProperty] = styles[transformProperty];\n }\n for (const child of Array.from(node.childNodes)) {\n this.recursElementChildren(child as SVGSVGElement);\n }\n }\n\n register(root: ElementRef<HTMLElement>) {\n this.root = root.nativeElement;\n this.mainContainer = this.root.getElementsByClassName('gantt-main-container')[0] as HTMLElement;\n }\n\n print(name: string = 'download', ignoreElementClass?: string) {\n const root = this.root as HTMLElement;\n\n const mainContainer = this.mainContainer as HTMLElement;\n // set print width\n const printWidth = root.offsetWidth;\n\n // set print height\n const printHeight = root.offsetHeight - mainContainer.offsetHeight + mainContainer.scrollHeight;\n\n html2canvas(root, {\n logging: false,\n allowTaint: true,\n useCORS: true,\n width: printWidth,\n height: printHeight,\n ignoreElements: (element) => {\n if (ignoreElementClass && element.classList.contains(ignoreElementClass)) {\n return true;\n }\n if (element.classList.contains('gantt-calendar-today-overlay')) {\n return true;\n }\n },\n\n onclone: (cloneDocument: Document) => {\n const ganttClass = root.className;\n const cloneGanttDom = cloneDocument.querySelector(`.${ganttClass.replace(/\\s+/g, '.')}`) as HTMLElement;\n const cloneGanttContainerDom = cloneDocument.querySelector('.gantt-container') as HTMLElement;\n const cloneCalendarOverlay = cloneDocument.querySelector('.gantt-calendar-overlay-main') as HTMLElement;\n const cloneLinksOverlay = cloneDocument.querySelector('.gantt-links-overlay-main') as HTMLElement;\n\n // change targetDom width\n cloneGanttDom.style.width = `${printWidth}px`;\n cloneGanttDom.style.height = `${printHeight}px`;\n cloneGanttDom.style.overflow = `unset`;\n cloneGanttContainerDom.style.backgroundColor = '#fff';\n cloneCalendarOverlay.setAttribute('height', `${printHeight}`);\n cloneCalendarOverlay.setAttribute('style', `background: transparent`);\n\n if (cloneLinksOverlay) {\n cloneLinksOverlay.setAttribute('height', `${printHeight}`);\n cloneLinksOverlay.setAttribute('style', `height: ${printHeight}px`);\n }\n\n // setInlineStyles for svg\n this.setInlineStyles(cloneGanttDom);\n }\n }).then((canvas: HTMLCanvasElement) => {\n const link = document.createElement('a');\n const dataUrl = canvas.toDataURL('image/png');\n link.download = `${name}.png`;\n link.href = dataUrl;\n link.click();\n });\n }\n}\n","import {\n Component,\n OnInit,\n HostBinding,\n NgZone,\n ElementRef,\n Inject,\n ContentChild,\n TemplateRef,\n Input,\n Optional,\n AfterViewInit\n} from '@angular/core';\nimport { GanttDomService, ScrollDirection } from './gantt-dom.service';\nimport { GanttDragContainer } from './gantt-drag-container';\nimport { take, takeUntil, startWith } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { GanttUpper, GANTT_UPPER_TOKEN } from './gantt-upper';\nimport { GanttPrintService } from './gantt-print.service';\n\n@Component({\n selector: 'ngx-gantt-root',\n templateUrl: './root.component.html',\n providers: [GanttDomService, GanttDragContainer]\n})\nexport class NgxGanttRootComponent implements OnInit {\n @Input() sideWidth: number;\n\n @HostBinding('class.gantt') ganttClass = true;\n\n @ContentChild('sideTemplate', { static: true }) sideTemplate: TemplateRef<any>;\n\n @ContentChild('mainTemplate', { static: true }) mainTemplate: TemplateRef<any>;\n\n private unsubscribe$ = new Subject();\n\n private get view() {\n return this.ganttUpper.view;\n }\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private ngZone: NgZone,\n private dom: GanttDomService,\n public dragContainer: GanttDragContainer,\n @Inject(GANTT_UPPER_TOKEN) private ganttUpper: GanttUpper,\n @Optional() private printService: GanttPrintService\n ) {\n this.ganttUpper.dragContainer = dragContainer;\n }\n\n ngOnInit() {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.dom.initialize(this.elementRef);\n if (this.printService) {\n this.printService.register(this.elementRef);\n }\n this.setupScrollClass();\n this.setupResize();\n this.setupViewScroll();\n // 优化初始化时Scroll滚动体验问题,通过透明度解决,默认透明度为0,滚动结束后恢复\n this.elementRef.nativeElement.style.opacity = '1';\n this.ganttUpper.viewChange.pipe(startWith(null)).subscribe(() => {\n this.scrollToToday();\n });\n });\n }\n\n private setupViewScroll() {\n if (this.ganttUpper.disabledLoadOnScroll) {\n return;\n }\n this.dom\n .getViewerScroll()\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe((event) => {\n if (event.direction === ScrollDirection.LEFT) {\n const dates = this.view.addStartDate();\n if (dates) {\n event.target.scrollLeft += this.view.getDateRangeWidth(dates.start, dates.end);\n this.ngZone.run(() => {\n this.ganttUpper.loadOnScroll.emit({ start: dates.start.getUnixTime(), end: dates.end.getUnixTime() });\n });\n }\n }\n if (event.direction === ScrollDirection.RIGHT) {\n const dates = this.view.addEndDate();\n if (dates) {\n this.ngZone.run(() => {\n this.ganttUpper.loadOnScroll.emit({ start: dates.start.getUnixTime(), end: dates.end.getUnixTime() });\n });\n }\n }\n });\n }\n\n private setupResize() {\n this.dom\n .getResize()\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => {\n this.setupScrollClass();\n });\n }\n\n private setupScrollClass() {\n const mainContainer = this.dom.mainContainer as HTMLElement;\n const height = mainContainer.offsetHeight;\n const scrollHeight = mainContainer.scrollHeight;\n if (scrollHeight > height) {\n this.elementRef.nativeElement.className = 'gantt gantt-scroll';\n } else {\n this.elementRef.nativeElement.className = 'gantt';\n }\n }\n\n private scrollToToday() {\n const x = this.view.getTodayXPoint();\n this.dom.scrollMainContainer(x);\n }\n}\n","import { Component, OnInit, HostBinding, ElementRef, OnChanges, OnDestroy, Inject } from '@angular/core';\nimport { GANTT_UPPER_TOKEN, GanttUpper } from '../../gantt-upper';\nimport { GanttItemUpper } from '../../gantt-item-upper';\n\n@Component({\n selector: 'ngx-gantt-range,gantt-range',\n templateUrl: './range.component.html'\n})\nexport class NgxGanttRangeComponent extends GanttItemUpper implements OnInit, OnChanges, OnDestroy {\n @HostBinding('class.gantt-range') ganttRangeClass = true;\n\n constructor(elementRef: ElementRef<HTMLDivElement>, @Inject(GANTT_UPPER_TOKEN) ganttUpper: GanttUpper) {\n super(elementRef, ganttUpper);\n }\n\n ngOnInit() {\n super.onInit();\n }\n\n ngOnChanges(): void {\n super.onChanges();\n }\n\n ngOnDestroy() {\n super.onDestroy();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { GanttItemType } from './class';\n\n@Pipe({\n name: 'isGanttRangeItem'\n})\nexport class IsGanttRangeItemPipe implements PipeTransform {\n transform(value: GanttItemType) {\n return value === GanttItemType.range;\n }\n}\n\n\n@Pipe({\n name: 'isGanttBarItem'\n})\nexport class IsGanttBarItemPipe implements PipeTransform {\n transform(value: GanttItemType) {\n return value === GanttItemType.bar;\n }\n}\n\n\n@Pipe({\n name: 'isGanttCustomItem'\n})\nexport class IsGanttCustomItemPipe implements PipeTransform {\n transform(value: GanttItemType) {\n return value === GanttItemType.custom;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgxGanttComponent } from './gantt.component';\nimport { NgxGanttTableComponent } from './table/gantt-table.component';\nimport { NgxGanttTableColumnComponent } from './table/gantt-column.component';\nimport { GanttCalendarComponent } from './components/calendar/calendar.component';\nimport { GanttTableComponent } from './components/table/gantt-table.component';\nimport { NgxGanttBarComponent } from './components/bar/bar.component';\nimport { GanttMainComponent } from './components/main/gantt-main.component';\nimport { GanttIconComponent } from './components/icon/icon.component';\nimport { GanttDragBackdropComponent } from './components/drag-backdrop/drag-backdrop.component';\nimport { GanttLinksComponent } from './components/links/links.component';\nimport { NgxGanttRootComponent } from './root.component';\nimport { NgxGanttRangeComponent } from './components/range/range.component';\nimport { IsGanttRangeItemPipe, IsGanttBarItemPipe, IsGanttCustomItemPipe } from './gantt.pipe';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\n@NgModule({\n imports: [CommonModule, DragDropModule],\n exports: [NgxGanttComponent, NgxGanttTableComponent, NgxGanttTableColumnComponent, NgxGanttRootComponent, NgxGanttBarComponent],\n declarations: [\n NgxGanttComponent,\n NgxGanttTableComponent,\n NgxGanttTableColumnComponent,\n GanttTableComponent,\n GanttMainComponent,\n GanttCalendarComponent,\n GanttLinksComponent,\n NgxGanttBarComponent,\n GanttIconComponent,\n GanttDragBackdropComponent,\n NgxGanttRangeComponent,\n NgxGanttRootComponent,\n IsGanttRangeItemPipe,\n IsGanttBarItemPipe,\n IsGanttCustomItemPipe\n ],\n providers: []\n})\nexport class NgxGanttModule {}\n","/*\n * Public API Surface of gantt\n */\n\nexport * from './gantt.module';\nexport * from './gantt-upper';\nexport * from './root.component';\nexport * from './gantt.component';\nexport * from './table/gantt-table.component';\nexport * from './table/gantt-column.component';\nexport * from './utils/date';\nexport * from './class';\nexport * from './views/view';\nexport * from './gantt-item-upper';\nexport * from './gantt.pipe';\nexport * from './gantt-print.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {GanttBarDrag as ɵd} from './components/bar/bar-drag';\nexport {NgxGanttBarComponent as ɵc} from './components/bar/bar.component';\nexport {GanttCalendarComponent as ɵg} from './components/calendar/calendar.component';\nexport {GanttDragBackdropComponent as ɵj} from './components/drag-backdrop/drag-backdrop.component';\nexport {GanttIconComponent as ɵi} from './components/icon/icon.component';\nexport {GanttLinksComponent as ɵh} from './components/links/links.component';\nexport {GanttMainComponent as ɵf} from './components/main/gantt-main.component';\nexport {NgxGanttRangeComponent as ɵk} from './components/range/range.component';\nexport {GanttTableComponent as ɵe} from './components/table/gantt-table.component';\nexport {GanttDomService as ɵa} from './gantt-dom.service';\nexport {GanttDragContainer as ɵb} from './gantt-drag-container';"],"names":["fromUnixTime","getWeek","getDaysInMonth","differenceInCalendarDays","setDate","addSeconds","addMinutes","addHours","addDays","addWeeks","addMonths","addQuarters","addYears","startOfDay","startOfWeek","startOfMonth","startOfQuarter","startOfYear","endOfDay","endOfWeek","endOfMonth","endOfQuarter","endOfYear","getUnixTime","format","isWeekend","isToday","GanttViewType","GanttItemType","BehaviorSubject","viewOptions","differenceInDays","differenceInCalendarQuarters","eachMonthOfInterval","eachYearOfInterval","eachWeekOfInterval","eachDayOfInterval","differenceInCalendarYears","EventEmitter","Subject","take","skip","takeUntil","Directive","ElementRef","ChangeDetectorRef","NgZone","Input","Output","ContentChild","HostBinding","InjectionToken","coerceCssPixelValue","Component","Inject","startWith","finalize","ChangeDetectionStrategy","ContentChildren","merge","ViewChild","fromEvent","map","pairwise","auditTime","Injectable","DragDrop","html2canvas","Optional","Pipe","NgModule","CommonModule","DragDropModule"],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { GanttDate } from '../utils/date';
2
- export declare class GanttDatePoint {
3
- start: GanttDate;
4
- text: string;
5
- x: number;
6
- y: number;
7
- additions?: {
8
- isWeekend: boolean;
9
- isToday: boolean;
10
- };
11
- constructor(start: GanttDate, text: string, x: number, y: number, additions?: {
12
- isWeekend: boolean;
13
- isToday: boolean;
14
- });
15
- }
package/class/group.d.ts DELETED
@@ -1,22 +0,0 @@
1
- import { GanttItemInternal } from './item';
2
- export interface GanttGroup<T = unknown> {
3
- id: string;
4
- title: string;
5
- expanded?: boolean;
6
- origin?: T;
7
- class?: string;
8
- }
9
- export declare class GanttGroupInternal {
10
- id: string;
11
- title: string;
12
- origin: GanttGroup;
13
- items: GanttItemInternal[];
14
- mergedItems: GanttItemInternal[][];
15
- expanded?: boolean;
16
- refs?: {
17
- height?: number;
18
- };
19
- class?: string;
20
- constructor(group: GanttGroup);
21
- setExpand(expanded: boolean): void;
22
- }