smoothly 0.1.87 → 0.1.88

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 (36) hide show
  1. package/dist/cjs/{index-328edd81.js → index-bc3845e8.js} +253 -182
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/smoothly-accordion_47.cjs.entry.js +291 -198
  4. package/dist/cjs/smoothly-calendar.cjs.entry.js +38 -10
  5. package/dist/cjs/smoothly-display.cjs.entry.js +1 -1
  6. package/dist/cjs/smoothly-input-date-range.cjs.entry.js +8 -9
  7. package/dist/cjs/smoothly-input-date.cjs.entry.js +4 -0
  8. package/dist/cjs/smoothly-input.cjs.entry.js +1 -1
  9. package/dist/cjs/smoothly.cjs.js +1 -1
  10. package/dist/collection/components/calendar/index.js +80 -11
  11. package/dist/collection/components/input-date/index.js +12 -1
  12. package/dist/collection/components/input-date-range/index.js +14 -15
  13. package/dist/custom-elements/index.js +312 -210
  14. package/dist/esm/{index-1be6d668.js → index-37a67c97.js} +253 -182
  15. package/dist/esm/loader.js +1 -1
  16. package/dist/esm/smoothly-accordion_47.entry.js +291 -198
  17. package/dist/esm/smoothly-calendar.entry.js +38 -10
  18. package/dist/esm/smoothly-display.entry.js +1 -1
  19. package/dist/esm/smoothly-input-date-range.entry.js +8 -9
  20. package/dist/esm/smoothly-input-date.entry.js +4 -0
  21. package/dist/esm/smoothly-input.entry.js +1 -1
  22. package/dist/esm/smoothly.js +1 -1
  23. package/dist/smoothly/{index-1be6d668.js → index-37a67c97.js} +253 -182
  24. package/dist/smoothly/p-0286085b.entry.js +1 -0
  25. package/dist/smoothly/smoothly-calendar.entry.js +38 -10
  26. package/dist/smoothly/smoothly-display.entry.js +1 -1
  27. package/dist/smoothly/smoothly-input-date-range.entry.js +8 -9
  28. package/dist/smoothly/smoothly-input-date.entry.js +4 -0
  29. package/dist/smoothly/smoothly-input.entry.js +1 -1
  30. package/dist/smoothly/smoothly.esm.js +1 -1
  31. package/dist/types/components/calendar/index.d.ts +6 -1
  32. package/dist/types/components/input-date/index.d.ts +1 -0
  33. package/dist/types/components/input-date-range/index.d.ts +2 -2
  34. package/dist/types/components.d.ts +3 -1
  35. package/package.json +2 -2
  36. package/dist/smoothly/p-7b43df84.entry.js +0 -1
@@ -15,6 +15,8 @@ let Calendar = class {
15
15
  this.valueChanged = index.createEvent(this, "valueChanged", 7);
16
16
  this.startChanged = index.createEvent(this, "startChanged", 7);
17
17
  this.endChanged = index.createEvent(this, "endChanged", 7);
18
+ this.dateSet = index.createEvent(this, "dateSet", 7);
19
+ this.dateRangeSet = index.createEvent(this, "dateRangeSet", 7);
18
20
  this.value = index$1.dist.Date.now();
19
21
  this.clickCounter = 0;
20
22
  }
