@aquera/nile-elements 1.8.0 → 1.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +6 -0
  2. package/dist/index-6faafdf4.cjs.js +2 -0
  3. package/dist/index-6faafdf4.cjs.js.map +1 -0
  4. package/dist/index-9931b440.esm.js +1 -0
  5. package/dist/index.cjs.js +1 -1
  6. package/dist/index.esm.js +1 -1
  7. package/dist/index.js +375 -226
  8. package/dist/nile-combobox/index.cjs.js +1 -1
  9. package/dist/nile-combobox/index.esm.js +1 -1
  10. package/dist/nile-combobox/nile-combobox.cjs.js +1 -1
  11. package/dist/nile-combobox/nile-combobox.esm.js +1 -1
  12. package/dist/nile-context-menu/nile-context-menu.cjs.js +1 -1
  13. package/dist/nile-context-menu/nile-context-menu.cjs.js.map +1 -1
  14. package/dist/nile-context-menu/nile-context-menu.esm.js +2 -2
  15. package/dist/nile-context-menu-item/nile-context-menu-item.cjs.js +1 -1
  16. package/dist/nile-context-menu-item/nile-context-menu-item.cjs.js.map +1 -1
  17. package/dist/nile-context-menu-item/nile-context-menu-item.esm.js +3 -3
  18. package/dist/nile-context-submenu/nile-context-submenu.cjs.js +1 -1
  19. package/dist/nile-context-submenu/nile-context-submenu.cjs.js.map +1 -1
  20. package/dist/nile-context-submenu/nile-context-submenu.esm.js +2 -2
  21. package/dist/nile-detail/index.cjs.js +1 -1
  22. package/dist/nile-detail/index.esm.js +1 -1
  23. package/dist/nile-detail/nile-detail.cjs.js +1 -1
  24. package/dist/nile-detail/nile-detail.esm.js +1 -1
  25. package/dist/nile-floating-panel/nile-floating-panel.cjs.js +1 -1
  26. package/dist/nile-floating-panel/nile-floating-panel.cjs.js.map +1 -1
  27. package/dist/nile-floating-panel/nile-floating-panel.esm.js +1 -1
  28. package/dist/nile-slider/nile-slider.cjs.js +1 -1
  29. package/dist/nile-slider/nile-slider.cjs.js.map +1 -1
  30. package/dist/nile-slider/nile-slider.css.cjs.js +1 -1
  31. package/dist/nile-slider/nile-slider.css.cjs.js.map +1 -1
  32. package/dist/nile-slider/nile-slider.css.esm.js +162 -41
  33. package/dist/nile-slider/nile-slider.esm.js +5 -3
  34. package/dist/nile-slider/nile-slider.template.cjs.js +1 -1
  35. package/dist/nile-slider/nile-slider.template.cjs.js.map +1 -1
  36. package/dist/nile-slider/nile-slider.template.esm.js +49 -23
  37. package/dist/nile-slider/utils/nile-slider.utils.cjs.js +1 -1
  38. package/dist/nile-slider/utils/nile-slider.utils.cjs.js.map +1 -1
  39. package/dist/nile-slider/utils/nile-slider.utils.esm.js +1 -1
  40. package/dist/src/nile-context-menu/nile-context-menu.d.ts +10 -1
  41. package/dist/src/nile-context-menu/nile-context-menu.js +85 -5
  42. package/dist/src/nile-context-menu/nile-context-menu.js.map +1 -1
  43. package/dist/src/nile-context-menu-item/nile-context-menu-item.d.ts +1 -0
  44. package/dist/src/nile-context-menu-item/nile-context-menu-item.js +5 -1
  45. package/dist/src/nile-context-menu-item/nile-context-menu-item.js.map +1 -1
  46. package/dist/src/nile-context-submenu/nile-context-submenu.d.ts +9 -0
  47. package/dist/src/nile-context-submenu/nile-context-submenu.js +100 -16
  48. package/dist/src/nile-context-submenu/nile-context-submenu.js.map +1 -1
  49. package/dist/src/nile-floating-panel/nile-floating-panel.d.ts +2 -0
  50. package/dist/src/nile-floating-panel/nile-floating-panel.js +4 -0
  51. package/dist/src/nile-floating-panel/nile-floating-panel.js.map +1 -1
  52. package/dist/src/nile-slider/nile-slider.css.js +160 -39
  53. package/dist/src/nile-slider/nile-slider.css.js.map +1 -1
  54. package/dist/src/nile-slider/nile-slider.d.ts +5 -1
  55. package/dist/src/nile-slider/nile-slider.js +23 -1
  56. package/dist/src/nile-slider/nile-slider.js.map +1 -1
  57. package/dist/src/nile-slider/nile-slider.template.d.ts +2 -0
  58. package/dist/src/nile-slider/nile-slider.template.js +38 -1
  59. package/dist/src/nile-slider/nile-slider.template.js.map +1 -1
  60. package/dist/src/nile-slider/types/nile-slider.types.d.ts +1 -0
  61. package/dist/src/nile-slider/types/nile-slider.types.js.map +1 -1
  62. package/dist/src/nile-slider/utils/nile-slider.utils.js +4 -0
  63. package/dist/src/nile-slider/utils/nile-slider.utils.js.map +1 -1
  64. package/dist/src/version.js +1 -1
  65. package/dist/src/version.js.map +1 -1
  66. package/dist/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +1 -1
  68. package/src/nile-context-menu/nile-context-menu.ts +86 -8
  69. package/src/nile-context-menu-item/nile-context-menu-item.ts +3 -1
  70. package/src/nile-context-submenu/nile-context-submenu.ts +97 -12
  71. package/src/nile-floating-panel/nile-floating-panel.ts +5 -0
  72. package/src/nile-slider/nile-slider.css.ts +160 -39
  73. package/src/nile-slider/nile-slider.template.ts +45 -2
  74. package/src/nile-slider/nile-slider.ts +11 -3
  75. package/src/nile-slider/types/nile-slider.types.ts +2 -0
  76. package/src/nile-slider/utils/nile-slider.utils.ts +2 -0
  77. package/vscode-html-custom-data.json +51 -12
  78. package/dist/index-644974d4.esm.js +0 -1
  79. package/dist/index-dd2af8ec.cjs.js +0 -2
  80. package/dist/index-dd2af8ec.cjs.js.map +0 -1
@@ -1,14 +1,33 @@
1
- import{css as r}from"lit";const a=r`
1
+ import{css as r}from"lit";const e=r`
2
2
  :host {
3
3
  display: block;
4
4
  }
5
5
 
6
+ /* Field header */
7
+
8
+ .field-header {
9
+ display: flex;
10
+ justify-content: space-between;
11
+ align-items: center;
12
+ gap: var(--nile-spacing-md, var(--ng-spacing-md));
13
+ margin-bottom: var(--nile-spacing-sm, var(--ng-spacing-sm));
14
+ }
15
+
16
+ .field-label {
17
+ font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
18
+ font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));
19
+ font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));
20
+ color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));
21
+ }
22
+
23
+ /* Layout */
24
+
6
25
  .container {
7
26
  display: flex;
8
27
  justify-content: center;
9
28
  align-items: center;
10
- gap: 10px;
11
- height: 100px;
29
+ gap: var(--nile-spacing-md, var(--ng-spacing-md));
30
+ min-height: var(--nile-spacing-5xl, var(--ng-spacing-5xl));
12
31
  }
13
32
 
14
33
  .align-item-center {
@@ -16,14 +35,14 @@ import{css as r}from"lit";const a=r`
16
35
  }
17
36
 
18
37
  slot.span {
19
- font-size: var(--nile-font-size-micro);
20
- margin-top: 14px;
38
+ font-size: var(--nile-font-size-micro, var(--ng-font-size-text-xs));
21
39
  }
22
40
 
23
41
  .range-container {
24
42
  display: flex;
25
43
  flex-direction: column;
26
- gap: var(--nile-spacing-sm);
44
+ flex: 1 1 auto;
45
+ gap: var(--nile-spacing-sm, var(--ng-spacing-sm));
27
46
  }
28
47
 
29
48
  .column-reverse {
@@ -36,18 +55,21 @@ import{css as r}from"lit";const a=r`
36
55
  }
37
56
 
38
57
  .label-container span {
39
- margin: var(--nile-spacing-none);
40
- padding: var(--nile-spacing-none);
41
- font-size: var(--nile-font-size-micro);
58
+ margin: var(--nile-spacing-none, var(--ng-spacing-none));
59
+ padding: var(--nile-spacing-none, var(--ng-spacing-none));
60
+ font-size: var(--nile-font-size-micro, var(--ng-font-size-text-xs));
61
+ color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));
42
62
  }
43
63
 
64
+ /* track & fill */
65
+
44
66
  .range {
45
67
  position: relative;
46
- width: 228px;
47
- height: 4px;
48
- background-color: var(--nile-colors-neutral-400);
68
+ width: var(--nile-slider-width, 228px);
69
+ height: var(--nile-spacing-xs, var(--ng-spacing-sm));
70
+ background-color: var(--nile-colors-neutral-400, var(--ng-colors-bg-quaternary));
49
71
  user-select: none;
50
- border-radius: var(--nile-radius-radius-3xl);
72
+ border-radius: var(--nile-radius-radius-3xl, var(--ng-radius-full));
51
73
  }
52
74
 
