snice 3.4.0 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/templates/base/package.json +2 -2
- package/bin/templates/social/package.json +2 -2
- package/bin/templates/social/src/styles/global.css +56 -47
- package/dist/components/avatar/snice-avatar.d.ts +2 -2
- package/dist/components/avatar/snice-avatar.js +20 -21
- package/dist/components/avatar/snice-avatar.js.map +1 -1
- package/dist/components/calendar/snice-calendar.d.ts +8 -2
- package/dist/components/calendar/snice-calendar.js +160 -82
- package/dist/components/calendar/snice-calendar.js.map +1 -1
- package/dist/components/chart/snice-chart.js +50 -18
- package/dist/components/chart/snice-chart.js.map +1 -1
- package/dist/components/checkbox/snice-checkbox.d.ts +4 -1
- package/dist/components/checkbox/snice-checkbox.js +46 -17
- package/dist/components/checkbox/snice-checkbox.js.map +1 -1
- package/dist/components/code-block/highlighter.d.ts +5 -0
- package/dist/components/code-block/highlighter.js +137 -0
- package/dist/components/code-block/highlighter.js.map +1 -0
- package/dist/components/code-block/highlighters/highlight.d.ts +64 -0
- package/dist/components/code-block/highlighters/highlight.js +108 -0
- package/dist/components/code-block/highlighters/highlight.js.map +1 -0
- package/dist/components/code-block/highlighters/prism.d.ts +41 -0
- package/dist/components/code-block/highlighters/prism.js +73 -0
- package/dist/components/code-block/highlighters/prism.js.map +1 -0
- package/dist/components/code-block/snice-code-block.d.ts +19 -1
- package/dist/components/code-block/snice-code-block.js +128 -29
- package/dist/components/code-block/snice-code-block.js.map +1 -1
- package/dist/components/code-block/snice-code-block.types.d.ts +15 -1
- package/dist/components/color-picker/snice-color-picker.d.ts +1 -0
- package/dist/components/color-picker/snice-color-picker.js +17 -6
- package/dist/components/color-picker/snice-color-picker.js.map +1 -1
- package/dist/components/date-picker/snice-date-picker.d.ts +1 -0
- package/dist/components/date-picker/snice-date-picker.js +16 -5
- package/dist/components/date-picker/snice-date-picker.js.map +1 -1
- package/dist/components/doc/snice-doc.d.ts +27 -73
- package/dist/components/doc/snice-doc.js +385 -534
- package/dist/components/doc/snice-doc.js.map +1 -1
- package/dist/components/draw/snice-draw.d.ts +4 -0
- package/dist/components/draw/snice-draw.js +134 -14
- package/dist/components/draw/snice-draw.js.map +1 -1
- package/dist/components/draw/snice-draw.types.d.ts +5 -0
- package/dist/components/file-upload/snice-file-upload.js +1 -1
- package/dist/components/input/snice-input.d.ts +2 -0
- package/dist/components/input/snice-input.js +34 -9
- package/dist/components/input/snice-input.js.map +1 -1
- package/dist/components/kanban/snice-kanban.d.ts +13 -1
- package/dist/components/kanban/snice-kanban.js +191 -36
- package/dist/components/kanban/snice-kanban.js.map +1 -1
- package/dist/components/kanban/snice-kanban.types.d.ts +11 -1
- package/dist/components/kpi/snice-kpi.js +5 -1
- package/dist/components/kpi/snice-kpi.js.map +1 -1
- package/dist/components/layout/snice-layout-sidebar.js +1 -1
- package/dist/components/layout/snice-layout-sidebar.js.map +1 -1
- package/dist/components/layout/snice-layout.js +1 -1
- package/dist/components/layout/snice-layout.js.map +1 -1
- package/dist/components/location/snice-location.js +1 -1
- package/dist/components/location/snice-location.js.map +1 -1
- package/dist/components/radio/snice-radio.d.ts +1 -0
- package/dist/components/radio/snice-radio.js +17 -6
- package/dist/components/radio/snice-radio.js.map +1 -1
- package/dist/components/select/snice-select.d.ts +2 -0
- package/dist/components/select/snice-select.js +48 -19
- package/dist/components/select/snice-select.js.map +1 -1
- package/dist/components/slider/snice-slider.d.ts +2 -0
- package/dist/components/slider/snice-slider.js +34 -14
- package/dist/components/slider/snice-slider.js.map +1 -1
- package/dist/components/snice-cell-HZ2iIBIC.js +4 -0
- package/dist/components/snice-cell-HZ2iIBIC.js.map +1 -0
- package/dist/components/split-pane/snice-split-pane.js +1 -1
- package/dist/components/split-pane/snice-split-pane.js.map +1 -1
- package/dist/components/switch/snice-switch.d.ts +1 -0
- package/dist/components/switch/snice-switch.js +16 -6
- package/dist/components/switch/snice-switch.js.map +1 -1
- package/dist/components/table/snice-cell-actions.js +1 -1
- package/dist/components/table/snice-cell-actions.js.map +1 -1
- package/dist/components/table/snice-cell-boolean.js +1 -1
- package/dist/components/table/snice-cell-color.js +1 -1
- package/dist/components/table/snice-cell-color.js.map +1 -1
- package/dist/components/table/snice-cell-currency.js +1 -1
- package/dist/components/table/snice-cell-date.js +1 -1
- package/dist/components/table/snice-cell-duration.js +1 -1
- package/dist/components/table/snice-cell-email.js +1 -1
- package/dist/components/table/snice-cell-email.js.map +1 -1
- package/dist/components/table/snice-cell-filesize.js +1 -1
- package/dist/components/table/snice-cell-image.js +1 -1
- package/dist/components/table/snice-cell-image.js.map +1 -1
- package/dist/components/table/snice-cell-json.js +1 -1
- package/dist/components/table/snice-cell-json.js.map +1 -1
- package/dist/components/table/snice-cell-link.js +1 -1
- package/dist/components/table/snice-cell-link.js.map +1 -1
- package/dist/components/table/snice-cell-location.js +1 -1
- package/dist/components/table/snice-cell-location.js.map +1 -1
- package/dist/components/table/snice-cell-number.js +1 -1
- package/dist/components/table/snice-cell-percentage.js +1 -1
- package/dist/components/table/snice-cell-percentage.js.map +1 -1
- package/dist/components/table/snice-cell-phone.js +1 -1
- package/dist/components/table/snice-cell-phone.js.map +1 -1
- package/dist/components/table/snice-cell-progress.js +3 -3
- package/dist/components/table/snice-cell-progress.js.map +1 -1
- package/dist/components/table/snice-cell-rating.js +2 -2
- package/dist/components/table/snice-cell-rating.js.map +1 -1
- package/dist/components/table/snice-cell-sparkline.js +2 -2
- package/dist/components/table/snice-cell-sparkline.js.map +1 -1
- package/dist/components/table/snice-cell-status.js +1 -1
- package/dist/components/table/snice-cell-status.js.map +1 -1
- package/dist/components/table/snice-cell-tag.js +1 -1
- package/dist/components/table/snice-cell-tag.js.map +1 -1
- package/dist/components/table/snice-cell-text.js +1 -1
- package/dist/components/table/snice-cell.js +15 -10
- package/dist/components/table/snice-cell.js.map +1 -1
- package/dist/components/table/snice-header.js +1 -1
- package/dist/components/table/snice-header.js.map +1 -1
- package/dist/components/table/snice-row.js +2 -2
- package/dist/components/table/snice-row.js.map +1 -1
- package/dist/components/table/snice-table.d.ts +1 -0
- package/dist/components/table/snice-table.js +24 -4
- package/dist/components/table/snice-table.js.map +1 -1
- package/dist/components/terminal/snice-terminal.d.ts +40 -0
- package/dist/components/terminal/snice-terminal.js +371 -0
- package/dist/components/terminal/snice-terminal.js.map +1 -0
- package/dist/components/terminal/snice-terminal.types.d.ts +20 -24
- package/dist/components/textarea/snice-textarea.d.ts +2 -0
- package/dist/components/textarea/snice-textarea.js +25 -6
- package/dist/components/textarea/snice-textarea.js.map +1 -1
- package/dist/components/theme/theme.css +16 -0
- package/dist/components/tree/snice-tree-item.d.ts +18 -4
- package/dist/components/tree/snice-tree-item.js +271 -88
- package/dist/components/tree/snice-tree-item.js.map +1 -1
- package/dist/components/tree/snice-tree-item.types.d.ts +3 -0
- package/dist/components/tree/snice-tree.d.ts +18 -2
- package/dist/components/tree/snice-tree.js +422 -56
- package/dist/components/tree/snice-tree.js.map +1 -1
- package/dist/components/tree/snice-tree.types.d.ts +1 -0
- package/dist/components/virtual-scroller/snice-virtual-scroller.js +4 -2
- package/dist/components/virtual-scroller/snice-virtual-scroller.js.map +1 -1
- package/dist/index.cjs +42 -23
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +42 -23
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +42 -23
- package/dist/index.iife.js.map +1 -1
- package/dist/render-tracker.d.ts +1 -0
- package/dist/symbols.cjs +13 -14
- package/dist/symbols.cjs.map +1 -1
- package/dist/symbols.esm.js +13 -14
- package/dist/symbols.esm.js.map +1 -1
- package/dist/template.d.ts +1 -0
- package/dist/transitions.cjs +1 -1
- package/dist/transitions.esm.js +1 -1
- package/docs/ai/api.md +37 -4
- package/docs/ai/components/doc.md +41 -106
- package/docs/ai/components/kanban.md +31 -9
- package/docs/ai/components/kpi.md +15 -0
- package/docs/components/doc.md +96 -212
- package/docs/components/kanban.md +119 -4
- package/docs/components/kpi.md +27 -0
- package/package.json +4 -1
- package/dist/components/actions/snice-actions.d.ts +0 -28
- package/dist/components/actions/snice-actions.js +0 -220
- package/dist/components/actions/snice-actions.js.map +0 -1
- package/dist/components/actions/snice-actions.types.d.ts +0 -27
- package/dist/components/doc/snice-doc.types.d.ts +0 -118
- package/dist/components/gantt/snice-gantt.d.ts +0 -29
- package/dist/components/gantt/snice-gantt.js +0 -268
- package/dist/components/gantt/snice-gantt.js.map +0 -1
- package/dist/components/gantt/snice-gantt.types.d.ts +0 -23
- package/dist/components/snice-cell-C0slgOpe.js +0 -4
- package/dist/components/snice-cell-C0slgOpe.js.map +0 -1
- package/dist/components/stat/snice-stat.d.ts +0 -14
- package/dist/components/stat/snice-stat.js +0 -140
- package/dist/components/stat/snice-stat.js.map +0 -1
- package/dist/components/stat/snice-stat.types.d.ts +0 -12
- package/docs/ai/components/actions.md +0 -81
- package/docs/ai/components/gantt.md +0 -95
- package/docs/ai/components/stat.md +0 -29
- package/docs/components/actions.md +0 -317
- package/docs/components/gantt.md +0 -347
- package/docs/components/stat.md +0 -45
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
import { __esDecorate, __runInitializers } from 'tslib';
|
|
2
|
-
import { element, property, dispatch, styles, render, css, html } from 'snice';
|
|
3
|
-
|
|
4
|
-
var cssContent = ":host{display:block;font-family:var(--snice-font-family, system-ui, -apple-system, sans-serif);overflow:auto}.gantt{display:flex;min-width:max-content}.gantt__sidebar{flex-shrink:0;width:200px;border-right:1px solid var(--snice-border-color,#e0e0e0);background:var(--snice-bg-secondary,#fafafa)}.gantt__timeline{flex:1;overflow-x:auto}.gantt__header{display:flex;border-bottom:2px solid var(--snice-border-color,#e0e0e0);background:#fff;position:sticky;top:0;z-index:10}.gantt__header-cell{padding:12px 8px;font-size:12px;font-weight:600;color:var(--snice-text-secondary,#666);text-align:center;border-right:1px solid var(--snice-border-color,#e0e0e0);flex-shrink:0}.gantt__rows{position:relative}.gantt__row{display:flex;border-bottom:1px solid var(--snice-border-color,#e0e0e0);height:50px;align-items:center}.gantt__row-label{padding:0 12px;font-size:14px;color:var(--snice-text-primary,#1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt__grid{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;pointer-events:none}.gantt__grid-column{flex-shrink:0;border-right:1px solid var(--snice-border-color,#e0e0e0)}.gantt__grid-column--today{background:var(--snice-color-primary-light,#e3f2fd);border-right:2px solid var(--snice-color-primary,#2196f3)}.gantt__bars{position:relative;display:flex;align-items:center;height:100%}.gantt__bar{position:absolute;height:30px;background:var(--snice-color-primary,#2196f3);border-radius:4px;padding:0 8px;display:flex;align-items:center;cursor:pointer;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.gantt__bar:hover{box-shadow:0 2px 8px rgba(0,0,0,.3);transform:translateY(-1px)}.gantt__bar-label{font-size:12px;color:#fff;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt__bar-progress{position:absolute;top:0;left:0;bottom:0;background:rgba(255,255,255,.3);border-radius:4px 0 0 4px;pointer-events:none}.gantt__today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--snice-color-primary,#2196f3);pointer-events:none;z-index:5}.gantt__dependencies{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:1}.gantt__dependency{position:absolute;stroke:var(--snice-color-primary,#2196f3);stroke-width:2;fill:none}";
|
|
5
|
-
|
|
6
|
-
let SniceGantt = (() => {
|
|
7
|
-
let _classDecorators = [element('snice-gantt')];
|
|
8
|
-
let _classDescriptor;
|
|
9
|
-
let _classExtraInitializers = [];
|
|
10
|
-
let _classThis;
|
|
11
|
-
let _classSuper = HTMLElement;
|
|
12
|
-
let _instanceExtraInitializers = [];
|
|
13
|
-
let _tasks_decorators;
|
|
14
|
-
let _tasks_initializers = [];
|
|
15
|
-
let _tasks_extraInitializers = [];
|
|
16
|
-
let _viewMode_decorators;
|
|
17
|
-
let _viewMode_initializers = [];
|
|
18
|
-
let _viewMode_extraInitializers = [];
|
|
19
|
-
let _showToday_decorators;
|
|
20
|
-
let _showToday_initializers = [];
|
|
21
|
-
let _showToday_extraInitializers = [];
|
|
22
|
-
let _showProgress_decorators;
|
|
23
|
-
let _showProgress_initializers = [];
|
|
24
|
-
let _showProgress_extraInitializers = [];
|
|
25
|
-
let _showDependencies_decorators;
|
|
26
|
-
let _showDependencies_initializers = [];
|
|
27
|
-
let _showDependencies_extraInitializers = [];
|
|
28
|
-
let _minDate_decorators;
|
|
29
|
-
let _minDate_initializers = [];
|
|
30
|
-
let _minDate_extraInitializers = [];
|
|
31
|
-
let _maxDate_decorators;
|
|
32
|
-
let _maxDate_initializers = [];
|
|
33
|
-
let _maxDate_extraInitializers = [];
|
|
34
|
-
let _dispatchTaskClick_decorators;
|
|
35
|
-
let _styles_decorators;
|
|
36
|
-
let _template_decorators;
|
|
37
|
-
(class extends _classSuper {
|
|
38
|
-
static { _classThis = this; }
|
|
39
|
-
static {
|
|
40
|
-
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
41
|
-
_tasks_decorators = [property({ type: Array })];
|
|
42
|
-
_viewMode_decorators = [property({ attribute: 'view-mode' })];
|
|
43
|
-
_showToday_decorators = [property({ type: Boolean, attribute: 'show-today' })];
|
|
44
|
-
_showProgress_decorators = [property({ type: Boolean, attribute: 'show-progress' })];
|
|
45
|
-
_showDependencies_decorators = [property({ type: Boolean, attribute: 'show-dependencies' })];
|
|
46
|
-
_minDate_decorators = [property({ type: Date, attribute: 'min-date' })];
|
|
47
|
-
_maxDate_decorators = [property({ type: Date, attribute: 'max-date' })];
|
|
48
|
-
_dispatchTaskClick_decorators = [dispatch('@snice/gantt-task-click', { bubbles: true, composed: true })];
|
|
49
|
-
_styles_decorators = [styles()];
|
|
50
|
-
_template_decorators = [render()];
|
|
51
|
-
__esDecorate(this, null, _dispatchTaskClick_decorators, { kind: "method", name: "dispatchTaskClick", static: false, private: false, access: { has: obj => "dispatchTaskClick" in obj, get: obj => obj.dispatchTaskClick }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
52
|
-
__esDecorate(this, null, _styles_decorators, { kind: "method", name: "styles", static: false, private: false, access: { has: obj => "styles" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
53
|
-
__esDecorate(this, null, _template_decorators, { kind: "method", name: "template", static: false, private: false, access: { has: obj => "template" in obj, get: obj => obj.template }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
54
|
-
__esDecorate(null, null, _tasks_decorators, { kind: "field", name: "tasks", static: false, private: false, access: { has: obj => "tasks" in obj, get: obj => obj.tasks, set: (obj, value) => { obj.tasks = value; } }, metadata: _metadata }, _tasks_initializers, _tasks_extraInitializers);
|
|
55
|
-
__esDecorate(null, null, _viewMode_decorators, { kind: "field", name: "viewMode", static: false, private: false, access: { has: obj => "viewMode" in obj, get: obj => obj.viewMode, set: (obj, value) => { obj.viewMode = value; } }, metadata: _metadata }, _viewMode_initializers, _viewMode_extraInitializers);
|
|
56
|
-
__esDecorate(null, null, _showToday_decorators, { kind: "field", name: "showToday", static: false, private: false, access: { has: obj => "showToday" in obj, get: obj => obj.showToday, set: (obj, value) => { obj.showToday = value; } }, metadata: _metadata }, _showToday_initializers, _showToday_extraInitializers);
|
|
57
|
-
__esDecorate(null, null, _showProgress_decorators, { kind: "field", name: "showProgress", static: false, private: false, access: { has: obj => "showProgress" in obj, get: obj => obj.showProgress, set: (obj, value) => { obj.showProgress = value; } }, metadata: _metadata }, _showProgress_initializers, _showProgress_extraInitializers);
|
|
58
|
-
__esDecorate(null, null, _showDependencies_decorators, { kind: "field", name: "showDependencies", static: false, private: false, access: { has: obj => "showDependencies" in obj, get: obj => obj.showDependencies, set: (obj, value) => { obj.showDependencies = value; } }, metadata: _metadata }, _showDependencies_initializers, _showDependencies_extraInitializers);
|
|
59
|
-
__esDecorate(null, null, _minDate_decorators, { kind: "field", name: "minDate", static: false, private: false, access: { has: obj => "minDate" in obj, get: obj => obj.minDate, set: (obj, value) => { obj.minDate = value; } }, metadata: _metadata }, _minDate_initializers, _minDate_extraInitializers);
|
|
60
|
-
__esDecorate(null, null, _maxDate_decorators, { kind: "field", name: "maxDate", static: false, private: false, access: { has: obj => "maxDate" in obj, get: obj => obj.maxDate, set: (obj, value) => { obj.maxDate = value; } }, metadata: _metadata }, _maxDate_initializers, _maxDate_extraInitializers);
|
|
61
|
-
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
62
|
-
_classThis = _classDescriptor.value;
|
|
63
|
-
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
64
|
-
__runInitializers(_classThis, _classExtraInitializers);
|
|
65
|
-
}
|
|
66
|
-
dispatchTaskClick(task) {
|
|
67
|
-
return { task, gantt: this };
|
|
68
|
-
}
|
|
69
|
-
styles() {
|
|
70
|
-
return css /*css*/ `${cssContent}`;
|
|
71
|
-
}
|
|
72
|
-
getTask(id) {
|
|
73
|
-
return this.tasks.find(t => t.id === id);
|
|
74
|
-
}
|
|
75
|
-
scrollToToday() {
|
|
76
|
-
// Implementation would scroll viewport to today's date
|
|
77
|
-
}
|
|
78
|
-
scrollToTask(id) {
|
|
79
|
-
// Implementation would scroll to specific task
|
|
80
|
-
}
|
|
81
|
-
getDateRange() {
|
|
82
|
-
if (this.tasks.length === 0) {
|
|
83
|
-
const today = new Date();
|
|
84
|
-
return {
|
|
85
|
-
start: new Date(today.getFullYear(), today.getMonth(), 1),
|
|
86
|
-
end: new Date(today.getFullYear(), today.getMonth() + 1, 0)
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
let minDate = this.minDate ?
|
|
90
|
-
(typeof this.minDate === 'string' ? new Date(this.minDate) : this.minDate) :
|
|
91
|
-
null;
|
|
92
|
-
let maxDate = this.maxDate ?
|
|
93
|
-
(typeof this.maxDate === 'string' ? new Date(this.maxDate) : this.maxDate) :
|
|
94
|
-
null;
|
|
95
|
-
this.tasks.forEach(task => {
|
|
96
|
-
const start = typeof task.start === 'string' ? new Date(task.start) : task.start;
|
|
97
|
-
const end = typeof task.end === 'string' ? new Date(task.end) : task.end;
|
|
98
|
-
if (!minDate || start < minDate)
|
|
99
|
-
minDate = start;
|
|
100
|
-
if (!maxDate || end > maxDate)
|
|
101
|
-
maxDate = end;
|
|
102
|
-
});
|
|
103
|
-
return { start: minDate, end: maxDate };
|
|
104
|
-
}
|
|
105
|
-
getColumnWidth() {
|
|
106
|
-
switch (this.viewMode) {
|
|
107
|
-
case 'day': return 60;
|
|
108
|
-
case 'week': return 100;
|
|
109
|
-
case 'month': return 120;
|
|
110
|
-
case 'year': return 150;
|
|
111
|
-
default: return 60;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
getColumns() {
|
|
115
|
-
const { start, end } = this.getDateRange();
|
|
116
|
-
const columns = [];
|
|
117
|
-
const current = new Date(start);
|
|
118
|
-
while (current <= end) {
|
|
119
|
-
columns.push(new Date(current));
|
|
120
|
-
switch (this.viewMode) {
|
|
121
|
-
case 'day':
|
|
122
|
-
current.setDate(current.getDate() + 1);
|
|
123
|
-
break;
|
|
124
|
-
case 'week':
|
|
125
|
-
current.setDate(current.getDate() + 7);
|
|
126
|
-
break;
|
|
127
|
-
case 'month':
|
|
128
|
-
current.setMonth(current.getMonth() + 1);
|
|
129
|
-
break;
|
|
130
|
-
case 'year':
|
|
131
|
-
current.setFullYear(current.getFullYear() + 1);
|
|
132
|
-
break;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return columns;
|
|
136
|
-
}
|
|
137
|
-
formatColumnHeader(date) {
|
|
138
|
-
switch (this.viewMode) {
|
|
139
|
-
case 'day':
|
|
140
|
-
return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric' });
|
|
141
|
-
case 'week':
|
|
142
|
-
return `Week ${this.getWeekNumber(date)}`;
|
|
143
|
-
case 'month':
|
|
144
|
-
return date.toLocaleDateString('en-US', { month: 'short', year: 'numeric' });
|
|
145
|
-
case 'year':
|
|
146
|
-
return date.getFullYear().toString();
|
|
147
|
-
default:
|
|
148
|
-
return '';
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
getWeekNumber(date) {
|
|
152
|
-
const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
|
|
153
|
-
const dayNum = d.getUTCDay() || 7;
|
|
154
|
-
d.setUTCDate(d.getUTCDate() + 4 - dayNum);
|
|
155
|
-
const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
|
|
156
|
-
return Math.ceil((((d.getTime() - yearStart.getTime()) / 86400000) + 1) / 7);
|
|
157
|
-
}
|
|
158
|
-
getTaskBarPosition(task) {
|
|
159
|
-
const { start: rangeStart } = this.getDateRange();
|
|
160
|
-
const taskStart = typeof task.start === 'string' ? new Date(task.start) : task.start;
|
|
161
|
-
const taskEnd = typeof task.end === 'string' ? new Date(task.end) : task.end;
|
|
162
|
-
const columnWidth = this.getColumnWidth();
|
|
163
|
-
const dayInMs = 24 * 60 * 60 * 1000;
|
|
164
|
-
const startOffset = (taskStart.getTime() - rangeStart.getTime()) / dayInMs;
|
|
165
|
-
const duration = (taskEnd.getTime() - taskStart.getTime()) / dayInMs;
|
|
166
|
-
let daysPerColumn = 1;
|
|
167
|
-
switch (this.viewMode) {
|
|
168
|
-
case 'week':
|
|
169
|
-
daysPerColumn = 7;
|
|
170
|
-
break;
|
|
171
|
-
case 'month':
|
|
172
|
-
daysPerColumn = 30;
|
|
173
|
-
break;
|
|
174
|
-
case 'year':
|
|
175
|
-
daysPerColumn = 365;
|
|
176
|
-
break;
|
|
177
|
-
}
|
|
178
|
-
return {
|
|
179
|
-
left: (startOffset / daysPerColumn) * columnWidth,
|
|
180
|
-
width: Math.max((duration / daysPerColumn) * columnWidth, 20)
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
isToday(date) {
|
|
184
|
-
const today = new Date();
|
|
185
|
-
return date.toDateString() === today.toDateString();
|
|
186
|
-
}
|
|
187
|
-
handleTaskClick(task) {
|
|
188
|
-
this.dispatchTaskClick(task);
|
|
189
|
-
}
|
|
190
|
-
template() {
|
|
191
|
-
const columns = this.getColumns();
|
|
192
|
-
const columnWidth = this.getColumnWidth();
|
|
193
|
-
return html /*html*/ `
|
|
194
|
-
<div class="gantt">
|
|
195
|
-
<div class="gantt__sidebar">
|
|
196
|
-
<div class="gantt__header">
|
|
197
|
-
<div class="gantt__header-cell" style="width: 200px;">Task</div>
|
|
198
|
-
</div>
|
|
199
|
-
<div class="gantt__rows">
|
|
200
|
-
${this.tasks.map(task => html `
|
|
201
|
-
<div class="gantt__row">
|
|
202
|
-
<div class="gantt__row-label">${task.name}</div>
|
|
203
|
-
</div>
|
|
204
|
-
`)}
|
|
205
|
-
</div>
|
|
206
|
-
</div>
|
|
207
|
-
|
|
208
|
-
<div class="gantt__timeline">
|
|
209
|
-
<div class="gantt__header">
|
|
210
|
-
${columns.map(date => html `
|
|
211
|
-
<div class="gantt__header-cell" style="width: ${columnWidth}px;">
|
|
212
|
-
${this.formatColumnHeader(date)}
|
|
213
|
-
</div>
|
|
214
|
-
`)}
|
|
215
|
-
</div>
|
|
216
|
-
|
|
217
|
-
<div class="gantt__rows" style="position: relative;">
|
|
218
|
-
<!-- Grid lines -->
|
|
219
|
-
<div class="gantt__grid">
|
|
220
|
-
${columns.map(date => html `
|
|
221
|
-
<div
|
|
222
|
-
class="gantt__grid-column ${this.showToday && this.isToday(date) ? 'gantt__grid-column--today' : ''}"
|
|
223
|
-
style="width: ${columnWidth}px;">
|
|
224
|
-
</div>
|
|
225
|
-
`)}
|
|
226
|
-
</div>
|
|
227
|
-
|
|
228
|
-
<!-- Task bars -->
|
|
229
|
-
${this.tasks.map(task => {
|
|
230
|
-
const { left, width } = this.getTaskBarPosition(task);
|
|
231
|
-
return html /*html*/ `
|
|
232
|
-
<div class="gantt__row">
|
|
233
|
-
<div class="gantt__bars">
|
|
234
|
-
<div
|
|
235
|
-
class="gantt__bar"
|
|
236
|
-
style="${task.color ? `background: ${task.color};` : ''} left: ${left}px; width: ${width}px;"
|
|
237
|
-
@click=${() => this.handleTaskClick(task)}>
|
|
238
|
-
<div class="gantt__bar-label">${task.name}</div>
|
|
239
|
-
<if ${this.showProgress && task.progress !== undefined}>
|
|
240
|
-
<div class="gantt__bar-progress" style="width: ${task.progress}%;"></div>
|
|
241
|
-
</if>
|
|
242
|
-
</div>
|
|
243
|
-
</div>
|
|
244
|
-
</div>
|
|
245
|
-
`;
|
|
246
|
-
})}
|
|
247
|
-
</div>
|
|
248
|
-
</div>
|
|
249
|
-
</div>
|
|
250
|
-
`;
|
|
251
|
-
}
|
|
252
|
-
constructor() {
|
|
253
|
-
super(...arguments);
|
|
254
|
-
this.tasks = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _tasks_initializers, []));
|
|
255
|
-
this.viewMode = (__runInitializers(this, _tasks_extraInitializers), __runInitializers(this, _viewMode_initializers, 'day'));
|
|
256
|
-
this.showToday = (__runInitializers(this, _viewMode_extraInitializers), __runInitializers(this, _showToday_initializers, true));
|
|
257
|
-
this.showProgress = (__runInitializers(this, _showToday_extraInitializers), __runInitializers(this, _showProgress_initializers, true));
|
|
258
|
-
this.showDependencies = (__runInitializers(this, _showProgress_extraInitializers), __runInitializers(this, _showDependencies_initializers, false));
|
|
259
|
-
this.minDate = (__runInitializers(this, _showDependencies_extraInitializers), __runInitializers(this, _minDate_initializers, ''));
|
|
260
|
-
this.maxDate = (__runInitializers(this, _minDate_extraInitializers), __runInitializers(this, _maxDate_initializers, ''));
|
|
261
|
-
__runInitializers(this, _maxDate_extraInitializers);
|
|
262
|
-
}
|
|
263
|
-
});
|
|
264
|
-
return _classThis;
|
|
265
|
-
})();
|
|
266
|
-
|
|
267
|
-
export { SniceGantt };
|
|
268
|
-
//# sourceMappingURL=snice-gantt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"snice-gantt.js","sources":["../../../components/gantt/snice-gantt.css?inline","../../../../components/gantt/snice-gantt.ts"],"sourcesContent":["export default \":host{display:block;font-family:var(--snice-font-family, system-ui, -apple-system, sans-serif);overflow:auto}.gantt{display:flex;min-width:max-content}.gantt__sidebar{flex-shrink:0;width:200px;border-right:1px solid var(--snice-border-color,#e0e0e0);background:var(--snice-bg-secondary,#fafafa)}.gantt__timeline{flex:1;overflow-x:auto}.gantt__header{display:flex;border-bottom:2px solid var(--snice-border-color,#e0e0e0);background:#fff;position:sticky;top:0;z-index:10}.gantt__header-cell{padding:12px 8px;font-size:12px;font-weight:600;color:var(--snice-text-secondary,#666);text-align:center;border-right:1px solid var(--snice-border-color,#e0e0e0);flex-shrink:0}.gantt__rows{position:relative}.gantt__row{display:flex;border-bottom:1px solid var(--snice-border-color,#e0e0e0);height:50px;align-items:center}.gantt__row-label{padding:0 12px;font-size:14px;color:var(--snice-text-primary,#1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt__grid{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;pointer-events:none}.gantt__grid-column{flex-shrink:0;border-right:1px solid var(--snice-border-color,#e0e0e0)}.gantt__grid-column--today{background:var(--snice-color-primary-light,#e3f2fd);border-right:2px solid var(--snice-color-primary,#2196f3)}.gantt__bars{position:relative;display:flex;align-items:center;height:100%}.gantt__bar{position:absolute;height:30px;background:var(--snice-color-primary,#2196f3);border-radius:4px;padding:0 8px;display:flex;align-items:center;cursor:pointer;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.gantt__bar:hover{box-shadow:0 2px 8px rgba(0,0,0,.3);transform:translateY(-1px)}.gantt__bar-label{font-size:12px;color:#fff;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt__bar-progress{position:absolute;top:0;left:0;bottom:0;background:rgba(255,255,255,.3);border-radius:4px 0 0 4px;pointer-events:none}.gantt__today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--snice-color-primary,#2196f3);pointer-events:none;z-index:5}.gantt__dependencies{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:1}.gantt__dependency{position:absolute;stroke:var(--snice-color-primary,#2196f3);stroke-width:2;fill:none}\";",null],"names":[],"mappings":";;;AAAA,iBAAe,6sEAA6sE;;ICK/sE,UAAU,GAAA,CAAA,MAAA;4BADtB,OAAO,CAAC,aAAa,CAAC,CAAA;;;;sBACS,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;AAAnB,KAAA,cAAQ,WAAW,CAAA;;;;AACxC,YAAA,iBAAA,GAAA,CAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;AAGzB,YAAA,oBAAA,GAAA,CAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAA;qCAGpC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAA;wCAGpD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAA;4CAGvD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAA;mCAG3D,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAA;mCAG/C,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAA;AAG/C,YAAA,6BAAA,GAAA,CAAA,QAAQ,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;AAKtE,YAAA,kBAAA,GAAA,CAAA,MAAM,EAAE,CAAA;AA0IR,YAAA,oBAAA,GAAA,CAAA,MAAM,EAAE,CAAA;AA9IT,YAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,6BAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,mBAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAQ,iBAAiB,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,CAAA;AAKzB,YAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,QAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAQ,MAAM,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,CAAA;AA0Id,YAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,UAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,QAAQ,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,CAAA;YApKR,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,OAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,KAAK,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAL,KAAK,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,mBAAA,EAAA,wBAAA,CAAA;YAGL,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,UAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,QAAQ,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAR,QAAQ,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,sBAAA,EAAA,2BAAA,CAAA;YAGR,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,WAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,WAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,SAAS,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAT,SAAS,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,uBAAA,EAAA,4BAAA,CAAA;YAGT,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,wBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,cAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,cAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,YAAY,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAZ,YAAY,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,0BAAA,EAAA,+BAAA,CAAA;YAGZ,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,4BAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,kBAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,gBAAgB,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAhB,gBAAgB,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,8BAAA,EAAA,mCAAA,CAAA;YAGhB,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,SAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,OAAO,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAP,OAAO,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,qBAAA,EAAA,0BAAA,CAAA;YAGP,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,SAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,OAAO,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAP,OAAO,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,qBAAA,EAAA,0BAAA,CAAA;YApBT,YAAA,CAAA,IAAA,EAAA,gBAAA,GAAA,EAAA,KAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,uBAAA,CAAA;;;YAAa,iBAAA,CAAA,UAAA,EAAA,uBAAA,CAAA;;AAuBH,QAAA,iBAAiB,CAAC,IAAe,EAAA;AACvC,YAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;QAC9B;QAGQ,MAAM,GAAA;AACZ,YAAA,OAAO,GAAG,SAAO,CAAA,EAAG,UAAU,EAAE;QAClC;AAEA,QAAA,OAAO,CAAC,EAAmB,EAAA;AACzB,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QAC1C;QAEA,aAAa,GAAA;;QAEb;AAEA,QAAA,YAAY,CAAC,EAAmB,EAAA;;QAEhC;QAEQ,YAAY,GAAA;YAClB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,gBAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE;gBACxB,OAAO;AACL,oBAAA,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzD,oBAAA,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;iBAC3D;YACH;AAEA,YAAA,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO;iBACvB,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO;AACzE,gBAAA,IAAI;AAEN,YAAA,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO;iBACvB,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO;AACzE,gBAAA,IAAI;AAEN,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;gBACxB,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK;gBAChF,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG;AAExE,gBAAA,IAAI,CAAC,OAAO,IAAI,KAAK,GAAG,OAAO;oBAAE,OAAO,GAAG,KAAK;AAChD,gBAAA,IAAI,CAAC,OAAO,IAAI,GAAG,GAAG,OAAO;oBAAE,OAAO,GAAG,GAAG;AAC9C,YAAA,CAAC,CAAC;YAEF,OAAO,EAAE,KAAK,EAAE,OAAQ,EAAE,GAAG,EAAE,OAAQ,EAAE;QAC3C;QAEQ,cAAc,GAAA;AACpB,YAAA,QAAQ,IAAI,CAAC,QAAQ;AACnB,gBAAA,KAAK,KAAK,EAAE,OAAO,EAAE;AACrB,gBAAA,KAAK,MAAM,EAAE,OAAO,GAAG;AACvB,gBAAA,KAAK,OAAO,EAAE,OAAO,GAAG;AACxB,gBAAA,KAAK,MAAM,EAAE,OAAO,GAAG;AACvB,gBAAA,SAAS,OAAO,EAAE;;QAEtB;QAEQ,UAAU,GAAA;YAChB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE;YAC1C,MAAM,OAAO,GAAW,EAAE;AAC1B,YAAA,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AAE/B,YAAA,OAAO,OAAO,IAAI,GAAG,EAAE;gBACrB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;AAE/B,gBAAA,QAAQ,IAAI,CAAC,QAAQ;AACnB,oBAAA,KAAK,KAAK;wBACR,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;wBACtC;AACF,oBAAA,KAAK,MAAM;wBACT,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;wBACtC;AACF,oBAAA,KAAK,OAAO;wBACV,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wBACxC;AACF,oBAAA,KAAK,MAAM;wBACT,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;wBAC9C;;YAEN;AAEA,YAAA,OAAO,OAAO;QAChB;AAEQ,QAAA,kBAAkB,CAAC,IAAU,EAAA;AACnC,YAAA,QAAQ,IAAI,CAAC,QAAQ;AACnB,gBAAA,KAAK,KAAK;AACR,oBAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AAC7E,gBAAA,KAAK,MAAM;oBACT,OAAO,CAAA,KAAA,EAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AAC3C,gBAAA,KAAK,OAAO;AACV,oBAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC9E,gBAAA,KAAK,MAAM;AACT,oBAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;AACtC,gBAAA;AACE,oBAAA,OAAO,EAAE;;QAEf;AAEQ,QAAA,aAAa,CAAC,IAAU,EAAA;YAC9B,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACjF,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC;AACjC,YAAA,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;AACzC,YAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E;AAEQ,QAAA,kBAAkB,CAAC,IAAe,EAAA;YACxC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE;YACjD,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK;YACpF,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG;AAE5E,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;YACzC,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;AAEnC,YAAA,MAAM,WAAW,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,OAAO;AAC1E,YAAA,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,OAAO;YAEpE,IAAI,aAAa,GAAG,CAAC;AACrB,YAAA,QAAQ,IAAI,CAAC,QAAQ;AACnB,gBAAA,KAAK,MAAM;oBAAE,aAAa,GAAG,CAAC;oBAAE;AAChC,gBAAA,KAAK,OAAO;oBAAE,aAAa,GAAG,EAAE;oBAAE;AAClC,gBAAA,KAAK,MAAM;oBAAE,aAAa,GAAG,GAAG;oBAAE;;YAGpC,OAAO;AACL,gBAAA,IAAI,EAAE,CAAC,WAAW,GAAG,aAAa,IAAI,WAAW;AACjD,gBAAA,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,aAAa,IAAI,WAAW,EAAE,EAAE;aAC7D;QACH;AAEQ,QAAA,OAAO,CAAC,IAAU,EAAA;AACxB,YAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE;YACxB,OAAO,IAAI,CAAC,YAAY,EAAE,KAAK,KAAK,CAAC,YAAY,EAAE;QACrD;AAEQ,QAAA,eAAe,CAAC,IAAe,EAAA;AACrC,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC9B;QAGA,QAAQ,GAAA;AACN,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE;AACjC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;YAEzC,OAAO,IAAI,UAAQ;;;;;;;cAOT,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAA;;AAEO,8CAAA,EAAA,IAAI,CAAC,IAAI,CAAA;;aAE5C,CAAC;;;;;;cAMA,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAA;8DACwB,WAAW,CAAA;AACvD,gBAAA,EAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;;aAElC,CAAC;;;;;;gBAME,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAA;;AAEM,4CAAA,EAAA,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,2BAA2B,GAAG,EAAE,CAAA;kCACnF,WAAW,CAAA;;eAE9B,CAAC;;;;AAIF,YAAA,EAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAG;AACtB,gBAAA,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAErD,OAAO,IAAI,UAAQ;;;;;AAKF,6BAAA,EAAA,IAAI,CAAC,KAAK,GAAG,eAAe,IAAI,CAAC,KAAK,CAAA,CAAA,CAAG,GAAG,EAAE,CAAA,OAAA,EAAU,IAAI,cAAc,KAAK,CAAA;AAC/E,6BAAA,EAAA,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;AACT,oDAAA,EAAA,IAAI,CAAC,IAAI,CAAA;AACnC,0BAAA,EAAA,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAA;AACH,uEAAA,EAAA,IAAI,CAAC,QAAQ,CAAA;;;;;eAKvE;AACH,YAAA,CAAC,CAAC;;;;KAIT;QACH;;;AAnOA,YAAA,IAAA,CAAA,KAAK,IAFM,iBAAA,CAAA,IAAA,EAAA,0BAAA,CAAU,EAAA,iBAAA,CAAA,IAAA,EAAA,mBAAA,EAEA,EAAE,CAAA,CAAA;YAGvB,IAAA,CAAA,QAAQ,IAAA,iBAAA,CAAA,IAAA,EAAA,wBAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,sBAAA,EAAkB,KAAK,CAAA,CAAA;YAG/B,IAAA,CAAA,SAAS,IAAA,iBAAA,CAAA,IAAA,EAAA,2BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,uBAAA,EAAG,IAAI,CAAA,CAAA;YAGhB,IAAA,CAAA,YAAY,IAAA,iBAAA,CAAA,IAAA,EAAA,4BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,0BAAA,EAAG,IAAI,CAAA,CAAA;YAGnB,IAAA,CAAA,gBAAgB,IAAA,iBAAA,CAAA,IAAA,EAAA,+BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,8BAAA,EAAG,KAAK,CAAA,CAAA;YAGxB,IAAA,CAAA,OAAO,IAAA,iBAAA,CAAA,IAAA,EAAA,mCAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,qBAAA,EAAkB,EAAE,CAAA,CAAA;YAG3B,IAAA,CAAA,OAAO,IAAA,iBAAA,CAAA,IAAA,EAAA,0BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,qBAAA,EAAkB,EAAE,CAAA,CAAA;;;;;;;;;"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export type GanttViewMode = 'day' | 'week' | 'month' | 'year';
|
|
2
|
-
export interface GanttTask {
|
|
3
|
-
id: string | number;
|
|
4
|
-
name: string;
|
|
5
|
-
start: Date | string;
|
|
6
|
-
end: Date | string;
|
|
7
|
-
progress?: number;
|
|
8
|
-
dependencies?: (string | number)[];
|
|
9
|
-
color?: string;
|
|
10
|
-
data?: any;
|
|
11
|
-
}
|
|
12
|
-
export interface SniceGanttElement extends HTMLElement {
|
|
13
|
-
tasks: GanttTask[];
|
|
14
|
-
viewMode: GanttViewMode;
|
|
15
|
-
showToday: boolean;
|
|
16
|
-
showProgress: boolean;
|
|
17
|
-
showDependencies: boolean;
|
|
18
|
-
minDate: Date | string;
|
|
19
|
-
maxDate: Date | string;
|
|
20
|
-
getTask(id: string | number): GanttTask | undefined;
|
|
21
|
-
scrollToToday(): void;
|
|
22
|
-
scrollToTask(id: string | number): void;
|
|
23
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
var cssContent = ":host{display:flex;align-items:center;padding:0 var(--snice-table-cell-padding,var(--snice-spacing-md,.75rem));min-height:2.5rem;height:2.5rem;min-width:6.25rem;flex:1;font-size:.875rem;line-height:1.25rem}.cell-content{width:100%;min-width:6.25rem;min-height:1.25rem;word-wrap:break-word}:host([align=left]){text-align:left}:host([align=center]){text-align:center}:host([align=right]){text-align:right}:host([type=accounting]),:host([type=currency]),:host([type=fraction]),:host([type=number]),:host([type=percent]),:host([type=scientific]){font-variant-numeric:tabular-nums;text-align:right}:host([type=date]){font-variant-numeric:tabular-nums}:host([type=boolean]){text-align:center;font-size:1rem}:host([type=rating]){text-align:center}:host([type=sparkline]){text-align:center}.cell-content--text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-content--text[data-multiline=true]{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word}.cell-content--date,.cell-content--number{font-feature-settings:'tnum'}:host([type=boolean]) .cell-content{display:inline-flex;align-items:center;justify-content:center}:host([type=rating]) .cell-content{display:inline-flex;align-items:center;justify-content:center;gap:.125rem}.cell-content--progress{width:100%;min-width:4rem}.cell-content--sparkline{display:flex;align-items:center;justify-content:center;min-width:3rem}:host(.positive){color:var(--snice-color-success)}:host(.negative){color:var(--snice-color-danger)}:host(.warning){color:var(--snice-color-warning);background-color:rgb(var(--snice-color-yellow-100))}:host(.danger){color:var(--snice-color-danger);background-color:rgb(var(--snice-color-red-100))}:host(.success){color:var(--snice-color-success);background-color:rgb(var(--snice-color-green-100))}:host(.info){color:var(--snice-color-primary);background-color:rgb(var(--snice-color-blue-100))}:host(.date--today){font-weight:var(--snice-font-weight-semibold);color:var(--snice-color-primary)}:host(.date--past){color:var(--snice-color-text-secondary)}:host(.date--future){color:var(--snice-color-success)}:host(.number--negative.number--negative-red){color:var(--snice-color-danger)}:host(.number--positive.number--highlighted){color:var(--snice-color-success);font-weight:var(--snice-font-weight-semibold)}:host(.number--zero){color:var(--snice-color-text-secondary)}:host([truncate]) .cell-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([wrap]) .cell-content{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word}:host(:not([value])) .cell-content,:host([value=\"\"]) .cell-content{color:#6c757d}:host(.loading){position:relative;overflow:hidden}:host(.loading) .cell-content{opacity:.6}:host(.loading)::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:1.5s infinite cell-shimmer}@keyframes cell-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}:host(:focus-within){outline:#007bff solid 2px;outline-offset:-2px}.cell-content button,.cell-content input,.cell-content select{font-size:inherit;line-height:inherit}.cell-content a{color:#007bff;text-decoration:none}.cell-content a:hover{text-decoration:underline}@media (max-width:768px){:host{font-size:.75rem;line-height:1rem}:host([type=boolean]){font-size:.875rem}}@media (prefers-reduced-motion:reduce){:host(.loading)::after{animation:none}}@media (prefers-contrast:high){:host(.positive){background-color:#d4edda}:host(.negative){background-color:#f8d7da}.cell-content a{text-decoration:underline}}@media print{:host{font-size:.75rem}:host(.loading)::after{display:none}.cell-content a{text-decoration:underline}}";
|
|
2
|
-
|
|
3
|
-
export { cssContent as c };
|
|
4
|
-
//# sourceMappingURL=snice-cell-C0slgOpe.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"snice-cell-C0slgOpe.js","sources":["../../components/table/snice-cell.css?inline"],"sourcesContent":["export default \":host{display:flex;align-items:center;padding:0 var(--snice-table-cell-padding,var(--snice-spacing-md,.75rem));min-height:2.5rem;height:2.5rem;min-width:6.25rem;flex:1;font-size:.875rem;line-height:1.25rem}.cell-content{width:100%;min-width:6.25rem;min-height:1.25rem;word-wrap:break-word}:host([align=left]){text-align:left}:host([align=center]){text-align:center}:host([align=right]){text-align:right}:host([type=accounting]),:host([type=currency]),:host([type=fraction]),:host([type=number]),:host([type=percent]),:host([type=scientific]){font-variant-numeric:tabular-nums;text-align:right}:host([type=date]){font-variant-numeric:tabular-nums}:host([type=boolean]){text-align:center;font-size:1rem}:host([type=rating]){text-align:center}:host([type=sparkline]){text-align:center}.cell-content--text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-content--text[data-multiline=true]{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word}.cell-content--date,.cell-content--number{font-feature-settings:'tnum'}:host([type=boolean]) .cell-content{display:inline-flex;align-items:center;justify-content:center}:host([type=rating]) .cell-content{display:inline-flex;align-items:center;justify-content:center;gap:.125rem}.cell-content--progress{width:100%;min-width:4rem}.cell-content--sparkline{display:flex;align-items:center;justify-content:center;min-width:3rem}:host(.positive){color:var(--snice-color-success)}:host(.negative){color:var(--snice-color-danger)}:host(.warning){color:var(--snice-color-warning);background-color:rgb(var(--snice-color-yellow-100))}:host(.danger){color:var(--snice-color-danger);background-color:rgb(var(--snice-color-red-100))}:host(.success){color:var(--snice-color-success);background-color:rgb(var(--snice-color-green-100))}:host(.info){color:var(--snice-color-primary);background-color:rgb(var(--snice-color-blue-100))}:host(.date--today){font-weight:var(--snice-font-weight-semibold);color:var(--snice-color-primary)}:host(.date--past){color:var(--snice-color-text-secondary)}:host(.date--future){color:var(--snice-color-success)}:host(.number--negative.number--negative-red){color:var(--snice-color-danger)}:host(.number--positive.number--highlighted){color:var(--snice-color-success);font-weight:var(--snice-font-weight-semibold)}:host(.number--zero){color:var(--snice-color-text-secondary)}:host([truncate]) .cell-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([wrap]) .cell-content{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word}:host(:not([value])) .cell-content,:host([value=\\\"\\\"]) .cell-content{color:#6c757d}:host(.loading){position:relative;overflow:hidden}:host(.loading) .cell-content{opacity:.6}:host(.loading)::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:1.5s infinite cell-shimmer}@keyframes cell-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}:host(:focus-within){outline:#007bff solid 2px;outline-offset:-2px}.cell-content button,.cell-content input,.cell-content select{font-size:inherit;line-height:inherit}.cell-content a{color:#007bff;text-decoration:none}.cell-content a:hover{text-decoration:underline}@media (max-width:768px){:host{font-size:.75rem;line-height:1rem}:host([type=boolean]){font-size:.875rem}}@media (prefers-reduced-motion:reduce){:host(.loading)::after{animation:none}}@media (prefers-contrast:high){:host(.positive){background-color:#d4edda}:host(.negative){background-color:#f8d7da}.cell-content a{text-decoration:underline}}@media print{:host{font-size:.75rem}:host(.loading)::after{display:none}.cell-content a{text-decoration:underline}}\";"],"names":[],"mappings":"AAAA,iBAAe,gpHAAgpH;;;;"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { StatTrend, StatSize, SniceStatElement } from './snice-stat.types';
|
|
2
|
-
export declare class SniceStat extends HTMLElement implements SniceStatElement {
|
|
3
|
-
label: string;
|
|
4
|
-
value: string | number;
|
|
5
|
-
change: string | number;
|
|
6
|
-
trend: StatTrend;
|
|
7
|
-
size: StatSize;
|
|
8
|
-
icon: string;
|
|
9
|
-
iconImage: string;
|
|
10
|
-
colorValue: boolean;
|
|
11
|
-
private getTrendIcon;
|
|
12
|
-
render(): import("snice").TemplateResult;
|
|
13
|
-
styles(): import("snice").CSSResult;
|
|
14
|
-
}
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import { __esDecorate, __runInitializers } from 'tslib';
|
|
2
|
-
import { element, property, render, styles, html, css } from 'snice';
|
|
3
|
-
|
|
4
|
-
var cssContent = ":host{display:block}.stat{font-family:var(--font-family, system-ui);padding:var(--spacing-lg,1.5rem);background:var(--color-background,#fff);border:1px solid var(--color-neutral-200,#e5e7eb);border-radius:var(--border-radius-lg,.5rem)}.stat--small{padding:var(--spacing-md,1rem)}.stat--large{padding:var(--spacing-xl,2rem)}.stat__header{display:flex;align-items:center;gap:var(--spacing-sm,.75rem);margin-bottom:var(--spacing-sm,.75rem)}.stat__icon{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;background:var(--color-primary-100,#dbeafe);border-radius:var(--border-radius-md,.375rem);font-size:1.25rem}.stat__icon-image{width:100%;height:100%;object-fit:contain}.stat__label{font-size:var(--font-size-sm, .875rem);color:var(--color-text-muted,#6b7280);font-weight:500}.stat__value{font-size:var(--font-size-3xl, 2rem);font-weight:700;color:var(--color-text,#1f2937);margin-bottom:var(--spacing-xs,.5rem)}.stat--small .stat__value{font-size:var(--font-size-2xl, 1.5rem)}.stat--large .stat__value{font-size:var(--font-size-4xl, 2.5rem)}.stat__value--up{color:var(--color-success-600,#16a34a)}.stat__value--down{color:var(--color-danger-600,#dc2626)}.stat__value--neutral{color:var(--color-neutral-600,#6b7280)}.stat__change{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--font-size-sm, .875rem);font-weight:500}.stat__change--up{color:var(--color-success-600,#16a34a)}.stat__change--down{color:var(--color-danger-600,#dc2626)}.stat__change--neutral{color:var(--color-neutral-600,#6b7280)}.stat__change-icon{font-size:.75rem}";
|
|
5
|
-
|
|
6
|
-
let SniceStat = (() => {
|
|
7
|
-
let _classDecorators = [element('snice-stat')];
|
|
8
|
-
let _classDescriptor;
|
|
9
|
-
let _classExtraInitializers = [];
|
|
10
|
-
let _classThis;
|
|
11
|
-
let _classSuper = HTMLElement;
|
|
12
|
-
let _instanceExtraInitializers = [];
|
|
13
|
-
let _label_decorators;
|
|
14
|
-
let _label_initializers = [];
|
|
15
|
-
let _label_extraInitializers = [];
|
|
16
|
-
let _value_decorators;
|
|
17
|
-
let _value_initializers = [];
|
|
18
|
-
let _value_extraInitializers = [];
|
|
19
|
-
let _change_decorators;
|
|
20
|
-
let _change_initializers = [];
|
|
21
|
-
let _change_extraInitializers = [];
|
|
22
|
-
let _trend_decorators;
|
|
23
|
-
let _trend_initializers = [];
|
|
24
|
-
let _trend_extraInitializers = [];
|
|
25
|
-
let _size_decorators;
|
|
26
|
-
let _size_initializers = [];
|
|
27
|
-
let _size_extraInitializers = [];
|
|
28
|
-
let _icon_decorators;
|
|
29
|
-
let _icon_initializers = [];
|
|
30
|
-
let _icon_extraInitializers = [];
|
|
31
|
-
let _iconImage_decorators;
|
|
32
|
-
let _iconImage_initializers = [];
|
|
33
|
-
let _iconImage_extraInitializers = [];
|
|
34
|
-
let _colorValue_decorators;
|
|
35
|
-
let _colorValue_initializers = [];
|
|
36
|
-
let _colorValue_extraInitializers = [];
|
|
37
|
-
let _render_decorators;
|
|
38
|
-
let _styles_decorators;
|
|
39
|
-
(class extends _classSuper {
|
|
40
|
-
static { _classThis = this; }
|
|
41
|
-
static {
|
|
42
|
-
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
43
|
-
_label_decorators = [property({})];
|
|
44
|
-
_value_decorators = [property({})];
|
|
45
|
-
_change_decorators = [property({})];
|
|
46
|
-
_trend_decorators = [property({})];
|
|
47
|
-
_size_decorators = [property({})];
|
|
48
|
-
_icon_decorators = [property({})];
|
|
49
|
-
_iconImage_decorators = [property({ attribute: 'icon-image' })];
|
|
50
|
-
_colorValue_decorators = [property({ type: Boolean, attribute: 'color-value' })];
|
|
51
|
-
_render_decorators = [render()];
|
|
52
|
-
_styles_decorators = [styles()];
|
|
53
|
-
__esDecorate(this, null, _render_decorators, { kind: "method", name: "render", static: false, private: false, access: { has: obj => "render" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
54
|
-
__esDecorate(this, null, _styles_decorators, { kind: "method", name: "styles", static: false, private: false, access: { has: obj => "styles" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
55
|
-
__esDecorate(null, null, _label_decorators, { kind: "field", name: "label", static: false, private: false, access: { has: obj => "label" in obj, get: obj => obj.label, set: (obj, value) => { obj.label = value; } }, metadata: _metadata }, _label_initializers, _label_extraInitializers);
|
|
56
|
-
__esDecorate(null, null, _value_decorators, { kind: "field", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
|
|
57
|
-
__esDecorate(null, null, _change_decorators, { kind: "field", name: "change", static: false, private: false, access: { has: obj => "change" in obj, get: obj => obj.change, set: (obj, value) => { obj.change = value; } }, metadata: _metadata }, _change_initializers, _change_extraInitializers);
|
|
58
|
-
__esDecorate(null, null, _trend_decorators, { kind: "field", name: "trend", static: false, private: false, access: { has: obj => "trend" in obj, get: obj => obj.trend, set: (obj, value) => { obj.trend = value; } }, metadata: _metadata }, _trend_initializers, _trend_extraInitializers);
|
|
59
|
-
__esDecorate(null, null, _size_decorators, { kind: "field", name: "size", static: false, private: false, access: { has: obj => "size" in obj, get: obj => obj.size, set: (obj, value) => { obj.size = value; } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);
|
|
60
|
-
__esDecorate(null, null, _icon_decorators, { kind: "field", name: "icon", static: false, private: false, access: { has: obj => "icon" in obj, get: obj => obj.icon, set: (obj, value) => { obj.icon = value; } }, metadata: _metadata }, _icon_initializers, _icon_extraInitializers);
|
|
61
|
-
__esDecorate(null, null, _iconImage_decorators, { kind: "field", name: "iconImage", static: false, private: false, access: { has: obj => "iconImage" in obj, get: obj => obj.iconImage, set: (obj, value) => { obj.iconImage = value; } }, metadata: _metadata }, _iconImage_initializers, _iconImage_extraInitializers);
|
|
62
|
-
__esDecorate(null, null, _colorValue_decorators, { kind: "field", name: "colorValue", static: false, private: false, access: { has: obj => "colorValue" in obj, get: obj => obj.colorValue, set: (obj, value) => { obj.colorValue = value; } }, metadata: _metadata }, _colorValue_initializers, _colorValue_extraInitializers);
|
|
63
|
-
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
64
|
-
_classThis = _classDescriptor.value;
|
|
65
|
-
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
66
|
-
__runInitializers(_classThis, _classExtraInitializers);
|
|
67
|
-
}
|
|
68
|
-
getTrendIcon() {
|
|
69
|
-
switch (this.trend) {
|
|
70
|
-
case 'up': return '↑';
|
|
71
|
-
case 'down': return '↓';
|
|
72
|
-
case 'neutral': return '→';
|
|
73
|
-
default: return '';
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
render() {
|
|
77
|
-
const statClasses = [
|
|
78
|
-
'stat',
|
|
79
|
-
`stat--${this.size}`
|
|
80
|
-
].filter(Boolean).join(' ');
|
|
81
|
-
const valueClasses = [
|
|
82
|
-
'stat__value',
|
|
83
|
-
this.colorValue && this.trend ? `stat__value--${this.trend}` : ''
|
|
84
|
-
].filter(Boolean).join(' ');
|
|
85
|
-
const changeClasses = [
|
|
86
|
-
'stat__change',
|
|
87
|
-
this.trend ? `stat__change--${this.trend}` : ''
|
|
88
|
-
].filter(Boolean).join(' ');
|
|
89
|
-
return html /*html*/ `
|
|
90
|
-
<div class="${statClasses}" part="container">
|
|
91
|
-
<if ${this.icon || this.iconImage}>
|
|
92
|
-
<div class="stat__header" part="header">
|
|
93
|
-
<div class="stat__icon" part="icon">
|
|
94
|
-
<if ${this.iconImage}>
|
|
95
|
-
<img class="stat__icon-image" src="${this.iconImage}" alt="" />
|
|
96
|
-
</if>
|
|
97
|
-
<if ${!this.iconImage && this.icon}>
|
|
98
|
-
${this.icon}
|
|
99
|
-
</if>
|
|
100
|
-
</div>
|
|
101
|
-
<div class="stat__label" part="label">${this.label}</div>
|
|
102
|
-
</div>
|
|
103
|
-
</if>
|
|
104
|
-
|
|
105
|
-
<if ${!this.icon && !this.iconImage && this.label}>
|
|
106
|
-
<div class="stat__label" part="label">${this.label}</div>
|
|
107
|
-
</if>
|
|
108
|
-
|
|
109
|
-
<div class="${valueClasses}" part="value">${this.value}</div>
|
|
110
|
-
|
|
111
|
-
<if ${this.change}>
|
|
112
|
-
<div class="${changeClasses}" part="change">
|
|
113
|
-
<span class="stat__change-icon">${this.getTrendIcon()}</span>
|
|
114
|
-
${this.change}
|
|
115
|
-
</div>
|
|
116
|
-
</if>
|
|
117
|
-
</div>
|
|
118
|
-
`;
|
|
119
|
-
}
|
|
120
|
-
styles() {
|
|
121
|
-
return css /*css*/ `${cssContent}`;
|
|
122
|
-
}
|
|
123
|
-
constructor() {
|
|
124
|
-
super(...arguments);
|
|
125
|
-
this.label = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _label_initializers, ''));
|
|
126
|
-
this.value = (__runInitializers(this, _label_extraInitializers), __runInitializers(this, _value_initializers, ''));
|
|
127
|
-
this.change = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _change_initializers, ''));
|
|
128
|
-
this.trend = (__runInitializers(this, _change_extraInitializers), __runInitializers(this, _trend_initializers, 'neutral'));
|
|
129
|
-
this.size = (__runInitializers(this, _trend_extraInitializers), __runInitializers(this, _size_initializers, 'medium'));
|
|
130
|
-
this.icon = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _icon_initializers, ''));
|
|
131
|
-
this.iconImage = (__runInitializers(this, _icon_extraInitializers), __runInitializers(this, _iconImage_initializers, ''));
|
|
132
|
-
this.colorValue = (__runInitializers(this, _iconImage_extraInitializers), __runInitializers(this, _colorValue_initializers, false));
|
|
133
|
-
__runInitializers(this, _colorValue_extraInitializers);
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
return _classThis;
|
|
137
|
-
})();
|
|
138
|
-
|
|
139
|
-
export { SniceStat };
|
|
140
|
-
//# sourceMappingURL=snice-stat.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"snice-stat.js","sources":["../../../components/stat/snice-stat.css?inline","../../../../components/stat/snice-stat.ts"],"sourcesContent":["export default \":host{display:block}.stat{font-family:var(--font-family, system-ui);padding:var(--spacing-lg,1.5rem);background:var(--color-background,#fff);border:1px solid var(--color-neutral-200,#e5e7eb);border-radius:var(--border-radius-lg,.5rem)}.stat--small{padding:var(--spacing-md,1rem)}.stat--large{padding:var(--spacing-xl,2rem)}.stat__header{display:flex;align-items:center;gap:var(--spacing-sm,.75rem);margin-bottom:var(--spacing-sm,.75rem)}.stat__icon{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;background:var(--color-primary-100,#dbeafe);border-radius:var(--border-radius-md,.375rem);font-size:1.25rem}.stat__icon-image{width:100%;height:100%;object-fit:contain}.stat__label{font-size:var(--font-size-sm, .875rem);color:var(--color-text-muted,#6b7280);font-weight:500}.stat__value{font-size:var(--font-size-3xl, 2rem);font-weight:700;color:var(--color-text,#1f2937);margin-bottom:var(--spacing-xs,.5rem)}.stat--small .stat__value{font-size:var(--font-size-2xl, 1.5rem)}.stat--large .stat__value{font-size:var(--font-size-4xl, 2.5rem)}.stat__value--up{color:var(--color-success-600,#16a34a)}.stat__value--down{color:var(--color-danger-600,#dc2626)}.stat__value--neutral{color:var(--color-neutral-600,#6b7280)}.stat__change{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--font-size-sm, .875rem);font-weight:500}.stat__change--up{color:var(--color-success-600,#16a34a)}.stat__change--down{color:var(--color-danger-600,#dc2626)}.stat__change--neutral{color:var(--color-neutral-600,#6b7280)}.stat__change-icon{font-size:.75rem}\";",null],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export type StatTrend = 'up' | 'down' | 'neutral';
|
|
2
|
-
export type StatSize = 'small' | 'medium' | 'large';
|
|
3
|
-
export interface SniceStatElement extends HTMLElement {
|
|
4
|
-
label: string;
|
|
5
|
-
value: string | number;
|
|
6
|
-
change: string | number;
|
|
7
|
-
trend: StatTrend;
|
|
8
|
-
size: StatSize;
|
|
9
|
-
icon: string;
|
|
10
|
-
iconImage: string;
|
|
11
|
-
colorValue: boolean;
|
|
12
|
-
}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# snice-actions
|
|
2
|
-
|
|
3
|
-
Action button group with overflow menu.
|
|
4
|
-
|
|
5
|
-
## Properties
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
8
|
-
actions: ActionButton[] = [];
|
|
9
|
-
size: 'small'|'medium'|'large' = 'medium';
|
|
10
|
-
variant: 'text'|'outlined'|'filled' = 'text';
|
|
11
|
-
showLabels: boolean = true;
|
|
12
|
-
maxVisible: number = 3;
|
|
13
|
-
moreLabel: string = 'More';
|
|
14
|
-
moreIcon: string = '⋯';
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## ActionButton Interface
|
|
18
|
-
|
|
19
|
-
```typescript
|
|
20
|
-
interface ActionButton {
|
|
21
|
-
id: string;
|
|
22
|
-
label?: string;
|
|
23
|
-
icon?: string;
|
|
24
|
-
iconImage?: string;
|
|
25
|
-
variant?: ActionButtonVariant;
|
|
26
|
-
disabled?: boolean;
|
|
27
|
-
danger?: boolean;
|
|
28
|
-
tooltip?: string;
|
|
29
|
-
action?: () => void | Promise<void>;
|
|
30
|
-
href?: string;
|
|
31
|
-
target?: string;
|
|
32
|
-
data?: any;
|
|
33
|
-
}
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Methods
|
|
37
|
-
|
|
38
|
-
```typescript
|
|
39
|
-
triggerAction(id: string): void
|
|
40
|
-
getAction(id: string): ActionButton | undefined
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
## Events
|
|
44
|
-
|
|
45
|
-
- `@snice/action-trigger` - Dispatched when action triggered (detail: { action, actionsElement })
|
|
46
|
-
|
|
47
|
-
## Usage
|
|
48
|
-
|
|
49
|
-
```javascript
|
|
50
|
-
actions.actions = [
|
|
51
|
-
{ id: 'edit', label: 'Edit', icon: '✏️' },
|
|
52
|
-
{ id: 'delete', label: 'Delete', icon: '🗑️', danger: true }
|
|
53
|
-
];
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
```html
|
|
57
|
-
<!-- Icon only -->
|
|
58
|
-
<snice-actions show-labels="false"></snice-actions>
|
|
59
|
-
|
|
60
|
-
<!-- With overflow (max 3 visible) -->
|
|
61
|
-
<snice-actions max-visible="3"></snice-actions>
|
|
62
|
-
|
|
63
|
-
<!-- Outlined variant -->
|
|
64
|
-
<snice-actions variant="outlined"></snice-actions>
|
|
65
|
-
|
|
66
|
-
<!-- Small size -->
|
|
67
|
-
<snice-actions size="small"></snice-actions>
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Features
|
|
71
|
-
|
|
72
|
-
- Multiple button variants (text/outlined/filled)
|
|
73
|
-
- Icon-only mode
|
|
74
|
-
- Overflow menu for many actions
|
|
75
|
-
- Danger styling for destructive actions
|
|
76
|
-
- Link support (href/target)
|
|
77
|
-
- Async action callbacks
|
|
78
|
-
- Per-action variant override
|
|
79
|
-
- Disabled state
|
|
80
|
-
- Custom tooltips
|
|
81
|
-
- Programmatic triggering
|