@@ -27,13 +29,33 @@ let Calendar = class {
27
29
  onClick(date) {
28
30
  this.valueChanged.emit((this.value = date));
29
31
  this.clickCounter += 1;
30
- if (this.clickCounter % 2 == 1)
31
- this.start = this.end = date;
32
- else {
33
- if (this.start && date > this.start)
34
- this.end = date;
35
- else
32
+ if (this.doubleInput) {
33
+ if (this.clickCounter % 2 == 1)
34
+ this.start = this.end = this.frozenDate = date;
35
+ else {
36
+ if (this.start && date > this.start)
37
+ this.end = date;
38
+ else
39
+ this.start = date;
40
+ }
41
+ }
42
+ !this.doubleInput && this.dateSet.emit(this.value);
43
+ this.doubleInput &&
44
+ this.clickCounter % 2 == 0 &&
45
+ this.start &&
46
+ this.end &&
47
+ this.dateRangeSet.emit({ start: this.start, end: this.end });
48
+ }
49
+ onHover(date) {
50
+ if (this.doubleInput && this.clickCounter % 2 == 1) {
51
+ if (date < this.frozenDate) {
36
52
  this.start = date;
53
+ this.end = this.frozenDate;
54
+ }
55
+ else {
56
+ this.start = this.frozenDate;
57
+ this.end = date;
58
+ }
37
59
  }
38
60
  }
39
61
  render() {
@@ -45,11 +67,17 @@ let Calendar = class {
45
67
  } }),
46
68
  index.h("table", null, index.h("thead", null, index.h("tr", null, generate.weekdays().map(day => (index.h("th", null, day))))), generate.month((_b = this.month) !== null && _b !== void 0 ? _b : this.value).map(week => (index.h("tr", null, week.map(date => {
47
69
  var _a, _b, _c;
48
- return (index.h("td", { tabindex: 1, onClick: (this.min || this.max) && (date < this.min || date > this.max) ? undefined : () => this.onClick(date), class: (date == this.value ? ["selected"] : [])
70
+ return (index.h("td", { tabindex: 1, onMouseOver: () => {
71
+ !this.doubleInput && (this.min || this.max) && (date < this.min || date > this.max)
72
+ ? undefined
73
+ : this.onHover(date);
74
+ }, onClick: (this.min || this.max) && (date < this.min || date > this.max) ? undefined : () => this.onClick(date), class: (date == this.value ? ["selected"] : [])
49
75
  .concat(...(date == index$1.dist.Date.now() ? ["today"] : []), index$1.dist.Date.firstOfMonth((_a = this.month) !== null && _a !== void 0 ? _a : this.value) == index$1.dist.Date.firstOfMonth(date) ? ["currentMonth"] : [], this.doubleInput
50
- ? date >= ((_b = this.start) !== null && _b !== void 0 ? _b : "") && date <= ((_c = this.end) !== null && _c !== void 0 ? _c : "")
51
- ? ["dateRange"]
52
- : []
76
+ ? this.start == date || this.end == date
77
+ ? ["selected"]
78
+ : date >= ((_b = this.start) !== null && _b !== void 0 ? _b : "") && date <= ((_c = this.end) !== null && _c !== void 0 ? _c : "")
79
+ ? ["dateRange"]
80
+ : []
53
81
  : "")
54
82
  .concat(...(this.min || this.max ? (date < this.min || date > this.max ? ["disable"] : []) : ""))
55
83
  .join(" ") }, date.substring(8, 10)));
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-138c41c2.js');
6
- const index$1 = require('./index-328edd81.js');
6
+ const index$1 = require('./index-bc3845e8.js');
7
7
  require('./_commonjsHelpers-10109b76.js');
8
8
  require('./index-ac32385c.js');
9
9
 
@@ -17,16 +17,18 @@ let InputDateRange = class {
17
17
  onValue(next) {
18
18
  this.valueChanged.emit(next);
19
19
  }
20
- onClose(open) {
21
- if (open == false && index$1.dist.Date.is(this.start) && index$1.dist.Date.is(this.end))
22
- this.dateRangeSelected.emit({ start: this.start, end: this.end });
23
- }
24
20
  onStartChanged(event) {
25
21
  this.start = event.detail;
26
22
  }
27
23
  onEndChanged(event) {
28
24
  this.end = event.detail;
29
25
  }
26
+ onDateRangeSet(event) {
27
+ console.log("dateRangeSet", event.detail);
28
+ this.open = false;
29
+ event.stopPropagation();
30
+ index$1.dist.DateRange.is(event.detail) && this.dateRangeSelected.emit(event.detail);
31
+ }
30
32
  render() {
31
33
  var _a;
32
34
  return [
@@ -35,14 +37,11 @@ let InputDateRange = class {
35
37
  this.open ? (index.h("nav", null, index.h("div", { class: "arrow" }), index.h("smoothly-calendar", { doubleInput: true, value: (_a = this.value) !== null && _a !== void 0 ? _a : index$1.dist.Date.now(), onValueChanged: event => {
36
38
  this.value = event.detail;
37
39
  event.stopPropagation();
38
- }, max: this.max, min: this.min }))) : ([]),
40
+ }, start: this.start, end: this.end, max: this.max, min: this.min }))) : ([]),
39
41
  ];
40
42
  }
41
43
  static get watchers() { return {
42
- "value": ["onValue"],
43
- "open": ["onClose"],
44
- "start": ["onClose"],
45
- "end": ["onClose"]
44
+ "value": ["onValue"]
46
45
  }; }
47
46
  };
48
47
  InputDateRange.style = styleCss;
@@ -16,6 +16,10 @@ let InputDate = class {
16
16
  onStart(next) {
17
17
  this.valueChanged.emit(next);
18
18
  }
19
+ dateSetHandler(e) {
20
+ this.open = false;
21
+ e.stopPropagation();
22
+ }
19
23
  render() {
20
24
  var _a;
21
25
  return [
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-138c41c2.js');
6
6
  const index$2 = require('./index-ac32385c.js');
7
- const index$1 = require('./index-328edd81.js');
7
+ const index$1 = require('./index-bc3845e8.js');
8
8
  require('./_commonjsHelpers-10109b76.js');
9
9
 
10
10
  const styleCss = ".sc-smoothly-input-h{display:block;position:relative}[hidden].sc-smoothly-input-h{display:none}label.sc-smoothly-input{position:absolute;left:0.4em;top:0.6em;color:rgb(var(--smoothly-text-tint));opacity:0.8;user-select:none;cursor:inherit;transition:font-size 0.1s;transition-timing-function:ease}input.sc-smoothly-input{padding:1em 0.2em 0.2em 0.2em;width:calc(100% - 0.4em);background:none;border:0;z-index:1;position:relative;font-size:1rem;font-family:var(--smoothly-font-family)}smoothly-icon.sc-smoothly-input{display:none;position:absolute;right:0.2em;top:0.6em}input.sc-smoothly-input:invalid+smoothly-icon.sc-smoothly-input{display:block}.has-value.sc-smoothly-input-h>label.sc-smoothly-input{top:0.3em;top:0.4em;font-size:60%;z-index:0}.sc-smoothly-input-h:focus-within>label.sc-smoothly-input{top:0.3em;top:0.4em;font-size:60%;z-index:0}input.sc-smoothly-input:focus{outline:none}input.sc-smoothly-input:-webkit-autofill,input.sc-smoothly-input:-webkit-autofill:hover,input.sc-smoothly-input:-webkit-autofill:focus,input.sc-smoothly-input:-webkit-autofill:active{box-shadow:0 0 0 30px unset inset !important;-webkit-box-shadow:0 0 0 30px unset inset !important}input.sc-smoothly-input:-webkit-autofill{-webkit-text-fill-color:unset !important}input.sc-smoothly-input:-internal-autofill-previewed,input.sc-smoothly-input:-internal-autofill-selected,textarea.sc-smoothly-input:-internal-autofill-previewed,textarea.sc-smoothly-input:-internal-autofill-selected,select.sc-smoothly-input:-internal-autofill-previewed,select.sc-smoothly-input:-internal-autofill-selected{background-color:none !important;background-image:none !important;color:unset !important}";
@@ -123,5 +123,5 @@ const patchCloneNodeFix = (HTMLElementPrototype) => {
123
123
 
124
124
  patchBrowser().then(options => {
125
125
  appGlobals.globalScripts();
126
- return index.bootstrapLazy([["smoothly-app-demo.cjs",[[0,"smoothly-app-demo",{"baseUrl":[1,"base-url"]}]]],["smoothly-radio-group.cjs",[[4,"smoothly-radio-group",{"orientation":[513]}]]],["smoothly-reorder.cjs",[[0,"smoothly-reorder"]]],["smoothly-trigger-sink.cjs",[[6,"smoothly-trigger-sink",{"context":[16],"destination":[1],"filter":[1]},[[0,"trigger","TriggerListener"]]]]],["smoothly-trigger-source.cjs",[[6,"smoothly-trigger-source",{"listen":[1]}]]],["smoothly-input-demo.cjs",[[0,"smoothly-input-demo"]]],["smoothly-select-demo.cjs",[[2,"smoothly-select-demo",null,[[0,"selectionChanged","handleSelectionChanged"]]]]],["smoothly-table-demo.cjs",[[2,"smoothly-table-demo"]]],["smoothly-display-demo.cjs",[[0,"smoothly-display-demo"]]],["smoothly-app.cjs",[[4,"smoothly-app",{"color":[1]}]]],["smoothly-dialog-demo.cjs",[[0,"smoothly-dialog-demo"]]],["smoothly-icon-demo.cjs",[[2,"smoothly-icon-demo"]]],["smoothly-room.cjs",[[4,"smoothly-room",{"label":[1],"icon":[1],"path":[1],"to":[1]}]]],["smoothly-input-date-range.cjs",[[2,"smoothly-input-date-range",{"value":[1025],"start":[1025],"end":[1025],"max":[1025],"min":[1025],"open":[1028]},[[0,"startChanged","onStartChanged"],[0,"endChanged","onEndChanged"]]]]],["smoothly-notifier.cjs",[[6,"smoothly-notifier",{"notices":[32]},[[0,"notice","onNotice"],[0,"remove","onRemove"]]]]],["smoothly-picker.cjs",[[1,"smoothly-picker",{"maxMenuHeight":[1,"max-menu-height"],"maxHeight":[1,"max-height"],"emptyMenuLabel":[1025,"empty-menu-label"],"multiple":[516],"optionStyle":[8,"option-style"],"options":[16],"labelSetting":[513,"label-setting"],"label":[513],"selections":[1040],"selectNoneName":[1025,"select-none-name"],"isOpen":[32]},[[0,"optionSelect","optionSelectHander"]]]]],["smoothly-dialog.cjs",[[6,"smoothly-dialog",{"color":[513],"open":[1540],"closable":[516],"header":[513]},[[0,"trigger","TriggerListener"]]]]],["smoothly-checkbox.cjs",[[2,"smoothly-checkbox",{"selectAll":[4,"select-all"],"selected":[1540],"disabled":[1540],"t":[32]}]]],["smoothly-submit.cjs",[[6,"smoothly-submit",{"processing":[1540],"color":[513],"expand":[513],"fill":[513],"disabled":[516],"prevent":[4],"submit":[64]},[[0,"click","handleSubmit"]]]]],["smoothly-urlencoded.cjs",[[0,"smoothly-urlencoded",{"data":[1]}]]],["smoothly-accordion.cjs",[[6,"smoothly-accordion",{"value":[1025]},[[0,"smoothlyOpen","handleOpenClose"],[0,"smoothlyClose","handleOpenClose"],[0,"smoothlyAccordionItemDidLoad","onAccordionItemDidLoad"],[0,"smoothlyAccordionItemDidUnload","onAccordionItemDidUnload"]]]]],["smoothly-accordion-item.cjs",[[6,"smoothly-accordion-item",{"name":[1],"brand":[1],"open":[1540]}]]],["smoothly-display-amount.cjs",[[2,"smoothly-display-amount",{"amount":[8],"currency":[1]}]]],["smoothly-frame.cjs",[[2,"smoothly-frame",{"url":[1],"name":[1],"origin":[1],"send":[64]}]]],["smoothly-popup.cjs",[[6,"smoothly-popup",{"visible":[1540],"direction":[1537],"cssVariables":[32]}]]],["smoothly-quiet.cjs",[[6,"smoothly-quiet",{"color":[1]}]]],["smoothly-radio.cjs",[[6,"smoothly-radio",{"name":[1],"value":[1],"checked":[1540],"tabIndex":[2,"tab-index"]}]]],["smoothly-select.cjs",[[6,"smoothly-select",{"identifier":[1],"background":[513],"value":[1025]}]]],["smoothly-tab.cjs",[[6,"smoothly-tab",{"label":[1],"open":[1540]},[[0,"click","onClick"]]]]],["smoothly-tab-switch.cjs",[[6,"smoothly-tab-switch",{"selectedElement":[32]},[[0,"expansionOpen","openChanged"]]]]],["smoothly-table.cjs",[[6,"smoothly-table",null,[[0,"sort","onSort"]]]]],["smoothly-table-cell.cjs",[[6,"smoothly-table-cell"]]],["smoothly-table-expandable-cell.cjs",[[6,"smoothly-table-expandable-cell",{"align":[1],"open":[1540],"beginOpen":[32]},[[0,"click","onClick"]]]]],["smoothly-table-expandable-row.cjs",[[6,"smoothly-table-expandable-row",null,[[0,"expansionLoaded","onExpansionLoaded"],[0,"expansionOpen","onDetailsLoaded"]]]]],["smoothly-table-header.cjs",[[6,"smoothly-table-header",{"name":[1],"sortDirection":[1025,"sort-direction"]},[[0,"click","onClick"]]]]],["smoothly-table-row.cjs",[[6,"smoothly-table-row",{"align":[1],"open":[1540],"beginOpen":[32]},[[0,"click","onClick"]]]]],["smoothly-icon.cjs",[[2,"smoothly-icon",{"color":[513],"fill":[513],"name":[1],"size":[513],"toolTip":[1,"tool-tip"],"document":[32]}]]],["smoothly-selector.cjs",[[6,"smoothly-selector",{"opened":[32],"selectedElement":[32],"missing":[32],"filter":[32]},[[0,"click","onClick"],[0,"itemSelected","onItemSelected"],[0,"keydown","onKeyDown"]]]]],["smoothly-input-date.cjs",[[6,"smoothly-input-date",{"value":[1025],"open":[1028],"max":[1025],"min":[1025]}]]],["smoothly-notification.cjs",[[2,"smoothly-notification",{"notice":[16],"tick":[32]},[[0,"trigger","onTrigger"]]]]],["smoothly-option.cjs",[[1,"smoothly-option",{"aliases":[513],"dataHighlight":[1540,"data-highlight"],"name":[1537],"value":[1537]}]]],["smoothly-menu-options.cjs",[[1,"smoothly-menu-options",{"emptyMenuLabel":[1025,"empty-menu-label"],"maxMenuHeight":[1,"max-menu-height"],"order":[4],"optionStyle":[8,"option-style"],"options":[1040],"resetHighlightOnOptionsChange":[1028,"reset-highlight-on-options-change"],"filteredOptions":[32],"highlightIndex":[32],"moveHighlight":[64],"setHighlight":[64],"getHighlighted":[64],"filterOptions":[64]},[[0,"optionHover","optionHoverHandler"]]]]],["smoothly-display.cjs",[[2,"smoothly-display",{"type":[1],"value":[8],"currency":[1],"country":[1]}]]],["smoothly-display-date-time.cjs",[[2,"smoothly-display-date-time",{"datetime":[1]}]]],["smoothly-spinner.cjs",[[2,"smoothly-spinner",{"active":[516]}]]],["smoothly-tuple.cjs",[[0,"smoothly-tuple",{"tuple":[16]}]]],["smoothly-item.cjs",[[6,"smoothly-item",{"value":[8],"selected":[1540],"filter":[64]},[[0,"click","onClick"]]]]],["smoothly-input-month.cjs",[[2,"smoothly-input-month",{"value":[1025]}]]],["smoothly-calendar.cjs",[[2,"smoothly-calendar",{"month":[1025],"value":[1025],"start":[1025],"end":[1025],"max":[1025],"min":[1025],"doubleInput":[516,"double-input"]}]]],["smoothly-input.cjs",[[6,"smoothly-input",{"name":[513],"value":[1032],"type":[513],"required":[1540],"minLength":[1026,"min-length"],"maxLength":[1026,"max-length"],"autocomplete":[1028],"pattern":[1040],"placeholder":[1025],"disabled":[1028],"currency":[513],"setKeepFocusOnReRender":[64],"setSelectionRange":[64]}]]],["smoothly-trigger.cjs",[[6,"smoothly-trigger",{"color":[513],"expand":[513],"fill":[513],"disabled":[516],"type":[513],"name":[1],"value":[8]},[[0,"click","onClick"]]]]]], options);
126
+ return index.bootstrapLazy([["smoothly-app-demo.cjs",[[0,"smoothly-app-demo",{"baseUrl":[1,"base-url"]}]]],["smoothly-radio-group.cjs",[[4,"smoothly-radio-group",{"orientation":[513]}]]],["smoothly-reorder.cjs",[[0,"smoothly-reorder"]]],["smoothly-trigger-sink.cjs",[[6,"smoothly-trigger-sink",{"context":[16],"destination":[1],"filter":[1]},[[0,"trigger","TriggerListener"]]]]],["smoothly-trigger-source.cjs",[[6,"smoothly-trigger-source",{"listen":[1]}]]],["smoothly-input-demo.cjs",[[0,"smoothly-input-demo"]]],["smoothly-select-demo.cjs",[[2,"smoothly-select-demo",null,[[0,"selectionChanged","handleSelectionChanged"]]]]],["smoothly-table-demo.cjs",[[2,"smoothly-table-demo"]]],["smoothly-display-demo.cjs",[[0,"smoothly-display-demo"]]],["smoothly-app.cjs",[[4,"smoothly-app",{"color":[1]}]]],["smoothly-dialog-demo.cjs",[[0,"smoothly-dialog-demo"]]],["smoothly-icon-demo.cjs",[[2,"smoothly-icon-demo"]]],["smoothly-room.cjs",[[4,"smoothly-room",{"label":[1],"icon":[1],"path":[1],"to":[1]}]]],["smoothly-input-date-range.cjs",[[2,"smoothly-input-date-range",{"value":[1025],"start":[1025],"end":[1025],"max":[1025],"min":[1025],"open":[1028]},[[0,"startChanged","onStartChanged"],[0,"endChanged","onEndChanged"],[0,"dateRangeSet","onDateRangeSet"]]]]],["smoothly-notifier.cjs",[[6,"smoothly-notifier",{"notices":[32]},[[0,"notice","onNotice"],[0,"remove","onRemove"]]]]],["smoothly-picker.cjs",[[1,"smoothly-picker",{"maxMenuHeight":[1,"max-menu-height"],"maxHeight":[1,"max-height"],"emptyMenuLabel":[1025,"empty-menu-label"],"multiple":[516],"optionStyle":[8,"option-style"],"options":[16],"labelSetting":[513,"label-setting"],"label":[513],"selections":[1040],"selectNoneName":[1025,"select-none-name"],"isOpen":[32]},[[0,"optionSelect","optionSelectHander"]]]]],["smoothly-dialog.cjs",[[6,"smoothly-dialog",{"color":[513],"open":[1540],"closable":[516],"header":[513]},[[0,"trigger","TriggerListener"]]]]],["smoothly-checkbox.cjs",[[2,"smoothly-checkbox",{"selectAll":[4,"select-all"],"selected":[1540],"disabled":[1540],"t":[32]}]]],["smoothly-submit.cjs",[[6,"smoothly-submit",{"processing":[1540],"color":[513],"expand":[513],"fill":[513],"disabled":[516],"prevent":[4],"submit":[64]},[[0,"click","handleSubmit"]]]]],["smoothly-urlencoded.cjs",[[0,"smoothly-urlencoded",{"data":[1]}]]],["smoothly-accordion.cjs",[[6,"smoothly-accordion",{"value":[1025]},[[0,"smoothlyOpen","handleOpenClose"],[0,"smoothlyClose","handleOpenClose"],[0,"smoothlyAccordionItemDidLoad","onAccordionItemDidLoad"],[0,"smoothlyAccordionItemDidUnload","onAccordionItemDidUnload"]]]]],["smoothly-accordion-item.cjs",[[6,"smoothly-accordion-item",{"name":[1],"brand":[1],"open":[1540]}]]],["smoothly-display-amount.cjs",[[2,"smoothly-display-amount",{"amount":[8],"currency":[1]}]]],["smoothly-frame.cjs",[[2,"smoothly-frame",{"url":[1],"name":[1],"origin":[1],"send":[64]}]]],["smoothly-popup.cjs",[[6,"smoothly-popup",{"visible":[1540],"direction":[1537],"cssVariables":[32]}]]],["smoothly-quiet.cjs",[[6,"smoothly-quiet",{"color":[1]}]]],["smoothly-radio.cjs",[[6,"smoothly-radio",{"name":[1],"value":[1],"checked":[1540],"tabIndex":[2,"tab-index"]}]]],["smoothly-select.cjs",[[6,"smoothly-select",{"identifier":[1],"background":[513],"value":[1025]}]]],["smoothly-tab.cjs",[[6,"smoothly-tab",{"label":[1],"open":[1540]},[[0,"click","onClick"]]]]],["smoothly-tab-switch.cjs",[[6,"smoothly-tab-switch",{"selectedElement":[32]},[[0,"expansionOpen","openChanged"]]]]],["smoothly-table.cjs",[[6,"smoothly-table",null,[[0,"sort","onSort"]]]]],["smoothly-table-cell.cjs",[[6,"smoothly-table-cell"]]],["smoothly-table-expandable-cell.cjs",[[6,"smoothly-table-expandable-cell",{"align":[1],"open":[1540],"beginOpen":[32]},[[0,"click","onClick"]]]]],["smoothly-table-expandable-row.cjs",[[6,"smoothly-table-expandable-row",null,[[0,"expansionLoaded","onExpansionLoaded"],[0,"expansionOpen","onDetailsLoaded"]]]]],["smoothly-table-header.cjs",[[6,"smoothly-table-header",{"name":[1],"sortDirection":[1025,"sort-direction"]},[[0,"click","onClick"]]]]],["smoothly-table-row.cjs",[[6,"smoothly-table-row",{"align":[1],"open":[1540],"beginOpen":[32]},[[0,"click","onClick"]]]]],["smoothly-icon.cjs",[[2,"smoothly-icon",{"color":[513],"fill":[513],"name":[1],"size":[513],"toolTip":[1,"tool-tip"],"document":[32]}]]],["smoothly-selector.cjs",[[6,"smoothly-selector",{"opened":[32],"selectedElement":[32],"missing":[32],"filter":[32]},[[0,"click","onClick"],[0,"itemSelected","onItemSelected"],[0,"keydown","onKeyDown"]]]]],["smoothly-input-date.cjs",[[6,"smoothly-input-date",{"value":[1025],"open":[1028],"max":[1025],"min":[1025]},[[0,"dateSet","dateSetHandler"]]]]],["smoothly-notification.cjs",[[2,"smoothly-notification",{"notice":[16],"tick":[32]},[[0,"trigger","onTrigger"]]]]],["smoothly-option.cjs",[[1,"smoothly-option",{"aliases":[513],"dataHighlight":[1540,"data-highlight"],"name":[1537],"value":[1537]}]]],["smoothly-menu-options.cjs",[[1,"smoothly-menu-options",{"emptyMenuLabel":[1025,"empty-menu-label"],"maxMenuHeight":[1,"max-menu-height"],"order":[4],"optionStyle":[8,"option-style"],"options":[1040],"resetHighlightOnOptionsChange":[1028,"reset-highlight-on-options-change"],"filteredOptions":[32],"highlightIndex":[32],"moveHighlight":[64],"setHighlight":[64],"getHighlighted":[64],"filterOptions":[64]},[[0,"optionHover","optionHoverHandler"]]]]],["smoothly-display.cjs",[[2,"smoothly-display",{"type":[1],"value":[8],"currency":[1],"country":[1]}]]],["smoothly-display-date-time.cjs",[[2,"smoothly-display-date-time",{"datetime":[1]}]]],["smoothly-spinner.cjs",[[2,"smoothly-spinner",{"active":[516]}]]],["smoothly-tuple.cjs",[[0,"smoothly-tuple",{"tuple":[16]}]]],["smoothly-item.cjs",[[6,"smoothly-item",{"value":[8],"selected":[1540],"filter":[64]},[[0,"click","onClick"]]]]],["smoothly-input-month.cjs",[[2,"smoothly-input-month",{"value":[1025]}]]],["smoothly-calendar.cjs",[[2,"smoothly-calendar",{"month":[1025],"value":[1025],"start":[1025],"end":[1025],"max":[1025],"min":[1025],"doubleInput":[516,"double-input"],"firstSelected":[32]}]]],["smoothly-input.cjs",[[6,"smoothly-input",{"name":[513],"value":[1032],"type":[513],"required":[1540],"minLength":[1026,"min-length"],"maxLength":[1026,"max-length"],"autocomplete":[1028],"pattern":[1040],"placeholder":[1025],"disabled":[1028],"currency":[513],"setKeepFocusOnReRender":[64],"setSelectionRange":[64]}]]],["smoothly-trigger.cjs",[[6,"smoothly-trigger",{"color":[513],"expand":[513],"fill":[513],"disabled":[516],"type":[513],"name":[1],"value":[8]},[[0,"click","onClick"]]]]]], options);
127
127
  });
@@ -1,4 +1,4 @@
1
- import { Component, Element, Event, h, Prop, Watch } from "@stencil/core";
1
+ import { Component, Element, Event, h, Prop, State, Watch } from "@stencil/core";
2
2
  import { Date } from "isoly";
3
3
  import * as generate from "./generate";
4
4
  export class Calendar {
@@ -15,13 +15,33 @@ export class Calendar {
15
15
  onClick(date) {
16
16
  this.valueChanged.emit((this.value = date));
17
17
  this.clickCounter += 1;
18
- if (this.clickCounter % 2 == 1)
19
- this.start = this.end = date;
20
- else {
21
- if (this.start && date > this.start)
22
- this.end = date;
23
- else
18
+ if (this.doubleInput) {
19
+ if (this.clickCounter % 2 == 1)
20
+ this.start = this.end = this.frozenDate = date;
21
+ else {
22
+ if (this.start && date > this.start)
23
+ this.end = date;
24
+ else
25
+ this.start = date;
26
+ }
27
+ }
28
+ !this.doubleInput && this.dateSet.emit(this.value);
29
+ this.doubleInput &&
30
+ this.clickCounter % 2 == 0 &&
31
+ this.start &&
32
+ this.end &&
33
+ this.dateRangeSet.emit({ start: this.start, end: this.end });
34
+ }
35
+ onHover(date) {
36
+ if (this.doubleInput && this.clickCounter % 2 == 1) {
37
+ if (date < this.frozenDate) {
24
38
  this.start = date;
39
+ this.end = this.frozenDate;
40
+ }
41
+ else {
42
+ this.start = this.frozenDate;
43
+ this.end = date;
44
+ }
25
45
  }
26
46
  }
27
47
  render() {
@@ -36,11 +56,17 @@ export class Calendar {
36
56
  h("tr", null, generate.weekdays().map(day => (h("th", null, day))))),
37
57
  generate.month((_b = this.month) !== null && _b !== void 0 ? _b : this.value).map(week => (h("tr", null, week.map(date => {
38
58
  var _a, _b, _c;
39
- return (h("td", { tabindex: 1, onClick: (this.min || this.max) && (date < this.min || date > this.max) ? undefined : () => this.onClick(date), class: (date == this.value ? ["selected"] : [])
59
+ return (h("td", { tabindex: 1, onMouseOver: () => {
60
+ !this.doubleInput && (this.min || this.max) && (date < this.min || date > this.max)
61
+ ? undefined
62
+ : this.onHover(date);
63
+ }, onClick: (this.min || this.max) && (date < this.min || date > this.max) ? undefined : () => this.onClick(date), class: (date == this.value ? ["selected"] : [])
40
64
  .concat(...(date == Date.now() ? ["today"] : []), Date.firstOfMonth((_a = this.month) !== null && _a !== void 0 ? _a : this.value) == Date.firstOfMonth(date) ? ["currentMonth"] : [], this.doubleInput
41
- ? date >= ((_b = this.start) !== null && _b !== void 0 ? _b : "") && date <= ((_c = this.end) !== null && _c !== void 0 ? _c : "")
42
- ? ["dateRange"]
43
- : []
65
+ ? this.start == date || this.end == date
66
+ ? ["selected"]
67
+ : date >= ((_b = this.start) !== null && _b !== void 0 ? _b : "") && date <= ((_c = this.end) !== null && _c !== void 0 ? _c : "")
68
+ ? ["dateRange"]
69
+ : []
44
70
  : "")
45
71
  .concat(...(this.min || this.max ? (date < this.min || date > this.max ? ["disable"] : []) : ""))
46
72
  .join(" ") }, date.substring(8, 10)));
@@ -207,6 +233,9 @@ export class Calendar {
207
233
  "reflect": true
208
234
  }
209
235
  }; }
236
+ static get states() { return {
237
+ "firstSelected": {}
238
+ }; }
210
239
  static get events() { return [{
211
240
  "method": "valueChanged",
212
241
  "name": "valueChanged",
@@ -267,6 +296,46 @@ export class Calendar {
267
296
  }
268
297
  }
269
298
  }
299
+ }, {
300
+ "method": "dateSet",
301
+ "name": "dateSet",
302
+ "bubbles": true,
303
+ "cancelable": true,
304
+ "composed": true,
305
+ "docs": {
306
+ "tags": [],
307
+ "text": ""
308
+ },
309
+ "complexType": {
310
+ "original": "Date",
311
+ "resolved": "string",
312
+ "references": {
313
+ "Date": {
314
+ "location": "import",
315
+ "path": "isoly"
316
+ }
317
+ }
318
+ }
319
+ }, {
320
+ "method": "dateRangeSet",
321
+ "name": "dateRangeSet",
322
+ "bubbles": true,
323
+ "cancelable": true,
324
+ "composed": true,
325
+ "docs": {
326
+ "tags": [],
327
+ "text": ""
328
+ },
329
+ "complexType": {
330
+ "original": "DateRange",
331
+ "resolved": "DateRange",
332
+ "references": {
333
+ "DateRange": {
334
+ "location": "import",
335
+ "path": "isoly"
336
+ }
337
+ }
338
+ }
270
339
  }]; }
271
340
  static get elementRef() { return "element"; }
272
341
  static get watchers() { return [{
@@ -1,9 +1,13 @@
1
- import { Component, Event, h, Prop, Watch } from "@stencil/core";
1
+ import { Component, Event, h, Listen, Prop, Watch } from "@stencil/core";
2
2
  import { Date } from "isoly";
3
3
  export class InputDate {
4
4
  onStart(next) {
5
5
  this.valueChanged.emit(next);
6
6
  }
7
+ dateSetHandler(e) {
8
+ this.open = false;
9
+ e.stopPropagation();
10
+ }
7
11
  render() {
8
12
  var _a;
9
13
  return [
@@ -136,4 +140,11 @@ export class InputDate {
136
140
  "propName": "value",
137
141
  "methodName": "onStart"
138
142
  }]; }
143
+ static get listeners() { return [{
144
+ "name": "dateSet",
145
+ "method": "dateSetHandler",
146
+ "target": undefined,
147
+ "capture": false,
148
+ "passive": false
149
+ }]; }
139
150
  }
@@ -1,19 +1,21 @@
1
1
  import { Component, Event, h, Listen, Prop, Watch } from "@stencil/core";
2
- import { Date } from "isoly";
2
+ import { Date, DateRange } from "isoly";
3
3
  export class InputDateRange {
4
4
  onValue(next) {
5
5
  this.valueChanged.emit(next);
6
6
  }
7
- onClose(open) {
8
- if (open == false && Date.is(this.start) && Date.is(this.end))
9
- this.dateRangeSelected.emit({ start: this.start, end: this.end });
10
- }
11
7
  onStartChanged(event) {
12
8
  this.start = event.detail;
13
9
  }
14
10
  onEndChanged(event) {
15
11
  this.end = event.detail;
16
12
  }
13
+ onDateRangeSet(event) {
14
+ console.log("dateRangeSet", event.detail);
15
+ this.open = false;
16
+ event.stopPropagation();
17
+ DateRange.is(event.detail) && this.dateRangeSelected.emit(event.detail);
18
+ }
17
19
  render() {
18
20
  var _a;
19
21
  return [
@@ -26,7 +28,7 @@ export class InputDateRange {
26
28
  h("smoothly-calendar", { doubleInput: true, value: (_a = this.value) !== null && _a !== void 0 ? _a : Date.now(), onValueChanged: event => {
27
29
  this.value = event.detail;
28
30
  event.stopPropagation();
29
- }, max: this.max, min: this.min }))) : ([]),
31
+ }, start: this.start, end: this.end, max: this.max, min: this.min }))) : ([]),
30
32
  ];
31
33
  }
32
34
  static get is() { return "smoothly-input-date-range"; }
@@ -210,15 +212,6 @@ export class InputDateRange {
210
212
  static get watchers() { return [{
211
213
  "propName": "value",
212
214
  "methodName": "onValue"
213
- }, {
214
- "propName": "open",
215
- "methodName": "onClose"
216
- }, {
217
- "propName": "start",
218
- "methodName": "onClose"
219
- }, {
220
- "propName": "end",
221
- "methodName": "onClose"
222
215
  }]; }
223
216
  static get listeners() { return [{
224
217
  "name": "startChanged",
@@ -232,5 +225,11 @@ export class InputDateRange {
232
225
  "target": undefined,
233
226
  "capture": false,
234
227
  "passive": false
228
+ }, {
229
+ "name": "dateRangeSet",
230
+ "method": "onDateRangeSet",
231
+ "target": undefined,
232
+ "capture": false,
233
+ "passive": false
235
234
  }]; }
236
235
  }