53
75
  .range:hover {
@@ -58,49 +80,148 @@ import{css as r}from"lit";const a=r`
58
80
  position: absolute;
59
81
  height: 100%;
60
82
  width: 0%;
61
- background-color: var(--nile-colors-primary-600);
83
+ background-color: var(--nile-colors-primary-600, var(--ng-colors-bg-brand-solid));
62
84
  top: 0px;
63
85
  left: 0px;
64
86
  z-index: 98;
65
- border-radius: var(--nile-radius-radius-3xl);
87
+ border-radius: var(--nile-radius-radius-3xl, var(--ng-radius-full));
88
+ }
89
+
90
+ /* ------------------------------------------------------------------ */
91
+ /* Inline value label (valueLabel="bottom") */
92
+ /* ------------------------------------------------------------------ */
93
+
94
+ .value-label {
95
+ position: absolute;
96
+ /* Start at the track bottom, then push down past the handle and the
97
+ largest (pressed, 8px) ring */
98
+ top: 100%;
99
+ margin-top: var(--nile-spacing-xl, var(--ng-spacing-xl));
100
+ transform: translateX(-50%);
101
+ font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
102
+ font-size: var(--nile-font-size-micro, var(--ng-font-size-text-xs));
103
+ font-variant-numeric: tabular-nums;
104
+ color: var(--nile-colors-dark-500, var(--ng-colors-text-quaternary-500));
105
+ white-space: nowrap;
106
+ pointer-events: none;
107
+ user-select: none;
108
+ -webkit-user-select: none;
66
109
  }
67
110
 
68
- .range-button {
69
- height: 12px;
70
- width: 12px;
71
- background-color: var(--nile-colors-primary-600);
111
+ /* Reserve room below the track for the inline value label */
112
+ :host([valuelabel='bottom']) .container {
113
+ padding-bottom: var(--nile-spacing-2xl, var(--ng-spacing-2xl));
114
+ }
115
+
116
+ /* Handles */
117
+
118
+ .range-button,
119
+ .range-button-two {
120
+ height: var(--nile-spacing-lg, var(--ng-spacing-2xl));
121
+ width: var(--nile-spacing-lg, var(--ng-spacing-2xl));
122
+ box-sizing: border-box;
123
+ /* Enterprise: solid brand dot - NextGen: white fill + brand border */
124
+ background-color: var(--nile-colors-primary-600, var(--ng-colors-bg-primary));
125
+ border: var(--nile-spacing-xxs, var(--ng-spacing-xxs)) solid
126
+ var(--nile-colors-primary-600, var(--ng-colors-border-brand-alt));
72
127
  position: absolute;
73
128
  top: 50%;
74
129
  transform: translate(-50%, -50%);
75
- border-radius: var(--nile-radius-radius-3xl);
130
+ border-radius: var(--nile-radius-radius-3xl, var(--ng-radius-full));
76
131
  left: 0;
77
132
  z-index: 100;
78
- box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 2px;
79
- transition: box-shadow var(--nile-transition-duration-default) ease;
133
+ cursor: grab;
134
+ transition:
135
+ box-shadow var(--nile-transition-duration-short, 120ms) ease,
136
+ background-color var(--nile-transition-duration-short, 120ms) ease,
137
+ transform var(--nile-transition-duration-shorter, 80ms) ease;
80
138
  }
81
139
 
82
- .range-button:hover, .range-button-two:hover {
83
- cursor: pointer;
84
- background-color: var(--nile-colors-primary-700);
140
+ .range-button-two {
141
+ left: 100%;
85
142
  }
86
143
 
87
- .range-button:active, .range-button-two:active {
88
- transition: box-shadow var(--nile-transition-duration-default) ease;
89
- background-color: var(--nile-colors-primary-700);
90
- box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 4px;
144
+ /* Hover: ring (Enterprise 2px - NextGen 6px) */
145
+ .range-button:hover,
146
+ .range-button-two:hover {
147
+ cursor: grab;
148
+ box-shadow: 0 0 0 var(--nile-spacing-xxs, var(--ng-spacing-sm))
149
+ var(--nile-colors-primary-100, var(--ng-colors-bg-brand-secondary));
91
150
  }
92
151
 
93
- .range-button-two {
94
- height: 12px;
95
- width: 12px;
96
- background-color: var(--nile-colors-primary-600);
97
- position: absolute;
98
- top: 50%;
152
+ /* Focused: theme focus ring */
153
+ .range-button:focus-visible,
154
+ .range-button-two:focus-visible {
155
+ outline: none;
156
+ box-shadow: var(--nile-focus-ring,
157
+ var(--ng-focus-ring,
158
+ 0 0 0 var(--nile-spacing-xs) var(--nile-colors-primary-100)));
159
+ }
160
+
161
+ /* Pressed: ring (Enterprise 4px - NextGen 8px) + 1.1x scale */
162
+ .range-button:active,
163
+ .range-button-two:active {
164
+ cursor: grabbing;
165
+ transform: translate(-50%, -50%) scale(1.1);
166
+ box-shadow: 0 0 0 var(--nile-spacing-xs, var(--ng-spacing-md))
167
+ var(--nile-colors-primary-100, var(--ng-colors-bg-brand-secondary));
168
+ }
169
+
170
+ /* Error state */
171
+ :host([error]) .range-completed {
172
+ background-color: var(--nile-colors-red-700, var(--ng-colors-bg-error-solid));
173
+ }
174
+
175
+ :host([error]) .range-button,
176
+ :host([error]) .range-button-two {
177
+ background-color: var(--nile-colors-red-700, var(--ng-colors-bg-primary));
178
+ border-color: var(--nile-colors-red-700, var(--ng-colors-border-error));
179
+ }
180
+
181
+ :host([error]) .range-button:hover,
182
+ :host([error]) .range-button-two:hover {
183
+ box-shadow: 0 0 0 var(--nile-spacing-xxs, var(--ng-spacing-sm))
184
+ var(--nile-colors-red-100, var(--ng-colors-bg-error-secondary, var(--ng-color-error-100)));
185
+ }
186
+
187
+ :host([error]) .range-button:focus-visible,
188
+ :host([error]) .range-button-two:focus-visible {
189
+ box-shadow: var(--nile-focus-ring-error,
190
+ var(--ng-focus-ring-error,
191
+ 0 0 0 var(--nile-spacing-xs) var(--nile-colors-red-100)));
192
+ }
193
+
194
+ /* Disabled state */
195
+ :host([disabled]) .range,
196
+ :host([disabled]) .range:hover {
197
+ cursor: not-allowed;
198
+ background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-disabled));
199
+ }
200
+
201
+ :host([disabled]) .range-completed {
202
+ background-color: var(--nile-colors-neutral-500, var(--ng-colors-fg-disabled));
203
+ }
204
+
205
+ :host([disabled]) .range-button,
206
+ :host([disabled]) .range-button-two {
207
+ background-color: var(--nile-colors-neutral-500, var(--ng-colors-bg-primary));
208
+ border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));
209
+ cursor: not-allowed;
210
+ }
211
+
212
+ :host([disabled]) .range-button:hover,
213
+ :host([disabled]) .range-button-two:hover,
214
+ :host([disabled]) .range-button:active,
215
+ :host([disabled]) .range-button-two:active {
216
+ box-shadow: none;
99
217
  transform: translate(-50%, -50%);
100
- border-radius: var(--nile-radius-radius-3xl);
101
- left: 100%;
102
- z-index: 100;
103
- box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 2px;
104
- transition: box-shadow var(--nile-transition-duration-default) ease;
105
218
  }
106
- `;export{a as s};
219
+
220
+ :host([disabled]) .field-label,
221
+ :host([disabled]) .value-label,
222
+ :host([disabled]) .label-container span {
223
+ color: var(--nile-colors-neutral-500, var(--ng-colors-fg-disabled));
224
+ user-select: none;
225
+ -webkit-user-select: none;
226
+ }
227
+ `;export{e as s};
@@ -1,4 +1,5 @@
1
- import{__decorate as t}from"tslib";import{s}from"./nile-slider.css.esm.js";import{N as i}from"../internal/nile-element.esm.js";import{classMap as e}from"lit/directives/class-map.js";import{html as h}from"lit";import{property as a,customElement as l}from"lit/decorators.js";import{l as n,r,s as o}from"./nile-slider.template.esm.js";import{h as c,a as m,b as p,v as d,r as u,c as v,d as b,g as y}from"./utils/nile-slider.utils.esm.js";import"../internal/accessibility/a11y.state.enum.esm.js";import"../internal/accessibility/a11y.property.enum.esm.js";import"../internal/accessibility/role.enum.esm.js";let g=class extends i{constructor(){super(...arguments),this.minValue=0,this.value=this.minValue,this.maxValue=100,this.rangeOneValue=this.minValue,this.rangeTwoValue=this.maxValue,this.showLabel=!1,this.labelStart="",this.labelEnd="",this.rangeSlider=!1,this.labelPosition="top",this.tooltipPosition="top",this.activeThumb=null,this.onMouseMove=t=>{const s=this.range.getBoundingClientRect();if(this.rangeSlider){"one"===this.activeThumb?m(t,s,this):"two"===this.activeThumb&&p(t,s,this);const i=d(this.rangeOneValue,this),e=d(this.rangeTwoValue,this),h=Math.min(i,e),a=Math.abs(e-i);this.rangeTwoValue>=this.rangeOneValue&&(this.completed.style.left=`${h}%`,this.completed.style.width=`${a}%`)}else c(t,s,this)},this.onMouseUp=()=>{this.rangeSlider?(this.emit("nile-button-first-change-end",{value:this.rangeOneValue}),this.emit("nile-button-last-change-end",{value:this.rangeTwoValue})):this.emit("nile-change-end",{value:this.value}),this.activeThumb=null,u(this)},this.onMouseDown=t=>{const s=this.range.getBoundingClientRect(),i=(t.clientX-s.left)/s.width*100,e=this.minValue+i/100*(this.maxValue-this.minValue);if(this.rangeSlider){b(e,this);const t=Math.abs(e-this.rangeOneValue),s=Math.abs(e-this.rangeTwoValue);this.activeThumb=t<=s?"one":"two",v(this)}else c(t,s,this),this.activeThumb="one",v(this)}}static get styles(){return[s]}connectedCallback(){super.connectedCallback(),this.emit("nile-init"),this.rangeSlider&&this.checkRangeValidity()}firstUpdated(t){if(y(this),!this.rangeSlider&&t.has("value")){this.value=this.checkValueValidity(this.value,this.minValue,this.maxValue);const t=d(this.value,this);this.buttonOne.style.left=`${t}%`,this.completed.style.width=`${t}%`}else if(this.rangeSlider){const t=d(this.rangeOneValue,this),s=d(this.rangeTwoValue,this);this.buttonOne&&(this.buttonOne.style.left=`${t}%`),this.buttonTwo&&(this.buttonTwo.style.left=`${s}%`);const i=Math.min(t,s),e=Math.abs(s-t);this.completed.style.left=`${i}%`,this.completed.style.width=`${e}%`}}checkValueValidity(t,s,i){return i-s<=1?Math.max(s,Math.min(t,i)):Math.floor(Math.max(s,Math.min(t,i)))}checkRangeValidity(){this.rangeTwoValue>this.maxValue?this.rangeTwoValue=this.maxValue:this.rangeTwoValue<this.rangeOneValue&&(this.rangeTwoValue=this.rangeOneValue),this.rangeOneValue<this.minValue?this.rangeOneValue=this.minValue:this.rangeOneValue>this.rangeTwoValue&&(this.rangeOneValue=this.rangeTwoValue)}render(){const t=this.showLabel,s=t?"label-start label-end":void 0;return h`
1
+ import{__decorate as t}from"tslib";import{s}from"./nile-slider.css.esm.js";import{N as i}from"../internal/nile-element.esm.js";import{classMap as e}from"lit/directives/class-map.js";import{html as h}from"lit";import{property as a,customElement as l}from"lit/decorators.js";import{f as r,l as n,r as o,s as c,b as p}from"./nile-slider.template.esm.js";import{h as d,a as m,b as u,v,r as b,c as y,d as f,g}from"./utils/nile-slider.utils.esm.js";import"../internal/accessibility/a11y.state.enum.esm.js";import"../internal/accessibility/a11y.property.enum.esm.js";import"../internal/accessibility/role.enum.esm.js";let $=class extends i{constructor(){super(...arguments),this.minValue=0,this.value=this.minValue,this.maxValue=100,this.rangeOneValue=this.minValue,this.rangeTwoValue=this.maxValue,this.showLabel=!1,this.labelStart="",this.labelEnd="",this.rangeSlider=!1,this.labelPosition="top",this.tooltipPosition="top",this.label="",this.disabled=!1,this.error=!1,this.valueLabel="tooltip",this.activeThumb=null,this.onMouseMove=t=>{if(this.disabled)return;const s=this.range.getBoundingClientRect();if(this.rangeSlider){"one"===this.activeThumb?m(t,s,this):"two"===this.activeThumb&&u(t,s,this);const i=v(this.rangeOneValue,this),e=v(this.rangeTwoValue,this),h=Math.min(i,e),a=Math.abs(e-i);this.rangeTwoValue>=this.rangeOneValue&&(this.completed.style.left=`${h}%`,this.completed.style.width=`${a}%`)}else d(t,s,this)},this.onMouseUp=()=>{this.rangeSlider?(this.emit("nile-button-first-change-end",{value:this.rangeOneValue}),this.emit("nile-button-last-change-end",{value:this.rangeTwoValue})):this.emit("nile-change-end",{value:this.value}),this.activeThumb=null,b(this)},this.onMouseDown=t=>{if(this.disabled)return;const s=this.range.getBoundingClientRect(),i=(t.clientX-s.left)/s.width*100,e=this.minValue+i/100*(this.maxValue-this.minValue);if(this.rangeSlider){f(e,this);const t=Math.abs(e-this.rangeOneValue),s=Math.abs(e-this.rangeTwoValue);this.activeThumb=t<=s?"one":"two",y(this)}else d(t,s,this),this.activeThumb="one",y(this)}}static get styles(){return[s]}connectedCallback(){super.connectedCallback(),this.emit("nile-init"),this.rangeSlider&&this.checkRangeValidity()}firstUpdated(t){if(g(this),!this.rangeSlider&&t.has("value")){this.value=this.checkValueValidity(this.value,this.minValue,this.maxValue);const t=v(this.value,this);this.buttonOne.style.left=`${t}%`,this.completed.style.width=`${t}%`}else if(this.rangeSlider){const t=v(this.rangeOneValue,this),s=v(this.rangeTwoValue,this);this.buttonOne&&(this.buttonOne.style.left=`${t}%`),this.buttonTwo&&(this.buttonTwo.style.left=`${s}%`);const i=Math.min(t,s),e=Math.abs(s-t);this.completed.style.left=`${i}%`,this.completed.style.width=`${e}%`}}checkValueValidity(t,s,i){return i-s<=1?Math.max(s,Math.min(t,i)):Math.floor(Math.max(s,Math.min(t,i)))}checkRangeValidity(){this.rangeTwoValue>this.maxValue?this.rangeTwoValue=this.maxValue:this.rangeTwoValue<this.rangeOneValue&&(this.rangeTwoValue=this.rangeOneValue),this.rangeOneValue<this.minValue?this.rangeOneValue=this.minValue:this.rangeOneValue>this.rangeTwoValue&&(this.rangeOneValue=this.rangeTwoValue)}render(){const t=this.showLabel,s=t?"label-start label-end":void 0;return h`
2
+ ${this.label?r(this):h``}
2
3
  <div
3
4
  part="base"
4
5
  class=${e({container:!0,"align-item-center":!t})}
@@ -18,10 +19,11 @@ import{__decorate as t}from"tslib";import{s}from"./nile-slider.css.esm.js";impor
18
19
  aria-labelledby=${s}
19
20
  >
20
21
  <span class="range-completed" part="range-completed"></span>
21
- ${this.rangeSlider?r(this):o(this)}
22
+ ${this.rangeSlider?o(this):c(this)}
23
+ ${"bottom"===this.valueLabel?p(this):h``}
22
24
  </div>
23
25
  </div>
24
26
 
25
27
  <slot class="span" name="suffix"></slot>
26
28
  </div>
27
- `}disconnectedCallback(){super.disconnectedCallback(),this.emit("nile-destroy")}};t([a({type:Number})],g.prototype,"minValue",void 0),t([a({type:Number})],g.prototype,"value",void 0),t([a({type:Number})],g.prototype,"maxValue",void 0),t([a({type:Number})],g.prototype,"rangeOneValue",void 0),t([a({type:Number})],g.prototype,"rangeTwoValue",void 0),t([a({type:Boolean})],g.prototype,"showLabel",void 0),t([a({type:String})],g.prototype,"labelStart",void 0),t([a({type:String})],g.prototype,"labelEnd",void 0),t([a({type:Boolean})],g.prototype,"rangeSlider",void 0),t([a({type:String})],g.prototype,"labelPosition",void 0),t([a({type:String})],g.prototype,"tooltipPosition",void 0),g=t([l("nile-slider")],g);export{g as N};
29
+ `}disconnectedCallback(){super.disconnectedCallback(),this.emit("nile-destroy")}};t([a({type:Number})],$.prototype,"minValue",void 0),t([a({type:Number})],$.prototype,"value",void 0),t([a({type:Number})],$.prototype,"maxValue",void 0),t([a({type:Number})],$.prototype,"rangeOneValue",void 0),t([a({type:Number})],$.prototype,"rangeTwoValue",void 0),t([a({type:Boolean})],$.prototype,"showLabel",void 0),t([a({type:String})],$.prototype,"labelStart",void 0),t([a({type:String})],$.prototype,"labelEnd",void 0),t([a({type:Boolean})],$.prototype,"rangeSlider",void 0),t([a({type:String})],$.prototype,"labelPosition",void 0),t([a({type:String})],$.prototype,"tooltipPosition",void 0),t([a({type:String})],$.prototype,"label",void 0),t([a({type:Boolean,reflect:!0})],$.prototype,"disabled",void 0),t([a({type:Boolean,reflect:!0})],$.prototype,"error",void 0),t([a({type:String,reflect:!0})],$.prototype,"valueLabel",void 0),$=t([l("nile-slider")],$);export{$ as N};
@@ -1,2 +1,2 @@
1
- System.register(["lit","lit/directives/class-map.js"],function(_export,_context){"use strict";var a,e,_templateObject,_templateObject2,_templateObject3,i,t,l;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){a=_lit.html;},function(_litDirectivesClassMapJs){e=_litDirectivesClassMapJs.classMap;}],execute:function execute(){_export("r",i=function i(e){return a(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n <div>\n <nile-tooltip\n content=","\n placement=","\n >\n <div \n id=\"range-one\" \n class=\"range-button\"\n part=\"range-button\"\n role=\"slider\"\n tabindex=\"0\"\n aria-valuemin=","\n aria-valuemax=","\n aria-valuenow=","\n aria-label=\"Minimum value\"\n ></div>\n </nile-tooltip>\n <nile-tooltip\n content=","\n placement=","\n >\n <div\n id=\"range-two\"\n class=\"range-button-two\"\n part=\"range-button-two\"\n role=\"slider\"\n tabindex=\"0\"\n aria-valuemin=","\n aria-valuemax=","\n aria-valuenow=","\n aria-label=\"Maximum value\"\n ></div>\n </nile-tooltip>\n </div>\n "])),e.rangeOneValue,e.tooltipPosition,e.minValue,e.maxValue,e.rangeOneValue,e.rangeTwoValue,e.tooltipPosition,e.minValue,e.maxValue,e.rangeTwoValue);}),_export("s",t=function t(i){return a(_templateObject2||(_templateObject2=_taggedTemplateLiteral(["\n <div>\n <nile-tooltip\n content=","\n placement=","\n >\n <div \n class="," \n part=\"range-button\"\n role=\"slider\"\n tabindex=\"0\"\n aria-valuemin=","\n aria-valuemax=","\n aria-valuenow=","\n aria-label=","\n ></div>\n </nile-tooltip>\n </div>\n "])),i.value,i.tooltipPosition,e({"range-button":!0,"range-button-active":"one"===i.activeThumb}),i.minValue,i.maxValue,i.value,i.ariaLabel||"Slider value");}),_export("l",l=function l(e){return a(_templateObject3||(_templateObject3=_taggedTemplateLiteral(["\n <div part=\"label-container\" class=\"label-container\">\n <span id=\"label-start\">","</span>\n <span id=\"label-end\">","</span>\n </div>\n "])),e.labelStart,e.labelEnd);});}};});
1
+ System.register(["lit","lit/directives/class-map.js","./utils/nile-slider.utils.cjs.js"],function(_export,_context){"use strict";var a,l,e,_templateObject,_templateObject2,_templateObject3,_templateObject4,_templateObject5,_templateObject6,i,t,n,s,r,o;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){a=_lit.html;},function(_litDirectivesClassMapJs){l=_litDirectivesClassMapJs.classMap;},function(_utilsNileSliderUtilsCjsJs){e=_utilsNileSliderUtilsCjsJs.v;}],execute:function execute(){i=function i(a){return a.disabled||"tooltip"!==a.valueLabel;},_export("r",t=function t(l){return a(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n <div>\n <nile-tooltip\n content=","\n placement=","\n ?disabled=","\n >\n <div \n id=\"range-one\" \n class=\"range-button\"\n part=\"range-button\"\n role=\"slider\"\n tabindex=\"0\"\n aria-valuemin=","\n aria-valuemax=","\n aria-valuenow=","\n aria-label=\"Minimum value\"\n ></div>\n </nile-tooltip>\n <nile-tooltip\n content=","\n placement=","\n ?disabled=","\n >\n <div\n id=\"range-two\"\n class=\"range-button-two\"\n part=\"range-button-two\"\n role=\"slider\"\n tabindex=\"0\"\n aria-valuemin=","\n aria-valuemax=","\n aria-valuenow=","\n aria-label=\"Maximum value\"\n ></div>\n </nile-tooltip>\n </div>\n "])),l.rangeOneValue,l.tooltipPosition,i(l),l.minValue,l.maxValue,l.rangeOneValue,l.rangeTwoValue,l.tooltipPosition,i(l),l.minValue,l.maxValue,l.rangeTwoValue);}),_export("s",n=function n(e){return a(_templateObject2||(_templateObject2=_taggedTemplateLiteral(["\n <div>\n <nile-tooltip\n content=","\n placement=","\n ?disabled=","\n >\n <div \n class="," \n part=\"range-button\"\n role=\"slider\"\n tabindex=\"0\"\n aria-valuemin=","\n aria-valuemax=","\n aria-valuenow=","\n aria-label=","\n ></div>\n </nile-tooltip>\n </div>\n "])),e.value,e.tooltipPosition,i(e),l({"range-button":!0,"range-button-active":"one"===e.activeThumb}),e.minValue,e.maxValue,e.value,e.ariaLabel||e.label||"Slider value");}),_export("l",s=function s(l){return a(_templateObject3||(_templateObject3=_taggedTemplateLiteral(["\n <div part=\"label-container\" class=\"label-container\">\n <span id=\"label-start\">","</span>\n <span id=\"label-end\">","</span>\n </div>\n "])),l.labelStart,l.labelEnd);}),_export("f",r=function r(l){return a(_templateObject4||(_templateObject4=_taggedTemplateLiteral(["\n <div part=\"field-header\" class=\"field-header\">\n <label id=\"field-label\" part=\"field-label\" class=\"field-label\">\n ","\n </label>\n </div>\n "])),l.label);}),_export("b",o=function o(l){return l.rangeSlider?a(_templateObject5||(_templateObject5=_taggedTemplateLiteral(["\n <span\n part=\"value-label\"\n class=\"value-label\"\n style=\"left: ","%\"\n >","</span>\n <span\n part=\"value-label\"\n class=\"value-label\"\n style=\"left: ","%\"\n >","</span>\n "])),e(l.rangeOneValue,l),l.rangeOneValue,e(l.rangeTwoValue,l),l.rangeTwoValue):a(_templateObject6||(_templateObject6=_taggedTemplateLiteral(["\n <span\n part=\"value-label\"\n class=\"value-label\"\n style=\"left: ","%\"\n >","</span>\n "])),e(l.value,l),l.value);});}};});
2
2
  //# sourceMappingURL=nile-slider.template.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nile-slider.template.cjs.js","sources":["../../../src/nile-slider/nile-slider.template.ts"],"sourcesContent":["import { TemplateResult, html } from 'lit';\nimport NileSlider from './nile-slider';\nimport { classMap } from 'lit/directives/class-map.js';\n\nexport const rangeSlider = (nileSlider: NileSlider): TemplateResult => {\n return html`\n <div>\n <nile-tooltip\n content=${nileSlider.rangeOneValue}\n placement=${nileSlider.tooltipPosition}\n >\n <div \n id=\"range-one\" \n class=\"range-button\"\n part=\"range-button\"\n role=\"slider\"\n tabindex=\"0\"\n aria-valuemin=${nileSlider.minValue}\n aria-valuemax=${nileSlider.maxValue}\n aria-valuenow=${nileSlider.rangeOneValue}\n aria-label=\"Minimum value\"\n ></div>\n </nile-tooltip>\n <nile-tooltip\n content=${nileSlider.rangeTwoValue}\n placement=${nileSlider.tooltipPosition}\n >\n <div\n id=\"range-two\"\n class=\"range-button-two\"\n part=\"range-button-two\"\n role=\"slider\"\n tabindex=\"0\"\n aria-valuemin=${nileSlider.minValue}\n aria-valuemax=${nileSlider.maxValue}\n aria-valuenow=${nileSlider.rangeTwoValue}\n aria-label=\"Maximum value\"\n ></div>\n </nile-tooltip>\n </div>\n `;\n};\n\nexport const singleSlider = (nileSlider: NileSlider): TemplateResult => {\n return html`\n <div>\n <nile-tooltip\n content=${nileSlider.value}\n placement=${nileSlider.tooltipPosition}\n >\n <div \n class=${classMap({\n 'range-button': true,\n 'range-button-active': nileSlider.activeThumb === 'one',\n })} \n part=\"range-button\"\n role=\"slider\"\n tabindex=\"0\"\n aria-valuemin=${nileSlider.minValue}\n aria-valuemax=${nileSlider.maxValue}\n aria-valuenow=${nileSlider.value}\n aria-label=${nileSlider.ariaLabel || \"Slider value\"}\n ></div>\n </nile-tooltip>\n </div>\n `;\n};\n\n\nexport const lableContaier = (nileSlider: NileSlider): TemplateResult => {\n return html`\n <div part=\"label-container\" class=\"label-container\">\n <span id=\"label-start\">${nileSlider.labelStart}</span>\n <span id=\"label-end\">${nileSlider.labelEnd}</span>\n </div>\n `;\n};"],"names":["rangeSlider","nileSlider","html","_templateObject","_taggedTemplateLiteral","rangeOneValue","tooltipPosition","minValue","maxValue","rangeTwoValue","singleSlider","_templateObject2","value","classMap","activeThumb","ariaLabel","lableContaier","_templateObject3","labelStart","labelEnd"],"mappings":"ocAIaA,CAAAA,CAAeC,QAAfD,CAAAA,CAAAA,CAAeC,SACnBC,CAAAA,CAAI,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA,m1BAGKH,CAAWI,CAAAA,aAAAA,CACTJ,CAAWK,CAAAA,eAAAA,CAQLL,CAAWM,CAAAA,QAAAA,CACXN,CAAWO,CAAAA,QAAAA,CACXP,CAAWI,CAAAA,aAAAA,CAKnBJ,CAAWQ,CAAAA,aAAAA,CACTR,CAAWK,CAAAA,eAAAA,CAQLL,CAAWM,CAAAA,QAAAA,CACXN,CAAWO,CAAAA,QAAAA,CACXP,CAAWQ,CAAAA,aAAAA,GAQxBC,EAAAA,OAAAA,KAAAA,CAAAA,CAAgBT,QAAhBS,CAAAA,CAAAA,CAAgBT,SACpBC,CAAAA,CAAI,CAAAS,gBAAA,GAAAA,gBAAA,CAAAP,sBAAA,iYAGKH,CAAWW,CAAAA,KAAAA,CACTX,CAAWK,CAAAA,eAAAA,CAGbO,CAAAA,CAAS,CACf,cAAA,CAAA,CAAgB,CAChB,CAAA,qBAAA,CAAkD,QAA3BZ,CAAWa,CAAAA,WAAAA,CAAAA,CAAAA,CAKpBb,CAAWM,CAAAA,QAAAA,CACXN,CAAWO,CAAAA,QAAAA,CACXP,CAAWW,CAAAA,KAAAA,CACdX,CAAAA,CAAWc,SAAa,EAAA,cAAA,GAQlCC,EAAAA,OAAAA,KAAAA,CAAAA,CAAiBf,QAAjBe,CAAAA,CAAAA,CAAiBf,SACrBC,CAAAA,CAAI,CAAAe,gBAAA,GAAAA,gBAAA,CAAAb,sBAAA,0KAEkBH,CAAWiB,CAAAA,UAAAA,CACbjB,CAAWkB,CAAAA,QAAAA"}
