@timelinekit/core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/LICENSE +46 -0
  2. package/README.md +0 -0
  3. package/dist/__tests__/common/functions.test.d.ts +1 -0
  4. package/dist/__tests__/critical-path-calculator.test.d.ts +1 -0
  5. package/dist/__tests__/ganttchart/clipboard.test.d.ts +1 -0
  6. package/dist/__tests__/ganttchart/critical-path-calculator.test.d.ts +1 -0
  7. package/dist/__tests__/ganttchart/export/data-exporter.test.d.ts +1 -0
  8. package/dist/__tests__/ganttchart/model/lag.test.d.ts +1 -0
  9. package/dist/__tests__/ganttchart/model/length.test.d.ts +1 -0
  10. package/dist/__tests__/ganttchart/model/resource-list.test.d.ts +1 -0
  11. package/dist/__tests__/ganttchart/model/resource.test.d.ts +1 -0
  12. package/dist/__tests__/ganttchart/model/task-list.test.d.ts +1 -0
  13. package/dist/__tests__/ganttchart/model/task-part.test.d.ts +1 -0
  14. package/dist/__tests__/ganttchart/model/task-resource.test.d.ts +1 -0
  15. package/dist/__tests__/ganttchart/model/task-warnings.test.d.ts +1 -0
  16. package/dist/__tests__/ganttchart/model/task.test.d.ts +1 -0
  17. package/dist/__tests__/ganttchart/model/work.test.d.ts +1 -0
  18. package/dist/__tests__/ganttchart/model/working-calendar.test.d.ts +1 -0
  19. package/dist/__tests__/ganttchart/performance.test.d.ts +1 -0
  20. package/dist/__tests__/ganttchart/scroll-and-zoom.test.d.ts +1 -0
  21. package/dist/__tests__/ganttchart/task-interactions.test.d.ts +1 -0
  22. package/dist/__tests__/ganttchart/undo-manager.test.d.ts +1 -0
  23. package/dist/__tests__/licensing/features.test.d.ts +1 -0
  24. package/dist/__tests__/licensing/license-key.test.d.ts +1 -0
  25. package/dist/__tests__/licensing/license-manager.test.d.ts +1 -0
  26. package/dist/__tests__/licensing/watermark.test.d.ts +1 -0
  27. package/dist/__tests__/model/lag.test.d.ts +1 -0
  28. package/dist/__tests__/model/length.test.d.ts +1 -0
  29. package/dist/__tests__/model/resource-list.test.d.ts +1 -0
  30. package/dist/__tests__/model/resource.test.d.ts +1 -0
  31. package/dist/__tests__/model/task-list.test.d.ts +1 -0
  32. package/dist/__tests__/model/task-part.test.d.ts +1 -0
  33. package/dist/__tests__/model/task-resource.test.d.ts +1 -0
  34. package/dist/__tests__/model/task-warnings.test.d.ts +1 -0
  35. package/dist/__tests__/model/task.test.d.ts +1 -0
  36. package/dist/__tests__/model/work.test.d.ts +1 -0
  37. package/dist/__tests__/model/working-calendar.test.d.ts +1 -0
  38. package/dist/__tests__/resourcescheduler/export/scheduler-data-exporter.test.d.ts +1 -0
  39. package/dist/__tests__/resourcescheduler/model/scheduler-data.test.d.ts +1 -0
  40. package/dist/__tests__/resourcescheduler/model/scheduler-event.test.d.ts +1 -0
  41. package/dist/__tests__/resourcescheduler/model/scheduler-resource.test.d.ts +1 -0
  42. package/dist/__tests__/resourcescheduler/multi-select.test.d.ts +1 -0
  43. package/dist/__tests__/resourcescheduler/performance.test.d.ts +1 -0
  44. package/dist/__tests__/resourcescheduler/serialization.test.d.ts +1 -0
  45. package/dist/__tests__/undo-manager.test.d.ts +1 -0
  46. package/dist/common/auto-scroll.d.ts +10 -0
  47. package/dist/common/base-background-renderer.d.ts +17 -0
  48. package/dist/common/base-chart-handler.d.ts +53 -0
  49. package/dist/common/base-chart-scroll-handler.d.ts +45 -0
  50. package/dist/common/base-divider.d.ts +21 -0
  51. package/dist/common/base-header-renderer.d.ts +23 -0
  52. package/dist/common/base-image-exporter.d.ts +6 -0
  53. package/dist/common/base-markers-renderer.d.ts +15 -0
  54. package/dist/common/base-pdf-exporter.d.ts +11 -0
  55. package/dist/common/calc.d.ts +2 -0
  56. package/dist/common/class-with-listeners.d.ts +7 -0
  57. package/dist/common/common.d.ts +60 -0
  58. package/dist/common/custom-property.d.ts +12 -0
  59. package/dist/common/drawing.d.ts +2 -0
  60. package/dist/common/export-utils.d.ts +60 -0
  61. package/dist/common/functions.d.ts +25 -0
  62. package/dist/common/handler-result.d.ts +8 -0
  63. package/dist/common/scrollbar-utils.d.ts +5 -0
  64. package/dist/common/text.d.ts +24 -0
  65. package/dist/ganttchart/chart/chart-scroll-handler.d.ts +5 -0
  66. package/dist/ganttchart/chart/chart-time-axis.d.ts +32 -0
  67. package/dist/ganttchart/chart/chart.d.ts +7 -0
  68. package/dist/ganttchart/chart/handlers/add-task-part.d.ts +11 -0
  69. package/dist/ganttchart/chart/handlers/connector-dots-handler.d.ts +16 -0
  70. package/dist/ganttchart/chart/handlers/handler.d.ts +32 -0
  71. package/dist/ganttchart/chart/handlers/handlers.d.ts +14 -0
  72. package/dist/ganttchart/chart/handlers/move-milestone.d.ts +11 -0
  73. package/dist/ganttchart/chart/handlers/move-task-part.d.ts +11 -0
  74. package/dist/ganttchart/chart/handlers/resize-task-part.d.ts +11 -0
  75. package/dist/ganttchart/chart/handlers/select-link.d.ts +11 -0
  76. package/dist/ganttchart/chart/handlers/select-task.d.ts +22 -0
  77. package/dist/ganttchart/chart/handlers/set-task-progress.d.ts +11 -0
  78. package/dist/ganttchart/chart/renderers/chart-background-renderer.d.ts +8 -0
  79. package/dist/ganttchart/chart/renderers/chart-header-renderer.d.ts +7 -0
  80. package/dist/ganttchart/chart/renderers/chart-links-renderer.d.ts +7 -0
  81. package/dist/ganttchart/chart/renderers/chart-markers-renderer.d.ts +7 -0
  82. package/dist/ganttchart/chart/renderers/chart-tasks-renderer.d.ts +14 -0
  83. package/dist/ganttchart/chart/renderers/renderer-base.d.ts +9 -0
  84. package/dist/ganttchart/chart/task-link.calculator.d.ts +16 -0
  85. package/dist/ganttchart/chart/task-progress-calculator.d.ts +9 -0
  86. package/dist/ganttchart/chart/tooltip/chart-tooltip-renderer.d.ts +11 -0
  87. package/dist/ganttchart/clipboard.d.ts +32 -0
  88. package/dist/ganttchart/critical-path-calculator.d.ts +7 -0
  89. package/dist/ganttchart/divider/divider.d.ts +5 -0
  90. package/dist/ganttchart/export/data-exporter.d.ts +30 -0
  91. package/dist/ganttchart/export/export-common.d.ts +23 -0
  92. package/dist/ganttchart/export/image-exporter.d.ts +7 -0
  93. package/dist/ganttchart/export/pdf-exporter.d.ts +12 -0
  94. package/dist/ganttchart/ganttchart-engine.d.ts +172 -0
  95. package/dist/ganttchart/locale.d.ts +66 -0
  96. package/dist/ganttchart/model/custom-property.d.ts +1 -0
  97. package/dist/ganttchart/model/lag.d.ts +16 -0
  98. package/dist/ganttchart/model/length.d.ts +16 -0
  99. package/dist/ganttchart/model/marker.d.ts +7 -0
  100. package/dist/ganttchart/model/rate.d.ts +9 -0
  101. package/dist/ganttchart/model/resource-list.d.ts +16 -0
  102. package/dist/ganttchart/model/resource.d.ts +29 -0
  103. package/dist/ganttchart/model/sheet-column.d.ts +27 -0
  104. package/dist/ganttchart/model/task-filters.d.ts +14 -0
  105. package/dist/ganttchart/model/task-link.d.ts +22 -0
  106. package/dist/ganttchart/model/task-list-adapter.d.ts +28 -0
  107. package/dist/ganttchart/model/task-list.d.ts +65 -0
  108. package/dist/ganttchart/model/task-part.d.ts +39 -0
  109. package/dist/ganttchart/model/task-resource.d.ts +18 -0
  110. package/dist/ganttchart/model/task-warnings.d.ts +15 -0
  111. package/dist/ganttchart/model/task.d.ts +131 -0
  112. package/dist/ganttchart/model/work.d.ts +17 -0
  113. package/dist/ganttchart/model/working-calendar.d.ts +32 -0
  114. package/dist/ganttchart/recalculator.d.ts +6 -0
  115. package/dist/ganttchart/sheet/editors/cell-editor.d.ts +23 -0
  116. package/dist/ganttchart/sheet/editors/currency-editor.d.ts +6 -0
  117. package/dist/ganttchart/sheet/editors/date-editor.d.ts +6 -0
  118. package/dist/ganttchart/sheet/editors/decimal-editor.d.ts +6 -0
  119. package/dist/ganttchart/sheet/editors/dialog-editor.d.ts +17 -0
  120. package/dist/ganttchart/sheet/editors/input-editor.d.ts +19 -0
  121. package/dist/ganttchart/sheet/editors/integer-editor.d.ts +6 -0
  122. package/dist/ganttchart/sheet/editors/length-editor.d.ts +10 -0
  123. package/dist/ganttchart/sheet/editors/percent-editor.d.ts +6 -0
  124. package/dist/ganttchart/sheet/editors/text-editor.d.ts +5 -0
  125. package/dist/ganttchart/sheet/editors/work-editor.d.ts +7 -0
  126. package/dist/ganttchart/sheet/renderers/sheet-cell-renderer.d.ts +5 -0
  127. package/dist/ganttchart/sheet/renderers/sheet-icons-cell-renderer.d.ts +10 -0
  128. package/dist/ganttchart/sheet/renderers/sheet-name-cell-renderer.d.ts +9 -0
  129. package/dist/ganttchart/sheet/renderers/sheet-resources-cell-renderer.d.ts +9 -0
  130. package/dist/ganttchart/sheet/sheet-keyboard-navigation.d.ts +26 -0
  131. package/dist/ganttchart/sheet/sheet-rows-selection.d.ts +24 -0
  132. package/dist/ganttchart/sheet/sheet.d.ts +18 -0
  133. package/dist/ganttchart/themes/classic-theme.d.ts +4 -0
  134. package/dist/ganttchart/themes/dark-theme.d.ts +4 -0
  135. package/dist/ganttchart/themes/light-theme.d.ts +4 -0
  136. package/dist/ganttchart/themes/modern-theme.d.ts +4 -0
  137. package/dist/ganttchart/themes/theme.d.ts +129 -0
  138. package/dist/ganttchart/undo-manager.d.ts +13 -0
  139. package/dist/index.d.ts +61 -0
  140. package/dist/index.js +1 -0
  141. package/dist/licensing/features.d.ts +21 -0
  142. package/dist/licensing/license-key.d.ts +7 -0
  143. package/dist/licensing/license-manager.d.ts +13 -0
  144. package/dist/licensing/watermark.d.ts +1 -0
  145. package/dist/locales/cs.d.ts +2 -0
  146. package/dist/locales/de.d.ts +2 -0
  147. package/dist/locales/en.d.ts +1 -0
  148. package/dist/locales/es.d.ts +2 -0
  149. package/dist/locales/fr.d.ts +2 -0
  150. package/dist/locales/it.d.ts +2 -0
  151. package/dist/locales/ja.d.ts +2 -0
  152. package/dist/locales/ko.d.ts +2 -0
  153. package/dist/locales/nl.d.ts +2 -0
  154. package/dist/locales/pl.d.ts +2 -0
  155. package/dist/locales/pt.d.ts +2 -0
  156. package/dist/locales/ru.d.ts +2 -0
  157. package/dist/locales/sv.d.ts +2 -0
  158. package/dist/locales/zh.d.ts +2 -0
  159. package/dist/resourcescheduler/chart/handlers/add-event.d.ts +12 -0
  160. package/dist/resourcescheduler/chart/handlers/move-event.d.ts +12 -0
  161. package/dist/resourcescheduler/chart/handlers/resize-event.d.ts +12 -0
  162. package/dist/resourcescheduler/chart/handlers/scheduler-handler.d.ts +23 -0
  163. package/dist/resourcescheduler/chart/handlers/scheduler-handlers.d.ts +18 -0
  164. package/dist/resourcescheduler/chart/handlers/select-event.d.ts +26 -0
  165. package/dist/resourcescheduler/chart/renderers/scheduler-background-renderer.d.ts +8 -0
  166. package/dist/resourcescheduler/chart/renderers/scheduler-events-renderer.d.ts +7 -0
  167. package/dist/resourcescheduler/chart/renderers/scheduler-header-renderer.d.ts +7 -0
  168. package/dist/resourcescheduler/chart/renderers/scheduler-markers-renderer.d.ts +7 -0
  169. package/dist/resourcescheduler/chart/renderers/scheduler-renderer-base.d.ts +9 -0
  170. package/dist/resourcescheduler/chart/scheduler-chart-scroll-handler.d.ts +5 -0
  171. package/dist/resourcescheduler/chart/scheduler-chart.d.ts +9 -0
  172. package/dist/resourcescheduler/chart/tooltip/scheduler-tooltip-renderer.d.ts +13 -0
  173. package/dist/resourcescheduler/clipboard.d.ts +18 -0
  174. package/dist/resourcescheduler/divider/scheduler-divider.d.ts +5 -0
  175. package/dist/resourcescheduler/export/scheduler-data-exporter.d.ts +23 -0
  176. package/dist/resourcescheduler/export/scheduler-export-common.d.ts +15 -0
  177. package/dist/resourcescheduler/export/scheduler-image-exporter.d.ts +6 -0
  178. package/dist/resourcescheduler/export/scheduler-pdf-exporter.d.ts +12 -0
  179. package/dist/resourcescheduler/model/scheduler-data-adapter.d.ts +21 -0
  180. package/dist/resourcescheduler/model/scheduler-data.d.ts +52 -0
  181. package/dist/resourcescheduler/model/scheduler-event.d.ts +31 -0
  182. package/dist/resourcescheduler/model/scheduler-resource.d.ts +35 -0
  183. package/dist/resourcescheduler/resourcescheduler-engine.d.ts +211 -0
  184. package/dist/resourcescheduler/sheet/renderers/scheduler-icon-cell-renderer.d.ts +6 -0
  185. package/dist/resourcescheduler/sheet/scheduler-sheet.d.ts +21 -0
  186. package/dist/styles/gc.css +1 -0
  187. package/dist/table/editors/cell-editor.d.ts +23 -0
  188. package/dist/table/editors/currency-editor.d.ts +7 -0
  189. package/dist/table/editors/date-editor.d.ts +9 -0
  190. package/dist/table/editors/decimal-editor.d.ts +7 -0
  191. package/dist/table/editors/dialog-editor.d.ts +17 -0
  192. package/dist/table/editors/input-editor.d.ts +19 -0
  193. package/dist/table/editors/integer-editor.d.ts +7 -0
  194. package/dist/table/editors/percent-editor.d.ts +7 -0
  195. package/dist/table/editors/text-editor.d.ts +6 -0
  196. package/dist/table/renderers/table-cell-renderer.d.ts +8 -0
  197. package/dist/table/table-column.d.ts +32 -0
  198. package/dist/table/table-context.d.ts +49 -0
  199. package/dist/table/table-data-source.d.ts +30 -0
  200. package/dist/table/table-keyboard-navigation.d.ts +25 -0
  201. package/dist/table/table-rows-selection.d.ts +13 -0
  202. package/dist/table/table.d.ts +51 -0
  203. package/dist/table/tree-table-keyboard-navigation.d.ts +16 -0
  204. package/dist/table/tree-table.d.ts +17 -0
  205. package/package.json +99 -0
  206. package/styles/_common.scss +405 -0
  207. package/styles/gc.scss +82 -0
  208. package/styles/rs.scss +32 -0
