@melodicdev/components 1.5.9 → 1.5.11
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/assets/melodic-components.js +99 -74
- package/assets/melodic-components.js.map +1 -1
- package/assets/melodic-components.min.js +556 -536
- package/lib/components/forms/autocomplete/autocomplete.component.d.ts +4 -0
- package/lib/components/forms/autocomplete/autocomplete.component.d.ts.map +1 -1
- package/lib/components/forms/autocomplete/autocomplete.component.js +10 -3
- package/lib/components/forms/date-picker/date-picker.component.d.ts +8 -2
- package/lib/components/forms/date-picker/date-picker.component.d.ts.map +1 -1
- package/lib/components/forms/date-picker/date-picker.component.js +32 -21
- package/lib/components/forms/date-picker/date-picker.styles.d.ts.map +1 -1
- package/lib/components/forms/date-picker/date-picker.styles.js +53 -27
- package/lib/components/forms/date-picker/date-picker.template.d.ts.map +1 -1
- package/lib/components/forms/date-picker/date-picker.template.js +27 -17
- package/lib/components/forms/date-time-picker/date-time-picker.component.d.ts.map +1 -1
- package/lib/components/forms/date-time-picker/date-time-picker.component.js +47 -0
- package/lib/components/forms/time-picker/time-picker.component.d.ts +5 -0
- package/lib/components/forms/time-picker/time-picker.component.d.ts.map +1 -1
- package/lib/components/forms/time-picker/time-picker.component.js +29 -5
- package/lib/components/forms/time-picker/time-picker.styles.d.ts.map +1 -1
- package/lib/components/forms/time-picker/time-picker.styles.js +53 -27
- package/lib/components/forms/time-picker/time-picker.template.d.ts.map +1 -1
- package/lib/components/forms/time-picker/time-picker.template.js +28 -17
- package/package.json +1 -1
|
@@ -9530,23 +9530,33 @@ function datePickerTemplate(c) {
|
|
|
9530
9530
|
</label>
|
|
9531
9531
|
`)}
|
|
9532
9532
|
|
|
9533
|
-
<
|
|
9534
|
-
|
|
9535
|
-
|
|
9536
|
-
|
|
9537
|
-
|
|
9538
|
-
|
|
9539
|
-
|
|
9540
|
-
|
|
9541
|
-
|
|
9542
|
-
|
|
9543
|
-
|
|
9544
|
-
|
|
9545
|
-
|
|
9546
|
-
|
|
9547
|
-
|
|
9548
|
-
|
|
9549
|
-
|
|
9533
|
+
<div class="ml-date-picker__trigger">
|
|
9534
|
+
<input
|
|
9535
|
+
type="date"
|
|
9536
|
+
class="ml-date-picker__input"
|
|
9537
|
+
.value=${c.value}
|
|
9538
|
+
min=${c.min}
|
|
9539
|
+
max=${c.max}
|
|
9540
|
+
placeholder=${c.placeholder}
|
|
9541
|
+
?disabled=${c.disabled}
|
|
9542
|
+
?required=${c.required}
|
|
9543
|
+
aria-haspopup="dialog"
|
|
9544
|
+
aria-expanded=${c.isOpen ? "true" : "false"}
|
|
9545
|
+
@change=${c.handleInput}
|
|
9546
|
+
@click=${c.handleInputClick}
|
|
9547
|
+
@keydown=${c.handleKeyDown}
|
|
9548
|
+
/>
|
|
9549
|
+
<button
|
|
9550
|
+
type="button"
|
|
9551
|
+
class="ml-date-picker__calendar-btn"
|
|
9552
|
+
?disabled=${c.disabled}
|
|
9553
|
+
aria-label="Open calendar"
|
|
9554
|
+
tabindex="-1"
|
|
9555
|
+
@click=${c.toggleCalendar}
|
|
9556
|
+
>
|
|
9557
|
+
<ml-icon icon="calendar-blank" size="sm" class="ml-date-picker__icon"></ml-icon>
|
|
9558
|
+
</button>
|
|
9559
|
+
</div>
|
|
9550
9560
|
|
|
9551
9561
|
<div class="ml-date-picker__popover" popover="auto">
|
|
9552
9562
|
<ml-calendar
|
|
@@ -9637,32 +9647,24 @@ const datePickerStyles = () => css`
|
|
|
9637
9647
|
margin-left: var(--ml-space-0-5);
|
|
9638
9648
|
}
|
|
9639
9649
|
|
|
9640
|
-
/* Trigger
|
|
9650
|
+
/* Trigger wrapper */
|
|
9641
9651
|
.ml-date-picker__trigger {
|
|
9642
9652
|
display: flex;
|
|
9643
9653
|
align-items: center;
|
|
9644
|
-
gap: var(--ml-date-picker-gap);
|
|
9645
9654
|
width: 100%;
|
|
9646
|
-
padding: var(--ml-date-picker-padding);
|
|
9647
9655
|
border: var(--ml-date-picker-border-width) solid var(--ml-date-picker-border-color);
|
|
9648
9656
|
border-radius: var(--ml-date-picker-border-radius);
|
|
9649
9657
|
background-color: var(--ml-date-picker-bg);
|
|
9650
|
-
color: var(--ml-date-picker-color);
|
|
9651
|
-
cursor: pointer;
|
|
9652
|
-
font-family: var(--ml-date-picker-font-family);
|
|
9653
|
-
font-size: var(--ml-date-picker-font-size);
|
|
9654
|
-
text-align: left;
|
|
9655
9658
|
transition:
|
|
9656
9659
|
border-color var(--ml-date-picker-transition-duration) var(--ml-date-picker-transition-easing),
|
|
9657
9660
|
box-shadow var(--ml-date-picker-transition-duration) var(--ml-date-picker-transition-easing);
|
|
9658
9661
|
}
|
|
9659
9662
|
|
|
9660
|
-
.ml-date-picker__trigger:hover:not(:disabled) {
|
|
9663
|
+
.ml-date-picker__trigger:hover:not(:has(:disabled)) {
|
|
9661
9664
|
border-color: var(--ml-date-picker-hover-border-color);
|
|
9662
9665
|
}
|
|
9663
9666
|
|
|
9664
|
-
.ml-date-picker__trigger:focus-
|
|
9665
|
-
outline: none;
|
|
9667
|
+
.ml-date-picker__trigger:focus-within {
|
|
9666
9668
|
border-color: var(--ml-date-picker-focus-border-color);
|
|
9667
9669
|
box-shadow: var(--ml-date-picker-focus-shadow);
|
|
9668
9670
|
}
|
|
@@ -9676,7 +9678,7 @@ const datePickerStyles = () => css`
|
|
|
9676
9678
|
border-color: var(--ml-date-picker-error-border-color);
|
|
9677
9679
|
}
|
|
9678
9680
|
|
|
9679
|
-
.ml-date-picker--error .ml-date-picker__trigger:focus-
|
|
9681
|
+
.ml-date-picker--error .ml-date-picker__trigger:focus-within,
|
|
9680
9682
|
.ml-date-picker--error.ml-date-picker--open .ml-date-picker__trigger {
|
|
9681
9683
|
box-shadow: var(--ml-date-picker-error-focus-shadow);
|
|
9682
9684
|
}
|
|
@@ -9687,39 +9689,73 @@ const datePickerStyles = () => css`
|
|
|
9687
9689
|
background-color: var(--ml-date-picker-disabled-bg);
|
|
9688
9690
|
}
|
|
9689
9691
|
|
|
9692
|
+
/* Date input */
|
|
9693
|
+
.ml-date-picker__input {
|
|
9694
|
+
flex: 1;
|
|
9695
|
+
min-width: 0;
|
|
9696
|
+
border: none;
|
|
9697
|
+
outline: none;
|
|
9698
|
+
background: transparent;
|
|
9699
|
+
color: var(--ml-date-picker-color);
|
|
9700
|
+
font-family: var(--ml-date-picker-font-family);
|
|
9701
|
+
font-size: var(--ml-date-picker-font-size);
|
|
9702
|
+
padding: var(--ml-date-picker-padding);
|
|
9703
|
+
}
|
|
9704
|
+
|
|
9705
|
+
/* Hide native date picker indicator across browsers */
|
|
9706
|
+
.ml-date-picker__input::-webkit-calendar-picker-indicator {
|
|
9707
|
+
display: none;
|
|
9708
|
+
-webkit-appearance: none;
|
|
9709
|
+
}
|
|
9710
|
+
|
|
9711
|
+
.ml-date-picker__input::-webkit-date-and-time-value {
|
|
9712
|
+
text-align: left;
|
|
9713
|
+
}
|
|
9714
|
+
|
|
9715
|
+
.ml-date-picker__input:disabled {
|
|
9716
|
+
cursor: not-allowed;
|
|
9717
|
+
}
|
|
9718
|
+
|
|
9690
9719
|
/* Sizes */
|
|
9691
|
-
.ml-date-picker--sm .ml-date-
|
|
9720
|
+
.ml-date-picker--sm .ml-date-picker__input {
|
|
9692
9721
|
padding: var(--ml-space-2) var(--ml-space-3);
|
|
9693
9722
|
font-size: var(--ml-text-sm);
|
|
9694
9723
|
}
|
|
9695
9724
|
|
|
9696
|
-
.ml-date-picker--md .ml-date-
|
|
9725
|
+
.ml-date-picker--md .ml-date-picker__input {
|
|
9697
9726
|
padding: var(--ml-space-2-5) var(--ml-space-3-5);
|
|
9698
9727
|
font-size: var(--ml-text-sm);
|
|
9699
9728
|
}
|
|
9700
9729
|
|
|
9701
|
-
.ml-date-picker--lg .ml-date-
|
|
9730
|
+
.ml-date-picker--lg .ml-date-picker__input {
|
|
9702
9731
|
padding: var(--ml-space-3) var(--ml-space-3-5);
|
|
9703
9732
|
font-size: var(--ml-text-base);
|
|
9704
9733
|
}
|
|
9705
9734
|
|
|
9706
|
-
/*
|
|
9707
|
-
.ml-date-
|
|
9708
|
-
|
|
9735
|
+
/* Calendar button */
|
|
9736
|
+
.ml-date-picker__calendar-btn {
|
|
9737
|
+
display: flex;
|
|
9738
|
+
align-items: center;
|
|
9739
|
+
justify-content: center;
|
|
9740
|
+
border: none;
|
|
9741
|
+
background: transparent;
|
|
9742
|
+
cursor: pointer;
|
|
9743
|
+
padding: 0 var(--ml-space-3) 0 0;
|
|
9709
9744
|
color: var(--ml-date-picker-icon-color);
|
|
9745
|
+
transition: color var(--ml-date-picker-transition-duration) var(--ml-date-picker-transition-easing);
|
|
9710
9746
|
}
|
|
9711
9747
|
|
|
9712
|
-
|
|
9713
|
-
|
|
9714
|
-
flex: 1;
|
|
9715
|
-
min-width: 0;
|
|
9716
|
-
overflow: hidden;
|
|
9717
|
-
text-overflow: ellipsis;
|
|
9718
|
-
white-space: nowrap;
|
|
9748
|
+
.ml-date-picker__calendar-btn:hover:not(:disabled) {
|
|
9749
|
+
color: var(--ml-date-picker-color);
|
|
9719
9750
|
}
|
|
9720
9751
|
|
|
9721
|
-
.ml-date-
|
|
9722
|
-
|
|
9752
|
+
.ml-date-picker__calendar-btn:disabled {
|
|
9753
|
+
cursor: not-allowed;
|
|
9754
|
+
}
|
|
9755
|
+
|
|
9756
|
+
/* Icon */
|
|
9757
|
+
.ml-date-picker__icon {
|
|
9758
|
+
flex-shrink: 0;
|
|
9723
9759
|
}
|
|
9724
9760
|
|
|
9725
9761
|
/* Popover */
|
|
@@ -9771,29 +9807,6 @@ const datePickerStyles = () => css`
|
|
|
9771
9807
|
color: var(--ml-date-picker-error-color);
|
|
9772
9808
|
}
|
|
9773
9809
|
`;
|
|
9774
|
-
var MONTH_SHORT = [
|
|
9775
|
-
"Jan",
|
|
9776
|
-
"Feb",
|
|
9777
|
-
"Mar",
|
|
9778
|
-
"Apr",
|
|
9779
|
-
"May",
|
|
9780
|
-
"Jun",
|
|
9781
|
-
"Jul",
|
|
9782
|
-
"Aug",
|
|
9783
|
-
"Sep",
|
|
9784
|
-
"Oct",
|
|
9785
|
-
"Nov",
|
|
9786
|
-
"Dec"
|
|
9787
|
-
];
|
|
9788
|
-
function formatDisplay(iso) {
|
|
9789
|
-
if (!iso) return "";
|
|
9790
|
-
const parts = iso.split("-");
|
|
9791
|
-
if (parts.length !== 3) return iso;
|
|
9792
|
-
const month = parseInt(parts[1], 10) - 1;
|
|
9793
|
-
const day = parseInt(parts[2], 10);
|
|
9794
|
-
const year = parseInt(parts[0], 10);
|
|
9795
|
-
return `${MONTH_SHORT[month]} ${day}, ${year}`;
|
|
9796
|
-
}
|
|
9797
9810
|
var DatePickerComponent = class DatePickerComponent$1 {
|
|
9798
9811
|
constructor() {
|
|
9799
9812
|
this.value = "";
|
|
@@ -9813,6 +9826,13 @@ var DatePickerComponent = class DatePickerComponent$1 {
|
|
|
9813
9826
|
const popoverEl = this.getPopoverEl();
|
|
9814
9827
|
if (popoverEl) popoverEl.togglePopover();
|
|
9815
9828
|
};
|
|
9829
|
+
this.handleInput = (event) => {
|
|
9830
|
+
const input = event.target;
|
|
9831
|
+
this.commitValue(input.value);
|
|
9832
|
+
};
|
|
9833
|
+
this.handleInputClick = () => {
|
|
9834
|
+
if (!this.isOpen) this.toggleCalendar();
|
|
9835
|
+
};
|
|
9816
9836
|
this.handleDateSelect = (event) => {
|
|
9817
9837
|
event.stopPropagation();
|
|
9818
9838
|
const detail = event.detail;
|
|
@@ -9823,9 +9843,14 @@ var DatePickerComponent = class DatePickerComponent$1 {
|
|
|
9823
9843
|
if (event.key === "Escape" && this.isOpen) {
|
|
9824
9844
|
event.preventDefault();
|
|
9825
9845
|
this.closePopover();
|
|
9826
|
-
}
|
|
9846
|
+
}
|
|
9847
|
+
if (event.key === " ") {
|
|
9827
9848
|
event.preventDefault();
|
|
9828
|
-
this.toggleCalendar();
|
|
9849
|
+
if (!this.isOpen) this.toggleCalendar();
|
|
9850
|
+
}
|
|
9851
|
+
if (event.key === "F4" || event.altKey && event.key === "ArrowDown") {
|
|
9852
|
+
event.preventDefault();
|
|
9853
|
+
if (!this.isOpen) this.toggleCalendar();
|
|
9829
9854
|
}
|
|
9830
9855
|
};
|
|
9831
9856
|
this._handleToggle = (event) => {
|
|
@@ -9840,9 +9865,6 @@ var DatePickerComponent = class DatePickerComponent$1 {
|
|
|
9840
9865
|
}
|
|
9841
9866
|
};
|
|
9842
9867
|
}
|
|
9843
|
-
get displayValue() {
|
|
9844
|
-
return formatDisplay(this.value);
|
|
9845
|
-
}
|
|
9846
9868
|
onCreate() {
|
|
9847
9869
|
const popoverEl = this.getPopoverEl();
|
|
9848
9870
|
if (popoverEl) popoverEl.addEventListener("toggle", this._handleToggle);
|
|
@@ -9885,8 +9907,11 @@ var DatePickerComponent = class DatePickerComponent$1 {
|
|
|
9885
9907
|
popoverEl.style.top = `${y}px`;
|
|
9886
9908
|
}
|
|
9887
9909
|
returnFocus() {
|
|
9888
|
-
const
|
|
9889
|
-
if (
|
|
9910
|
+
const inputEl = this.getInputEl();
|
|
9911
|
+
if (inputEl) inputEl.focus();
|
|
9912
|
+
}
|
|
9913
|
+
getInputEl() {
|
|
9914
|
+
return this.elementRef.shadowRoot?.querySelector(".ml-date-picker__input");
|
|
9890
9915
|
}
|
|
9891
9916
|
getTriggerEl() {
|
|
9892
9917
|
return this.elementRef.shadowRoot?.querySelector(".ml-date-picker__trigger");
|