1
+ {"version":3,"file":"nile-slider.template.cjs.js","sources":["../../../src/nile-slider/nile-slider.template.ts"],"sourcesContent":["import { TemplateResult, html } from 'lit';\nimport NileSlider from './nile-slider';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { valueToPercent } from './utils/nile-slider.utils';\n\nconst tooltipDisabled = (nileSlider: NileSlider): boolean =>\n nileSlider.disabled || nileSlider.valueLabel !== 'tooltip';\n\nexport const rangeSlider = (nileSlider: NileSlider): TemplateResult => {\n return html`\n <div>\n <nile-tooltip\n content=${nileSlider.rangeOneValue}\n placement=${nileSlider.tooltipPosition}\n ?disabled=${tooltipDisabled(nileSlider)}\n >\n <div \n id=\"range-one\" \n class=\"range-button\"\n part=\"range-button\"\n role=\"slider\"\n tabindex=\"0\"\n aria-valuemin=${nileSlider.minValue}\n aria-valuemax=${nileSlider.maxValue}\n aria-valuenow=${nileSlider.rangeOneValue}\n aria-label=\"Minimum value\"\n ></div>\n </nile-tooltip>\n <nile-tooltip\n content=${nileSlider.rangeTwoValue}\n placement=${nileSlider.tooltipPosition}\n ?disabled=${tooltipDisabled(nileSlider)}\n >\n <div\n id=\"range-two\"\n class=\"range-button-two\"\n part=\"range-button-two\"\n role=\"slider\"\n tabindex=\"0\"\n aria-valuemin=${nileSlider.minValue}\n aria-valuemax=${nileSlider.maxValue}\n aria-valuenow=${nileSlider.rangeTwoValue}\n aria-label=\"Maximum value\"\n ></div>\n </nile-tooltip>\n </div>\n `;\n};\n\nexport const singleSlider = (nileSlider: NileSlider): TemplateResult => {\n return html`\n <div>\n <nile-tooltip\n content=${nileSlider.value}\n placement=${nileSlider.tooltipPosition}\n ?disabled=${tooltipDisabled(nileSlider)}\n >\n <div \n class=${classMap({\n 'range-button': true,\n 'range-button-active': nileSlider.activeThumb === 'one',\n })} \n part=\"range-button\"\n role=\"slider\"\n tabindex=\"0\"\n aria-valuemin=${nileSlider.minValue}\n aria-valuemax=${nileSlider.maxValue}\n aria-valuenow=${nileSlider.value}\n aria-label=${nileSlider.ariaLabel || nileSlider.label || \"Slider value\"}\n ></div>\n </nile-tooltip>\n </div>\n `;\n};\n\n\nexport const lableContaier = (nileSlider: NileSlider): TemplateResult => {\n return html`\n <div part=\"label-container\" class=\"label-container\">\n <span id=\"label-start\">${nileSlider.labelStart}</span>\n <span id=\"label-end\">${nileSlider.labelEnd}</span>\n </div>\n `;\n};\n\n\nexport const fieldHeader = (nileSlider: NileSlider): TemplateResult => {\n return html`\n <div part=\"field-header\" class=\"field-header\">\n <label id=\"field-label\" part=\"field-label\" class=\"field-label\">\n ${nileSlider.label}\n </label>\n </div>\n `;\n};\n\n\nexport const bottomValueLabels = (nileSlider: NileSlider): TemplateResult => {\n if (!nileSlider.rangeSlider) {\n return html`\n <span\n part=\"value-label\"\n class=\"value-label\"\n style=\"left: ${valueToPercent(nileSlider.value, nileSlider)}%\"\n >${nileSlider.value}</span>\n `;\n }\n return html`\n <span\n part=\"value-label\"\n class=\"value-label\"\n style=\"left: ${valueToPercent(nileSlider.rangeOneValue, nileSlider)}%\"\n >${nileSlider.rangeOneValue}</span>\n <span\n part=\"value-label\"\n class=\"value-label\"\n style=\"left: ${valueToPercent(nileSlider.rangeTwoValue, nileSlider)}%\"\n >${nileSlider.rangeTwoValue}</span>\n `;\n};\n"],"names":["tooltipDisabled","nileSlider","disabled","valueLabel","rangeSlider","html","_templateObject","_taggedTemplateLiteral","rangeOneValue","tooltipPosition","minValue","maxValue","rangeTwoValue","singleSlider","_templateObject2","value","classMap","activeThumb","ariaLabel","label","lableContaier","_templateObject3","labelStart","labelEnd","fieldHeader","_templateObject4","bottomValueLabels","_templateObject5","valueToPercent","_templateObject6"],"mappings":"4lBAKMA,CAAAA,CAAmBC,QAAnBD,CAAAA,CAAAA,CAAmBC,CACvBA,QAAAA,CAAAA,CAAAA,CAAWC,UAAsC,SAA1BD,GAAAA,CAAAA,CAAWE,UAEvBC,GAAAA,OAAAA,KAAAA,CAAAA,CAAeH,QAAfG,CAAAA,CAAAA,CAAeH,SACnBI,CAAAA,CAAI,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA,i4BAGKN,CAAWO,CAAAA,aAAAA,CACTP,CAAWQ,CAAAA,eAAAA,CACXT,CAAgBC,CAAAA,CAAAA,CAAAA,CAQVA,CAAWS,CAAAA,QAAAA,CACXT,CAAWU,CAAAA,QAAAA,CACXV,CAAWO,CAAAA,aAAAA,CAKnBP,CAAWW,CAAAA,aAAAA,CACTX,CAAWQ,CAAAA,eAAAA,CACXT,CAAgBC,CAAAA,CAAAA,CAAAA,CAQVA,CAAWS,CAAAA,QAAAA,CACXT,CAAWU,CAAAA,QAAAA,CACXV,CAAWW,CAAAA,aAAAA,GAQxBC,EAAAA,OAAAA,KAAAA,CAAAA,CAAgBZ,QAAhBY,CAAAA,CAAAA,CAAgBZ,SACpBI,CAAAA,CAAI,CAAAS,gBAAA,GAAAA,gBAAA,CAAAP,sBAAA,wZAGKN,CAAWc,CAAAA,KAAAA,CACTd,CAAWQ,CAAAA,eAAAA,CACXT,CAAgBC,CAAAA,CAAAA,CAAAA,CAGlBe,CAAAA,CAAS,CACf,cAAA,CAAA,CAAgB,CAChB,CAAA,qBAAA,CAAkD,QAA3Bf,CAAWgB,CAAAA,WAAAA,CAAAA,CAAAA,CAKpBhB,CAAWS,CAAAA,QAAAA,CACXT,CAAWU,CAAAA,QAAAA,CACXV,CAAWc,CAAAA,KAAAA,CACdd,CAAWiB,CAAAA,SAAAA,EAAajB,EAAWkB,KAAS,EAAA,cAAA,GAQtDC,EAAAA,OAAAA,KAAAA,CAAAA,CAAiBnB,QAAjBmB,CAAAA,CAAAA,CAAiBnB,SACrBI,CAAAA,CAAI,CAAAgB,gBAAA,GAAAA,gBAAA,CAAAd,sBAAA,0KAEkBN,CAAWqB,CAAAA,UAAAA,CACbrB,CAAWsB,CAAAA,QAAAA,GAM3BC,EAAAA,OAAAA,KAAAA,CAAAA,CAAevB,QAAfuB,CAAAA,CAAAA,CAAevB,SACnBI,CAAAA,CAAI,CAAAoB,gBAAA,GAAAA,gBAAA,CAAAlB,sBAAA,0LAGHN,CAAWkB,CAAAA,KAAAA,iBAORO,CAAqBzB,CAAAA,QAArByB,CAAAA,CAAqBzB,CAAAA,CAAAA,QAC3BA,CAAAA,CAAWG,CAAAA,WAAAA,CASTC,CAAI,CAAAsB,gBAAA,GAAAA,gBAAA,CAAApB,sBAAA,8OAIQqB,CAAAA,CAAe3B,EAAWO,aAAeP,CAAAA,CAAAA,CAAAA,CACvDA,CAAWO,CAAAA,aAAAA,CAIGoB,CAAAA,CAAe3B,EAAWW,aAAeX,CAAAA,CAAAA,CAAAA,CACvDA,CAAWW,CAAAA,aAAAA,EAlBPP,CAAI,CAAAwB,gBAAA,GAAAA,gBAAA,CAAAtB,sBAAA,yIAIQqB,CAAAA,CAAe3B,EAAWc,KAAOd,CAAAA,CAAAA,CAAAA,CAC/CA,CAAWc,CAAAA,KAAAA"}
@@ -1,8 +1,9 @@
1
- import{html as a}from"lit";import{classMap as e}from"lit/directives/class-map.js";const i=e=>a`
1
+ import{html as a}from"lit";import{classMap as l}from"lit/directives/class-map.js";import{v as e}from"./utils/nile-slider.utils.esm.js";const i=a=>a.disabled||"tooltip"!==a.valueLabel,t=l=>a`
2
2
  <div>