package/package.json ADDED
@@ -0,0 +1,99 @@
1
+ {
2
+ "name": "@timelinekit/core",
3
+ "version": "1.0.0",
4
+ "license": "SEE LICENSE IN LICENSE",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./locales/cs": {
14
+ "types": "./dist/locales/cs.d.ts",
15
+ "import": "./dist/locales/cs.js"
16
+ },
17
+ "./locales/de": {
18
+ "types": "./dist/locales/de.d.ts",
19
+ "import": "./dist/locales/de.js"
20
+ },
21
+ "./locales/es": {
22
+ "types": "./dist/locales/es.d.ts",
23
+ "import": "./dist/locales/es.js"
24
+ },
25
+ "./locales/fr": {
26
+ "types": "./dist/locales/fr.d.ts",
27
+ "import": "./dist/locales/fr.js"
28
+ },
29
+ "./locales/it": {
30
+ "types": "./dist/locales/it.d.ts",
31
+ "import": "./dist/locales/it.js"
32
+ },
33
+ "./locales/ja": {
34
+ "types": "./dist/locales/ja.d.ts",
35
+ "import": "./dist/locales/ja.js"
36
+ },
37
+ "./locales/ko": {
38
+ "types": "./dist/locales/ko.d.ts",
39
+ "import": "./dist/locales/ko.js"
40
+ },
41
+ "./locales/pt": {
42
+ "types": "./dist/locales/pt.d.ts",
43
+ "import": "./dist/locales/pt.js"
44
+ },
45
+ "./locales/nl": {
46
+ "types": "./dist/locales/nl.d.ts",
47
+ "import": "./dist/locales/nl.js"
48
+ },
49
+ "./locales/pl": {
50
+ "types": "./dist/locales/pl.d.ts",
51
+ "import": "./dist/locales/pl.js"
52
+ },
53
+ "./locales/ru": {
54
+ "types": "./dist/locales/ru.d.ts",
55
+ "import": "./dist/locales/ru.js"
56
+ },
57
+ "./locales/sv": {
58
+ "types": "./dist/locales/sv.d.ts",
59
+ "import": "./dist/locales/sv.js"
60
+ },
61
+ "./locales/zh": {
62
+ "types": "./dist/locales/zh.d.ts",
63
+ "import": "./dist/locales/zh.js"
64
+ },
65
+ "./styles": "./dist/styles/gc.css",
66
+ "./styles/scss": "./styles/gc.scss"
67
+ },
68
+ "scripts": {
69
+ "build": "rollup -c && sass styles/gc.scss dist/styles/gc.css --style=compressed --no-source-map",
70
+ "dev": "tsc --watch",
71
+ "test": "vitest run",
72
+ "test:watch": "vitest"
73
+ },
74
+ "peerDependencies": {
75
+ "exceljs": "^4.4.0",
76
+ "jspdf": "^2.5.0"
77
+ },
78
+ "peerDependenciesMeta": {
79
+ "jspdf": {
80
+ "optional": true
81
+ },
82
+ "exceljs": {
83
+ "optional": true
84
+ }
85
+ },
86
+ "dependencies": {
87
+ "rxjs": "~7.8.0"
88
+ },
89
+ "devDependencies": {
90
+ "typescript": "~5.9.2",
91
+ "vitest": "^4.0.8"
92
+ },
93
+ "files": [
94
+ "dist",
95
+ "styles",
96
+ "README.md",
97
+ "LICENSE"
98
+ ]
99
+ }
@@ -0,0 +1,405 @@
1
+ .gc-host {
2
+ display: block;
3
+ height: 100%;
4
+ overflow: hidden;
5
+ }
6
+
7
+ .gc-wrapper {
8
+ width: 100%;
9
+ height: 100%;
10
+ display: flex;
11
+ gap: 0px;
12
+ color: var(--gc-sheet-text-color, #000000);
13
+ }
14
+
15
+ .gc-divider {
16
+ width: 0px;
17
+ height: 100%;
18
+ position: relative;
19
+
20
+ .resizer {
21
+ top: 0px;
22
+ bottom: 0px;
23
+ position: absolute;
24
+ right: -10px;
25
+ z-index: 30;
26
+ width: 20px;
27
+ cursor: ew-resize;
28
+ }
29
+ }
30
+
31
+ .gc-sheet {
32
+ $header-height: 50px;
33
+ $row-header-width: 30px;
34
+ $row-height: 30px;
35
+ $cell-padding: 8px;
36
+
37
+ height: 100%;
38
+ display: inline-block;
39
+
40
+ .row-header {
41
+ width: $row-header-width;
42
+ }
43
+
44
+ .header {
45
+ position: sticky;
46
+ top: 0;
47
+ z-index: 8;
48
+
49
+ height: $header-height;
50
+ border-top: 1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);
51
+ border-bottom: 1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);
52
+ border-left: 1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);
53
+ display: flex;
54
+ align-items: center;
55
+ gap: 0px;
56
+ background-color: var(--gc-sheet-header-bg-color, #f8f8f8);
57
+
58
+ .row-header {
59
+ z-index: 9;
60
+ background-color: var(--gc-sheet-header-bg-color, #f8f8f8);
61
+ }
62
+
63
+ &.reordering {
64
+ cursor: grabbing;
65
+
66
+ .cell .resizer {
67
+ cursor: grabbing;
68
+ }
69
+ }
70
+
71
+ .reorder-indicator {
72
+ position: absolute;
73
+ width: 2px;
74
+ height: 100%;
75
+ background-color: var(--gc-sheet-focus-border-color, #0078d4);
76
+ z-index: 11;
77
+ pointer-events: none;
78
+ top: 0;
79
+ }
80
+
81
+ .cell {
82
+ display: flex;
83
+ align-items: center;
84
+ border-right: 1px solid var(--gc-sheet-header-cell-divider-color, #a0a0a0);
85
+ height: $header-height;
86
+ padding-left: $cell-padding;
87
+ padding-right: $cell-padding;
88
+ position: relative;
89
+ user-select: none;
90
+
91
+ .resizer {
92
+ height: 100%;
93
+ position: absolute;
94
+ right: -10px;
95
+ z-index: 10;
96
+ width: 20px;
97
+ cursor: ew-resize;
98
+ }
99
+
100
+ &.dotted {
101
+ text-decoration: underline dotted !important;
102
+ }
103
+
104
+ &.dragging {
105
+ opacity: 0.3;
106
+ }
107
+
108
+ &.hidden {
109
+ display: none !important;
110
+ }
111
+ }
112
+ }
113
+
114
+ .content {
115
+ overflow-x: auto;
116
+ overflow-y: auto;
117
+ height: 100%;
118
+ outline: none;
119
+ background-color: var(--gc-sheet-bg-color, #ffffff);
120
+
121
+ .row {
122
+ height: $row-height;
123
+ border-bottom: 1px solid var(--gc-sheet-grid-line-color, #e0e0e0);
124
+ display: flex;
125
+ align-items: center;
126
+ gap: 0px;
127
+ background-color: var(--gc-sheet-bg-color, #ffffff);
128
+
129
+ &.hidden {
130
+ display: none;
131
+ }
132
+
133
+ .row-header {
134
+ background-color: var(--gc-sheet-header-bg-color, #f8f8f8);
135
+ border-bottom: 1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);
136
+ border-left: 1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);
137
+ border-right: 1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0) !important;
138
+ justify-content: center;
139
+ cursor: default !important;
140
+ user-select: none;
141
+ }
142
+
143
+ .cell {
144
+ display: flex;
145
+ align-items: center;
146
+ align-self: stretch;
147
+ border-right: 1px solid var(--gc-sheet-grid-line-color, #e0e0e0);
148
+ padding-left: $cell-padding;
149
+ padding-right: $cell-padding;
150
+ overflow-x: hidden;
151
+ white-space: nowrap;
152
+ user-select: none;
153
+ position: relative;
154
+
155
+ &.row-header {
156
+ position: sticky;
157
+ left: 0;
158
+ z-index: 2;
159
+ }
160
+
161
+ .editor {
162
+ height: calc($row-height - 2px);
163
+ width: 100%;
164
+ padding-left: 0px;
165
+ padding-right: 0px;
166
+ border: none;
167
+ background-color: var(--gc-editor-bg-color, #ffffff);
168
+ color: var(--gc-editor-text-color, #000000);
169
+ }
170
+
171
+ input.editor {
172
+ line-height: calc($row-height - 4px);
173
+ }
174
+
175
+ input.editor:focus {
176
+ outline: none;
177
+ }
178
+
179
+ &.focused {
180
+ outline: 2px solid var(--gc-sheet-focus-border-color, #4a7cf6);
181
+ outline-offset: -2px;
182
+ }
183
+
184
+ .highlight {
185
+ border: 1px solid var(--gc-sheet-highlight-border-color, #647ee8);
186
+ position: absolute;
187
+ z-index: 10;
188
+ left: 0px;
189
+ top: 0px;
190
+ right: 0px;
191
+ bottom: 0px;
192
+ }
193
+
194
+ &.hidden {
195
+ display: none !important;
196
+ }
197
+ }
198
+
199
+ &.hover {
200
+ background-color: var(--gc-sheet-hover-bg-color, #f8f8f8);
201
+
202
+ .cell {
203
+ background-color: var(--gc-sheet-hover-bg-color, #f8f8f8);
204
+ }
205
+ }
206
+ &:hover {
207
+ background-color: var(--gc-sheet-hover-bg-color, #f8f8f8);
208
+
209
+ .cell {
210
+ background-color: var(--gc-sheet-hover-bg-color, #f8f8f8);
211
+ }
212
+ }
213
+
214
+ &.selected {
215
+ background-color: var(--gc-sheet-selected-bg-color, #f8f8f8);
216
+
217
+ .cell {
218
+ background-color: var(--gc-sheet-selected-bg-color, #f8f8f8);
219
+ }
220
+
221
+ .row-header {
222
+ background-color: var(--gc-sheet-selected-row-header-color, #e8e8e8);
223
+ }
224
+ }
225
+
226
+ &.frozen {
227
+ background-color: var(--gc-sheet-bg-color, #ffffff);
228
+ border-bottom: 1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);
229
+
230
+ .cell {
231
+ background-color: var(--gc-sheet-bg-color, #ffffff);
232
+ }
233
+ }
234
+ }
235
+
236
+ }
237
+ }
238
+
239
+ .gc-chart {
240
+ flex: 1;
241
+ height: 100%;
242
+ display: inline-block;
243
+
244
+ overflow-x: scroll;
245
+ overflow-y: hidden;
246
+ z-index: 16; // for the scrollbar to be on top
247
+ outline: none;
248
+
249
+ &:focus-visible {
250
+ outline: 2px solid var(--gc-sheet-focus-border-color, #4a7cf6);
251
+ outline-offset: -2px;
252
+ }
253
+
254
+ .inner {
255
+ width: 1000px;
256
+ height: 1px;
257
+ }
258
+
259
+ .canvas {
260
+ height: 100%;
261
+ width: 100%;
262
+ position: absolute;
263
+ z-index: 15;
264
+ }
265
+
266
+ &.no-pointer-events {
267
+ pointer-events: none;
268
+ }
269
+
270
+ &.cursor-pointer {
271
+ cursor: pointer !important;
272
+ }
273
+ &.cursor-all-scroll {
274
+ cursor: all-scroll !important;
275
+ }
276
+ &.cursor-ew-resize {
277
+ cursor: ew-resize !important;
278
+ }
279
+ &.cursor-ns-resize {
280
+ cursor: ns-resize !important;
281
+ }
282
+ &.cursor-nwse-resize {
283
+ cursor: nwse-resize !important;
284
+ }
285
+ &.cursor-nesw-resize {
286
+ cursor: nesw-resize !important;
287
+ }
288
+ &.cursor-crosshair {
289
+ cursor: crosshair !important;
290
+ }
291
+ }
292
+
293
+ .reorder-ghost {
294
+ position: fixed;
295
+ z-index: 1000;
296
+ pointer-events: none;
297
+ opacity: 0.5;
298
+ box-sizing: border-box;
299
+ display: flex;
300
+ align-items: center;
301
+ border: 1px solid color-mix(in srgb, var(--gc-sheet-header-cell-border-color, #a0a0a0) 50%, transparent);
302
+ background-color: var(--gc-sheet-header-bg-color, #f8f8f8);
303
+ color: var(--gc-sheet-text-color, #000000);
304
+ }
305
+
306
+ // Light scrollbars
307
+ .gc-wrapper[data-color-scheme="light"] {
308
+ .gc-sheet .content,
309
+ .gc-chart {
310
+ scrollbar-color: #cccccc #f5f5f5;
311
+
312
+ &::-webkit-scrollbar {
313
+ width: 12px;
314
+ height: 12px;
315
+ }
316
+ &::-webkit-scrollbar-track {
317
+ background: #f5f5f5;
318
+ }
319
+ &::-webkit-scrollbar-thumb {
320
+ background: #cccccc;
321
+ border-radius: 6px;
322
+
323
+ &:hover {
324
+ background: #d8d8d8;
325
+ }
326
+ }
327
+ }
328
+ }
329
+
330
+ // Dark scrollbars
331
+ .gc-wrapper[data-color-scheme="dark"] {
332
+ .gc-sheet .content,
333
+ .gc-chart {
334
+ scrollbar-color: #555555 #1e1e1e;
335
+
336
+ &::-webkit-scrollbar {
337
+ width: 12px;
338
+ height: 12px;
339
+ }
340
+ &::-webkit-scrollbar-track {
341
+ background: #1e1e1e;
342
+ }
343
+ &::-webkit-scrollbar-thumb {
344
+ background: #555555;
345
+ border-radius: 6px;
346
+ }
347
+ }
348
+ }
349
+
350
+ // Resource Scheduler - vertical scrollbar on the right
351
+ .gc-scheduler {
352
+ .gc-sheet .content {
353
+ overflow-y: hidden;
354
+ }
355
+
356
+ .gc-scrollbar {
357
+ overflow-y: auto;
358
+ overflow-x: hidden;
359
+ height: 100%;
360
+
361
+ > div {
362
+ width: 1px;
363
+ }
364
+ }
365
+ }
366
+
367
+ // Light scrollbar for scheduler
368
+ .gc-scheduler[data-color-scheme="light"] {
369
+ .gc-scrollbar {
370
+ scrollbar-color: #cccccc #f5f5f5;
371
+
372
+ &::-webkit-scrollbar {
373
+ width: 12px;
374
+ }
375
+ &::-webkit-scrollbar-track {
376
+ background: #f5f5f5;
377
+ }
378
+ &::-webkit-scrollbar-thumb {
379
+ background: #cccccc;
380
+ border-radius: 6px;
381
+
382
+ &:hover {
383
+ background: #d8d8d8;
384
+ }
385
+ }
386
+ }
387
+ }
388
+
389
+ // Dark scrollbar for scheduler
390
+ .gc-scheduler[data-color-scheme="dark"] {
391
+ .gc-scrollbar {
392
+ scrollbar-color: #555555 #1e1e1e;
393
+
394
+ &::-webkit-scrollbar {
395
+ width: 12px;
396
+ }
397
+ &::-webkit-scrollbar-track {
398
+ background: #1e1e1e;
399
+ }
400
+ &::-webkit-scrollbar-thumb {
401
+ background: #555555;
402
+ border-radius: 6px;
403
+ }
404
+ }
405
+ }
package/styles/gc.scss ADDED
@@ -0,0 +1,82 @@
1
+ @use 'common';
2
+
3
+ .gc-sheet .content .row {
4
+
5
+ .tree-with-name {
6
+ flex-wrap: nowrap;
7
+
8
+ .tree {
9
+ margin-left: 3px;
10
+ display: flex;
11
+ flex: 0 0 auto;
12
+ justify-content: end;
13
+ align-items: center;
14
+ }
15
+
16
+ .name {
17
+ display: flex;
18
+ align-items: center;
19
+ padding-left: 5px;
20
+ overflow-x: visible;
21
+ white-space: nowrap;
22
+ user-select: none;
23
+ }
24
+ }
25
+
26
+ .resources {
27
+ gap: 7px;
28
+
29
+ .wrapper {
30
+ display: flex;
31
+ align-items: center;
32
+ gap: 3px;
33
+
34
+ .avatar {
35
+ width: 26px;
36
+ height: 26px;
37
+ display: flex;
38
+ align-items: center;
39
+ justify-content: center;
40
+ border-radius: 50%;
41
+ color: white;
42
+ font-size: 10pt;
43
+ }
44
+
45
+ .capacity {
46
+ font-size: 11pt;
47
+ }
48
+ }
49
+ }
50
+
51
+ .task-summary {
52
+ font-weight: bold;
53
+ }
54
+ }
55
+
56
+ .gc-tree-icon {
57
+ display: flex;
58
+ align-items: center;
59
+ cursor: pointer;
60
+ padding: 5px 5px 5px 5px;
61
+
62
+ .tree-icon {
63
+ width: 6px;
64
+ height: 6px;
65
+ display: inline-block;
66
+ transform: rotate(0deg);
67
+ transition: transform 0.3s ease;
68
+ border-style: solid;
69
+ border-width: 2px 2px 0 0;
70
+ border-color: var(--gc-tree-icon-color, #606060);
71
+ }
72
+
73
+ &.collapsed .tree-icon {
74
+ transform: rotate(45deg);
75
+ margin-bottom: 3px;
76
+ }
77
+
78
+ &.expanded .tree-icon {
79
+ transform: rotate(-225deg);
80
+ margin-bottom: 6px;
81
+ }
82
+ }
package/styles/rs.scss ADDED
@@ -0,0 +1,32 @@
1
+ @use 'common';
2
+
3
+ .gc-sheet .content .row {
4
+
5
+ .pin-icon {
6
+ display: inline-flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ margin-left: 2px;
10
+ opacity: 0.5;
11
+
12
+ svg {
13
+ width: 12px;
14
+ height: 12px;
15
+ }
16
+ }
17
+ }
18
+
19
+ .gc-sheet .content .rows {
20
+ position: relative;
21
+ }
22
+
23
+ .gc-sheet .content .rows .row-reorder-indicator {
24
+ position: absolute;
25
+ left: 0;
26
+ right: 0;
27
+ height: 2px;
28
+ background-color: var(--gc-sheet-focus-border-color, #0078d4);
29
+ z-index: 11;
30
+ pointer-events: none;
31
+ transform: translateY(-1px);
32
+ }