@timelinekit/core 1.0.0 → 1.0.3

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 (232) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +200 -0
  3. package/dist/__tests__/calendar/sidebar/calendar-list.test.d.ts +1 -0
  4. package/dist/__tests__/calendar/sidebar/mini-calendar.test.d.ts +1 -0
  5. package/dist/__tests__/calendar/test-helpers.d.ts +169 -0
  6. package/dist/__tests__/calendar/tooltip/calendar-tooltip-renderer.test.d.ts +1 -0
  7. package/dist/__tests__/calendar/validation.test.d.ts +1 -0
  8. package/dist/__tests__/calendar/views/agenda-view.test.d.ts +1 -0
  9. package/dist/__tests__/calendar/views/day-view.test.d.ts +1 -0
  10. package/dist/__tests__/calendar/views/drag-handlers.test.d.ts +1 -0
  11. package/dist/__tests__/calendar/views/keyboard-navigation.test.d.ts +1 -0
  12. package/dist/__tests__/calendar/views/month-view.test.d.ts +1 -0
  13. package/dist/__tests__/calendar/views/swipe-navigation-handler.test.d.ts +1 -0
  14. package/dist/__tests__/calendar/views/time-grid-helper.test.d.ts +1 -0
  15. package/dist/__tests__/calendar/views/view-utils.test.d.ts +1 -0
  16. package/dist/__tests__/calendar/views/week-view.test.d.ts +1 -0
  17. package/dist/__tests__/ganttchart/model/dependency-evaluator.test.d.ts +1 -0
  18. package/dist/__tests__/ganttchart/model/task-filters.test.d.ts +1 -0
  19. package/dist/__tests__/ganttchart/model/task-link.test.d.ts +1 -0
  20. package/dist/calendar/clipboard/calendar-clipboard.d.ts +19 -0
  21. package/dist/calendar/eventcalendar-context.d.ts +157 -0
  22. package/dist/calendar/eventcalendar-engine.d.ts +80 -0
  23. package/dist/calendar/eventcalendar-events.d.ts +40 -0
  24. package/dist/calendar/eventcalendar-settings.d.ts +30 -0
  25. package/dist/calendar/export/calendar-data-exporter.d.ts +32 -0
  26. package/dist/calendar/export/calendar-icalendar-exporter.d.ts +24 -0
  27. package/dist/calendar/export/calendar-image-exporter.d.ts +17 -0
  28. package/dist/calendar/export/calendar-pdf-exporter.d.ts +30 -0
  29. package/dist/calendar/import/calendar-icalendar-importer.d.ts +30 -0
  30. package/dist/calendar/model/calendar-data.d.ts +34 -0
  31. package/dist/calendar/model/calendar-entry.d.ts +44 -0
  32. package/dist/calendar/model/calendar-item.d.ts +151 -0
  33. package/dist/calendar/model/calendar.d.ts +29 -0
  34. package/dist/calendar/model/recurrence-editor.d.ts +25 -0
  35. package/dist/calendar/model/recurrence-exception.d.ts +34 -0
  36. package/dist/calendar/model/recurrence-expander.d.ts +17 -0
  37. package/dist/calendar/model/recurrence-rule.d.ts +42 -0
  38. package/dist/calendar/sidebar/calendar-list.d.ts +13 -0
  39. package/dist/calendar/sidebar/mini-calendar.d.ts +20 -0
  40. package/dist/calendar/themes/dark-theme.d.ts +4 -0
  41. package/dist/calendar/themes/eventcalendar-theme.d.ts +156 -0
  42. package/dist/calendar/themes/light-theme.d.ts +4 -0
  43. package/dist/calendar/tooltip/calendar-tooltip-renderer.d.ts +8 -0
  44. package/dist/calendar/views/agenda-view.d.ts +12 -0
  45. package/dist/calendar/views/base-view.d.ts +23 -0
  46. package/dist/calendar/views/day-view.d.ts +11 -0
  47. package/dist/calendar/views/handlers/allday-drag-handler.d.ts +14 -0
  48. package/dist/calendar/views/handlers/allday-entry-drag-handler.d.ts +18 -0
  49. package/dist/calendar/views/handlers/month-drag-handler.d.ts +14 -0
  50. package/dist/calendar/views/handlers/month-entry-drag-handler.d.ts +18 -0
  51. package/dist/calendar/views/handlers/swipe-navigation-handler.d.ts +14 -0
  52. package/dist/calendar/views/handlers/time-grid-drag-handler.d.ts +14 -0
  53. package/dist/calendar/views/handlers/time-grid-entry-drag-handler.d.ts +18 -0
  54. package/dist/calendar/views/month-view.d.ts +13 -0
  55. package/dist/calendar/views/time-grid-helper.d.ts +36 -0
  56. package/dist/calendar/views/view-utils.d.ts +38 -0
  57. package/dist/calendar/views/week-view.d.ts +16 -0
  58. package/dist/common/base-background-renderer.d.ts +9 -6
  59. package/dist/common/base-chart-handler.d.ts +19 -13
  60. package/dist/common/base-chart-handlers.d.ts +34 -0
  61. package/dist/common/base-chart-scroll-handler.d.ts +5 -3
  62. package/dist/common/base-chart.d.ts +98 -0
  63. package/dist/common/base-divider.d.ts +2 -0
  64. package/dist/common/base-engine.d.ts +112 -0
  65. package/dist/common/base-export-renderer.d.ts +26 -0
  66. package/dist/common/base-header-renderer.d.ts +8 -6
  67. package/dist/common/base-markers-renderer.d.ts +9 -6
  68. package/dist/common/base-theme.d.ts +107 -0
  69. package/dist/common/base-tooltip-renderer.d.ts +7 -0
  70. package/dist/common/chart-time-axis.d.ts +32 -0
  71. package/dist/common/common.d.ts +12 -2
  72. package/dist/common/custom-properties-container.d.ts +14 -0
  73. package/dist/common/drawing.d.ts +8 -2
  74. package/dist/common/export-utils.d.ts +34 -7
  75. package/dist/common/functions.d.ts +1 -1
  76. package/dist/common/locale.d.ts +101 -0
  77. package/dist/common/marker.d.ts +13 -0
  78. package/dist/common/subscription-manager.d.ts +17 -0
  79. package/dist/common/text.d.ts +9 -9
  80. package/dist/common/theme-utils.d.ts +5 -0
  81. package/dist/common/timeline-theme.d.ts +107 -0
  82. package/dist/common/undo-manager.d.ts +22 -0
  83. package/dist/common/working-calendar.d.ts +57 -0
  84. package/dist/ganttchart/chart/chart-scroll-handler.d.ts +1 -1
  85. package/dist/ganttchart/chart/chart-time-axis.d.ts +2 -32
  86. package/dist/ganttchart/chart/chart.d.ts +10 -4
  87. package/dist/ganttchart/chart/handlers/add-task-part.d.ts +14 -7
  88. package/dist/ganttchart/chart/handlers/connector-dots-handler.d.ts +10 -8
  89. package/dist/ganttchart/chart/handlers/gantt-drag-handler.d.ts +32 -0
  90. package/dist/ganttchart/chart/handlers/handler.d.ts +7 -4
  91. package/dist/ganttchart/chart/handlers/handlers.d.ts +5 -10
  92. package/dist/ganttchart/chart/handlers/move-milestone.d.ts +9 -7
  93. package/dist/ganttchart/chart/handlers/move-task-part.d.ts +9 -7
  94. package/dist/ganttchart/chart/handlers/resize-task-part.d.ts +18 -7
  95. package/dist/ganttchart/chart/handlers/select-link.d.ts +8 -6
  96. package/dist/ganttchart/chart/handlers/select-task.d.ts +13 -11
  97. package/dist/ganttchart/chart/handlers/set-task-progress.d.ts +14 -7
  98. package/dist/ganttchart/chart/renderers/chart-background-renderer.d.ts +3 -2
  99. package/dist/ganttchart/chart/renderers/chart-header-renderer.d.ts +2 -2
  100. package/dist/ganttchart/chart/renderers/chart-links-renderer.d.ts +4 -3
  101. package/dist/ganttchart/chart/renderers/chart-markers-renderer.d.ts +2 -2
  102. package/dist/ganttchart/chart/renderers/chart-tasks-renderer.d.ts +9 -9
  103. package/dist/ganttchart/chart/renderers/renderer-base.d.ts +2 -1
  104. package/dist/ganttchart/chart/tooltip/chart-tooltip-renderer.d.ts +4 -6
  105. package/dist/ganttchart/clipboard.d.ts +10 -3
  106. package/dist/ganttchart/divider/divider.d.ts +1 -1
  107. package/dist/ganttchart/export/data-exporter.d.ts +12 -7
  108. package/dist/ganttchart/export/export-common.d.ts +16 -16
  109. package/dist/ganttchart/export/image-exporter.d.ts +5 -4
  110. package/dist/ganttchart/export/pdf-exporter.d.ts +7 -6
  111. package/dist/ganttchart/ganttchart-engine.d.ts +134 -40
  112. package/dist/ganttchart/locale.d.ts +2 -66
  113. package/dist/ganttchart/model/dependency-evaluator.d.ts +16 -0
  114. package/dist/ganttchart/model/lag.d.ts +11 -0
  115. package/dist/ganttchart/model/length.d.ts +13 -2
  116. package/dist/ganttchart/model/marker.d.ts +1 -7
  117. package/dist/ganttchart/model/rate.d.ts +7 -1
  118. package/dist/ganttchart/model/resource-list.d.ts +11 -0
  119. package/dist/ganttchart/model/resource.d.ts +15 -1
  120. package/dist/ganttchart/model/task-filters.d.ts +10 -0
  121. package/dist/ganttchart/model/task-link.d.ts +15 -2
  122. package/dist/ganttchart/model/task-list-adapter.d.ts +22 -0
  123. package/dist/ganttchart/model/task-list.d.ts +55 -2
  124. package/dist/ganttchart/model/task-part.d.ts +20 -0
  125. package/dist/ganttchart/model/task-parts-manager.d.ts +44 -0
  126. package/dist/ganttchart/model/task-resource.d.ts +11 -0
  127. package/dist/ganttchart/model/task-serializer.d.ts +5 -0
  128. package/dist/ganttchart/model/task-warnings.d.ts +4 -0
  129. package/dist/ganttchart/model/task.d.ts +92 -19
  130. package/dist/ganttchart/model/work.d.ts +14 -1
  131. package/dist/ganttchart/model/working-calendar.d.ts +2 -32
  132. package/dist/ganttchart/sheet/renderers/sheet-icons-cell-renderer.d.ts +2 -0
  133. package/dist/ganttchart/sheet/sheet.d.ts +12 -7
  134. package/dist/ganttchart/themes/theme.d.ts +63 -108
  135. package/dist/ganttchart/undo-manager.d.ts +1 -13
  136. package/dist/index.d.ts +77 -8
  137. package/dist/index.js +6 -1
  138. package/dist/licensing/features.d.ts +3 -1
  139. package/dist/licensing/license-key.d.ts +1 -0
  140. package/dist/licensing/license-manager.d.ts +4 -1
  141. package/dist/licensing/watermark.d.ts +1 -0
  142. package/dist/locales/cs.d.ts +1 -1
  143. package/dist/locales/cs.js +1 -0
  144. package/dist/locales/de.d.ts +1 -1
  145. package/dist/locales/de.js +1 -0
  146. package/dist/locales/es.d.ts +1 -1
  147. package/dist/locales/es.js +1 -0
  148. package/dist/locales/fr.d.ts +1 -1
  149. package/dist/locales/fr.js +1 -0
  150. package/dist/locales/it.d.ts +1 -1
  151. package/dist/locales/it.js +1 -0
  152. package/dist/locales/ja.d.ts +1 -1
  153. package/dist/locales/ja.js +1 -0
  154. package/dist/locales/ko.d.ts +1 -1
  155. package/dist/locales/ko.js +1 -0
  156. package/dist/locales/nl.d.ts +1 -1
  157. package/dist/locales/nl.js +1 -0
  158. package/dist/locales/pl.d.ts +1 -1
  159. package/dist/locales/pl.js +1 -0
  160. package/dist/locales/pt.d.ts +1 -1
  161. package/dist/locales/pt.js +1 -0
  162. package/dist/locales/ru.d.ts +1 -1
  163. package/dist/locales/ru.js +1 -0
  164. package/dist/locales/sv.d.ts +1 -1
  165. package/dist/locales/sv.js +1 -0
  166. package/dist/locales/zh.d.ts +1 -1
  167. package/dist/locales/zh.js +1 -0
  168. package/dist/resourcescheduler/chart/handlers/add-event.d.ts +15 -8
  169. package/dist/resourcescheduler/chart/handlers/move-event.d.ts +10 -8
  170. package/dist/resourcescheduler/chart/handlers/resize-event.d.ts +21 -8
  171. package/dist/resourcescheduler/chart/handlers/scheduler-drag-handler.d.ts +32 -0
  172. package/dist/resourcescheduler/chart/handlers/scheduler-handler.d.ts +5 -3
  173. package/dist/resourcescheduler/chart/handlers/scheduler-handlers.d.ts +9 -10
  174. package/dist/resourcescheduler/chart/handlers/select-event.d.ts +10 -8
  175. package/dist/resourcescheduler/chart/renderers/scheduler-background-renderer.d.ts +2 -1
  176. package/dist/resourcescheduler/chart/renderers/scheduler-events-renderer.d.ts +2 -1
  177. package/dist/resourcescheduler/chart/renderers/scheduler-renderer-base.d.ts +1 -0
  178. package/dist/resourcescheduler/chart/scheduler-chart.d.ts +9 -4
  179. package/dist/resourcescheduler/chart/tooltip/scheduler-tooltip-renderer.d.ts +2 -4
  180. package/dist/resourcescheduler/clipboard.d.ts +8 -0
  181. package/dist/resourcescheduler/export/scheduler-data-exporter.d.ts +5 -0
  182. package/dist/resourcescheduler/export/scheduler-export-common.d.ts +12 -7
  183. package/dist/resourcescheduler/export/scheduler-image-exporter.d.ts +2 -1
  184. package/dist/resourcescheduler/export/scheduler-pdf-exporter.d.ts +3 -1
  185. package/dist/resourcescheduler/model/scheduler-data-adapter.d.ts +1 -0
  186. package/dist/resourcescheduler/model/scheduler-data.d.ts +45 -2
  187. package/dist/resourcescheduler/model/scheduler-event.d.ts +22 -2
  188. package/dist/resourcescheduler/model/scheduler-layout-calculator.d.ts +18 -0
  189. package/dist/resourcescheduler/model/scheduler-resource.d.ts +21 -2
  190. package/dist/resourcescheduler/resourcescheduler-engine.d.ts +134 -42
  191. package/dist/resourcescheduler/sheet/renderers/scheduler-icon-cell-renderer.d.ts +2 -0
  192. package/dist/resourcescheduler/sheet/scheduler-sheet.d.ts +11 -6
  193. package/dist/resourcescheduler/themes/scheduler-themes.d.ts +13 -0
  194. package/dist/styles/ec.css +1 -0
  195. package/dist/styles/gc.css +1 -1
  196. package/dist/styles/index.css +1 -0
  197. package/dist/styles/rs.css +1 -0
  198. package/dist/table/editors/input-editor.d.ts +1 -0
  199. package/dist/table/table-column.d.ts +7 -1
  200. package/dist/table/table-data-source.d.ts +2 -0
  201. package/dist/table/table-rows-selection.d.ts +1 -0
  202. package/dist/table/table.d.ts +11 -0
  203. package/dist/table/tree-table.d.ts +2 -0
  204. package/package.json +17 -6
  205. package/styles/_common.scss +12 -1
  206. package/styles/ec.scss +1225 -0
  207. package/styles/index.scss +3 -0
  208. package/dist/ganttchart/model/sheet-column.d.ts +0 -27
  209. package/dist/ganttchart/sheet/editors/cell-editor.d.ts +0 -23
  210. package/dist/ganttchart/sheet/editors/currency-editor.d.ts +0 -6
  211. package/dist/ganttchart/sheet/editors/date-editor.d.ts +0 -6
  212. package/dist/ganttchart/sheet/editors/decimal-editor.d.ts +0 -6
  213. package/dist/ganttchart/sheet/editors/dialog-editor.d.ts +0 -17
  214. package/dist/ganttchart/sheet/editors/input-editor.d.ts +0 -19
  215. package/dist/ganttchart/sheet/editors/integer-editor.d.ts +0 -6
  216. package/dist/ganttchart/sheet/editors/percent-editor.d.ts +0 -6
  217. package/dist/ganttchart/sheet/editors/text-editor.d.ts +0 -5
  218. package/dist/ganttchart/sheet/sheet-keyboard-navigation.d.ts +0 -26
  219. package/dist/ganttchart/sheet/sheet-rows-selection.d.ts +0 -24
  220. /package/dist/__tests__/{critical-path-calculator.test.d.ts → calendar/calendar-clipboard.test.d.ts} +0 -0
  221. /package/dist/__tests__/{model/lag.test.d.ts → calendar/eventcalendar-engine.test.d.ts} +0 -0
  222. /package/dist/__tests__/{model/length.test.d.ts → calendar/export/calendar-data-export.test.d.ts} +0 -0
  223. /package/dist/__tests__/{model/resource-list.test.d.ts → calendar/export/calendar-export.test.d.ts} +0 -0
  224. /package/dist/__tests__/{model/resource.test.d.ts → calendar/export/calendar-icalendar.test.d.ts} +0 -0
  225. /package/dist/__tests__/{model/task-list.test.d.ts → calendar/model/calendar-data.test.d.ts} +0 -0
  226. /package/dist/__tests__/{model/task-part.test.d.ts → calendar/model/calendar-item-recurrence.test.d.ts} +0 -0
  227. /package/dist/__tests__/{model/task-resource.test.d.ts → calendar/model/calendar-item-types.test.d.ts} +0 -0
  228. /package/dist/__tests__/{model/task-warnings.test.d.ts → calendar/model/calendar-occurrence.test.d.ts} +0 -0
  229. /package/dist/__tests__/{model/task.test.d.ts → calendar/model/calendar.test.d.ts} +0 -0
  230. /package/dist/__tests__/{model/work.test.d.ts → calendar/model/recurrence-editor.test.d.ts} +0 -0
  231. /package/dist/__tests__/{model/working-calendar.test.d.ts → calendar/model/recurrence-expander.test.d.ts} +0 -0
  232. /package/dist/__tests__/{undo-manager.test.d.ts → calendar/model/recurrence-rule.test.d.ts} +0 -0