3
3
  <nile-tooltip
4
- content=${e.rangeOneValue}
5
- placement=${e.tooltipPosition}
4
+ content=${l.rangeOneValue}
5
+ placement=${l.tooltipPosition}
6
+ ?disabled=${i(l)}
6
7
  >
7
8
  <div
8
9
  id="range-one"
@@ -10,15 +11,16 @@ import{html as a}from"lit";import{classMap as e}from"lit/directives/class-map.js
10
11
  part="range-button"
11
12
  role="slider"
12
13
  tabindex="0"
13
- aria-valuemin=${e.minValue}
14
- aria-valuemax=${e.maxValue}
15
- aria-valuenow=${e.rangeOneValue}
14
+ aria-valuemin=${l.minValue}
15
+ aria-valuemax=${l.maxValue}
16
+ aria-valuenow=${l.rangeOneValue}
16
17
  aria-label="Minimum value"
17
18
  ></div>
18
19
  </nile-tooltip>
19
20
  <nile-tooltip
20
- content=${e.rangeTwoValue}
21
- placement=${e.tooltipPosition}
21
+ content=${l.rangeTwoValue}
22
+ placement=${l.tooltipPosition}
23
+ ?disabled=${i(l)}
22
24
  >
23
25
  <div
24
26
  id="range-two"
