framework7 7.0.3 → 7.0.6
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.d.ts +2 -2
- package/components/actions/actions.d.ts +5 -1
- package/components/actions/actions.lazy.js +1 -1
- package/components/app/app-class.d.ts +10 -7
- package/components/appbar/appbar.d.ts +5 -1
- package/components/area-chart/area-chart.d.ts +5 -1
- package/components/autocomplete/autocomplete.d.ts +7 -3
- package/components/badge/badge.d.ts +5 -1
- package/components/block/block.d.ts +5 -1
- package/components/breadcrumbs/breadcrumbs.d.ts +2 -2
- package/components/button/button.d.ts +5 -1
- package/components/calendar/calendar.d.ts +6 -2
- package/components/card/card.d.ts +5 -1
- package/components/card/card.lazy.js +1 -1
- package/components/checkbox/checkbox.d.ts +5 -1
- package/components/chip/chip.d.ts +5 -1
- package/components/color-picker/color-picker.d.ts +6 -2
- package/components/contacts-list/contacts-list.d.ts +5 -1
- package/components/data-table/data-table.d.ts +5 -1
- package/components/dialog/dialog.d.ts +5 -1
- package/components/dialog/dialog.lazy.js +1 -1
- package/components/elevation/elevation.d.ts +5 -1
- package/components/fab/fab.d.ts +5 -1
- package/components/form/form.d.ts +5 -1
- package/components/form/form.lazy.js +1 -1
- package/components/gauge/gauge.d.ts +5 -1
- package/components/gauge/gauge.lazy.js +1 -1
- package/components/grid/grid.d.ts +5 -1
- package/components/grid/grid.lazy.js +1 -1
- package/components/icon/icon.d.ts +5 -1
- package/components/infinite-scroll/infinite-scroll.d.ts +5 -1
- package/components/input/input.d.ts +5 -1
- package/components/input/input.lazy.js +1 -1
- package/components/lazy/lazy.d.ts +5 -1
- package/components/lazy/lazy.lazy.js +1 -1
- package/components/link/link.d.ts +5 -1
- package/components/list/list.d.ts +5 -1
- package/components/list-index/list-index.d.ts +5 -1
- package/components/login-screen/login-screen.d.ts +5 -1
- package/components/menu/menu.d.ts +5 -1
- package/components/messagebar/messagebar.d.ts +5 -1
- package/components/messages/messages.d.ts +5 -1
- package/components/modal/modal.d.ts +5 -1
- package/components/navbar/navbar.d.ts +5 -1
- package/components/notification/notification.d.ts +5 -1
- package/components/page/page.d.ts +5 -1
- package/components/panel/panel.d.ts +5 -1
- package/components/panel/panel.js +1 -0
- package/components/panel/panel.lazy.js +1 -1
- package/components/photo-browser/photo-browser.d.ts +6 -2
- package/components/photo-browser/photo-browser.lazy.js +1 -1
- package/components/picker/picker.d.ts +6 -2
- package/components/picker/picker.lazy.js +1 -1
- package/components/pie-chart/pie-chart.d.ts +5 -1
- package/components/popover/popover-class.js +8 -6
- package/components/popover/popover.d.ts +7 -1
- package/components/popover/popover.js +1 -0
- package/components/popover/popover.lazy.js +1 -1
- package/components/popup/popup.d.ts +5 -1
- package/components/popup/popup.lazy.js +1 -1
- package/components/preloader/preloader.d.ts +5 -1
- package/components/progressbar/progressbar.d.ts +5 -1
- package/components/pull-to-refresh/pull-to-refresh.d.ts +5 -1
- package/components/radio/radio.d.ts +5 -1
- package/components/range/range.d.ts +5 -1
- package/components/searchbar/searchbar.d.ts +5 -1
- package/components/searchbar/searchbar.lazy.js +1 -1
- package/components/sheet/sheet.d.ts +5 -1
- package/components/sheet/sheet.lazy.js +1 -1
- package/components/skeleton/skeleton.d.ts +5 -1
- package/components/smart-select/smart-select-class.js +2 -1
- package/components/smart-select/smart-select.d.ts +7 -3
- package/components/smart-select/smart-select.lazy.js +1 -1
- package/components/sortable/sortable.d.ts +1 -1
- package/components/sortable/sortable.lazy.js +1 -1
- package/components/statusbar/statusbar.d.ts +5 -1
- package/components/stepper/stepper.d.ts +5 -1
- package/components/subnavbar/subnavbar.d.ts +1 -1
- package/components/swipeout/swipeout.d.ts +1 -1
- package/components/swipeout/swipeout.lazy.js +1 -1
- package/components/swiper/swiper.d.ts +5 -1
- package/components/swiper/swiper.lazy.js +1 -1
- package/components/tabs/tabs.d.ts +1 -1
- package/components/text-editor/text-editor.d.ts +5 -1
- package/components/text-editor/text-editor.lazy.js +1 -1
- package/components/timeline/timeline.d.ts +5 -1
- package/components/toast/toast.d.ts +5 -1
- package/components/toast/toast.lazy.js +1 -1
- package/components/toggle/toggle.d.ts +5 -1
- package/components/toolbar/toolbar.d.ts +1 -1
- package/components/tooltip/tooltip.d.ts +5 -1
- package/components/tooltip/tooltip.lazy.js +1 -1
- package/components/touch-ripple/touch-ripple.d.ts +5 -1
- package/components/treeview/treeview.d.ts +5 -1
- package/components/typography/typography.d.ts +5 -1
- package/components/view/view.d.ts +6 -2
- package/components/virtual-list/virtual-list.d.ts +5 -1
- package/components/virtual-list/virtual-list.lazy.js +1 -1
- package/framework7-bundle-rtl.css +2 -2
- package/framework7-bundle-rtl.min.css +2 -2
- package/framework7-bundle.css +2 -2
- package/framework7-bundle.esm.js +2 -2
- package/framework7-bundle.js +6031 -6027
- package/framework7-bundle.js.map +1 -1
- package/framework7-bundle.less +58 -58
- package/framework7-bundle.min.css +2 -2
- 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-types.d.ts +89 -89
- package/framework7.css +2 -2
- package/framework7.d.ts +89 -89
- package/framework7.esm.js +2 -2
- package/framework7.js +2 -2
- package/framework7.less +2 -2
- package/framework7.min.css +2 -2
- package/framework7.min.js +2 -2
- package/modules/component/component.d.ts +3 -3
- package/modules/component/snabbdom/h.d.ts +7 -7
- package/modules/component/snabbdom/helpers/attachto.d.ts +6 -6
- package/modules/component/snabbdom/hooks.d.ts +11 -11
- package/modules/component/snabbdom/modules/attributes.d.ts +1 -1
- package/modules/component/snabbdom/modules/class.d.ts +1 -1
- package/modules/component/snabbdom/modules/dataset.d.ts +1 -1
- package/modules/component/snabbdom/modules/eventlisteners.d.ts +3 -3
- package/modules/component/snabbdom/modules/hero.d.ts +2 -2
- package/modules/component/snabbdom/modules/module.d.ts +7 -7
- package/modules/component/snabbdom/modules/props.d.ts +1 -1
- package/modules/component/snabbdom/modules/style.d.ts +3 -3
- package/modules/component/snabbdom/snabbdom.d.ts +6 -6
- package/modules/component/snabbdom/thunk.d.ts +6 -6
- package/modules/component/snabbdom/tovnode.d.ts +3 -3
- package/modules/component/snabbdom/vnode.d.ts +30 -30
- package/modules/device/device.d.ts +2 -2
- package/modules/request/request.d.ts +2 -2
- package/modules/resize/resize.d.ts +1 -1
- package/modules/router/router.d.ts +10 -10
- package/modules/service-worker/service-worker.d.ts +1 -1
- package/modules/store/store.d.ts +1 -1
- package/modules/support/support.d.ts +2 -2
- package/modules/touch/touch.d.ts +1 -1
- package/modules/utils/utils.d.ts +2 -2
- package/package.json +185 -7
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { Dom7Array } from 'dom7';
|
|
2
|
-
import Framework7, {
|
|
2
|
+
import Framework7, {
|
|
3
|
+
CSSSelector,
|
|
4
|
+
Framework7EventsClass,
|
|
5
|
+
Framework7Plugin,
|
|
6
|
+
} from '../app/app-class.js';
|
|
3
7
|
|
|
4
8
|
export namespace TextEditor {
|
|
5
9
|
interface Parameters {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function framework7ComponentLoader(e,t){void 0===t&&(t=!0);var o=e.$,r=e.utils,n=e.getDevice,a=(e.getSupport,e.Class),i=(e.Modal,e.ConstructorMethods),l=(e.ModalMethods,r.extend),s=r.deleteProps;const c={bold:["bold","format_bold","bold"],italic:["italic","format_italic","italic"],underline:["underline","format_underlined","underline"],strikeThrough:["strikethrough","strikethrough_s","strikeThrough"],orderedList:["list_number","format_list_numbered","insertOrderedList"],unorderedList:["list_bullet","format_list_bulleted","insertUnorderedList"],link:["link","link","createLink"],image:["photo","image","insertImage"],paragraph:["paragraph",'<i class="icon">¶</i>',"formatBlock.P"],h1:['<i class="icon">H<sub>1</sub></i>','<i class="icon">H<sub>1</sub></i>',"formatBlock.H1"],h2:['<i class="icon">H<sub>2</sub></i>','<i class="icon">H<sub>2</sub></i>',"formatBlock.H2"],h3:['<i class="icon">H<sub>3</sub></i>','<i class="icon">H<sub>3</sub></i>',"formatBlock.H3"],alignLeft:["text_alignleft","format_align_left","justifyLeft"],alignCenter:["text_aligncenter","format_align_center","justifyCenter"],alignRight:["text_alignright","format_align_right","justifyRight"],alignJustify:["text_justify","format_align_justify","justifyFull"],subscript:["textformat_subscript",'<i class="icon">A<sub>1</sub></i>',"subscript"],superscript:["textformat_superscript",'<i class="icon">A<sup>1</sup></i>',"superscript"],indent:["increase_indent","format_indent_increase","indent"],outdent:["decrease_indent","format_indent_decrease","outdent"]};class d extends a{constructor(e,t){super(t,[e]);const r=this,a=getDocument(),i=n(),s=l({},e.params.textEditor);r.useModulesParams(s),r.params=l(s,t);const c=r.params.el;if(!c)return r;const d=o(c);if(0===d.length)return r;if(d[0].f7TextEditor)return d[0].f7TextEditor;let p=d.children(".text-editor-content");if(p.length||(d.append('<div class="text-editor-content" contenteditable></div>'),p=d.children(".text-editor-content")),l(r,{app:e,$el:d,el:d[0],$contentEl:p,contentEl:p[0]}),"value"in t&&(r.value=r.params.value),"keyboard-toolbar"===r.params.mode&&(i.cordova||i.capacitor||i.android||(r.params.mode="popover")),"string"==typeof r.params.buttons)try{r.params.buttons=JSON.parse(r.params.buttons)}catch(e){throw new Error('Framework7: TextEditor: wrong "buttons" parameter format')}return d[0].f7TextEditor=r,r.onButtonClick=r.onButtonClick.bind(r),r.onFocus=r.onFocus.bind(r),r.onBlur=r.onBlur.bind(r),r.onInput=r.onInput.bind(r),r.onPaste=r.onPaste.bind(r),r.onSelectionChange=r.onSelectionChange.bind(r),r.closeKeyboardToolbar=r.closeKeyboardToolbar.bind(r),r.attachEvents=function(){"toolbar"===r.params.mode&&r.$el.find(".text-editor-toolbar").on("click","button",r.onButtonClick),"keyboard-toolbar"===r.params.mode&&(r.$keyboardToolbarEl.on("click","button",r.onButtonClick),r.$el.parents(".page").on("page:beforeout",r.closeKeyboardToolbar)),"popover"===r.params.mode&&r.popover&&r.popover.$el.on("click","button",r.onButtonClick),r.$contentEl.on("paste",r.onPaste),r.$contentEl.on("focus",r.onFocus),r.$contentEl.on("blur",r.onBlur),r.$contentEl.on("input",r.onInput,!0),o(a).on("selectionchange",r.onSelectionChange)},r.detachEvents=function(){"toolbar"===r.params.mode&&r.$el.find(".text-editor-toolbar").off("click","button",r.onButtonClick),"keyboard-toolbar"===r.params.mode&&(r.$keyboardToolbarEl.off("click","button",r.onButtonClick),r.$el.parents(".page").off("page:beforeout",r.closeKeyboardToolbar)),"popover"===r.params.mode&&r.popover&&r.popover.$el.off("click","button",r.onButtonClick),r.$contentEl.off("paste",r.onPaste),r.$contentEl.off("focus",r.onFocus),r.$contentEl.off("blur",r.onBlur),r.$contentEl.off("input",r.onInput,!0),o(a).off("selectionchange",r.onSelectionChange)},r.useModules(),r.init(),r}setValue(e){const t=this;return t.value===e||(t.value=e,t.$contentEl.html(e),t.$el.trigger("texteditor:change",t.value),t.emit("local::change textEditorChange",t,t.value)),t}getValue(){return this.value}clearValue(){const e=this;return e.setValue(""),e.params.placeholder&&!e.$contentEl.html()&&e.insertPlaceholder(),e}createLink(){const e=this,t=getWindow(),r=getDocument(),n=t.getSelection(),a=[];let i;if(n&&n.anchorNode&&o(n.anchorNode).parents(e.$el).length){let e=n.anchorNode;for(;e;)a.push(e),e.nextSibling&&e!==n.focusNode||(e=null),e&&(e=e.nextSibling);const t=[],r=o(a);for(let e=0;e<r.length;e+=1){const n=r[e].children;if(n)for(let e=0;e<n.length;e+=1)o(n[e]).is("a")&&t.push(n[e])}i=r.closest("a").add(o(t))}if(i&&i.length)return i.each((e=>{const o=t.getSelection(),n=r.createRange();n.selectNodeContents(e),o.removeAllRanges(),o.addRange(n),r.execCommand("unlink",!1),o.removeAllRanges()})),e;const l=e.getSelectionRange();if(!l)return e;return e.app.dialog.prompt(e.params.linkUrlText,"",(t=>{t&&t.trim().length&&(e.setSelectionRange(l),r.execCommand("createLink",!1,t.trim()),e.$el.trigger("texteditor:insertlink",{url:t.trim()}),e.emit("local:insertLink textEditorInsertLink",e,t.trim()))})).$el.find("input").focus(),e}insertImage(){const e=this,t=getDocument(),o=e.getSelectionRange();if(!o)return e;return e.app.dialog.prompt(e.params.imageUrlText,"",(r=>{r&&r.trim().length&&(e.setSelectionRange(o),t.execCommand("insertImage",!1,r.trim()),e.$el.trigger("texteditor:insertimage",{url:r.trim()}),e.emit("local:insertImage textEditorInsertImage",e,r.trim()))})).$el.find("input").focus(),e}removePlaceholder(){this.$contentEl.find(".text-editor-placeholder").remove()}insertPlaceholder(){this.$contentEl.append(`<div class="text-editor-placeholder">${this.params.placeholder}</div>`)}onSelectionChange(){const e=this,t=getWindow(),r=getDocument();if("toolbar"===e.params.mode)return;const n=t.getSelection(),a=o(n.anchorNode).parents(e.contentEl).length||n.anchorNode===e.contentEl;if("keyboard-toolbar"!==e.params.mode){if("popover"===e.params.mode){const i=o(n.anchorNode).parents(e.popover.el).length||n.anchorNode===e.popover.el;if(!a&&!i)return void e.closePopover();if(!n.isCollapsed&&n.rangeCount){const o=n.getRangeAt(0).getBoundingClientRect(),a=e.app.$el[0]||r.body;e.openPopover(o.x+(t.scrollX||0)-a.offsetLeft,o.y+(t.scrollY||0)-a.offsetTop,o.width,o.height)}else n.isCollapsed&&e.closePopover()}}else a?e.openKeyboardToolbar():e.closeKeyboardToolbar()}onPaste(e){const t=getDocument();if(this.params.clearFormattingOnPaste&&e.clipboardData&&e.clipboardData.getData){const o=e.clipboardData.getData("text/plain");e.preventDefault(),t.execCommand("insertText",!1,o)}}onInput(){const e=this,t=e.$contentEl.html();e.value=t,e.$el.trigger("texteditor:input"),e.emit("local:input textEditorInput",e,e.value),e.$el.trigger("texteditor:change",e.value),e.emit("local::change textEditorChange",e,e.value)}onFocus(){const e=this;e.removePlaceholder(),e.$contentEl.focus(),e.$el.trigger("texteditor:focus"),e.emit("local::focus textEditorFocus",e)}onBlur(){const e=this,t=getWindow(),r=getDocument();if(e.params.placeholder&&""===e.$contentEl.html()&&e.insertPlaceholder(),"popover"===e.params.mode){const n=t.getSelection(),a=o(n.anchorNode).parents(e.contentEl).length||n.anchorNode===e.contentEl;r.activeElement&&e.popover&&o(r.activeElement).closest(e.popover.$el).length||a||e.closePopover()}if("keyboard-toolbar"===e.params.mode){const r=t.getSelection();o(r.anchorNode).parents(e.contentEl).length||r.anchorNode===e.contentEl||e.closeKeyboardToolbar()}e.$el.trigger("texteditor:blur"),e.emit("local::blur textEditorBlur",e)}onButtonClick(e){const t=this,r=getWindow(),n=getDocument(),a=r.getSelection();if(!(o(a.anchorNode).parents(t.contentEl).length||a.anchorNode===t.contentEl))return;const i=o(e.target).closest("button");i.parents("form").length&&e.preventDefault();const l=i.attr("data-button"),s=t.params.customButtons&&t.params.customButtons[l];if(!l||!c[l]&&!s)return;if(i.trigger("texteditor:buttonclick",l),t.emit("local::buttonClick textEditorButtonClick",t,l),s)return void(s.onClick&&s.onClick(t,i[0]));const d=c[l][2];if("createLink"!==d)if("insertImage"!==d)if(0!==d.indexOf("formatBlock"))n.execCommand(d,!1);else{const e=d.split(".")[1],t=o(a.anchorNode);t.parents(e.toLowerCase()).length||t.is(e)?n.execCommand("formatBlock",!1,"div"):n.execCommand("formatBlock",!1,e)}else t.insertImage();else t.createLink()}getSelectionRange(){const e=getWindow(),t=getDocument();if(e.getSelection){const t=e.getSelection();if(t.getRangeAt&&t.rangeCount)return t.getRangeAt(0)}else if(t.selection&&t.selection.createRange)return t.selection.createRange();return null}setSelectionRange(e){const t=getWindow(),o=getDocument();if(e)if(t.getSelection){const o=t.getSelection();o.removeAllRanges(),o.addRange(e)}else o.selection&&e.select&&e.select()}renderButtons(){const e=this;let t="";function o(t){const o="md"===e.app.theme?"material-icons":"f7-icons";if(e.params.customButtons&&e.params.customButtons[t]){return`<button type="button" class="text-editor-button" data-button="${t}">${e.params.customButtons[t].content||""}</button>`}if(!c[t])return"";const r=c[t]["md"===e.app.theme?1:0];return`<button type="button" class="text-editor-button" data-button="${t}">${r.indexOf("<")>=0?r:`<i class="${o}">${r}</i>`}</button>`.trim()}return e.params.buttons.forEach(((r,n)=>{Array.isArray(r)?(r.forEach((e=>{t+=o(e)})),n<e.params.buttons.length-1&&e.params.dividers&&(t+='<div class="text-editor-button-divider"></div>')):t+=o(r)})),t}createToolbar(){this.$el.prepend(`<div class="text-editor-toolbar">${this.renderButtons()}</div>`)}createKeyboardToolbar(){this.$keyboardToolbarEl=o(`<div class="toolbar toolbar-bottom text-editor-keyboard-toolbar"><div class="toolbar-inner">${this.renderButtons()}</div></div>`)}createPopover(){const e=this;e.popover=e.app.popover.create({content:`\n <div class="popover dark text-editor-popover">\n <div class="popover-inner">${e.renderButtons()}</div>\n </div>\n `,closeByOutsideClick:!1,backdrop:!1})}openKeyboardToolbar(){const e=this;e.$keyboardToolbarEl.parent(e.app.$el).length||(e.$el.trigger("texteditor:keyboardopen"),e.emit("local::keyboardOpen textEditorKeyboardOpen",e),e.app.$el.append(e.$keyboardToolbarEl))}closeKeyboardToolbar(){const e=this;e.$keyboardToolbarEl.remove(),e.$el.trigger("texteditor:keyboardclose"),e.emit("local::keyboardClose textEditorKeyboardClose",e)}openPopover(e,t,o,r){const n=this;n.popover&&(Object.assign(n.popover.params,{targetX:e,targetY:t,targetWidth:o,targetHeight:r}),clearTimeout(n.popoverTimeout),n.popoverTimeout=setTimeout((()=>{n.popover&&(n.popover.opened?n.popover.resize():(n.$el.trigger("texteditor:popoveropen"),n.emit("local::popoverOpen textEditorPopoverOpen",n),n.popover.open()))}),400))}closePopover(){const e=this;clearTimeout(e.popoverTimeout),e.popover&&e.popover.opened&&(e.popoverTimeout=setTimeout((()=>{e.popover&&(e.$el.trigger("texteditor:popoverclose"),e.emit("local::popoverClose textEditorPopoverClose",e),e.popover.close())}),400))}init(){const e=this;return e.value?e.$contentEl.html(e.value):e.value=e.$contentEl.html(),e.params.placeholder&&""===e.value&&e.insertPlaceholder(),"toolbar"===e.params.mode?e.createToolbar():"popover"===e.params.mode?e.createPopover():"keyboard-toolbar"===e.params.mode&&e.createKeyboardToolbar(),e.attachEvents(),e.$el.trigger("texteditor:init"),e.emit("local::init textEditorInit",e),e}destroy(){let e=this;e.$el.trigger("texteditor:beforedestroy"),e.emit("local::beforeDestroy textEditorBeforeDestroy",e),e.detachEvents(),"keyboard-toolbar"===e.params.mode&&e.$keyboardToolbarEl&&e.$keyboardToolbarEl.remove(),e.popover&&(e.popover.close(!1),e.popover.destroy()),delete e.$el[0].f7TextEditor,s(e),e=null}}var p={name:"textEditor",params:{textEditor:{el:null,mode:"toolbar",value:void 0,customButtons:null,buttons:[["bold","italic","underline","strikeThrough"],["orderedList","unorderedList"],["link","image"],["paragraph","h1","h2","h3"],["alignLeft","alignCenter","alignRight","alignJustify"],["subscript","superscript"],["indent","outdent"]],dividers:!0,imageUrlText:"Insert image URL",linkUrlText:"Insert link URL",placeholder:null,clearFormattingOnPaste:!0}},create(){this.textEditor=l(i({defaultSelector:".text-editor",constructor:d,app:this,domProp:"f7TextEditor"}))},static:{TextEditor:d},on:{tabMounted(e){const t=this;o(e).find(".text-editor-init").each((e=>{const r=o(e).dataset();t.textEditor.create(l({el:e},r||{}))}))},tabBeforeRemove(e){o(e).find(".text-editor-init").each((e=>{e.f7TextEditor&&e.f7TextEditor.destroy()}))},pageInit(e){const t=this;e.$el.find(".text-editor-init").each((e=>{const r=o(e).dataset();t.textEditor.create(l({el:e},r||{}))}))},pageBeforeRemove(e){e.$el.find(".text-editor-init").each((e=>{e.f7TextEditor&&e.f7TextEditor.destroy()}))}},vnode:{"text-editor-init":{insert(e){const t=e.elm,r=o(t).dataset();this.textEditor.create(l({el:t},r||{}))},destroy(e){const t=e.elm;t.f7TextEditor&&t.f7TextEditor.destroy()}}}};if(t){if(e.prototype.modules&&e.prototype.modules[p.name])return;e.use(p),e.instance&&(e.instance.useModuleParams(p,e.instance.params),e.instance.useModule(p))}return p}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))
|
|
1
|
+
(function framework7ComponentLoader(e,t){void 0===t&&(t=!0);var o=e.$,r=e.utils,n=e.getDevice,a=(e.getSupport,e.Class),i=(e.Modal,e.ConstructorMethods),l=(e.ModalMethods,r.extend),s=r.deleteProps;const c={bold:["bold","format_bold","bold"],italic:["italic","format_italic","italic"],underline:["underline","format_underlined","underline"],strikeThrough:["strikethrough","strikethrough_s","strikeThrough"],orderedList:["list_number","format_list_numbered","insertOrderedList"],unorderedList:["list_bullet","format_list_bulleted","insertUnorderedList"],link:["link","link","createLink"],image:["photo","image","insertImage"],paragraph:["paragraph",'<i class="icon">¶</i>',"formatBlock.P"],h1:['<i class="icon">H<sub>1</sub></i>','<i class="icon">H<sub>1</sub></i>',"formatBlock.H1"],h2:['<i class="icon">H<sub>2</sub></i>','<i class="icon">H<sub>2</sub></i>',"formatBlock.H2"],h3:['<i class="icon">H<sub>3</sub></i>','<i class="icon">H<sub>3</sub></i>',"formatBlock.H3"],alignLeft:["text_alignleft","format_align_left","justifyLeft"],alignCenter:["text_aligncenter","format_align_center","justifyCenter"],alignRight:["text_alignright","format_align_right","justifyRight"],alignJustify:["text_justify","format_align_justify","justifyFull"],subscript:["textformat_subscript",'<i class="icon">A<sub>1</sub></i>',"subscript"],superscript:["textformat_superscript",'<i class="icon">A<sup>1</sup></i>',"superscript"],indent:["increase_indent","format_indent_increase","indent"],outdent:["decrease_indent","format_indent_decrease","outdent"]};class d extends a{constructor(e,t){super(t,[e]);const r=this,a=a,i=n(),s=l({},e.params.textEditor);r.useModulesParams(s),r.params=l(s,t);const c=r.params.el;if(!c)return r;const d=o(c);if(0===d.length)return r;if(d[0].f7TextEditor)return d[0].f7TextEditor;let p=d.children(".text-editor-content");if(p.length||(d.append('<div class="text-editor-content" contenteditable></div>'),p=d.children(".text-editor-content")),l(r,{app:e,$el:d,el:d[0],$contentEl:p,contentEl:p[0]}),"value"in t&&(r.value=r.params.value),"keyboard-toolbar"===r.params.mode&&(i.cordova||i.capacitor||i.android||(r.params.mode="popover")),"string"==typeof r.params.buttons)try{r.params.buttons=JSON.parse(r.params.buttons)}catch(e){throw new Error('Framework7: TextEditor: wrong "buttons" parameter format')}return d[0].f7TextEditor=r,r.onButtonClick=r.onButtonClick.bind(r),r.onFocus=r.onFocus.bind(r),r.onBlur=r.onBlur.bind(r),r.onInput=r.onInput.bind(r),r.onPaste=r.onPaste.bind(r),r.onSelectionChange=r.onSelectionChange.bind(r),r.closeKeyboardToolbar=r.closeKeyboardToolbar.bind(r),r.attachEvents=function(){"toolbar"===r.params.mode&&r.$el.find(".text-editor-toolbar").on("click","button",r.onButtonClick),"keyboard-toolbar"===r.params.mode&&(r.$keyboardToolbarEl.on("click","button",r.onButtonClick),r.$el.parents(".page").on("page:beforeout",r.closeKeyboardToolbar)),"popover"===r.params.mode&&r.popover&&r.popover.$el.on("click","button",r.onButtonClick),r.$contentEl.on("paste",r.onPaste),r.$contentEl.on("focus",r.onFocus),r.$contentEl.on("blur",r.onBlur),r.$contentEl.on("input",r.onInput,!0),o(a).on("selectionchange",r.onSelectionChange)},r.detachEvents=function(){"toolbar"===r.params.mode&&r.$el.find(".text-editor-toolbar").off("click","button",r.onButtonClick),"keyboard-toolbar"===r.params.mode&&(r.$keyboardToolbarEl.off("click","button",r.onButtonClick),r.$el.parents(".page").off("page:beforeout",r.closeKeyboardToolbar)),"popover"===r.params.mode&&r.popover&&r.popover.$el.off("click","button",r.onButtonClick),r.$contentEl.off("paste",r.onPaste),r.$contentEl.off("focus",r.onFocus),r.$contentEl.off("blur",r.onBlur),r.$contentEl.off("input",r.onInput,!0),o(a).off("selectionchange",r.onSelectionChange)},r.useModules(),r.init(),r}setValue(e){const t=this;return t.value===e||(t.value=e,t.$contentEl.html(e),t.$el.trigger("texteditor:change",t.value),t.emit("local::change textEditorChange",t,t.value)),t}getValue(){return this.value}clearValue(){const e=this;return e.setValue(""),e.params.placeholder&&!e.$contentEl.html()&&e.insertPlaceholder(),e}createLink(){const e=this,t=t,r=r,n=t.getSelection(),a=[];let i;if(n&&n.anchorNode&&o(n.anchorNode).parents(e.$el).length){let e=n.anchorNode;for(;e;)a.push(e),e.nextSibling&&e!==n.focusNode||(e=null),e&&(e=e.nextSibling);const t=[],r=o(a);for(let e=0;e<r.length;e+=1){const n=r[e].children;if(n)for(let e=0;e<n.length;e+=1)o(n[e]).is("a")&&t.push(n[e])}i=r.closest("a").add(o(t))}if(i&&i.length)return i.each((e=>{const o=t.getSelection(),n=r.createRange();n.selectNodeContents(e),o.removeAllRanges(),o.addRange(n),r.execCommand("unlink",!1),o.removeAllRanges()})),e;const l=e.getSelectionRange();if(!l)return e;return e.app.dialog.prompt(e.params.linkUrlText,"",(t=>{t&&t.trim().length&&(e.setSelectionRange(l),r.execCommand("createLink",!1,t.trim()),e.$el.trigger("texteditor:insertlink",{url:t.trim()}),e.emit("local:insertLink textEditorInsertLink",e,t.trim()))})).$el.find("input").focus(),e}insertImage(){const e=this,t=t,o=e.getSelectionRange();if(!o)return e;return e.app.dialog.prompt(e.params.imageUrlText,"",(r=>{r&&r.trim().length&&(e.setSelectionRange(o),t.execCommand("insertImage",!1,r.trim()),e.$el.trigger("texteditor:insertimage",{url:r.trim()}),e.emit("local:insertImage textEditorInsertImage",e,r.trim()))})).$el.find("input").focus(),e}removePlaceholder(){this.$contentEl.find(".text-editor-placeholder").remove()}insertPlaceholder(){this.$contentEl.append(`<div class="text-editor-placeholder">${this.params.placeholder}</div>`)}onSelectionChange(){const e=this,t=t,r=r;if("toolbar"===e.params.mode)return;const n=t.getSelection(),a=o(n.anchorNode).parents(e.contentEl).length||n.anchorNode===e.contentEl;if("keyboard-toolbar"!==e.params.mode){if("popover"===e.params.mode){const i=o(n.anchorNode).parents(e.popover.el).length||n.anchorNode===e.popover.el;if(!a&&!i)return void e.closePopover();if(!n.isCollapsed&&n.rangeCount){const o=n.getRangeAt(0).getBoundingClientRect(),a=e.app.$el[0]||r.body;e.openPopover(o.x+(t.scrollX||0)-a.offsetLeft,o.y+(t.scrollY||0)-a.offsetTop,o.width,o.height)}else n.isCollapsed&&e.closePopover()}}else a?e.openKeyboardToolbar():e.closeKeyboardToolbar()}onPaste(e){const t=t;if(this.params.clearFormattingOnPaste&&e.clipboardData&&e.clipboardData.getData){const o=e.clipboardData.getData("text/plain");e.preventDefault(),t.execCommand("insertText",!1,o)}}onInput(){const e=this,t=e.$contentEl.html();e.value=t,e.$el.trigger("texteditor:input"),e.emit("local:input textEditorInput",e,e.value),e.$el.trigger("texteditor:change",e.value),e.emit("local::change textEditorChange",e,e.value)}onFocus(){const e=this;e.removePlaceholder(),e.$contentEl.focus(),e.$el.trigger("texteditor:focus"),e.emit("local::focus textEditorFocus",e)}onBlur(){const e=this,t=t,r=r;if(e.params.placeholder&&""===e.$contentEl.html()&&e.insertPlaceholder(),"popover"===e.params.mode){const n=t.getSelection(),a=o(n.anchorNode).parents(e.contentEl).length||n.anchorNode===e.contentEl;r.activeElement&&e.popover&&o(r.activeElement).closest(e.popover.$el).length||a||e.closePopover()}if("keyboard-toolbar"===e.params.mode){const r=t.getSelection();o(r.anchorNode).parents(e.contentEl).length||r.anchorNode===e.contentEl||e.closeKeyboardToolbar()}e.$el.trigger("texteditor:blur"),e.emit("local::blur textEditorBlur",e)}onButtonClick(e){const t=this,r=r,n=n,a=r.getSelection();if(!(o(a.anchorNode).parents(t.contentEl).length||a.anchorNode===t.contentEl))return;const i=o(e.target).closest("button");i.parents("form").length&&e.preventDefault();const l=i.attr("data-button"),s=t.params.customButtons&&t.params.customButtons[l];if(!l||!c[l]&&!s)return;if(i.trigger("texteditor:buttonclick",l),t.emit("local::buttonClick textEditorButtonClick",t,l),s)return void(s.onClick&&s.onClick(t,i[0]));const d=c[l][2];if("createLink"!==d)if("insertImage"!==d)if(0!==d.indexOf("formatBlock"))n.execCommand(d,!1);else{const e=d.split(".")[1],t=o(a.anchorNode);t.parents(e.toLowerCase()).length||t.is(e)?n.execCommand("formatBlock",!1,"div"):n.execCommand("formatBlock",!1,e)}else t.insertImage();else t.createLink()}getSelectionRange(){const e=e,t=t;if(e.getSelection){const t=e.getSelection();if(t.getRangeAt&&t.rangeCount)return t.getRangeAt(0)}else if(t.selection&&t.selection.createRange)return t.selection.createRange();return null}setSelectionRange(e){const t=t,o=o;if(e)if(t.getSelection){const o=t.getSelection();o.removeAllRanges(),o.addRange(e)}else o.selection&&e.select&&e.select()}renderButtons(){const e=this;let t="";function o(t){const o="md"===e.app.theme?"material-icons":"f7-icons";if(e.params.customButtons&&e.params.customButtons[t]){return`<button type="button" class="text-editor-button" data-button="${t}">${e.params.customButtons[t].content||""}</button>`}if(!c[t])return"";const r=c[t]["md"===e.app.theme?1:0];return`<button type="button" class="text-editor-button" data-button="${t}">${r.indexOf("<")>=0?r:`<i class="${o}">${r}</i>`}</button>`.trim()}return e.params.buttons.forEach(((r,n)=>{Array.isArray(r)?(r.forEach((e=>{t+=o(e)})),n<e.params.buttons.length-1&&e.params.dividers&&(t+='<div class="text-editor-button-divider"></div>')):t+=o(r)})),t}createToolbar(){this.$el.prepend(`<div class="text-editor-toolbar">${this.renderButtons()}</div>`)}createKeyboardToolbar(){this.$keyboardToolbarEl=o(`<div class="toolbar toolbar-bottom text-editor-keyboard-toolbar"><div class="toolbar-inner">${this.renderButtons()}</div></div>`)}createPopover(){const e=this;e.popover=e.app.popover.create({content:`\n <div class="popover dark text-editor-popover">\n <div class="popover-inner">${e.renderButtons()}</div>\n </div>\n `,closeByOutsideClick:!1,backdrop:!1})}openKeyboardToolbar(){const e=this;e.$keyboardToolbarEl.parent(e.app.$el).length||(e.$el.trigger("texteditor:keyboardopen"),e.emit("local::keyboardOpen textEditorKeyboardOpen",e),e.app.$el.append(e.$keyboardToolbarEl))}closeKeyboardToolbar(){const e=this;e.$keyboardToolbarEl.remove(),e.$el.trigger("texteditor:keyboardclose"),e.emit("local::keyboardClose textEditorKeyboardClose",e)}openPopover(e,t,o,r){const n=this;n.popover&&(Object.assign(n.popover.params,{targetX:e,targetY:t,targetWidth:o,targetHeight:r}),clearTimeout(n.popoverTimeout),n.popoverTimeout=setTimeout((()=>{n.popover&&(n.popover.opened?n.popover.resize():(n.$el.trigger("texteditor:popoveropen"),n.emit("local::popoverOpen textEditorPopoverOpen",n),n.popover.open()))}),400))}closePopover(){const e=this;clearTimeout(e.popoverTimeout),e.popover&&e.popover.opened&&(e.popoverTimeout=setTimeout((()=>{e.popover&&(e.$el.trigger("texteditor:popoverclose"),e.emit("local::popoverClose textEditorPopoverClose",e),e.popover.close())}),400))}init(){const e=this;return e.value?e.$contentEl.html(e.value):e.value=e.$contentEl.html(),e.params.placeholder&&""===e.value&&e.insertPlaceholder(),"toolbar"===e.params.mode?e.createToolbar():"popover"===e.params.mode?e.createPopover():"keyboard-toolbar"===e.params.mode&&e.createKeyboardToolbar(),e.attachEvents(),e.$el.trigger("texteditor:init"),e.emit("local::init textEditorInit",e),e}destroy(){let e=this;e.$el.trigger("texteditor:beforedestroy"),e.emit("local::beforeDestroy textEditorBeforeDestroy",e),e.detachEvents(),"keyboard-toolbar"===e.params.mode&&e.$keyboardToolbarEl&&e.$keyboardToolbarEl.remove(),e.popover&&(e.popover.close(!1),e.popover.destroy()),delete e.$el[0].f7TextEditor,s(e),e=null}}var p={name:"textEditor",params:{textEditor:{el:null,mode:"toolbar",value:void 0,customButtons:null,buttons:[["bold","italic","underline","strikeThrough"],["orderedList","unorderedList"],["link","image"],["paragraph","h1","h2","h3"],["alignLeft","alignCenter","alignRight","alignJustify"],["subscript","superscript"],["indent","outdent"]],dividers:!0,imageUrlText:"Insert image URL",linkUrlText:"Insert link URL",placeholder:null,clearFormattingOnPaste:!0}},create(){this.textEditor=l(i({defaultSelector:".text-editor",constructor:d,app:this,domProp:"f7TextEditor"}))},static:{TextEditor:d},on:{tabMounted(e){const t=this;o(e).find(".text-editor-init").each((e=>{const r=o(e).dataset();t.textEditor.create(l({el:e},r||{}))}))},tabBeforeRemove(e){o(e).find(".text-editor-init").each((e=>{e.f7TextEditor&&e.f7TextEditor.destroy()}))},pageInit(e){const t=this;e.$el.find(".text-editor-init").each((e=>{const r=o(e).dataset();t.textEditor.create(l({el:e},r||{}))}))},pageBeforeRemove(e){e.$el.find(".text-editor-init").each((e=>{e.f7TextEditor&&e.f7TextEditor.destroy()}))}},vnode:{"text-editor-init":{insert(e){const t=e.elm,r=o(t).dataset();this.textEditor.create(l({el:t},r||{}))},destroy(e){const t=e.elm;t.f7TextEditor&&t.f7TextEditor.destroy()}}}};if(t){if(e.prototype.modules&&e.prototype.modules[p.name])return;e.use(p),e.instance&&(e.instance.useModuleParams(p,e.instance.params),e.instance.useModule(p))}return p}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import Framework7, {
|
|
1
|
+
import Framework7, {
|
|
2
|
+
CSSSelector,
|
|
3
|
+
Framework7EventsClass,
|
|
4
|
+
Framework7Plugin,
|
|
5
|
+
} from '../app/app-class.js';
|
|
2
6
|
|
|
3
7
|
export namespace Timeline {
|
|
4
8
|
interface AppMethods {}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { Dom7Array } from 'dom7';
|
|
2
|
-
import Framework7, {
|
|
2
|
+
import Framework7, {
|
|
3
|
+
CSSSelector,
|
|
4
|
+
Framework7EventsClass,
|
|
5
|
+
Framework7Plugin,
|
|
6
|
+
} from '../app/app-class.js';
|
|
3
7
|
|
|
4
8
|
export namespace Toast {
|
|
5
9
|
interface Events {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function framework7ComponentLoader(t,o){void 0===o&&(o=!0);var s=t.$,e=t.utils,n=(t.getDevice,t.getSupport,t.Class,t.Modal),a=(t.ConstructorMethods,t.ModalMethods),l=e.extend,c=e.nextTick;class r extends n{constructor(t,o){const e=l({on:{}},t.params.toast,o);super(t,e);const n=this,a=
|
|
1
|
+
(function framework7ComponentLoader(t,o){void 0===o&&(o=!0);var s=t.$,e=t.utils,n=(t.getDevice,t.getSupport,t.Class,t.Modal),a=(t.ConstructorMethods,t.ModalMethods),l=e.extend,c=e.nextTick;class r extends n{constructor(t,o){const e=l({on:{}},t.params.toast,o);super(t,e);const n=this,a=a;n.app=t,n.params=e;const{closeButton:r,closeTimeout:i}=n.params;let u,d;if(n.params.el)u=s(n.params.el);else{const t=n.render();u=s(t)}return u&&u.length>0&&u[0].f7Modal?u[0].f7Modal:0===u.length?n.destroy():(l(n,{$el:u,el:u[0],type:"toast"}),u[0].f7Modal=n,r&&(u.find(".toast-button").on("click",(()=>{n.emit("local::closeButtonClick toastCloseButtonClick",n),n.close()})),n.on("beforeDestroy",(()=>{u.find(".toast-button").off("click")}))),n.on("open",(()=>{s(".toast.modal-in").each((o=>{const s=t.toast.get(o);o!==n.el&&s&&s.close()})),i&&(d=c((()=>{n.close()}),i))})),n.on("close",(()=>{a.clearTimeout(d)})),n.params.destroyOnClose&&n.once("closed",(()=>{setTimeout((()=>{n.destroy()}),0)})),n)}render(){const t=this;if(t.params.render)return t.params.render.call(t,t);const{position:o,horizontalPosition:s,cssClass:e,icon:n,text:a,closeButton:l,closeButtonColor:c,closeButtonText:r}=t.params;return $jsx("div",{class:`toast toast-${o} ${"top"===o||"bottom"===o?`toast-horizontal-${s}`:""} ${e||""} ${n?"toast-with-icon":""}`},$jsx("div",{class:"toast-content"},n&&$jsx("div",{class:"toast-icon"},n),$jsx("div",{class:"toast-text"},a),l&&!n&&$jsx("a",{class:"toast-button button "+(c?`color-${c}`:"")},r)))}}var i={name:"toast",static:{Toast:r},create(){const t=this;t.toast=l({},a({app:t,constructor:r,defaultSelector:".toast.modal-in"}),{show:o=>(l(o,{destroyOnClose:!0}),new r(t,o).open())})},params:{toast:{icon:null,text:null,position:"bottom",horizontalPosition:"left",closeButton:!1,closeButtonColor:null,closeButtonText:"Ok",closeTimeout:null,cssClass:null,render:null,containerEl:null}}};if(o){if(t.prototype.modules&&t.prototype.modules[i.name])return;t.use(i),t.instance&&(t.instance.useModuleParams(i,t.instance.params),t.instance.useModule(i))}return i}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { Dom7Array } from 'dom7';
|
|
2
|
-
import Framework7, {
|
|
2
|
+
import Framework7, {
|
|
3
|
+
CSSSelector,
|
|
4
|
+
Framework7EventsClass,
|
|
5
|
+
Framework7Plugin,
|
|
6
|
+
} from '../app/app-class.js';
|
|
3
7
|
|
|
4
8
|
export namespace Toggle {
|
|
5
9
|
interface Parameters {
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import Framework7, {
|
|
1
|
+
import Framework7, {
|
|
2
|
+
CSSSelector,
|
|
3
|
+
Framework7EventsClass,
|
|
4
|
+
Framework7Plugin,
|
|
5
|
+
} from '../app/app-class.js';
|
|
2
6
|
import { Dom7Array } from 'dom7';
|
|
3
7
|
|
|
4
8
|
export namespace Tooltip {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function framework7ComponentLoader(t,e){void 0===e&&(e=!0);var o=t.$,a=t.utils,i=(t.getDevice,t.getSupport),r=t.Class,n=(t.Modal,t.ConstructorMethods),s=(t.ModalMethods,a.extend),l=a.deleteProps;class p extends r{constructor(t,e){void 0===e&&(e={}),super(e,[t]);const a=this,r=i(),n=s({},t.params.tooltip),l=
|
|
1
|
+
(function framework7ComponentLoader(t,e){void 0===e&&(e=!0);var o=t.$,a=t.utils,i=(t.getDevice,t.getSupport),r=t.Class,n=(t.Modal,t.ConstructorMethods),s=(t.ModalMethods,a.extend),l=a.deleteProps;class p extends r{constructor(t,e){void 0===e&&(e={}),super(e,[t]);const a=this,r=i(),n=s({},t.params.tooltip),l=l;a.useModulesParams(n),a.params=s(n,e),void 0===e.offset&&r.touch&&"hover"===a.params.trigger&&(a.params.offset=10);const{targetEl:p,containerEl:c}=a.params;if(!p&&!a.params.delegated)return a;const d=o(p);if(0===d.length&&!a.params.delegated)return a;if(d[0]&&d[0].f7Tooltip&&!a.params.delegated)return d[0].f7Tooltip;let h=o(c||t.$el).eq(0);0===h.length&&(h=t.$el);const g=o(a.render()).eq(0);s(a,{app:t,$targetEl:d,targetEl:d&&d[0],$containerEl:h,containerEl:h&&h[0],$el:g,el:g&&g[0],text:a.params.text||"",visible:!1,opened:!1}),d[0]&&(d[0].f7Tooltip=a);const f={};let u;function m(){a.opened?a.hide():a.show(this)}function v(t){a.opened&&(o(t.target).closest(d).length||o(t.target).closest(a.$el).length)||a.hide()}function E(t){u||(u=!0,f.x="touchstart"===t.type?t.targetTouches[0].pageX:t.pageX,f.y="touchstart"===t.type?t.targetTouches[0].pageY:t.pageY,a.show(this))}function $(t){if(!u)return;const e="touchmove"===t.type?t.targetTouches[0].pageX:t.pageX,o="touchmove"===t.type?t.targetTouches[0].pageY:t.pageY;((e-f.x)**2+(o-f.y)**2)**.5>50&&(u=!1,a.hide())}function T(){u&&(u=!1,a.hide())}function w(){a.show(this)}function y(){a.hide()}function x(){g.hasClass("tooltip-in")||g.removeClass("tooltip-out").remove()}return a.attachEvents=function(){if(g.on("transitionend",x),"click"===a.params.trigger)return a.params.delegated?o(l).on("click",a.params.targetEl,m):a.$targetEl.on("click",m),void o("html").on("click",v);if("manual"!==a.params.trigger)if(r.touch){const e=!!r.passiveListener&&{passive:!0};a.params.delegated?o(l).on(t.touchEvents.start,a.params.targetEl,E,e):a.$targetEl.on(t.touchEvents.start,E,e),t.on("touchmove",$),t.on("touchend:passive",T)}else a.params.delegated?(o(l).on(r.pointerEvents?"pointerenter":"mouseenter",a.params.targetEl,w,!0),o(l).on(r.pointerEvents?"pointerleave":"mouseleave",a.params.targetEl,y,!0)):(a.$targetEl.on(r.pointerEvents?"pointerenter":"mouseenter",w),a.$targetEl.on(r.pointerEvents?"pointerleave":"mouseleave",y))},a.detachEvents=function(){if(g.off("transitionend",x),"click"===a.params.trigger)return a.params.delegated?o(l).on("click",a.params.targetEl,m):a.$targetEl.off("click",m),void o("html").off("click",v);if("manual"!==a.params.trigger)if(r.touch){const e=!!r.passiveListener&&{passive:!0};a.params.delegated?o(l).off(t.touchEvents.start,a.params.targetEl,E,e):a.$targetEl.off(t.touchEvents.start,E,e),t.off("touchmove",$),t.off("touchend:passive",T)}else a.params.delegated?(o(l).off(r.pointerEvents?"pointerenter":"mouseenter",a.params.targetEl,w,!0),o(l).off(r.pointerEvents?"pointerleave":"mouseleave",a.params.targetEl,y,!0)):(a.$targetEl.off(r.pointerEvents?"pointerenter":"mouseenter",w),a.$targetEl.off(r.pointerEvents?"pointerleave":"mouseleave",y))},a.useModules(),a.init(),a}setTargetEl(t){const e=this;return e.detachEvents(),e.$targetEl=o(t),e.targetEl=e.$targetEl[0],e.attachEvents(),e}position(t){const e=this,{$el:a,app:i,$containerEl:r}=e,n=!!e.params.containerEl,s=e.params.offset||0;a.css({left:"",top:""});const l=o(t||e.targetEl),[p,c]=[a.width(),a.height()];let d,h,g,f;a.css({left:"",top:""});const u=n&&r.length?r[0].getBoundingClientRect():i;if(l&&l.length>0){if(d=l.outerWidth(),h=l.outerHeight(),void 0===d&&void 0===h){const t=l[0].getBoundingClientRect();d=t.width,h=t.height}const t=l.offset();g=t.left-u.left,f=t.top-u.top;const e=l.parents(".page");e.length>0&&(f-=e[0].scrollTop)}let[m,v]=[0,0,0],E="top";c+s<f?v=f-c-s:c<u.height-f-h?(E="bottom",v=f+h+s):(E="middle",v=h/2+f-c/2,v<=0?v=8:v+c>=u.height&&(v=u.height-c-8)),"top"===E||"bottom"===E?(m=d/2+g-p/2,m<8&&(m=8),m+p>u.width&&(m=u.width-p-8),m<0&&(m=0)):"middle"===E&&(m=g-p,(m<8||m+p>u.width)&&(m<8&&(m=g+d),m+p>u.width&&(m=u.width-p-8))),a.css({top:`${v}px`,left:`${m}px`})}show(t){const e=this,{$el:a,$targetEl:i,$containerEl:r}=e;r[0]&&a[0]&&!r[0].contains(a[0])&&r.append(a),e.position(t);const n=o(t);return e.visible=!0,e.opened=!0,i.trigger("tooltip:show"),a.trigger("tooltip:show"),n.length&&n[0]!==i[0]&&n.trigger("tooltip:show"),e.emit("local::show tooltipShow",e),a.removeClass("tooltip-out").addClass("tooltip-in"),e}hide(){const t=this,{$el:e,$targetEl:o}=t;return t.visible=!1,t.opened=!1,o.trigger("tooltip:hide"),e.trigger("tooltip:hide"),t.emit("local::hide tooltipHide",t),e.addClass("tooltip-out").removeClass("tooltip-in"),t}render(){const t=this;if(t.params.render)return t.params.render.call(t,t);const{cssClass:e,text:o}=t.params;return`\n <div class="tooltip ${e||""}">\n <div class="tooltip-content">${o||""}</div>\n </div>\n `.trim()}setText(t){const e=this;return void 0===t||(e.params.text=t,e.text=t,e.$el&&e.$el.children(".tooltip-content").html(t),e.opened&&e.position()),e}init(){this.attachEvents()}destroy(){const t=this;t.$targetEl&&!t.destroyed&&(t.$targetEl.trigger("tooltip:beforedestroy"),t.emit("local::beforeDestroy tooltipBeforeDestroy",t),t.$el.remove(),t.$targetEl[0]&&delete t.$targetEl[0].f7Tooltip,t.detachEvents(),l(t),t.destroyed=!0)}}var c={name:"tooltip",static:{Tooltip:p},create(){const t=this;t.tooltip=n({defaultSelector:".tooltip",constructor:p,app:t,domProp:"f7Tooltip"}),t.tooltip.show=function(t){const e=o(t);if(0===e.length)return;const a=e[0].f7Tooltip;return a?(a.show(e[0]),a):void 0},t.tooltip.hide=function(t){const e=o(t);if(0===e.length)return;const a=e[0].f7Tooltip;return a?(a.hide(),a):void 0},t.tooltip.setText=function(t,e){const a=o(t);if(0===a.length)return;const i=a[0].f7Tooltip;return i?(i.setText(e),i):void 0}},params:{tooltip:{targetEl:null,delegated:!1,text:null,cssClass:null,render:null,offset:0,trigger:"hover",containerEl:void 0}},on:{tabMounted(t){const e=this;o(t).find(".tooltip-init").each((t=>{const a=o(t).attr("data-tooltip");a&&e.tooltip.create({targetEl:t,text:a})}))},tabBeforeRemove(t){o(t).find(".tooltip-init").each((t=>{t.f7Tooltip&&t.f7Tooltip.destroy()}))},pageInit(t){const e=this;t.$el.find(".tooltip-init").each((t=>{const a=o(t).attr("data-tooltip");a&&e.tooltip.create({targetEl:t,text:a})})),"ios"===e.theme&&t.view&&t.view.router.dynamicNavbar&&t.$navbarEl&&t.$navbarEl.length>0&&t.$navbarEl.find(".tooltip-init").each((t=>{const a=o(t).attr("data-tooltip");a&&e.tooltip.create({targetEl:t,text:a})}))},pageBeforeRemove(t){t.$el.find(".tooltip-init").each((t=>{t.f7Tooltip&&t.f7Tooltip.destroy()})),"ios"===this.theme&&t.view&&t.view.router.dynamicNavbar&&t.$navbarEl&&t.$navbarEl.length>0&&t.$navbarEl.find(".tooltip-init").each((t=>{t.f7Tooltip&&t.f7Tooltip.destroy()}))}},vnode:{"tooltip-init":{insert(t){const e=t.elm,a=o(e).attr("data-tooltip");a&&this.tooltip.create({targetEl:e,text:a})},update(t){const e=t.elm;e.f7Tooltip&&t&&t.data&&t.data.attrs&&t.data.attrs["data-tooltip"]&&e.f7Tooltip.setText(t.data.attrs["data-tooltip"])},destroy(t){const e=t.elm;e.f7Tooltip&&e.f7Tooltip.destroy()}}}};if(e){if(t.prototype.modules&&t.prototype.modules[c.name])return;t.use(c),t.instance&&(t.instance.useModuleParams(c,t.instance.params),t.instance.useModule(c))}return c}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { Dom7Array } from 'dom7';
|
|
2
|
-
import Framework7, {
|
|
2
|
+
import Framework7, {
|
|
3
|
+
CSSSelector,
|
|
4
|
+
Framework7EventsClass,
|
|
5
|
+
Framework7Plugin,
|
|
6
|
+
} from '../app/app-class.js';
|
|
3
7
|
|
|
4
8
|
export namespace TouchRipple {
|
|
5
9
|
interface TouchRipple {
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import Framework7, {
|
|
1
|
+
import Framework7, {
|
|
2
|
+
CSSSelector,
|
|
3
|
+
Framework7EventsClass,
|
|
4
|
+
Framework7Plugin,
|
|
5
|
+
} from '../app/app-class.js';
|
|
2
6
|
|
|
3
7
|
export namespace Treeview {
|
|
4
8
|
interface AppMethods {
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import Framework7, {
|
|
1
|
+
import Framework7, {
|
|
2
|
+
CSSSelector,
|
|
3
|
+
Framework7EventsClass,
|
|
4
|
+
Framework7Plugin,
|
|
5
|
+
} from '../app/app-class.js';
|
|
2
6
|
|
|
3
7
|
export namespace Typography {
|
|
4
8
|
interface AppMethods {}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { Dom7Array } from 'dom7';
|
|
2
|
-
import Framework7, {
|
|
3
|
-
|
|
2
|
+
import Framework7, {
|
|
3
|
+
CSSSelector,
|
|
4
|
+
Framework7EventsClass,
|
|
5
|
+
Framework7Plugin,
|
|
6
|
+
} from '../app/app-class.js';
|
|
7
|
+
import { Router } from '../../modules/router/router.js';
|
|
4
8
|
|
|
5
9
|
export namespace View {
|
|
6
10
|
interface View extends Framework7EventsClass<Events> {
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { Dom7Array } from 'dom7';
|
|
2
|
-
import Framework7, {
|
|
2
|
+
import Framework7, {
|
|
3
|
+
CSSSelector,
|
|
4
|
+
Framework7EventsClass,
|
|
5
|
+
Framework7Plugin,
|
|
6
|
+
} from '../app/app-class.js';
|
|
3
7
|
|
|
4
8
|
export namespace VirtualList {
|
|
5
9
|
interface VirtualListRenderData {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function framework7ComponentLoader(e,t){void 0===t&&(t=!0);var s=e.$,a=e.utils,l=e.getDevice,r=(e.getSupport,e.Class),i=(e.Modal,e.ConstructorMethods),n=(e.ModalMethods,a.extend),o=a.deleteProps;class h extends r{constructor(e,t){void 0===t&&(t={}),super(t,[e]);const a=this,r=l(),i=
|
|
1
|
+
(function framework7ComponentLoader(e,t){void 0===t&&(t=!0);var s=e.$,a=e.utils,l=e.getDevice,r=(e.getSupport,e.Class),i=(e.Modal,e.ConstructorMethods),n=(e.ModalMethods,a.extend),o=a.deleteProps;class h extends r{constructor(e,t){void 0===t&&(t={}),super(t,[e]);const a=this,r=l(),i=i;let o;"md"===e.theme?o=48:"ios"===e.theme?o=44:"aurora"===e.theme&&(o=38);const h={cols:1,height:o,cache:!0,dynamicHeightBufferSize:1,showFilteredItemsOnly:!1,renderExternal:void 0,setListHeight:!0,searchByItem:void 0,searchAll:void 0,ul:null,createUl:!0,scrollableParentEl:void 0,renderItem:e=>`\n <li>\n <div class="item-content">\n <div class="item-inner">\n <div class="item-title">${e}</div>\n </div>\n </div>\n </li>\n `.trim(),on:{}};if(a.useModulesParams(h),a.params=n(h,t),void 0!==a.params.height&&a.params.height||(a.params.height=o),a.$el=s(t.el),a.el=a.$el[0],0===a.$el.length)return;a.$el[0].f7VirtualList=a,a.items=a.params.items,a.params.showFilteredItemsOnly&&(a.filteredItems=[]),a.params.renderItem&&(a.renderItem=a.params.renderItem),a.$pageContentEl=a.$el.parents(".page-content"),a.pageContentEl=a.$pageContentEl[0],a.$scrollableParentEl=a.params.scrollableParentEl?s(a.params.scrollableParentEl).eq(0):a.$pageContentEl,!a.$scrollableParentEl.length&&a.$pageContentEl.length&&(a.$scrollableParentEl=a.$pageContentEl),a.scrollableParentEl=a.$scrollableParentEl[0],void 0!==a.params.updatableScroll?a.updatableScroll=a.params.updatableScroll:(a.updatableScroll=!0,r.ios&&r.osVersion.split(".")[0]<8&&(a.updatableScroll=!1));const m=a.params.ul;let c;a.$ul=m?s(a.params.ul):a.$el.children("ul"),0===a.$ul.length&&a.params.createUl&&(a.$el.append("<ul></ul>"),a.$ul=a.$el.children("ul")),a.ul=a.$ul[0],c=a.ul||a.params.createUl?a.$ul:a.$el,n(a,{$itemsWrapEl:c,itemsWrapEl:c[0],domCache:{},displayDomCache:{},tempDomElement:i.createElement("ul"),lastRepaintY:null,fragment:i.createDocumentFragment(),pageHeight:void 0,rowsPerScreen:void 0,rowsBefore:void 0,rowsAfter:void 0,rowsToRender:void 0,maxBufferHeight:0,listHeight:void 0,dynamicHeight:"function"==typeof a.params.height,autoHeight:"auto"===a.params.height}),a.useModules();const p=a.handleScroll.bind(a),d=a.handleResize.bind(a);let g,f,u,I;return a.attachEvents=function(){g=a.$el.parents(".page").eq(0),f=a.$el.parents(".tab").filter((e=>0===s(e).parent(".tabs").parent(".tabs-animated-wrap, .tabs-swipeable-wrap").length)).eq(0),u=a.$el.parents(".panel").eq(0),I=a.$el.parents(".popup").eq(0),a.$scrollableParentEl.on("scroll",p),g.length&&g.on("page:reinit",d),f.length&&f.on("tab:show",d),u.length&&u.on("panel:open",d),I.length&&I.on("popup:open",d),e.on("resize",d)},a.detachEvents=function(){a.$scrollableParentEl.off("scroll",p),g.length&&g.off("page:reinit",d),f.length&&f.off("tab:show",d),u.length&&u.off("panel:open",d),I.length&&I.off("popup:open",d),e.off("resize",d)},a.init(),a}setListSize(e){const t=this,s=t.filteredItems||t.items;if(e||(t.pageHeight=t.$scrollableParentEl[0].offsetHeight),t.dynamicHeight){t.listHeight=0,t.heights=[];for(let e=0;e<s.length;e+=1){const a=t.params.height(s[e]);t.listHeight+=a,t.heights.push(a)}}else if(t.autoHeight){t.listHeight=0,t.heights||(t.heights=[]),t.heightsCalculated||(t.heightsCalculated=[]);const e={};t.$itemsWrapEl.find("[data-virtual-list-index]").forEach((t=>{e[parseInt(t.getAttribute("data-virtual-list-index"),10)]=t}));for(let a=0;a<s.length;a+=1){const s=e[a];s&&(t.heightsCalculated.includes(a)||(t.heights[a]=s.offsetHeight,t.heightsCalculated.push(a))),void 0===t.heights[a]&&(t.heights[a]=40),t.listHeight+=t.heights[a]}}else t.listHeight=Math.ceil(s.length/t.params.cols)*t.params.height,t.rowsPerScreen=Math.ceil(t.pageHeight/t.params.height),t.rowsBefore=t.params.rowsBefore||2*t.rowsPerScreen,t.rowsAfter=t.params.rowsAfter||t.rowsPerScreen,t.rowsToRender=t.rowsPerScreen+t.rowsBefore+t.rowsAfter,t.maxBufferHeight=t.rowsBefore/2*t.params.height;(t.updatableScroll||t.params.setListHeight)&&t.$itemsWrapEl.css({height:`${t.listHeight}px`})}render(e,t){const s=this;e&&(s.lastRepaintY=null);let a=-(s.$el[0].getBoundingClientRect().top-s.$scrollableParentEl[0].getBoundingClientRect().top);if(void 0!==t&&(a=t),!(null===s.lastRepaintY||Math.abs(a-s.lastRepaintY)>s.maxBufferHeight||!s.updatableScroll&&s.$scrollableParentEl[0].scrollTop+s.pageHeight>=s.$scrollableParentEl[0].scrollHeight))return;s.lastRepaintY=a;const l=s.filteredItems||s.items;let r,i,n,o=0,h=0;if(s.dynamicHeight||s.autoHeight){let e,t=0;s.maxBufferHeight=s.pageHeight;for(let l=0;l<s.heights.length;l+=1)e=s.heights[l],void 0===r&&(t+e>=a-2*s.pageHeight*s.params.dynamicHeightBufferSize?r=l:o+=e),void 0===i&&((t+e>=a+2*s.pageHeight*s.params.dynamicHeightBufferSize||l===s.heights.length-1)&&(i=l+1),h+=e),t+=e;i=Math.min(i,l.length)}else r=(parseInt(a/s.params.height,10)-s.rowsBefore)*s.params.cols,r<0&&(r=0),i=Math.min(r+s.rowsToRender*s.params.cols,l.length);const m=[];let c;for(s.reachEnd=!1,c=r;c<i;c+=1){let e;const t=s.items.indexOf(l[c]);c===r&&(s.currentFromIndex=t),c===i-1&&(s.currentToIndex=t),s.filteredItems?s.items[t]===s.filteredItems[s.filteredItems.length-1]&&(s.reachEnd=!0):t===s.items.length-1&&(s.reachEnd=!0),s.params.renderExternal?m.push(l[c]):s.domCache[t]?(e=s.domCache[t],e.f7VirtualListIndex=t):(s.renderItem?s.tempDomElement.innerHTML=s.renderItem(l[c],t).trim():s.tempDomElement.innerHTML=l[c].toString().trim(),e=s.tempDomElement.childNodes[0],s.params.cache&&(s.domCache[t]=e),e.f7VirtualListIndex=t),c===r&&(n=s.dynamicHeight||s.autoHeight?o:c*s.params.height/s.params.cols),s.params.renderExternal||(e.style.top=`${n}px`,s.emit("local::itemBeforeInsert vlItemBeforeInsert",s,e,l[c]),s.fragment.appendChild(e))}s.updatableScroll||(s.dynamicHeight||s.autoHeight?s.itemsWrapEl.style.height=`${h}px`:s.itemsWrapEl.style.height=c*s.params.height/s.params.cols+"px"),s.params.renderExternal?l&&0===l.length&&(s.reachEnd=!0):(s.emit("local::beforeClear vlBeforeClear",s,s.fragment),s.itemsWrapEl.innerHTML="",s.emit("local::itemsBeforeInsert vlItemsBeforeInsert",s,s.fragment),l&&0===l.length?(s.reachEnd=!0,s.params.emptyTemplate&&(s.itemsWrapEl.innerHTML=s.params.emptyTemplate)):s.itemsWrapEl.appendChild(s.fragment),s.emit("local::itemsAfterInsert vlItemsAfterInsert",s,s.fragment)),void 0!==t&&e&&s.$scrollableParentEl.scrollTop(t,0),s.params.renderExternal&&s.params.renderExternal(s,{fromIndex:r,toIndex:i,listHeight:s.listHeight,topPosition:n,items:m}),s.autoHeight&&requestAnimationFrame((()=>{s.setListSize(!0)}))}filterItems(e,t){void 0===t&&(t=!0);const s=this;s.filteredItems=[];for(let t=0;t<e.length;t+=1)s.filteredItems.push(s.items[e[t]]);t&&(s.$scrollableParentEl[0].scrollTop=0),s.update()}resetFilter(){const e=this;e.params.showFilteredItemsOnly?e.filteredItems=[]:(e.filteredItems=null,delete e.filteredItems),e.update()}scrollToItem(e){const t=this;if(e>t.items.length)return!1;let s=0;if(t.dynamicHeight||t.autoHeight)for(let a=0;a<e;a+=1)s+=t.heights[a];else s=e*t.params.height;const a=t.$el[0].offsetTop;return t.render(!0,a+s-parseInt(t.$scrollableParentEl.css("padding-top"),10)),!0}handleScroll(){this.render()}isVisible(){const e=this;return!!(e.el.offsetWidth||e.el.offsetHeight||e.el.getClientRects().length)}handleResize(){const e=this;e.isVisible()&&(e.heightsCalculated=[],e.setListSize(),e.render(!0))}appendItems(e){const t=this;for(let s=0;s<e.length;s+=1)t.items.push(e[s]);t.update()}appendItem(e){this.appendItems([e])}replaceAllItems(e){const t=this;t.items=e,delete t.filteredItems,t.domCache={},t.update()}replaceItem(e,t){const s=this;s.items[e]=t,s.params.cache&&delete s.domCache[e],s.update()}prependItems(e){const t=this;for(let s=e.length-1;s>=0;s-=1)t.items.unshift(e[s]);if(t.params.cache){const s={};Object.keys(t.domCache).forEach((a=>{s[parseInt(a,10)+e.length]=t.domCache[a]})),t.domCache=s}t.update()}prependItem(e){this.prependItems([e])}moveItem(e,t){const s=this,a=e;let l=t;if(a===l)return;const r=s.items.splice(a,1)[0];if(l>=s.items.length?(s.items.push(r),l=s.items.length-1):s.items.splice(l,0,r),s.params.cache){const e={};Object.keys(s.domCache).forEach((t=>{const r=parseInt(t,10),i=a<l?a:l,n=a<l?l:a,o=a<l?-1:1;(r<i||r>n)&&(e[r]=s.domCache[r]),r===i&&(e[n]=s.domCache[r]),r>i&&r<=n&&(e[r+o]=s.domCache[r])})),s.domCache=e}s.update()}insertItemBefore(e,t){const s=this;if(0!==e)if(e>=s.items.length)s.appendItem(t);else{if(s.items.splice(e,0,t),s.params.cache){const t={};Object.keys(s.domCache).forEach((a=>{const l=parseInt(a,10);l>=e&&(t[l+1]=s.domCache[l])})),s.domCache=t}s.update()}else s.prependItem(t)}deleteItems(e){const t=this;let s,a=0;for(let l=0;l<e.length;l+=1){let r=e[l];void 0!==s&&r>s&&(a=-l),r+=a,s=e[l];const i=t.items.splice(r,1)[0];if(t.filteredItems&&t.filteredItems.indexOf(i)>=0&&t.filteredItems.splice(t.filteredItems.indexOf(i),1),t.params.cache){const e={};Object.keys(t.domCache).forEach((s=>{const a=parseInt(s,10);a===r?delete t.domCache[r]:parseInt(s,10)>r?e[a-1]=t.domCache[s]:e[a]=t.domCache[s]})),t.domCache=e}}t.update()}deleteAllItems(){const e=this;e.items=[],delete e.filteredItems,e.params.cache&&(e.domCache={}),e.update()}deleteItem(e){this.deleteItems([e])}clearCache(){this.domCache={}}update(e){const t=this;e&&t.params.cache&&(t.domCache={}),t.heightsCalculated=[],t.setListSize(),t.render(!0)}init(){const e=this;e.attachEvents(),e.setListSize(),e.render()}destroy(){let e=this;e.detachEvents(),e.$el[0].f7VirtualList=null,delete e.$el[0].f7VirtualList,o(e),e=null}}var m={name:"virtualList",static:{VirtualList:h},create(){this.virtualList=i({defaultSelector:".virtual-list",constructor:h,app:this,domProp:"f7VirtualList"})}};if(t){if(e.prototype.modules&&e.prototype.modules[m.name])return;e.use(m),e.instance&&(e.instance.useModuleParams(m,e.instance.params),e.instance.useModule(m))}return m}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Framework7 7.0.
|
|
2
|
+
* Framework7 7.0.6
|
|
3
3
|
* Full featured mobile HTML framework for building iOS & Android apps
|
|
4
4
|
* https://framework7.io/
|
|
5
5
|
*
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Released under the MIT License
|
|
9
9
|
*
|
|
10
|
-
* Released on:
|
|
10
|
+
* Released on: July 14, 2022
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
/*====================
|