@aquera/nile-elements 0.1.73-beta-1.8 → 0.1.73-beta-1.9
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/README.md +0 -3
- package/demo/index.html +9 -47
- package/dist/axe.min-2b379f29.cjs.js +12 -0
- package/dist/axe.min-2b379f29.cjs.js.map +1 -0
- package/dist/axe.min-c2cd8733.esm.js +12 -0
- package/dist/{fixture-90b199c4.esm.js → fixture-2b5b3aba.esm.js} +1 -1
- package/dist/{fixture-5b79f853.cjs.js → fixture-3bfb4490.cjs.js} +2 -2
- package/dist/{fixture-5b79f853.cjs.js.map → fixture-3bfb4490.cjs.js.map} +1 -1
- package/dist/{fixture-dbd66009.cjs.js → fixture-7bfb866e.cjs.js} +2 -2
- package/dist/fixture-7bfb866e.cjs.js.map +1 -0
- package/dist/{fixture-cf7bfcf5.esm.js → fixture-8edec91c.esm.js} +1 -1
- package/dist/fixture-e7023246.esm.js +569 -0
- package/dist/fixture-fe6c932e.cjs.js +395 -0
- package/dist/{fixture-dbd66009.cjs.js.map → fixture-fe6c932e.cjs.js.map} +1 -1
- package/dist/index.js +4 -5
- package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
- package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
- package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
- package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
- package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
- package/dist/nile-badge/nile-badge.test.esm.js +1 -1
- package/dist/nile-button/nile-button.test.cjs.js +1 -1
- package/dist/nile-button/nile-button.test.esm.js +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
- package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
- package/dist/nile-card/nile-card.test.cjs.js +1 -1
- package/dist/nile-card/nile-card.test.esm.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
- package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.test.esm.js +1 -1
- package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
- package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
- package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
- package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
- package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
- package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.test.cjs.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.test.esm.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.test.cjs.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.test.esm.js +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +1 -1
- package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
- package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
- package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
- package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
- package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
- package/dist/nile-hero/nile-hero.test.esm.js +1 -1
- package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
- package/dist/nile-icon/nile-icon.test.esm.js +1 -1
- package/dist/nile-input/nile-input.test.cjs.js +1 -1
- package/dist/nile-input/nile-input.test.esm.js +1 -1
- package/dist/nile-link/nile-link.test.cjs.js +1 -1
- package/dist/nile-link/nile-link.test.esm.js +1 -1
- package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
- package/dist/nile-loader/nile-loader.test.esm.js +1 -1
- package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
- package/dist/nile-popover/nile-popover.test.esm.js +1 -1
- package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
- package/dist/nile-popup/nile-popup.test.esm.js +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
- package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
- package/dist/nile-radio/nile-radio.test.esm.js +1 -1
- package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
- package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.test.cjs.js +1 -1
- package/dist/nile-select/nile-select.test.esm.js +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
- package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
- package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.esm.js +2 -2
- package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +1 -1
- package/dist/nile-virtual-select/renderer.cjs.js +1 -1
- package/dist/nile-virtual-select/renderer.cjs.js.map +1 -1
- package/dist/nile-virtual-select/renderer.esm.js +3 -4
- package/dist/src/nile-icon/icons/svg/ng-lock-03.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/ng-lock-03.js +5 -0
- package/dist/src/nile-icon/icons/svg/ng-lock-03.js.map +1 -0
- package/dist/src/nile-select/nile-select.js.map +1 -1
- package/dist/src/nile-virtual-select/nile-virtual-select.d.ts +1 -9
- package/dist/src/nile-virtual-select/nile-virtual-select.js +5 -55
- package/dist/src/nile-virtual-select/nile-virtual-select.js.map +1 -1
- package/dist/src/nile-virtual-select/renderer.d.ts +2 -2
- package/dist/src/nile-virtual-select/renderer.js +5 -6
- package/dist/src/nile-virtual-select/renderer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-select/nile-select.ts +11 -11
- package/src/nile-virtual-select/nile-virtual-select.ts +7 -68
- package/src/nile-virtual-select/renderer.ts +5 -7
- package/vscode-html-custom-data.json +1 -17
- package/dist/src/internal/resizable-helper.d.ts +0 -59
- package/dist/src/internal/resizable-helper.js +0 -115
- package/dist/src/internal/resizable-helper.js.map +0 -1
- package/dist/src/internal/resizable-styles.d.ts +0 -16
- package/dist/src/internal/resizable-styles.js +0 -144
- package/dist/src/internal/resizable-styles.js.map +0 -1
- package/dist/src/nile-badge/__snapshots__/nile-badge.test.snap.js +0 -17
- package/dist/src/nile-calendar/__snapshots__/nile-calendar.test.snap.js +0 -310
- package/dist/src/nile-card/__snapshots__/nile-card.test.snap.js +0 -34
- package/dist/src/nile-checkbox/__snapshots__/nile-checkbox.test.snap.js +0 -31
- package/dist/src/nile-grid/data-processor.d.ts +0 -37
- package/dist/src/nile-grid/data-processor.js +0 -122
- package/dist/src/nile-grid/data-processor.js.map +0 -1
- package/dist/src/nile-grid/event-handlers.d.ts +0 -35
- package/dist/src/nile-grid/event-handlers.js +0 -158
- package/dist/src/nile-grid/event-handlers.js.map +0 -1
- package/dist/src/nile-grid/index.d.ts +0 -5
- package/dist/src/nile-grid/index.js +0 -6
- package/dist/src/nile-grid/index.js.map +0 -1
- package/dist/src/nile-grid/nile-grid.css.d.ts +0 -1
- package/dist/src/nile-grid/nile-grid.css.js +0 -120
- package/dist/src/nile-grid/nile-grid.css.js.map +0 -1
- package/dist/src/nile-grid/nile-grid.d.ts +0 -39
- package/dist/src/nile-grid/nile-grid.js +0 -182
- package/dist/src/nile-grid/nile-grid.js.map +0 -1
- package/dist/src/nile-grid/renderer.d.ts +0 -8
- package/dist/src/nile-grid/renderer.js +0 -78
- package/dist/src/nile-grid/renderer.js.map +0 -1
- package/dist/src/nile-grid/resize-handler.d.ts +0 -4
- package/dist/src/nile-grid/resize-handler.js +0 -36
- package/dist/src/nile-grid/resize-handler.js.map +0 -1
- package/dist/src/nile-grid/types.d.ts +0 -32
- package/dist/src/nile-grid/types.js +0 -2
- package/dist/src/nile-grid/types.js.map +0 -1
- package/dist/src/nile-grid/utils.d.ts +0 -4
- package/dist/src/nile-grid/utils.js +0 -32
- package/dist/src/nile-grid/utils.js.map +0 -1
- package/dist/src/nile-hero/__snapshots__/nile-hero.test.snap.js +0 -47
- package/dist/src/nile-icon/__snapshots__/nile-icon.test.snap.js +0 -16
- package/dist/src/nile-input/__snapshots__/nile-input.test.snap.js +0 -75
- package/dist/src/nile-popover/__snapshots__/nile-popover.test.snap.js +0 -22
- package/dist/src/nile-table-body/virtual-scroll-helper.d.ts +0 -9
- package/dist/src/nile-table-body/virtual-scroll-helper.js +0 -24
- package/dist/src/nile-table-body/virtual-scroll-helper.js.map +0 -1
- package/dist/src/nile-virtual-table-body/index.d.ts +0 -2
- package/dist/src/nile-virtual-table-body/index.js +0 -3
- package/dist/src/nile-virtual-table-body/index.js.map +0 -1
- package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.d.ts +0 -1
- package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js +0 -44
- package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js.map +0 -1
- package/dist/src/nile-virtual-table-body/nile-virtual-table-body.d.ts +0 -50
- package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js +0 -135
- package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js.map +0 -1
- package/dist/src/nile-virtual-table-body/renderer.d.ts +0 -16
- package/dist/src/nile-virtual-table-body/renderer.js +0 -49
- package/dist/src/nile-virtual-table-body/renderer.js.map +0 -1
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"resizable-styles.js","sourceRoot":"","sources":["../../../src/internal/resizable-styles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;;GAGG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;;CAOrC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;;;;;;;;;;;CAWvC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsD/B,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCrC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;CAiBrC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAA;;;;;CAKnC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * Resizable Styles Utility\n * Centralized styles for resizable table functionality\n */\n\nexport const resizableHostStyles = css`\n /* Resizable-specific host styles */\n :host([resizable]) {\n position: relative;\n overflow: hidden;\n table-layout: fixed;\n }\n`;\n\nexport const resizableHeaderStyles = css`\n /* Resizable-specific header styles */\n :host([resizable]) {\n position: relative;\n border-right: 1px solid var(--nile-colors-neutral-400);\n }\n\n /* Resizable-specific wrapper styles */\n :host([resizable]) .header__item__wrapper {\n position: relative;\n }\n`;\n\nexport const resizerStyles = css`\n /* Resizer styles - only apply when resizable */\n .resizer {\n position: absolute;\n right: 0;\n top: -1000px;\n bottom: -1000px;\n width: 8px;\n cursor: col-resize;\n user-select: none;\n background-color: var(--nile-colors-neutral-100);\n transition: background-color 0.2s;\n z-index: 10;\n opacity: 0;\n transition: opacity 0.2s ease;\n pointer-events: none;\n }\n\n :host([resizable]):hover .resizer {\n opacity: 1;\n pointer-events: auto;\n }\n\n .resizer::before {\n content: '';\n position: absolute;\n right: 3px;\n top: 0;\n width: 2px;\n height: 100%;\n background-color: var(--nile-colors-neutral-500);\n opacity: 0.8;\n }\n\n .resizer:hover {\n background-color: var(--nile-colors-neutral-400);\n }\n\n .resizer:hover::before {\n background-color: var(--nile-colors-neutral-700);\n opacity: 1;\n }\n\n .resizer.resizing {\n background-color: var(--nile-colors-neutral-400);\n opacity: 1;\n pointer-events: auto;\n }\n\n .resizer.resizing::before {\n background-color: var(--nile-colors-neutral-700);\n opacity: 1;\n width: 3px;\n }\n`;\n\nexport const headerResizerStyles = css`\n /* Header resizer styles */\n .resizer {\n position: absolute;\n right: -2px;\n top: -1000px;\n bottom: -1000px;\n width: 8px;\n cursor: ew-resize;\n user-select: none;\n transition: background-color 0.2s;\n z-index: 10;\n opacity: 0;\n transition: opacity 0.2s ease;\n }\n\n :host([resizable]):hover .resizer {\n opacity: 1;\n }\n\n .resizer::before {\n content: '';\n position: absolute;\n height: 100%;\n opacity: 0.8;\n }\n\n .resizer.resizing {\n border-right: 4px double var(--nile-colors-neutral-400);\n background-color: transparent;\n opacity: 1;\n }\n`;\n\nexport const resizableSlotStyles = css`\n /* Slot styles for resizable mode */\n :host([resizable]) ::slotted(*) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: block;\n }\n\n :host([resizable]) ::slotted(span),\n :host([resizable]) ::slotted(div),\n :host([resizable]) ::slotted(p) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: block;\n }\n`;\n\nexport const tableLayoutStyles = css`\n /* Apply fixed table layout only when resizable columns are present */\n .nile__table__body[resizable] {\n table-layout: fixed;\n }\n`; \n"]}
|
@@ -1,17 +0,0 @@
|
|
1
|
-
/* @web/test-runner snapshot v1 */
|
2
|
-
export const snapshots = {};
|
3
|
-
|
4
|
-
snapshots["NileBadge should display the default slot content"] =
|
5
|
-
`<span
|
6
|
-
class="badge badge--badge-color badge--normal"
|
7
|
-
part="base"
|
8
|
-
>
|
9
|
-
<slot
|
10
|
-
class="badge__content"
|
11
|
-
part="content"
|
12
|
-
>
|
13
|
-
</slot>
|
14
|
-
</span>
|
15
|
-
`;
|
16
|
-
/* end snapshot NileBadge should display the default slot content */
|
17
|
-
|
@@ -1,310 +0,0 @@
|
|
1
|
-
/* @web/test-runner snapshot v1 */
|
2
|
-
export const snapshots = {};
|
3
|
-
|
4
|
-
snapshots["NileCalendar renders correctly with default properties"] =
|
5
|
-
`<div class="base">
|
6
|
-
<div class="calendar-config hidden">
|
7
|
-
<div class="calendar-switcher">
|
8
|
-
<nile-tab-group
|
9
|
-
centered=""
|
10
|
-
value="absolute"
|
11
|
-
>
|
12
|
-
<nile-tab
|
13
|
-
active=""
|
14
|
-
aria-disabled="false"
|
15
|
-
aria-selected="true"
|
16
|
-
centered=""
|
17
|
-
id="nile-tab-1"
|
18
|
-
panel="absolute"
|
19
|
-
role="tab"
|
20
|
-
slot="nav"
|
21
|
-
>
|
22
|
-
Absolute
|
23
|
-
</nile-tab>
|
24
|
-
<nile-tab
|
25
|
-
aria-disabled="false"
|
26
|
-
aria-selected="false"
|
27
|
-
centered=""
|
28
|
-
id="nile-tab-2"
|
29
|
-
panel="relative"
|
30
|
-
role="tab"
|
31
|
-
slot="nav"
|
32
|
-
>
|
33
|
-
Relative
|
34
|
-
</nile-tab>
|
35
|
-
</nile-tab-group>
|
36
|
-
</div>
|
37
|
-
</div>
|
38
|
-
<div class="calendar-wrapper">
|
39
|
-
<div class="calendar-container">
|
40
|
-
<div class="calendar">
|
41
|
-
<div class="calendar-header">
|
42
|
-
<nile-icon
|
43
|
-
class="calendar-header__month-navigation"
|
44
|
-
color="black"
|
45
|
-
description=""
|
46
|
-
method="fill"
|
47
|
-
name="arrowleft"
|
48
|
-
set="local"
|
49
|
-
size="16"
|
50
|
-
style="--nile-svg-fill: black; --nile-svg-height: 16px; --nile-svg-width: 16px;"
|
51
|
-
>
|
52
|
-
</nile-icon>
|
53
|
-
<span>
|
54
|
-
August
|
55
|
-
2025
|
56
|
-
</span>
|
57
|
-
<nile-icon
|
58
|
-
class="calendar-header__month-navigation"
|
59
|
-
color="black"
|
60
|
-
description=""
|
61
|
-
method="fill"
|
62
|
-
name="arrowright"
|
63
|
-
set="local"
|
64
|
-
size="16"
|
65
|
-
style="--nile-svg-fill: black; --nile-svg-height: 16px; --nile-svg-width: 16px;"
|
66
|
-
>
|
67
|
-
</nile-icon>
|
68
|
-
</div>
|
69
|
-
<div class="days_container">
|
70
|
-
<div class="day_name">
|
71
|
-
Su
|
72
|
-
</div>
|
73
|
-
<div class="day_name">
|
74
|
-
Mo
|
75
|
-
</div>
|
76
|
-
<div class="day_name">
|
77
|
-
Tu
|
78
|
-
</div>
|
79
|
-
<div class="day_name">
|
80
|
-
We
|
81
|
-
</div>
|
82
|
-
<div class="day_name">
|
83
|
-
Th
|
84
|
-
</div>
|
85
|
-
<div class="day_name">
|
86
|
-
Fr
|
87
|
-
</div>
|
88
|
-
<div class="day_name">
|
89
|
-
Sa
|
90
|
-
</div>
|
91
|
-
<div class="day_date filler">
|
92
|
-
<span style="position:relative;">
|
93
|
-
27
|
94
|
-
</span>
|
95
|
-
</div>
|
96
|
-
<div class="day_date filler">
|
97
|
-
<span style="position:relative;">
|
98
|
-
28
|
99
|
-
</span>
|
100
|
-
</div>
|
101
|
-
<div class="day_date filler">
|
102
|
-
<span style="position:relative;">
|
103
|
-
29
|
104
|
-
</span>
|
105
|
-
</div>
|
106
|
-
<div class="day_date filler">
|
107
|
-
<span style="position:relative;">
|
108
|
-
30
|
109
|
-
</span>
|
110
|
-
</div>
|
111
|
-
<div class="day_date filler">
|
112
|
-
<span style="position:relative;">
|
113
|
-
31
|
114
|
-
</span>
|
115
|
-
</div>
|
116
|
-
<div class="day_date">
|
117
|
-
<span style="position:relative;">
|
118
|
-
1
|
119
|
-
</span>
|
120
|
-
</div>
|
121
|
-
<div class="day_date">
|
122
|
-
<span style="position:relative;">
|
123
|
-
2
|
124
|
-
</span>
|
125
|
-
</div>
|
126
|
-
<div class="day_date">
|
127
|
-
<span style="position:relative;">
|
128
|
-
3
|
129
|
-
</span>
|
130
|
-
</div>
|
131
|
-
<div class="day_date">
|
132
|
-
<span style="position:relative;">
|
133
|
-
4
|
134
|
-
<div class="current__date__dot">
|
135
|
-
</div>
|
136
|
-
</span>
|
137
|
-
</div>
|
138
|
-
<div class="day_date">
|
139
|
-
<span style="position:relative;">
|
140
|
-
5
|
141
|
-
</span>
|
142
|
-
</div>
|
143
|
-
<div class="day_date">
|
144
|
-
<span style="position:relative;">
|
145
|
-
6
|
146
|
-
</span>
|
147
|
-
</div>
|
148
|
-
<div class="day_date">
|
149
|
-
<span style="position:relative;">
|
150
|
-
7
|
151
|
-
</span>
|
152
|
-
</div>
|
153
|
-
<div class="day_date">
|
154
|
-
<span style="position:relative;">
|
155
|
-
8
|
156
|
-
</span>
|
157
|
-
</div>
|
158
|
-
<div class="day_date">
|
159
|
-
<span style="position:relative;">
|
160
|
-
9
|
161
|
-
</span>
|
162
|
-
</div>
|
163
|
-
<div class="day_date">
|
164
|
-
<span style="position:relative;">
|
165
|
-
10
|
166
|
-
</span>
|
167
|
-
</div>
|
168
|
-
<div class="day_date">
|
169
|
-
<span style="position:relative;">
|
170
|
-
11
|
171
|
-
</span>
|
172
|
-
</div>
|
173
|
-
<div class="day_date">
|
174
|
-
<span style="position:relative;">
|
175
|
-
12
|
176
|
-
</span>
|
177
|
-
</div>
|
178
|
-
<div class="day_date">
|
179
|
-
<span style="position:relative;">
|
180
|
-
13
|
181
|
-
</span>
|
182
|
-
</div>
|
183
|
-
<div class="day_date">
|
184
|
-
<span style="position:relative;">
|
185
|
-
14
|
186
|
-
</span>
|
187
|
-
</div>
|
188
|
-
<div class="day_date">
|
189
|
-
<span style="position:relative;">
|
190
|
-
15
|
191
|
-
</span>
|
192
|
-
</div>
|
193
|
-
<div class="day_date">
|
194
|
-
<span style="position:relative;">
|
195
|
-
16
|
196
|
-
</span>
|
197
|
-
</div>
|
198
|
-
<div class="day_date">
|
199
|
-
<span style="position:relative;">
|
200
|
-
17
|
201
|
-
</span>
|
202
|
-
</div>
|
203
|
-
<div class="day_date">
|
204
|
-
<span style="position:relative;">
|
205
|
-
18
|
206
|
-
</span>
|
207
|
-
</div>
|
208
|
-
<div class="day_date">
|
209
|
-
<span style="position:relative;">
|
210
|
-
19
|
211
|
-
</span>
|
212
|
-
</div>
|
213
|
-
<div class="day_date">
|
214
|
-
<span style="position:relative;">
|
215
|
-
20
|
216
|
-
</span>
|
217
|
-
</div>
|
218
|
-
<div class="day_date">
|
219
|
-
<span style="position:relative;">
|
220
|
-
21
|
221
|
-
</span>
|
222
|
-
</div>
|
223
|
-
<div class="day_date">
|
224
|
-
<span style="position:relative;">
|
225
|
-
22
|
226
|
-
</span>
|
227
|
-
</div>
|
228
|
-
<div class="day_date">
|
229
|
-
<span style="position:relative;">
|
230
|
-
23
|
231
|
-
</span>
|
232
|
-
</div>
|
233
|
-
<div class="day_date">
|
234
|
-
<span style="position:relative;">
|
235
|
-
24
|
236
|
-
</span>
|
237
|
-
</div>
|
238
|
-
<div class="day_date">
|
239
|
-
<span style="position:relative;">
|
240
|
-
25
|
241
|
-
</span>
|
242
|
-
</div>
|
243
|
-
<div class="day_date">
|
244
|
-
<span style="position:relative;">
|
245
|
-
26
|
246
|
-
</span>
|
247
|
-
</div>
|
248
|
-
<div class="day_date">
|
249
|
-
<span style="position:relative;">
|
250
|
-
27
|
251
|
-
</span>
|
252
|
-
</div>
|
253
|
-
<div class="day_date">
|
254
|
-
<span style="position:relative;">
|
255
|
-
28
|
256
|
-
</span>
|
257
|
-
</div>
|
258
|
-
<div class="day_date">
|
259
|
-
<span style="position:relative;">
|
260
|
-
29
|
261
|
-
</span>
|
262
|
-
</div>
|
263
|
-
<div class="day_date">
|
264
|
-
<span style="position:relative;">
|
265
|
-
30
|
266
|
-
</span>
|
267
|
-
</div>
|
268
|
-
<div class="day_date">
|
269
|
-
<span style="position:relative;">
|
270
|
-
31
|
271
|
-
</span>
|
272
|
-
</div>
|
273
|
-
<div class="day_date filler">
|
274
|
-
<span style="position:relative;">
|
275
|
-
1
|
276
|
-
</span>
|
277
|
-
</div>
|
278
|
-
<div class="day_date filler">
|
279
|
-
<span style="position:relative;">
|
280
|
-
2
|
281
|
-
</span>
|
282
|
-
</div>
|
283
|
-
<div class="day_date filler">
|
284
|
-
<span style="position:relative;">
|
285
|
-
3
|
286
|
-
</span>
|
287
|
-
</div>
|
288
|
-
<div class="day_date filler">
|
289
|
-
<span style="position:relative;">
|
290
|
-
4
|
291
|
-
</span>
|
292
|
-
</div>
|
293
|
-
<div class="day_date filler">
|
294
|
-
<span style="position:relative;">
|
295
|
-
5
|
296
|
-
</span>
|
297
|
-
</div>
|
298
|
-
<div class="day_date filler">
|
299
|
-
<span style="position:relative;">
|
300
|
-
6
|
301
|
-
</span>
|
302
|
-
</div>
|
303
|
-
</div>
|
304
|
-
</div>
|
305
|
-
</div>
|
306
|
-
</div>
|
307
|
-
</div>
|
308
|
-
`;
|
309
|
-
/* end snapshot NileCalendar renders correctly with default properties */
|
310
|
-
|
@@ -1,34 +0,0 @@
|
|
1
|
-
/* @web/test-runner snapshot v1 */
|
2
|
-
export const snapshots = {};
|
3
|
-
|
4
|
-
snapshots["Nile Card should render the card properly"] =
|
5
|
-
`<div
|
6
|
-
class="card card--has-footer"
|
7
|
-
part="base"
|
8
|
-
>
|
9
|
-
<div
|
10
|
-
class="body__wrapper"
|
11
|
-
part="body__wrapper"
|
12
|
-
>
|
13
|
-
<slot
|
14
|
-
class="card__header"
|
15
|
-
name="header"
|
16
|
-
part="header"
|
17
|
-
>
|
18
|
-
</slot>
|
19
|
-
<slot
|
20
|
-
class="card__body"
|
21
|
-
part="body"
|
22
|
-
>
|
23
|
-
</slot>
|
24
|
-
</div>
|
25
|
-
<slot
|
26
|
-
class="card__footer"
|
27
|
-
name="footer"
|
28
|
-
part="footer"
|
29
|
-
>
|
30
|
-
</slot>
|
31
|
-
</div>
|
32
|
-
`;
|
33
|
-
/* end snapshot Nile Card should render the card properly */
|
34
|
-
|
@@ -1,31 +0,0 @@
|
|
1
|
-
/* @web/test-runner snapshot v1 */
|
2
|
-
export const snapshots = {};
|
3
|
-
|
4
|
-
snapshots["NileCheckbox renders correctly with default properties"] =
|
5
|
-
`<label
|
6
|
-
class="checkbox checkbox--medium"
|
7
|
-
part="base"
|
8
|
-
>
|
9
|
-
<input
|
10
|
-
aria-checked="false"
|
11
|
-
class="checkbox__input"
|
12
|
-
name=""
|
13
|
-
title=""
|
14
|
-
type="checkbox"
|
15
|
-
>
|
16
|
-
<span
|
17
|
-
class="checkbox__control"
|
18
|
-
part="control"
|
19
|
-
>
|
20
|
-
</span>
|
21
|
-
<div
|
22
|
-
class="checkbox__label"
|
23
|
-
part="label"
|
24
|
-
>
|
25
|
-
<slot>
|
26
|
-
</slot>
|
27
|
-
</div>
|
28
|
-
</label>
|
29
|
-
`;
|
30
|
-
/* end snapshot NileCheckbox renders correctly with default properties */
|
31
|
-
|
@@ -1,37 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright Aquera Inc 2023
|
3
|
-
*
|
4
|
-
* This source code is licensed under the BSD-3-Clause license found in the
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
6
|
-
*/
|
7
|
-
import type { GridColumnDef, GridRowData, GridOptions } from './types.js';
|
8
|
-
export declare class GridDataProcessor {
|
9
|
-
private options;
|
10
|
-
private pageSize;
|
11
|
-
private currentPage;
|
12
|
-
private sortField;
|
13
|
-
private sortDirection;
|
14
|
-
private filterText;
|
15
|
-
constructor(options: GridOptions, pageSize?: number);
|
16
|
-
setOptions(options: GridOptions): void;
|
17
|
-
setPageSize(pageSize: number): void;
|
18
|
-
setCurrentPage(page: number): void;
|
19
|
-
setSortField(field: string): void;
|
20
|
-
setSortDirection(direction: 'asc' | 'desc'): void;
|
21
|
-
setFilterText(text: string): void;
|
22
|
-
processData(data: GridRowData[], columns: GridColumnDef[]): {
|
23
|
-
filteredData: GridRowData[];
|
24
|
-
sortedData: GridRowData[];
|
25
|
-
paginatedData: GridRowData[];
|
26
|
-
totalPages: number;
|
27
|
-
};
|
28
|
-
private applyFilters;
|
29
|
-
private applySorting;
|
30
|
-
private applyPagination;
|
31
|
-
getSortClass(column: GridColumnDef): string;
|
32
|
-
getSortIcon(column: GridColumnDef): string;
|
33
|
-
isAllSelected(paginatedData: GridRowData[]): boolean;
|
34
|
-
isPartiallySelected(paginatedData: GridRowData[]): boolean;
|
35
|
-
getSortField(): string;
|
36
|
-
getSortDirection(): 'asc' | 'desc';
|
37
|
-
}
|
@@ -1,122 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright Aquera Inc 2023
|
3
|
-
*
|
4
|
-
* This source code is licensed under the BSD-3-Clause license found in the
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
6
|
-
*/
|
7
|
-
export class GridDataProcessor {
|
8
|
-
constructor(options, pageSize = 20) {
|
9
|
-
this.options = options;
|
10
|
-
this.pageSize = pageSize;
|
11
|
-
this.currentPage = 1;
|
12
|
-
this.sortField = '';
|
13
|
-
this.sortDirection = 'asc';
|
14
|
-
this.filterText = '';
|
15
|
-
}
|
16
|
-
setOptions(options) {
|
17
|
-
this.options = options;
|
18
|
-
}
|
19
|
-
setPageSize(pageSize) {
|
20
|
-
this.pageSize = pageSize;
|
21
|
-
}
|
22
|
-
setCurrentPage(page) {
|
23
|
-
this.currentPage = page;
|
24
|
-
}
|
25
|
-
setSortField(field) {
|
26
|
-
this.sortField = field;
|
27
|
-
}
|
28
|
-
setSortDirection(direction) {
|
29
|
-
this.sortDirection = direction;
|
30
|
-
}
|
31
|
-
setFilterText(text) {
|
32
|
-
this.filterText = text;
|
33
|
-
}
|
34
|
-
processData(data, columns) {
|
35
|
-
// Apply filtering
|
36
|
-
const filteredData = this.applyFilters(data, columns);
|
37
|
-
// Apply sorting
|
38
|
-
const sortedData = this.applySorting(filteredData, columns);
|
39
|
-
// Apply pagination
|
40
|
-
const totalPages = Math.ceil(sortedData.length / this.pageSize);
|
41
|
-
const paginatedData = this.applyPagination(sortedData);
|
42
|
-
return {
|
43
|
-
filteredData,
|
44
|
-
sortedData,
|
45
|
-
paginatedData,
|
46
|
-
totalPages
|
47
|
-
};
|
48
|
-
}
|
49
|
-
applyFilters(data, columns) {
|
50
|
-
if (!this.filterText || !this.options.enableFiltering) {
|
51
|
-
return data;
|
52
|
-
}
|
53
|
-
return data.filter(row => {
|
54
|
-
return columns.some(column => {
|
55
|
-
const value = row[column.field];
|
56
|
-
if (value == null)
|
57
|
-
return false;
|
58
|
-
return String(value).toLowerCase().includes(this.filterText.toLowerCase());
|
59
|
-
});
|
60
|
-
});
|
61
|
-
}
|
62
|
-
applySorting(data, columns) {
|
63
|
-
if (!this.sortField || !this.options.enableSorting) {
|
64
|
-
return data;
|
65
|
-
}
|
66
|
-
const column = columns.find(col => col.field === this.sortField);
|
67
|
-
if (!column)
|
68
|
-
return data;
|
69
|
-
return [...data].sort((a, b) => {
|
70
|
-
const aVal = a[column.field];
|
71
|
-
const bVal = b[column.field];
|
72
|
-
if (aVal == null && bVal == null)
|
73
|
-
return 0;
|
74
|
-
if (aVal == null)
|
75
|
-
return 1;
|
76
|
-
if (bVal == null)
|
77
|
-
return -1;
|
78
|
-
if (typeof aVal === 'string' && typeof bVal === 'string') {
|
79
|
-
return this.sortDirection === 'asc'
|
80
|
-
? aVal.localeCompare(bVal)
|
81
|
-
: bVal.localeCompare(aVal);
|
82
|
-
}
|
83
|
-
if (typeof aVal === 'number' && typeof bVal === 'number') {
|
84
|
-
return this.sortDirection === 'asc' ? aVal - bVal : bVal - aVal;
|
85
|
-
}
|
86
|
-
return 0;
|
87
|
-
});
|
88
|
-
}
|
89
|
-
applyPagination(data) {
|
90
|
-
if (!this.options.enablePagination) {
|
91
|
-
return data;
|
92
|
-
}
|
93
|
-
const startIndex = (this.currentPage - 1) * this.pageSize;
|
94
|
-
const endIndex = startIndex + this.pageSize;
|
95
|
-
return data.slice(startIndex, endIndex);
|
96
|
-
}
|
97
|
-
getSortClass(column) {
|
98
|
-
if (this.sortField !== column.field)
|
99
|
-
return '';
|
100
|
-
return this.sortDirection === 'asc' ? 'sort-asc' : 'sort-desc';
|
101
|
-
}
|
102
|
-
getSortIcon(column) {
|
103
|
-
if (this.sortField !== column.field)
|
104
|
-
return '↕';
|
105
|
-
return this.sortDirection === 'asc' ? '↑' : '↓';
|
106
|
-
}
|
107
|
-
isAllSelected(paginatedData) {
|
108
|
-
return paginatedData.length > 0 && paginatedData.every(row => row.selected);
|
109
|
-
}
|
110
|
-
isPartiallySelected(paginatedData) {
|
111
|
-
const selectedCount = paginatedData.filter(row => row.selected).length;
|
112
|
-
return selectedCount > 0 && selectedCount < paginatedData.length;
|
113
|
-
}
|
114
|
-
// Getters for event handlers
|
115
|
-
getSortField() {
|
116
|
-
return this.sortField;
|
117
|
-
}
|
118
|
-
getSortDirection() {
|
119
|
-
return this.sortDirection;
|
120
|
-
}
|
121
|
-
}
|
122
|
-
//# sourceMappingURL=data-processor.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"data-processor.js","sourceRoot":"","sources":["../../../src/nile-grid/data-processor.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport type { GridColumnDef, GridRowData, GridOptions } from './types.js';\n\nexport class GridDataProcessor {\n private options: GridOptions;\n private pageSize: number;\n private currentPage: number;\n private sortField: string;\n private sortDirection: 'asc' | 'desc';\n private filterText: string;\n\n constructor(options: GridOptions, pageSize: number = 20) {\n this.options = options;\n this.pageSize = pageSize;\n this.currentPage = 1;\n this.sortField = '';\n this.sortDirection = 'asc';\n this.filterText = '';\n }\n\n setOptions(options: GridOptions): void {\n this.options = options;\n }\n\n setPageSize(pageSize: number): void {\n this.pageSize = pageSize;\n }\n\n setCurrentPage(page: number): void {\n this.currentPage = page;\n }\n\n setSortField(field: string): void {\n this.sortField = field;\n }\n\n setSortDirection(direction: 'asc' | 'desc'): void {\n this.sortDirection = direction;\n }\n\n setFilterText(text: string): void {\n this.filterText = text;\n }\n\n processData(data: GridRowData[], columns: GridColumnDef[]): {\n filteredData: GridRowData[];\n sortedData: GridRowData[];\n paginatedData: GridRowData[];\n totalPages: number;\n } {\n // Apply filtering\n const filteredData = this.applyFilters(data, columns);\n \n // Apply sorting\n const sortedData = this.applySorting(filteredData, columns);\n \n // Apply pagination\n const totalPages = Math.ceil(sortedData.length / this.pageSize);\n const paginatedData = this.applyPagination(sortedData);\n\n return {\n filteredData,\n sortedData,\n paginatedData,\n totalPages\n };\n }\n\n private applyFilters(data: GridRowData[], columns: GridColumnDef[]): GridRowData[] {\n if (!this.filterText || !this.options.enableFiltering) {\n return data;\n }\n\n return data.filter(row => {\n return columns.some(column => {\n const value = row[column.field];\n if (value == null) return false;\n return String(value).toLowerCase().includes(this.filterText.toLowerCase());\n });\n });\n }\n\n private applySorting(data: GridRowData[], columns: GridColumnDef[]): GridRowData[] {\n if (!this.sortField || !this.options.enableSorting) {\n return data;\n }\n\n const column = columns.find(col => col.field === this.sortField);\n if (!column) return data;\n\n return [...data].sort((a, b) => {\n const aVal = a[column.field];\n const bVal = b[column.field];\n \n if (aVal == null && bVal == null) return 0;\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n\n if (typeof aVal === 'string' && typeof bVal === 'string') {\n return this.sortDirection === 'asc' \n ? aVal.localeCompare(bVal)\n : bVal.localeCompare(aVal);\n }\n\n if (typeof aVal === 'number' && typeof bVal === 'number') {\n return this.sortDirection === 'asc' ? aVal - bVal : bVal - aVal;\n }\n\n return 0;\n });\n }\n\n private applyPagination(data: GridRowData[]): GridRowData[] {\n if (!this.options.enablePagination) {\n return data;\n }\n\n const startIndex = (this.currentPage - 1) * this.pageSize;\n const endIndex = startIndex + this.pageSize;\n return data.slice(startIndex, endIndex);\n }\n\n getSortClass(column: GridColumnDef): string {\n if (this.sortField !== column.field) return '';\n return this.sortDirection === 'asc' ? 'sort-asc' : 'sort-desc';\n }\n\n getSortIcon(column: GridColumnDef): string {\n if (this.sortField !== column.field) return '↕';\n return this.sortDirection === 'asc' ? '↑' : '↓';\n }\n\n isAllSelected(paginatedData: GridRowData[]): boolean {\n return paginatedData.length > 0 && paginatedData.every(row => row.selected);\n }\n\n isPartiallySelected(paginatedData: GridRowData[]): boolean {\n const selectedCount = paginatedData.filter(row => row.selected).length;\n return selectedCount > 0 && selectedCount < paginatedData.length;\n }\n\n // Getters for event handlers\n getSortField(): string {\n return this.sortField;\n }\n\n getSortDirection(): 'asc' | 'desc' {\n return this.sortDirection;\n }\n}\n"]}
|
@@ -1,35 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright Aquera Inc 2023
|
3
|
-
*
|
4
|
-
* This source code is licensed under the BSD-3-Clause license found in the
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
6
|
-
*/
|
7
|
-
import type { GridColumnDef, GridRowData, GridOptions } from './types.js';
|
8
|
-
import type { GridDataProcessor } from './data-processor.js';
|
9
|
-
export declare class GridEventHandlers {
|
10
|
-
private options;
|
11
|
-
private dataProcessor;
|
12
|
-
private selectedRows;
|
13
|
-
private isResizing;
|
14
|
-
private resizingColumn;
|
15
|
-
private dragStartX;
|
16
|
-
private dragStartWidth;
|
17
|
-
constructor(options: GridOptions, dataProcessor: GridDataProcessor);
|
18
|
-
setOptions(options: GridOptions): void;
|
19
|
-
handleKeyDown(event: KeyboardEvent): void;
|
20
|
-
handleWheel(event: WheelEvent, updateVirtualScrolling: () => void): void;
|
21
|
-
handleColumnSort(column: GridColumnDef, onSort: (field: string, direction: 'asc' | 'desc') => void): void;
|
22
|
-
handleColumnFilter(column: GridColumnDef, value: string, onFilter: () => void): void;
|
23
|
-
handleRowSelection(row: GridRowData, event: Event, currentData: GridRowData[], onSelectionChange: () => void): void;
|
24
|
-
handleHeaderSelectionChange(event: Event, currentData: GridRowData[], onSelectionChange: () => void): void;
|
25
|
-
handleRowClick(row: GridRowData, event: Event): void;
|
26
|
-
handleCellEdit(row: GridRowData, column: GridColumnDef, value: any, onCellEdit: (row: GridRowData, column: GridColumnDef, oldValue: any, newValue: any) => void): void;
|
27
|
-
handleColumnResizeStart(column: GridColumnDef, event: MouseEvent): void;
|
28
|
-
private handleColumnResizeMove;
|
29
|
-
private handleColumnResizeEnd;
|
30
|
-
private handleArrowKeyNavigation;
|
31
|
-
private emit;
|
32
|
-
getSelectedRows(): GridRowData[];
|
33
|
-
isResizingColumn(): boolean;
|
34
|
-
getResizingColumn(): GridColumnDef | null;
|
35
|
-
}
|