@@ -26,34 +28,58 @@ import{html as a}from"lit";import{classMap as e}from"lit/directives/class-map.js
26
28
  part="range-button-two"
27
29
  role="slider"
28
30
  tabindex="0"
29
- aria-valuemin=${e.minValue}
30
- aria-valuemax=${e.maxValue}
31
- aria-valuenow=${e.rangeTwoValue}
31
+ aria-valuemin=${l.minValue}
32
+ aria-valuemax=${l.maxValue}
33
+ aria-valuenow=${l.rangeTwoValue}
32
34
  aria-label="Maximum value"
33
35
  ></div>
34
36
  </nile-tooltip>
35
37
  </div>
36
- `,t=i=>a`
38
+ `,n=e=>a`
37
39
  <div>
38
40
  <nile-tooltip
39
- content=${i.value}
40
- placement=${i.tooltipPosition}
41
+ content=${e.value}
42
+ placement=${e.tooltipPosition}
43
+ ?disabled=${i(e)}
41
44
  >
42
45
  <div
43
- class=${e({"range-button":!0,"range-button-active":"one"===i.activeThumb})}
46
+ class=${l({"range-button":!0,"range-button-active":"one"===e.activeThumb})}
44
47
  part="range-button"
45
48
  role="slider"
46
49
  tabindex="0"
47
- aria-valuemin=${i.minValue}
48
- aria-valuemax=${i.maxValue}
49
- aria-valuenow=${i.value}
50
- aria-label=${i.ariaLabel||"Slider value"}
50
+ aria-valuemin=${e.minValue}
51
+ aria-valuemax=${e.maxValue}
52
+ aria-valuenow=${e.value}
53
+ aria-label=${e.ariaLabel||e.label||"Slider value"}
51
54
  ></div>
52
55
  </nile-tooltip>
53
56
  </div>
54
- `,l=e=>a`
57
+ `,s=l=>a`
55
58
  <div part="label-container" class="label-container">
56
- <span id="label-start">${e.labelStart}</span>
57
- <span id="label-end">${e.labelEnd}</span>
59
+ <span id="label-start">${l.labelStart}</span>
60
+ <span id="label-end">${l.labelEnd}</span>
61
+ </div>
62
+ `,r=l=>a`
63
+ <div part="field-header" class="field-header">
64
+ <label id="field-label" part="field-label" class="field-label">
65
+ ${l.label}
66
+ </label>
58
67
  </div>
