framework7 7.0.0-beta.15 → 7.0.0-beta.20
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/components/accordion/accordion.lazy.js +1 -1
- package/components/actions/actions.js +10 -2
- package/components/actions/actions.lazy.js +1 -1
- package/components/app/app-class.js +15 -9
- package/components/area-chart/area-chart-class.js +34 -18
- package/components/area-chart/area-chart.lazy.js +1 -1
- package/components/autocomplete/autocomplete-class.js +5 -1
- package/components/autocomplete/autocomplete.lazy.js +1 -1
- package/components/calendar/calendar-class.js +10 -2
- package/components/calendar/calendar.js +5 -1
- package/components/calendar/calendar.lazy.js +1 -1
- package/components/card/card.js +23 -3
- package/components/card/card.lazy.js +1 -1
- package/components/color-picker/color-picker-class.js +19 -3
- package/components/color-picker/color-picker.js +5 -1
- package/components/color-picker/color-picker.lazy.js +1 -1
- package/components/data-table/data-table-class.js +5 -1
- package/components/data-table/data-table.lazy.js +1 -1
- package/components/dialog/dialog.js +30 -6
- package/components/dialog/dialog.lazy.js +1 -1
- package/components/fab/fab-rtl.css +1 -1
- package/components/fab/fab.css +1 -1
- package/components/fab/fab.js +15 -3
- package/components/fab/fab.lazy.js +1 -1
- package/components/form/form.lazy.js +1 -1
- package/components/gauge/gauge-class.js +10 -2
- package/components/gauge/gauge.lazy.js +1 -1
- package/components/input/input.js +5 -1
- package/components/input/input.lazy.js +1 -1
- package/components/list-index/list-index-class.js +5 -1
- package/components/list-index/list-index.lazy.js +1 -1
- package/components/login-screen/login-screen.js +10 -2
- package/components/login-screen/login-screen.lazy.js +1 -1
- package/components/menu/menu.js +10 -2
- package/components/menu/menu.lazy.js +1 -1
- package/components/messagebar/messagebar-class.js +25 -5
- package/components/messagebar/messagebar.lazy.js +1 -1
- package/components/messages/messages-class.js +60 -24
- package/components/messages/messages-rtl.css +1 -1
- package/components/messages/messages.css +1 -1
- package/components/messages/messages.lazy.js +1 -1
- package/components/navbar/navbar.js +26 -2
- package/components/panel/panel-class.js +35 -7
- package/components/panel/panel.js +40 -8
- package/components/panel/panel.lazy.js +1 -1
- package/components/photo-browser/photo-browser-class.js +42 -8
- package/components/photo-browser/photo-browser.lazy.js +1 -1
- package/components/picker/picker-class.js +5 -1
- package/components/picker/picker.js +5 -1
- package/components/picker/picker.lazy.js +1 -1
- package/components/pie-chart/pie-chart-class.js +16 -7
- package/components/pie-chart/pie-chart.lazy.js +1 -1
- package/components/popover/popover-class.js +5 -1
- package/components/popover/popover.js +10 -2
- package/components/popover/popover.lazy.js +1 -1
- package/components/popup/popup.js +10 -2
- package/components/popup/popup.lazy.js +1 -1
- package/components/preloader/preloader-rtl.css +1 -1
- package/components/preloader/preloader.css +1 -1
- package/components/preloader/preloader.js +10 -2
- package/components/preloader/preloader.lazy.js +1 -1
- package/components/progressbar/progressbar.js +16 -3
- package/components/progressbar/progressbar.lazy.js +1 -1
- package/components/pull-to-refresh/pull-to-refresh-class.js +5 -1
- package/components/pull-to-refresh/pull-to-refresh.lazy.js +1 -1
- package/components/range/range.js +10 -2
- package/components/range/range.lazy.js +1 -1
- package/components/searchbar/searchbar-class.js +5 -1
- package/components/searchbar/searchbar.js +20 -4
- package/components/searchbar/searchbar.lazy.js +1 -1
- package/components/sheet/sheet-class.js +5 -1
- package/components/sheet/sheet.js +10 -2
- package/components/sheet/sheet.lazy.js +1 -1
- package/components/smart-select/smart-select-class.js +15 -3
- package/components/smart-select/smart-select.lazy.js +1 -1
- package/components/sortable/sortable.js +30 -6
- package/components/sortable/sortable.lazy.js +1 -1
- package/components/statusbar/statusbar.js +5 -1
- package/components/stepper/stepper.js +10 -2
- package/components/stepper/stepper.lazy.js +1 -1
- package/components/swipeout/swipeout.js +16 -3
- package/components/swipeout/swipeout.lazy.js +1 -1
- package/components/swiper/swiper.lazy.js +1 -1
- package/components/tabs/tabs.js +10 -2
- package/components/tabs/tabs.lazy.js +1 -1
- package/components/toggle/toggle-class.js +5 -1
- package/components/toggle/toggle.lazy.js +1 -1
- package/components/toolbar/toolbar.js +10 -2
- package/components/tooltip/tooltip-class.js +5 -1
- package/components/tooltip/tooltip.lazy.js +1 -1
- package/components/touch-ripple/touch-ripple.js +5 -1
- package/components/treeview/treeview.lazy.js +1 -1
- package/components/view/view-class.js +5 -1
- package/components/virtual-list/virtual-list-class.js +10 -2
- package/components/virtual-list/virtual-list.lazy.js +1 -1
- package/framework7-bundle-rtl.css +4 -4
- package/framework7-bundle-rtl.min.css +3 -3
- package/framework7-bundle.css +4 -4
- package/framework7-bundle.esm.js +2 -2
- package/framework7-bundle.js +1646 -461
- package/framework7-bundle.js.map +1 -1
- package/framework7-bundle.less +2 -2
- package/framework7-bundle.min.css +3 -3
- package/framework7-bundle.min.js +3 -3
- package/framework7-bundle.min.js.map +1 -1
- package/framework7-lite-bundle.esm.js +2 -2
- package/framework7-lite.esm.js +2 -2
- package/framework7-rtl.css +2 -2
- package/framework7-rtl.min.css +2 -2
- package/framework7.css +2 -2
- package/framework7.esm.js +2 -2
- package/framework7.js +562 -174
- package/framework7.js.map +1 -1
- package/framework7.less +2 -2
- package/framework7.min.css +2 -2
- package/framework7.min.js +3 -3
- package/framework7.min.js.map +1 -1
- package/modules/component/$h.js +5 -1
- package/modules/component/$jsx.js +5 -1
- package/modules/component/component-class.js +35 -22
- package/modules/component/component.js +7 -6
- package/modules/component/eventslisteners.js +5 -1
- package/modules/component/snabbdom/h.js +1 -1
- package/modules/component/vdom.js +32 -17
- package/modules/router/back.js +5 -5
- package/modules/router/component-loader.js +34 -23
- package/modules/router/modal.js +5 -1
- package/modules/router/navigate.js +19 -3
- package/modules/router/redirect.js +5 -1
- package/modules/router/router-class.js +39 -10
- package/modules/router/swipe-back.js +7 -6
- package/modules/router/tab.js +5 -1
- package/modules/store/create-store.js +10 -2
- package/package.json +3 -2
- package/shared/$jsx.js +6 -1
- package/shared/class.js +33 -5
- package/shared/constructor-methods.js +25 -4
- package/shared/events-class.js +15 -3
- package/shared/get-device.js +9 -4
- package/shared/modal-methods.js +10 -2
- package/shared/request.js +45 -7
- package/shared/utils.js +47 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
(function framework7ComponentLoader(e,o){void 0===o&&(o=!0);var t=e.$,n=e.utils,i=(e.getDevice,e.getSupport,e.Class,e.Modal,e.ConstructorMethods,e.ModalMethods,n.
|
|
1
|
+
(function framework7ComponentLoader(e,o){void 0===o&&(o=!0);var t=e.$,n=e.utils,i=(e.getDevice,e.getSupport,e.Class,e.Modal,e.ConstructorMethods,e.ModalMethods,n.nextFrame),c=n.bindMethods;const r={toggleClicked(e){let o=e.closest(".accordion-item").eq(0);o.length||(o=e.parents("li").eq(0));const t=e.parents(".accordion-item-content").eq(0);t.length&&t.parents(o).length||e.parents("li").length>1&&e.parents("li")[0]!==o[0]||this.accordion.toggle(o)},open(e){const o=this,n=t(e);let c=!1;function r(){c=!0}if(n.trigger("accordion:beforeopen",{prevent:r},r),o.emit("accordionBeforeOpen",n[0],r),c)return;const s=n.parents(".accordion-list").eq(0);let a=n.children(".accordion-item-content");if(a.removeAttr("aria-hidden"),0===a.length&&(a=n.find(".accordion-item-content")),0===a.length)return;const d=s.length>0&&n.parent().children(".accordion-item-opened");d.length>0&&o.accordion.close(d),a.transitionEnd((()=>{n.hasClass("accordion-item-opened")?(a.transition(0),a.css("height","auto"),i((()=>{a.transition(""),n.trigger("accordion:opened"),o.emit("accordionOpened",n[0])}))):(a.css("height",""),n.trigger("accordion:closed"),o.emit("accordionClosed",n[0]))})),a.css("height",`${a[0].scrollHeight}px`),n.trigger("accordion:open"),n.addClass("accordion-item-opened"),o.emit("accordionOpen",n[0])},close(e){const o=this,n=t(e);let c=!1;function r(){c=!0}if(n.trigger("accordion:beforeclose",{prevent:r},r),o.emit("accordionBeforeClose",n[0],r),c)return;let s=n.children(".accordion-item-content");0===s.length&&(s=n.find(".accordion-item-content")),n.removeClass("accordion-item-opened"),s.attr("aria-hidden",!0),s.transition(0),s.css("height",`${s[0].scrollHeight}px`),s.transitionEnd((()=>{n.hasClass("accordion-item-opened")?(s.transition(0),s.css("height","auto"),i((()=>{s.transition(""),n.trigger("accordion:opened"),o.emit("accordionOpened",n[0])}))):(s.css("height",""),n.trigger("accordion:closed"),o.emit("accordionClosed",n[0]))})),i((()=>{s.transition(""),s.css("height",""),n.trigger("accordion:close"),o.emit("accordionClose",n[0])}))},toggle(e){const o=t(e);0!==o.length&&(o.hasClass("accordion-item-opened")?this.accordion.close(e):this.accordion.open(e))}};var s={name:"accordion",create(){c(this,{accordion:r})},clicks:{".accordion-item .item-link, .accordion-item-toggle, .links-list.accordion-list > ul > li > a":function(e){r.toggleClicked.call(this,e)}}};if(o){if(e.prototype.modules&&e.prototype.modules[s.name])return;e.use(s),e.instance&&(e.instance.useModuleParams(s,e.instance.params),e.instance.useModule(s))}return s}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))
|
|
@@ -31,11 +31,19 @@ export default {
|
|
|
31
31
|
},
|
|
32
32
|
|
|
33
33
|
clicks: {
|
|
34
|
-
'.actions-open': function openActions($clickedEl, data
|
|
34
|
+
'.actions-open': function openActions($clickedEl, data) {
|
|
35
|
+
if (data === void 0) {
|
|
36
|
+
data = {};
|
|
37
|
+
}
|
|
38
|
+
|
|
35
39
|
const app = this;
|
|
36
40
|
app.actions.open(data.actions, data.animate, $clickedEl);
|
|
37
41
|
},
|
|
38
|
-
'.actions-close': function closeActions($clickedEl, data
|
|
42
|
+
'.actions-close': function closeActions($clickedEl, data) {
|
|
43
|
+
if (data === void 0) {
|
|
44
|
+
data = {};
|
|
45
|
+
}
|
|
46
|
+
|
|
39
47
|
const app = this;
|
|
40
48
|
app.actions.close(data.actions, data.animate, $clickedEl);
|
|
41
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function framework7ComponentLoader(o,e){void 0===e&&(e=!0);var s=o.$,a=o.utils,t=o.getDevice,l=(o.getSupport,o.Class,o.Modal),n=(o.ConstructorMethods,o.ModalMethods),r=a.extend,c=a.nextTick;class i extends l{constructor(o,e){const a=r({on:{}},o.params.actions,e);super(o,a);const l=this,n=t(),i=getWindow(),p=getDocument();let d,m,u;if(l.params=a,l.params.buttons&&(d=l.params.buttons,Array.isArray(d[0])||(d=[d])),l.groups=d,l.params.el?m=s(l.params.el).eq(0):l.params.content?m=s(l.params.content).filter((o=>1===o.nodeType)).eq(0):l.params.buttons&&(l.params.convertToPopover&&(l.popoverHtml=l.renderPopover()),l.actionsHtml=l.render()),m&&m.length>0&&m[0].f7Modal)return m[0].f7Modal;if(m&&0===m.length&&!l.actionsHtml&&!l.popoverHtml)return l.destroy();l.params.backdrop&&l.params.backdropEl?u=s(l.params.backdropEl):l.params.backdrop&&(l.params.backdropUnique?(u=s('<div class="popup-backdrop popup-backdrop-unique"></div>'),l.$containerEl.append(u)):u=l.$containerEl.children(".actions-backdrop"),0===u.length&&(u=s('<div class="actions-backdrop"></div>'),l.$containerEl.append(u)));const $=l.open,
|
|
1
|
+
(function framework7ComponentLoader(o,e){void 0===e&&(e=!0);var s=o.$,a=o.utils,t=o.getDevice,l=(o.getSupport,o.Class,o.Modal),n=(o.ConstructorMethods,o.ModalMethods),r=a.extend,c=a.nextTick;class i extends l{constructor(o,e){const a=r({on:{}},o.params.actions,e);super(o,a);const l=this,n=t(),i=getWindow(),p=getDocument();let d,m,u;if(l.params=a,l.params.buttons&&(d=l.params.buttons,Array.isArray(d[0])||(d=[d])),l.groups=d,l.params.el?m=s(l.params.el).eq(0):l.params.content?m=s(l.params.content).filter((o=>1===o.nodeType)).eq(0):l.params.buttons&&(l.params.convertToPopover&&(l.popoverHtml=l.renderPopover()),l.actionsHtml=l.render()),m&&m.length>0&&m[0].f7Modal)return m[0].f7Modal;if(m&&0===m.length&&!l.actionsHtml&&!l.popoverHtml)return l.destroy();l.params.backdrop&&l.params.backdropEl?u=s(l.params.backdropEl):l.params.backdrop&&(l.params.backdropUnique?(u=s('<div class="popup-backdrop popup-backdrop-unique"></div>'),l.$containerEl.append(u)):u=l.$containerEl.children(".actions-backdrop"),0===u.length&&(u=s('<div class="actions-backdrop"></div>'),l.$containerEl.append(u)));const $=l.open,v=l.close;let b;function k(o){const e=s(this);let a,t;if(e.hasClass("list-button")||e.hasClass("item-link")?(a=e.parents("li").index(),t=e.parents(".list").index()):(a=e.index(),t=e.parents(".actions-group").index()),void 0!==d){const e=d[t][a];e.onClick&&e.onClick(l,o),l.params.onClick&&l.params.onClick(l,o),!1!==e.close&&l.close()}}function g(o){const e=o.target,a=s(e);!n.desktop&&n.cordova&&(i.Keyboard&&i.Keyboard.isVisible||i.cordova.plugins&&i.cordova.plugins.Keyboard&&i.cordova.plugins.Keyboard.isVisible)||0===a.closest(l.el).length&&(l.params.closeByBackdropClick&&l.params.backdrop&&l.backdropEl&&l.backdropEl===e||l.params.closeByOutsideClick)&&l.close()}function f(o){27===o.keyCode&&l.params.closeOnEscape&&l.close()}return l.open=function(e){let a=!1;const{targetEl:t,targetX:r,targetY:i,targetWidth:p,targetHeight:d}=l.params;return l.params.convertToPopover&&(t||void 0!==r&&void 0!==i)&&(l.params.forceToPopover||n.ios&&n.ipad||o.width>=768||n.desktop&&"aurora"===o.theme)&&(a=!0),a&&l.popoverHtml?(b=o.popover.create({containerEl:l.params.containerEl,content:l.popoverHtml,backdrop:l.params.backdrop,targetEl:t,targetX:r,targetY:i,targetWidth:p,targetHeight:d,on:{open(){l.$el||(l.$el=b.$el),l.$el.trigger(`modal:open ${l.type.toLowerCase()}:open`),l.emit(`local::open modalOpen ${l.type}Open`,l)},opened(){l.$el||(l.$el=b.$el),l.$el.trigger(`modal:opened ${l.type.toLowerCase()}:opened`),l.emit(`local::opened modalOpened ${l.type}Opened`,l)},close(){l.$el||(l.$el=b.$el),l.$el.trigger(`modal:close ${l.type.toLowerCase()}:close`),l.emit(`local::close modalClose ${l.type}Close`,l)},closed(){l.$el||(l.$el=b.$el),l.$el.trigger(`modal:closed ${l.type.toLowerCase()}:closed`),l.emit(`local::closed modalClosed ${l.type}Closed`,l)}}}),b.open(e),b.once("popoverOpened",(()=>{b.$el.find(".list-button, .item-link").each((o=>{s(o).on("click",k)}))})),b.once("popoverClosed",(()=>{b.$el.find(".list-button, .item-link").each((o=>{s(o).off("click",k)})),c((()=>{b.destroy(),b=void 0}))}))):(l.$el=l.actionsHtml?s(l.actionsHtml):l.$el,l.$el[0].f7Modal=l,l.groups&&(l.$el.find(".actions-button").each((o=>{s(o).on("click",k)})),l.once("actionsClosed",(()=>{l.$el.find(".actions-button").each((o=>{s(o).off("click",k)}))}))),l.el=l.$el[0],$.call(l,e)),l},l.close=function(o){return b?b.close(o):v.call(l,o),l},r(l,{app:o,$el:m,el:m?m[0]:void 0,$backdropEl:u,backdropEl:u&&u[0],type:"actions"}),l.params.closeOnEscape&&(l.on("open",(()=>{s(p).on("keydown",f)})),l.on("close",(()=>{s(p).off("keydown",f)}))),l.on("opened",(()=>{(l.params.closeByBackdropClick||l.params.closeByOutsideClick)&&o.on("click",g)})),l.on("close",(()=>{(l.params.closeByBackdropClick||l.params.closeByOutsideClick)&&o.off("click",g)})),m&&(m[0].f7Modal=l),l}render(){const o=this;if(o.params.render)return o.params.render.call(o,o);const{groups:e}=o,s=o.params.cssClass;return $jsx("div",{class:`actions-modal${o.params.grid?" actions-grid":""} ${s||""}`},e.map((o=>$jsx("div",{class:"actions-group"},o.map((o=>{const e=["actions-"+(o.label?"label":"button")],{color:s,bg:a,bold:t,disabled:l,label:n,text:r,icon:c}=o;return s&&e.push(`color-${s}`),a&&e.push(`bg-color-${a}`),t&&e.push("actions-button-bold"),l&&e.push("disabled"),n?$jsx("div",{class:e.join(" ")},r):$jsx("div",{class:e.join(" ")},c&&$jsx("div",{class:"actions-button-media"},c),$jsx("div",{class:"actions-button-text"},r))}))))))}renderPopover(){const o=this;if(o.params.renderPopover)return o.params.renderPopover.call(o,o);const{groups:e}=o,s=o.params.cssClass;return $jsx("div",{class:`popover popover-from-actions ${s||""}`},$jsx("div",{class:"popover-inner"},e.map((o=>$jsx("div",{class:"list"},$jsx("ul",null,o.map((o=>{const e=[],{color:s,bg:a,bold:t,disabled:l,label:n,text:r,icon:c}=o;return s&&e.push(`color-${s}`),a&&e.push(`bg-color-${a}`),t&&e.push("popover-from-actions-bold"),l&&e.push("disabled"),n?(e.push("popover-from-actions-label"),`<li class="${e.join(" ")}">${r}</li>`):c?(e.push("item-link item-content"),$jsx("li",null,$jsx("a",{class:e.join(" ")},$jsx("div",{class:"item-media"},c),$jsx("div",{class:"item-inner"},$jsx("div",{class:"item-title"},r))))):(e.push("list-button"),$jsx("li",null,$jsx("a",{class:e.join(" ")},r)))}))))))))}}var p={name:"actions",params:{actions:{convertToPopover:!0,forceToPopover:!1,backdrop:!0,backdropEl:void 0,backdropUnique:!1,cssClass:null,closeByBackdropClick:!0,closeOnEscape:!1,render:null,renderPopover:null,containerEl:null}},static:{Actions:i},create(){this.actions=n({app:this,constructor:i,defaultSelector:".actions-modal.modal-in"})},clicks:{".actions-open":function(o,e){void 0===e&&(e={});this.actions.open(e.actions,e.animate,o)},".actions-close":function(o,e){void 0===e&&(e={});this.actions.close(e.actions,e.animate,o)}}};if(e){if(o.prototype.modules&&o.prototype.modules[p.name])return;o.use(p),o.instance&&(o.instance.useModuleParams(p,o.instance.params),o.instance.useModule(p))}return p}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))
|
|
@@ -11,7 +11,11 @@ import $ from '../../shared/dom7.js';
|
|
|
11
11
|
import loadModule from './load-module.js';
|
|
12
12
|
|
|
13
13
|
class Framework7 extends Framework7Class {
|
|
14
|
-
constructor(params
|
|
14
|
+
constructor(params) {
|
|
15
|
+
if (params === void 0) {
|
|
16
|
+
params = {};
|
|
17
|
+
}
|
|
18
|
+
|
|
15
19
|
super(params); // eslint-disable-next-line
|
|
16
20
|
|
|
17
21
|
if (Framework7.instance && typeof window !== 'undefined') {
|
|
@@ -127,10 +131,12 @@ class Framework7 extends Framework7Class {
|
|
|
127
131
|
app.mq.light = window.matchMedia(LIGHT);
|
|
128
132
|
}
|
|
129
133
|
|
|
130
|
-
app.colorSchemeListener = function colorSchemeListener({
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
+
app.colorSchemeListener = function colorSchemeListener(_ref) {
|
|
135
|
+
let {
|
|
136
|
+
matches,
|
|
137
|
+
media
|
|
138
|
+
} = _ref;
|
|
139
|
+
|
|
134
140
|
if (!matches) {
|
|
135
141
|
return;
|
|
136
142
|
}
|
|
@@ -272,13 +278,13 @@ class Framework7 extends Framework7Class {
|
|
|
272
278
|
} // eslint-disable-next-line
|
|
273
279
|
|
|
274
280
|
|
|
275
|
-
loadModule(
|
|
276
|
-
return Framework7.loadModule(...
|
|
281
|
+
loadModule() {
|
|
282
|
+
return Framework7.loadModule(...arguments);
|
|
277
283
|
} // eslint-disable-next-line
|
|
278
284
|
|
|
279
285
|
|
|
280
|
-
loadModules(
|
|
281
|
-
return Framework7.loadModules(...
|
|
286
|
+
loadModules() {
|
|
287
|
+
return Framework7.loadModules(...arguments);
|
|
282
288
|
}
|
|
283
289
|
|
|
284
290
|
getVnodeHooks(hook, id) {
|
|
@@ -6,7 +6,11 @@ import Framework7Class from '../../shared/class.js';
|
|
|
6
6
|
import $jsx from '../../shared/$jsx.js';
|
|
7
7
|
|
|
8
8
|
class AreaChart extends Framework7Class {
|
|
9
|
-
constructor(app, params
|
|
9
|
+
constructor(app, params) {
|
|
10
|
+
if (params === void 0) {
|
|
11
|
+
params = {};
|
|
12
|
+
}
|
|
13
|
+
|
|
10
14
|
super(params, [app]);
|
|
11
15
|
const self = this;
|
|
12
16
|
const defaults = extend({}, app.params.areaChart); // Extend defaults with modules params
|
|
@@ -59,9 +63,10 @@ class AreaChart extends Framework7Class {
|
|
|
59
63
|
hiddenDatasets
|
|
60
64
|
} = this;
|
|
61
65
|
const summValues = [];
|
|
62
|
-
datasets.filter((dataset, index) => !hiddenDatasets.includes(index)).forEach(
|
|
63
|
-
|
|
64
|
-
|
|
66
|
+
datasets.filter((dataset, index) => !hiddenDatasets.includes(index)).forEach(_ref => {
|
|
67
|
+
let {
|
|
68
|
+
values
|
|
69
|
+
} = _ref;
|
|
65
70
|
values.forEach((value, valueIndex) => {
|
|
66
71
|
if (!summValues[valueIndex]) summValues[valueIndex] = 0;
|
|
67
72
|
summValues[valueIndex] += value;
|
|
@@ -90,9 +95,10 @@ class AreaChart extends Framework7Class {
|
|
|
90
95
|
let maxValue = 0;
|
|
91
96
|
|
|
92
97
|
if (lineChart) {
|
|
93
|
-
datasets.filter((dataset, index) => !hiddenDatasets.includes(index)).forEach(
|
|
94
|
-
|
|
95
|
-
|
|
98
|
+
datasets.filter((dataset, index) => !hiddenDatasets.includes(index)).forEach(_ref2 => {
|
|
99
|
+
let {
|
|
100
|
+
values
|
|
101
|
+
} = _ref2;
|
|
96
102
|
const datasetMaxValue = Math.max(...values);
|
|
97
103
|
if (datasetMaxValue > maxValue) maxValue = datasetMaxValue;
|
|
98
104
|
});
|
|
@@ -100,11 +106,12 @@ class AreaChart extends Framework7Class {
|
|
|
100
106
|
maxValue = Math.max(...this.getSummValues());
|
|
101
107
|
}
|
|
102
108
|
|
|
103
|
-
datasets.filter((dataset, index) => !hiddenDatasets.includes(index)).forEach(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
109
|
+
datasets.filter((dataset, index) => !hiddenDatasets.includes(index)).forEach(_ref3 => {
|
|
110
|
+
let {
|
|
111
|
+
label,
|
|
112
|
+
values,
|
|
113
|
+
color
|
|
114
|
+
} = _ref3;
|
|
108
115
|
const points = values.map((originalValue, valueIndex) => {
|
|
109
116
|
lastValues[valueIndex] += originalValue;
|
|
110
117
|
const value = lineChart ? originalValue : lastValues[valueIndex];
|
|
@@ -239,11 +246,12 @@ class AreaChart extends Framework7Class {
|
|
|
239
246
|
|
|
240
247
|
const datasetsText = currentValues.length > 0 ? `
|
|
241
248
|
<ul class="area-chart-tooltip-list">
|
|
242
|
-
${currentValues.map(
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
249
|
+
${currentValues.map(_ref4 => {
|
|
250
|
+
let {
|
|
251
|
+
label,
|
|
252
|
+
color,
|
|
253
|
+
value
|
|
254
|
+
} = _ref4;
|
|
247
255
|
const valueText = formatTooltipDataset ? formatTooltipDataset.call(self, label, value, color) : `${label ? `${label}: ` : ''}${value}`;
|
|
248
256
|
return `
|
|
249
257
|
<li><span style="background-color: ${color};"></span>${valueText}</li>
|
|
@@ -422,7 +430,15 @@ class AreaChart extends Framework7Class {
|
|
|
422
430
|
}), self.formatLegendLabel(dataset.label)))));
|
|
423
431
|
}
|
|
424
432
|
|
|
425
|
-
update(newParams
|
|
433
|
+
update(newParams, onlySvg) {
|
|
434
|
+
if (newParams === void 0) {
|
|
435
|
+
newParams = {};
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
if (onlySvg === void 0) {
|
|
439
|
+
onlySvg = false;
|
|
440
|
+
}
|
|
441
|
+
|
|
426
442
|
const self = this;
|
|
427
443
|
const {
|
|
428
444
|
params
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function framework7ComponentLoader(e,t){void 0===t&&(t=!0);var a=e.$,s=e.utils,l=(e.getDevice,e.getSupport,e.Class),n=(e.Modal,e.ConstructorMethods),o=(e.ModalMethods,s.extend),r=s.deleteProps;class i extends l{constructor(e,t={})
|
|
1
|
+
(function framework7ComponentLoader(e,t){void 0===t&&(t=!0);var a=e.$,s=e.utils,l=(e.getDevice,e.getSupport,e.Class),n=(e.Modal,e.ConstructorMethods),o=(e.ModalMethods,s.extend),r=s.deleteProps;class i extends l{constructor(e,t){void 0===t&&(t={}),super(t,[e]);const s=this,l=o({},e.params.areaChart);s.useModulesParams(l),s.params=o(l,t);const{el:n}=s.params;if(!n)return s;const r=a(n);return 0===r.length?s:r[0].f7AreaChart?r[0].f7AreaChart:(o(s,{app:e,$el:r,el:r&&r[0],currentIndex:null,hiddenDatasets:[],f7Tooltip:null,linesOffsets:null}),r[0].f7AreaChart=s,s.useModules(),s.onMouseEnter=s.onMouseEnter.bind(s),s.onMouseMove=s.onMouseMove.bind(s),s.onMouseLeave=s.onMouseLeave.bind(s),s.onLegendClick=s.onLegendClick.bind(s),s.init(),s)}getVisibleLabels(){const{maxAxisLabels:e,axisLabels:t}=this.params;if(!e||t.length<=e)return t;const a=Math.ceil(t.length/e);return t.filter(((e,t)=>t%a==0))}getSummValues(){const{datasets:e}=this.params,{hiddenDatasets:t}=this,a=[];return e.filter(((e,a)=>!t.includes(a))).forEach((e=>{let{values:t}=e;t.forEach(((e,t)=>{a[t]||(a[t]=0),a[t]+=e}))})),a}getChartData(){const{datasets:e,lineChart:t,width:a,height:s}=this.params,{hiddenDatasets:l}=this,n=[];if(!e.length)return n;const o=e[0].values.map((()=>0));let r=0;return t?e.filter(((e,t)=>!l.includes(t))).forEach((e=>{let{values:t}=e;const a=Math.max(...t);a>r&&(r=a)})):r=Math.max(...this.getSummValues()),e.filter(((e,t)=>!l.includes(t))).forEach((e=>{let{label:l,values:i,color:d}=e;const h=i.map(((e,l)=>{o[l]+=e;const n=t?e:o[l],d=l/(i.length-1)*a,h=s-n/r*s;return t?`${0===l?"M":"L"}${d},${h}`:`${d} ${h}`}));t||h.push(`${a} ${s} 0 ${s}`),n.push({label:l,points:h.join(" "),color:d})})),n.reverse()}getVerticalLines(){const{datasets:e,width:t}=this.params,a=[];if(!e.length)return a;const s=e[0].values;return s.forEach(((e,l)=>{const n=l/(s.length-1)*t;a.push(n)})),a}toggleDataset(e){const{hiddenDatasets:t,params:{toggleDatasets:a}}=this;a&&(t.includes(e)?t.splice(t.indexOf(e),1):t.push(e),this.$legendEl&&(this.$legendEl.find(".area-chart-legend-item").removeClass("area-chart-legend-item-hidden"),t.forEach((e=>{this.$legendEl.find(`.area-chart-legend-item[data-index="${e}"]`).addClass("area-chart-legend-item-hidden")}))),this.update({},!0))}formatAxisLabel(e){const{formatAxisLabel:t}=this.params;return t?t.call(this,e):e}formatLegendLabel(e){const{formatLegendLabel:t}=this.params;return t?t.call(this,e):e}calcLinesOffsets(){const e=this.svgEl.querySelectorAll("line");this.linesOffsets=[];for(let t=0;t<e.length;t+=1)this.linesOffsets.push(e[t].getBoundingClientRect().left)}formatTooltip(){const e=this,{currentIndex:t,hiddenDatasets:a,params:{datasets:s,axisLabels:l,formatTooltip:n,formatTooltipTotal:o,formatTooltipAxisLabel:r,formatTooltipDataset:i}}=e;if(null===t)return"";let d=0;const h=s.filter(((e,t)=>!a.includes(t))).map((e=>({color:e.color,label:e.label,value:e.values[t]})));if(h.forEach((e=>{d+=e.value})),n)return n({index:t,total:d,datasets:h});let c=r?r.call(e,l[t]):this.formatAxisLabel(l[t]);c||(c="");return`\n <div class="area-chart-tooltip-label">${c}</div>\n <div class="area-chart-tooltip-total">${o?o.call(e,d):d}</div>\n ${h.length>0?`\n <ul class="area-chart-tooltip-list">\n ${h.map((t=>{let{label:a,color:s,value:l}=t;return`\n <li><span style="background-color: ${s};"></span>${i?i.call(e,a,l,s):`${a?`${a}: `:""}${l}`}</li>\n `})).join("")}\n </ul>`:""}\n `}setTooltip(){const e=this,{app:t,el:a,svgEl:s,hiddenDatasets:l,currentIndex:n,params:{tooltip:o,datasets:r}}=e;if(!o)return;if(r.filter(((e,t)=>!l.includes(t))).length>0)return null===n||e.f7Tooltip?void(e.f7Tooltip&&e.f7Tooltip.hide&&e.f7Tooltip.show&&(null!==n?(e.f7Tooltip.setText(e.formatTooltip()),e.f7Tooltip.setTargetEl(s.querySelector(`line[data-index="${n}"]`)),e.f7Tooltip.show()):e.f7Tooltip.hide())):(e.f7Tooltip=t.tooltip.create({trigger:"manual",containerEl:a,targetEl:s.querySelector(`line[data-index="${n}"]`),text:e.formatTooltip(),cssClass:"area-chart-tooltip"}),void(e.f7Tooltip&&e.f7Tooltip.show&&e.f7Tooltip.show()));e.f7Tooltip&&e.f7Tooltip.hide&&e.f7Tooltip.hide()}setCurrentIndex(e){e!==this.currentIndex&&(this.currentIndex=e,this.$el.trigger("areachart:select",{index:e}),this.emit("local::select areaChartSelect",this,e),this.$svgEl.find("line").removeClass("area-chart-current-line"),this.$svgEl.find(`line[data-index="${e}"]`).addClass("area-chart-current-line"),this.setTooltip())}onLegendClick(e){const t=parseInt(a(e.target).closest(".area-chart-legend-item").attr("data-index"),10);this.toggleDataset(t)}onMouseEnter(){this.calcLinesOffsets()}onMouseMove(e){const t=this;t.linesOffsets||t.calcLinesOffsets();let a=e.pageX;void 0===a&&(a=0);const s=t.linesOffsets.map((e=>Math.abs(a-e))),l=Math.min(...s),n=s.indexOf(l);t.setCurrentIndex(n)}onMouseLeave(){this.setCurrentIndex(null)}attachEvents(){const{svgEl:e,$el:t}=this;e&&(e.addEventListener("mouseenter",this.onMouseEnter),e.addEventListener("mousemove",this.onMouseMove),e.addEventListener("mouseleave",this.onMouseLeave),t.on("click",".area-chart-legend-item",this.onLegendClick))}detachEvents(){const{svgEl:e,$el:t}=this;e&&(e.removeEventListener("mouseenter",this.onMouseEnter),e.removeEventListener("mousemove",this.onMouseMove),e.removeEventListener("mouseleave",this.onMouseLeave),t.off("click",".area-chart-legend-item",this.onLegendClick))}render(){const e=this,{lineChart:t,toggleDatasets:a,width:s,height:l,axis:n,axisLabels:o,legend:r,datasets:i}=e.params,d=e.getChartData(),h=e.getVerticalLines(),c=e.getVisibleLabels(),u=a?"button":"span";return $jsx("div",null,$jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:s,height:l,viewBox:`0 0 ${s} ${l}`,preserveAspectRatio:"none"},d.map((e=>t?$jsx("path",{stroke:e.color,"fill-rule":"evenodd",d:e.points}):$jsx("polygon",{fill:e.color,"fill-rule":"evenodd",points:e.points}))),h.map(((e,t)=>$jsx("line",{"data-index":t,fill:"#000",x1:e,y1:0,x2:e,y2:l})))),n&&$jsx("div",{class:"area-chart-axis"},o.map((t=>$jsx("span",null,c.includes(t)&&$jsx("span",null,e.formatAxisLabel(t)))))),r&&$jsx("div",{class:"area-chart-legend"},i.map(((t,s)=>$jsx(u,{"data-index":s,class:"area-chart-legend-item "+(a?"area-chart-legend-button":""),_type:a?"button":void 0},$jsx("span",{style:`background-color: ${t.color}`}),e.formatLegendLabel(t.label))))))}update(e,t){void 0===e&&(e={}),void 0===t&&(t=!1);const s=this,{params:l}=s;if(Object.keys(e).forEach((t=>{void 0!==e[t]&&(l[t]=e[t])})),0===s.$svgEl.length)return s;s.detachEvents(),s.$svgEl.remove(),t||(s.$axisEl.remove(),s.$legendEl.remove());const n=a(s.render()),r=n.find("svg");if(o(s,{svgEl:r&&r[0],$svgEl:r}),!t){const e=n.find(".area-chart-axis"),t=n.find(".area-chart-legend");o(s,{$axisEl:e,$legendEl:t}),s.$el.append(e),s.$el.append(t)}return s.$el.prepend(r),s.attachEvents(),s}init(){const e=this,t=a(e.render()),s=t.find("svg"),l=t.find(".area-chart-axis"),n=t.find(".area-chart-legend");return o(e,{svgEl:s&&s[0],$svgEl:s,$axisEl:l,$legendEl:n}),e.$el.append(s),e.$el.append(l),e.$el.append(n),e.attachEvents(),e}destroy(){const e=this;e.$el&&!e.destroyed&&(e.$el.trigger("piechart:beforedestroy"),e.emit("local::beforeDestroy areaChartBeforeDestroy",e),e.detachEvents(),e.$svgEl.remove(),e.$axisEl.remove(),e.$legendEl.remove(),e.f7Tooltip&&e.f7Tooltip.destroy&&e.f7Tooltip.destroy(),delete e.$el[0].f7AreaChart,r(e),e.destroyed=!0)}}var d={name:"areaChart",params:{areaChart:{el:null,lineChart:!1,datasets:[],axis:!1,axisLabels:[],tooltip:!1,legend:!1,toggleDatasets:!1,width:640,height:320,maxAxisLabels:8,formatAxisLabel:null,formatLegendLabel:null,formatTooltip:null,formatTooltipAxisLabel:null,formatTooltipTotal:null,formatTooltipDataset:null}},create(){const e=this;e.areaChart=n({defaultSelector:".area-chart",constructor:i,app:e,domProp:"f7AreaChart"}),e.areaChart.update=function(t,s){if(0===a(t).length)return;const l=e.areaChart.get(t);return l?(l.update(s),l):void 0}}};if(t){if(e.prototype.modules&&e.prototype.modules[d.name])return;e.use(d),e.instance&&(e.instance.useModuleParams(d,e.instance.params),e.instance.useModule(d))}return d}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))
|
|
@@ -8,7 +8,11 @@ import Framework7Class from '../../shared/class.js';
|
|
|
8
8
|
import $jsx from '../../shared/$jsx.js';
|
|
9
9
|
|
|
10
10
|
class Autocomplete extends Framework7Class {
|
|
11
|
-
constructor(app, params
|
|
11
|
+
constructor(app, params) {
|
|
12
|
+
if (params === void 0) {
|
|
13
|
+
params = {};
|
|
14
|
+
}
|
|
15
|
+
|
|
12
16
|
super(params, [app]);
|
|
13
17
|
const ac = this;
|
|
14
18
|
ac.app = app;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function framework7ComponentLoader(e,o){void 0===o&&(o=!0);var t=e.$,a=e.utils,r=e.getDevice,n=(e.getSupport,e.Class),l=(e.Modal,e.ConstructorMethods),p=(e.ModalMethods,a.extend),s=a.id,d=a.nextTick,i=a.iosPreloaderContent,c=a.mdPreloaderContent,u=a.auroraPreloaderContent,m=a.deleteProps;class h extends n{constructor(e,o={}){super(o,[e]);const a=this;a.app=e;const n=r(),l=p({on:{}},e.params.autocomplete);let i,c;void 0===l.searchbarDisableButton&&(l.searchbarDisableButton="aurora"!==e.theme),a.useModulesParams(l),a.params=p(l,o),a.params.openerEl&&(i=t(a.params.openerEl),i.length&&(i[0].f7Autocomplete=a)),a.params.inputEl&&(c=t(a.params.inputEl),c.length&&(c[0].f7Autocomplete=a));const u=s();let m=o.url;!m&&i&&i.length&&(i.attr("href")?m=i.attr("href"):i.find("a").length>0&&(m=i.find("a").attr("href"))),m&&"#"!==m&&""!==m||(m=a.params.url);const h=a.params.multiple?"checkbox":"radio";p(a,{$openerEl:i,openerEl:i&&i[0],$inputEl:c,inputEl:c&&c[0],id:u,url:m,value:a.params.value||[],inputType:h,inputName:`${h}-${u}`,$modalEl:void 0,$dropdownEl:void 0});let v="";function f(){let e=a.$inputEl.val().trim();a.params.source&&a.params.source.call(a,e,(o=>{let t="";const r=a.params.limit?Math.min(a.params.limit,o.length):o.length;let n,l,p;a.items=o,a.params.highlightMatches&&(e=e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),n=new RegExp(`(${e})`,"i"));for(let e=0;e<r;e+=1){const r="object"==typeof o[e]?o[e][a.params.valueProperty]:o[e],s="object"==typeof o[e]?o[e][a.params.textProperty]:o[e];0===e&&(l=r,p=a.items[e]),t+=a.renderItem({value:r,text:a.params.highlightMatches?s.replace(n,"<b>$1</b>"):s},e)}if(""===t&&""===e&&a.params.dropdownPlaceholderText&&(t+=a.renderItem({placeholder:!0,text:a.params.dropdownPlaceholderText})),a.$dropdownEl.find("ul").html(t),a.params.typeahead){if(!l||!p)return;if(0!==l.toLowerCase().indexOf(e.toLowerCase()))return;if(v.toLowerCase()===e.toLowerCase())return void(a.value=[]);if(0===v.toLowerCase().indexOf(e.toLowerCase()))return v=e,void(a.value=[]);c.val(l),c[0].setSelectionRange(e.length,l.length);const o="object"==typeof a.value[0]?a.value[0][a.params.valueProperty]:a.value[0];o&&l.toLowerCase()===o.toLowerCase()||(a.value=[p],a.emit("local::change autocompleteChange",[p]))}v=e}))}function $(){const e=this,o=e.value;let r,n,l;if(t(e).parents(".autocomplete-values").length>0){if("checkbox"===a.inputType&&!e.checked){for(let e=0;e<a.value.length;e+=1)l="string"==typeof a.value[e]?a.value[e]:a.value[e][a.params.valueProperty],l!==o&&1*l!=1*o||a.value.splice(e,1);a.updateValues(),a.emit("local::change autocompleteChange",a.value)}}else{for(let e=0;e<a.items.length;e+=1)n="object"==typeof a.items[e]?a.items[e][a.params.valueProperty]:a.items[e],n!==o&&1*n!=1*o||(r=a.items[e]);if("radio"===a.inputType)a.value=[r];else if(e.checked)a.value.push(r);else for(let e=0;e<a.value.length;e+=1)l="object"==typeof a.value[e]?a.value[e][a.params.valueProperty]:a.value[e],l!==o&&1*l!=1*o||a.value.splice(e,1);a.updateValues(),("radio"===a.inputType&&e.checked||"checkbox"===a.inputType)&&a.emit("local::change autocompleteChange",a.value)}}function g(e){const o=t(e.target);o.is(a.$inputEl[0])||a.$dropdownEl&&o.closest(a.$dropdownEl[0]).length||a.close()}function b(){a.open()}function w(){a.open()}function x(){a.$dropdownEl.find("label.active-state").length>0||setTimeout((()=>{a.close()}),0)}function E(){a.positionDropdown()}function C(e){if(!a.opened)return;if(27===e.keyCode)return e.preventDefault(),void a.$inputEl.blur();if(13===e.keyCode){const o=a.$dropdownEl.find(".autocomplete-dropdown-selected label");return o.length?(e.preventDefault(),o.trigger("click"),void a.$inputEl.blur()):void(a.params.typeahead&&(e.preventDefault(),a.$inputEl.blur()))}if(40!==e.keyCode&&38!==e.keyCode)return;e.preventDefault();const o=a.$dropdownEl.find(".autocomplete-dropdown-selected");let t;o.length?(t=o[40===e.keyCode?"next":"prev"]("li"),t.length||(t=a.$dropdownEl.find("li").eq(40===e.keyCode?0:a.$dropdownEl.find("li").length-1))):t=a.$dropdownEl.find("li").eq(40===e.keyCode?0:a.$dropdownEl.find("li").length-1),t.hasClass("autocomplete-dropdown-placeholder")||(o.removeClass("autocomplete-dropdown-selected"),t.addClass("autocomplete-dropdown-selected"))}function y(){const e=t(this);let o;for(let t=0;t<a.items.length;t+=1){const r="object"==typeof a.items[t]?a.items[t][a.params.valueProperty]:a.items[t],n=e.attr("data-value");r!==n&&1*r!=1*n||(o=a.items[t])}a.params.updateInputValueOnSelect&&(a.$inputEl.val("object"==typeof o?o[a.params.valueProperty]:o),a.$inputEl.trigger("input change")),a.value=[o],a.emit("local::change autocompleteChange",[o]),a.close()}return a.attachEvents=function(){"dropdown"!==a.params.openIn&&a.$openerEl&&a.$openerEl.on("click",b),"dropdown"===a.params.openIn&&a.$inputEl&&(a.$inputEl.on("focus",w),a.$inputEl.on(a.params.inputEvents,f),n.android?t("html").on("click",g):a.$inputEl.on("blur",x),a.$inputEl.on("keydown",C))},a.detachEvents=function(){"dropdown"!==a.params.openIn&&a.$openerEl&&a.$openerEl.off("click",b),"dropdown"===a.params.openIn&&a.$inputEl&&(a.$inputEl.off("focus",w),a.$inputEl.off(a.params.inputEvents,f),n.android?t("html").off("click",g):a.$inputEl.off("blur",x),a.$inputEl.off("keydown",C))},a.attachDropdownEvents=function(){a.$dropdownEl.on("click","label",y),e.on("resize",E)},a.detachDropdownEvents=function(){a.$dropdownEl.off("click","label",y),e.off("resize",E)},a.attachPageEvents=function(){a.$el.on("change",'input[type="radio"], input[type="checkbox"]',$),a.params.closeOnSelect&&!a.params.multiple&&a.$el.once("click",".list label",(()=>{d((()=>{a.close()}))}))},a.detachPageEvents=function(){a.$el.off("change",'input[type="radio"], input[type="checkbox"]',$)},a.useModules(),a.init(),a}get view(){const e=this,{$openerEl:o,$inputEl:t,app:a}=e;let r;if(e.params.view)r=e.params.view;else if(o||t){const e=o||t;r=e.closest(".view").length&&e.closest(".view")[0].f7View}return r||(r=a.views.main),r}positionDropdown(){const e=this,{$inputEl:o,app:a,$dropdownEl:r}=e,n=o.parents(".page-content");if(0===n.length)return;const l=o.offset(),p=o[0].offsetWidth,s=o[0].offsetHeight,d=o.parents(".list");let i;d.parents().each((e=>{if(i)return;const o=t(e);o.parent(n).length&&(i=o)}));const c=d.offset(),u=parseInt(n.css("padding-bottom"),10),m=d.length>0?c.left-n.offset().left:0,h=l.left-(d.length>0?c.left:0)-(a.rtl,0),v=l.top-(n.offset().top-n[0].scrollTop),f=n[0].scrollHeight-u-(v+n[0].scrollTop)-o[0].offsetHeight,$=a.rtl?"padding-right":"padding-left";let g;d.length&&!e.params.expandInput&&(g=(a.rtl?d[0].offsetWidth-h-p:h)-("md"===a.theme?16:15)),r.css({left:`${d.length>0?m:h}px`,top:`${v+n[0].scrollTop+s}px`,width:`${d.length>0?d[0].offsetWidth:p}px`}),r.children(".autocomplete-dropdown-inner").css({maxHeight:`${f}px`,[$]:d.length>0&&!e.params.expandInput?`${g}px`:""})}focus(){this.$el.find("input[type=search]").focus()}source(e){const o=this;if(!o.params.source)return;const{$el:t}=o;o.params.source.call(o,e,(a=>{let r="";const n=o.params.limit?Math.min(o.params.limit,a.length):a.length;o.items=a;for(let e=0;e<n;e+=1){let t=!1;const n="object"==typeof a[e]?a[e][o.params.valueProperty]:a[e];for(let e=0;e<o.value.length;e+=1){const a="object"==typeof o.value[e]?o.value[e][o.params.valueProperty]:o.value[e];a!==n&&1*a!=1*n||(t=!0)}r+=o.renderItem({value:n,text:"object"==typeof a[e]?a[e][o.params.textProperty]:a[e],inputType:o.inputType,id:o.id,inputName:o.inputName,selected:t},e)}t.find(".autocomplete-found ul").html(r),0===a.length?0!==e.length?(t.find(".autocomplete-not-found").show(),t.find(".autocomplete-found, .autocomplete-values").hide()):(t.find(".autocomplete-values").show(),t.find(".autocomplete-found, .autocomplete-not-found").hide()):(t.find(".autocomplete-found").show(),t.find(".autocomplete-not-found, .autocomplete-values").hide())}))}updateValues(){const e=this;let o="";for(let t=0;t<e.value.length;t+=1)o+=e.renderItem({value:"object"==typeof e.value[t]?e.value[t][e.params.valueProperty]:e.value[t],text:"object"==typeof e.value[t]?e.value[t][e.params.textProperty]:e.value[t],inputType:e.inputType,id:e.id,inputName:`${e.inputName}-checked}`,selected:!0},t);e.$el.find(".autocomplete-values ul").html(o)}preloaderHide(){const e=this;"dropdown"===e.params.openIn&&e.$dropdownEl?e.$dropdownEl.find(".autocomplete-preloader").removeClass("autocomplete-preloader-visible"):t(".autocomplete-preloader").removeClass("autocomplete-preloader-visible")}preloaderShow(){const e=this;"dropdown"===e.params.openIn&&e.$dropdownEl?e.$dropdownEl.find(".autocomplete-preloader").addClass("autocomplete-preloader-visible"):t(".autocomplete-preloader").addClass("autocomplete-preloader-visible")}renderPreloader(){const e=this,o={iosPreloaderContent:i,mdPreloaderContent:c,auroraPreloaderContent:u};return $jsx("div",{class:"autocomplete-preloader preloader "+(e.params.preloaderColor?`color-${e.params.preloaderColor}`:"")},o[`${e.app.theme}PreloaderContent`]||"")}renderSearchbar(){const e=this;return e.params.renderSearchbar?e.params.renderSearchbar.call(e):$jsx("form",{class:"searchbar"},$jsx("div",{class:"searchbar-inner"},$jsx("div",{class:"searchbar-input-wrap"},$jsx("input",{type:"search",spellcheck:e.params.searchbarSpellcheck||"false",placeholder:e.params.searchbarPlaceholder}),$jsx("i",{class:"searchbar-icon"}),$jsx("span",{class:"input-clear-button"})),e.params.searchbarDisableButton&&$jsx("span",{class:"searchbar-disable-button"},e.params.searchbarDisableText)))}renderItem(e,o){const t=this;if(t.params.renderItem)return t.params.renderItem.call(t,e,o);const a=e.value&&"string"==typeof e.value?e.value.replace(/"/g,"""):e.value;return"dropdown"!==t.params.openIn?$jsx("li",null,$jsx("label",{class:`item-${e.inputType} item-content`},$jsx("input",{type:e.inputType,name:e.inputName,value:a,_checked:e.selected}),$jsx("i",{class:`icon icon-${e.inputType}`}),$jsx("div",{class:"item-inner"},$jsx("div",{class:"item-title"},e.text)))):e.placeholder?$jsx("li",{class:"autocomplete-dropdown-placeholder"},$jsx("label",{class:"item-content"},$jsx("div",{class:"item-inner"},$jsx("div",{class:"item-title"},e.text)))):$jsx("li",null,$jsx("label",{class:"item-radio item-content","data-value":a},$jsx("div",{class:"item-inner"},$jsx("div",{class:"item-title"},e.text))))}renderNavbar(){const e=this;if(e.params.renderNavbar)return e.params.renderNavbar.call(e);let o=e.params.pageTitle;void 0===o&&e.$openerEl&&e.$openerEl.length&&(o=e.$openerEl.find(".item-title").text().trim());const t="popup"===e.params.openIn,a=t?e.params.preloader&&$jsx("div",{class:"left"},e.renderPreloader()):$jsx("div",{class:"left sliding"},$jsx("a",{class:"link back"},$jsx("i",{class:"icon icon-back"}),$jsx("span",{class:"if-not-md"},e.params.pageBackLinkText))),r=t?$jsx("div",{class:"right"},$jsx("a",{class:"link popup-close","data-popup":".autocomplete-popup"},e.params.popupCloseLinkText)):e.params.preloader&&$jsx("div",{class:"right"},e.renderPreloader());return $jsx("div",{class:"navbar "+(e.params.navbarColorTheme?`color-${e.params.navbarColorTheme}`:"")},$jsx("div",{class:"navbar-bg"}),$jsx("div",{class:"navbar-inner "+(e.params.navbarColorTheme?`color-${e.params.navbarColorTheme}`:"")},a,o&&$jsx("div",{class:"title sliding"},o),r,$jsx("div",{class:"subnavbar sliding"},e.renderSearchbar())))}renderDropdown(){const e=this;return e.params.renderDropdown?e.params.renderDropdown.call(e,e.items):$jsx("div",{class:"autocomplete-dropdown"},$jsx("div",{class:"autocomplete-dropdown-inner"},$jsx("div",{class:"list "+(e.params.expandInput?"":"no-safe-areas")},$jsx("ul",null))),e.params.preloader&&e.renderPreloader())}renderPage(e){const o=this;return o.params.renderPage?o.params.renderPage.call(o,o.items):$jsx("div",{class:"page page-with-subnavbar autocomplete-page","data-name":"autocomplete-page"},o.renderNavbar(e),$jsx("div",{class:"searchbar-backdrop"}),$jsx("div",{class:"page-content"},$jsx("div",{class:`list autocomplete-list autocomplete-found autocomplete-list-${o.id} ${o.params.formColorTheme?`color-${o.params.formColorTheme}`:""}`},$jsx("ul",null)),$jsx("div",{class:"list autocomplete-not-found"},$jsx("ul",null,$jsx("li",{class:"item-content"},$jsx("div",{class:"item-inner"},$jsx("div",{class:"item-title"},o.params.notFoundText))))),$jsx("div",{class:"list autocomplete-values"},$jsx("ul",null))))}renderPopup(){const e=this;return e.params.renderPopup?e.params.renderPopup.call(e,e.items):$jsx("div",{class:"popup autocomplete-popup"},$jsx("div",{class:"view"},e.renderPage(!0),";"))}onOpen(e,o){const a=this,r=a.app,n=t(o);if(a.$el=n,a.el=n[0],a.openedIn=e,a.opened=!0,"dropdown"===a.params.openIn)a.attachDropdownEvents(),a.$dropdownEl.addClass("autocomplete-dropdown-in"),a.$inputEl.trigger("input");else{let e=n.find(".searchbar");"page"===a.params.openIn&&"ios"===r.theme&&0===e.length&&(e=t(r.navbar.getElByPage(n)).find(".searchbar")),a.searchbar=r.searchbar.create({el:e,backdropEl:n.find(".searchbar-backdrop"),customSearch:!0,on:{search(e,o){0===o.length&&a.searchbar.enabled?a.searchbar.backdropShow():a.searchbar.backdropHide(),a.source(o)}}}),a.attachPageEvents(),a.updateValues(),a.params.requestSourceOnOpen&&a.source("")}a.emit("local::open autocompleteOpen",a)}autoFocus(){const e=this;return e.searchbar&&e.searchbar.$inputEl&&e.searchbar.$inputEl.focus(),e}onOpened(){const e=this;"dropdown"!==e.params.openIn&&e.params.autoFocus&&e.autoFocus(),e.emit("local::opened autocompleteOpened",e)}onClose(){const e=this;e.destroyed||(e.searchbar&&e.searchbar.destroy&&(e.searchbar.destroy(),e.searchbar=null,delete e.searchbar),"dropdown"===e.params.openIn?(e.detachDropdownEvents(),e.$dropdownEl.removeClass("autocomplete-dropdown-in").remove(),e.$inputEl.parents(".item-content-dropdown-expanded").removeClass("item-content-dropdown-expanded")):e.detachPageEvents(),e.emit("local::close autocompleteClose",e))}onClosed(){const e=this;e.destroyed||(e.opened=!1,e.$el=null,e.el=null,delete e.$el,delete e.el,e.emit("local::closed autocompleteClosed",e))}openPage(){const e=this;if(e.opened)return e;const o=e.renderPage();return e.view.router.navigate({url:e.url,route:{content:o,path:e.url,on:{pageBeforeIn(o,t){e.onOpen("page",t.el)},pageAfterIn(o,t){e.onOpened("page",t.el)},pageBeforeOut(o,t){e.onClose("page",t.el)},pageAfterOut(o,t){e.onClosed("page",t.el)}},options:{animate:e.params.animate}}}),e}openPopup(){const e=this;if(e.opened)return e;const o={content:e.renderPopup(),animate:e.params.animate,push:e.params.popupPush,swipeToClose:e.params.popupSwipeToClose,on:{popupOpen(o){e.onOpen("popup",o.el)},popupOpened(o){e.onOpened("popup",o.el)},popupClose(o){e.onClose("popup",o.el)},popupClosed(o){e.onClosed("popup",o.el)}}};return e.params.routableModals&&e.view?e.view.router.navigate({url:e.url,route:{path:e.url,popup:o}}):e.modal=e.app.popup.create(o).open(e.params.animate),e}openDropdown(){const e=this;e.$dropdownEl||(e.$dropdownEl=t(e.renderDropdown()));e.$inputEl.parents(".list").length&&e.$inputEl.parents(".item-content").length>0&&e.params.expandInput&&e.$inputEl.parents(".item-content").addClass("item-content-dropdown-expanded");const o=e.$inputEl.parents(".page-content");e.params.dropdownContainerEl?t(e.params.dropdownContainerEl).append(e.$dropdownEl):0===o.length?e.$dropdownEl.insertAfter(e.$inputEl):(e.positionDropdown(),o.append(e.$dropdownEl)),e.onOpen("dropdown",e.$dropdownEl),e.onOpened("dropdown",e.$dropdownEl)}open(){const e=this;if(e.opened)return e;return e[`open${e.params.openIn.split("").map(((e,o)=>0===o?e.toUpperCase():e)).join("")}`](),e}close(){const e=this;return e.opened?("dropdown"===e.params.openIn?(e.onClose(),e.onClosed()):e.params.routableModals&&e.view||"page"===e.openedIn?e.view.router.back({animate:e.params.animate}):(e.modal.once("modalClosed",(()=>{d((()=>{e.destroyed||(e.modal.destroy(),delete e.modal)}))})),e.modal.close()),e):e}init(){this.attachEvents()}destroy(){const e=this;e.emit("local::beforeDestroy autocompleteBeforeDestroy",e),e.detachEvents(),e.$inputEl&&e.$inputEl[0]&&delete e.$inputEl[0].f7Autocomplete,e.$openerEl&&e.$openerEl[0]&&delete e.$openerEl[0].f7Autocomplete,m(e),e.destroyed=!0}}var v={name:"autocomplete",params:{autocomplete:{openerEl:void 0,inputEl:void 0,view:void 0,dropdownContainerEl:void 0,dropdownPlaceholderText:void 0,typeahead:!1,highlightMatches:!0,expandInput:!1,updateInputValueOnSelect:!0,inputEvents:"input",value:void 0,multiple:!1,source:void 0,limit:void 0,valueProperty:"id",textProperty:"text",openIn:"page",pageBackLinkText:"Back",popupCloseLinkText:"Close",pageTitle:void 0,searchbarPlaceholder:"Search...",searchbarDisableText:"Cancel",searchbarDisableButton:void 0,searchbarSpellcheck:!1,popupPush:!1,popupSwipeToClose:void 0,animate:!0,autoFocus:!1,closeOnSelect:!1,notFoundText:"Nothing found",requestSourceOnOpen:!1,preloaderColor:void 0,preloader:!1,formColorTheme:void 0,navbarColorTheme:void 0,routableModals:!1,url:"select/",renderDropdown:void 0,renderPage:void 0,renderPopup:void 0,renderItem:void 0,renderSearchbar:void 0,renderNavbar:void 0}},static:{Autocomplete:h},create(){const e=this;e.autocomplete=p(l({defaultSelector:void 0,constructor:h,app:e,domProp:"f7Autocomplete"}),{open(o){const t=e.autocomplete.get(o);if(t&&t.open)return t.open()},close(o){const t=e.autocomplete.get(o);if(t&&t.close)return t.close()}})}};if(o){if(e.prototype.modules&&e.prototype.modules[v.name])return;e.use(v),e.instance&&(e.instance.useModuleParams(v,e.instance.params),e.instance.useModule(v))}return v}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))
|
|
1
|
+
(function framework7ComponentLoader(e,o){void 0===o&&(o=!0);var t=e.$,a=e.utils,r=e.getDevice,n=(e.getSupport,e.Class),l=(e.Modal,e.ConstructorMethods),p=(e.ModalMethods,a.extend),s=a.id,d=a.nextTick,i=a.iosPreloaderContent,c=a.mdPreloaderContent,u=a.auroraPreloaderContent,m=a.deleteProps;class h extends n{constructor(e,o){void 0===o&&(o={}),super(o,[e]);const a=this;a.app=e;const n=r(),l=p({on:{}},e.params.autocomplete);let i,c;void 0===l.searchbarDisableButton&&(l.searchbarDisableButton="aurora"!==e.theme),a.useModulesParams(l),a.params=p(l,o),a.params.openerEl&&(i=t(a.params.openerEl),i.length&&(i[0].f7Autocomplete=a)),a.params.inputEl&&(c=t(a.params.inputEl),c.length&&(c[0].f7Autocomplete=a));const u=s();let m=o.url;!m&&i&&i.length&&(i.attr("href")?m=i.attr("href"):i.find("a").length>0&&(m=i.find("a").attr("href"))),m&&"#"!==m&&""!==m||(m=a.params.url);const h=a.params.multiple?"checkbox":"radio";p(a,{$openerEl:i,openerEl:i&&i[0],$inputEl:c,inputEl:c&&c[0],id:u,url:m,value:a.params.value||[],inputType:h,inputName:`${h}-${u}`,$modalEl:void 0,$dropdownEl:void 0});let v="";function f(){let e=a.$inputEl.val().trim();a.params.source&&a.params.source.call(a,e,(o=>{let t="";const r=a.params.limit?Math.min(a.params.limit,o.length):o.length;let n,l,p;a.items=o,a.params.highlightMatches&&(e=e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),n=new RegExp(`(${e})`,"i"));for(let e=0;e<r;e+=1){const r="object"==typeof o[e]?o[e][a.params.valueProperty]:o[e],s="object"==typeof o[e]?o[e][a.params.textProperty]:o[e];0===e&&(l=r,p=a.items[e]),t+=a.renderItem({value:r,text:a.params.highlightMatches?s.replace(n,"<b>$1</b>"):s},e)}if(""===t&&""===e&&a.params.dropdownPlaceholderText&&(t+=a.renderItem({placeholder:!0,text:a.params.dropdownPlaceholderText})),a.$dropdownEl.find("ul").html(t),a.params.typeahead){if(!l||!p)return;if(0!==l.toLowerCase().indexOf(e.toLowerCase()))return;if(v.toLowerCase()===e.toLowerCase())return void(a.value=[]);if(0===v.toLowerCase().indexOf(e.toLowerCase()))return v=e,void(a.value=[]);c.val(l),c[0].setSelectionRange(e.length,l.length);const o="object"==typeof a.value[0]?a.value[0][a.params.valueProperty]:a.value[0];o&&l.toLowerCase()===o.toLowerCase()||(a.value=[p],a.emit("local::change autocompleteChange",[p]))}v=e}))}function $(){const e=this,o=e.value;let r,n,l;if(t(e).parents(".autocomplete-values").length>0){if("checkbox"===a.inputType&&!e.checked){for(let e=0;e<a.value.length;e+=1)l="string"==typeof a.value[e]?a.value[e]:a.value[e][a.params.valueProperty],l!==o&&1*l!=1*o||a.value.splice(e,1);a.updateValues(),a.emit("local::change autocompleteChange",a.value)}}else{for(let e=0;e<a.items.length;e+=1)n="object"==typeof a.items[e]?a.items[e][a.params.valueProperty]:a.items[e],n!==o&&1*n!=1*o||(r=a.items[e]);if("radio"===a.inputType)a.value=[r];else if(e.checked)a.value.push(r);else for(let e=0;e<a.value.length;e+=1)l="object"==typeof a.value[e]?a.value[e][a.params.valueProperty]:a.value[e],l!==o&&1*l!=1*o||a.value.splice(e,1);a.updateValues(),("radio"===a.inputType&&e.checked||"checkbox"===a.inputType)&&a.emit("local::change autocompleteChange",a.value)}}function g(e){const o=t(e.target);o.is(a.$inputEl[0])||a.$dropdownEl&&o.closest(a.$dropdownEl[0]).length||a.close()}function b(){a.open()}function w(){a.open()}function x(){a.$dropdownEl.find("label.active-state").length>0||setTimeout((()=>{a.close()}),0)}function E(){a.positionDropdown()}function C(e){if(!a.opened)return;if(27===e.keyCode)return e.preventDefault(),void a.$inputEl.blur();if(13===e.keyCode){const o=a.$dropdownEl.find(".autocomplete-dropdown-selected label");return o.length?(e.preventDefault(),o.trigger("click"),void a.$inputEl.blur()):void(a.params.typeahead&&(e.preventDefault(),a.$inputEl.blur()))}if(40!==e.keyCode&&38!==e.keyCode)return;e.preventDefault();const o=a.$dropdownEl.find(".autocomplete-dropdown-selected");let t;o.length?(t=o[40===e.keyCode?"next":"prev"]("li"),t.length||(t=a.$dropdownEl.find("li").eq(40===e.keyCode?0:a.$dropdownEl.find("li").length-1))):t=a.$dropdownEl.find("li").eq(40===e.keyCode?0:a.$dropdownEl.find("li").length-1),t.hasClass("autocomplete-dropdown-placeholder")||(o.removeClass("autocomplete-dropdown-selected"),t.addClass("autocomplete-dropdown-selected"))}function y(){const e=t(this);let o;for(let t=0;t<a.items.length;t+=1){const r="object"==typeof a.items[t]?a.items[t][a.params.valueProperty]:a.items[t],n=e.attr("data-value");r!==n&&1*r!=1*n||(o=a.items[t])}a.params.updateInputValueOnSelect&&(a.$inputEl.val("object"==typeof o?o[a.params.valueProperty]:o),a.$inputEl.trigger("input change")),a.value=[o],a.emit("local::change autocompleteChange",[o]),a.close()}return a.attachEvents=function(){"dropdown"!==a.params.openIn&&a.$openerEl&&a.$openerEl.on("click",b),"dropdown"===a.params.openIn&&a.$inputEl&&(a.$inputEl.on("focus",w),a.$inputEl.on(a.params.inputEvents,f),n.android?t("html").on("click",g):a.$inputEl.on("blur",x),a.$inputEl.on("keydown",C))},a.detachEvents=function(){"dropdown"!==a.params.openIn&&a.$openerEl&&a.$openerEl.off("click",b),"dropdown"===a.params.openIn&&a.$inputEl&&(a.$inputEl.off("focus",w),a.$inputEl.off(a.params.inputEvents,f),n.android?t("html").off("click",g):a.$inputEl.off("blur",x),a.$inputEl.off("keydown",C))},a.attachDropdownEvents=function(){a.$dropdownEl.on("click","label",y),e.on("resize",E)},a.detachDropdownEvents=function(){a.$dropdownEl.off("click","label",y),e.off("resize",E)},a.attachPageEvents=function(){a.$el.on("change",'input[type="radio"], input[type="checkbox"]',$),a.params.closeOnSelect&&!a.params.multiple&&a.$el.once("click",".list label",(()=>{d((()=>{a.close()}))}))},a.detachPageEvents=function(){a.$el.off("change",'input[type="radio"], input[type="checkbox"]',$)},a.useModules(),a.init(),a}get view(){const e=this,{$openerEl:o,$inputEl:t,app:a}=e;let r;if(e.params.view)r=e.params.view;else if(o||t){const e=o||t;r=e.closest(".view").length&&e.closest(".view")[0].f7View}return r||(r=a.views.main),r}positionDropdown(){const e=this,{$inputEl:o,app:a,$dropdownEl:r}=e,n=o.parents(".page-content");if(0===n.length)return;const l=o.offset(),p=o[0].offsetWidth,s=o[0].offsetHeight,d=o.parents(".list");let i;d.parents().each((e=>{if(i)return;const o=t(e);o.parent(n).length&&(i=o)}));const c=d.offset(),u=parseInt(n.css("padding-bottom"),10),m=d.length>0?c.left-n.offset().left:0,h=l.left-(d.length>0?c.left:0)-(a.rtl,0),v=l.top-(n.offset().top-n[0].scrollTop),f=n[0].scrollHeight-u-(v+n[0].scrollTop)-o[0].offsetHeight,$=a.rtl?"padding-right":"padding-left";let g;d.length&&!e.params.expandInput&&(g=(a.rtl?d[0].offsetWidth-h-p:h)-("md"===a.theme?16:15)),r.css({left:`${d.length>0?m:h}px`,top:`${v+n[0].scrollTop+s}px`,width:`${d.length>0?d[0].offsetWidth:p}px`}),r.children(".autocomplete-dropdown-inner").css({maxHeight:`${f}px`,[$]:d.length>0&&!e.params.expandInput?`${g}px`:""})}focus(){this.$el.find("input[type=search]").focus()}source(e){const o=this;if(!o.params.source)return;const{$el:t}=o;o.params.source.call(o,e,(a=>{let r="";const n=o.params.limit?Math.min(o.params.limit,a.length):a.length;o.items=a;for(let e=0;e<n;e+=1){let t=!1;const n="object"==typeof a[e]?a[e][o.params.valueProperty]:a[e];for(let e=0;e<o.value.length;e+=1){const a="object"==typeof o.value[e]?o.value[e][o.params.valueProperty]:o.value[e];a!==n&&1*a!=1*n||(t=!0)}r+=o.renderItem({value:n,text:"object"==typeof a[e]?a[e][o.params.textProperty]:a[e],inputType:o.inputType,id:o.id,inputName:o.inputName,selected:t},e)}t.find(".autocomplete-found ul").html(r),0===a.length?0!==e.length?(t.find(".autocomplete-not-found").show(),t.find(".autocomplete-found, .autocomplete-values").hide()):(t.find(".autocomplete-values").show(),t.find(".autocomplete-found, .autocomplete-not-found").hide()):(t.find(".autocomplete-found").show(),t.find(".autocomplete-not-found, .autocomplete-values").hide())}))}updateValues(){const e=this;let o="";for(let t=0;t<e.value.length;t+=1)o+=e.renderItem({value:"object"==typeof e.value[t]?e.value[t][e.params.valueProperty]:e.value[t],text:"object"==typeof e.value[t]?e.value[t][e.params.textProperty]:e.value[t],inputType:e.inputType,id:e.id,inputName:`${e.inputName}-checked}`,selected:!0},t);e.$el.find(".autocomplete-values ul").html(o)}preloaderHide(){const e=this;"dropdown"===e.params.openIn&&e.$dropdownEl?e.$dropdownEl.find(".autocomplete-preloader").removeClass("autocomplete-preloader-visible"):t(".autocomplete-preloader").removeClass("autocomplete-preloader-visible")}preloaderShow(){const e=this;"dropdown"===e.params.openIn&&e.$dropdownEl?e.$dropdownEl.find(".autocomplete-preloader").addClass("autocomplete-preloader-visible"):t(".autocomplete-preloader").addClass("autocomplete-preloader-visible")}renderPreloader(){const e=this,o={iosPreloaderContent:i,mdPreloaderContent:c,auroraPreloaderContent:u};return $jsx("div",{class:"autocomplete-preloader preloader "+(e.params.preloaderColor?`color-${e.params.preloaderColor}`:"")},o[`${e.app.theme}PreloaderContent`]||"")}renderSearchbar(){const e=this;return e.params.renderSearchbar?e.params.renderSearchbar.call(e):$jsx("form",{class:"searchbar"},$jsx("div",{class:"searchbar-inner"},$jsx("div",{class:"searchbar-input-wrap"},$jsx("input",{type:"search",spellcheck:e.params.searchbarSpellcheck||"false",placeholder:e.params.searchbarPlaceholder}),$jsx("i",{class:"searchbar-icon"}),$jsx("span",{class:"input-clear-button"})),e.params.searchbarDisableButton&&$jsx("span",{class:"searchbar-disable-button"},e.params.searchbarDisableText)))}renderItem(e,o){const t=this;if(t.params.renderItem)return t.params.renderItem.call(t,e,o);const a=e.value&&"string"==typeof e.value?e.value.replace(/"/g,"""):e.value;return"dropdown"!==t.params.openIn?$jsx("li",null,$jsx("label",{class:`item-${e.inputType} item-content`},$jsx("input",{type:e.inputType,name:e.inputName,value:a,_checked:e.selected}),$jsx("i",{class:`icon icon-${e.inputType}`}),$jsx("div",{class:"item-inner"},$jsx("div",{class:"item-title"},e.text)))):e.placeholder?$jsx("li",{class:"autocomplete-dropdown-placeholder"},$jsx("label",{class:"item-content"},$jsx("div",{class:"item-inner"},$jsx("div",{class:"item-title"},e.text)))):$jsx("li",null,$jsx("label",{class:"item-radio item-content","data-value":a},$jsx("div",{class:"item-inner"},$jsx("div",{class:"item-title"},e.text))))}renderNavbar(){const e=this;if(e.params.renderNavbar)return e.params.renderNavbar.call(e);let o=e.params.pageTitle;void 0===o&&e.$openerEl&&e.$openerEl.length&&(o=e.$openerEl.find(".item-title").text().trim());const t="popup"===e.params.openIn,a=t?e.params.preloader&&$jsx("div",{class:"left"},e.renderPreloader()):$jsx("div",{class:"left sliding"},$jsx("a",{class:"link back"},$jsx("i",{class:"icon icon-back"}),$jsx("span",{class:"if-not-md"},e.params.pageBackLinkText))),r=t?$jsx("div",{class:"right"},$jsx("a",{class:"link popup-close","data-popup":".autocomplete-popup"},e.params.popupCloseLinkText)):e.params.preloader&&$jsx("div",{class:"right"},e.renderPreloader());return $jsx("div",{class:"navbar "+(e.params.navbarColorTheme?`color-${e.params.navbarColorTheme}`:"")},$jsx("div",{class:"navbar-bg"}),$jsx("div",{class:"navbar-inner "+(e.params.navbarColorTheme?`color-${e.params.navbarColorTheme}`:"")},a,o&&$jsx("div",{class:"title sliding"},o),r,$jsx("div",{class:"subnavbar sliding"},e.renderSearchbar())))}renderDropdown(){const e=this;return e.params.renderDropdown?e.params.renderDropdown.call(e,e.items):$jsx("div",{class:"autocomplete-dropdown"},$jsx("div",{class:"autocomplete-dropdown-inner"},$jsx("div",{class:"list "+(e.params.expandInput?"":"no-safe-areas")},$jsx("ul",null))),e.params.preloader&&e.renderPreloader())}renderPage(e){const o=this;return o.params.renderPage?o.params.renderPage.call(o,o.items):$jsx("div",{class:"page page-with-subnavbar autocomplete-page","data-name":"autocomplete-page"},o.renderNavbar(e),$jsx("div",{class:"searchbar-backdrop"}),$jsx("div",{class:"page-content"},$jsx("div",{class:`list autocomplete-list autocomplete-found autocomplete-list-${o.id} ${o.params.formColorTheme?`color-${o.params.formColorTheme}`:""}`},$jsx("ul",null)),$jsx("div",{class:"list autocomplete-not-found"},$jsx("ul",null,$jsx("li",{class:"item-content"},$jsx("div",{class:"item-inner"},$jsx("div",{class:"item-title"},o.params.notFoundText))))),$jsx("div",{class:"list autocomplete-values"},$jsx("ul",null))))}renderPopup(){const e=this;return e.params.renderPopup?e.params.renderPopup.call(e,e.items):$jsx("div",{class:"popup autocomplete-popup"},$jsx("div",{class:"view"},e.renderPage(!0),";"))}onOpen(e,o){const a=this,r=a.app,n=t(o);if(a.$el=n,a.el=n[0],a.openedIn=e,a.opened=!0,"dropdown"===a.params.openIn)a.attachDropdownEvents(),a.$dropdownEl.addClass("autocomplete-dropdown-in"),a.$inputEl.trigger("input");else{let e=n.find(".searchbar");"page"===a.params.openIn&&"ios"===r.theme&&0===e.length&&(e=t(r.navbar.getElByPage(n)).find(".searchbar")),a.searchbar=r.searchbar.create({el:e,backdropEl:n.find(".searchbar-backdrop"),customSearch:!0,on:{search(e,o){0===o.length&&a.searchbar.enabled?a.searchbar.backdropShow():a.searchbar.backdropHide(),a.source(o)}}}),a.attachPageEvents(),a.updateValues(),a.params.requestSourceOnOpen&&a.source("")}a.emit("local::open autocompleteOpen",a)}autoFocus(){const e=this;return e.searchbar&&e.searchbar.$inputEl&&e.searchbar.$inputEl.focus(),e}onOpened(){const e=this;"dropdown"!==e.params.openIn&&e.params.autoFocus&&e.autoFocus(),e.emit("local::opened autocompleteOpened",e)}onClose(){const e=this;e.destroyed||(e.searchbar&&e.searchbar.destroy&&(e.searchbar.destroy(),e.searchbar=null,delete e.searchbar),"dropdown"===e.params.openIn?(e.detachDropdownEvents(),e.$dropdownEl.removeClass("autocomplete-dropdown-in").remove(),e.$inputEl.parents(".item-content-dropdown-expanded").removeClass("item-content-dropdown-expanded")):e.detachPageEvents(),e.emit("local::close autocompleteClose",e))}onClosed(){const e=this;e.destroyed||(e.opened=!1,e.$el=null,e.el=null,delete e.$el,delete e.el,e.emit("local::closed autocompleteClosed",e))}openPage(){const e=this;if(e.opened)return e;const o=e.renderPage();return e.view.router.navigate({url:e.url,route:{content:o,path:e.url,on:{pageBeforeIn(o,t){e.onOpen("page",t.el)},pageAfterIn(o,t){e.onOpened("page",t.el)},pageBeforeOut(o,t){e.onClose("page",t.el)},pageAfterOut(o,t){e.onClosed("page",t.el)}},options:{animate:e.params.animate}}}),e}openPopup(){const e=this;if(e.opened)return e;const o={content:e.renderPopup(),animate:e.params.animate,push:e.params.popupPush,swipeToClose:e.params.popupSwipeToClose,on:{popupOpen(o){e.onOpen("popup",o.el)},popupOpened(o){e.onOpened("popup",o.el)},popupClose(o){e.onClose("popup",o.el)},popupClosed(o){e.onClosed("popup",o.el)}}};return e.params.routableModals&&e.view?e.view.router.navigate({url:e.url,route:{path:e.url,popup:o}}):e.modal=e.app.popup.create(o).open(e.params.animate),e}openDropdown(){const e=this;e.$dropdownEl||(e.$dropdownEl=t(e.renderDropdown()));e.$inputEl.parents(".list").length&&e.$inputEl.parents(".item-content").length>0&&e.params.expandInput&&e.$inputEl.parents(".item-content").addClass("item-content-dropdown-expanded");const o=e.$inputEl.parents(".page-content");e.params.dropdownContainerEl?t(e.params.dropdownContainerEl).append(e.$dropdownEl):0===o.length?e.$dropdownEl.insertAfter(e.$inputEl):(e.positionDropdown(),o.append(e.$dropdownEl)),e.onOpen("dropdown",e.$dropdownEl),e.onOpened("dropdown",e.$dropdownEl)}open(){const e=this;if(e.opened)return e;return e[`open${e.params.openIn.split("").map(((e,o)=>0===o?e.toUpperCase():e)).join("")}`](),e}close(){const e=this;return e.opened?("dropdown"===e.params.openIn?(e.onClose(),e.onClosed()):e.params.routableModals&&e.view||"page"===e.openedIn?e.view.router.back({animate:e.params.animate}):(e.modal.once("modalClosed",(()=>{d((()=>{e.destroyed||(e.modal.destroy(),delete e.modal)}))})),e.modal.close()),e):e}init(){this.attachEvents()}destroy(){const e=this;e.emit("local::beforeDestroy autocompleteBeforeDestroy",e),e.detachEvents(),e.$inputEl&&e.$inputEl[0]&&delete e.$inputEl[0].f7Autocomplete,e.$openerEl&&e.$openerEl[0]&&delete e.$openerEl[0].f7Autocomplete,m(e),e.destroyed=!0}}var v={name:"autocomplete",params:{autocomplete:{openerEl:void 0,inputEl:void 0,view:void 0,dropdownContainerEl:void 0,dropdownPlaceholderText:void 0,typeahead:!1,highlightMatches:!0,expandInput:!1,updateInputValueOnSelect:!0,inputEvents:"input",value:void 0,multiple:!1,source:void 0,limit:void 0,valueProperty:"id",textProperty:"text",openIn:"page",pageBackLinkText:"Back",popupCloseLinkText:"Close",pageTitle:void 0,searchbarPlaceholder:"Search...",searchbarDisableText:"Cancel",searchbarDisableButton:void 0,searchbarSpellcheck:!1,popupPush:!1,popupSwipeToClose:void 0,animate:!0,autoFocus:!1,closeOnSelect:!1,notFoundText:"Nothing found",requestSourceOnOpen:!1,preloaderColor:void 0,preloader:!1,formColorTheme:void 0,navbarColorTheme:void 0,routableModals:!1,url:"select/",renderDropdown:void 0,renderPage:void 0,renderPopup:void 0,renderItem:void 0,renderSearchbar:void 0,renderNavbar:void 0}},static:{Autocomplete:h},create(){const e=this;e.autocomplete=p(l({defaultSelector:void 0,constructor:h,app:e,domProp:"f7Autocomplete"}),{open(o){const t=e.autocomplete.get(o);if(t&&t.open)return t.open()},close(o){const t=e.autocomplete.get(o);if(t&&t.close)return t.close()}})}};if(o){if(e.prototype.modules&&e.prototype.modules[v.name])return;e.use(v),e.instance&&(e.instance.useModuleParams(v,e.instance.params),e.instance.useModule(v))}return v}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))
|
|
@@ -8,7 +8,11 @@ import { getSupport } from '../../shared/get-support.js';
|
|
|
8
8
|
import $jsx from '../../shared/$jsx.js';
|
|
9
9
|
|
|
10
10
|
class Calendar extends Framework7Class {
|
|
11
|
-
constructor(app, params
|
|
11
|
+
constructor(app, params) {
|
|
12
|
+
if (params === void 0) {
|
|
13
|
+
params = {};
|
|
14
|
+
}
|
|
15
|
+
|
|
12
16
|
super(params, [app]);
|
|
13
17
|
const calendar = this;
|
|
14
18
|
calendar.params = extend({}, app.params.calendar, params);
|
|
@@ -1010,7 +1014,11 @@ class Calendar extends Framework7Class {
|
|
|
1010
1014
|
}
|
|
1011
1015
|
}
|
|
1012
1016
|
|
|
1013
|
-
resetMonth(transition
|
|
1017
|
+
resetMonth(transition) {
|
|
1018
|
+
if (transition === void 0) {
|
|
1019
|
+
transition = '';
|
|
1020
|
+
}
|
|
1021
|
+
|
|
1014
1022
|
const calendar = this;
|
|
1015
1023
|
const {
|
|
1016
1024
|
$wrapperEl,
|
|
@@ -16,7 +16,11 @@ export default {
|
|
|
16
16
|
domProp: 'f7Calendar'
|
|
17
17
|
});
|
|
18
18
|
|
|
19
|
-
app.calendar.close = function close(el
|
|
19
|
+
app.calendar.close = function close(el) {
|
|
20
|
+
if (el === void 0) {
|
|
21
|
+
el = '.calendar';
|
|
22
|
+
}
|
|
23
|
+
|
|
20
24
|
const $el = $(el);
|
|
21
25
|
if ($el.length === 0) return;
|
|
22
26
|
const calendar = $el[0].f7Calendar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function framework7ComponentLoader(e,t){void 0===t&&(t=!0);var a=e.$,n=e.utils,r=e.getDevice,o=e.getSupport,l=e.Class,s=(e.Modal,e.ConstructorMethods),c=(e.ModalMethods,n.extend),i=n.nextTick,d=n.deleteProps;class m extends l{constructor(e,t={}){super(t,[e]);const n=this;let r,l;if(n.params=c({},e.params.calendar,t),n.params.containerEl&&(r=a(n.params.containerEl),0===r.length))return n;n.params.inputEl&&(l=a(n.params.inputEl));const s="horizontal"===n.params.direction;let i=1;s&&(i=e.rtl?-1:1),c(n,{app:e,$containerEl:r,containerEl:r&&r[0],inline:r&&r.length>0,$inputEl:l,inputEl:l&&l[0],initialized:!1,opened:!1,url:n.params.url,isHorizontal:s,inverter:i,animating:!1,allowTouchMove:!0,hasTimePicker:n.params.timePicker&&!n.params.rangePicker&&!n.params.multiple}),n.dayFormatter=e=>new Intl.DateTimeFormat(n.params.locale,{day:"numeric"}).format(e).replace(/日/,""),n.monthFormatter=e=>new Intl.DateTimeFormat(n.params.locale,{month:"long"}).format(e),n.yearFormatter=e=>new Intl.DateTimeFormat(n.params.locale,{year:"numeric"}).format(e),n.timeSelectorFormatter=e=>new Intl.DateTimeFormat(n.params.locale,n.params.timePickerFormat).format(e);const d=n.timeSelectorFormatter(new Date).toLowerCase();n.is12HoursFormat=d.indexOf("pm")>=0||d.indexOf("am")>=0;let{monthNames:m,monthNamesShort:h,dayNames:p,dayNamesShort:u}=n.params;const{monthNamesIntl:v,monthNamesShortIntl:g,dayNamesIntl:f,dayNamesShortIntl:k}=n.getIntlNames();function y(){n.open()}function $(e){e.preventDefault()}function P(){n.setValue([]),n.opened&&n.update()}function M(e){const t=a(e.target);!n.destroyed&&n.params&&(n.isPopover()||n.opened&&!n.closing&&(t.closest('[class*="backdrop"]').length||n.monthPickerPopover||n.yearPickerPopover||n.timePickerPopover||(l&&l.length>0?t[0]!==l[0]&&0===t.closest(".sheet-modal, .calendar-modal").length&&n.close():0===a(e.target).closest(".sheet-modal, .calendar-modal").length&&n.close())))}return"auto"===m&&(m=v),"auto"===h&&(h=g),"auto"===p&&(p=f),"auto"===u&&(u=k),c(n,{monthNames:m,monthNamesShort:h,dayNames:p,dayNamesShort:u}),c(n,{attachInputEvents(){n.$inputEl.on("click",y),n.$inputEl.on("input:clear",P),n.params.inputReadOnly&&(n.$inputEl.on("focus mousedown",$),n.$inputEl[0]&&(n.$inputEl[0].f7ValidateReadonly=!0))},detachInputEvents(){n.$inputEl.off("click",y),n.$inputEl.off("input:clear",P),n.params.inputReadOnly&&(n.$inputEl.off("focus mousedown",$),n.$inputEl[0]&&delete n.$inputEl[0].f7ValidateReadonly)},attachHtmlEvents(){e.on("click",M)},detachHtmlEvents(){e.off("click",M)}}),n.attachCalendarEvents=function(){let t,r,l,s,c,i,d,m,h,p,u,v,g,f,k=!0;const{$el:y,$wrapperEl:$}=n;function P(e){r||t||(t=!0,l="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,c=l,s="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY,i=s,d=(new Date).getTime(),v=0,k=!0,f=void 0,h=n.monthsTranslate)}function M(e){if(!t)return;const{isHorizontal:a}=n;c="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,i="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,void 0===f&&(f=!!(f||Math.abs(i-s)>Math.abs(c-l))),a&&f||!n.allowTouchMove?t=!1:(e.preventDefault(),n.animating?t=!1:(k=!1,r||(r=!0,p=$[0].offsetWidth,u=$[0].offsetHeight,$.transition(0)),g=a?c-l:i-s,v=g/(a?p:u),h=100*(n.monthsTranslate*n.inverter+v),$.transform(`translate3d(${a?h:0}%, ${a?0:h}%, 0)`)))}function D(){if(!t||!r)return t=!1,void(r=!1);t=!1,r=!1,m=(new Date).getTime(),m-d<300?Math.abs(g)<10?n.resetMonth():g>=10?e.rtl?n.nextMonth():n.prevMonth():e.rtl?n.prevMonth():n.nextMonth():v<=-.5?e.rtl?n.prevMonth():n.nextMonth():v>=.5?e.rtl?n.nextMonth():n.prevMonth():n.resetMonth(),setTimeout((()=>{k=!0}),100)}function w(e){if(!k)return;let t=a(e.target).parents(".calendar-day");if(0===t.length&&a(e.target).hasClass("calendar-day")&&(t=a(e.target)),0===t.length)return;if(t.hasClass("calendar-day-disabled"))return;n.params.rangePicker||(t.hasClass("calendar-day-next")&&n.nextMonth(),t.hasClass("calendar-day-prev")&&n.prevMonth());const r=parseInt(t.attr("data-year"),10),o=parseInt(t.attr("data-month"),10),l=parseInt(t.attr("data-day"),10);if(n.emit("local::dayClick calendarDayClick",n,t[0],r,o,l),!t.hasClass("calendar-day-selected")||n.params.multiple||n.params.rangePicker){const e=new Date(r,o,l,0,0,0);n.hasTimePicker&&(n.value&&n.value[0]?e.setHours(n.value[0].getHours(),n.value[0].getMinutes()):e.setHours((new Date).getHours(),(new Date).getMinutes())),n.addValue(e)}n.params.closeOnSelect&&(n.params.rangePicker&&2===n.value.length||!n.params.rangePicker)&&n.close()}function T(){n.nextMonth()}function x(){n.prevMonth()}function C(){n.nextYear()}function E(){n.prevYear()}function I(){n.openMonthPicker()}function b(){n.openYearPicker()}function Y(){n.openTimePicker()}const F=!("touchstart"!==e.touchEvents.start||!o().passiveListener)&&{passive:!0,capture:!1};y.find(".calendar-prev-month-button").on("click",x),y.find(".calendar-next-month-button").on("click",T),y.find(".calendar-prev-year-button").on("click",E),y.find(".calendar-next-year-button").on("click",C),n.params.monthPicker&&y.find(".current-month-value").on("click",I),n.params.yearPicker&&y.find(".current-year-value").on("click",b),n.hasTimePicker&&y.find(".calendar-time-selector a").on("click",Y),$.on("click",w),n.params.touchMove&&($.on(e.touchEvents.start,P,F),e.on("touchmove:active",M),e.on("touchend:passive",D)),n.detachCalendarEvents=function(){y.find(".calendar-prev-month-button").off("click",x),y.find(".calendar-next-month-button").off("click",T),y.find(".calendar-prev-year-button").off("click",E),y.find(".calendar-next-year-button").off("click",C),n.params.monthPicker&&y.find(".current-month-value").off("click",I),n.params.yearPicker&&y.find(".current-year-value").off("click",b),n.hasTimePicker&&y.find(".calendar-time-selector a").off("click",Y),$.off("click",w),n.params.touchMove&&($.off(e.touchEvents.start,P,F),e.off("touchmove:active",M),e.off("touchend:passive",D))}},n.init(),n}get view(){const{$inputEl:e,app:t,params:a}=this;let n;return a.view?n=a.view:e&&(n=e.parents(".view").length&&e.parents(".view")[0].f7View),n||(n=t.views.main),n}getIntlNames(){const e=this,t=e.params.locale,a=[],n=[],r=[],o=[],l=new Intl.DateTimeFormat(t,{month:"long"}),s=new Intl.DateTimeFormat(t,{month:"short"}),c=new Intl.DateTimeFormat(t,{weekday:"long"}),i=new Intl.DateTimeFormat(t,{weekday:"short"});let d,m,h;for(let t=0;t<24;t+=1){const r=(new Date).setMonth(t,1),o=e.yearFormatter(r);d&&o!==d&&(m&&(h=!0),m=!0,d=o),d||(d=o),m&&d===o&&!h&&(a.push(l.format(r)),n.push(s.format(r)))}const p=(new Date).getDay();for(let e=0;e<7;e+=1){const t=(new Date).getTime()+24*(e-p)*60*60*1e3;r.push(c.format(t)),o.push(i.format(t))}return{monthNamesIntl:a,monthNamesShortIntl:n,dayNamesIntl:r,dayNamesShortIntl:o}}normalizeDate(e){const t=new Date(e);return this.hasTimePicker?new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes()):new Date(t.getFullYear(),t.getMonth(),t.getDate())}normalizeValues(e){const t=this;let a=[];return e&&Array.isArray(e)&&(a=e.map((e=>t.normalizeDate(e)))),a}initInput(){const e=this;e.$inputEl&&e.params.inputReadOnly&&e.$inputEl.prop("readOnly",!0)}isPopover(){const e=this,{app:t,modal:a,params:n}=e,o=r();if("sheet"===n.openIn)return!1;if(a&&"popover"!==a.type)return!1;if(!e.inline&&e.inputEl){if("popover"===n.openIn)return!0;if(o.ios)return!!o.ipad;if(t.width>=768)return!0;if(o.desktop&&"aurora"===t.theme)return!0}return!1}formatDate(e){const t=this,a=new Date(e),n=a.getFullYear(),r=a.getMonth(),o=r+1,l=a.getDate(),s=a.getDay(),{monthNames:c,monthNamesShort:i,dayNames:d,dayNamesShort:m}=t,{dateFormat:h,locale:p}=t.params;function u(e){return e<10?`0${e}`:e}if("string"==typeof h){const e={yyyy:n,yy:String(n).substring(2),mm:u(o),m:o,MM:c[r],M:i[r],dd:u(l),d:l,DD:d[s],D:m[s]};if(t.params.timePicker){const t=a.getHours(),n=a.getMinutes(),r=a.getSeconds();let o=t;t>12&&(o=t-12),0===t&&(o=12);const l=t>=12&&0!==t?"pm":"am";Object.assign(e,{HH:u(t),H:t,hh:u(o),h:o,ss:u(r),s:r,":mm":u(n),":m":n,a:l,A:l.toUpperCase()})}const p=new RegExp(Object.keys(e).map((e=>`(${e})`)).join("|"),"g");return h.replace(p,(t=>t in e?e[t]:t))}if("function"==typeof h)return h(a);return new Intl.DateTimeFormat(p,h).format(a)}formatValue(){const e=this,{value:t}=e;return e.params.formatValue?e.params.formatValue.call(e,t):t.map((t=>e.formatDate(t))).join(e.params.rangePicker?" - ":", ")}addValue(e){const t=this,{multiple:a,rangePicker:n,rangePickerMinDays:r,rangePickerMaxDays:o}=t.params;if(a){let a;t.value||(t.value=[]);for(let n=0;n<t.value.length;n+=1)new Date(e).getTime()===new Date(t.value[n]).getTime()&&(a=n);void 0===a?t.value.push(e):t.value.splice(a,1),t.updateValue()}else n?(t.value||(t.value=[]),2!==t.value.length&&0!==t.value.length||(t.value=[]),0===t.value.length||Math.abs(t.value[0].getTime()-e.getTime())>=60*(r-1)*60*24*1e3&&(0===o||Math.abs(t.value[0].getTime()-e.getTime())<=60*(o-1)*60*24*1e3)?t.value.push(e):t.value=[],t.value.sort(((e,t)=>e-t)),t.updateValue()):(t.value=[e],t.updateValue())}setValue(e){const t=this,a=t.value;if(Array.isArray(a)&&Array.isArray(e)&&a.length===e.length){let t=!0;if(a.forEach(((a,n)=>{a!==e[n]&&(t=!1)})),t)return}t.value=e,t.updateValue()}getValue(){return this.value}updateValue(e){const t=this,{$el:a,$wrapperEl:n,$inputEl:r,value:o,params:l}=t;let s;if(a&&a.length>0){let e;if(n.find(".calendar-day-selected").removeClass("calendar-day-selected calendar-day-selected-range calendar-day-selected-left calendar-day-selected-right"),l.rangePicker&&2===o.length){const t=new Date(o[0]).getTime(),a=new Date(o[1]).getTime();for(s=t;s<=a;s+=864e5){e=new Date(s);let r="calendar-day-selected";t!==a&&(s!==t&&s!==a&&(r+=" calendar-day-selected-range"),s===t&&(r+=" calendar-day-selected-left"),s===a&&(r+=" calendar-day-selected-right")),n.find(`.calendar-day[data-date="${e.getFullYear()}-${e.getMonth()}-${e.getDate()}"]`).addClass(r)}e=new Date(t),n.find(`.calendar-day[data-date="${e.getFullYear()}-${e.getMonth()}-${e.getDate()}"]`).removeClass("calendar-day-selected-range").addClass("calendar-day-selected calendar-day-selected-left"),e=new Date(a),n.find(`.calendar-day[data-date="${e.getFullYear()}-${e.getMonth()}-${e.getDate()}"]`).removeClass("calendar-day-selected-range").addClass("calendar-day-selected calendar-day-selected-right")}else for(s=0;s<t.value.length;s+=1)e=new Date(o[s]),n.find(`.calendar-day[data-date="${e.getFullYear()}-${e.getMonth()}-${e.getDate()}"]`).addClass("calendar-day-selected")}if(e||t.emit("local::change calendarChange",t,o),a&&a.length>0&&t.hasTimePicker&&a.find(".calendar-time-selector a").text(o&&o.length?t.timeSelectorFormatter(o[0]):t.params.timePickerPlaceholder),r&&r.length||l.header){const n=t.formatValue(o);l.header&&a&&a.length&&a.find(".calendar-selected-date").text(n),r&&r.length&&!e&&(r.val(n),r.trigger("change"))}}updateCurrentMonthYear(e){const t=this,{$months:a,$el:n,monthNames:r}=t;let o,l;void 0===e?(t.currentMonth=parseInt(a.eq(1).attr("data-month"),10),t.currentYear=parseInt(a.eq(1).attr("data-year"),10),o=a.eq(1).attr("data-locale-month"),l=a.eq(1).attr("data-locale-year")):(t.currentMonth=parseInt(a.eq("next"===e?a.length-1:0).attr("data-month"),10),t.currentYear=parseInt(a.eq("next"===e?a.length-1:0).attr("data-year"),10),o=a.eq("next"===e?a.length-1:0).attr("data-locale-month"),l=a.eq("next"===e?a.length-1:0).attr("data-locale-year")),n.find(".current-month-value").text(r[o]),n.find(".current-year-value").text(l)}update(){const e=this,{currentYear:t,currentMonth:a,$wrapperEl:n}=e,r=new Date(t,a),o=e.renderMonth(r,"prev"),l=e.renderMonth(r),s=e.renderMonth(r,"next");n.transition(0).html(`${o}${l}${s}`).transform("translate3d(0,0,0)"),e.$months=n.find(".calendar-month"),e.monthsTranslate=0,e.setMonthsTranslate(),e.$months.each((t=>{e.emit("local::monthAdd calendarMonthAdd",t)}))}onMonthChangeStart(e){const t=this,{$months:a,currentYear:n,currentMonth:r}=t;t.updateCurrentMonthYear(e),a.removeClass("calendar-month-current calendar-month-prev calendar-month-next");const o="next"===e?a.length-1:0;a.eq(o).addClass("calendar-month-current"),a.eq("next"===e?o-1:o+1).addClass("next"===e?"calendar-month-prev":"calendar-month-next"),t.emit("local::monthYearChangeStart calendarMonthYearChangeStart",t,n,r)}onMonthChangeEnd(e,t){const a=this,{currentYear:n,currentMonth:r,$wrapperEl:o,monthsTranslate:l}=a;let s,c,i;a.animating=!1,o.find(".calendar-month:not(.calendar-month-prev):not(.calendar-month-current):not(.calendar-month-next)").remove(),void 0===e&&(e="next",t=!0),t?(o.find(".calendar-month-next, .calendar-month-prev").remove(),c=a.renderMonth(new Date(n,r),"prev"),s=a.renderMonth(new Date(n,r),"next")):i=a.renderMonth(new Date(n,r),e),("next"===e||t)&&o.append(i||s),("prev"===e||t)&&o.prepend(i||c);const d=o.find(".calendar-month");a.$months=d,a.setMonthsTranslate(l),a.emit("local::monthAdd calendarMonthAdd",a,"next"===e?d.eq(d.length-1)[0]:d.eq(0)[0]),a.emit("local::monthYearChangeEnd calendarMonthYearChangeEnd",a,n,r)}setMonthsTranslate(e){const t=this,{$months:a,isHorizontal:n,inverter:r}=t;e=e||t.monthsTranslate||0,void 0===t.monthsTranslate&&(t.monthsTranslate=e),a.removeClass("calendar-month-current calendar-month-prev calendar-month-next");const o=100*-(e+1)*r,l=100*-e*r,s=100*-(e-1)*r;a.eq(0).transform(`translate3d(${n?o:0}%, ${n?0:o}%, 0)`).addClass("calendar-month-prev"),a.eq(1).transform(`translate3d(${n?l:0}%, ${n?0:l}%, 0)`).addClass("calendar-month-current"),a.eq(2).transform(`translate3d(${n?s:0}%, ${n?0:s}%, 0)`).addClass("calendar-month-next")}nextMonth(e){const t=this,{params:n,$wrapperEl:r,inverter:o,isHorizontal:l}=t;void 0!==e&&"object"!=typeof e||(e="",n.animate||(e=0));const s=parseInt(t.$months.eq(t.$months.length-1).attr("data-month"),10),c=parseInt(t.$months.eq(t.$months.length-1).attr("data-year"),10),i=new Date(c,s).getTime(),d=!t.animating;if(n.maxDate&&i>new Date(n.maxDate).getTime())return void t.resetMonth();if(t.monthsTranslate-=1,s===t.currentMonth){const e=100*-t.monthsTranslate*o,n=a(t.renderMonth(i,"next")).transform(`translate3d(${l?e:0}%, ${l?0:e}%, 0)`).addClass("calendar-month-next");r.append(n[0]),t.$months=r.find(".calendar-month"),t.emit("local::monthAdd calendarMonthAdd",t.$months.eq(t.$months.length-1)[0])}t.animating=!0,t.onMonthChangeStart("next");const m=100*t.monthsTranslate*o;r.transition(e).transform(`translate3d(${l?m:0}%, ${l?0:m}%, 0)`),d&&r.transitionEnd((()=>{t.onMonthChangeEnd("next")})),n.animate||t.onMonthChangeEnd("next")}prevMonth(e){const t=this,{params:n,$wrapperEl:r,inverter:o,isHorizontal:l}=t;void 0!==e&&"object"!=typeof e||(e="",n.animate||(e=0));const s=parseInt(t.$months.eq(0).attr("data-month"),10),c=parseInt(t.$months.eq(0).attr("data-year"),10),i=new Date(c,s+1,-1).getTime(),d=!t.animating;if(n.minDate){let e=new Date(n.minDate);if(e=new Date(e.getFullYear(),e.getMonth(),1),i<e.getTime())return void t.resetMonth()}if(t.monthsTranslate+=1,s===t.currentMonth){const e=100*-t.monthsTranslate*o,n=a(t.renderMonth(i,"prev")).transform(`translate3d(${l?e:0}%, ${l?0:e}%, 0)`).addClass("calendar-month-prev");r.prepend(n[0]),t.$months=r.find(".calendar-month"),t.emit("local::monthAdd calendarMonthAdd",t.$months.eq(0)[0])}t.animating=!0,t.onMonthChangeStart("prev");const m=100*t.monthsTranslate*o;r.transition(e).transform(`translate3d(${l?m:0}%, ${l?0:m}%, 0)`),d&&r.transitionEnd((()=>{t.onMonthChangeEnd("prev")})),n.animate||t.onMonthChangeEnd("prev")}resetMonth(e=""){const{$wrapperEl:t,inverter:a,isHorizontal:n,monthsTranslate:r}=this,o=100*r*a;t.transition(e).transform(`translate3d(${n?o:0}%, ${n?0:o}%, 0)`)}setYearMonth(e,t,a){const n=this,{params:r,isHorizontal:o,$wrapperEl:l,inverter:s}=n;let c;if(void 0===e&&(e=n.currentYear),void 0===t&&(t=n.currentMonth),void 0!==a&&"object"!=typeof a||(a="",r.animate||(a=0)),c=e<n.currentYear?new Date(e,t+1,-1).getTime():new Date(e,t).getTime(),r.maxDate&&c>new Date(r.maxDate).getTime())return!1;if(r.minDate){let e=new Date(r.minDate);if(e=new Date(e.getFullYear(),e.getMonth(),1),c<e.getTime())return!1}const i=new Date(n.currentYear,n.currentMonth).getTime(),d=c>i?"next":"prev",m=n.renderMonth(new Date(e,t));n.monthsTranslate=n.monthsTranslate||0;const h=n.monthsTranslate;let p;const u=!n.animating&&0!==a;c>i?(n.monthsTranslate-=1,n.animating||n.$months.eq(n.$months.length-1).remove(),l.append(m),n.$months=l.find(".calendar-month"),p=100*-(h-1)*s,n.$months.eq(n.$months.length-1).transform(`translate3d(${o?p:0}%, ${o?0:p}%, 0)`).addClass("calendar-month-next")):(n.monthsTranslate+=1,n.animating||n.$months.eq(0).remove(),l.prepend(m),n.$months=l.find(".calendar-month"),p=100*-(h+1)*s,n.$months.eq(0).transform(`translate3d(${o?p:0}%, ${o?0:p}%, 0)`).addClass("calendar-month-prev")),n.emit("local::monthAdd calendarMonthAdd","next"===d?n.$months.eq(n.$months.length-1)[0]:n.$months.eq(0)[0]),n.animating=!0,n.onMonthChangeStart(d);const v=100*n.monthsTranslate*s;l.transition(a).transform(`translate3d(${o?v:0}%, ${o?0:v}%, 0)`),u&&l.transitionEnd((()=>{n.onMonthChangeEnd(d,!0)})),r.animate&&0!==a||n.onMonthChangeEnd(d,!0)}nextYear(){this.setYearMonth(this.currentYear+1)}prevYear(){this.setYearMonth(this.currentYear-1)}dateInRange(e,t){let a,n=!1;if(!t)return!1;if(Array.isArray(t))for(a=0;a<t.length;a+=1)t[a].from||t[a].to?t[a].from&&t[a].to?e<=new Date(t[a].to).getTime()&&e>=new Date(t[a].from).getTime()&&(n=!0):t[a].from?e>=new Date(t[a].from).getTime()&&(n=!0):t[a].to&&e<=new Date(t[a].to).getTime()&&(n=!0):t[a].date?e===new Date(t[a].date).getTime()&&(n=!0):e===new Date(t[a]).getTime()&&(n=!0);else t.from||t.to?t.from&&t.to?e<=new Date(t.to).getTime()&&e>=new Date(t.from).getTime()&&(n=!0):t.from?e>=new Date(t.from).getTime()&&(n=!0):t.to&&e<=new Date(t.to).getTime()&&(n=!0):t.date?n=e===new Date(t.date).getTime():"function"==typeof t&&(n=t(new Date(e)));return n}daysInMonth(e){const t=new Date(e);return new Date(t.getFullYear(),t.getMonth()+1,0).getDate()}renderMonths(e){const t=this;return t.params.renderMonths?t.params.renderMonths.call(t,e):$jsx("div",{class:"calendar-months-wrapper"},t.renderMonth(e,"prev"),t.renderMonth(e),t.renderMonth(e,"next"))}renderMonth(e,t){const a=this,{params:n,value:r}=a;if(n.renderMonth)return n.renderMonth.call(a,e,t);let o=new Date(e),l=o.getFullYear(),s=o.getMonth(),c=a.monthNames.indexOf(a.monthFormatter(o));c<0&&(c=s);let i=a.yearFormatter(o);"next"===t&&(o=11===s?new Date(l+1,0):new Date(l,s+1,1)),"prev"===t&&(o=0===s?new Date(l-1,11):new Date(l,s-1,1)),"next"!==t&&"prev"!==t||(s=o.getMonth(),l=o.getFullYear(),c=a.monthNames.indexOf(a.monthFormatter(o)),c<0&&(c=s),i=a.yearFormatter(o));const d=[],m=(new Date).setHours(0,0,0,0),h=n.minDate?new Date(n.minDate).getTime():null,p=n.maxDate?new Date(n.maxDate).getTime():null,u=a.daysInMonth(new Date(o.getFullYear(),o.getMonth()).getTime()-864e6),v=a.daysInMonth(o),g=6===n.firstDay?0:1;let f,k,y="",$=n.firstDay-1+0,P=new Date(o.getFullYear(),o.getMonth()).getDay();if(0===P&&(P=7),r&&r.length)for(let e=0;e<r.length;e+=1)d.push(new Date(r[e]).setHours(0,0,0,0));for(let e=1;e<=6;e+=1){let t="";for(let r=1;r<=7;r+=1){let o;$+=1;let c=$-P,i="";1===e&&1===r&&c>g&&1!==n.firstDay&&($-=7,c=$-P);const y=r-1+n.firstDay>6?r-1-7+n.firstDay:r-1+n.firstDay;c<0?(c=u+c+1,i+=" calendar-day-prev",o=new Date(s-1<0?l-1:l,s-1<0?11:s-1,c).getTime()):(c+=1,c>v?(c-=v,i+=" calendar-day-next",o=new Date(s+1>11?l+1:l,s+1>11?0:s+1,c).getTime()):o=new Date(l,s,c).getTime()),o===m&&(i+=" calendar-day-today"),n.rangePicker&&2===d.length?(o>=d[0]&&o<=d[1]&&(i+=" calendar-day-selected"),d[0]!==d[1]&&(o>d[0]&&o<d[1]&&(i+=" calendar-day-selected-range"),o===d[0]&&(i+=" calendar-day-selected-left"),o===d[1]&&(i+=" calendar-day-selected-right"))):d.indexOf(o)>=0&&(i+=" calendar-day-selected"),n.weekendDays.indexOf(y)>=0&&(i+=" calendar-day-weekend");let M="";if(k=!1,n.events&&a.dateInRange(o,n.events)&&(k=!0),k&&(i+=" calendar-day-has-events",M='\n <span class="calendar-day-events">\n <span class="calendar-day-event"></span>\n </span>\n ',Array.isArray(n.events))){const e=[];n.events.forEach((t=>{const n=t.color||"";e.indexOf(n)<0&&a.dateInRange(o,t)&&e.push(n)})),M=`\n <span class="calendar-day-events">\n ${e.map((e=>`\n <span class="calendar-day-event" style="${e?`background-color: ${e}`:""}"></span>\n `.trim())).join("")}\n </span>\n `}if(n.rangesClasses)for(let e=0;e<n.rangesClasses.length;e+=1)a.dateInRange(o,n.rangesClasses[e].range)&&(i+=` ${n.rangesClasses[e].cssClass}`);f=!1,(h&&o<h||p&&o>p)&&(f=!0),n.disabled&&a.dateInRange(o,n.disabled)&&(f=!0),f&&(i+=" calendar-day-disabled"),o=new Date(o);const D=o.getFullYear(),w=o.getMonth();t+=`\n <div data-year="${D}" data-month="${w}" data-day="${c}" class="calendar-day${i}" data-date="${D}-${w}-${c}">\n <span class="calendar-day-number">${a.dayFormatter(o)}${M}</span>\n </div>`.trim()}y+=`<div class="calendar-row">${t}</div>`}return y=`<div class="calendar-month" data-year="${l}" data-month="${s}" data-locale-year="${i}" data-locale-month="${c}">${y}</div>`,y}renderWeekHeader(){const e=this;if(e.params.renderWeekHeader)return e.params.renderWeekHeader.call(e);const{params:t}=e;let a="";for(let n=0;n<7;n+=1){const r=n+t.firstDay>6?n-7+t.firstDay:n+t.firstDay;a+=`<div class="calendar-week-day">${e.dayNamesShort[r]}</div>`}return $jsx("div",{class:"calendar-week-header"},a)}renderMonthSelector(){const e=this;return e.params.renderMonthSelector?e.params.renderMonthSelector.call(e):$jsx("div",{class:"calendar-month-selector"},$jsx("a",{class:"link icon-only calendar-prev-month-button"},$jsx("i",{class:"icon icon-prev"})),e.params.monthPicker?$jsx("a",{class:"current-month-value link"}):$jsx("span",{class:"current-month-value"}),$jsx("a",{class:"link icon-only calendar-next-month-button"},$jsx("i",{class:"icon icon-next"})))}renderYearSelector(){const e=this;return e.params.renderYearSelector?e.params.renderYearSelector.call(e):$jsx("div",{class:"calendar-year-selector"},$jsx("a",{class:"link icon-only calendar-prev-year-button"},$jsx("i",{class:"icon icon-prev"})),e.params.yearPicker?$jsx("a",{class:"current-year-value link"}):$jsx("span",{class:"current-year-value"}),$jsx("a",{class:"link icon-only calendar-next-year-button"},$jsx("i",{class:"icon icon-next"})))}renderTimeSelector(){const e=this,t=e.value&&e.value[0];let a;return t&&(a=e.timeSelectorFormatter(t)),$jsx("div",{class:"calendar-time-selector"},$jsx("span",null,e.params.timePickerLabel),$jsx("a",{class:"link"},a||e.params.timePickerPlaceholder))}renderHeader(){const e=this;return e.params.renderHeader?e.params.renderHeader.call(e):$jsx("div",{class:"calendar-header"},$jsx("div",{class:"calendar-selected-date"},e.params.headerPlaceholder))}renderFooter(){const e=this,t=e.app;return e.params.renderFooter?e.params.renderFooter.call(e):$jsx("div",{class:"calendar-footer"},$jsx("a",{class:("md"===t.theme?"button":"link")+" calendar-close sheet-close popover-close"},e.params.toolbarCloseText))}renderToolbar(){const e=this;return e.params.renderToolbar?e.params.renderToolbar.call(e,e):$jsx("div",{class:"toolbar toolbar-top no-shadow"},$jsx("div",{class:"toolbar-inner"},e.params.monthSelector?e.renderMonthSelector():"",e.params.yearSelector?e.renderYearSelector():""))}renderInline(){const e=this,{cssClass:t,toolbar:a,header:n,footer:r,rangePicker:o,weekHeader:l}=e.params,{value:s,hasTimePicker:c}=e,i=s&&s.length?s[0]:(new Date).setHours(0,0,0);return $jsx("div",{class:`calendar calendar-inline ${o?"calendar-range":""} ${t||""}`},n&&e.renderHeader(),a&&e.renderToolbar(),l&&e.renderWeekHeader(),$jsx("div",{class:"calendar-months"},e.renderMonths(i)),c&&e.renderTimeSelector(),r&&e.renderFooter())}renderCustomModal(){const e=this,{cssClass:t,toolbar:a,header:n,footer:r,rangePicker:o,weekHeader:l}=e.params,{value:s,hasTimePicker:c}=e,i=s&&s.length?s[0]:(new Date).setHours(0,0,0);return $jsx("div",{class:`calendar calendar-modal ${o?"calendar-range":""} ${t||""}`},n&&e.renderHeader(),a&&e.renderToolbar(),l&&e.renderWeekHeader(),$jsx("div",{class:"calendar-months"},e.renderMonths(i)),c&&e.renderTimeSelector(),r&&e.renderFooter())}renderSheet(){const e=this,{cssClass:t,toolbar:a,header:n,footer:r,rangePicker:o,weekHeader:l}=e.params,{value:s,hasTimePicker:c}=e,i=s&&s.length?s[0]:(new Date).setHours(0,0,0);return $jsx("div",{class:`sheet-modal calendar calendar-sheet ${o?"calendar-range":""} ${t||""}`},n&&e.renderHeader(),a&&e.renderToolbar(),l&&e.renderWeekHeader(),$jsx("div",{class:"sheet-modal-inner calendar-months"},e.renderMonths(i)),c&&e.renderTimeSelector(),r&&e.renderFooter())}renderPopover(){const e=this,{cssClass:t,toolbar:a,header:n,footer:r,rangePicker:o,weekHeader:l}=e.params,{value:s,hasTimePicker:c}=e,i=s&&s.length?s[0]:(new Date).setHours(0,0,0);return $jsx("div",{class:"popover calendar-popover"},$jsx("div",{class:"popover-inner"},$jsx("div",{class:`calendar ${o?"calendar-range":""} ${t||""}`},n&&e.renderHeader(),a&&e.renderToolbar(),l&&e.renderWeekHeader(),$jsx("div",{class:"calendar-months"},e.renderMonths(i)),c&&e.renderTimeSelector(),r&&e.renderFooter())))}render(){const e=this,{params:t}=e;if(t.render)return t.render.call(e);if(!e.inline){let a=t.openIn;return"auto"===a&&(a=e.isPopover()?"popover":"sheet"),"popover"===a?e.renderPopover():"sheet"===a?e.renderSheet():e.renderCustomModal()}return e.renderInline()}openMonthPicker(){const e=this,{$el:t,app:a}=e;if(!t||!t.length)return;t.append('<div class="popover calendar-popover calendar-month-picker-popover"><div class="popover-inner"><div class="calendar-month-picker"></div></div></div>'),e.monthPickerPopover=a.popover.create({el:t.find(".calendar-month-picker-popover"),targetEl:t.find(".calendar-month-selector"),backdrop:!0,backdropUnique:!0,on:{close(){e.closeMonthPicker()},closed(){e.monthPickerPopover.$el&&e.monthPickerPopover.$el.remove(),e.monthPickerPopover.destroy(),e.monthPickerInstance&&(e.monthPickerInstance.close(),e.monthPickerInstance.destroy()),delete e.monthPickerInstance,delete e.monthPickerPopover}}}),e.monthPickerPopover.open();const n=parseInt(e.$el.find(".calendar-month-current").attr("data-locale-month"),10),r=[],o=[];e.monthNames.forEach(((e,t)=>{r.push(t),o.push(e)})),e.monthPickerInstance=a.picker.create({containerEl:e.monthPickerPopover.$el.find(".calendar-month-picker"),value:[n],toolbar:!1,rotateEffect:!1,toolbarCloseText:e.params.toolbarCloseText,cols:[{values:r,displayValues:o}]})}closeMonthPicker(){const e=this;e.monthPickerPopover&&e.monthPickerPopover.opened&&e.monthPickerPopover.close();const t=e.monthPickerInstance.value[0]-(parseInt(e.$el.find(".calendar-month-current").attr("data-locale-month"),10)-e.currentMonth);e.setYearMonth(e.currentYear,t,0)}openYearPicker(){const e=this,{$el:t,app:a}=e;if(!t||!t.length)return;t.append('<div class="popover calendar-popover calendar-year-picker-popover"><div class="popover-inner"><div class="calendar-year-picker"></div></div></div>'),e.yearPickerPopover=a.popover.create({el:t.find(".calendar-year-picker-popover"),targetEl:t.find(".calendar-year-selector"),backdrop:!0,backdropUnique:!0,on:{close(){e.closeYearPicker()},closed(){e.yearPickerPopover.$el&&e.yearPickerPopover.$el.remove(),e.yearPickerPopover.destroy(),e.yearPickerInstance&&(e.yearPickerInstance.close(),e.yearPickerInstance.destroy()),delete e.yearPickerInstance,delete e.yearPickerPopover}}}),e.yearPickerPopover.open();const n=e.currentYear;let r=e.params.yearPickerMin||(new Date).getFullYear()-100;e.params.minDate&&(r=Math.max(r,new Date(e.params.minDate).getFullYear()));let o=e.params.yearPickerMax||(new Date).getFullYear()+100;e.params.maxDate&&(o=Math.min(o,new Date(e.params.maxDate).getFullYear()));const l=[];for(let e=r;e<=o;e+=1)l.push(e);e.yearPickerInstance=a.picker.create({containerEl:e.yearPickerPopover.$el.find(".calendar-year-picker"),value:[n],toolbar:!1,rotateEffect:!1,toolbarCloseText:e.params.toolbarCloseText,cols:[{values:l}]})}closeYearPicker(){const e=this;e.yearPickerPopover&&e.yearPickerPopover.opened&&e.yearPickerPopover.close(),e.setYearMonth(e.yearPickerInstance.value[0],void 0,0)}openTimePicker(){const e=this,{$el:t,app:a,is12HoursFormat:n}=e;if(!t||!t.length)return;t.append('<div class="popover calendar-popover calendar-time-picker-popover"><div class="popover-inner"><div class="calendar-time-picker"></div></div></div>');const r=[],o=[],l=n?12:23;for(let e=n?1:0;e<=l;e+=1)r.push(e);for(let e=0;e<=59;e+=1)o.push(e);let s;s=e.value&&e.value.length?[e.value[0].getHours(),e.value[0].getMinutes()]:[(new Date).getHours(),(new Date).getMinutes()],n&&(s.push(s[0]<12?"AM":"PM"),s[0]>12&&(s[0]-=12),0===s[0]&&(s[0]=12)),e.timePickerPopover=a.popover.create({el:t.find(".calendar-time-picker-popover"),targetEl:t.find(".calendar-time-selector .link"),backdrop:!0,backdropUnique:!0,on:{close(){e.closeTimePicker()},closed(){e.timePickerPopover.$el&&e.timePickerPopover.$el.remove(),e.timePickerPopover.destroy(),e.timePickerInstance&&(e.timePickerInstance.close(),e.timePickerInstance.destroy()),delete e.timePickerInstance,delete e.timePickerPopover}}}),e.timePickerPopover.open(),e.timePickerInstance=a.picker.create({containerEl:e.timePickerPopover.$el.find(".calendar-time-picker"),value:s,toolbar:!1,rotateEffect:!1,toolbarCloseText:e.params.toolbarCloseText,cols:[{values:r},{divider:!0,content:":"},{values:o,displayValues:o.map((e=>e<10?`0${e}`:e))},...n?[{values:["AM","PM"]}]:[]]})}closeTimePicker(){const e=this,{is12HoursFormat:t}=e;if(e.timePickerInstance){const a=e.timePickerInstance.value;let n=parseInt(a[0],10);const r=parseInt(a[1],10),o=e.timePickerInstance.value[2];t&&("AM"===o&&12===n?n=0:"PM"===o&&12!==n&&(n+=12));let l=e.value&&e.value.length&&e.value[0];l?(l=new Date(l),l.setHours(n,r)):(l=new Date,l.setHours(n,r,0,0)),e.setValue([l]),e.timePickerPopover&&e.timePickerPopover.opened&&e.timePickerPopover.close()}}onOpen(){const e=this,{initialized:t,$el:a,app:n,$inputEl:r,inline:o,value:l,params:s}=e;e.closing=!1,e.opened=!0,e.opening=!0,e.attachCalendarEvents();const c=!l&&s.value;t?l&&e.setValue(l,0):l?e.setValue(l,0):s.value&&e.setValue(e.normalizeValues(s.value),0),e.updateCurrentMonthYear(),e.monthsTranslate=0,e.setMonthsTranslate(),c?e.updateValue():s.header&&l&&e.updateValue(!0),!o&&r&&r.length&&"md"===n.theme&&r.trigger("focus"),e.initialized=!0,e.$months.each((t=>{e.emit("local::monthAdd calendarMonthAdd",t)})),a&&a.trigger("calendar:open"),r&&r.trigger("calendar:open"),e.emit("local::open calendarOpen",e)}onOpened(){const e=this;e.opening=!1,e.$el&&e.$el.trigger("calendar:opened"),e.$inputEl&&e.$inputEl.trigger("calendar:opened"),e.emit("local::opened calendarOpened",e)}onClose(){const e=this,t=e.app;if(e.opening=!1,e.closing=!0,e.$inputEl)if("md"===t.theme)e.$inputEl.trigger("blur");else{const a=e.$inputEl.attr("validate"),n=e.$inputEl.attr("required");a&&n&&t.input.validate(e.$inputEl)}e.detachCalendarEvents&&e.detachCalendarEvents(),e.$el&&e.$el.trigger("calendar:close"),e.$inputEl&&e.$inputEl.trigger("calendar:close"),e.emit("local::close calendarClose",e)}onClosed(){const e=this;e.opened=!1,e.closing=!1,e.inline||i((()=>{e.modal&&e.modal.el&&e.modal.destroy&&(e.params.routableModals||e.modal.destroy()),delete e.modal})),e.timePickerInstance&&(e.timePickerInstance.destroy&&e.timePickerInstance.destroy(),delete e.timePickerInstance),e.$el&&e.$el.trigger("calendar:closed"),e.$inputEl&&e.$inputEl.trigger("calendar:closed"),e.emit("local::closed calendarClosed",e)}open(){const e=this,{app:t,opened:n,inline:r,$inputEl:o,params:l}=e;if(n)return;if(r)return e.$el=a(e.render()),e.$el[0].f7Calendar=e,e.$wrapperEl=e.$el.find(".calendar-months-wrapper"),e.$months=e.$wrapperEl.find(".calendar-month"),e.$containerEl.append(e.$el),e.onOpen(),void e.onOpened();let s=l.openIn;"auto"===s&&(s=e.isPopover()?"popover":"sheet");const c=e.render(),i={targetEl:o,scrollToEl:l.scrollToInput?o:void 0,content:c,backdrop:!0===l.backdrop||"popover"===s&&!1!==t.params.popover.backdrop&&!1!==l.backdrop,closeByBackdropClick:l.closeByBackdropClick,on:{open(){const t=this;e.modal=t,e.$el="popover"===s?t.$el.find(".calendar"):t.$el,e.$wrapperEl=e.$el.find(".calendar-months-wrapper"),e.$months=e.$wrapperEl.find(".calendar-month"),e.$el[0].f7Calendar=e,"customModal"===s&&a(e.$el).find(".calendar-close").once("click",(()=>{e.close()})),e.onOpen()},opened(){e.onOpened()},close(){e.onClose()},closed(){e.onClosed()}}};"sheet"===s&&(i.push=l.sheetPush,i.swipeToClose=l.sheetSwipeToClose),l.routableModals&&e.view?e.view.router.navigate({url:e.url,route:{path:e.url,[s]:i}}):(e.modal=t[s].create(i),e.modal.open())}close(){const e=this,{opened:t,inline:a}=e;if(t)return a?(e.onClose(),void e.onClosed()):void(e.params.routableModals&&e.view?e.view.router.back():e.modal.close())}init(){const e=this;if(e.initInput(),e.inline)return e.open(),void e.emit("local::init calendarInit",e);!e.initialized&&e.params.value&&e.setValue(e.normalizeValues(e.params.value)),e.$inputEl&&e.attachInputEvents(),e.params.closeByOutsideClick&&e.attachHtmlEvents(),e.emit("local::init calendarInit",e)}destroy(){const e=this;if(e.destroyed)return;const{$el:t}=e;e.emit("local::beforeDestroy calendarBeforeDestroy",e),t&&t.trigger("calendar:beforedestroy"),e.close(),e.$inputEl&&e.detachInputEvents(),e.params.closeByOutsideClick&&e.detachHtmlEvents(),e.timePickerInstance&&(e.timePickerInstance.destroy&&e.timePickerInstance.destroy(),delete e.timePickerInstance),t&&t.length&&delete e.$el[0].f7Calendar,d(e),e.destroyed=!0}}var h={name:"calendar",static:{Calendar:m},create(){const e=this;e.calendar=s({defaultSelector:".calendar",constructor:m,app:e,domProp:"f7Calendar"}),e.calendar.close=function(e=".calendar"){const t=a(e);if(0===t.length)return;const n=t[0].f7Calendar;!n||n&&!n.opened||n.close()}},params:{calendar:{dateFormat:void 0,monthNames:"auto",monthNamesShort:"auto",dayNames:"auto",dayNamesShort:"auto",locale:void 0,firstDay:1,weekendDays:[0,6],multiple:!1,rangePicker:!1,rangePickerMinDays:1,rangePickerMaxDays:0,direction:"horizontal",minDate:null,maxDate:null,disabled:null,events:null,rangesClasses:null,touchMove:!0,animate:!0,closeOnSelect:!1,monthSelector:!0,monthPicker:!0,yearSelector:!0,yearPicker:!0,yearPickerMin:void 0,yearPickerMax:void 0,timePicker:!1,timePickerLabel:"Time",timePickerFormat:{hour:"numeric",minute:"numeric"},timePickerPlaceholder:"Select time",weekHeader:!0,value:null,containerEl:null,openIn:"auto",sheetPush:!1,sheetSwipeToClose:void 0,formatValue:null,inputEl:null,inputReadOnly:!0,closeByOutsideClick:!0,scrollToInput:!0,header:!1,headerPlaceholder:"Select date",toolbar:!0,toolbarCloseText:"Done",footer:!1,cssClass:null,routableModals:!1,view:null,url:"date/",backdrop:null,closeByBackdropClick:!0,renderWeekHeader:null,renderMonths:null,renderMonth:null,renderMonthSelector:null,renderYearSelector:null,renderHeader:null,renderFooter:null,renderToolbar:null,renderInline:null,renderPopover:null,renderSheet:null,render:null}}};if(t){if(e.prototype.modules&&e.prototype.modules[h.name])return;e.use(h),e.instance&&(e.instance.useModuleParams(h,e.instance.params),e.instance.useModule(h))}return h}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))
|
|
1
|
+
(function framework7ComponentLoader(e,t){void 0===t&&(t=!0);var a=e.$,n=e.utils,r=e.getDevice,o=e.getSupport,l=e.Class,s=(e.Modal,e.ConstructorMethods),i=(e.ModalMethods,n.extend),c=n.nextTick,d=n.deleteProps;class m extends l{constructor(e,t){void 0===t&&(t={}),super(t,[e]);const n=this;let r,l;if(n.params=i({},e.params.calendar,t),n.params.containerEl&&(r=a(n.params.containerEl),0===r.length))return n;n.params.inputEl&&(l=a(n.params.inputEl));const s="horizontal"===n.params.direction;let c=1;s&&(c=e.rtl?-1:1),i(n,{app:e,$containerEl:r,containerEl:r&&r[0],inline:r&&r.length>0,$inputEl:l,inputEl:l&&l[0],initialized:!1,opened:!1,url:n.params.url,isHorizontal:s,inverter:c,animating:!1,allowTouchMove:!0,hasTimePicker:n.params.timePicker&&!n.params.rangePicker&&!n.params.multiple}),n.dayFormatter=e=>new Intl.DateTimeFormat(n.params.locale,{day:"numeric"}).format(e).replace(/日/,""),n.monthFormatter=e=>new Intl.DateTimeFormat(n.params.locale,{month:"long"}).format(e),n.yearFormatter=e=>new Intl.DateTimeFormat(n.params.locale,{year:"numeric"}).format(e),n.timeSelectorFormatter=e=>new Intl.DateTimeFormat(n.params.locale,n.params.timePickerFormat).format(e);const d=n.timeSelectorFormatter(new Date).toLowerCase();n.is12HoursFormat=d.indexOf("pm")>=0||d.indexOf("am")>=0;let{monthNames:m,monthNamesShort:h,dayNames:p,dayNamesShort:u}=n.params;const{monthNamesIntl:v,monthNamesShortIntl:g,dayNamesIntl:f,dayNamesShortIntl:k}=n.getIntlNames();function y(){n.open()}function $(e){e.preventDefault()}function P(){n.setValue([]),n.opened&&n.update()}function M(e){const t=a(e.target);!n.destroyed&&n.params&&(n.isPopover()||n.opened&&!n.closing&&(t.closest('[class*="backdrop"]').length||n.monthPickerPopover||n.yearPickerPopover||n.timePickerPopover||(l&&l.length>0?t[0]!==l[0]&&0===t.closest(".sheet-modal, .calendar-modal").length&&n.close():0===a(e.target).closest(".sheet-modal, .calendar-modal").length&&n.close())))}return"auto"===m&&(m=v),"auto"===h&&(h=g),"auto"===p&&(p=f),"auto"===u&&(u=k),i(n,{monthNames:m,monthNamesShort:h,dayNames:p,dayNamesShort:u}),i(n,{attachInputEvents(){n.$inputEl.on("click",y),n.$inputEl.on("input:clear",P),n.params.inputReadOnly&&(n.$inputEl.on("focus mousedown",$),n.$inputEl[0]&&(n.$inputEl[0].f7ValidateReadonly=!0))},detachInputEvents(){n.$inputEl.off("click",y),n.$inputEl.off("input:clear",P),n.params.inputReadOnly&&(n.$inputEl.off("focus mousedown",$),n.$inputEl[0]&&delete n.$inputEl[0].f7ValidateReadonly)},attachHtmlEvents(){e.on("click",M)},detachHtmlEvents(){e.off("click",M)}}),n.attachCalendarEvents=function(){let t,r,l,s,i,c,d,m,h,p,u,v,g,f,k=!0;const{$el:y,$wrapperEl:$}=n;function P(e){r||t||(t=!0,l="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,i=l,s="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY,c=s,d=(new Date).getTime(),v=0,k=!0,f=void 0,h=n.monthsTranslate)}function M(e){if(!t)return;const{isHorizontal:a}=n;i="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,c="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,void 0===f&&(f=!!(f||Math.abs(c-s)>Math.abs(i-l))),a&&f||!n.allowTouchMove?t=!1:(e.preventDefault(),n.animating?t=!1:(k=!1,r||(r=!0,p=$[0].offsetWidth,u=$[0].offsetHeight,$.transition(0)),g=a?i-l:c-s,v=g/(a?p:u),h=100*(n.monthsTranslate*n.inverter+v),$.transform(`translate3d(${a?h:0}%, ${a?0:h}%, 0)`)))}function D(){if(!t||!r)return t=!1,void(r=!1);t=!1,r=!1,m=(new Date).getTime(),m-d<300?Math.abs(g)<10?n.resetMonth():g>=10?e.rtl?n.nextMonth():n.prevMonth():e.rtl?n.prevMonth():n.nextMonth():v<=-.5?e.rtl?n.prevMonth():n.nextMonth():v>=.5?e.rtl?n.nextMonth():n.prevMonth():n.resetMonth(),setTimeout((()=>{k=!0}),100)}function w(e){if(!k)return;let t=a(e.target).parents(".calendar-day");if(0===t.length&&a(e.target).hasClass("calendar-day")&&(t=a(e.target)),0===t.length)return;if(t.hasClass("calendar-day-disabled"))return;n.params.rangePicker||(t.hasClass("calendar-day-next")&&n.nextMonth(),t.hasClass("calendar-day-prev")&&n.prevMonth());const r=parseInt(t.attr("data-year"),10),o=parseInt(t.attr("data-month"),10),l=parseInt(t.attr("data-day"),10);if(n.emit("local::dayClick calendarDayClick",n,t[0],r,o,l),!t.hasClass("calendar-day-selected")||n.params.multiple||n.params.rangePicker){const e=new Date(r,o,l,0,0,0);n.hasTimePicker&&(n.value&&n.value[0]?e.setHours(n.value[0].getHours(),n.value[0].getMinutes()):e.setHours((new Date).getHours(),(new Date).getMinutes())),n.addValue(e)}n.params.closeOnSelect&&(n.params.rangePicker&&2===n.value.length||!n.params.rangePicker)&&n.close()}function T(){n.nextMonth()}function x(){n.prevMonth()}function C(){n.nextYear()}function E(){n.prevYear()}function I(){n.openMonthPicker()}function b(){n.openYearPicker()}function Y(){n.openTimePicker()}const F=!("touchstart"!==e.touchEvents.start||!o().passiveListener)&&{passive:!0,capture:!1};y.find(".calendar-prev-month-button").on("click",x),y.find(".calendar-next-month-button").on("click",T),y.find(".calendar-prev-year-button").on("click",E),y.find(".calendar-next-year-button").on("click",C),n.params.monthPicker&&y.find(".current-month-value").on("click",I),n.params.yearPicker&&y.find(".current-year-value").on("click",b),n.hasTimePicker&&y.find(".calendar-time-selector a").on("click",Y),$.on("click",w),n.params.touchMove&&($.on(e.touchEvents.start,P,F),e.on("touchmove:active",M),e.on("touchend:passive",D)),n.detachCalendarEvents=function(){y.find(".calendar-prev-month-button").off("click",x),y.find(".calendar-next-month-button").off("click",T),y.find(".calendar-prev-year-button").off("click",E),y.find(".calendar-next-year-button").off("click",C),n.params.monthPicker&&y.find(".current-month-value").off("click",I),n.params.yearPicker&&y.find(".current-year-value").off("click",b),n.hasTimePicker&&y.find(".calendar-time-selector a").off("click",Y),$.off("click",w),n.params.touchMove&&($.off(e.touchEvents.start,P,F),e.off("touchmove:active",M),e.off("touchend:passive",D))}},n.init(),n}get view(){const{$inputEl:e,app:t,params:a}=this;let n;return a.view?n=a.view:e&&(n=e.parents(".view").length&&e.parents(".view")[0].f7View),n||(n=t.views.main),n}getIntlNames(){const e=this,t=e.params.locale,a=[],n=[],r=[],o=[],l=new Intl.DateTimeFormat(t,{month:"long"}),s=new Intl.DateTimeFormat(t,{month:"short"}),i=new Intl.DateTimeFormat(t,{weekday:"long"}),c=new Intl.DateTimeFormat(t,{weekday:"short"});let d,m,h;for(let t=0;t<24;t+=1){const r=(new Date).setMonth(t,1),o=e.yearFormatter(r);d&&o!==d&&(m&&(h=!0),m=!0,d=o),d||(d=o),m&&d===o&&!h&&(a.push(l.format(r)),n.push(s.format(r)))}const p=(new Date).getDay();for(let e=0;e<7;e+=1){const t=(new Date).getTime()+24*(e-p)*60*60*1e3;r.push(i.format(t)),o.push(c.format(t))}return{monthNamesIntl:a,monthNamesShortIntl:n,dayNamesIntl:r,dayNamesShortIntl:o}}normalizeDate(e){const t=new Date(e);return this.hasTimePicker?new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes()):new Date(t.getFullYear(),t.getMonth(),t.getDate())}normalizeValues(e){const t=this;let a=[];return e&&Array.isArray(e)&&(a=e.map((e=>t.normalizeDate(e)))),a}initInput(){const e=this;e.$inputEl&&e.params.inputReadOnly&&e.$inputEl.prop("readOnly",!0)}isPopover(){const e=this,{app:t,modal:a,params:n}=e,o=r();if("sheet"===n.openIn)return!1;if(a&&"popover"!==a.type)return!1;if(!e.inline&&e.inputEl){if("popover"===n.openIn)return!0;if(o.ios)return!!o.ipad;if(t.width>=768)return!0;if(o.desktop&&"aurora"===t.theme)return!0}return!1}formatDate(e){const t=this,a=new Date(e),n=a.getFullYear(),r=a.getMonth(),o=r+1,l=a.getDate(),s=a.getDay(),{monthNames:i,monthNamesShort:c,dayNames:d,dayNamesShort:m}=t,{dateFormat:h,locale:p}=t.params;function u(e){return e<10?`0${e}`:e}if("string"==typeof h){const e={yyyy:n,yy:String(n).substring(2),mm:u(o),m:o,MM:i[r],M:c[r],dd:u(l),d:l,DD:d[s],D:m[s]};if(t.params.timePicker){const t=a.getHours(),n=a.getMinutes(),r=a.getSeconds();let o=t;t>12&&(o=t-12),0===t&&(o=12);const l=t>=12&&0!==t?"pm":"am";Object.assign(e,{HH:u(t),H:t,hh:u(o),h:o,ss:u(r),s:r,":mm":u(n),":m":n,a:l,A:l.toUpperCase()})}const p=new RegExp(Object.keys(e).map((e=>`(${e})`)).join("|"),"g");return h.replace(p,(t=>t in e?e[t]:t))}if("function"==typeof h)return h(a);return new Intl.DateTimeFormat(p,h).format(a)}formatValue(){const e=this,{value:t}=e;return e.params.formatValue?e.params.formatValue.call(e,t):t.map((t=>e.formatDate(t))).join(e.params.rangePicker?" - ":", ")}addValue(e){const t=this,{multiple:a,rangePicker:n,rangePickerMinDays:r,rangePickerMaxDays:o}=t.params;if(a){let a;t.value||(t.value=[]);for(let n=0;n<t.value.length;n+=1)new Date(e).getTime()===new Date(t.value[n]).getTime()&&(a=n);void 0===a?t.value.push(e):t.value.splice(a,1),t.updateValue()}else n?(t.value||(t.value=[]),2!==t.value.length&&0!==t.value.length||(t.value=[]),0===t.value.length||Math.abs(t.value[0].getTime()-e.getTime())>=60*(r-1)*60*24*1e3&&(0===o||Math.abs(t.value[0].getTime()-e.getTime())<=60*(o-1)*60*24*1e3)?t.value.push(e):t.value=[],t.value.sort(((e,t)=>e-t)),t.updateValue()):(t.value=[e],t.updateValue())}setValue(e){const t=this,a=t.value;if(Array.isArray(a)&&Array.isArray(e)&&a.length===e.length){let t=!0;if(a.forEach(((a,n)=>{a!==e[n]&&(t=!1)})),t)return}t.value=e,t.updateValue()}getValue(){return this.value}updateValue(e){const t=this,{$el:a,$wrapperEl:n,$inputEl:r,value:o,params:l}=t;let s;if(a&&a.length>0){let e;if(n.find(".calendar-day-selected").removeClass("calendar-day-selected calendar-day-selected-range calendar-day-selected-left calendar-day-selected-right"),l.rangePicker&&2===o.length){const t=new Date(o[0]).getTime(),a=new Date(o[1]).getTime();for(s=t;s<=a;s+=864e5){e=new Date(s);let r="calendar-day-selected";t!==a&&(s!==t&&s!==a&&(r+=" calendar-day-selected-range"),s===t&&(r+=" calendar-day-selected-left"),s===a&&(r+=" calendar-day-selected-right")),n.find(`.calendar-day[data-date="${e.getFullYear()}-${e.getMonth()}-${e.getDate()}"]`).addClass(r)}e=new Date(t),n.find(`.calendar-day[data-date="${e.getFullYear()}-${e.getMonth()}-${e.getDate()}"]`).removeClass("calendar-day-selected-range").addClass("calendar-day-selected calendar-day-selected-left"),e=new Date(a),n.find(`.calendar-day[data-date="${e.getFullYear()}-${e.getMonth()}-${e.getDate()}"]`).removeClass("calendar-day-selected-range").addClass("calendar-day-selected calendar-day-selected-right")}else for(s=0;s<t.value.length;s+=1)e=new Date(o[s]),n.find(`.calendar-day[data-date="${e.getFullYear()}-${e.getMonth()}-${e.getDate()}"]`).addClass("calendar-day-selected")}if(e||t.emit("local::change calendarChange",t,o),a&&a.length>0&&t.hasTimePicker&&a.find(".calendar-time-selector a").text(o&&o.length?t.timeSelectorFormatter(o[0]):t.params.timePickerPlaceholder),r&&r.length||l.header){const n=t.formatValue(o);l.header&&a&&a.length&&a.find(".calendar-selected-date").text(n),r&&r.length&&!e&&(r.val(n),r.trigger("change"))}}updateCurrentMonthYear(e){const t=this,{$months:a,$el:n,monthNames:r}=t;let o,l;void 0===e?(t.currentMonth=parseInt(a.eq(1).attr("data-month"),10),t.currentYear=parseInt(a.eq(1).attr("data-year"),10),o=a.eq(1).attr("data-locale-month"),l=a.eq(1).attr("data-locale-year")):(t.currentMonth=parseInt(a.eq("next"===e?a.length-1:0).attr("data-month"),10),t.currentYear=parseInt(a.eq("next"===e?a.length-1:0).attr("data-year"),10),o=a.eq("next"===e?a.length-1:0).attr("data-locale-month"),l=a.eq("next"===e?a.length-1:0).attr("data-locale-year")),n.find(".current-month-value").text(r[o]),n.find(".current-year-value").text(l)}update(){const e=this,{currentYear:t,currentMonth:a,$wrapperEl:n}=e,r=new Date(t,a),o=e.renderMonth(r,"prev"),l=e.renderMonth(r),s=e.renderMonth(r,"next");n.transition(0).html(`${o}${l}${s}`).transform("translate3d(0,0,0)"),e.$months=n.find(".calendar-month"),e.monthsTranslate=0,e.setMonthsTranslate(),e.$months.each((t=>{e.emit("local::monthAdd calendarMonthAdd",t)}))}onMonthChangeStart(e){const t=this,{$months:a,currentYear:n,currentMonth:r}=t;t.updateCurrentMonthYear(e),a.removeClass("calendar-month-current calendar-month-prev calendar-month-next");const o="next"===e?a.length-1:0;a.eq(o).addClass("calendar-month-current"),a.eq("next"===e?o-1:o+1).addClass("next"===e?"calendar-month-prev":"calendar-month-next"),t.emit("local::monthYearChangeStart calendarMonthYearChangeStart",t,n,r)}onMonthChangeEnd(e,t){const a=this,{currentYear:n,currentMonth:r,$wrapperEl:o,monthsTranslate:l}=a;let s,i,c;a.animating=!1,o.find(".calendar-month:not(.calendar-month-prev):not(.calendar-month-current):not(.calendar-month-next)").remove(),void 0===e&&(e="next",t=!0),t?(o.find(".calendar-month-next, .calendar-month-prev").remove(),i=a.renderMonth(new Date(n,r),"prev"),s=a.renderMonth(new Date(n,r),"next")):c=a.renderMonth(new Date(n,r),e),("next"===e||t)&&o.append(c||s),("prev"===e||t)&&o.prepend(c||i);const d=o.find(".calendar-month");a.$months=d,a.setMonthsTranslate(l),a.emit("local::monthAdd calendarMonthAdd",a,"next"===e?d.eq(d.length-1)[0]:d.eq(0)[0]),a.emit("local::monthYearChangeEnd calendarMonthYearChangeEnd",a,n,r)}setMonthsTranslate(e){const t=this,{$months:a,isHorizontal:n,inverter:r}=t;e=e||t.monthsTranslate||0,void 0===t.monthsTranslate&&(t.monthsTranslate=e),a.removeClass("calendar-month-current calendar-month-prev calendar-month-next");const o=100*-(e+1)*r,l=100*-e*r,s=100*-(e-1)*r;a.eq(0).transform(`translate3d(${n?o:0}%, ${n?0:o}%, 0)`).addClass("calendar-month-prev"),a.eq(1).transform(`translate3d(${n?l:0}%, ${n?0:l}%, 0)`).addClass("calendar-month-current"),a.eq(2).transform(`translate3d(${n?s:0}%, ${n?0:s}%, 0)`).addClass("calendar-month-next")}nextMonth(e){const t=this,{params:n,$wrapperEl:r,inverter:o,isHorizontal:l}=t;void 0!==e&&"object"!=typeof e||(e="",n.animate||(e=0));const s=parseInt(t.$months.eq(t.$months.length-1).attr("data-month"),10),i=parseInt(t.$months.eq(t.$months.length-1).attr("data-year"),10),c=new Date(i,s).getTime(),d=!t.animating;if(n.maxDate&&c>new Date(n.maxDate).getTime())return void t.resetMonth();if(t.monthsTranslate-=1,s===t.currentMonth){const e=100*-t.monthsTranslate*o,n=a(t.renderMonth(c,"next")).transform(`translate3d(${l?e:0}%, ${l?0:e}%, 0)`).addClass("calendar-month-next");r.append(n[0]),t.$months=r.find(".calendar-month"),t.emit("local::monthAdd calendarMonthAdd",t.$months.eq(t.$months.length-1)[0])}t.animating=!0,t.onMonthChangeStart("next");const m=100*t.monthsTranslate*o;r.transition(e).transform(`translate3d(${l?m:0}%, ${l?0:m}%, 0)`),d&&r.transitionEnd((()=>{t.onMonthChangeEnd("next")})),n.animate||t.onMonthChangeEnd("next")}prevMonth(e){const t=this,{params:n,$wrapperEl:r,inverter:o,isHorizontal:l}=t;void 0!==e&&"object"!=typeof e||(e="",n.animate||(e=0));const s=parseInt(t.$months.eq(0).attr("data-month"),10),i=parseInt(t.$months.eq(0).attr("data-year"),10),c=new Date(i,s+1,-1).getTime(),d=!t.animating;if(n.minDate){let e=new Date(n.minDate);if(e=new Date(e.getFullYear(),e.getMonth(),1),c<e.getTime())return void t.resetMonth()}if(t.monthsTranslate+=1,s===t.currentMonth){const e=100*-t.monthsTranslate*o,n=a(t.renderMonth(c,"prev")).transform(`translate3d(${l?e:0}%, ${l?0:e}%, 0)`).addClass("calendar-month-prev");r.prepend(n[0]),t.$months=r.find(".calendar-month"),t.emit("local::monthAdd calendarMonthAdd",t.$months.eq(0)[0])}t.animating=!0,t.onMonthChangeStart("prev");const m=100*t.monthsTranslate*o;r.transition(e).transform(`translate3d(${l?m:0}%, ${l?0:m}%, 0)`),d&&r.transitionEnd((()=>{t.onMonthChangeEnd("prev")})),n.animate||t.onMonthChangeEnd("prev")}resetMonth(e){void 0===e&&(e="");const{$wrapperEl:t,inverter:a,isHorizontal:n,monthsTranslate:r}=this,o=100*r*a;t.transition(e).transform(`translate3d(${n?o:0}%, ${n?0:o}%, 0)`)}setYearMonth(e,t,a){const n=this,{params:r,isHorizontal:o,$wrapperEl:l,inverter:s}=n;let i;if(void 0===e&&(e=n.currentYear),void 0===t&&(t=n.currentMonth),void 0!==a&&"object"!=typeof a||(a="",r.animate||(a=0)),i=e<n.currentYear?new Date(e,t+1,-1).getTime():new Date(e,t).getTime(),r.maxDate&&i>new Date(r.maxDate).getTime())return!1;if(r.minDate){let e=new Date(r.minDate);if(e=new Date(e.getFullYear(),e.getMonth(),1),i<e.getTime())return!1}const c=new Date(n.currentYear,n.currentMonth).getTime(),d=i>c?"next":"prev",m=n.renderMonth(new Date(e,t));n.monthsTranslate=n.monthsTranslate||0;const h=n.monthsTranslate;let p;const u=!n.animating&&0!==a;i>c?(n.monthsTranslate-=1,n.animating||n.$months.eq(n.$months.length-1).remove(),l.append(m),n.$months=l.find(".calendar-month"),p=100*-(h-1)*s,n.$months.eq(n.$months.length-1).transform(`translate3d(${o?p:0}%, ${o?0:p}%, 0)`).addClass("calendar-month-next")):(n.monthsTranslate+=1,n.animating||n.$months.eq(0).remove(),l.prepend(m),n.$months=l.find(".calendar-month"),p=100*-(h+1)*s,n.$months.eq(0).transform(`translate3d(${o?p:0}%, ${o?0:p}%, 0)`).addClass("calendar-month-prev")),n.emit("local::monthAdd calendarMonthAdd","next"===d?n.$months.eq(n.$months.length-1)[0]:n.$months.eq(0)[0]),n.animating=!0,n.onMonthChangeStart(d);const v=100*n.monthsTranslate*s;l.transition(a).transform(`translate3d(${o?v:0}%, ${o?0:v}%, 0)`),u&&l.transitionEnd((()=>{n.onMonthChangeEnd(d,!0)})),r.animate&&0!==a||n.onMonthChangeEnd(d,!0)}nextYear(){this.setYearMonth(this.currentYear+1)}prevYear(){this.setYearMonth(this.currentYear-1)}dateInRange(e,t){let a,n=!1;if(!t)return!1;if(Array.isArray(t))for(a=0;a<t.length;a+=1)t[a].from||t[a].to?t[a].from&&t[a].to?e<=new Date(t[a].to).getTime()&&e>=new Date(t[a].from).getTime()&&(n=!0):t[a].from?e>=new Date(t[a].from).getTime()&&(n=!0):t[a].to&&e<=new Date(t[a].to).getTime()&&(n=!0):t[a].date?e===new Date(t[a].date).getTime()&&(n=!0):e===new Date(t[a]).getTime()&&(n=!0);else t.from||t.to?t.from&&t.to?e<=new Date(t.to).getTime()&&e>=new Date(t.from).getTime()&&(n=!0):t.from?e>=new Date(t.from).getTime()&&(n=!0):t.to&&e<=new Date(t.to).getTime()&&(n=!0):t.date?n=e===new Date(t.date).getTime():"function"==typeof t&&(n=t(new Date(e)));return n}daysInMonth(e){const t=new Date(e);return new Date(t.getFullYear(),t.getMonth()+1,0).getDate()}renderMonths(e){const t=this;return t.params.renderMonths?t.params.renderMonths.call(t,e):$jsx("div",{class:"calendar-months-wrapper"},t.renderMonth(e,"prev"),t.renderMonth(e),t.renderMonth(e,"next"))}renderMonth(e,t){const a=this,{params:n,value:r}=a;if(n.renderMonth)return n.renderMonth.call(a,e,t);let o=new Date(e),l=o.getFullYear(),s=o.getMonth(),i=a.monthNames.indexOf(a.monthFormatter(o));i<0&&(i=s);let c=a.yearFormatter(o);"next"===t&&(o=11===s?new Date(l+1,0):new Date(l,s+1,1)),"prev"===t&&(o=0===s?new Date(l-1,11):new Date(l,s-1,1)),"next"!==t&&"prev"!==t||(s=o.getMonth(),l=o.getFullYear(),i=a.monthNames.indexOf(a.monthFormatter(o)),i<0&&(i=s),c=a.yearFormatter(o));const d=[],m=(new Date).setHours(0,0,0,0),h=n.minDate?new Date(n.minDate).getTime():null,p=n.maxDate?new Date(n.maxDate).getTime():null,u=a.daysInMonth(new Date(o.getFullYear(),o.getMonth()).getTime()-864e6),v=a.daysInMonth(o),g=6===n.firstDay?0:1;let f,k,y="",$=n.firstDay-1+0,P=new Date(o.getFullYear(),o.getMonth()).getDay();if(0===P&&(P=7),r&&r.length)for(let e=0;e<r.length;e+=1)d.push(new Date(r[e]).setHours(0,0,0,0));for(let e=1;e<=6;e+=1){let t="";for(let r=1;r<=7;r+=1){let o;$+=1;let i=$-P,c="";1===e&&1===r&&i>g&&1!==n.firstDay&&($-=7,i=$-P);const y=r-1+n.firstDay>6?r-1-7+n.firstDay:r-1+n.firstDay;i<0?(i=u+i+1,c+=" calendar-day-prev",o=new Date(s-1<0?l-1:l,s-1<0?11:s-1,i).getTime()):(i+=1,i>v?(i-=v,c+=" calendar-day-next",o=new Date(s+1>11?l+1:l,s+1>11?0:s+1,i).getTime()):o=new Date(l,s,i).getTime()),o===m&&(c+=" calendar-day-today"),n.rangePicker&&2===d.length?(o>=d[0]&&o<=d[1]&&(c+=" calendar-day-selected"),d[0]!==d[1]&&(o>d[0]&&o<d[1]&&(c+=" calendar-day-selected-range"),o===d[0]&&(c+=" calendar-day-selected-left"),o===d[1]&&(c+=" calendar-day-selected-right"))):d.indexOf(o)>=0&&(c+=" calendar-day-selected"),n.weekendDays.indexOf(y)>=0&&(c+=" calendar-day-weekend");let M="";if(k=!1,n.events&&a.dateInRange(o,n.events)&&(k=!0),k&&(c+=" calendar-day-has-events",M='\n <span class="calendar-day-events">\n <span class="calendar-day-event"></span>\n </span>\n ',Array.isArray(n.events))){const e=[];n.events.forEach((t=>{const n=t.color||"";e.indexOf(n)<0&&a.dateInRange(o,t)&&e.push(n)})),M=`\n <span class="calendar-day-events">\n ${e.map((e=>`\n <span class="calendar-day-event" style="${e?`background-color: ${e}`:""}"></span>\n `.trim())).join("")}\n </span>\n `}if(n.rangesClasses)for(let e=0;e<n.rangesClasses.length;e+=1)a.dateInRange(o,n.rangesClasses[e].range)&&(c+=` ${n.rangesClasses[e].cssClass}`);f=!1,(h&&o<h||p&&o>p)&&(f=!0),n.disabled&&a.dateInRange(o,n.disabled)&&(f=!0),f&&(c+=" calendar-day-disabled"),o=new Date(o);const D=o.getFullYear(),w=o.getMonth();t+=`\n <div data-year="${D}" data-month="${w}" data-day="${i}" class="calendar-day${c}" data-date="${D}-${w}-${i}">\n <span class="calendar-day-number">${a.dayFormatter(o)}${M}</span>\n </div>`.trim()}y+=`<div class="calendar-row">${t}</div>`}return y=`<div class="calendar-month" data-year="${l}" data-month="${s}" data-locale-year="${c}" data-locale-month="${i}">${y}</div>`,y}renderWeekHeader(){const e=this;if(e.params.renderWeekHeader)return e.params.renderWeekHeader.call(e);const{params:t}=e;let a="";for(let n=0;n<7;n+=1){const r=n+t.firstDay>6?n-7+t.firstDay:n+t.firstDay;a+=`<div class="calendar-week-day">${e.dayNamesShort[r]}</div>`}return $jsx("div",{class:"calendar-week-header"},a)}renderMonthSelector(){const e=this;return e.params.renderMonthSelector?e.params.renderMonthSelector.call(e):$jsx("div",{class:"calendar-month-selector"},$jsx("a",{class:"link icon-only calendar-prev-month-button"},$jsx("i",{class:"icon icon-prev"})),e.params.monthPicker?$jsx("a",{class:"current-month-value link"}):$jsx("span",{class:"current-month-value"}),$jsx("a",{class:"link icon-only calendar-next-month-button"},$jsx("i",{class:"icon icon-next"})))}renderYearSelector(){const e=this;return e.params.renderYearSelector?e.params.renderYearSelector.call(e):$jsx("div",{class:"calendar-year-selector"},$jsx("a",{class:"link icon-only calendar-prev-year-button"},$jsx("i",{class:"icon icon-prev"})),e.params.yearPicker?$jsx("a",{class:"current-year-value link"}):$jsx("span",{class:"current-year-value"}),$jsx("a",{class:"link icon-only calendar-next-year-button"},$jsx("i",{class:"icon icon-next"})))}renderTimeSelector(){const e=this,t=e.value&&e.value[0];let a;return t&&(a=e.timeSelectorFormatter(t)),$jsx("div",{class:"calendar-time-selector"},$jsx("span",null,e.params.timePickerLabel),$jsx("a",{class:"link"},a||e.params.timePickerPlaceholder))}renderHeader(){const e=this;return e.params.renderHeader?e.params.renderHeader.call(e):$jsx("div",{class:"calendar-header"},$jsx("div",{class:"calendar-selected-date"},e.params.headerPlaceholder))}renderFooter(){const e=this,t=e.app;return e.params.renderFooter?e.params.renderFooter.call(e):$jsx("div",{class:"calendar-footer"},$jsx("a",{class:("md"===t.theme?"button":"link")+" calendar-close sheet-close popover-close"},e.params.toolbarCloseText))}renderToolbar(){const e=this;return e.params.renderToolbar?e.params.renderToolbar.call(e,e):$jsx("div",{class:"toolbar toolbar-top no-shadow"},$jsx("div",{class:"toolbar-inner"},e.params.monthSelector?e.renderMonthSelector():"",e.params.yearSelector?e.renderYearSelector():""))}renderInline(){const e=this,{cssClass:t,toolbar:a,header:n,footer:r,rangePicker:o,weekHeader:l}=e.params,{value:s,hasTimePicker:i}=e,c=s&&s.length?s[0]:(new Date).setHours(0,0,0);return $jsx("div",{class:`calendar calendar-inline ${o?"calendar-range":""} ${t||""}`},n&&e.renderHeader(),a&&e.renderToolbar(),l&&e.renderWeekHeader(),$jsx("div",{class:"calendar-months"},e.renderMonths(c)),i&&e.renderTimeSelector(),r&&e.renderFooter())}renderCustomModal(){const e=this,{cssClass:t,toolbar:a,header:n,footer:r,rangePicker:o,weekHeader:l}=e.params,{value:s,hasTimePicker:i}=e,c=s&&s.length?s[0]:(new Date).setHours(0,0,0);return $jsx("div",{class:`calendar calendar-modal ${o?"calendar-range":""} ${t||""}`},n&&e.renderHeader(),a&&e.renderToolbar(),l&&e.renderWeekHeader(),$jsx("div",{class:"calendar-months"},e.renderMonths(c)),i&&e.renderTimeSelector(),r&&e.renderFooter())}renderSheet(){const e=this,{cssClass:t,toolbar:a,header:n,footer:r,rangePicker:o,weekHeader:l}=e.params,{value:s,hasTimePicker:i}=e,c=s&&s.length?s[0]:(new Date).setHours(0,0,0);return $jsx("div",{class:`sheet-modal calendar calendar-sheet ${o?"calendar-range":""} ${t||""}`},n&&e.renderHeader(),a&&e.renderToolbar(),l&&e.renderWeekHeader(),$jsx("div",{class:"sheet-modal-inner calendar-months"},e.renderMonths(c)),i&&e.renderTimeSelector(),r&&e.renderFooter())}renderPopover(){const e=this,{cssClass:t,toolbar:a,header:n,footer:r,rangePicker:o,weekHeader:l}=e.params,{value:s,hasTimePicker:i}=e,c=s&&s.length?s[0]:(new Date).setHours(0,0,0);return $jsx("div",{class:"popover calendar-popover"},$jsx("div",{class:"popover-inner"},$jsx("div",{class:`calendar ${o?"calendar-range":""} ${t||""}`},n&&e.renderHeader(),a&&e.renderToolbar(),l&&e.renderWeekHeader(),$jsx("div",{class:"calendar-months"},e.renderMonths(c)),i&&e.renderTimeSelector(),r&&e.renderFooter())))}render(){const e=this,{params:t}=e;if(t.render)return t.render.call(e);if(!e.inline){let a=t.openIn;return"auto"===a&&(a=e.isPopover()?"popover":"sheet"),"popover"===a?e.renderPopover():"sheet"===a?e.renderSheet():e.renderCustomModal()}return e.renderInline()}openMonthPicker(){const e=this,{$el:t,app:a}=e;if(!t||!t.length)return;t.append('<div class="popover calendar-popover calendar-month-picker-popover"><div class="popover-inner"><div class="calendar-month-picker"></div></div></div>'),e.monthPickerPopover=a.popover.create({el:t.find(".calendar-month-picker-popover"),targetEl:t.find(".calendar-month-selector"),backdrop:!0,backdropUnique:!0,on:{close(){e.closeMonthPicker()},closed(){e.monthPickerPopover.$el&&e.monthPickerPopover.$el.remove(),e.monthPickerPopover.destroy(),e.monthPickerInstance&&(e.monthPickerInstance.close(),e.monthPickerInstance.destroy()),delete e.monthPickerInstance,delete e.monthPickerPopover}}}),e.monthPickerPopover.open();const n=parseInt(e.$el.find(".calendar-month-current").attr("data-locale-month"),10),r=[],o=[];e.monthNames.forEach(((e,t)=>{r.push(t),o.push(e)})),e.monthPickerInstance=a.picker.create({containerEl:e.monthPickerPopover.$el.find(".calendar-month-picker"),value:[n],toolbar:!1,rotateEffect:!1,toolbarCloseText:e.params.toolbarCloseText,cols:[{values:r,displayValues:o}]})}closeMonthPicker(){const e=this;e.monthPickerPopover&&e.monthPickerPopover.opened&&e.monthPickerPopover.close();const t=e.monthPickerInstance.value[0]-(parseInt(e.$el.find(".calendar-month-current").attr("data-locale-month"),10)-e.currentMonth);e.setYearMonth(e.currentYear,t,0)}openYearPicker(){const e=this,{$el:t,app:a}=e;if(!t||!t.length)return;t.append('<div class="popover calendar-popover calendar-year-picker-popover"><div class="popover-inner"><div class="calendar-year-picker"></div></div></div>'),e.yearPickerPopover=a.popover.create({el:t.find(".calendar-year-picker-popover"),targetEl:t.find(".calendar-year-selector"),backdrop:!0,backdropUnique:!0,on:{close(){e.closeYearPicker()},closed(){e.yearPickerPopover.$el&&e.yearPickerPopover.$el.remove(),e.yearPickerPopover.destroy(),e.yearPickerInstance&&(e.yearPickerInstance.close(),e.yearPickerInstance.destroy()),delete e.yearPickerInstance,delete e.yearPickerPopover}}}),e.yearPickerPopover.open();const n=e.currentYear;let r=e.params.yearPickerMin||(new Date).getFullYear()-100;e.params.minDate&&(r=Math.max(r,new Date(e.params.minDate).getFullYear()));let o=e.params.yearPickerMax||(new Date).getFullYear()+100;e.params.maxDate&&(o=Math.min(o,new Date(e.params.maxDate).getFullYear()));const l=[];for(let e=r;e<=o;e+=1)l.push(e);e.yearPickerInstance=a.picker.create({containerEl:e.yearPickerPopover.$el.find(".calendar-year-picker"),value:[n],toolbar:!1,rotateEffect:!1,toolbarCloseText:e.params.toolbarCloseText,cols:[{values:l}]})}closeYearPicker(){const e=this;e.yearPickerPopover&&e.yearPickerPopover.opened&&e.yearPickerPopover.close(),e.setYearMonth(e.yearPickerInstance.value[0],void 0,0)}openTimePicker(){const e=this,{$el:t,app:a,is12HoursFormat:n}=e;if(!t||!t.length)return;t.append('<div class="popover calendar-popover calendar-time-picker-popover"><div class="popover-inner"><div class="calendar-time-picker"></div></div></div>');const r=[],o=[],l=n?12:23;for(let e=n?1:0;e<=l;e+=1)r.push(e);for(let e=0;e<=59;e+=1)o.push(e);let s;s=e.value&&e.value.length?[e.value[0].getHours(),e.value[0].getMinutes()]:[(new Date).getHours(),(new Date).getMinutes()],n&&(s.push(s[0]<12?"AM":"PM"),s[0]>12&&(s[0]-=12),0===s[0]&&(s[0]=12)),e.timePickerPopover=a.popover.create({el:t.find(".calendar-time-picker-popover"),targetEl:t.find(".calendar-time-selector .link"),backdrop:!0,backdropUnique:!0,on:{close(){e.closeTimePicker()},closed(){e.timePickerPopover.$el&&e.timePickerPopover.$el.remove(),e.timePickerPopover.destroy(),e.timePickerInstance&&(e.timePickerInstance.close(),e.timePickerInstance.destroy()),delete e.timePickerInstance,delete e.timePickerPopover}}}),e.timePickerPopover.open(),e.timePickerInstance=a.picker.create({containerEl:e.timePickerPopover.$el.find(".calendar-time-picker"),value:s,toolbar:!1,rotateEffect:!1,toolbarCloseText:e.params.toolbarCloseText,cols:[{values:r},{divider:!0,content:":"},{values:o,displayValues:o.map((e=>e<10?`0${e}`:e))},...n?[{values:["AM","PM"]}]:[]]})}closeTimePicker(){const e=this,{is12HoursFormat:t}=e;if(e.timePickerInstance){const a=e.timePickerInstance.value;let n=parseInt(a[0],10);const r=parseInt(a[1],10),o=e.timePickerInstance.value[2];t&&("AM"===o&&12===n?n=0:"PM"===o&&12!==n&&(n+=12));let l=e.value&&e.value.length&&e.value[0];l?(l=new Date(l),l.setHours(n,r)):(l=new Date,l.setHours(n,r,0,0)),e.setValue([l]),e.timePickerPopover&&e.timePickerPopover.opened&&e.timePickerPopover.close()}}onOpen(){const e=this,{initialized:t,$el:a,app:n,$inputEl:r,inline:o,value:l,params:s}=e;e.closing=!1,e.opened=!0,e.opening=!0,e.attachCalendarEvents();const i=!l&&s.value;t?l&&e.setValue(l,0):l?e.setValue(l,0):s.value&&e.setValue(e.normalizeValues(s.value),0),e.updateCurrentMonthYear(),e.monthsTranslate=0,e.setMonthsTranslate(),i?e.updateValue():s.header&&l&&e.updateValue(!0),!o&&r&&r.length&&"md"===n.theme&&r.trigger("focus"),e.initialized=!0,e.$months.each((t=>{e.emit("local::monthAdd calendarMonthAdd",t)})),a&&a.trigger("calendar:open"),r&&r.trigger("calendar:open"),e.emit("local::open calendarOpen",e)}onOpened(){const e=this;e.opening=!1,e.$el&&e.$el.trigger("calendar:opened"),e.$inputEl&&e.$inputEl.trigger("calendar:opened"),e.emit("local::opened calendarOpened",e)}onClose(){const e=this,t=e.app;if(e.opening=!1,e.closing=!0,e.$inputEl)if("md"===t.theme)e.$inputEl.trigger("blur");else{const a=e.$inputEl.attr("validate"),n=e.$inputEl.attr("required");a&&n&&t.input.validate(e.$inputEl)}e.detachCalendarEvents&&e.detachCalendarEvents(),e.$el&&e.$el.trigger("calendar:close"),e.$inputEl&&e.$inputEl.trigger("calendar:close"),e.emit("local::close calendarClose",e)}onClosed(){const e=this;e.opened=!1,e.closing=!1,e.inline||c((()=>{e.modal&&e.modal.el&&e.modal.destroy&&(e.params.routableModals||e.modal.destroy()),delete e.modal})),e.timePickerInstance&&(e.timePickerInstance.destroy&&e.timePickerInstance.destroy(),delete e.timePickerInstance),e.$el&&e.$el.trigger("calendar:closed"),e.$inputEl&&e.$inputEl.trigger("calendar:closed"),e.emit("local::closed calendarClosed",e)}open(){const e=this,{app:t,opened:n,inline:r,$inputEl:o,params:l}=e;if(n)return;if(r)return e.$el=a(e.render()),e.$el[0].f7Calendar=e,e.$wrapperEl=e.$el.find(".calendar-months-wrapper"),e.$months=e.$wrapperEl.find(".calendar-month"),e.$containerEl.append(e.$el),e.onOpen(),void e.onOpened();let s=l.openIn;"auto"===s&&(s=e.isPopover()?"popover":"sheet");const i=e.render(),c={targetEl:o,scrollToEl:l.scrollToInput?o:void 0,content:i,backdrop:!0===l.backdrop||"popover"===s&&!1!==t.params.popover.backdrop&&!1!==l.backdrop,closeByBackdropClick:l.closeByBackdropClick,on:{open(){const t=this;e.modal=t,e.$el="popover"===s?t.$el.find(".calendar"):t.$el,e.$wrapperEl=e.$el.find(".calendar-months-wrapper"),e.$months=e.$wrapperEl.find(".calendar-month"),e.$el[0].f7Calendar=e,"customModal"===s&&a(e.$el).find(".calendar-close").once("click",(()=>{e.close()})),e.onOpen()},opened(){e.onOpened()},close(){e.onClose()},closed(){e.onClosed()}}};"sheet"===s&&(c.push=l.sheetPush,c.swipeToClose=l.sheetSwipeToClose),l.routableModals&&e.view?e.view.router.navigate({url:e.url,route:{path:e.url,[s]:c}}):(e.modal=t[s].create(c),e.modal.open())}close(){const e=this,{opened:t,inline:a}=e;if(t)return a?(e.onClose(),void e.onClosed()):void(e.params.routableModals&&e.view?e.view.router.back():e.modal.close())}init(){const e=this;if(e.initInput(),e.inline)return e.open(),void e.emit("local::init calendarInit",e);!e.initialized&&e.params.value&&e.setValue(e.normalizeValues(e.params.value)),e.$inputEl&&e.attachInputEvents(),e.params.closeByOutsideClick&&e.attachHtmlEvents(),e.emit("local::init calendarInit",e)}destroy(){const e=this;if(e.destroyed)return;const{$el:t}=e;e.emit("local::beforeDestroy calendarBeforeDestroy",e),t&&t.trigger("calendar:beforedestroy"),e.close(),e.$inputEl&&e.detachInputEvents(),e.params.closeByOutsideClick&&e.detachHtmlEvents(),e.timePickerInstance&&(e.timePickerInstance.destroy&&e.timePickerInstance.destroy(),delete e.timePickerInstance),t&&t.length&&delete e.$el[0].f7Calendar,d(e),e.destroyed=!0}}var h={name:"calendar",static:{Calendar:m},create(){const e=this;e.calendar=s({defaultSelector:".calendar",constructor:m,app:e,domProp:"f7Calendar"}),e.calendar.close=function(e){void 0===e&&(e=".calendar");const t=a(e);if(0===t.length)return;const n=t[0].f7Calendar;!n||n&&!n.opened||n.close()}},params:{calendar:{dateFormat:void 0,monthNames:"auto",monthNamesShort:"auto",dayNames:"auto",dayNamesShort:"auto",locale:void 0,firstDay:1,weekendDays:[0,6],multiple:!1,rangePicker:!1,rangePickerMinDays:1,rangePickerMaxDays:0,direction:"horizontal",minDate:null,maxDate:null,disabled:null,events:null,rangesClasses:null,touchMove:!0,animate:!0,closeOnSelect:!1,monthSelector:!0,monthPicker:!0,yearSelector:!0,yearPicker:!0,yearPickerMin:void 0,yearPickerMax:void 0,timePicker:!1,timePickerLabel:"Time",timePickerFormat:{hour:"numeric",minute:"numeric"},timePickerPlaceholder:"Select time",weekHeader:!0,value:null,containerEl:null,openIn:"auto",sheetPush:!1,sheetSwipeToClose:void 0,formatValue:null,inputEl:null,inputReadOnly:!0,closeByOutsideClick:!0,scrollToInput:!0,header:!1,headerPlaceholder:"Select date",toolbar:!0,toolbarCloseText:"Done",footer:!1,cssClass:null,routableModals:!1,view:null,url:"date/",backdrop:null,closeByBackdropClick:!0,renderWeekHeader:null,renderMonths:null,renderMonth:null,renderMonthSelector:null,renderYearSelector:null,renderHeader:null,renderFooter:null,renderToolbar:null,renderInline:null,renderPopover:null,renderSheet:null,render:null}}};if(t){if(e.prototype.modules&&e.prototype.modules[h.name])return;e.use(h),e.instance&&(e.instance.useModuleParams(h,e.instance.params),e.instance.useModule(h))}return h}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))
|