@@ -1,21 +1,26 @@
1
1
  import { Subject } from "rxjs";
2
2
  import { Table } from "../../table/table";
3
- import { TableColumn } from "../../table/table-column";
3
+ import { DateCellEditor } from "../../table/editors/date-editor";
4
4
  import { SchedulerResource } from "../model/scheduler-resource";
5
5
  import { ResourceSchedulerContext, SchedulerRowContextMenuEventArgs } from "../resourcescheduler-engine";
6
6
  import { SchedulerResourceEventArgs } from "../model/scheduler-resource";
7
+ declare class SchedulerDateCellEditor extends DateCellEditor<SchedulerResource> {
8
+ #private;
9
+ constructor(ctx: ResourceSchedulerContext, getter: (r: SchedulerResource) => any, setter: (r: SchedulerResource, v: any) => void);
10
+ protected getDefaultDate(): Date;
11
+ protected getLocale(): string;
12
+ }
7
13
  export declare class SchedulerSheet extends Table<SchedulerResource> {
8
14
  #private;
9
15
  rowContextMenu$: Subject<SchedulerRowContextMenuEventArgs>;
10
16
  rowMouseOver$: Subject<SchedulerResourceEventArgs | null>;
11
17
  constructor(ctx: ResourceSchedulerContext, sheetElement: any);
18
+ destroy(): void;
12
19
  protected getItemRowHeight(resource: SchedulerResource): number;
13
20
  protected redrawItemRow(resource: SchedulerResource): void;
14
21
  protected onComplexOperationFinished(): void;
15
- addCustomStringColumn(code: string, displayName: string): TableColumn<SchedulerResource>;
16
- addCustomIntegerColumn(code: string, displayName: string): TableColumn<SchedulerResource>;
17
- addCustomDecimalColumn(code: string, displayName: string): TableColumn<SchedulerResource>;
18
- getDefaultColumns(): TableColumn<SchedulerResource>[];
19
- getCustomColumns(): TableColumn<SchedulerResource>[];
22
+ protected formatCustomDateValue(value: Date): string;
23
+ protected createCustomDateCellEditor(getter: (item: SchedulerResource) => any, setter: (item: SchedulerResource, value: any) => void): SchedulerDateCellEditor;
20
24
  clearSelection(): void;
21
25
  }