59
- `;export{l,i as r,t as s};
68
+ `,o=l=>l.rangeSlider?a`
69
+ <span
70
+ part="value-label"
71
+ class="value-label"
72
+ style="left: ${e(l.rangeOneValue,l)}%"
73
+ >${l.rangeOneValue}</span>
74
+ <span
75
+ part="value-label"
76
+ class="value-label"
77
+ style="left: ${e(l.rangeTwoValue,l)}%"
78
+ >${l.rangeTwoValue}</span>
79
+ `:a`
80
+ <span
81
+ part="value-label"
82
+ class="value-label"
83
+ style="left: ${e(l.value,l)}%"
84
+ >${l.value}</span>
85
+ `;export{o as b,r as f,s as l,t as r,n as s};
@@ -1,2 +1,2 @@
1
- System.register([],function(_export,_context){"use strict";var t,a,n,o,e,s,u,h,c,l;return{setters:[],execute:function execute(){t=function t(_t,a){return Math.max(0,Math.min(a,_t.width))/_t.width*100;},a=function a(t,_a){var n=_a.minValue+t/100*(_a.maxValue-_a.minValue);return _a.maxValue-_a.minValue<1?parseFloat(n.toFixed(2)):Math.floor(n);},_export("v",n=function n(t,a){return(t-a.minValue)/(a.maxValue-a.minValue)*100;}),_export("h",o=function o(n,_o,e){var s=n.clientX-_o.left,u=t(_o,s);e.value=a(u,e),e.emit("nile-change",{value:e.value}),e.buttonOne.style.left="".concat(u,"%"),e.completed.style.width="".concat(u,"%");}),_export("a",e=function e(n,o,_e){var s=n.clientX-o.left,u=t(o,s);_e.rangeOneValue=a(u,_e),_e.rangeOneValue=Math.min(_e.rangeOneValue,_e.rangeTwoValue),_e.emit("nile-button-first-change",{value:_e.rangeOneValue}),_e.rangeTwoValue>_e.rangeOneValue&&(_e.buttonOne.style.left="".concat(u,"%"));}),_export("b",s=function s(n,o,e){var s=n.clientX-o.left,u=t(o,s);e.rangeTwoValue=a(u,e),e.rangeTwoValue=Math.max(e.rangeTwoValue,e.rangeOneValue),e.emit("nile-button-last-change",{value:e.rangeTwoValue}),e.rangeTwoValue>e.rangeOneValue&&(e.buttonTwo.style.left="".concat(u,"%"));}),_export("g",u=function u(t){var _t$buttonOne,_t$buttonTwo;t.range=t.renderRoot.querySelector(".range"),t.buttonOne=t.renderRoot.querySelector(".range-button"),t.buttonTwo=t.renderRoot.querySelector(".range-button-two"),t.completed=t.renderRoot.querySelector(".range-completed"),t.range.addEventListener("mousedown",t.onMouseDown),(_t$buttonOne=t.buttonOne)!==null&&_t$buttonOne!==void 0&&_t$buttonOne.addEventListener("mousedown",function(){t.activeThumb="one",h(t);}),(_t$buttonTwo=t.buttonTwo)===null||_t$buttonTwo===void 0?void 0:_t$buttonTwo.addEventListener("mousedown",function(){t.activeThumb="two",h(t);});}),_export("c",h=function h(t){window.addEventListener("mousemove",t.onMouseMove),window.addEventListener("mouseup",t.onMouseUp);}),_export("r",c=function c(t){window.removeEventListener("mousemove",t.onMouseMove),window.removeEventListener("mouseup",t.onMouseUp);}),_export("d",l=function l(t,a){if(Math.abs(t-a.rangeOneValue)<=Math.abs(t-a.rangeTwoValue)){var _n=Math.min(t,a.rangeTwoValue);a.rangeOneValue=a.checkValueValidity(_n,a.minValue,a.maxValue);}else{var _n2=Math.max(t,a.rangeOneValue);a.rangeTwoValue=a.checkValueValidity(_n2,a.minValue,a.maxValue);}var o=n(a.rangeOneValue,a),e=n(a.rangeTwoValue,a);a.buttonOne.style.left="".concat(o,"%"),a.buttonTwo.style.left="".concat(e,"%");var s=Math.min(o,e),u=Math.abs(e-o);a.completed.style.left="".concat(s,"%"),a.completed.style.width="".concat(u,"%"),a.emit("nile-button-first-change",{value:a.rangeOneValue}),a.emit("nile-button-last-change",{value:a.rangeTwoValue});});}};});
1
+ System.register([],function(_export,_context){"use strict";var t,a,n,o,e,s,u,h,c,l;return{setters:[],execute:function execute(){t=function t(_t,a){return Math.max(0,Math.min(a,_t.width))/_t.width*100;},a=function a(t,_a){var n=_a.minValue+t/100*(_a.maxValue-_a.minValue);return _a.maxValue-_a.minValue<1?parseFloat(n.toFixed(2)):Math.floor(n);},_export("v",n=function n(t,a){return(t-a.minValue)/(a.maxValue-a.minValue)*100;}),_export("h",o=function o(n,_o,e){var s=n.clientX-_o.left,u=t(_o,s);e.value=a(u,e),e.emit("nile-change",{value:e.value}),e.buttonOne.style.left="".concat(u,"%"),e.completed.style.width="".concat(u,"%");}),_export("a",e=function e(n,o,_e){var s=n.clientX-o.left,u=t(o,s);_e.rangeOneValue=a(u,_e),_e.rangeOneValue=Math.min(_e.rangeOneValue,_e.rangeTwoValue),_e.emit("nile-button-first-change",{value:_e.rangeOneValue}),_e.rangeTwoValue>_e.rangeOneValue&&(_e.buttonOne.style.left="".concat(u,"%"));}),_export("b",s=function s(n,o,e){var s=n.clientX-o.left,u=t(o,s);e.rangeTwoValue=a(u,e),e.rangeTwoValue=Math.max(e.rangeTwoValue,e.rangeOneValue),e.emit("nile-button-last-change",{value:e.rangeTwoValue}),e.rangeTwoValue>e.rangeOneValue&&(e.buttonTwo.style.left="".concat(u,"%"));}),_export("g",u=function u(t){var _t$buttonOne,_t$buttonTwo;t.range=t.renderRoot.querySelector(".range"),t.buttonOne=t.renderRoot.querySelector(".range-button"),t.buttonTwo=t.renderRoot.querySelector(".range-button-two"),t.completed=t.renderRoot.querySelector(".range-completed"),t.range.addEventListener("mousedown",t.onMouseDown),(_t$buttonOne=t.buttonOne)!==null&&_t$buttonOne!==void 0&&_t$buttonOne.addEventListener("mousedown",function(){t.disabled||(t.activeThumb="one",h(t));}),(_t$buttonTwo=t.buttonTwo)===null||_t$buttonTwo===void 0?void 0:_t$buttonTwo.addEventListener("mousedown",function(){t.disabled||(t.activeThumb="two",h(t));});}),_export("c",h=function h(t){window.addEventListener("mousemove",t.onMouseMove),window.addEventListener("mouseup",t.onMouseUp);}),_export("r",c=function c(t){window.removeEventListener("mousemove",t.onMouseMove),window.removeEventListener("mouseup",t.onMouseUp);}),_export("d",l=function l(t,a){if(Math.abs(t-a.rangeOneValue)<=Math.abs(t-a.rangeTwoValue)){var _n=Math.min(t,a.rangeTwoValue);a.rangeOneValue=a.checkValueValidity(_n,a.minValue,a.maxValue);}else{var _n2=Math.max(t,a.rangeOneValue);a.rangeTwoValue=a.checkValueValidity(_n2,a.minValue,a.maxValue);}var o=n(a.rangeOneValue,a),e=n(a.rangeTwoValue,a);a.buttonOne.style.left="".concat(o,"%"),a.buttonTwo.style.left="".concat(e,"%");var s=Math.min(o,e),u=Math.abs(e-o);a.completed.style.left="".concat(s,"%"),a.completed.style.width="".concat(u,"%"),a.emit("nile-button-first-change",{value:a.rangeOneValue}),a.emit("nile-button-last-change",{value:a.rangeTwoValue});});}};});
2
2
  //# sourceMappingURL=nile-slider.utils.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nile-slider.utils.cjs.js","sources":["../../../../src/nile-slider/utils/nile-slider.utils.ts"],"sourcesContent":["import NileSlider from '../nile-slider';\nimport { NileSliderEvents } from '../types/nile-slider.enums';\n\nexport const getClampedPercent = (\n rect: DOMRect,\n x: number,\n): number => {\n const clampedX = Math.max(0, Math.min(x, rect.width)); \n const percent = (clampedX / rect.width) * 100;\n return percent;\n};\n\nexport const percentToValue = (percent: number, nileSlider: NileSlider): number => {\n const value = nileSlider.minValue + (percent / 100) * (nileSlider.maxValue - nileSlider.minValue);\n if(nileSlider.maxValue - nileSlider.minValue < 1) {\n return parseFloat(value.toFixed(2));\n } else {\n return Math.floor(value);\n }\n};\n\nexport const valueToPercent = (value: number, nileSlider: NileSlider): number => {\n return ((value - nileSlider.minValue) / (nileSlider.maxValue - nileSlider.minValue)) * 100;\n};\n\nexport const handleSingleSlider = (\n e: MouseEvent,\n rect: DOMRect,\n nileSlider: NileSlider\n): void => {\n const x = e.clientX - rect.left;\n const percent = getClampedPercent(rect, x);\n nileSlider.value = percentToValue(percent, nileSlider);\n nileSlider.emit(NileSliderEvents.NILE_CHANGE, { value: nileSlider.value });\n nileSlider.buttonOne.style.left = `${percent}%`;\n nileSlider.completed.style.width = `${percent}%`;\n};\n\nexport const handleRangeOne = (\n e: MouseEvent,\n rect: DOMRect,\n nileSlider: NileSlider\n): void => {\n const x = e.clientX - rect.left;\n const percent = getClampedPercent(rect, x);\n nileSlider.rangeOneValue = percentToValue(percent, nileSlider);\n nileSlider.rangeOneValue = Math.min(nileSlider.rangeOneValue, nileSlider.rangeTwoValue);\n nileSlider.emit(NileSliderEvents.NILE_BUTTON_FIRST_CHANGE, {\n value: nileSlider.rangeOneValue,\n });\n if (nileSlider.rangeTwoValue > nileSlider.rangeOneValue) {\n nileSlider.buttonOne.style.left = `${percent}%`;\n }\n};\n\nexport const handleRangeTwo = (\n e: MouseEvent,\n rect: DOMRect,\n nileSlider: NileSlider\n): void => {\n const x = e.clientX - rect.left;\n const percent = getClampedPercent(rect, x);\n nileSlider.rangeTwoValue = percentToValue(percent, nileSlider);\n nileSlider.rangeTwoValue = Math.max(nileSlider.rangeTwoValue, nileSlider.rangeOneValue);\n nileSlider.emit(NileSliderEvents.NILE_BUTTON_LAST_CHANGE, {\n value: nileSlider.rangeTwoValue,\n });\n\n if (nileSlider.rangeTwoValue > nileSlider.rangeOneValue) {\n nileSlider.buttonTwo.style.left = `${percent}%`;\n }\n};\n\nexport const getHtmlElements = (nileSlider: NileSlider) => {\n nileSlider.range = nileSlider.renderRoot.querySelector('.range') as HTMLElement;\n nileSlider.buttonOne = nileSlider.renderRoot.querySelector('.range-button') as HTMLElement;\n nileSlider.buttonTwo = nileSlider.renderRoot.querySelector('.range-button-two') as HTMLElement;\n nileSlider.completed = nileSlider.renderRoot.querySelector('.range-completed') as HTMLElement;\n\n nileSlider.range.addEventListener('mousedown', nileSlider.onMouseDown);\n\n nileSlider.buttonOne?.addEventListener('mousedown', () => {\n nileSlider.activeThumb = 'one';\n addMoveListeners(nileSlider);\n });\n\n nileSlider.buttonTwo?.addEventListener('mousedown', () => {\n nileSlider.activeThumb = 'two';\n addMoveListeners(nileSlider);\n });\n};\n\nexport const addMoveListeners = (nileSlider: NileSlider): void => {\n window.addEventListener('mousemove', nileSlider.onMouseMove);\n window.addEventListener('mouseup', nileSlider.onMouseUp);\n};\n\nexport const removeMoveListeners = (nileSlider: NileSlider): void => {\n window.removeEventListener('mousemove', nileSlider.onMouseMove);\n window.removeEventListener('mouseup', nileSlider.onMouseUp);\n};\n\nexport const handleTwoThumbClick = (\n value: number,\n nileSlider: NileSlider\n): void => {\n const distToOne = Math.abs(value - nileSlider.rangeOneValue);\n const distToTwo = Math.abs(value - nileSlider.rangeTwoValue);\n\n if (distToOne <= distToTwo) {\n const clamped = Math.min(value, nileSlider.rangeTwoValue);\n nileSlider.rangeOneValue = nileSlider.checkValueValidity(clamped, nileSlider.minValue, nileSlider.maxValue);\n } else {\n const clamped = Math.max(value, nileSlider.rangeOneValue);\n nileSlider.rangeTwoValue = nileSlider.checkValueValidity(clamped, nileSlider.minValue, nileSlider.maxValue);\n } \n\n const percentOne = valueToPercent(nileSlider.rangeOneValue, nileSlider);\n const percentTwo = valueToPercent(nileSlider.rangeTwoValue, nileSlider);\n\n nileSlider.buttonOne.style.left = `${percentOne}%`;\n nileSlider.buttonTwo.style.left = `${percentTwo}%`;\n\n const left = Math.min(percentOne, percentTwo);\n const width = Math.abs(percentTwo - percentOne);\n\n nileSlider.completed.style.left = `${left}%`;\n nileSlider.completed.style.width = `${width}%`;\n\n nileSlider.emit(NileSliderEvents.NILE_BUTTON_FIRST_CHANGE, {\n value: nileSlider.rangeOneValue,\n });\n nileSlider.emit(NileSliderEvents.NILE_BUTTON_LAST_CHANGE, {\n value: nileSlider.rangeTwoValue,\n });\n};\n"],"names":["getClampedPercent","rect","x","Math","max","min","width","percentToValue","percent","nileSlider","value","minValue","maxValue","parseFloat","toFixed","floor","_export","valueToPercent","handleSingleSlider","e","clientX","left","emit","buttonOne","style","completed","concat","handleRangeOne","rangeOneValue","rangeTwoValue","handleRangeTwo","buttonTwo","getHtmlElements","range","renderRoot","querySelector","addEventListener","onMouseDown","activeThumb","addMoveListeners","window","onMouseMove","onMouseUp","removeMoveListeners","removeEventListener","handleTwoThumbClick","abs","clamped","checkValueValidity","percentOne","percentTwo"],"mappings":"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"}
1
+ {"version":3,"file":"nile-slider.utils.cjs.js","sources":["../../../../src/nile-slider/utils/nile-slider.utils.ts"],"sourcesContent":["import NileSlider from '../nile-slider';\nimport { NileSliderEvents } from '../types/nile-slider.enums';\n\nexport const getClampedPercent = (\n rect: DOMRect,\n x: number,\n): number => {\n const clampedX = Math.max(0, Math.min(x, rect.width)); \n const percent = (clampedX / rect.width) * 100;\n return percent;\n};\n\nexport const percentToValue = (percent: number, nileSlider: NileSlider): number => {\n const value = nileSlider.minValue + (percent / 100) * (nileSlider.maxValue - nileSlider.minValue);\n if(nileSlider.maxValue - nileSlider.minValue < 1) {\n return parseFloat(value.toFixed(2));\n } else {\n return Math.floor(value);\n }\n};\n\nexport const valueToPercent = (value: number, nileSlider: NileSlider): number => {\n return ((value - nileSlider.minValue) / (nileSlider.maxValue - nileSlider.minValue)) * 100;\n};\n\nexport const handleSingleSlider = (\n e: MouseEvent,\n rect: DOMRect,\n nileSlider: NileSlider\n): void => {\n const x = e.clientX - rect.left;\n const percent = getClampedPercent(rect, x);\n nileSlider.value = percentToValue(percent, nileSlider);\n nileSlider.emit(NileSliderEvents.NILE_CHANGE, { value: nileSlider.value });\n nileSlider.buttonOne.style.left = `${percent}%`;\n nileSlider.completed.style.width = `${percent}%`;\n};\n\nexport const handleRangeOne = (\n e: MouseEvent,\n rect: DOMRect,\n nileSlider: NileSlider\n): void => {\n const x = e.clientX - rect.left;\n const percent = getClampedPercent(rect, x);\n nileSlider.rangeOneValue = percentToValue(percent, nileSlider);\n nileSlider.rangeOneValue = Math.min(nileSlider.rangeOneValue, nileSlider.rangeTwoValue);\n nileSlider.emit(NileSliderEvents.NILE_BUTTON_FIRST_CHANGE, {\n value: nileSlider.rangeOneValue,\n });\n if (nileSlider.rangeTwoValue > nileSlider.rangeOneValue) {\n nileSlider.buttonOne.style.left = `${percent}%`;\n }\n};\n\nexport const handleRangeTwo = (\n e: MouseEvent,\n rect: DOMRect,\n nileSlider: NileSlider\n): void => {\n const x = e.clientX - rect.left;\n const percent = getClampedPercent(rect, x);\n nileSlider.rangeTwoValue = percentToValue(percent, nileSlider);\n nileSlider.rangeTwoValue = Math.max(nileSlider.rangeTwoValue, nileSlider.rangeOneValue);\n nileSlider.emit(NileSliderEvents.NILE_BUTTON_LAST_CHANGE, {\n value: nileSlider.rangeTwoValue,\n });\n\n if (nileSlider.rangeTwoValue > nileSlider.rangeOneValue) {\n nileSlider.buttonTwo.style.left = `${percent}%`;\n }\n};\n\nexport const getHtmlElements = (nileSlider: NileSlider) => {\n nileSlider.range = nileSlider.renderRoot.querySelector('.range') as HTMLElement;\n nileSlider.buttonOne = nileSlider.renderRoot.querySelector('.range-button') as HTMLElement;\n nileSlider.buttonTwo = nileSlider.renderRoot.querySelector('.range-button-two') as HTMLElement;\n nileSlider.completed = nileSlider.renderRoot.querySelector('.range-completed') as HTMLElement;\n\n nileSlider.range.addEventListener('mousedown', nileSlider.onMouseDown);\n\n nileSlider.buttonOne?.addEventListener('mousedown', () => {\n if (nileSlider.disabled) return;\n nileSlider.activeThumb = 'one';\n addMoveListeners(nileSlider);\n });\n\n nileSlider.buttonTwo?.addEventListener('mousedown', () => {\n if (nileSlider.disabled) return;\n nileSlider.activeThumb = 'two';\n addMoveListeners(nileSlider);\n });\n};\n\nexport const addMoveListeners = (nileSlider: NileSlider): void => {\n window.addEventListener('mousemove', nileSlider.onMouseMove);\n window.addEventListener('mouseup', nileSlider.onMouseUp);\n};\n\nexport const removeMoveListeners = (nileSlider: NileSlider): void => {\n window.removeEventListener('mousemove', nileSlider.onMouseMove);\n window.removeEventListener('mouseup', nileSlider.onMouseUp);\n};\n\nexport const handleTwoThumbClick = (\n value: number,\n nileSlider: NileSlider\n): void => {\n const distToOne = Math.abs(value - nileSlider.rangeOneValue);\n const distToTwo = Math.abs(value - nileSlider.rangeTwoValue);\n\n if (distToOne <= distToTwo) {\n const clamped = Math.min(value, nileSlider.rangeTwoValue);\n nileSlider.rangeOneValue = nileSlider.checkValueValidity(clamped, nileSlider.minValue, nileSlider.maxValue);\n } else {\n const clamped = Math.max(value, nileSlider.rangeOneValue);\n nileSlider.rangeTwoValue = nileSlider.checkValueValidity(clamped, nileSlider.minValue, nileSlider.maxValue);\n } \n\n const percentOne = valueToPercent(nileSlider.rangeOneValue, nileSlider);\n const percentTwo = valueToPercent(nileSlider.rangeTwoValue, nileSlider);\n\n nileSlider.buttonOne.style.left = `${percentOne}%`;\n nileSlider.buttonTwo.style.left = `${percentTwo}%`;\n\n const left = Math.min(percentOne, percentTwo);\n const width = Math.abs(percentTwo - percentOne);\n\n nileSlider.completed.style.left = `${left}%`;\n nileSlider.completed.style.width = `${width}%`;\n\n nileSlider.emit(NileSliderEvents.NILE_BUTTON_FIRST_CHANGE, {\n value: nileSlider.rangeOneValue,\n });\n nileSlider.emit(NileSliderEvents.NILE_BUTTON_LAST_CHANGE, {\n value: nileSlider.rangeTwoValue,\n });\n};\n"],"names":["getClampedPercent","rect","x","Math","max","min","width","percentToValue","percent","nileSlider","value","minValue","maxValue","parseFloat","toFixed","floor","_export","valueToPercent","n","handleSingleSlider","e","clientX","left","emit","buttonOne","style","completed","handleRangeOne","rangeOneValue","rangeTwoValue","handleRangeTwo","s","buttonTwo","concat","getHtmlElements","range","renderRoot","querySelector","addEventListener","onMouseDown","disabled","activeThumb","addMoveListeners","window","onMouseMove","onMouseUp","removeMoveListeners","removeEventListener","handleTwoThumbClick","l","abs","clamped","checkValueValidity","percentOne","percentTwo"],"mappings":"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"}
@@ -1 +1 @@
1
- const t=(t,a)=>Math.max(0,Math.min(a,t.width))/t.width*100,a=(t,a)=>{const n=a.minValue+t/100*(a.maxValue-a.minValue);return a.maxValue-a.minValue<1?parseFloat(n.toFixed(2)):Math.floor(n)},n=(t,a)=>(t-a.minValue)/(a.maxValue-a.minValue)*100,o=(n,o,e)=>{const s=n.clientX-o.left,u=t(o,s);e.value=a(u,e),e.emit("nile-change",{value:e.value}),e.buttonOne.style.left=`${u}%`,e.completed.style.width=`${u}%`},e=(n,o,e)=>{const s=n.clientX-o.left,u=t(o,s);e.rangeOneValue=a(u,e),e.rangeOneValue=Math.min(e.rangeOneValue,e.rangeTwoValue),e.emit("nile-button-first-change",{value:e.rangeOneValue}),e.rangeTwoValue>e.rangeOneValue&&(e.buttonOne.style.left=`${u}%`)},s=(n,o,e)=>{const s=n.clientX-o.left,u=t(o,s);e.rangeTwoValue=a(u,e),e.rangeTwoValue=Math.max(e.rangeTwoValue,e.rangeOneValue),e.emit("nile-button-last-change",{value:e.rangeTwoValue}),e.rangeTwoValue>e.rangeOneValue&&(e.buttonTwo.style.left=`${u}%`)},u=t=>{t.range=t.renderRoot.querySelector(".range"),t.buttonOne=t.renderRoot.querySelector(".range-button"),t.buttonTwo=t.renderRoot.querySelector(".range-button-two"),t.completed=t.renderRoot.querySelector(".range-completed"),t.range.addEventListener("mousedown",t.onMouseDown),t.buttonOne?.addEventListener("mousedown",(()=>{t.activeThumb="one",h(t)})),t.buttonTwo?.addEventListener("mousedown",(()=>{t.activeThumb="two",h(t)}))},h=t=>{window.addEventListener("mousemove",t.onMouseMove),window.addEventListener("mouseup",t.onMouseUp)},c=t=>{window.removeEventListener("mousemove",t.onMouseMove),window.removeEventListener("mouseup",t.onMouseUp)},l=(t,a)=>{if(Math.abs(t-a.rangeOneValue)<=Math.abs(t-a.rangeTwoValue)){const n=Math.min(t,a.rangeTwoValue);a.rangeOneValue=a.checkValueValidity(n,a.minValue,a.maxValue)}else{const n=Math.max(t,a.rangeOneValue);a.rangeTwoValue=a.checkValueValidity(n,a.minValue,a.maxValue)}const o=n(a.rangeOneValue,a),e=n(a.rangeTwoValue,a);a.buttonOne.style.left=`${o}%`,a.buttonTwo.style.left=`${e}%`;const s=Math.min(o,e),u=Math.abs(e-o);a.completed.style.left=`${s}%`,a.completed.style.width=`${u}%`,a.emit("nile-button-first-change",{value:a.rangeOneValue}),a.emit("nile-button-last-change",{value:a.rangeTwoValue})};export{e as a,s as b,h as c,l as d,u as g,o as h,c as r,n as v};
1
+ const t=(t,a)=>Math.max(0,Math.min(a,t.width))/t.width*100,a=(t,a)=>{const n=a.minValue+t/100*(a.maxValue-a.minValue);return a.maxValue-a.minValue<1?parseFloat(n.toFixed(2)):Math.floor(n)},n=(t,a)=>(t-a.minValue)/(a.maxValue-a.minValue)*100,o=(n,o,e)=>{const s=n.clientX-o.left,u=t(o,s);e.value=a(u,e),e.emit("nile-change",{value:e.value}),e.buttonOne.style.left=`${u}%`,e.completed.style.width=`${u}%`},e=(n,o,e)=>{const s=n.clientX-o.left,u=t(o,s);e.rangeOneValue=a(u,e),e.rangeOneValue=Math.min(e.rangeOneValue,e.rangeTwoValue),e.emit("nile-button-first-change",{value:e.rangeOneValue}),e.rangeTwoValue>e.rangeOneValue&&(e.buttonOne.style.left=`${u}%`)},s=(n,o,e)=>{const s=n.clientX-o.left,u=t(o,s);e.rangeTwoValue=a(u,e),e.rangeTwoValue=Math.max(e.rangeTwoValue,e.rangeOneValue),e.emit("nile-button-last-change",{value:e.rangeTwoValue}),e.rangeTwoValue>e.rangeOneValue&&(e.buttonTwo.style.left=`${u}%`)},u=t=>{t.range=t.renderRoot.querySelector(".range"),t.buttonOne=t.renderRoot.querySelector(".range-button"),t.buttonTwo=t.renderRoot.querySelector(".range-button-two"),t.completed=t.renderRoot.querySelector(".range-completed"),t.range.addEventListener("mousedown",t.onMouseDown),t.buttonOne?.addEventListener("mousedown",(()=>{t.disabled||(t.activeThumb="one",h(t))})),t.buttonTwo?.addEventListener("mousedown",(()=>{t.disabled||(t.activeThumb="two",h(t))}))},h=t=>{window.addEventListener("mousemove",t.onMouseMove),window.addEventListener("mouseup",t.onMouseUp)},c=t=>{window.removeEventListener("mousemove",t.onMouseMove),window.removeEventListener("mouseup",t.onMouseUp)},l=(t,a)=>{if(Math.abs(t-a.rangeOneValue)<=Math.abs(t-a.rangeTwoValue)){const n=Math.min(t,a.rangeTwoValue);a.rangeOneValue=a.checkValueValidity(n,a.minValue,a.maxValue)}else{const n=Math.max(t,a.rangeOneValue);a.rangeTwoValue=a.checkValueValidity(n,a.minValue,a.maxValue)}const o=n(a.rangeOneValue,a),e=n(a.rangeTwoValue,a);a.buttonOne.style.left=`${o}%`,a.buttonTwo.style.left=`${e}%`;const s=Math.min(o,e),u=Math.abs(e-o);a.completed.style.left=`${s}%`,a.completed.style.width=`${u}%`,a.emit("nile-button-first-change",{value:a.rangeOneValue}),a.emit("nile-button-last-change",{value:a.rangeTwoValue})};export{e as a,s as b,h as c,l as d,u as g,o as h,c as r,n as v};
@@ -24,6 +24,7 @@ export interface NileContextMenuItemData {
24
24
  iconMethod?: 'fill' | 'stroke' | string;
25
25
  iconColor?: string;
26
26
  submenu?: NileContextMenuData[];
27
+ open?: boolean;
27
28
  }