26
+ export {};
@@ -0,0 +1,13 @@
1
+ import { BaseTheme } from "../../common/base-theme";
2
+ export declare class LightSchedulerTheme extends BaseTheme {
3
+ constructor();
4
+ }
5
+ export declare class DarkSchedulerTheme extends BaseTheme {
6
+ constructor();
7
+ }
8
+ export declare class ModernSchedulerTheme extends BaseTheme {
9
+ constructor();
10
+ }
11
+ export declare class ClassicSchedulerTheme extends BaseTheme {
12
+ constructor();
13
+ }
@@ -0,0 +1 @@
1
+ .ec-host{display:block;height:100%;overflow:hidden}.ec-host *,.ec-host *::before,.ec-host *::after{box-sizing:border-box}.ec-wrapper{width:100%;height:100%;display:flex;color:var(--ec-content-text, #333333);background:var(--ec-content-bg, #ffffff);outline:none}.ec-wrapper::-webkit-scrollbar{width:8px;height:8px}.ec-wrapper::-webkit-scrollbar-thumb{background:var(--ec-scrollbar-thumb, #c1c1c1);border-radius:4px}.ec-wrapper::-webkit-scrollbar-track{background:var(--ec-scrollbar-track, #f1f1f1)}.ec-sidebar{width:var(--ec-sidebar-width, 256px);flex-shrink:0;border-right:1px solid var(--ec-sidebar-border, #e0e0e0);background:var(--ec-sidebar-bg, #ffffff);color:var(--ec-sidebar-text, #333333);overflow-y:auto}.ec-main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.ec-toolbar{display:flex;align-items:center;height:var(--ec-toolbar-height, 48px);padding:0 12px;background:var(--ec-toolbar-bg, #ffffff);border-bottom:1px solid var(--ec-toolbar-border, #e0e0e0);flex-shrink:0;gap:8px;user-select:none}.ec-toolbar-nav{display:flex;align-items:center;gap:4px;margin-right:auto}.ec-toolbar-btn{border:none;background:rgba(0,0,0,0);color:var(--ec-toolbar-btn-color, #555555);cursor:pointer;padding:4px 10px;border-radius:4px;font:inherit;font-size:14px;line-height:1.5}.ec-toolbar-btn:hover{background:var(--ec-toolbar-btn-hover-bg, #f0f0f0)}.ec-toolbar-nav-btn{font-size:22px;line-height:1;width:32px;height:32px}.ec-toolbar-today{font-weight:500}.ec-toolbar-title{font-size:18px;font-weight:600;color:var(--ec-toolbar-text, #333333);padding:0 8px;white-space:nowrap}.ec-toolbar-views{display:flex;align-items:center;gap:2px}.ec-toolbar-view-btn.ec-active{background:var(--ec-toolbar-active-bg, #e8f0fe);color:var(--ec-toolbar-active-text, #1a73e8)}.ec-view-container{flex:1;overflow:hidden;position:relative}.ec-month-view{height:100%;display:flex;flex-direction:column}.ec-month-header{display:flex;background:var(--ec-header-bg, #ffffff);border-bottom:1px solid var(--ec-header-border, #e0e0e0);flex-shrink:0}.ec-month-header-cell{flex:1;text-align:center;padding:6px 0;font-size:11px;font-weight:500;text-transform:uppercase;color:var(--ec-header-text, #555555)}.ec-month-grid{flex:1;display:flex;flex-direction:column;overflow:hidden}.ec-month-week{flex:1;display:flex;min-height:0;position:relative}.ec-month-day{flex:1;border-right:1px solid var(--ec-grid-line, #e0e0e0);border-bottom:1px solid var(--ec-grid-line, #e0e0e0);overflow:hidden;min-width:0;cursor:default}.ec-month-day:last-child{border-right:none}.ec-month-day:hover{background:var(--ec-hover-bg, rgba(0, 0, 0, 0.04))}.ec-month-day.ec-today{background:var(--ec-today-bg, #e8f0fe)}.ec-month-day.ec-month-day-drag{background:var(--ec-drag-highlight, rgba(3, 155, 229, 0.15))}.ec-month-day.ec-other-month{background:var(--ec-other-month-bg, #fafafa)}.ec-month-day.ec-other-month .ec-month-day-header{color:var(--ec-other-month-text, #b0b0b0)}.ec-month-day-header{padding:4px 6px;font-size:12px;font-weight:500;color:var(--ec-content-text, #333333);height:var(--ec-day-header-height, 24px);line-height:calc(var(--ec-day-header-height, 24px) - 8px)}.ec-month-day-entries{display:flex;flex-direction:column;gap:var(--ec-entry-gap, 2px);padding:0 2px;overflow:hidden}.ec-entry{height:var(--ec-entry-height, 22px);line-height:var(--ec-entry-height, 22px);border-radius:var(--ec-entry-radius, 4px);padding:0 4px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;flex-shrink:0;user-select:none}.ec-entry:hover{opacity:.85}.ec-entry-multiday{background:var(--ec-entry-chip-bg, #d3e3fd);color:var(--ec-entry-chip-text, #1b4fa3)}.ec-entry-single{background:var(--ec-entry-chip-bg, #d3e3fd);color:var(--ec-entry-chip-text, #1b4fa3)}.ec-entry-tentative{background:repeating-linear-gradient(-45deg, transparent, transparent 2px, var(--ec-entry-stripe-color, #d3e3fd) 2px, var(--ec-entry-stripe-color, #d3e3fd) 4px) !important}.ec-entry-needs-action{background:var(--ec-content-bg, #ffffff) !important;border:1px dashed var(--ec-entry-status-color, #999999);border-left:var(--ec-entry-accent-width, 3px) dashed var(--ec-entry-status-color, #999999)}.ec-entry-declined{background:var(--ec-content-bg, #ffffff) !important;opacity:var(--ec-declined-opacity, 0.55)}.ec-entry-declined .ec-tg-entry-title,.ec-entry-declined{text-decoration:line-through}.ec-entry-icon{display:inline-flex;align-items:center;vertical-align:text-bottom;flex-shrink:0;margin-right:3px}.ec-entry-icon svg{width:14px;height:14px}.ec-entry-multiday .ec-entry-icon svg,.ec-entry-single .ec-entry-icon svg{width:12px;height:12px}.ec-month-day-more{padding:0 6px;font-size:11px;color:var(--ec-more-text, #555555);cursor:pointer}.ec-month-day-more:hover{text-decoration:underline}.ec-mini-calendar{padding:12px;user-select:none}.ec-mini-header{display:flex;align-items:center;margin-bottom:8px}.ec-mini-nav-btn{border:none;background:rgba(0,0,0,0);color:var(--ec-sidebar-text, #333333);cursor:pointer;width:28px;height:28px;border-radius:50%;font-size:16px;line-height:28px;text-align:center;padding:0}.ec-mini-nav-btn:hover{background:var(--ec-mini-hover-bg, #f0f0f0)}.ec-mini-title{flex:1;border:none;background:rgba(0,0,0,0);color:var(--ec-sidebar-text, #333333);cursor:pointer;font:inherit;font-size:13px;font-weight:500;text-align:center;padding:4px 0;border-radius:4px}.ec-mini-title:hover{background:var(--ec-mini-hover-bg, #f0f0f0)}.ec-mini-daynames{display:grid;grid-template-columns:repeat(7, 1fr);margin-bottom:2px}.ec-mini-dayname{text-align:center;font-size:10px;font-weight:500;color:var(--ec-sidebar-text, #333333);line-height:24px}.ec-mini-dayname.ec-mini-weekend{color:var(--ec-mini-weekend-text, #777777)}.ec-mini-grid{display:flex;flex-direction:column;gap:0}.ec-mini-row{display:grid;grid-template-columns:repeat(7, 1fr);border:1px solid rgba(0,0,0,0);border-radius:14px}.ec-mini-row.ec-mini-week-selected{border-color:var(--ec-mini-selected-text, #1a73e8)}.ec-mini-day{border:none;background:rgba(0,0,0,0);color:var(--ec-sidebar-text, #333333);cursor:pointer;font:inherit;font-size:11px;width:28px;height:28px;line-height:28px;text-align:center;padding:0;border-radius:50%;position:relative;justify-self:center}.ec-mini-day:hover{background:var(--ec-mini-hover-bg, #f0f0f0)}.ec-mini-day.ec-mini-other-month{color:var(--ec-mini-other-month-text, #b0b0b0)}.ec-mini-day.ec-mini-weekend{color:var(--ec-mini-weekend-text, #777777)}.ec-mini-day.ec-mini-today{background:var(--ec-mini-today-bg, #1a73e8);color:var(--ec-mini-today-text, #ffffff);font-weight:600}.ec-mini-day.ec-mini-today:hover{opacity:.85}.ec-mini-day.ec-mini-selected:not(.ec-mini-today){background:var(--ec-mini-selected-bg, #e8f0fe);color:var(--ec-mini-selected-text, #1a73e8);font-weight:600}.ec-mini-day.ec-mini-has-events::after{content:"";position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--ec-mini-dot-color, #1a73e8)}.ec-mini-day.ec-mini-today.ec-mini-has-events::after{background:var(--ec-mini-today-dot, #ffffff)}.ec-mini-grid-months .ec-mini-row{grid-template-columns:repeat(3, 1fr)}.ec-mini-month{border:none;background:rgba(0,0,0,0);color:var(--ec-sidebar-text, #333333);cursor:pointer;font:inherit;font-size:12px;padding:10px 0;border-radius:16px;text-align:center}.ec-mini-month:hover{background:var(--ec-mini-hover-bg, #f0f0f0)}.ec-mini-month.ec-mini-selected{background:var(--ec-mini-selected-bg, #e8f0fe);color:var(--ec-mini-selected-text, #1a73e8);font-weight:600}.ec-calendar-list{padding:12px;border-top:1px solid var(--ec-sidebar-border, #e0e0e0)}.ec-calendar-list-header{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--ec-cal-list-header-text, #555555);margin-bottom:8px;letter-spacing:.5px}.ec-calendar-list-items{display:flex;flex-direction:column;gap:2px}.ec-calendar-list-item{display:flex;align-items:center;gap:8px;padding:4px 4px;border-radius:4px;cursor:default}.ec-calendar-list-item:hover{background:var(--ec-mini-hover-bg, #f0f0f0)}.ec-calendar-list-item:hover .ec-calendar-list-remove{opacity:1}.ec-calendar-list-checkbox{width:16px;height:16px;border-radius:3px;border:2px solid;flex-shrink:0;cursor:pointer;padding:0;position:relative}.ec-calendar-list-checkbox.ec-checked::after{content:"";position:absolute;left:3px;top:0px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.ec-calendar-list-name{flex:1;font-size:13px;color:var(--ec-sidebar-text, #333333);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.ec-calendar-list-remove{border:none;background:rgba(0,0,0,0);color:var(--ec-sidebar-text, #333333);cursor:pointer;font-size:16px;line-height:1;padding:0 2px;opacity:0;flex-shrink:0;border-radius:3px}.ec-calendar-list-remove:hover{background:rgba(0,0,0,.1)}.ec-calendar-list-add{border:none;background:rgba(0,0,0,0);color:var(--ec-sidebar-text, #333333);cursor:pointer;font:inherit;font-size:13px;padding:6px 4px;margin-top:4px;border-radius:4px;text-align:left;width:100%}.ec-calendar-list-add:hover{background:var(--ec-mini-hover-bg, #f0f0f0)}.ec-agenda-view{height:100%;display:flex;flex-direction:column}.ec-agenda-scroll{flex:1;overflow-y:auto}.ec-agenda-scroll::-webkit-scrollbar{width:8px}.ec-agenda-scroll::-webkit-scrollbar-thumb{background:var(--ec-scrollbar-thumb, #c1c1c1);border-radius:4px}.ec-agenda-scroll::-webkit-scrollbar-track{background:var(--ec-scrollbar-track, #f1f1f1)}.ec-agenda-day:not(:first-child){border-top:1px solid var(--ec-grid-line, #e0e0e0)}.ec-agenda-day-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--ec-agenda-day-header-bg, #f8f9fa);border-bottom:1px solid var(--ec-grid-line, #e0e0e0)}.ec-agenda-day-name{font-size:15px;font-weight:600;color:var(--ec-agenda-day-header-text, #333333)}.ec-agenda-day-date{font-size:14px;color:var(--ec-agenda-day-header-text, #333333);opacity:.6}.ec-agenda-today-badge{background:var(--ec-tg-today-circle, #1a73e8);color:var(--ec-tg-today-circle-text, #ffffff);font-size:10px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px}.ec-agenda-entries{display:flex;flex-direction:column}.ec-agenda-entry{display:flex;align-items:center;gap:12px;height:var(--ec-agenda-entry-height, 48px);padding:0 14px;cursor:pointer;user-select:none;border-bottom:1px solid var(--ec-grid-line, #e0e0e0);position:relative;font-size:13px;white-space:normal;text-overflow:unset;border-radius:0;line-height:1.4;overflow:visible;outline:none !important}.ec-agenda-entry:hover{background:var(--ec-agenda-entry-hover-bg, rgba(0, 0, 0, 0.04));opacity:1}.ec-agenda-entry[aria-selected=true],.ec-agenda-entry:focus-visible{z-index:1;box-shadow:inset 0 0 0 2px var(--ec-selected-outline, #1a73e8)}.ec-agenda-entry.ec-entry-needs-action{border:1px dashed var(--ec-entry-status-color, #999999)}.ec-agenda-entry-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.ec-agenda-entry-time{min-width:120px;font-size:12px;color:var(--ec-tg-gutter-text, #888888);flex-shrink:0}.ec-agenda-entry-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;color:var(--ec-content-text, #333333)}.ec-agenda-entry-location{font-size:12px;color:var(--ec-tg-gutter-text, #888888);flex-shrink:0;white-space:nowrap}.ec-agenda-empty{padding:48px 14px;text-align:center;color:var(--ec-agenda-empty-text, #999999);font-size:14px}.ec-week-view,.ec-day-view{height:100%;display:flex;flex-direction:column}.ec-tg-scroll{flex:1;overflow-y:auto}.ec-tg-scroll::-webkit-scrollbar{width:8px}.ec-tg-scroll::-webkit-scrollbar-thumb{background:var(--ec-scrollbar-thumb, #c1c1c1);border-radius:4px}.ec-tg-scroll::-webkit-scrollbar-track{background:var(--ec-scrollbar-track, #f1f1f1)}.ec-tg-header{display:flex;border-bottom:1px solid var(--ec-header-border, #e0e0e0);background:var(--ec-header-bg, #ffffff);position:sticky;top:0;z-index:4}.ec-tg-gutter-corner{width:var(--ec-tg-gutter-width, 60px);flex-shrink:0}.ec-tg-day-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 0;min-width:0;border-left:1px solid var(--ec-grid-line, #e0e0e0)}.ec-tg-day-header.ec-tg-today{color:var(--ec-tg-today-text, #1a73e8)}.ec-tg-day-name{font-size:11px;font-weight:500;text-transform:uppercase;color:inherit}.ec-tg-day-number{font-size:22px;font-weight:400;line-height:1.3;color:inherit}.ec-tg-today-number{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--ec-tg-today-circle, #1a73e8);color:var(--ec-tg-today-circle-text, #ffffff)}.ec-tg-allday{display:flex;border-bottom:1px solid var(--ec-header-border, #e0e0e0);background:var(--ec-header-bg, #ffffff);position:sticky;z-index:3;min-height:var(--ec-tg-allday-min-height, 28px);max-height:var(--ec-tg-allday-max-height, 120px)}.ec-tg-allday-row{flex:1;display:flex;min-width:0;overflow-y:auto}.ec-tg-allday-cell{flex:1;display:flex;flex-direction:column;gap:2px;padding:2px;min-width:0;border-left:1px solid var(--ec-grid-line, #e0e0e0)}.ec-tg-allday-cell.ec-tg-allday-drag{background:var(--ec-drag-highlight, rgba(3, 155, 229, 0.15))}.ec-tg-body{display:flex;margin-top:-1px}.ec-tg-gutter{width:var(--ec-tg-gutter-width, 60px);flex-shrink:0}.ec-tg-gutter-slot{border-top:1px dashed var(--ec-tg-slot-border, #e0e0e0)}.ec-tg-gutter-slot.ec-tg-gutter-hour{border-top:1px solid var(--ec-tg-slot-hour-border, #e0e0e0)}.ec-tg-gutter-label{padding:2px 8px 0 4px;font-size:11px;color:var(--ec-tg-gutter-text, #888888);line-height:1;white-space:nowrap}.ec-tg-content{flex:1;display:flex;min-width:0}.ec-tg-column{flex:1;position:relative;min-width:0;border-left:1px solid var(--ec-grid-line, #e0e0e0)}.ec-tg-column.ec-tg-today{background:var(--ec-tg-today-bg, rgba(26, 115, 232, 0.04))}.ec-tg-slot{border-top:1px dashed var(--ec-tg-slot-border, #e0e0e0)}.ec-tg-slot.ec-tg-slot-hour{border-top:1px solid var(--ec-tg-slot-hour-border, #e0e0e0)}.ec-tg-entry{position:absolute;left:0;right:0;border-radius:var(--ec-entry-radius, 4px);padding:2px 4px;font-size:11px;overflow:hidden;cursor:pointer;user-select:none;background:var(--ec-entry-chip-bg, #d3e3fd);color:var(--ec-entry-chip-text, #1b4fa3);border-left:var(--ec-entry-accent-width, 3px) solid var(--ec-tg-entry-accent, #1b66c9);z-index:1}.ec-tg-entry:hover{opacity:.9;z-index:2}.ec-tg-entry-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ec-tg-entry-time{font-size:10px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ec-tg-entry-resize-handle{position:absolute;left:0;right:0;height:6px;z-index:2}.ec-tg-entry-resize-handle::before{content:"";position:absolute;left:0;right:0;height:20px;top:50%;transform:translateY(-50%)}.ec-tg-entry-resize-handle.ec-tg-entry-resize-handle-top{top:0;cursor:n-resize}.ec-tg-entry-resize-handle.ec-tg-entry-resize-handle-bottom{bottom:0;cursor:s-resize}.ec-entry-dragging{opacity:.4}.ec-entry-drag-preview{opacity:.7;pointer-events:none;box-shadow:0 2px 6px rgba(0,0,0,.15);z-index:10}body.ec-dragging .ec-month-day,body.ec-dragging .ec-tg-allday-cell,body.ec-dragging .ec-tg-column,body.ec-dragging .ec-entry{pointer-events:none}.ec-view-container.ec-swipe-transition{transition:transform .2s ease-out}.ec-tg-drag-preview{position:absolute;left:0;right:0;background:var(--ec-drag-highlight, rgba(3, 155, 229, 0.15));border-radius:var(--ec-entry-radius, 4px);border-left:var(--ec-entry-accent-width, 3px) solid var(--ec-tg-entry-accent, #1b66c9);z-index:5;pointer-events:none;font-size:11px;color:var(--ec-content-text, #333333);padding:2px 4px;font-weight:500;overflow:hidden;white-space:nowrap}.ec-toolbar-sidebar-toggle{display:none}.ec-sidebar-backdrop{display:none}.ec-mobile{position:relative}.ec-mobile .ec-sidebar{position:absolute;top:0;left:0;height:100%;z-index:20;box-shadow:2px 0 8px rgba(0,0,0,.15);transform:translateX(-100%);transition:transform .25s ease}.ec-mobile .ec-sidebar.ec-sidebar-open{transform:translateX(0)}.ec-mobile .ec-sidebar-backdrop{display:block;position:absolute;inset:0;z-index:19;background:rgba(0,0,0,.3)}.ec-mobile .ec-toolbar{height:56px;padding:0 8px}.ec-mobile .ec-toolbar-sidebar-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:20px;flex-shrink:0}.ec-mobile .ec-toolbar-nav-btn{width:44px;height:44px;font-size:24px;line-height:44px}.ec-mobile .ec-toolbar-btn{min-height:44px}.ec-mobile .ec-toolbar-today{padding:8px 12px}.ec-mobile .ec-toolbar-title{font-size:16px;padding:0 4px}.ec-mobile .ec-mini-day{width:36px;height:36px;line-height:36px;font-size:13px}.ec-mobile .ec-mini-nav-btn{width:36px;height:36px;line-height:36px}.ec-mobile .ec-mini-row{border-radius:18px}.ec-mobile .ec-toolbar-view-btn[data-view-mode=week]{display:none}.ec-mobile .ec-entry{height:28px;line-height:28px;font-size:12px}.ec-mobile .ec-agenda-entry{height:56px;padding:0 12px}.ec-mobile .ec-agenda-day-header{padding:12px}.ec-mobile .ec-calendar-list-checkbox{width:20px;height:20px}.ec-mobile .ec-calendar-list-item{padding:6px 4px}.ec-mobile .ec-calendar-list-remove{opacity:1;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.ec-tooltip{position:absolute;z-index:15;background:var(--ec-tooltip-bg, var(--ec-content-bg, #ffffff));color:var(--ec-tooltip-text, var(--ec-content-text, #333333));border:1px solid var(--ec-tooltip-border, var(--ec-grid-line, #e0e0e0));border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.15);padding:8px 12px;max-width:300px;pointer-events:none;font-size:12px;line-height:1.4}.ec-tooltip-title{font-weight:600;font-size:13px;margin-bottom:4px}.ec-tooltip-row{display:flex;gap:6px}.ec-tooltip-label{color:var(--ec-tooltip-label, #888888);flex-shrink:0}.ec-tooltip-value{color:var(--ec-tooltip-text, var(--ec-content-text, #333333))}.ec-tg-now-line{position:absolute;left:0;right:0;height:var(--ec-tg-now-line-height, 2px);background:var(--ec-tg-now-line, #ea4335);z-index:3;pointer-events:none}.ec-tg-now-line::before{content:"";position:absolute;left:-5px;top:calc(var(--ec-tg-now-line-height, 2px)/2 - 5px);width:10px;height:10px;border-radius:50%;background:var(--ec-tg-now-line, #ea4335)}
@@ -1 +1 @@
1
- .gc-host{display:block;height:100%;overflow:hidden}.gc-wrapper{width:100%;height:100%;display:flex;gap:0px;color:var(--gc-sheet-text-color, #000000)}.gc-divider{width:0px;height:100%;position:relative}.gc-divider .resizer{top:0px;bottom:0px;position:absolute;right:-10px;z-index:30;width:20px;cursor:ew-resize}.gc-sheet{height:100%;display:inline-block}.gc-sheet .row-header{width:30px}.gc-sheet .header{position:sticky;top:0;z-index:8;height:50px;border-top:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-bottom:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-left:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);display:flex;align-items:center;gap:0px;background-color:var(--gc-sheet-header-bg-color, #f8f8f8)}.gc-sheet .header .row-header{z-index:9;background-color:var(--gc-sheet-header-bg-color, #f8f8f8)}.gc-sheet .header .cell{display:flex;align-items:center;border-right:1px solid var(--gc-sheet-header-cell-divider-color, #a0a0a0);height:50px;padding-left:8px;padding-right:8px;position:relative;user-select:none}.gc-sheet .header .cell .resizer{height:100%;position:absolute;right:-10px;z-index:10;width:20px;cursor:ew-resize}.gc-sheet .header .cell.dotted{text-decoration:underline dotted !important}.gc-sheet .header .cell.hidden{display:none !important}.gc-sheet .content{overflow-x:auto;overflow-y:auto;height:100%;outline:none}.gc-sheet .content .row{height:30px;border-bottom:1px solid var(--gc-sheet-grid-line-color, #e0e0e0);display:flex;align-items:center;gap:0px;background-color:var(--gc-sheet-bg-color, #ffffff)}.gc-sheet .content .row.hidden{display:none}.gc-sheet .content .row .row-header{background-color:var(--gc-sheet-header-bg-color, #f8f8f8);border-top:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-bottom:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-left:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-right:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0) !important;justify-content:center;cursor:default !important;user-select:none}.gc-sheet .content .row .cell{display:flex;align-items:center;border-right:1px solid var(--gc-sheet-grid-line-color, #e0e0e0);height:30px;padding-left:8px;padding-right:8px;overflow-x:hidden;white-space:nowrap;user-select:none;position:relative}.gc-sheet .content .row .cell.row-header{position:sticky;left:0;z-index:2}.gc-sheet .content .row .cell .editor{height:28px;width:100%;padding-left:0px;padding-right:0px;border:none;background-color:var(--gc-editor-bg-color, #ffffff);color:var(--gc-editor-text-color, #000000)}.gc-sheet .content .row .cell input.editor{line-height:26px}.gc-sheet .content .row .cell input.editor:focus{outline:none}.gc-sheet .content .row .cell.focused{outline:2px solid var(--gc-sheet-focus-border-color, #4a7cf6);outline-offset:-2px}.gc-sheet .content .row .cell .highlight{border:1px solid var(--gc-sheet-highlight-border-color, #647ee8);position:absolute;z-index:10;left:0px;top:0px;right:0px;bottom:0px}.gc-sheet .content .row .cell.hidden{display:none !important}.gc-sheet .content .row .tree-with-name{flex-wrap:nowrap}.gc-sheet .content .row .tree-with-name .tree{margin-left:3px;display:flex;flex:0 0 auto;justify-content:end;align-items:center}.gc-sheet .content .row .tree-with-name .name{display:flex;align-items:center;padding-left:5px;overflow-x:visible;white-space:nowrap;user-select:none}.gc-sheet .content .row .resources{gap:7px}.gc-sheet .content .row .resources .wrapper{display:flex;align-items:center;gap:3px}.gc-sheet .content .row .resources .wrapper .avatar{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-size:10pt}.gc-sheet .content .row .resources .wrapper .capacity{font-size:11pt}.gc-sheet .content .row .task-summary{font-weight:bold}.gc-sheet .content .row.hover{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row.hover .cell{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row:hover{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row:hover .cell{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row.selected{background-color:var(--gc-sheet-selected-bg-color, #f8f8f8)}.gc-sheet .content .row.selected .cell{background-color:var(--gc-sheet-selected-bg-color, #f8f8f8)}.gc-sheet .content .row.selected .row-header{background-color:var(--gc-sheet-selected-row-header-color, #e8e8e8)}.gc-chart{flex:1;height:100%;display:inline-block;overflow-x:scroll;overflow-y:hidden;z-index:16}.gc-chart .inner{width:1000px;height:1px}.gc-chart .canvas{height:100%;width:100%;position:absolute;z-index:15}.gc-chart.no-pointer-events{pointer-events:none}.gc-chart.cursor-pointer{cursor:pointer !important}.gc-chart.cursor-all-scroll{cursor:all-scroll !important}.gc-chart.cursor-ew-resize{cursor:ew-resize !important}.gc-chart.cursor-ns-resize{cursor:ns-resize !important}.gc-chart.cursor-nwse-resize{cursor:nwse-resize !important}.gc-chart.cursor-nesw-resize{cursor:nesw-resize !important}.gc-chart.cursor-crosshair{cursor:crosshair !important}.gc-tree-icon{display:flex;align-items:center;cursor:pointer;padding:5px 5px 5px 5px}.gc-tree-icon .tree-icon{width:6px;height:6px;display:inline-block;transform:rotate(0deg);transition:transform .3s ease;border-style:solid;border-width:2px 2px 0 0;border-color:var(--gc-tree-icon-color, #606060)}.gc-tree-icon.collapsed .tree-icon{transform:rotate(45deg);margin-bottom:3px}.gc-tree-icon.expanded .tree-icon{transform:rotate(-225deg);margin-bottom:6px}.gc-wrapper[data-color-scheme=light] .gc-sheet .content,.gc-wrapper[data-color-scheme=light] .gc-chart{scrollbar-color:#ccc #f5f5f5}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar{width:12px;height:12px}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar-track,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar-track{background:#f5f5f5}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar-thumb,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar-thumb{background:#ccc;border-radius:6px}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar-thumb:hover,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar-thumb:hover{background:#d8d8d8}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content,.gc-wrapper[data-color-scheme=dark] .gc-chart{scrollbar-color:#555 #1e1e1e}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content::-webkit-scrollbar,.gc-wrapper[data-color-scheme=dark] .gc-chart::-webkit-scrollbar{width:12px;height:12px}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content::-webkit-scrollbar-track,.gc-wrapper[data-color-scheme=dark] .gc-chart::-webkit-scrollbar-track{background:#1e1e1e}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content::-webkit-scrollbar-thumb,.gc-wrapper[data-color-scheme=dark] .gc-chart::-webkit-scrollbar-thumb{background:#555;border-radius:6px}
1
+ .gc-host{display:block;height:100%;overflow:hidden}.gc-host *,.gc-host *::before,.gc-host *::after{box-sizing:content-box}.gc-wrapper{width:100%;height:100%;display:flex;gap:0px;color:var(--gc-sheet-text-color, #000000)}.gc-divider{width:0px;height:100%;position:relative}.gc-divider .resizer{top:0px;bottom:0px;position:absolute;right:-10px;z-index:30;width:20px;cursor:ew-resize}.gc-sheet{height:100%;display:inline-block;overflow:hidden;flex-shrink:0}.gc-sheet .row-header{width:30px}.gc-sheet .header{position:sticky;top:0;z-index:8;height:50px;border-top:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-bottom:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);display:flex;align-items:center;gap:0px;background-color:var(--gc-sheet-header-bg-color, #f8f8f8)}.gc-sheet .header .row-header{z-index:9;background-color:var(--gc-sheet-header-bg-color, #f8f8f8);border-left:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-right:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0)}.gc-sheet .header.reordering{cursor:grabbing}.gc-sheet .header.reordering .cell .resizer{cursor:grabbing}.gc-sheet .header .reorder-indicator{position:absolute;width:2px;height:100%;background-color:var(--gc-sheet-focus-border-color, #0078d4);z-index:11;pointer-events:none;top:0}.gc-sheet .header .cell{display:flex;flex-shrink:0;align-items:center;border-right:1px solid var(--gc-sheet-header-cell-divider-color, #a0a0a0);height:50px;padding-left:8px;padding-right:8px;position:relative;user-select:none}.gc-sheet .header .cell .resizer{height:100%;position:absolute;right:-10px;z-index:10;width:20px;cursor:ew-resize}.gc-sheet .header .cell.dotted{text-decoration:underline dotted !important}.gc-sheet .header .cell.dragging{opacity:.3}.gc-sheet .header .cell.hidden{display:none !important}.gc-sheet .content{overflow-x:auto;overflow-y:auto;height:100%;outline:none;background-color:var(--gc-sheet-bg-color, #ffffff)}.gc-sheet .content .row{height:30px;border-bottom:1px solid var(--gc-sheet-grid-line-color, #e0e0e0);display:flex;align-items:center;gap:0px;background-color:var(--gc-sheet-bg-color, #ffffff)}.gc-sheet .content .row.hidden{display:none}.gc-sheet .content .row .row-header{background-color:var(--gc-sheet-header-bg-color, #f8f8f8);border-bottom:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-left:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-right:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0) !important;justify-content:center;cursor:default !important;user-select:none}.gc-sheet .content .row .cell{display:flex;flex-shrink:0;align-items:center;align-self:stretch;border-right:1px solid var(--gc-sheet-grid-line-color, #e0e0e0);padding-left:8px;padding-right:8px;overflow-x:hidden;white-space:nowrap;user-select:none;position:relative}.gc-sheet .content .row .cell.row-header{position:sticky;left:0;z-index:2}.gc-sheet .content .row .cell .editor{height:28px;width:100%;padding-left:0px;padding-right:0px;border:none;background-color:var(--gc-editor-bg-color, #ffffff);color:var(--gc-editor-text-color, #000000)}.gc-sheet .content .row .cell input.editor{line-height:26px}.gc-sheet .content .row .cell input.editor:focus{outline:none}.gc-sheet .content .row .cell.focused{outline:2px solid var(--gc-sheet-focus-border-color, #4a7cf6);outline-offset:-2px}.gc-sheet .content .row .cell .highlight{border:1px solid var(--gc-sheet-highlight-border-color, #647ee8);position:absolute;z-index:10;left:0px;top:0px;right:0px;bottom:0px}.gc-sheet .content .row .cell.hidden{display:none !important}.gc-sheet .content .row.hover{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row.hover .cell{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row:hover{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row:hover .cell{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row.selected{background-color:var(--gc-sheet-selected-bg-color, #f8f8f8)}.gc-sheet .content .row.selected .cell{background-color:var(--gc-sheet-selected-bg-color, #f8f8f8)}.gc-sheet .content .row.selected .row-header{background-color:var(--gc-sheet-selected-row-header-color, #e8e8e8)}.gc-sheet .content .row.frozen{background-color:var(--gc-sheet-bg-color, #ffffff);border-bottom:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0)}.gc-sheet .content .row.frozen .cell{background-color:var(--gc-sheet-bg-color, #ffffff)}.gc-chart{flex:1;height:100%;display:inline-block;overflow-x:scroll;overflow-y:hidden;z-index:16;outline:none}.gc-chart:focus-visible{outline:2px solid var(--gc-sheet-focus-border-color, #4a7cf6);outline-offset:-2px}.gc-chart .inner{width:1000px;height:1px}.gc-chart .canvas{height:100%;width:100%;position:absolute;z-index:15}.gc-chart.no-pointer-events{pointer-events:none}.gc-chart.cursor-pointer{cursor:pointer !important}.gc-chart.cursor-all-scroll{cursor:all-scroll !important}.gc-chart.cursor-ew-resize{cursor:ew-resize !important}.gc-chart.cursor-ns-resize{cursor:ns-resize !important}.gc-chart.cursor-nwse-resize{cursor:nwse-resize !important}.gc-chart.cursor-nesw-resize{cursor:nesw-resize !important}.gc-chart.cursor-crosshair{cursor:crosshair !important}.reorder-ghost{position:fixed;z-index:1000;pointer-events:none;opacity:.5;box-sizing:border-box;display:flex;align-items:center;border:1px solid color-mix(in srgb, var(--gc-sheet-header-cell-border-color, #a0a0a0) 50%, transparent);background-color:var(--gc-sheet-header-bg-color, #f8f8f8);color:var(--gc-sheet-text-color, #000000)}.gc-wrapper[data-color-scheme=light] .gc-sheet .content,.gc-wrapper[data-color-scheme=light] .gc-chart{scrollbar-color:#ccc #f5f5f5}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar{width:12px;height:12px}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar-track,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar-track{background:#f5f5f5}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar-thumb,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar-thumb{background:#ccc;border-radius:6px}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar-thumb:hover,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar-thumb:hover{background:#d8d8d8}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content,.gc-wrapper[data-color-scheme=dark] .gc-chart{scrollbar-color:#555 #1e1e1e}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content::-webkit-scrollbar,.gc-wrapper[data-color-scheme=dark] .gc-chart::-webkit-scrollbar{width:12px;height:12px}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content::-webkit-scrollbar-track,.gc-wrapper[data-color-scheme=dark] .gc-chart::-webkit-scrollbar-track{background:#1e1e1e}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content::-webkit-scrollbar-thumb,.gc-wrapper[data-color-scheme=dark] .gc-chart::-webkit-scrollbar-thumb{background:#555;border-radius:6px}.gc-scheduler .gc-sheet .content{overflow-y:hidden}.gc-scheduler .gc-scrollbar{overflow-y:auto;overflow-x:hidden;height:100%}.gc-scheduler .gc-scrollbar>div{width:1px}.gc-scheduler[data-color-scheme=light] .gc-scrollbar{scrollbar-color:#ccc #f5f5f5}.gc-scheduler[data-color-scheme=light] .gc-scrollbar::-webkit-scrollbar{width:12px}.gc-scheduler[data-color-scheme=light] .gc-scrollbar::-webkit-scrollbar-track{background:#f5f5f5}.gc-scheduler[data-color-scheme=light] .gc-scrollbar::-webkit-scrollbar-thumb{background:#ccc;border-radius:6px}.gc-scheduler[data-color-scheme=light] .gc-scrollbar::-webkit-scrollbar-thumb:hover{background:#d8d8d8}.gc-scheduler[data-color-scheme=dark] .gc-scrollbar{scrollbar-color:#555 #1e1e1e}.gc-scheduler[data-color-scheme=dark] .gc-scrollbar::-webkit-scrollbar{width:12px}.gc-scheduler[data-color-scheme=dark] .gc-scrollbar::-webkit-scrollbar-track{background:#1e1e1e}.gc-scheduler[data-color-scheme=dark] .gc-scrollbar::-webkit-scrollbar-thumb{background:#555;border-radius:6px}.gc-sheet .content .row .tree-with-name{flex-wrap:nowrap}.gc-sheet .content .row .tree-with-name .tree{margin-left:3px;display:flex;flex:0 0 auto;justify-content:end;align-items:center}.gc-sheet .content .row .tree-with-name .name{display:flex;align-items:center;padding-left:5px;overflow-x:visible;white-space:nowrap;user-select:none}.gc-sheet .content .row .resources{gap:7px}.gc-sheet .content .row .resources .wrapper{display:flex;align-items:center;gap:3px}.gc-sheet .content .row .resources .wrapper .avatar{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-size:10pt}.gc-sheet .content .row .resources .wrapper .capacity{font-size:11pt}.gc-sheet .content .row .task-summary{font-weight:bold}.gc-tree-icon{display:flex;align-items:center;cursor:pointer;padding:5px 5px 5px 5px}.gc-tree-icon .tree-icon{width:6px;height:6px;display:inline-block;transform:rotate(0deg);transition:transform .3s ease;border-style:solid;border-width:2px 2px 0 0;border-color:var(--gc-tree-icon-color, #606060)}.gc-tree-icon.collapsed .tree-icon{transform:rotate(45deg);margin-bottom:3px}.gc-tree-icon.expanded .tree-icon{transform:rotate(-225deg);margin-bottom:6px}
@@ -0,0 +1 @@
1
+ .gc-host{display:block;height:100%;overflow:hidden}.gc-host *,.gc-host *::before,.gc-host *::after{box-sizing:content-box}.gc-wrapper{width:100%;height:100%;display:flex;gap:0px;color:var(--gc-sheet-text-color, #000000)}.gc-divider{width:0px;height:100%;position:relative}.gc-divider .resizer{top:0px;bottom:0px;position:absolute;right:-10px;z-index:30;width:20px;cursor:ew-resize}.gc-sheet{height:100%;display:inline-block;overflow:hidden;flex-shrink:0}.gc-sheet .row-header{width:30px}.gc-sheet .header{position:sticky;top:0;z-index:8;height:50px;border-top:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-bottom:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);display:flex;align-items:center;gap:0px;background-color:var(--gc-sheet-header-bg-color, #f8f8f8)}.gc-sheet .header .row-header{z-index:9;background-color:var(--gc-sheet-header-bg-color, #f8f8f8);border-left:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-right:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0)}.gc-sheet .header.reordering{cursor:grabbing}.gc-sheet .header.reordering .cell .resizer{cursor:grabbing}.gc-sheet .header .reorder-indicator{position:absolute;width:2px;height:100%;background-color:var(--gc-sheet-focus-border-color, #0078d4);z-index:11;pointer-events:none;top:0}.gc-sheet .header .cell{display:flex;flex-shrink:0;align-items:center;border-right:1px solid var(--gc-sheet-header-cell-divider-color, #a0a0a0);height:50px;padding-left:8px;padding-right:8px;position:relative;user-select:none}.gc-sheet .header .cell .resizer{height:100%;position:absolute;right:-10px;z-index:10;width:20px;cursor:ew-resize}.gc-sheet .header .cell.dotted{text-decoration:underline dotted !important}.gc-sheet .header .cell.dragging{opacity:.3}.gc-sheet .header .cell.hidden{display:none !important}.gc-sheet .content{overflow-x:auto;overflow-y:auto;height:100%;outline:none;background-color:var(--gc-sheet-bg-color, #ffffff)}.gc-sheet .content .row{height:30px;border-bottom:1px solid var(--gc-sheet-grid-line-color, #e0e0e0);display:flex;align-items:center;gap:0px;background-color:var(--gc-sheet-bg-color, #ffffff)}.gc-sheet .content .row.hidden{display:none}.gc-sheet .content .row .row-header{background-color:var(--gc-sheet-header-bg-color, #f8f8f8);border-bottom:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-left:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-right:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0) !important;justify-content:center;cursor:default !important;user-select:none}.gc-sheet .content .row .cell{display:flex;flex-shrink:0;align-items:center;align-self:stretch;border-right:1px solid var(--gc-sheet-grid-line-color, #e0e0e0);padding-left:8px;padding-right:8px;overflow-x:hidden;white-space:nowrap;user-select:none;position:relative}.gc-sheet .content .row .cell.row-header{position:sticky;left:0;z-index:2}.gc-sheet .content .row .cell .editor{height:28px;width:100%;padding-left:0px;padding-right:0px;border:none;background-color:var(--gc-editor-bg-color, #ffffff);color:var(--gc-editor-text-color, #000000)}.gc-sheet .content .row .cell input.editor{line-height:26px}.gc-sheet .content .row .cell input.editor:focus{outline:none}.gc-sheet .content .row .cell.focused{outline:2px solid var(--gc-sheet-focus-border-color, #4a7cf6);outline-offset:-2px}.gc-sheet .content .row .cell .highlight{border:1px solid var(--gc-sheet-highlight-border-color, #647ee8);position:absolute;z-index:10;left:0px;top:0px;right:0px;bottom:0px}.gc-sheet .content .row .cell.hidden{display:none !important}.gc-sheet .content .row.hover{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row.hover .cell{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row:hover{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row:hover .cell{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row.selected{background-color:var(--gc-sheet-selected-bg-color, #f8f8f8)}.gc-sheet .content .row.selected .cell{background-color:var(--gc-sheet-selected-bg-color, #f8f8f8)}.gc-sheet .content .row.selected .row-header{background-color:var(--gc-sheet-selected-row-header-color, #e8e8e8)}.gc-sheet .content .row.frozen{background-color:var(--gc-sheet-bg-color, #ffffff);border-bottom:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0)}.gc-sheet .content .row.frozen .cell{background-color:var(--gc-sheet-bg-color, #ffffff)}.gc-chart{flex:1;height:100%;display:inline-block;overflow-x:scroll;overflow-y:hidden;z-index:16;outline:none}.gc-chart:focus-visible{outline:2px solid var(--gc-sheet-focus-border-color, #4a7cf6);outline-offset:-2px}.gc-chart .inner{width:1000px;height:1px}.gc-chart .canvas{height:100%;width:100%;position:absolute;z-index:15}.gc-chart.no-pointer-events{pointer-events:none}.gc-chart.cursor-pointer{cursor:pointer !important}.gc-chart.cursor-all-scroll{cursor:all-scroll !important}.gc-chart.cursor-ew-resize{cursor:ew-resize !important}.gc-chart.cursor-ns-resize{cursor:ns-resize !important}.gc-chart.cursor-nwse-resize{cursor:nwse-resize !important}.gc-chart.cursor-nesw-resize{cursor:nesw-resize !important}.gc-chart.cursor-crosshair{cursor:crosshair !important}.reorder-ghost{position:fixed;z-index:1000;pointer-events:none;opacity:.5;box-sizing:border-box;display:flex;align-items:center;border:1px solid color-mix(in srgb, var(--gc-sheet-header-cell-border-color, #a0a0a0) 50%, transparent);background-color:var(--gc-sheet-header-bg-color, #f8f8f8);color:var(--gc-sheet-text-color, #000000)}.gc-wrapper[data-color-scheme=light] .gc-sheet .content,.gc-wrapper[data-color-scheme=light] .gc-chart{scrollbar-color:#ccc #f5f5f5}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar{width:12px;height:12px}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar-track,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar-track{background:#f5f5f5}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar-thumb,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar-thumb{background:#ccc;border-radius:6px}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar-thumb:hover,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar-thumb:hover{background:#d8d8d8}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content,.gc-wrapper[data-color-scheme=dark] .gc-chart{scrollbar-color:#555 #1e1e1e}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content::-webkit-scrollbar,.gc-wrapper[data-color-scheme=dark] .gc-chart::-webkit-scrollbar{width:12px;height:12px}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content::-webkit-scrollbar-track,.gc-wrapper[data-color-scheme=dark] .gc-chart::-webkit-scrollbar-track{background:#1e1e1e}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content::-webkit-scrollbar-thumb,.gc-wrapper[data-color-scheme=dark] .gc-chart::-webkit-scrollbar-thumb{background:#555;border-radius:6px}.gc-scheduler .gc-sheet .content{overflow-y:hidden}.gc-scheduler .gc-scrollbar{overflow-y:auto;overflow-x:hidden;height:100%}.gc-scheduler .gc-scrollbar>div{width:1px}.gc-scheduler[data-color-scheme=light] .gc-scrollbar{scrollbar-color:#ccc #f5f5f5}.gc-scheduler[data-color-scheme=light] .gc-scrollbar::-webkit-scrollbar{width:12px}.gc-scheduler[data-color-scheme=light] .gc-scrollbar::-webkit-scrollbar-track{background:#f5f5f5}.gc-scheduler[data-color-scheme=light] .gc-scrollbar::-webkit-scrollbar-thumb{background:#ccc;border-radius:6px}.gc-scheduler[data-color-scheme=light] .gc-scrollbar::-webkit-scrollbar-thumb:hover{background:#d8d8d8}.gc-scheduler[data-color-scheme=dark] .gc-scrollbar{scrollbar-color:#555 #1e1e1e}.gc-scheduler[data-color-scheme=dark] .gc-scrollbar::-webkit-scrollbar{width:12px}.gc-scheduler[data-color-scheme=dark] .gc-scrollbar::-webkit-scrollbar-track{background:#1e1e1e}.gc-scheduler[data-color-scheme=dark] .gc-scrollbar::-webkit-scrollbar-thumb{background:#555;border-radius:6px}.gc-sheet .content .row .tree-with-name{flex-wrap:nowrap}.gc-sheet .content .row .tree-with-name .tree{margin-left:3px;display:flex;flex:0 0 auto;justify-content:end;align-items:center}.gc-sheet .content .row .tree-with-name .name{display:flex;align-items:center;padding-left:5px;overflow-x:visible;white-space:nowrap;user-select:none}.gc-sheet .content .row .resources{gap:7px}.gc-sheet .content .row .resources .wrapper{display:flex;align-items:center;gap:3px}.gc-sheet .content .row .resources .wrapper .avatar{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-size:10pt}.gc-sheet .content .row .resources .wrapper .capacity{font-size:11pt}.gc-sheet .content .row .task-summary{font-weight:bold}.gc-tree-icon{display:flex;align-items:center;cursor:pointer;padding:5px 5px 5px 5px}.gc-tree-icon .tree-icon{width:6px;height:6px;display:inline-block;transform:rotate(0deg);transition:transform .3s ease;border-style:solid;border-width:2px 2px 0 0;border-color:var(--gc-tree-icon-color, #606060)}.gc-tree-icon.collapsed .tree-icon{transform:rotate(45deg);margin-bottom:3px}.gc-tree-icon.expanded .tree-icon{transform:rotate(-225deg);margin-bottom:6px}.gc-sheet .content .row .pin-icon{display:inline-flex;align-items:center;justify-content:center;margin-left:2px;opacity:.5}.gc-sheet .content .row .pin-icon svg{width:12px;height:12px}.gc-sheet .content .rows{position:relative}.gc-sheet .content .rows .row-reorder-indicator{position:absolute;left:0;right:0;height:2px;background-color:var(--gc-sheet-focus-border-color, #0078d4);z-index:11;pointer-events:none;transform:translateY(-1px)}.ec-host{display:block;height:100%;overflow:hidden}.ec-host *,.ec-host *::before,.ec-host *::after{box-sizing:border-box}.ec-wrapper{width:100%;height:100%;display:flex;color:var(--ec-content-text, #333333);background:var(--ec-content-bg, #ffffff);outline:none}.ec-wrapper::-webkit-scrollbar{width:8px;height:8px}.ec-wrapper::-webkit-scrollbar-thumb{background:var(--ec-scrollbar-thumb, #c1c1c1);border-radius:4px}.ec-wrapper::-webkit-scrollbar-track{background:var(--ec-scrollbar-track, #f1f1f1)}.ec-sidebar{width:var(--ec-sidebar-width, 256px);flex-shrink:0;border-right:1px solid var(--ec-sidebar-border, #e0e0e0);background:var(--ec-sidebar-bg, #ffffff);color:var(--ec-sidebar-text, #333333);overflow-y:auto}.ec-main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.ec-toolbar{display:flex;align-items:center;height:var(--ec-toolbar-height, 48px);padding:0 12px;background:var(--ec-toolbar-bg, #ffffff);border-bottom:1px solid var(--ec-toolbar-border, #e0e0e0);flex-shrink:0;gap:8px;user-select:none}.ec-toolbar-nav{display:flex;align-items:center;gap:4px;margin-right:auto}.ec-toolbar-btn{border:none;background:rgba(0,0,0,0);color:var(--ec-toolbar-btn-color, #555555);cursor:pointer;padding:4px 10px;border-radius:4px;font:inherit;font-size:14px;line-height:1.5}.ec-toolbar-btn:hover{background:var(--ec-toolbar-btn-hover-bg, #f0f0f0)}.ec-toolbar-nav-btn{font-size:22px;line-height:1;width:32px;height:32px}.ec-toolbar-today{font-weight:500}.ec-toolbar-title{font-size:18px;font-weight:600;color:var(--ec-toolbar-text, #333333);padding:0 8px;white-space:nowrap}.ec-toolbar-views{display:flex;align-items:center;gap:2px}.ec-toolbar-view-btn.ec-active{background:var(--ec-toolbar-active-bg, #e8f0fe);color:var(--ec-toolbar-active-text, #1a73e8)}.ec-view-container{flex:1;overflow:hidden;position:relative}.ec-month-view{height:100%;display:flex;flex-direction:column}.ec-month-header{display:flex;background:var(--ec-header-bg, #ffffff);border-bottom:1px solid var(--ec-header-border, #e0e0e0);flex-shrink:0}.ec-month-header-cell{flex:1;text-align:center;padding:6px 0;font-size:11px;font-weight:500;text-transform:uppercase;color:var(--ec-header-text, #555555)}.ec-month-grid{flex:1;display:flex;flex-direction:column;overflow:hidden}.ec-month-week{flex:1;display:flex;min-height:0;position:relative}.ec-month-day{flex:1;border-right:1px solid var(--ec-grid-line, #e0e0e0);border-bottom:1px solid var(--ec-grid-line, #e0e0e0);overflow:hidden;min-width:0;cursor:default}.ec-month-day:last-child{border-right:none}.ec-month-day:hover{background:var(--ec-hover-bg, rgba(0, 0, 0, 0.04))}.ec-month-day.ec-today{background:var(--ec-today-bg, #e8f0fe)}.ec-month-day.ec-month-day-drag{background:var(--ec-drag-highlight, rgba(3, 155, 229, 0.15))}.ec-month-day.ec-other-month{background:var(--ec-other-month-bg, #fafafa)}.ec-month-day.ec-other-month .ec-month-day-header{color:var(--ec-other-month-text, #b0b0b0)}.ec-month-day-header{padding:4px 6px;font-size:12px;font-weight:500;color:var(--ec-content-text, #333333);height:var(--ec-day-header-height, 24px);line-height:calc(var(--ec-day-header-height, 24px) - 8px)}.ec-month-day-entries{display:flex;flex-direction:column;gap:var(--ec-entry-gap, 2px);padding:0 2px;overflow:hidden}.ec-entry{height:var(--ec-entry-height, 22px);line-height:var(--ec-entry-height, 22px);border-radius:var(--ec-entry-radius, 4px);padding:0 4px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;flex-shrink:0;user-select:none}.ec-entry:hover{opacity:.85}.ec-entry-multiday{background:var(--ec-entry-chip-bg, #d3e3fd);color:var(--ec-entry-chip-text, #1b4fa3)}.ec-entry-single{background:var(--ec-entry-chip-bg, #d3e3fd);color:var(--ec-entry-chip-text, #1b4fa3)}.ec-entry-tentative{background:repeating-linear-gradient(-45deg, transparent, transparent 2px, var(--ec-entry-stripe-color, #d3e3fd) 2px, var(--ec-entry-stripe-color, #d3e3fd) 4px) !important}.ec-entry-needs-action{background:var(--ec-content-bg, #ffffff) !important;border:1px dashed var(--ec-entry-status-color, #999999);border-left:var(--ec-entry-accent-width, 3px) dashed var(--ec-entry-status-color, #999999)}.ec-entry-declined{background:var(--ec-content-bg, #ffffff) !important;opacity:var(--ec-declined-opacity, 0.55)}.ec-entry-declined .ec-tg-entry-title,.ec-entry-declined{text-decoration:line-through}.ec-entry-icon{display:inline-flex;align-items:center;vertical-align:text-bottom;flex-shrink:0;margin-right:3px}.ec-entry-icon svg{width:14px;height:14px}.ec-entry-multiday .ec-entry-icon svg,.ec-entry-single .ec-entry-icon svg{width:12px;height:12px}.ec-month-day-more{padding:0 6px;font-size:11px;color:var(--ec-more-text, #555555);cursor:pointer}.ec-month-day-more:hover{text-decoration:underline}.ec-mini-calendar{padding:12px;user-select:none}.ec-mini-header{display:flex;align-items:center;margin-bottom:8px}.ec-mini-nav-btn{border:none;background:rgba(0,0,0,0);color:var(--ec-sidebar-text, #333333);cursor:pointer;width:28px;height:28px;border-radius:50%;font-size:16px;line-height:28px;text-align:center;padding:0}.ec-mini-nav-btn:hover{background:var(--ec-mini-hover-bg, #f0f0f0)}.ec-mini-title{flex:1;border:none;background:rgba(0,0,0,0);color:var(--ec-sidebar-text, #333333);cursor:pointer;font:inherit;font-size:13px;font-weight:500;text-align:center;padding:4px 0;border-radius:4px}.ec-mini-title:hover{background:var(--ec-mini-hover-bg, #f0f0f0)}.ec-mini-daynames{display:grid;grid-template-columns:repeat(7, 1fr);margin-bottom:2px}.ec-mini-dayname{text-align:center;font-size:10px;font-weight:500;color:var(--ec-sidebar-text, #333333);line-height:24px}.ec-mini-dayname.ec-mini-weekend{color:var(--ec-mini-weekend-text, #777777)}.ec-mini-grid{display:flex;flex-direction:column;gap:0}.ec-mini-row{display:grid;grid-template-columns:repeat(7, 1fr);border:1px solid rgba(0,0,0,0);border-radius:14px}.ec-mini-row.ec-mini-week-selected{border-color:var(--ec-mini-selected-text, #1a73e8)}.ec-mini-day{border:none;background:rgba(0,0,0,0);color:var(--ec-sidebar-text, #333333);cursor:pointer;font:inherit;font-size:11px;width:28px;height:28px;line-height:28px;text-align:center;padding:0;border-radius:50%;position:relative;justify-self:center}.ec-mini-day:hover{background:var(--ec-mini-hover-bg, #f0f0f0)}.ec-mini-day.ec-mini-other-month{color:var(--ec-mini-other-month-text, #b0b0b0)}.ec-mini-day.ec-mini-weekend{color:var(--ec-mini-weekend-text, #777777)}.ec-mini-day.ec-mini-today{background:var(--ec-mini-today-bg, #1a73e8);color:var(--ec-mini-today-text, #ffffff);font-weight:600}.ec-mini-day.ec-mini-today:hover{opacity:.85}.ec-mini-day.ec-mini-selected:not(.ec-mini-today){background:var(--ec-mini-selected-bg, #e8f0fe);color:var(--ec-mini-selected-text, #1a73e8);font-weight:600}.ec-mini-day.ec-mini-has-events::after{content:"";position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--ec-mini-dot-color, #1a73e8)}.ec-mini-day.ec-mini-today.ec-mini-has-events::after{background:var(--ec-mini-today-dot, #ffffff)}.ec-mini-grid-months .ec-mini-row{grid-template-columns:repeat(3, 1fr)}.ec-mini-month{border:none;background:rgba(0,0,0,0);color:var(--ec-sidebar-text, #333333);cursor:pointer;font:inherit;font-size:12px;padding:10px 0;border-radius:16px;text-align:center}.ec-mini-month:hover{background:var(--ec-mini-hover-bg, #f0f0f0)}.ec-mini-month.ec-mini-selected{background:var(--ec-mini-selected-bg, #e8f0fe);color:var(--ec-mini-selected-text, #1a73e8);font-weight:600}.ec-calendar-list{padding:12px;border-top:1px solid var(--ec-sidebar-border, #e0e0e0)}.ec-calendar-list-header{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--ec-cal-list-header-text, #555555);margin-bottom:8px;letter-spacing:.5px}.ec-calendar-list-items{display:flex;flex-direction:column;gap:2px}.ec-calendar-list-item{display:flex;align-items:center;gap:8px;padding:4px 4px;border-radius:4px;cursor:default}.ec-calendar-list-item:hover{background:var(--ec-mini-hover-bg, #f0f0f0)}.ec-calendar-list-item:hover .ec-calendar-list-remove{opacity:1}.ec-calendar-list-checkbox{width:16px;height:16px;border-radius:3px;border:2px solid;flex-shrink:0;cursor:pointer;padding:0;position:relative}.ec-calendar-list-checkbox.ec-checked::after{content:"";position:absolute;left:3px;top:0px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.ec-calendar-list-name{flex:1;font-size:13px;color:var(--ec-sidebar-text, #333333);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.ec-calendar-list-remove{border:none;background:rgba(0,0,0,0);color:var(--ec-sidebar-text, #333333);cursor:pointer;font-size:16px;line-height:1;padding:0 2px;opacity:0;flex-shrink:0;border-radius:3px}.ec-calendar-list-remove:hover{background:rgba(0,0,0,.1)}.ec-calendar-list-add{border:none;background:rgba(0,0,0,0);color:var(--ec-sidebar-text, #333333);cursor:pointer;font:inherit;font-size:13px;padding:6px 4px;margin-top:4px;border-radius:4px;text-align:left;width:100%}.ec-calendar-list-add:hover{background:var(--ec-mini-hover-bg, #f0f0f0)}.ec-agenda-view{height:100%;display:flex;flex-direction:column}.ec-agenda-scroll{flex:1;overflow-y:auto}.ec-agenda-scroll::-webkit-scrollbar{width:8px}.ec-agenda-scroll::-webkit-scrollbar-thumb{background:var(--ec-scrollbar-thumb, #c1c1c1);border-radius:4px}.ec-agenda-scroll::-webkit-scrollbar-track{background:var(--ec-scrollbar-track, #f1f1f1)}.ec-agenda-day:not(:first-child){border-top:1px solid var(--ec-grid-line, #e0e0e0)}.ec-agenda-day-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--ec-agenda-day-header-bg, #f8f9fa);border-bottom:1px solid var(--ec-grid-line, #e0e0e0)}.ec-agenda-day-name{font-size:15px;font-weight:600;color:var(--ec-agenda-day-header-text, #333333)}.ec-agenda-day-date{font-size:14px;color:var(--ec-agenda-day-header-text, #333333);opacity:.6}.ec-agenda-today-badge{background:var(--ec-tg-today-circle, #1a73e8);color:var(--ec-tg-today-circle-text, #ffffff);font-size:10px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px}.ec-agenda-entries{display:flex;flex-direction:column}.ec-agenda-entry{display:flex;align-items:center;gap:12px;height:var(--ec-agenda-entry-height, 48px);padding:0 14px;cursor:pointer;user-select:none;border-bottom:1px solid var(--ec-grid-line, #e0e0e0);position:relative;font-size:13px;white-space:normal;text-overflow:unset;border-radius:0;line-height:1.4;overflow:visible;outline:none !important}.ec-agenda-entry:hover{background:var(--ec-agenda-entry-hover-bg, rgba(0, 0, 0, 0.04));opacity:1}.ec-agenda-entry[aria-selected=true],.ec-agenda-entry:focus-visible{z-index:1;box-shadow:inset 0 0 0 2px var(--ec-selected-outline, #1a73e8)}.ec-agenda-entry.ec-entry-needs-action{border:1px dashed var(--ec-entry-status-color, #999999)}.ec-agenda-entry-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.ec-agenda-entry-time{min-width:120px;font-size:12px;color:var(--ec-tg-gutter-text, #888888);flex-shrink:0}.ec-agenda-entry-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;color:var(--ec-content-text, #333333)}.ec-agenda-entry-location{font-size:12px;color:var(--ec-tg-gutter-text, #888888);flex-shrink:0;white-space:nowrap}.ec-agenda-empty{padding:48px 14px;text-align:center;color:var(--ec-agenda-empty-text, #999999);font-size:14px}.ec-week-view,.ec-day-view{height:100%;display:flex;flex-direction:column}.ec-tg-scroll{flex:1;overflow-y:auto}.ec-tg-scroll::-webkit-scrollbar{width:8px}.ec-tg-scroll::-webkit-scrollbar-thumb{background:var(--ec-scrollbar-thumb, #c1c1c1);border-radius:4px}.ec-tg-scroll::-webkit-scrollbar-track{background:var(--ec-scrollbar-track, #f1f1f1)}.ec-tg-header{display:flex;border-bottom:1px solid var(--ec-header-border, #e0e0e0);background:var(--ec-header-bg, #ffffff);position:sticky;top:0;z-index:4}.ec-tg-gutter-corner{width:var(--ec-tg-gutter-width, 60px);flex-shrink:0}.ec-tg-day-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 0;min-width:0;border-left:1px solid var(--ec-grid-line, #e0e0e0)}.ec-tg-day-header.ec-tg-today{color:var(--ec-tg-today-text, #1a73e8)}.ec-tg-day-name{font-size:11px;font-weight:500;text-transform:uppercase;color:inherit}.ec-tg-day-number{font-size:22px;font-weight:400;line-height:1.3;color:inherit}.ec-tg-today-number{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--ec-tg-today-circle, #1a73e8);color:var(--ec-tg-today-circle-text, #ffffff)}.ec-tg-allday{display:flex;border-bottom:1px solid var(--ec-header-border, #e0e0e0);background:var(--ec-header-bg, #ffffff);position:sticky;z-index:3;min-height:var(--ec-tg-allday-min-height, 28px);max-height:var(--ec-tg-allday-max-height, 120px)}.ec-tg-allday-row{flex:1;display:flex;min-width:0;overflow-y:auto}.ec-tg-allday-cell{flex:1;display:flex;flex-direction:column;gap:2px;padding:2px;min-width:0;border-left:1px solid var(--ec-grid-line, #e0e0e0)}.ec-tg-allday-cell.ec-tg-allday-drag{background:var(--ec-drag-highlight, rgba(3, 155, 229, 0.15))}.ec-tg-body{display:flex;margin-top:-1px}.ec-tg-gutter{width:var(--ec-tg-gutter-width, 60px);flex-shrink:0}.ec-tg-gutter-slot{border-top:1px dashed var(--ec-tg-slot-border, #e0e0e0)}.ec-tg-gutter-slot.ec-tg-gutter-hour{border-top:1px solid var(--ec-tg-slot-hour-border, #e0e0e0)}.ec-tg-gutter-label{padding:2px 8px 0 4px;font-size:11px;color:var(--ec-tg-gutter-text, #888888);line-height:1;white-space:nowrap}.ec-tg-content{flex:1;display:flex;min-width:0}.ec-tg-column{flex:1;position:relative;min-width:0;border-left:1px solid var(--ec-grid-line, #e0e0e0)}.ec-tg-column.ec-tg-today{background:var(--ec-tg-today-bg, rgba(26, 115, 232, 0.04))}.ec-tg-slot{border-top:1px dashed var(--ec-tg-slot-border, #e0e0e0)}.ec-tg-slot.ec-tg-slot-hour{border-top:1px solid var(--ec-tg-slot-hour-border, #e0e0e0)}.ec-tg-entry{position:absolute;left:0;right:0;border-radius:var(--ec-entry-radius, 4px);padding:2px 4px;font-size:11px;overflow:hidden;cursor:pointer;user-select:none;background:var(--ec-entry-chip-bg, #d3e3fd);color:var(--ec-entry-chip-text, #1b4fa3);border-left:var(--ec-entry-accent-width, 3px) solid var(--ec-tg-entry-accent, #1b66c9);z-index:1}.ec-tg-entry:hover{opacity:.9;z-index:2}.ec-tg-entry-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ec-tg-entry-time{font-size:10px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ec-tg-entry-resize-handle{position:absolute;left:0;right:0;height:6px;z-index:2}.ec-tg-entry-resize-handle::before{content:"";position:absolute;left:0;right:0;height:20px;top:50%;transform:translateY(-50%)}.ec-tg-entry-resize-handle.ec-tg-entry-resize-handle-top{top:0;cursor:n-resize}.ec-tg-entry-resize-handle.ec-tg-entry-resize-handle-bottom{bottom:0;cursor:s-resize}.ec-entry-dragging{opacity:.4}.ec-entry-drag-preview{opacity:.7;pointer-events:none;box-shadow:0 2px 6px rgba(0,0,0,.15);z-index:10}body.ec-dragging .ec-month-day,body.ec-dragging .ec-tg-allday-cell,body.ec-dragging .ec-tg-column,body.ec-dragging .ec-entry{pointer-events:none}.ec-view-container.ec-swipe-transition{transition:transform .2s ease-out}.ec-tg-drag-preview{position:absolute;left:0;right:0;background:var(--ec-drag-highlight, rgba(3, 155, 229, 0.15));border-radius:var(--ec-entry-radius, 4px);border-left:var(--ec-entry-accent-width, 3px) solid var(--ec-tg-entry-accent, #1b66c9);z-index:5;pointer-events:none;font-size:11px;color:var(--ec-content-text, #333333);padding:2px 4px;font-weight:500;overflow:hidden;white-space:nowrap}.ec-toolbar-sidebar-toggle{display:none}.ec-sidebar-backdrop{display:none}.ec-mobile{position:relative}.ec-mobile .ec-sidebar{position:absolute;top:0;left:0;height:100%;z-index:20;box-shadow:2px 0 8px rgba(0,0,0,.15);transform:translateX(-100%);transition:transform .25s ease}.ec-mobile .ec-sidebar.ec-sidebar-open{transform:translateX(0)}.ec-mobile .ec-sidebar-backdrop{display:block;position:absolute;inset:0;z-index:19;background:rgba(0,0,0,.3)}.ec-mobile .ec-toolbar{height:56px;padding:0 8px}.ec-mobile .ec-toolbar-sidebar-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:20px;flex-shrink:0}.ec-mobile .ec-toolbar-nav-btn{width:44px;height:44px;font-size:24px;line-height:44px}.ec-mobile .ec-toolbar-btn{min-height:44px}.ec-mobile .ec-toolbar-today{padding:8px 12px}.ec-mobile .ec-toolbar-title{font-size:16px;padding:0 4px}.ec-mobile .ec-mini-day{width:36px;height:36px;line-height:36px;font-size:13px}.ec-mobile .ec-mini-nav-btn{width:36px;height:36px;line-height:36px}.ec-mobile .ec-mini-row{border-radius:18px}.ec-mobile .ec-toolbar-view-btn[data-view-mode=week]{display:none}.ec-mobile .ec-entry{height:28px;line-height:28px;font-size:12px}.ec-mobile .ec-agenda-entry{height:56px;padding:0 12px}.ec-mobile .ec-agenda-day-header{padding:12px}.ec-mobile .ec-calendar-list-checkbox{width:20px;height:20px}.ec-mobile .ec-calendar-list-item{padding:6px 4px}.ec-mobile .ec-calendar-list-remove{opacity:1;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.ec-tooltip{position:absolute;z-index:15;background:var(--ec-tooltip-bg, var(--ec-content-bg, #ffffff));color:var(--ec-tooltip-text, var(--ec-content-text, #333333));border:1px solid var(--ec-tooltip-border, var(--ec-grid-line, #e0e0e0));border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.15);padding:8px 12px;max-width:300px;pointer-events:none;font-size:12px;line-height:1.4}.ec-tooltip-title{font-weight:600;font-size:13px;margin-bottom:4px}.ec-tooltip-row{display:flex;gap:6px}.ec-tooltip-label{color:var(--ec-tooltip-label, #888888);flex-shrink:0}.ec-tooltip-value{color:var(--ec-tooltip-text, var(--ec-content-text, #333333))}.ec-tg-now-line{position:absolute;left:0;right:0;height:var(--ec-tg-now-line-height, 2px);background:var(--ec-tg-now-line, #ea4335);z-index:3;pointer-events:none}.ec-tg-now-line::before{content:"";position:absolute;left:-5px;top:calc(var(--ec-tg-now-line-height, 2px)/2 - 5px);width:10px;height:10px;border-radius:50%;background:var(--ec-tg-now-line, #ea4335)}
@@ -0,0 +1 @@
1
+ .gc-host{display:block;height:100%;overflow:hidden}.gc-host *,.gc-host *::before,.gc-host *::after{box-sizing:content-box}.gc-wrapper{width:100%;height:100%;display:flex;gap:0px;color:var(--gc-sheet-text-color, #000000)}.gc-divider{width:0px;height:100%;position:relative}.gc-divider .resizer{top:0px;bottom:0px;position:absolute;right:-10px;z-index:30;width:20px;cursor:ew-resize}.gc-sheet{height:100%;display:inline-block;overflow:hidden;flex-shrink:0}.gc-sheet .row-header{width:30px}.gc-sheet .header{position:sticky;top:0;z-index:8;height:50px;border-top:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-bottom:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);display:flex;align-items:center;gap:0px;background-color:var(--gc-sheet-header-bg-color, #f8f8f8)}.gc-sheet .header .row-header{z-index:9;background-color:var(--gc-sheet-header-bg-color, #f8f8f8);border-left:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-right:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0)}.gc-sheet .header.reordering{cursor:grabbing}.gc-sheet .header.reordering .cell .resizer{cursor:grabbing}.gc-sheet .header .reorder-indicator{position:absolute;width:2px;height:100%;background-color:var(--gc-sheet-focus-border-color, #0078d4);z-index:11;pointer-events:none;top:0}.gc-sheet .header .cell{display:flex;flex-shrink:0;align-items:center;border-right:1px solid var(--gc-sheet-header-cell-divider-color, #a0a0a0);height:50px;padding-left:8px;padding-right:8px;position:relative;user-select:none}.gc-sheet .header .cell .resizer{height:100%;position:absolute;right:-10px;z-index:10;width:20px;cursor:ew-resize}.gc-sheet .header .cell.dotted{text-decoration:underline dotted !important}.gc-sheet .header .cell.dragging{opacity:.3}.gc-sheet .header .cell.hidden{display:none !important}.gc-sheet .content{overflow-x:auto;overflow-y:auto;height:100%;outline:none;background-color:var(--gc-sheet-bg-color, #ffffff)}.gc-sheet .content .row{height:30px;border-bottom:1px solid var(--gc-sheet-grid-line-color, #e0e0e0);display:flex;align-items:center;gap:0px;background-color:var(--gc-sheet-bg-color, #ffffff)}.gc-sheet .content .row.hidden{display:none}.gc-sheet .content .row .row-header{background-color:var(--gc-sheet-header-bg-color, #f8f8f8);border-bottom:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-left:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-right:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0) !important;justify-content:center;cursor:default !important;user-select:none}.gc-sheet .content .row .cell{display:flex;flex-shrink:0;align-items:center;align-self:stretch;border-right:1px solid var(--gc-sheet-grid-line-color, #e0e0e0);padding-left:8px;padding-right:8px;overflow-x:hidden;white-space:nowrap;user-select:none;position:relative}.gc-sheet .content .row .cell.row-header{position:sticky;left:0;z-index:2}.gc-sheet .content .row .cell .editor{height:28px;width:100%;padding-left:0px;padding-right:0px;border:none;background-color:var(--gc-editor-bg-color, #ffffff);color:var(--gc-editor-text-color, #000000)}.gc-sheet .content .row .cell input.editor{line-height:26px}.gc-sheet .content .row .cell input.editor:focus{outline:none}.gc-sheet .content .row .cell.focused{outline:2px solid var(--gc-sheet-focus-border-color, #4a7cf6);outline-offset:-2px}.gc-sheet .content .row .cell .highlight{border:1px solid var(--gc-sheet-highlight-border-color, #647ee8);position:absolute;z-index:10;left:0px;top:0px;right:0px;bottom:0px}.gc-sheet .content .row .cell.hidden{display:none !important}.gc-sheet .content .row.hover{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row.hover .cell{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row:hover{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row:hover .cell{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row.selected{background-color:var(--gc-sheet-selected-bg-color, #f8f8f8)}.gc-sheet .content .row.selected .cell{background-color:var(--gc-sheet-selected-bg-color, #f8f8f8)}.gc-sheet .content .row.selected .row-header{background-color:var(--gc-sheet-selected-row-header-color, #e8e8e8)}.gc-sheet .content .row.frozen{background-color:var(--gc-sheet-bg-color, #ffffff);border-bottom:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0)}.gc-sheet .content .row.frozen .cell{background-color:var(--gc-sheet-bg-color, #ffffff)}.gc-chart{flex:1;height:100%;display:inline-block;overflow-x:scroll;overflow-y:hidden;z-index:16;outline:none}.gc-chart:focus-visible{outline:2px solid var(--gc-sheet-focus-border-color, #4a7cf6);outline-offset:-2px}.gc-chart .inner{width:1000px;height:1px}.gc-chart .canvas{height:100%;width:100%;position:absolute;z-index:15}.gc-chart.no-pointer-events{pointer-events:none}.gc-chart.cursor-pointer{cursor:pointer !important}.gc-chart.cursor-all-scroll{cursor:all-scroll !important}.gc-chart.cursor-ew-resize{cursor:ew-resize !important}.gc-chart.cursor-ns-resize{cursor:ns-resize !important}.gc-chart.cursor-nwse-resize{cursor:nwse-resize !important}.gc-chart.cursor-nesw-resize{cursor:nesw-resize !important}.gc-chart.cursor-crosshair{cursor:crosshair !important}.reorder-ghost{position:fixed;z-index:1000;pointer-events:none;opacity:.5;box-sizing:border-box;display:flex;align-items:center;border:1px solid color-mix(in srgb, var(--gc-sheet-header-cell-border-color, #a0a0a0) 50%, transparent);background-color:var(--gc-sheet-header-bg-color, #f8f8f8);color:var(--gc-sheet-text-color, #000000)}.gc-wrapper[data-color-scheme=light] .gc-sheet .content,.gc-wrapper[data-color-scheme=light] .gc-chart{scrollbar-color:#ccc #f5f5f5}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar{width:12px;height:12px}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar-track,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar-track{background:#f5f5f5}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar-thumb,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar-thumb{background:#ccc;border-radius:6px}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar-thumb:hover,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar-thumb:hover{background:#d8d8d8}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content,.gc-wrapper[data-color-scheme=dark] .gc-chart{scrollbar-color:#555 #1e1e1e}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content::-webkit-scrollbar,.gc-wrapper[data-color-scheme=dark] .gc-chart::-webkit-scrollbar{width:12px;height:12px}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content::-webkit-scrollbar-track,.gc-wrapper[data-color-scheme=dark] .gc-chart::-webkit-scrollbar-track{background:#1e1e1e}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content::-webkit-scrollbar-thumb,.gc-wrapper[data-color-scheme=dark] .gc-chart::-webkit-scrollbar-thumb{background:#555;border-radius:6px}.gc-scheduler .gc-sheet .content{overflow-y:hidden}.gc-scheduler .gc-scrollbar{overflow-y:auto;overflow-x:hidden;height:100%}.gc-scheduler .gc-scrollbar>div{width:1px}.gc-scheduler[data-color-scheme=light] .gc-scrollbar{scrollbar-color:#ccc #f5f5f5}.gc-scheduler[data-color-scheme=light] .gc-scrollbar::-webkit-scrollbar{width:12px}.gc-scheduler[data-color-scheme=light] .gc-scrollbar::-webkit-scrollbar-track{background:#f5f5f5}.gc-scheduler[data-color-scheme=light] .gc-scrollbar::-webkit-scrollbar-thumb{background:#ccc;border-radius:6px}.gc-scheduler[data-color-scheme=light] .gc-scrollbar::-webkit-scrollbar-thumb:hover{background:#d8d8d8}.gc-scheduler[data-color-scheme=dark] .gc-scrollbar{scrollbar-color:#555 #1e1e1e}.gc-scheduler[data-color-scheme=dark] .gc-scrollbar::-webkit-scrollbar{width:12px}.gc-scheduler[data-color-scheme=dark] .gc-scrollbar::-webkit-scrollbar-track{background:#1e1e1e}.gc-scheduler[data-color-scheme=dark] .gc-scrollbar::-webkit-scrollbar-thumb{background:#555;border-radius:6px}.gc-sheet .content .row .pin-icon{display:inline-flex;align-items:center;justify-content:center;margin-left:2px;opacity:.5}.gc-sheet .content .row .pin-icon svg{width:12px;height:12px}.gc-sheet .content .rows{position:relative}.gc-sheet .content .rows .row-reorder-indicator{position:absolute;left:0;right:0;height:2px;background-color:var(--gc-sheet-focus-border-color, #0078d4);z-index:11;pointer-events:none;transform:translateY(-1px)}
@@ -13,6 +13,7 @@ export declare abstract class TableInputCellEditor<TItem extends TableItem> exte
13
13
  endEditIfModifiedElseCancel(): void;
14
14
  }
15
15
  export interface InputEditorArgs<TItem extends TableItem> {
16
+ item: TItem;
16
17
  input: any;
17
18
  columnCode: string;
18
19
  editor: TableInputCellEditor<TItem>;
@@ -22,11 +22,17 @@ export declare class TableColumn<TItem extends TableItem> {
22
22
  set tooltip(value: string | null);
23
23
  get headerHtml(): string | null;
24
24
  set headerHtml(value: string | null);
25
+ get exportHeaderRenderer(): ExportCanvasHeaderRenderer | null;
26
+ set exportHeaderRenderer(value: ExportCanvasHeaderRenderer | null);
27
+ get exportCellRenderer(): ExportCanvasCellRenderer<TItem> | null;
28
+ set exportCellRenderer(value: ExportCanvasCellRenderer<TItem> | null);
25
29
  get isCustom(): boolean;
26
30
  set isCustom(value: boolean);
27
31
  changed$: Subject<TableColumn<TItem>>;
28
32
  constructor(code: string, name: string, valueFormatter: TableCellValueFormatter<TItem>, renderer: TableCellRenderer<TItem>, editor: TableCellEditor<TItem> | null, isEditable: TableCellIsEditable<TItem>, width?: number, minWidth?: number, align?: TextAlign, tooltip?: string);
29
33
  }
30
34
  export type TableCellValueFormatter<TItem> = (item: TItem) => string;
31
- export type TextAlign = 'Left' | 'Center' | 'Right';
35
+ export type TextAlign = 'left' | 'center' | 'right';
32
36
  export type TableCellIsEditable<TItem> = (item: TItem) => boolean;
37
+ export type ExportCanvasHeaderRenderer = (ctx: any, x: number, y: number, width: number, height: number, color: string) => void;
38
+ export type ExportCanvasCellRenderer<TItem> = (ctx: any, item: TItem, x: number, y: number, width: number, height: number) => void;
@@ -1,6 +1,8 @@
1
1
  import { Subject } from "rxjs";
2
2
  export interface TableItem {
3
3
  readonly id: string;
4
+ getPropertyValue(name: string): any;
5
+ setPropertyValue(name: string, value: any): void;
4
6
  }
5
7
  export interface TableItemEventArgs<TItem> {
6
8
  item: TItem;
@@ -7,6 +7,7 @@ export declare class TableRowsSelection<TItem extends TableItem> {
7
7
  changed$: Subject<void>;
8
8
  rowContextMenu$: Subject<TableRowContextMenuEventArgs<TItem>>;
9
9
  constructor(context: TableContext<TItem>, content: any);
10
+ destroy(): void;
10
11
  cancelRangeSelection(): void;
11
12
  clear(): void;
12
13
  updateWithCurrentSelection(): void;
@@ -1,11 +1,15 @@
1
+ import { Subject } from "rxjs";
1
2
  import { TableColumn } from "./table-column";
2
3
  import { TableContext } from "./table-context";
3
4
  import { TableItem } from "./table-data-source";
5
+ import { TableCellEditor } from "./editors/cell-editor";
4
6
  import { TableKeyboardNavigation, TableNavigationHost } from "./table-keyboard-navigation";
5
7
  import { TableRowsSelection } from "./table-rows-selection";
6
8
  import { ClassWithListeners } from "../common/class-with-listeners";
7
9
  export declare class Table<TItem extends TableItem> extends ClassWithListeners implements TableNavigationHost<TItem> {
8
10
  #private;
11
+ /** Emitted when columns change (added, visibility toggled, etc.) during runtime — not during initialization. */
12
+ columnsChanged$: Subject<void>;
9
13
  protected get tableContext(): TableContext<TItem>;
10
14
  protected get contentElement(): any;
11
15
  protected get headerElement(): any;
@@ -39,10 +43,17 @@ export declare class Table<TItem extends TableItem> extends ClassWithListeners i
39
43
  getColumnsContentWidth(): number;
40
44
  getDefaultColumns(): TableColumn<TItem>[];
41
45
  getCustomColumns(): TableColumn<TItem>[];
46
+ addCustomStringColumn(code: string, displayName: string): TableColumn<TItem>;
47
+ addCustomIntegerColumn(code: string, displayName: string): TableColumn<TItem>;
48
+ addCustomDecimalColumn(code: string, displayName: string): TableColumn<TItem>;
49
+ addCustomDateColumn(code: string, displayName: string): TableColumn<TItem>;
50
+ protected formatCustomDateValue(value: Date): string;
51
+ protected createCustomDateCellEditor(getter: (item: TItem) => any, setter: (item: TItem, value: any) => void): TableCellEditor<TItem> | null;
42
52
  saveColumns(): ColumnState[];
43
53
  loadColumns(states: ColumnState[]): void;
44
54
  scrollToItem(item: TItem): void;
45
55
  clearSelection(): void;
56
+ destroy(): void;
46
57
  }
47
58
  export interface ColumnState {
48
59
  code: string;
@@ -4,8 +4,10 @@ import { TableKeyboardNavigation } from "./table-keyboard-navigation";
4
4
  import { Table } from "./table";
5
5
  import { TreeTableNavigationHost } from "./tree-table-keyboard-navigation";
6
6
  export declare class TreeTable<TItem extends TableItem> extends Table<TItem> implements TreeTableNavigationHost<TItem> {
7
+ #private;
7
8
  get treeDataSource(): TreeTableDataSource<TItem>;
8
9
  constructor(context: TableContext<TItem>, tableElement: any);
10
+ destroy(): void;
9
11
  protected createKeyboardNavigation(): TableKeyboardNavigation<TItem>;
10
12
  protected redrawItemRow(item: TItem): void;
11
13
  indentSelectedItems(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timelinekit/core",
3
- "version": "1.0.0",
3
+ "version": "1.0.3",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -62,28 +62,39 @@
62
62
  "types": "./dist/locales/zh.d.ts",
63
63
  "import": "./dist/locales/zh.js"
64
64
  },
65
- "./styles": "./dist/styles/gc.css",
66
- "./styles/scss": "./styles/gc.scss"
65
+ "./styles": "./dist/styles/index.css",
66
+ "./styles/scss": "./styles/index.scss",
67
+ "./styles/gc": "./dist/styles/gc.css",
68
+ "./styles/gc/scss": "./styles/gc.scss",
69
+ "./styles/rs": "./dist/styles/rs.css",
70
+ "./styles/rs/scss": "./styles/rs.scss",
71
+ "./styles/ec": "./dist/styles/ec.css",
72
+ "./styles/ec/scss": "./styles/ec.scss"
67
73
  },
68
74
  "scripts": {
69
- "build": "rollup -c && sass styles/gc.scss dist/styles/gc.css --style=compressed --no-source-map",
75
+ "build": "rollup -c && sass styles/gc.scss dist/styles/gc.css --style=compressed --no-source-map && sass styles/rs.scss dist/styles/rs.css --style=compressed --no-source-map && sass styles/ec.scss dist/styles/ec.css --style=compressed --no-source-map && sass styles/index.scss dist/styles/index.css --style=compressed --no-source-map",
70
76
  "dev": "tsc --watch",
71
77
  "test": "vitest run",
72
78
  "test:watch": "vitest"
73
79
  },
74
80
  "peerDependencies": {
75
81
  "exceljs": "^4.4.0",
82
+ "html2canvas": "^1.4.0",
76
83
  "jspdf": "^2.5.0"
77
84
  },
78
85
  "peerDependenciesMeta": {
79
- "jspdf": {
86
+ "exceljs": {
80
87
  "optional": true
81
88
  },
82
- "exceljs": {
89
+ "html2canvas": {
90
+ "optional": true
91
+ },
92
+ "jspdf": {
83
93
  "optional": true
84
94
  }
85
95
  },
86
96
  "dependencies": {
97
+ "@noble/curves": "^2.2.0",
87
98
  "rxjs": "~7.8.0"
88
99
  },
89
100
  "devDependencies": {
@@ -2,6 +2,12 @@
2
2
  display: block;
3
3
  height: 100%;
4
4
  overflow: hidden;
5
+
6
+ // Isolate from CSS resets (e.g. Tailwind preflight) that set border-box globally.
7
+ // The component's layout relies on content-box sizing.
8
+ *, *::before, *::after {
9
+ box-sizing: content-box;
10
+ }
5
11
  }
6
12
 
7
13
  .gc-wrapper {
@@ -36,6 +42,8 @@
36
42
 
37
43
  height: 100%;
38
44
  display: inline-block;
45
+ overflow: hidden;
46
+ flex-shrink: 0;
39
47
 
40
48
  .row-header {
41
49
  width: $row-header-width;
@@ -49,7 +57,6 @@
49
57
  height: $header-height;
50
58
  border-top: 1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);
51
59
  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
60
  display: flex;
54
61
  align-items: center;
55
62
  gap: 0px;
@@ -58,6 +65,8 @@
58
65
  .row-header {
59
66
  z-index: 9;
60
67
  background-color: var(--gc-sheet-header-bg-color, #f8f8f8);
68
+ border-left: 1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);
69
+ border-right: 1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);
61
70
  }
62
71
 
63
72
  &.reordering {
@@ -80,6 +89,7 @@
80
89
 
81
90
  .cell {
82
91
  display: flex;
92
+ flex-shrink: 0;
83
93
  align-items: center;
84
94
  border-right: 1px solid var(--gc-sheet-header-cell-divider-color, #a0a0a0);
85
95
  height: $header-height;
@@ -142,6 +152,7 @@
142
152
 
143
153
  .cell {
144
154
  display: flex;
155
+ flex-shrink: 0;
145
156
  align-items: center;
146
157
  align-self: stretch;
147
158
  border-right: 1px solid var(--gc-sheet-grid-line-color, #e0e0e0);