28
29
  export interface NileContextMenuGroupData {
29
30
  type: 'group';
@@ -61,11 +62,13 @@ export declare class NileContextMenu extends NileElement {
61
62
  trigger: NileContextMenuTrigger;
62
63
  skipOn: string;
63
64
  zIndex: number;
65
+ open: boolean;
64
66
  items: NileContextMenuData[];
65
67
  private get _isDataMode();
66
68
  private _floatingPanel?;
67
69
  private _items;
68
70
  private _open;
71
+ private _pinned;
69
72
  protected _openContext: NileContextMenuOpenContext | null;
70
73
  protected _targetEl: Element | null;
71
74
  private _previouslyFocused;
@@ -78,6 +81,10 @@ export declare class NileContextMenu extends NileElement {
78
81
  private _wasDataMode;
79
82
  connectedCallback(): void;
80
83
  protected updated(changed: PropertyValues): void;
84
+ /** Open anchored to the `for` target (used when the `open` property is set). */
85
+ private _openAtTarget;
86
+ /** Re-anchor a pinned menu to its target after layout changes. */
87
+ private _onPinnedReposition;
81
88
  private _resolveTarget;
82
89
  get targetElement(): Element | null;
83
90
  private _attachTriggers;
@@ -95,7 +102,7 @@ export declare class NileContextMenu extends NileElement {
95
102
  get menuItems(): readonly NileContextMenuItem[];
96
103
  getItemByValue(value: string): NileContextMenuItem | undefined;
97
104
  get isOpen(): boolean;
98
- open(options: NileContextMenuOpenOptions): void;
105
+ openAt(options: NileContextMenuOpenOptions): void;
99
106
  close(reason?: NileContextMenuCloseReason): void;
100
107
  private _enabledItems;
101
108
  private _getFocusedItem;
@@ -110,6 +117,8 @@ export declare class NileContextMenu extends NileElement {
110
117
  private _onDescendantSelect;
111
118
  private _stop;
112
119
  private _onPanelShown;
120
+ /** Open the submenu of every top-level item carrying the `open` attribute. */
121
+ private _openPinnedSubmenus;
113
122
  private _onMenuMouseOver;
114
123
  private _onMenuClick;
115
124
  private _selectItem;