@kizmann/nano-ui 1.0.11 → 1.0.12

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.
@@ -1 +1 @@
1
- {"version":3,"file":"nano-ui.js","mappings":"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","sources":["webpack://Nano/webpack/universalModuleDefinition","webpack://Nano/./src/config/src/builder/prototypes/durationpicker/n-durationpicker.js","webpack://Nano/./src/config/src/builder/prototypes/switch/n-switch.js","webpack://Nano/external umd {\"root\":\"pi\",\"commonjs2\":\"@kizmann/pico-js\",\"commonjs\":\"@kizmann/pico-js\",\"amd\":\"@kizmann/pico-js\"}","webpack://Nano/./src/config/src/builder/prototypes/rating/n-rating.js","webpack://Nano/./src/config/src/builder/prototypes/input-number/n-input-number.js","webpack://Nano/external umd {\"root\":\"Vue\",\"commonjs2\":\"vue\",\"commonjs\":\"vue\",\"amd\":\"vue\"}","webpack://Nano/./src/config/src/builder/prototypes/html/span.js","webpack://Nano/./src/notification/src/notification/notification.js","webpack://Nano/./src/config/src/builder/prototypes/html/div.js","webpack://Nano/./src/config/src/builder/prototypes/tabs/n-tabs.js","webpack://Nano/./src/config/src/builder/prototypes/button/n-button.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form-group.js","webpack://Nano/./src/config/src/builder/prototypes/slider/n-slider.js","webpack://Nano/./src/config/src/builder/prototypes/datepicker/n-datepicker.js","webpack://Nano/./src/config/src/builder/prototypes/button/n-button-group.js","webpack://Nano/./src/config/src/builder/prototypes/datetimepicker/n-datetimepicker.js","webpack://Nano/./src/config/src/builder/prototypes/select/n-select.js","webpack://Nano/./src/config/src/builder/prototypes/table/n-table-column.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form.js","webpack://Nano/./src/config/src/builder/prototypes/radio/n-radio-group.js","webpack://Nano/./src/config/src/builder/prototypes/input/n-input.js","webpack://Nano/./src/config/src/builder/prototypes/table/n-table.js","webpack://Nano/./src/config/src/builder/prototypes/tags/n-tags.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form-item.js","webpack://Nano/./src/config/src/builder/prototypes/html/nano.js","webpack://Nano/./src/config/src/builder/prototypes/checkbox/n-checkbox.js","webpack://Nano/./src/config/src/builder/prototypes/tabs/n-tabs-item.js","webpack://Nano/./src/config/src/builder/prototypes/empty/n-empty.js","webpack://Nano/./src/config/src/builder/prototypes/tags/n-tags-item.js","webpack://Nano/./src/config/src/builder/prototypes/checkbox/n-checkbox-group.js","webpack://Nano/./src/config/src/builder/prototypes/cascader/n-cascader.js","webpack://Nano/./src/config/src/builder/prototypes/loader/n-loader.js","webpack://Nano/./src/config/src/builder/prototypes/timepicker/n-timepicker.js","webpack://Nano/./src/config/src/builder/prototypes/modal/n-modal.js","webpack://Nano/./src/alert/src/alert/alert.js","webpack://Nano/./src/config/src/builder/prototypes/confirm/n-confirm.js","webpack://Nano/./src/config/src/builder/prototypes/radio/n-radio.js","webpack://Nano/./src/config/src/builder/prototypes/transfer/n-transfer.js","webpack://Nano/webpack/bootstrap","webpack://Nano/webpack/runtime/define property getters","webpack://Nano/webpack/runtime/hasOwnProperty shorthand","webpack://Nano/webpack/runtime/make namespace object","webpack://Nano/./src/mixins/src/ctor.js","webpack://Nano/./src/mixins/src/cmer.js","webpack://Nano/./src/mixins/src/cslo.js","webpack://Nano/./src/empty/src/empty-icon/empty-icon.jsx","webpack://Nano/./src/config/src/config/config.jsx","webpack://Nano/./src/config/src/config/config-next.jsx","webpack://Nano/./src/config/src/builder/builder.jsx","webpack://Nano/./src/config/src/reference-panel/reference-panel.jsx","webpack://Nano/./src/config/src/reference-picker/reference-picker.jsx","webpack://Nano/./src/scrollbar/src/scrollbar/scrollbar.jsx","webpack://Nano/./src/virtualscroller/src/virtualscroller/virtualscroller.jsx","webpack://Nano/./src/draggable/src/draghandler/draghandler.js","webpack://Nano/./src/draggable/src/draglist/draglist.jsx","webpack://Nano/./src/draggable/src/draglist-item/draglist-item.jsx","webpack://Nano/./src/draggable/src/draggrid/draggrid.jsx","webpack://Nano/./src/draggable/src/draggrid-item/draggrid-item.jsx","webpack://Nano/./src/draggable/src/dropzone/dropzone.jsx","webpack://Nano/./src/loader/src/loader/loader.jsx","webpack://Nano/./src/resizer/src/resizer/resizer.jsx","webpack://Nano/./src/popover/src/popover/popover.jsx","webpack://Nano/./src/popover/src/popover-group/popover-group.jsx","webpack://Nano/./src/popover/src/popover-option/popover-option.jsx","webpack://Nano/./src/modal/src/modal/modal.jsx","webpack://Nano/./src/button/src/button/button.jsx","webpack://Nano/./src/button/src/button-group/button-group.jsx","webpack://Nano/./src/input/src/input/input.jsx","webpack://Nano/./src/input-number/src/input-number/input-number.jsx","webpack://Nano/./src/textarea/src/textarea/textarea.jsx","webpack://Nano/./src/select/src/select/select.jsx","webpack://Nano/./src/select/src/select-option/select-option.jsx","webpack://Nano/./src/checkbox/src/checkbox/checkbox.jsx","webpack://Nano/./src/checkbox/src/checkbox-group/checkbox-group.jsx","webpack://Nano/./src/radio/src/radio/radio.jsx","webpack://Nano/./src/radio/src/radio-group/radio-group.jsx","webpack://Nano/./src/slider/src/slider/slider.jsx","webpack://Nano/./src/switch/src/switch/switch.jsx","webpack://Nano/./src/confirm/src/confirm/confirm.jsx","webpack://Nano/./src/cascader/src/cascader-panel/cascader-panel.jsx","webpack://Nano/./src/cascader/src/cascader/cascader.jsx","webpack://Nano/./src/datepicker/src/datepicker-panel/datepicker-panel.jsx","webpack://Nano/./src/datepicker/src/datepicker/datepicker.jsx","webpack://Nano/./src/timepicker/src/timepicker-panel/timepicker-panel.jsx","webpack://Nano/./src/timepicker/src/timepicker/timepicker.jsx","webpack://Nano/./src/datetimepicker/src/datetimepicker/datetimepicker.jsx","webpack://Nano/./src/durationpicker/src/durationpicker/durationpicker.jsx","webpack://Nano/./src/transfer/src/transfer/transfer.jsx","webpack://Nano/./src/form/src/form/form.jsx","webpack://Nano/./src/form/src/form-group/form-group.jsx","webpack://Nano/./src/form/src/form-item/form-item.jsx","webpack://Nano/./src/form/src/form-frame/form-frame.jsx","webpack://Nano/./src/tabs/src/tabs/tabs.jsx","webpack://Nano/./src/tabs/src/tabs-item/tabs-item.jsx","webpack://Nano/./src/tags/src/tags/tags.jsx","webpack://Nano/./src/tags/src/tags-item/tags-item.jsx","webpack://Nano/./src/collapse/src/collapse/collapse.jsx","webpack://Nano/./src/collapse/src/collapse-item/collapse-item.jsx","webpack://Nano/./src/table/src/table/table.jsx","webpack://Nano/./src/table/src/table-column/table-column.jsx","webpack://Nano/./src/table/src/table-cell/table-cell.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-string.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-boolean.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-datetime.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-option.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-image.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-matrix.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-select.jsx","webpack://Nano/./src/table/src/table-filter/table-filter.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-string.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-boolean.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-datetime.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-option.jsx","webpack://Nano/./src/paginator/src/paginator/paginator.jsx","webpack://Nano/./src/info/src/info/info.jsx","webpack://Nano/./src/info/src/info-column/info-column.jsx","webpack://Nano/./src/info/src/info-field/info-field.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-string.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-boolean.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-datetime.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-option.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-image.jsx","webpack://Nano/./src/preview/src/preview/preview.jsx","webpack://Nano/./src/preview/src/preview-plain/preview-plain.jsx","webpack://Nano/./src/preview/src/preview-image/preview-image.jsx","webpack://Nano/./src/preview/src/preview-video/preview-video.jsx","webpack://Nano/./src/map/src/map/map.jsx","webpack://Nano/./src/map/src/map-marker/map-marker.jsx","webpack://Nano/./src/file/src/file/file.jsx","webpack://Nano/./src/rating/src/rating/rating.jsx","webpack://Nano/./src/drawer/src/drawer/drawer.jsx","webpack://Nano/./src/index.js","webpack://Nano/./src/alert/index.js","webpack://Nano/./src/notification/index.js","webpack://Nano/./src/empty/index.js","webpack://Nano/./src/config/index.js","webpack://Nano/./src/scrollbar/index.js","webpack://Nano/./src/virtualscroller/index.js","webpack://Nano/./src/draggable/index.js","webpack://Nano/./src/loader/index.js","webpack://Nano/./src/resizer/index.js","webpack://Nano/./src/popover/index.js","webpack://Nano/./src/modal/index.js","webpack://Nano/./src/button/index.js","webpack://Nano/./src/input/index.js","webpack://Nano/./src/input-number/index.js","webpack://Nano/./src/textarea/index.js","webpack://Nano/./src/select/index.js","webpack://Nano/./src/checkbox/index.js","webpack://Nano/./src/radio/index.js","webpack://Nano/./src/slider/index.js","webpack://Nano/./src/switch/index.js","webpack://Nano/./src/confirm/index.js","webpack://Nano/./src/cascader/index.js","webpack://Nano/./src/datepicker/index.js","webpack://Nano/./src/timepicker/index.js","webpack://Nano/./src/datetimepicker/index.js","webpack://Nano/./src/durationpicker/index.js","webpack://Nano/./src/transfer/index.js","webpack://Nano/./src/form/index.js","webpack://Nano/./src/tabs/index.js","webpack://Nano/./src/tags/index.js","webpack://Nano/./src/collapse/index.js","webpack://Nano/./src/table/index.js","webpack://Nano/./src/paginator/index.js","webpack://Nano/./src/info/index.js","webpack://Nano/./src/preview/index.js","webpack://Nano/./src/map/index.js","webpack://Nano/./src/file/index.js","webpack://Nano/./src/rating/index.js","webpack://Nano/./src/drawer/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@kizmann/pico-js\"), require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@kizmann/pico-js\", \"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Nano\"] = factory(require(\"@kizmann/pico-js\"), require(\"vue\"));\n\telse\n\t\troot[\"Nano\"] = factory(root[\"pi\"], root[\"Vue\"]);\n})(self, (__WEBPACK_EXTERNAL_MODULE__55__, __WEBPACK_EXTERNAL_MODULE__122__) => {\nreturn ","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDurationpicker'] = Locale.trans('NDurationpicker');\n\nwindow.NanoBuilderIndexies['NDurationpicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDurationpicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSwitch'] = Locale.trans('NSwitch');\n\nwindow.NanoBuilderIndexies['NSwitch'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSwitch']['props'] = {\n modelValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n onValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n offValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n onType: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n offType: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n size: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeSizes\n },\n disabled: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n};","module.exports = __WEBPACK_EXTERNAL_MODULE__55__;","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRating'] = Locale.trans('NRating');\n\nwindow.NanoBuilderIndexies['NRating'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRating']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NInputNumber'] = Locale.trans('NInputNumber');\n\nwindow.NanoBuilderIndexies['NInputNumber'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NInputNumber']['props'] = {\n modelValue: {\n for: ['binds', 'props'], default: null, type: 'Number'\n },\n clearValue: {\n for: ['binds', 'props'], default: null, type: 'Number'\n },\n clearable: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n min: {\n for: ['binds', 'props'], default: 0, type: 'Number'\n },\n max: {\n for: ['binds', 'props'], default: Number.MAX_VALUE, type: 'Number'\n },\n stepSize: {\n for: ['binds', 'props'], default: 1, type: 'Number'\n },\n precision: {\n for: ['binds', 'props'], default: 0, type: 'Number'\n },\n size: {\n for: ['binds', 'props'], default: 'md', type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], default: 'primary', type: 'String', options: window.NanoPrototypeTypes\n },\n disabled: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n placeholder: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n format: {\n for: ['binds', 'props'], default: ':count', type: 'String'\n },\n decimals: {\n for: ['binds', 'props'], default: '.', type: 'String'\n },\n};","module.exports = __WEBPACK_EXTERNAL_MODULE__122__;","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['span'] = Locale.trans('span');\n\nwindow.NanoBuilderIndexies['span'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['span']['props'] = {\n //\n};","import { UUID, Str, Obj, Dom } from \"@kizmann/pico-js\";\n\nclass Notification {\n\n el = null;\n\n text = '';\n\n icon = '';\n\n type = '';\n\n options = {\n duration: 4500,\n };\n\n constructor(text, type = 'primary', options = {})\n {\n let defaultIcons = {\n iconPrimary: window.nano.Icons.info,\n iconSecondary: window.nano.Icons.info,\n iconSuccess: window.nano.Icons.success,\n iconWarning: window.nano.Icons.warning,\n iconDanger: window.nano.Icons.danger,\n iconInfo: window.nano.Icons.info\n };\n\n this.text = text;\n this.type = type;\n\n this.options = Obj.assign(this.options,\n defaultIcons, options);\n\n this.render();\n }\n\n getIcon()\n {\n return Obj.get(this.options,\n 'icon' + Str.ucfirst(this.type));\n }\n\n append(el = document.body)\n {\n this.el.appendTo(el);\n\n setTimeout(() => this.el.addClass('n-active'), 100);\n\n return this;\n }\n\n remove()\n {\n this.el.get(0).remove();\n\n return this;\n }\n\n render()\n {\n let classList = [\n 'n-notification',\n 'n-notification--' + this.type\n ];\n\n this.el = Dom.make('div', {\n classList: classList.join(' '), onclick: () => this.remove()\n });\n \n\n let icon = Dom.make('div', {\n classList: 'n-notification__icon'\n });\n\n icon.appendTo(this.el);\n\n let iconSpan = Dom.make('span', {\n classList: this.getIcon()\n });\n\n iconSpan.appendTo(icon);\n\n let text = Dom.make('div', {\n classList: 'n-notification__text'\n });\n\n text.html(this.text).appendTo(this.el);\n }\n\n}\n\nexport class Notify {\n\n static alias = 'Notify';\n\n static size = window.nano.Settings.notifySize;\n\n static position = window.nano.Settings.notifyPosition;\n\n static notifications = {};\n\n static handle(...args)\n {\n let uid = Notify.create(undefined, ...args);\n\n let wrapper = Notify.getWrapper();\n\n // Append element to dom\n Notify.notifications[uid].append(wrapper);\n\n // Queue remove\n setTimeout(() => Notify.remove(uid),\n Notify.notifications[uid].options.duration);\n\n return uid;\n }\n\n static create(uid = UUID(), ...args)\n {\n Notify.notifications[uid] = new Notification(...args);\n\n return uid;\n }\n\n static remove(uid)\n {\n if ( Notify.notifications[uid] === undefined ) {\n return;\n }\n\n // Remove dom element\n Notify.notifications[uid].remove();\n\n // Remove from list\n delete Notify.notifications[uid];\n }\n\n static getWrapper()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let style = {\n 'z-index': window.zIndex + 100\n };\n\n let classList = [\n 'n-notification-frame',\n 'n-notification-frame--' + this.size,\n 'n-notification-frame--' + this.position\n ];\n\n if ( Dom.find('.n-notification-frame').empty() === true ) {\n Dom.make('div', { classList: classList.join(' ') }).appendTo(document.body);\n }\n\n Dom.find('.n-notification-frame').css(style);\n\n return Dom.find('.n-notification-frame');\n }\n\n}\n\nexport default Notify;\n","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['div'] = Locale.trans('div');\n\nwindow.NanoBuilderIndexies['div'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['div']['props'] = {\n classList: {\n type: 'String'\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTabs'] = Locale.trans('NTabs');\n\nwindow.NanoBuilderIndexies['NTabs'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTabs']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NButton'] = Locale.trans('NButton');\n\nwindow.NanoBuilderIndexies['NButton'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NButton']['props'] = {\n size: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n link: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n square: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n disabled: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n icon: {\n for: ['binds', 'props'], type: 'String'\n },\n iconPosition: {\n for: ['binds', 'props'], type: 'String', options: ['before', 'after']\n },\n nativeType: {\n for: ['binds', 'props'], type: 'String', options: ['button', 'a', 'div']\n },\n click: {\n for: ['on'], type: 'String'\n }\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NFormGroup'] = Locale.trans('NFormGroup');\n\nwindow.NanoBuilderIndexies['NFormGroup'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NFormGroup']['props'] = {\n label: {\n for: ['binds', 'props'], type: 'String'\n }\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSlider'] = Locale.trans('NSlider');\n\nwindow.NanoBuilderIndexies['NSlider'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSlider']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDatepicker'] = Locale.trans('NDatepicker');\n\nwindow.NanoBuilderIndexies['NDatepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDatepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NButtonGroup'] = Locale.trans('n-button-group');\n\nwindow.NanoBuilderIndexies['NButtonGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NButtonGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDatetimepicker'] = Locale.trans('NDatetimepicker');\n\nwindow.NanoBuilderIndexies['NDatetimepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDatetimepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSelect'] = Locale.trans('NSelect');\n\nwindow.NanoBuilderIndexies['NSelect'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSelect']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTableColumn'] = Locale.trans('NTableColumn');\n\nwindow.NanoBuilderIndexies['NTableColumn'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTableColumn']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NForm'] = Locale.trans('NForm');\n\nwindow.NanoBuilderIndexies['NForm'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NForm']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRadioGroup'] = Locale.trans('NRadioGroup');\n\nwindow.NanoBuilderIndexies['NRadioGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRadioGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NInput'] = Locale.trans('NInput');\n\nwindow.NanoBuilderIndexies['NInput'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NInput']['props'] = {\n modelValue: {\n for: ['binds', 'props'], default: null, type: 'String'\n },\n size: {\n for: ['binds', 'props'], default: 'md', type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], default: 'primary', type: 'String', options: window.NanoPrototypeTypes\n },\n disabled: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n placeholder: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n nativeType: {\n for: ['binds', 'props'], default: 'text', type: 'String', options: ['text', 'password', 'email']\n },\n icon: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n iconPosition: {\n for: ['binds', 'props'], default: 'before', type: 'String', options: ['before', 'after']\n },\n iconDisabled: {\n for: ['binds', 'props'], default: null, type: 'Boolean', options: window.NanoPrototypeBools\n },\n iconClick: {\n for: ['on'], type: 'String'\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTable'] = Locale.trans('NTable');\n\nwindow.NanoBuilderIndexies['NTable'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTable']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTags'] = Locale.trans('NTags');\n\nwindow.NanoBuilderIndexies['NTags'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTags']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NFormItem'] = Locale.trans('NFormItem');\n\nwindow.NanoBuilderIndexies['NFormItem'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NFormItem']['props'] = {\n label: {\n for: ['binds', 'props'], type: 'String'\n }\n};","window.NanoPrototypeSizes = [\n 'xs', 'sm', 'md', 'lg'\n];\n\nwindow.NanoPrototypeTypes = [\n 'primary', 'secondary', 'success', 'warning', 'danger', 'info'\n];\n\nwindow.NanoPrototypeBools = [\n 'true', 'false'\n];","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCheckbox'] = Locale.trans('n-checkbox');\n\nwindow.NanoBuilderIndexies['NCheckbox'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCheckbox']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTabsItem'] = Locale.trans('NTabsItem');\n\nwindow.NanoBuilderIndexies['NTabsItem'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTabsItem']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NEmpty'] = Locale.trans('NEmpty');\n\nwindow.NanoBuilderIndexies['NEmpty'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NEmpty']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTagsItem'] = Locale.trans('NTagsItem');\n\nwindow.NanoBuilderIndexies['NTagsItem'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTagsItem']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCheckboxGroup'] = Locale.trans('NCheckboxGroup');\n\nwindow.NanoBuilderIndexies['NCheckboxGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCheckboxGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCascader'] = Locale.trans('n-cascader');\n\nwindow.NanoBuilderIndexies['NCascader'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCascader']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NLoader'] = Locale.trans('NLoader');\n\nwindow.NanoBuilderIndexies['NLoader'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NLoader']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTimepicker'] = Locale.trans('NTimepicker');\n\nwindow.NanoBuilderIndexies['NTimepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTimepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NModal'] = Locale.trans('NModal');\n\nwindow.NanoBuilderIndexies['NModal'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NModal']['props'] = {\n //\n};","import { Any, Str, Obj, Dom } from \"@kizmann/pico-js\";\n\nclass AlertFrame {\n\n el = null;\n\n text = '';\n\n icon = '';\n\n type = '';\n\n options = {};\n\n constructor(text, type = 'primary', options = {})\n {\n let defaultIcons = {\n iconPrimary: window.nano.Icons.info,\n iconSecondary: window.nano.Icons.info,\n iconSuccess: window.nano.Icons.success,\n iconWarning: window.nano.Icons.warning,\n iconDanger: window.nano.Icons.danger,\n iconInfo: window.nano.Icons.info\n };\n\n this.text = text;\n this.type = type;\n\n this.options = Obj.assign(this.options,\n defaultIcons, options);\n\n this.render();\n }\n\n getIcon()\n {\n return Obj.get(this.options,\n 'icon' + Str.ucfirst(this.type));\n }\n\n append(el = document.body)\n {\n this.el.appendTo(el);\n\n Dom.find(document.body).on('keydown', (event) => {\n if ( event.which === 27 ) {\n this.remove();\n }\n }, 'n-alert');\n\n setTimeout(() => this.el.addClass('n-active'), 100);\n }\n\n remove()\n {\n Dom.find(document.body).off('keydown', null, 'n-alert');\n\n this.el.get(0).remove();\n }\n\n render()\n {\n let classList = [\n 'n-alert-frame',\n 'n-alert-frame--' + this.type,\n 'n-alert-frame--' + Alert.size\n ];\n\n this.el = Dom.make('div', {\n classList: classList.join(' ')\n });\n\n let backdrop = Dom.make('div', {\n classList: 'n-alert-backdrop', onclick: () => this.remove()\n });\n\n backdrop.onClick = () => {\n this.remove();\n };\n\n backdrop.appendTo(this.el);\n\n let frame = Dom.make('div', {\n classList: 'n-alert'\n });\n\n frame.appendTo(this.el);\n\n let icon = Dom.make('div', {\n classList: 'n-alert__icon'\n });\n\n icon.appendTo(frame);\n\n let iconSpan = Dom.make('span', {\n classList: this.getIcon()\n });\n\n iconSpan.appendTo(icon);\n\n let text = Dom.make('div', {\n classList: 'n-alert__text'\n });\n\n text.html(this.text).appendTo(frame);\n }\n\n}\n\nexport class Alert {\n\n static alias = 'Alert';\n\n static size = window.nano.Settings.notifySize;\n\n static alert = null;\n\n static handle(...args)\n {\n if ( ! Any.isEmpty(Alert.alert) ) {\n Alert.alert.remove();\n }\n\n Alert.alert = new AlertFrame(...args);\n\n Alert.alert.append();\n\n return Alert;\n }\n\n}\n\nexport default Alert;\n","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NConfirm'] = Locale.trans('n-confirm');\n\nwindow.NanoBuilderIndexies['NConfirm'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NConfirm']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRadio'] = Locale.trans('NRadio');\n\nwindow.NanoBuilderIndexies['NRadio'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRadio']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTransfer'] = Locale.trans('NTransfer');\n\nwindow.NanoBuilderIndexies['NTransfer'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTransfer']['props'] = {\n //\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { Arr, Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n ctor(key, fallback = null)\n {\n let ctor = Obj.get(this.$options, key.split('.'), -1);\n\n // if ( ctor === -1 ) {\n // ctor = Obj.get(this.$vnode.componentOptions.Ctor,\n // Arr.merge(['options'], key.split('.')), -1);\n // }\n\n if ( ctor === -1 ) {\n ctor = fallback;\n }\n\n if ( typeof ctor !== 'function' ) {\n return ctor;\n }\n\n return (...args) => ctor.apply(this, args);\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n cmer(classList)\n {\n let attrsList = {};\n\n if ( Any.isString(classList) ) {\n attrsList[classList] = true;\n }\n\n if ( Any.isArray(classList) ) {\n Arr.each(classList, (value) => attrsList[value] = true);\n }\n\n if ( Any.isPlain(classList) ) {\n Obj.assign(attrsList, classList);\n }\n\n if ( Any.isString(this.$attrs.class) ) {\n attrsList[this.$attrs.class] = true;\n }\n\n if ( Any.isArray(this.$attrs.class) ) {\n Arr.each(this.$attrs.class, (value) => attrsList[value] = true);\n }\n\n if ( Any.isPlain(this.$attrs.class) ) {\n Obj.assign(attrsList, this.$attrs.class);\n }\n\n return attrsList;\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport { Comment } from \"vue\";\n\nexport default {\n\n cslo(slot = 'default', props = {})\n {\n if ( ! this.$slots[slot] ) {\n return false;\n }\n\n return this.$slots[slot](props).findIndex((o) => {\n return o.type !== Comment;\n }) !== -1;\n }\n\n}\n","export default {\n\n name: 'NEmptyIcon',\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n inline: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-empty-icon',\n 'n-empty-icon--' + this.size,\n 'n-empty-icon--' + this.type\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.inline ) {\n classList.push('n-inline');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-empty-icon__frame\">\n { /* Icon */ }\n </div>\n <div class=\"n-empty-icon__text\">\n { this.$slots.default && this.$slots.default() }\n </div>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NConfig',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n config: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return this;\n },\n type: [Object]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n solveAwait(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( Any.isString(value) && value.match(/\\$\\$scope/) ) {\n return Obj.has({ $$scope: this.scope }, value);\n }\n\n if ( Any.isString(value) && value.match(/\\$\\$value/) ) {\n return Obj.has({ $$value: this.tempValue }, value);\n }\n\n return false;\n },\n\n solveValue(value, ...args)\n {\n if ( Any.isFunction(value) ) {\n return value.apply(this.scope, [this.tempValue, ...args]);\n }\n\n if ( Any.isString(value) && value.match(/^\\$\\$scope/) ) {\n return Obj.get({ $$scope: this.scope }, value);\n }\n\n if ( Any.isString(value) && value.match(/^\\$\\$value/) ) {\n return Obj.get({ $$value: this.tempValue }, value);\n }\n\n return value;\n },\n\n solveEvent(value)\n {\n let scope = Obj.assign(this.scope, {\n $configRefs: this.$refs\n });\n\n if ( Any.isFunction(value) ) {\n return (...args) => value.apply(scope, args);\n }\n\n return value;\n },\n\n solveContent(value, ...args)\n {\n if ( Any.isFunction(value) ) {\n return value.apply(this.scope, [this.$render, this.tempValue, ...args]);\n }\n\n return value;\n },\n\n prepareValue(veModel)\n {\n if ( ! veModel.path ) {\n return veModel.fallback;\n }\n\n if ( ! Obj.has(this.tempValue, veModel.path) ) {\n this.deepSet(this.tempValue, veModel.path, veModel.fallback);\n }\n\n return Obj.get(this.tempValue, veModel.path);\n },\n\n inputClosure(veModel, closure = null)\n {\n if ( ! veModel.path ) {\n return () => null;\n }\n\n return (value) => {\n\n if ( closure ) {\n closure(value, this.tempValue);\n }\n\n this.deepSet(this.tempValue, veModel.path, value);\n };\n },\n\n deepSet(obj, keys, val)\n {\n keys = (typeof keys === 'string') ?\n keys.split('.') : keys;\n\n let key = keys.shift();\n\n if ( obj[key] === undefined || obj[key] === null ) {\n Obj.set(obj, key, {});\n }\n\n if ( keys.length === 0 ) {\n return Obj.set(obj, key, val);\n }\n\n return this.deepSet(obj[key], keys, val);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n renderLayer(source)\n {\n if ( ! Any.isPlain(source) ) {\n return source;\n }\n\n return Arr.each(source, (setup, component) => {\n\n component = component.replace(/:.*?$/, '');\n\n // Set setup defaults\n setup = Obj.assign({\n vIf: true, vShow: true, vAwait: null, class: null, $on: {}, $props: {}, $attrs: {}\n }, setup);\n\n if ( ! this.solveAwait(setup.vAwait) ) {\n return null;\n }\n\n if ( ! this.solveValue(setup.vIf) ) {\n return null;\n }\n\n if ( ! this.solveValue(setup.vShow) ) {\n setup.style = { display: 'none' };\n }\n\n // Build default model\n let veModel = Obj.assign({\n prop: 'modelValue', fallback: null\n }, setup.model);\n\n // Delete model from setup\n delete setup.model;\n\n // Normalize props\n setup.$props = this.solveValue(setup.$props);\n\n // Normalize class\n setup.class = this.solveValue(setup.class);\n\n // Solve props\n Obj.map(setup.$props, (value) => this.solveValue(value));\n\n // Normalize attrs\n setup.$attrs = this.solveValue(setup.$attrs);\n\n // Solve attrs\n Obj.map(setup.$attrs, (value) => this.solveValue(value));\n\n // Solve events\n Obj.map(setup.$on, (value) => this.solveEvent(value));\n\n if ( veModel.path ) {\n\n // Override input event\n setup['onUpdate:modelValue'] = this.inputClosure(veModel, setup.$on.input);\n\n // Set prop in value or get fallback\n setup.$props[veModel.prop] = this.prepareValue(veModel);\n }\n\n Obj.assign(setup, setup.$props);\n delete setup.$props;\n\n Obj.assign(setup, setup.$attrs);\n delete setup.$attrs;\n\n Obj.assign(setup, setup.$on);\n delete setup.$on;\n\n let content = setup.content;\n delete setup.content;\n\n delete setup.vIf;\n delete setup.vShow;\n delete setup.vAwait;\n\n // Solve content if is functional\n let slots = this.solveContent(content, setup);\n\n let domtypes = [\n 'div', 'span', 'a'\n ];\n\n let resolved = component;\n\n if ( ! Arr.has(domtypes, resolved) ) {\n resolved = resolveComponent(component);\n }\n\n return h(resolved, setup, this.ctor('renderLayer')(slots));\n });\n },\n\n render()\n {\n return this.ctor('renderLayer')(this.config)[0];\n }\n\n}","import { Arr, Obj, Str, Any } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NConfigNext',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n extraValue: {\n default()\n {\n return null;\n },\n type: [Object]\n },\n\n config: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue, sempValue: this.extraValue || this.modelValue\n };\n },\n\n watch: {\n\n modelValue: function (value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n extraValue: function (value) {\n if ( value !== this.sempValue ) {\n this.sempValue = value;\n }\n }\n\n },\n\n methods: {\n\n getString(value)\n {\n let final = value.replace(/^@/, '')\n .replace(/^\\\\@/, '@');\n\n\n\n if ( value.match(/^@/) ) {\n return this.trans(final);\n }\n\n return final;\n },\n\n propAwait(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Any.isArray(value) ) {\n value = [value];\n }\n\n let result = Arr.each(value, (state) => {\n return this.getState(state, true);\n });\n\n return ! Arr.has(result, false);\n },\n\n propExists(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Any.isArray(value) ) {\n value = [value];\n }\n\n let result = Arr.each(value, (state) => {\n return this.getState(state, false);\n });\n\n return ! Arr.has(result, false);\n },\n\n getState(value, exists = true)\n {\n if ( Any.isFunction(value) ) {\n return !! this.solveInput(value);\n }\n\n if ( ! Any.isString(value) ) {\n return !! value;\n }\n\n if ( ! value.match(/(\\$scope|\\$model|\\$global)/) ) {\n return !! value;\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n if ( exists ) {\n return Obj.get(sources, value, undefined) === undefined;\n }\n\n return !! Obj.get(sources, value);\n },\n\n toPropKey(value)\n {\n let splits = value.replace(/^!/, '').split('-');\n\n value = Arr.each(splits, (split) => {\n return Str.ucfirst(split);\n });\n\n return Str.lcfirst(value.join(''));\n },\n\n toEventKey(value)\n {\n if ( ! value.match(/^on/) ) {\n value = 'on-' + value;\n }\n\n let splits = value.split('-');\n\n value = Arr.each(splits, (split) => {\n return Str.ucfirst(split);\n });\n\n return Str.lcfirst(value.join(''));\n },\n\n solveInput(cb, fallback)\n {\n return cb.call(this.scope, this.tempValue, fallback);\n },\n\n solveContext(cb)\n {\n if ( ! Any.isFunction(cb) ) {\n return () => console.error('Raw suffix (!) only allowed on functions');\n }\n\n return (...args) => cb.call(this.scope, ...args);\n },\n\n getProp(key, value)\n {\n if ( key.match(/^!/) ) {\n return this.solveContext(value);\n }\n\n if ( Any.isFunction(value) ) {\n return this.solveInput(value);\n }\n\n if ( ! Any.isString(value) ) {\n return value;\n }\n\n if ( ! value.match(/(\\$scope|\\$model|\\$global)/) ) {\n return this.getString(value);\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n let result = Obj.get(sources, value.replace(/^!+/, ''));\n\n if ( value.match(/^!!\\$/) ) {\n result = Any.isEmpty(result);\n }\n\n if ( value.match(/^!\\$/) ) {\n result = Any.isEmpty(result);\n }\n\n return result;\n },\n\n getInput(prop, fallback)\n {\n if ( Any.isFunction(prop) ) {\n return this.solveInput(prop, fallback);\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n if ( ! Any.isNull(fallback) && Obj.get(sources, prop, -1337) === -1337 ) {\n Obj.set(sources, prop, fallback);\n }\n\n return Obj.get(sources, prop);\n },\n\n setInput(prop, value)\n {\n if ( Any.isFunction(prop) ) {\n return console.error('NConfigNew: Bind with function is not allowed!');\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n Obj.set(sources, prop, value);\n }\n\n },\n\n renderSetup(setup, alias)\n {\n if ( ! Any.isPlain(setup) ) {\n return setup;\n }\n\n if ( ! this.propExists(setup['vIf']) ) {\n return null;\n }\n\n if ( ! this.propAwait(setup['vAwait']) ) {\n return null;\n }\n\n let defaults = {\n binds: {}, props: {}, events: {}, content: {}\n };\n\n let defaultsBind = {\n value: '', fallback: null\n };\n\n setup = Obj.assign(defaults, setup);\n\n let binds = {};\n\n Obj.each(setup['binds'], (value, key) => {\n\n if ( Any.isString(value) ) {\n value = { value: value };\n }\n\n binds[key] = Obj.assign(defaultsBind, value);\n });\n\n let events = {};\n\n Obj.each(setup['events'], (value, key) => {\n events[this.toEventKey(key)] = this.solveContext(value);\n });\n\n let props = {};\n\n Obj.each(setup['props'], (value, key) => {\n props[this.toPropKey(key)] = this.getProp(key, value);\n });\n\n props = Obj.assign(props, events);\n\n Obj.each(binds, (value, key) => {\n\n let updateKey = 'onUpdate:' + key;\n\n props[this.toEventKey(updateKey)] = (input) => {\n this.setInput(value.value, input);\n };\n\n props[this.toPropKey(key)] = this.getInput(value.value,\n value.fallback);\n });\n\n let component = alias.replace(/:.*?$/, '');\n\n if ( !Arr.has(['div', 'p'], component) ) {\n component = resolveComponent(component);\n }\n\n if ( Any.isEmpty(component) ) {\n return null;\n }\n\n if ( !this.propExists(setup['vShow']) ) {\n props.style = \"display: none;\";\n }\n\n let render = () => Arr.each(setup.content, (value, key) => {\n return this.ctor('renderSetup')(value, key);\n });\n\n if ( Any.isFunction(setup.content) ) {\n render = () => setup.content.apply(this.scope);\n }\n\n if ( Any.isString(setup.content) ) {\n render = () => this.getString(setup.content);\n }\n\n return h(component, props, { default: render });\n },\n\n render()\n {\n return Arr.each(this.config, (value, key) => this.ctor('renderSetup')(value, key));\n }\n\n}","import { Arr, Dom, Any, Locale, Obj, UUID, Num } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderPropType = {\n 'root': Locale.trans('Root'),\n 'binds': Locale.trans('Bind'),\n 'props': Locale.trans('Property'),\n 'attrs': Locale.trans('Attribute'),\n 'on': Locale.trans('Event'),\n};\n\nwindow.NanoBuilderPropCode = {\n 'string': Locale.trans('String'),\n 'number': Locale.trans('Number'),\n 'boolean': Locale.trans('Boolean'),\n 'object': Locale.trans('Object'),\n 'function': Locale.trans('Function'),\n};\n\nwindow.NanoBuilderProps = {\n classList: {\n for: ['root', 'attrs', 'props'], type: 'String'\n },\n vIf: {\n for: ['root'], type: 'String'\n },\n vShow: {\n for: ['root'], type: 'String'\n },\n};\n\nwindow.NanoBuilderTypes = {\n //\n};\n\nwindow.NanoBuilderIndexies = {\n //\n};\n\n// DOM elements\nrequire('./prototypes/html/nano');\nrequire('./prototypes/html/div');\nrequire('./prototypes/html/span');\n\n// Nano elements\nrequire('./prototypes/button/n-button');\nrequire('./prototypes/button/n-button-group');\nrequire('./prototypes/cascader/n-cascader');\nrequire('./prototypes/checkbox/n-checkbox');\nrequire('./prototypes/checkbox/n-checkbox-group');\nrequire('./prototypes/confirm/n-confirm');\nrequire('./prototypes/datepicker/n-datepicker');\nrequire('./prototypes/datetimepicker/n-datetimepicker');\nrequire('./prototypes/durationpicker/n-durationpicker');\nrequire('./prototypes/empty/n-empty');\nrequire('./prototypes/form/n-form');\nrequire('./prototypes/form/n-form-group');\nrequire('./prototypes/form/n-form-item');\nrequire('./prototypes/input/n-input');\nrequire('./prototypes/input-number/n-input-number');\nrequire('./prototypes/loader/n-loader');\nrequire('./prototypes/modal/n-modal');\nrequire('./prototypes/radio/n-radio');\nrequire('./prototypes/radio/n-radio-group');\nrequire('./prototypes/rating/n-rating');\nrequire('./prototypes/select/n-select');\nrequire('./prototypes/slider/n-slider');\nrequire('./prototypes/switch/n-switch');\nrequire('./prototypes/table/n-table');\nrequire('./prototypes/table/n-table-column');\nrequire('./prototypes/tabs/n-tabs');\nrequire('./prototypes/tabs/n-tabs-item');\nrequire('./prototypes/tags/n-tags');\nrequire('./prototypes/tags/n-tags-item');\nrequire('./prototypes/timepicker/n-timepicker');\nrequire('./prototypes/transfer/n-transfer');\n\nexport default {\n\n name: 'NBuilder',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n renderDemo: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderExport: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n init: false, demo: false, collapse: [], safevar: this.normalizeModel(this.modelValue)\n };\n },\n\n watch: {\n modelValue: function () {\n this.safevar = this.normalizeModel(this.modelValue)\n }\n },\n\n mounted()\n {\n this.init = true;\n },\n\n methods: {\n\n exportJson(value)\n {\n return JSON.stringify(Obj.clone(value), null, 4).replace(/\"!FUNC:(.*?):FUNC!\"/g, (matches) => {\n return matches.replace(/^\"!FUNC:/, '').replace(/:FUNC!\"$/, '').replace(/\\\\\"/, '\"').replace(/\\\\n/g, \"\\n\");\n });\n },\n\n exportExecutable(value)\n {\n return new Function(`return ${this.exportJson(value)};`)();\n },\n\n normalizeModel(model)\n {\n let result = {};\n\n Obj.each(model, (value, key) => {\n result[key] = Obj.assign(this.normalizeChild(value), {\n order: (Any.vals(result).length + 1) * 100\n });\n });\n\n return result;\n },\n\n normalizeChild(child)\n {\n let result = this.applyProps(null, {\n ...Obj.except(child, ['content']), content: {}, builder: this.buildProps(child),\n });\n\n if ( Any.isArray(child.content) ) {\n child.content = Arr.first(child.content);\n }\n\n if ( ! Any.isPlain(child.content) && ! Any.isString(child.content) ) {\n child.content = {};\n }\n\n result.builder[\"null\"] = {\n type: typeof child.content\n }\n\n if (Any.isPlain(child.content)) {\n Obj.each(child.content || {}, (value, key) => {\n\n if ( ! key.match(':') ) {\n key += ':' + UUID();\n }\n\n result['content'][key] = Obj.assign(this.normalizeChild(value), {\n order: (Any.vals(result['content']).length + 1) * 100\n });\n });\n } else {\n result.content = child.content;\n }\n\n return result;\n },\n\n getOriginalValue(prop)\n {\n let safevalue = prop.value;\n\n if ( typeof prop.value === 'function' ) {\n safevalue = btoa(\"!FUNC:\" + prop.value.toString() + \":FUNC!\");\n }\n\n return safevalue;\n },\n\n getSafeValue(prop)\n {\n let safevalue = '';\n\n if ( typeof prop.value === 'string' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'boolean' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'number' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'object' ) {\n safevalue = JSON.stringify(prop.value);\n }\n\n if ( typeof prop.value === 'function' ) {\n safevalue = btoa(\"!FUNC:\" + prop.value.toString() + \":FUNC!\");\n }\n\n return safevalue;\n },\n\n getRealValue(prop)\n {\n let realvalue = '';\n\n if ( prop.code === 'string' ) {\n realvalue = Any.string(prop.value);\n }\n\n if ( prop.code === 'boolean' ) {\n realvalue = Any.boolean(prop.value);\n }\n\n if ( prop.code === 'number' ) {\n realvalue = Any.number(prop.value, 0);\n }\n\n if ( prop.code === 'object' ) {\n realvalue = JSON.parse(prop.value);\n }\n\n if ( prop.code === 'function' ) {\n realvalue = atob(prop.original);\n }\n\n return realvalue;\n },\n\n changeElement(key, update)\n {\n if ( Any.isEmpty(update) ) {\n return;\n }\n\n let newKey = key.replace(/^(.*?)([^\\.]+):([^\\.]+)$/, `$1${update}:$3`);\n\n let value = Obj.get(this, key, {});\n\n Obj.unset(this, key);\n Obj.set(this, newKey, value);\n\n this.collapse = Arr.each(this.collapse, (k) => {\n return k.replace(key, newKey);\n });\n },\n\n changeAlias(key, update)\n {\n if ( Any.isEmpty(update) ) {\n return;\n }\n\n let newKey = key.replace(/^(.*?)([^\\.]+):([^\\.]+)$/, `$1$2:${update}`);\n\n let value = Obj.get(this, key, {});\n\n Obj.unset(this, key);\n Obj.set(this, newKey, value);\n\n this.collapse = Arr.each(this.collapse, (k) => {\n return k.replace(key, newKey);\n });\n },\n\n changeType(key, type)\n {\n let value = Obj.get(this, key, {});\n\n let original = Obj.get(value, 'builder.null.type');\n\n if ( type === 'object' ) {\n value.content = {};\n }\n\n if ( type === 'string' ) {\n value.content = '';\n }\n\n Obj.set(value, 'builder.null.type', typeof value.content);\n },\n\n applyProps(key = null, value = {})\n {\n if ( ! Any.isEmpty(key) ) {\n value = Obj.get(this, key, {});\n }\n\n let reset = [\n 'vIf', 'vShow', 'classList', 'vLocale', 'binds', 'attrs', 'props', 'on',\n ];\n\n Obj.each(reset, (prop) => {\n Obj.unset(value, prop);\n });\n\n Obj.each(value.builder || {}, (val) => {\n\n if ( Any.isEmpty(val.key) ) {\n return;\n }\n\n let bindValue = {\n value: val.value, fallback: null\n };\n\n if ( val.code === 'string' ) {\n bindValue.fallback = Any.string(val.fallback || '');\n }\n\n if ( val.code === 'boolean' ) {\n bindValue.fallback = Any.boolean(val.fallback || 'false');\n }\n\n if ( val.code === 'object' ) {\n bindValue.fallback = JSON.parse(val.fallback || '{}');\n }\n\n if ( val.type === 'binds' ) {\n return Obj.set(value, [val.type, val.key], bindValue);\n }\n\n let realvalue = '';\n\n try {\n realvalue = this.getRealValue(val);\n } catch (e) {\n if ( ! Any.isEmpty(val.value) ) {\n console.error('Invalid JSON: ' + val.value);\n }\n }\n\n if ( val.type === 'root' ) {\n return Obj.set(value, val.key, realvalue);\n }\n\n if ( val.type === 'attrs' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n if ( val.type === 'props' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n if ( val.type === 'on' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n });\n\n if ( Any.isEmpty(key) ) {\n return value;\n }\n\n return Obj.set(this, key, value);\n },\n\n buildProps(el, key = null)\n {\n let builder = {};\n\n Obj.each(Obj.only(el, ['vIf', 'vShow', 'classList']), (value, sey) => {\n builder[UUID()] = {\n type: 'root', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value })\n };\n });\n\n Obj.each(Obj.get(el, `binds`, {}), (value, sey) => {\n\n let result = {\n type: 'binds', code: typeof value, key: sey, fallback: null, original: this.getOriginalValue({ value })\n }\n\n if ( Any.isString(value) ) {\n result.value = this.getSafeValue({ value });\n }\n\n if ( Any.isObject(value) ) {\n Obj.assign(result, { value: this.getSafeValue(value), fallback: Obj.get(value, 'fallback', null) })\n }\n\n builder[UUID()] = result;\n });\n\n Obj.each(Obj.get(el, `props`, {}), (value, sey) => {\n builder[UUID()] = { type: 'props', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n Obj.each(Obj.get(el, `attrs`, {}), (value, sey) => {\n builder[UUID()] = { type: 'attrs', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n Obj.each(Obj.get(el, `on`, {}), (value, sey) => {\n builder[UUID()] = { type: 'on', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n if ( Any.isEmpty(key) ) {\n return builder;\n }\n\n this.$nextTick(() => {\n Obj.set(this, `${key}.builder`, builder);\n });\n\n return builder;\n },\n\n addProp(key)\n {\n let value = Obj.get(this, `${key}.builder`, {});\n\n Obj.set(value, UUID(), {\n type: 'props', code: 'string', key: '', value: '', fallback: null\n });\n\n Obj.set(this, `${key}.builder`, value);\n },\n\n removeProp(key, prop)\n {\n Obj.unset(this, `${key}.builder.${prop}`);\n\n this.applyProps(key);\n },\n\n collapseElement(key)\n {\n Arr.toggle(this.collapse, key);\n },\n\n addElement(key)\n {\n let value = Obj.get(this, key, {});\n\n Obj.set(value, 'div:' + UUID(), {\n order: (Any.vals(value).length + 1) * 100, props: { modelValue: '$scope.list' }, content: {}\n });\n\n Obj.assign(this, key, value);\n },\n\n removeElement(key)\n {\n Obj.unset(this, key);\n },\n\n moveupElement(key)\n {\n let [el, childs] = [\n Obj.get(this, key), Obj.get(this, key.replace(/\\.[^.]+$/, ''))\n ];\n\n let close = Number.MIN_VALUE;\n\n Arr.each(childs, (sub) => {\n if ( sub.order < el.order ) close = Math.max(close, sub.order);\n });\n\n if ( close === Number.MIN_VALUE ) {\n return;\n }\n\n let replacement = Arr.find(childs, {\n order: close\n });\n\n Obj.assign(replacement, {\n order: el.order\n });\n\n Obj.assign(el, { order: close });\n },\n\n movedownElement(key)\n {\n let [el, childs] = [\n Obj.get(this, key), Obj.get(this, key.replace(/\\.[^.]+$/, ''))\n ];\n\n let close = Number.MAX_VALUE;\n\n Arr.each(childs, (sub) => {\n if ( sub.order > el.order ) close = Math.min(close, sub.order);\n });\n\n if ( close === Number.MAX_VALUE ) {\n return;\n }\n\n let replacement = Arr.find(childs, {\n order: close\n });\n\n Obj.assign(replacement, {\n order: el.order\n });\n\n Obj.assign(el, { order: close });\n },\n\n },\n\n renderTools(el, value, key)\n {\n let rootProps = {\n //\n };\n\n rootProps['onDblclick'] = () => {\n this.collapseElement(key);\n };\n\n let collapseProps = {\n href: 'javascript:void(0)',\n };\n\n collapseProps['onClick'] = () => {\n this.collapseElement(key);\n };\n\n let addProps = {\n href: 'javascript:void(0)',\n };\n\n addProps['onClick'] = () => {\n this.addElement(`${key}.content`);\n };\n\n let removeProps = {\n href: 'javascript:void(0)',\n };\n\n removeProps['onClick'] = () => {\n this.removeElement(key);\n };\n\n let moveupProps = {\n href: 'javascript:void(0)',\n };\n\n moveupProps['onClick'] = () => {\n this.moveupElement(key);\n };\n\n let movedownProps = {\n href: 'javascript:void(0)',\n };\n\n movedownProps['onClick'] = () => {\n this.movedownElement(key);\n };\n\n\n return (\n <div class=\"n-builder__tools\" {...rootProps}>\n <div class=\"n-builder__collapse\">\n <a {...collapseProps}><i class=\"fa fa-bars\"></i></a>\n </div>\n <div class=\"n-builder__name\">\n {key.replace(/^.*?([^\\.:]+):([^\\.:]+)$/, '$1')}<span>{key.replace(/^.*?([^\\.:]+):([^\\.:]+)$/, '$2')}</span>\n </div>\n <div class=\"n-builder__move\">\n <a {...moveupProps}><i class=\"fa fa-angle-up\"></i></a>\n <a {...movedownProps}><i class=\"fa fa-angle-down\"></i></a>\n </div>\n <div class=\"n-builder__add\">\n <a {...addProps}><i class=\"fa fa-plus\"></i></a>\n </div>\n <div class=\"n-builder__remove\">\n <a {...removeProps}><i class=\"fa fa-trash\"></i></a>\n </div>\n </div>\n );\n },\n\n renderProp(el, sub, key)\n {\n if ( sub === \"null\" ) {\n return null;\n }\n\n let group = key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$1')\n let value = Obj.get(this.$data, `${key}.builder.${sub}`, {});\n\n let props = Obj.clone(Obj.get(window.NanoBuilderIndexies, `${group}.props`, {}));\n\n props = Obj.assign({}, window.NanoBuilderProps, props);\n\n Obj.each(props, (prop, index) => {\n if ( ! Any.isEmpty(prop.for) && ! Arr.has(prop.for, value.type) ) {\n props = Obj.unset(props, index);\n }\n });\n\n let typeProps = {\n size: 'sm', options: window.NanoBuilderPropType\n };\n\n typeProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let keyProps = {\n size: 'sm', allowCreate: true, options: props, optionsLabel: '$index'\n };\n\n keyProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let codeProps = {\n size: 'sm', options: window.NanoBuilderPropCode\n };\n\n codeProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let values = Obj.get(props, `${value.key}.options`, []);\n\n let valueInputProps = {\n size: 'sm', model: this.model, scope: this.scope\n };\n\n valueInputProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let valueHtml = (\n <NReferencePicker vModel={value.value} {...valueInputProps} />\n );\n\n let fallbackProps = {\n size: 'sm', minRows: 1, autoRows: true\n };\n\n fallbackProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let tooltipHtml = (\n <div class=\"n-builder_prop-text\">\n <p>{Obj.get(props, `${value.key}.desc`, '')}</p>\n </div>\n );\n\n return (\n <div class=\"n-builder_prop\">\n <div class=\"n-builder_prop-type\">\n <NSelect vModel={value.type} {...typeProps} />\n </div>\n <div class=\"n-builder_prop-key\">\n <NSelect vModel={value.key} {...keyProps} />\n </div>\n <div class=\"n-builder_prop-func\">\n <NSelect vModel={value.code} {...codeProps} />\n </div>\n <div class=\"n-builder_prop-value\">\n {valueHtml}\n </div>\n <div class=\"n-builder_prop-fallback\">\n <NInput vModel={value.fallback} {...fallbackProps} />\n </div>\n <div class=\"n-builder_prop-button\">\n <NButton size=\"sm\" type=\"danger\" onClick={() => this.removeProp(key, sub)}>Remove</NButton>\n </div>\n </div>\n );\n },\n\n renderProps(el, value, key)\n {\n if ( !Arr.has(this.collapse, key) ) {\n return null;\n }\n\n let elementProps = {\n options: window.NanoBuilderTypes, allowCreate: true, modelValue: key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$1'),\n };\n\n elementProps['onUpdate:modelValue'] = (value) => {\n this.changeElement(key, value);\n };\n\n let aliasProps = {\n modelValue: key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$2'),\n };\n\n aliasProps['onUpdate:modelValue'] = (value) => {\n this.changeAlias(key, value);\n };\n\n let plainProps = {\n modelValue: Obj.get(value, 'builder.null.type'),\n options: {\n 'object': this.trans('Object'),\n 'string': this.trans('String'),\n }\n };\n\n plainProps['onUpdate:modelValue'] = (value) => {\n this.changeType(key, value);\n };\n\n let addProps = {\n type: 'primary', size: 'sm', link: true\n };\n\n addProps['onClick'] = () => {\n this.addProp(key, value);\n };\n\n let props = Obj.get(value, `builder`);\n\n if ( ! Obj.has(value, 'builder') ) {\n props = this.buildProps(el, key, value);\n }\n\n return (\n <NForm class=\"n-builder__props\">\n <NFormItem class=\"n-builder__element-type\" label={this.trans('Type')}>\n <NSelect {...elementProps} />\n </NFormItem>\n <NFormItem class=\"n-builder__element-alias\" label={this.trans('Alias')}>\n <NInput {...aliasProps} />\n </NFormItem>\n <NFormItem class=\"n-builder__element-plain\" label={this.trans('Content')}>\n <NSelect {...plainProps}>{this.trans('Enable plain')}</NSelect>\n </NFormItem>\n <div class=\"n-builder__element-prop\">\n <NButton {...addProps}>Add property</NButton>\n </div>\n <div class=\"n-builder__element-list\">\n {Arr.each(props, (prop, sub) => this.ctor('renderProp')(el, sub, key))}\n </div>\n </NForm>\n );\n },\n\n renderElement(el, value, key)\n {\n let classList = [\n 'n-builder__element'\n ];\n\n if ( Arr.has(this.collapse, key) ) {\n classList.push('is-open');\n }\n\n let builderHtml = () => {\n return this.ctor('renderBuilder')(value.content || {}, `${key}.content`);\n };\n\n if ( value.builder[\"null\"][\"type\"] === 'string' ) {\n builderHtml = () => {\n return (<div><NInput vModel={value.content} /></div>);\n };\n }\n\n return (\n <div class={classList}>\n {this.ctor('renderTools')(el, value, key)}\n {this.ctor('renderProps')(el, value, key)}\n {builderHtml()}\n </div>\n );\n },\n\n renderBuilder(el, key)\n {\n if ( Any.isEmpty(el) ) {\n return null;\n }\n\n let items = Arr.each(Obj.sort(Obj.clone(el), 'order'), (v) => {\n\n let args = [\n Obj.get(this.$data, key, {}),\n Obj.get(this.$data, [key, v._key], {}),\n `${key}.${v._key}`\n ];\n\n return this.ctor('renderElement')(...args);\n });\n\n return (\n <div class=\"n-builder__frame\">\n {items}\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-builder__body\">\n {this.ctor('renderBuilder')(this.safevar, 'safevar')}\n </div>\n );\n },\n\n renderHead()\n {\n let addProps = {\n type: 'primary'\n };\n\n addProps['onClick'] = () => {\n this.addElement('safevar');\n };\n\n let addHtml = (\n <div class=\"n-builder__head-add\">\n <NButton {...addProps}>{this.trans('Add root element')}</NButton>\n </div>\n );\n\n let demoProps = {\n type: 'primary'\n };\n\n demoProps['onClick'] = () => {\n this.demo = true;\n };\n\n let demoHtml = (\n <div class=\"n-builder__head-demo\">\n <NButton {...demoProps}>{this.trans('Render demo')}</NButton>\n </div>\n );\n\n return (\n <div class=\"n-builder__head\">\n {[addHtml, demoHtml]}\n </div>\n );\n },\n\n renderOutput()\n {\n return (\n <div class=\"n-builder__output\">\n <pre>{this.exportJson(this.safevar)}</pre>\n </div>\n );\n },\n\n renderDemo()\n {\n if ( ! this.renderDemo || ! this.demo ) {\n return null;\n }\n\n let renderFunction = this.$slots.default;\n\n if ( Any.isEmpty(renderFunction) ) {\n renderFunction = ({ render }) => render();\n }\n\n let modalProps = {\n width: '100%',\n height: '100%'\n };\n\n let configProps = {\n modelValue: this.model, scope: this.scope, config: this.exportExecutable(this.safevar)\n };\n\n let renderContent = () => {\n return ( <NConfigNext {...configProps} />);\n };\n\n return (\n <NModal vModel={this.demo} {...modalProps}>\n {renderFunction({ render: renderContent })}\n </NModal>\n );\n },\n\n render()\n {\n let classList = [\n 'n-builder',\n ];\n\n return (\n <div class={classList}>\n {[\n this.ctor('renderBody')(), this.ctor('renderHead')(), this.ctor('renderOutput')(), this.ctor('renderDemo')(),\n ]}\n </div>\n );\n }\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NReferencePanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return \"\";\n },\n type: [String]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n },\n\n data()\n {\n return {\n expanded: [], selected: null, modelTree: this.buildTree(this.model, '$model'), scopeTree: this.buildTree(this.scope, '$scope')\n };\n },\n\n methods: {\n\n buildTree(value, path = '')\n {\n let result = {};\n\n if ( ! Any.isPlain(value) && ! Obj.get(value, '__v_skip') ) {\n return result;\n }\n\n for(var key in value) {\n\n let [ref, val] = [\n `${path}.${key}`, value[key]\n ];\n\n if ( Any.isPlain(val) ) {\n val = this.buildTree(val, ref);\n }\n\n let type = typeof val;\n\n if ( Any.isArray(val) ) {\n type = 'array';\n }\n\n result[key] = {\n path: ref, value: val, type: type\n };\n\n }\n\n return result;\n },\n\n submitItem(value)\n {\n this.$emit('update:modelValue', value.path);\n },\n\n selectItem(value)\n {\n this.selected = value;\n },\n\n expandItem(value)\n {\n if ( value.type === 'object' ) {\n Arr.toggle(this.expanded, value.path);\n }\n }\n\n },\n\n renderLeaf(value, key)\n {\n let classList = [\n 'n-reference-panel__item',\n 'n-reference-panel__item--' + value.type,\n ];\n\n if ( Obj.get(this.selected, 'path') === value.path) {\n classList.push('is-selected');\n }\n\n if ( value.type === 'object' ) {\n classList.push('has-childs');\n }\n\n if ( Arr.has(this.expanded, value.path) ) {\n classList.push('is-expanded');\n }\n\n return (\n <div class={classList} onDblclick={() => this.submitItem(value)}>\n <div class=\"n-reference-panel__expand\" onClick={() => this.expandItem(value)}>\n <i class=\"fa fa-angle-right\"></i>\n </div>\n <div class=\"n-reference-panel__name\" onClick={() => this.selectItem(value)}>\n {key}\n </div>\n <div class=\"n-reference-panel__type\" onClick={() => this.selectItem(value)}>\n {value.type}\n </div>\n <div class=\"n-reference-panel__pick\" onClick={() => this.submitItem(value)}>\n <i class=\"fa fa-expand\"></i>\n </div>\n </div>\n );\n },\n\n renderTree(value, key)\n {\n let childItems = Arr.each(value.value, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n let childHtml = (\n <div class=\"n-reference-panel__childs\">\n {childItems}\n </div>\n );\n\n if ( ! Arr.has(this.expanded, value.path) ) {\n childHtml = null;\n }\n\n return [this.ctor('renderLeaf')(value, key), childHtml];\n },\n\n renderItem(value, key)\n {\n if ( value.type === 'object' ) {\n return this.ctor('renderTree')(value, key);\n }\n\n return this.ctor('renderLeaf')(value, key);\n },\n\n renderModel()\n {\n let modelHtml = Arr.each(this.modelTree, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n return (\n <div class=\"n-reference-panel__model\">\n {modelHtml}\n </div>\n );\n },\n\n renderScope()\n {\n let scopeHtml = Arr.each(this.scopeTree, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n return (\n <div class=\"n-reference-panel__scope\">\n {scopeHtml}\n </div>\n );\n },\n\n render()\n {\n return (\n <div class=\"n-reference-panel\">\n {[this.ctor('renderModel')(), this.ctor('renderScope')()]}\n </div>\n );\n }\n\n}","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NReferencePicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n width: {\n default()\n {\n return '100%';\n },\n type: [String]\n },\n\n height: {\n default()\n {\n return '100%';\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return {\n modal: false, tempValue: this.modelValue\n };\n },\n\n methods: {\n\n updateValue(value)\n {\n this.$emit('update:modelValue', this.tempValue = value);\n }\n\n },\n\n renderModal()\n {\n if ( ! this.modal ) {\n return null;\n }\n\n let modalProps = {\n modelValue: true,\n width: this.width,\n height: this.height,\n };\n\n modalProps['onClose'] = () => {\n this.modal = false;\n };\n\n let panelProps = {\n model: this.model, scope: this.scope,\n };\n\n panelProps['onUpdate:modelValue'] = (value) => {\n this.updateValue(value); this.modal = false;\n };\n\n let slots = {\n //\n };\n\n slots['body'] = () => (\n <NReferencePanel class=\"in-modal\" {...panelProps} />\n );\n\n return (\n <NModal {...modalProps} v-slots={slots} />\n );\n },\n\n renderInput()\n {\n let inputProps = {\n modelValue: this.tempValue,\n icon: 'fa fa-expand',\n size: this.size,\n };\n\n inputProps['onUpdate:modelValue'] = (value) => {\n this.updateValue(value);\n };\n\n inputProps['onBlur'] = (e) => {\n this.$emit('onBlur', e);\n };\n\n inputProps['onIconClick'] = () => {\n this.modal = true;\n };\n\n return (\n <NInput {...inputProps} />\n );\n },\n\n render()\n {\n return (\n <div class=\"n-reference-picker\">\n {[this.ctor('renderInput')(), this.ctor('renderModal')()]}\n </div>\n );\n }\n\n}","import { Arr, Obj, Dom, Any, Str, Event } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NScrollbar',\n\n provide()\n {\n return {\n NScrollbar: this\n };\n },\n\n props: {\n\n options: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n fixture: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n allowNative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n framerate: {\n default()\n {\n return 24;\n },\n type: [Number]\n },\n\n wrapClass: {\n default()\n {\n return 'n-scrollbar__wrap';\n }\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n native: false\n };\n },\n\n beforeMount()\n {\n this.adaptScrollBehavior();\n },\n\n mounted()\n {\n this.bindAdaptHeight();\n this.bindAdaptWidth();\n\n let passive = {\n passive: true, uid: this._.uid\n };\n\n Event.bind('NScrollbar:resize',\n this.onResize, this._.uid);\n\n Event.bind('NResizer:moved',\n this.onUpdate, this._.uid);\n\n Dom.find(window).on('resize',\n this.onResize, passive);\n\n Dom.find(this.$refs.content).on('scroll',\n this.onScroll, passive);\n },\n\n updated()\n {\n if ( this.passedHeight || this.passedWidth ) {\n Dom.find(this.$el).addClass('n-ready');\n }\n },\n\n beforeUnmount()\n {\n this.unbindAdaptHeight();\n this.unbindAdaptWidth();\n\n let passive = {\n passive: true, uid: this._.uid\n };\n\n Event.unbind('NScrollbar:resize',\n this._.uid);\n\n Event.unbind('NResizer:moved',\n this._.uid);\n\n Dom.find(window).off('resize',\n null, passive);\n\n Dom.find(this.$el).off('scroll',\n null, passive);\n },\n\n methods: {\n\n scrollTo(x = 0, y = 0, delay = 0)\n {\n Any.delay(() => this.onScrollTo(x, y), delay);\n },\n\n onScrollTo(x = 0, y = 0)\n {\n if ( this.$refs.content ) {\n this.$refs.content.scrollTop = y;\n this.$refs.content.scrollLeft = x;\n }\n },\n\n scrollIntoView(selector, delay = 0)\n {\n Any.delay(() => this.onScrollIntoView(selector), delay);\n },\n\n onScrollIntoView(selector)\n {\n let $el = Dom.find(this.$el).find(selector);\n\n let scrollTop = this.$refs.content\n .scrollTop;\n\n let outerHeight = this.$refs.content.\n clientHeight;\n\n let offsetTop = $el.offsetTop(this.$el);\n\n if ( offsetTop < scrollTop ) {\n this.$refs.content.scrollTop = offsetTop;\n }\n\n if ( offsetTop + $el.height() >= scrollTop + outerHeight ) {\n this.$refs.content.scrollTop = offsetTop - outerHeight + $el.height();\n }\n\n let scrollLeft = this.$refs.content\n .scrollLeft;\n\n let outerWidth = this.$refs.content.\n clientWidth;\n\n let offsetLeft = $el.offsetLeft(this.$el);\n\n if ( offsetLeft < scrollLeft ) {\n this.$refs.content.scrollLeft = offsetLeft;\n }\n\n if ( offsetLeft + $el.width() >= scrollLeft + outerWidth ) {\n this.$refs.content.scrollLeft = offsetLeft - outerWidth + $el.width();\n }\n },\n\n adaptScrollBehavior()\n {\n let $dom = Dom.make('div', { classList: ['n-scrollbar-test'] })\n .appendTo(document.body).get(0);\n\n Dom.make('div').appendTo($dom);\n\n this.native = $dom.clientWidth === $dom.offsetWidth ||\n $dom.clientHeight === $dom.offsetHeight;\n\n $dom.remove();\n },\n\n adaptScrollHeight()\n {\n if ( this.native && this.allowNative ) {\n return;\n }\n\n // let offsetHeight = this.$refs.content.clientHeight -\n // this.$refs.content.offsetHeight;\n //\n // let offsetWidth = this.$refs.content.clientWidth -\n // this.$refs.content.offsetWidth;\n\n let outerHeight = this.$refs.content.\n clientHeight || 0;\n\n if ( this.native && ! this.allowNative ) {\n outerHeight -= 16;\n }\n\n // if ( offsetHeight === 0 && this.overflowX ) {\n // outerHeight -= 15;\n // }\n\n let innerHeight = this.$refs.content\n .scrollHeight || 0;\n\n let virtualHeight = 0;\n\n Dom.find(this.$refs.content).childs().each((el) => {\n virtualHeight += Dom.find(el).height() || 0;\n });\n\n if ( this.native && ! this.allowNative ) {\n innerHeight -= 16;\n }\n\n if ( virtualHeight > innerHeight ) {\n innerHeight = virtualHeight;\n }\n\n // if ( offsetHeight === 0 && this.overflowX ) {\n // innerHeight -= 15;\n // }\n\n let isSameOld = outerHeight === this.outerHeight &&\n innerHeight === this.innerHeight;\n\n if ( isSameOld ) {\n return;\n }\n\n this.outerHeight = outerHeight;\n this.innerHeight = innerHeight;\n\n let height = (outerHeight / innerHeight)\n * outerHeight;\n\n let barHeight = Math.max(height, 50);\n\n let maxHeight = Math.ceil((outerHeight / innerHeight) *\n (innerHeight - outerHeight));\n\n this.heightRatio = (maxHeight - (barHeight - height)\n - this.offsetY) / maxHeight;\n\n Dom.find(this.$refs.vbar).css({\n height: (this.barHeight = Math.ceil(barHeight)) + 'px'\n });\n\n // let hasNativeBar = offsetWidth !== 0 && this.overflowY;\n //\n // if ( hasNativeBar ) {\n // Dom.find(this.$el).addClass('has-native-vbar');\n // }\n //\n // if ( hasNativeBar && this.overflowX ) {\n // Dom.find(this.$el).addClass('has-native-hbar');\n // }\n\n let hasVtrack = outerHeight && outerHeight < innerHeight;\n\n if ( hasVtrack ) {\n Dom.find(this.$el).addClass('has-vtrack');\n }\n\n if ( ! hasVtrack ) {\n Dom.find(this.$el).removeClass('has-vtrack');\n }\n\n // if ( hasVtrack && ! hasNativeBar ) {\n // Event.fire('NScrollbar:native');\n // }\n\n this.adaptScrollPosition();\n },\n\n adaptScrollWidth()\n {\n if ( this.native && this.allowNative ) {\n return;\n }\n\n // let offsetWidth = this.$refs.content.clientWidth -\n // this.$refs.content.offsetWidth;\n //\n // let offsetHeight = this.$refs.content.clientHeight -\n // this.$refs.content.offsetHeight;\n\n let outerWidth = this.$refs.content.\n clientWidth || 0;\n\n if ( this.native && ! this.allowNative ) {\n outerWidth -= 16;\n }\n\n // if ( offsetWidth === 0 && this.overflowY ) {\n // outerWidth -= 15;\n // }\n\n let innerWidth = this.$refs.content\n .scrollWidth || 0;\n\n let virtualWidth = 0;\n\n Dom.find(this.$refs.content).childs().each((el) => {\n virtualWidth += Dom.find(el).width() || 0;\n });\n\n if ( this.native && ! this.allowNative ) {\n innerWidth -= 16;\n }\n\n if ( virtualWidth > innerWidth ) {\n innerWidth = virtualWidth;\n }\n\n // if ( offsetWidth === 0 && this.overflowY ) {\n // innerWidth -= 15;\n // }\n\n let isSameOld = outerWidth === this.outerWidth &&\n innerWidth === this.innerWidth;\n\n if ( isSameOld ) {\n return;\n }\n\n this.outerWidth = outerWidth;\n this.innerWidth = innerWidth;\n\n let width = (outerWidth / innerWidth)\n * outerWidth;\n\n let barWidth = Math.max(width, 50);\n\n let maxWidth = Math.ceil((outerWidth / innerWidth) *\n (innerWidth - outerWidth));\n\n this.widthRatio = (maxWidth - (barWidth - width)\n - this.offsetX) / maxWidth;\n\n Dom.find(this.$refs.hbar).css({\n width: (this.barWidth = Math.ceil(barWidth)) + 'px'\n });\n\n // let hasNativeBar = offsetHeight && this.overflowX;\n\n // if ( hasNativeBar ) {\n // Dom.find(this.$el).addClass('has-native-hbar');\n // }\n //\n // if ( hasNativeBar && this.overflowY ) {\n // Dom.find(this.$el).addClass('has-native-vbar');\n // }\n\n let hasHtrack = outerWidth && outerWidth < innerWidth;\n\n if ( hasHtrack ) {\n Dom.find(this.$el).addClass('has-htrack');\n }\n\n if ( ! hasHtrack ) {\n Dom.find(this.$el).removeClass('has-htrack');\n }\n\n // if ( hasHtrack && ! hasNativeBar ) {\n // Event.fire('NScrollbar:native');\n // }\n\n this.adaptScrollPosition();\n },\n\n adaptScrollPosition(scroll = {})\n {\n if ( this.native && this.allowNative ) {\n return;\n }\n\n if ( ! scroll.top ) {\n scroll.top = this.$refs.content.scrollTop;\n }\n\n if ( ! scroll.left ) {\n scroll.left = this.$refs.content.scrollLeft;\n }\n\n let vbarTop = Math.ceil((this.outerHeight / this.innerHeight) *\n scroll.top * this.heightRatio) || 0;\n\n if ( ! this.vbarTop || vbarTop !== this.vbarTop ) {\n\n Dom.find(this.$refs.vbar).css({\n transform: `translateY(${vbarTop}px) translateZ(0)`\n });\n\n this.vbarTop = vbarTop;\n }\n\n let hbarLeft = Math.ceil((this.outerWidth / this.innerWidth) *\n scroll.left * this.widthRatio) || 0;\n\n if ( ! this.hbarLeft || hbarLeft !== this.hbarLeft ) {\n\n Dom.find(this.$refs.hbar).css({\n transform: `translateX(${hbarLeft}px) translateZ(0)`\n });\n\n this.hbarLeft = hbarLeft;\n }\n },\n\n adaptHeight()\n {\n if ( ! this.cacheChildEl ) {\n this.cacheChildEl = Dom.find(this.$refs.content).child();\n }\n\n let height = this.cacheChildEl\n .height();\n\n if ( ! this.cacheWindwoEl ) {\n this.cacheWindwoEl = Dom.find(this.$el);\n }\n\n let window = this.cacheWindwoEl\n .innerHeight();\n\n if ( height === this.passedHeight && window === this.windowCache ) {\n return;\n }\n\n this.windowCache = window;\n\n if ( this.overflowY ) {\n this.adaptScrollHeight();\n }\n\n if ( window ) {\n this.passedHeight = height;\n }\n\n let style = {\n height: (height + 1) + 'px'\n };\n\n if ( ! this.relative ) {\n return Any.delay(this.onSizechange, 100);\n }\n\n Dom.find(this.$refs.spacer).child().css(style);\n },\n\n bindAdaptHeight()\n {\n this.refreshHeight = setInterval(this.adaptHeight,\n 1000 / this.framerate);\n },\n\n unbindAdaptHeight()\n {\n clearInterval(this.refreshHeight);\n },\n\n adaptWidth()\n {\n if ( this.resizeTimer ) {\n return;\n }\n\n let width = Dom.find(this.$refs.content)\n .child().width();\n\n let window = Dom.find(this.$el)\n .innerWidth();\n\n if ( width === this.passedWidth ) {\n return;\n }\n\n if ( this.overflowX ) {\n this.adaptScrollWidth();\n }\n\n if ( window ) {\n this.passedWidth = width;\n }\n\n let style = {\n width: width + 'px'\n };\n\n if ( this.fixture ) {\n this.onUpdate();\n }\n\n if ( ! this.relative ) {\n return Any.delay(this.onSizechange, 100);\n }\n\n Dom.find(this.$refs.spacer).child().css(style);\n },\n\n bindAdaptWidth()\n {\n this.refreshWidth = setInterval(this.adaptWidth,\n 1000 / this.framerate);\n },\n\n unbindAdaptWidth()\n {\n clearInterval(this.refreshWidth);\n },\n\n onScroll(event)\n {\n let scroll = {\n top: this.$refs.content.scrollTop,\n left: this.$refs.content.scrollLeft\n };\n\n let scrollUpdate = () => {\n this.$emit('scrollupdate', scroll.top, scroll.left);\n }\n\n this.$nextTick(scrollUpdate);\n this.adaptScrollPosition(scroll);\n },\n\n onSizechange(event)\n {\n let height = Dom.find(this.$el).height();\n let width = Dom.find(this.$el).width();\n\n if ( ! height || ! width ) {\n return;\n }\n\n if ( this.passedHeight || this.passedWidth ) {\n Dom.find(this.$el).addClass('is-ready');\n }\n\n this.$emit('sizechange', height, width, this.$el);\n },\n\n onResize()\n {\n if ( ! this.fixture ) {\n return;\n }\n\n Dom.find(this.$refs.content)\n .child().css(null);\n\n clearTimeout(this.resizeTimer);\n\n this.resizeTimer = setTimeout(\n this.onUpdate, 500);\n\n Dom.find(this.$el).fire('resized');\n },\n\n onUpdate()\n {\n if ( ! this.fixture || ! this.$refs.content ) {\n return;\n }\n\n let $inner = Dom.find(this.$refs.content)\n .child();\n\n let height = $inner.actual(() => {\n return $inner.scrollHeight();\n });\n\n if ( height !== this.passedHeight ) {\n $inner.css({ height: height + 'px' });\n }\n\n let width = $inner.actual(() => {\n return $inner.scrollWidth() - 1;\n });\n\n if ( width !== this.passedWidth ) {\n $inner.css({ width: width + 'px' });\n }\n\n delete this.resizeTimer;\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onVbarMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.stopPropagation();\n\n Dom.find(document).on(this.mousemove,\n this.onVbarMousemove, this._.uid);\n\n Dom.find(document).on(this.mouseup,\n this.onVbarMouseup, this._.uid);\n\n this.scrollTop = this.$refs.content\n .scrollTop;\n\n this.clientY = this.getTouchEvent(event)\n .clientY;\n },\n\n onVbarMousemove(event)\n {\n let clientY = this.getTouchEvent(event)\n .clientY;\n\n let top = (this.outerHeight / this.innerHeight) *\n this.scrollTop * this.heightRatio;\n\n let offset = (clientY - this.clientY) + top;\n\n let height = (this.outerHeight -\n this.barHeight - this.offsetY);\n\n this.$refs.content.scrollTop = offset / height *\n (this.innerHeight - this.outerHeight);\n },\n\n onVbarMouseup(event)\n {\n Dom.find(document).off(this.mousemove,\n null, this._.uid);\n\n Dom.find(document).off(this.mouseup,\n null, this._.uid);\n },\n\n onHbarMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.stopPropagation();\n\n Dom.find(document).on(this.mousemove,\n this.onHbarMousemove, this._.uid);\n\n Dom.find(document).on(this.mouseup,\n this.onHbarMouseup, this._.uid);\n\n this.scrollLeft = this.$refs.content\n .scrollLeft;\n\n this.clientX = event.clientX;\n },\n\n onHbarMousemove(event)\n {\n let top = (this.outerWidth / this.innerWidth) *\n this.scrollLeft * this.widthRatio;\n\n let offset = (event.clientX - this.clientX) + top;\n\n let width = (this.outerWidth -\n this.barWidth - this.offsetX);\n\n this.$refs.content.scrollLeft = offset / width *\n (this.innerWidth - this.outerWidth);\n },\n\n onHbarMouseup(event)\n {\n Dom.find(document).off(this.mousemove,\n null, this._.uid);\n\n Dom.find(document).off(this.mouseup,\n null, this._.uid);\n },\n\n },\n\n render()\n {\n let classList = [\n 'n-scrollbar'\n ];\n\n if ( this.native ) {\n classList.push('n-scrollbar--native');\n }\n\n if ( ! this.allowNative ) {\n classList.push('n-scrollbar--forced');\n }\n\n if ( this.touch ) {\n classList.push('n-scrollbar--touch');\n }\n\n if ( window.WIN ) {\n classList.push('n-windows');\n }\n\n if ( this.overflowY ) {\n classList.push('n-overflow-y');\n }\n\n if ( this.overflowX ) {\n classList.push('n-overflow-x');\n }\n\n let vbarProps = {\n ['on' + Str.ucfirst(this.mousedown)]: this.onVbarMousedown\n };\n\n let hbarProps = {\n ['on' + Str.ucfirst(this.mousedown)]: this.onHbarMousedown\n };\n\n return (\n <div class={classList} {...Obj.except(this.$attrs, ['class'])}>\n <div class=\"n-scrollbar-content\" ref=\"content\">\n <div class={this.wrapClass}>\n { this.$slots.default && this.$slots.default() }\n </div>\n </div>\n <div class=\"n-scrollbar-spacer\" ref=\"spacer\">\n <div class={this.wrapClass}>\n { /* Adapt inner height */ }\n </div>\n </div>\n <div ref=\"hbar\" class=\"n-scrollbar-h\" {...hbarProps}></div>\n <div ref=\"vbar\" class=\"n-scrollbar-v\" {...vbarProps}></div>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any, Dom } from \"@kizmann/pico-js\";\n\nwindow.DEBUG_NVSCROLL = false;\n\nexport default {\n\n name: 'NVirtualscroller',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n\n },\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n itemHeight: {\n default()\n {\n return 34;\n }\n },\n\n itemWidth: {\n default()\n {\n return 0;\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n deathzone: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n framerate: {\n default()\n {\n return 65;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n let state = {\n start: 0, end: 0, grid: 1\n };\n\n return {\n state, buffer: [], width: 0, height: 0, load: true\n };\n },\n\n watch: {\n\n 'items': function () {\n this.updateRender();\n }\n\n },\n\n beforeMount()\n {\n this.scrollTop = 0;\n },\n\n mounted()\n {\n\n this.bindAdaptScroll()\n },\n\n\n beforeUnmount()\n {\n this.unbindAdaptScroll()\n },\n\n methods: {\n\n bindAdaptScroll()\n {\n this.refreshScroll = setInterval(this.onScrollupdate,\n 1000 / this.framerate);\n },\n\n unbindAdaptScroll()\n {\n clearInterval(this.refreshScroll);\n },\n\n isIndexRendered(index)\n {\n if ( ! this.itemHeight ) {\n return true;\n }\n\n return this.state.start < index &&\n this.state.end > index;\n },\n\n scrollIntoView(index)\n {\n if ( ! this.$refs.scrollbar ) {\n return;\n }\n\n if ( index === -1 || index >= this.items.length ) {\n index = this.items.length;\n }\n\n if ( ! this.isIndexRendered(index) ) {\n return this.scrollToIndex(index);\n }\n\n let selector = `[data-index=\"${index}\"]`;\n\n this.$refs.scrollbar.scrollIntoView(selector);\n },\n\n scrollToIndex(index, delay = 0)\n {\n Any.delay(() => this.onScrollToIndex(index), delay);\n },\n\n onScrollToIndex(index)\n {\n if ( ! this.$refs.scrollbar ) {\n return;\n }\n\n let total = Math.ceil(this.items.length /\n this.state.grid);\n\n index = Math.floor(index / this.state.grid);\n\n if ( index === -1 || index >= total ) {\n index = total;\n }\n\n let targetTop = index * this.itemHeight;\n\n if ( this.scrollTop > targetTop ) {\n return this.scrollTo(0, targetTop);\n }\n\n targetTop = targetTop - this.height +\n this.itemHeight;\n\n this.scrollTo(0, targetTop);\n },\n\n scrollTo(x = 0, y = 0, delay = 0)\n {\n Any.delay(() => this.onScrollTo(x, y), delay);\n },\n\n onScrollTo(x = 0, y = 0)\n {\n if ( ! this.$refs.scrollbar ) {\n return;\n }\n\n this.$refs.scrollbar.scrollTo(x, y);\n },\n\n clearState()\n {\n this.state = { start: 0, end: 0 };\n },\n\n updateRender()\n {\n if ( ! this.$refs.scrollbar ) {\n return Any.delay(this.updateRender);\n }\n\n this.scrollTop = this.$refs.scrollbar.\n $refs.content.scrollTop;\n\n Any.async(this.refreshDriver);\n },\n\n onScrollupdate()\n {\n if ( ! this.threshold ) {\n return;\n }\n\n let scrollTop = this.$refs.scrollbar.\n $refs.content.scrollTop;\n\n if ( scrollTop === this.scrollTop ) {\n return;\n }\n\n this.scrollTop = scrollTop;\n\n let offset = this.$refs.scrollbar.$el.offsetHeight -\n this.$refs.scrollbar.$el.clientHeight;\n\n let isOutOfRange = scrollTop < 0 || scrollTop + this.height\n > this.$refs.inner.scrollHeight + offset;\n\n if ( isOutOfRange ) {\n return;\n }\n\n Any.async(this.refreshDriver);\n },\n\n onSizechange(height, width, el)\n {\n this.width = width;\n this.height = height;\n\n Any.async(this.refreshDriver);\n },\n\n\n refreshDriver(queue = true)\n {\n if ( Any.isEmpty(this.timer) ) {\n this.timer = Date.now();\n }\n\n if ( Date.now() - this.timer > 20 ) {\n queue = false;\n }\n\n clearTimeout(this.to);\n\n this.to = setTimeout(() => {\n this.refreshDriver(false);\n }, 25);\n\n if ( queue ) {\n return;\n }\n\n clearTimeout(this.to);\n\n let grid = 1;\n\n if ( this.itemWidth ) {\n grid = Math.floor((this.width - this.deathzone) /\n this.itemWidth) || 1;\n }\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n return this.state = { start: 0, end: 0, grid };\n }\n\n let total = Math.ceil(this.items.length\n / grid);\n\n let bufferItems = Math.round((this.height /\n this.itemHeight) * 0.6);\n\n let startItem = Math.round(this.scrollTop /\n this.itemHeight);\n\n let endItem = Math.round((this.scrollTop +\n this.height) / this.itemHeight);\n\n let start = (startItem - bufferItems);\n\n if ( start < 0 ) {\n start = 0;\n }\n\n let end = endItem + bufferItems;\n\n if ( end > total ) {\n end = total;\n }\n\n let state = { start, end, grid };\n\n if ( Any.isEqual(this.state, state) ) {\n return;\n }\n\n this.state = state;\n },\n\n },\n\n renderItem(passed)\n {\n passed.index = (passed.index +\n this.state.start);\n\n let topOffset = Math.round(this.itemHeight *\n passed.index);\n\n let renderFunction = this.$slots.default;\n\n if ( this.renderNode ) {\n renderFunction = this.renderNode;\n }\n\n let props = {\n 'data-index': passed.index\n };\n\n if ( this.NDraggable && this.useKeys ) {\n props.key = passed.value[this.NDraggable.uniqueProp];\n }\n\n let style = {};\n\n let isLazy = this.threshold && this.threshold <=\n this.items.length;\n\n if ( isLazy && this.state.grid === 1 ) {\n style.top = topOffset + 'px';\n }\n\n if ( this.itemHeight ) {\n style.height = this.itemHeight + 'px';\n }\n\n if ( this.state.grid !== 1 ) {\n style.width = this.itemWidth + 'px';\n }\n\n return (\n <div class=\"n-virtualscroller__item\" style={style} {...props}>\n { renderFunction(passed) }\n </div>\n );\n },\n\n renderRows()\n {\n let items = Arr.slice(this.items, this.state.start,\n this.state.end);\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n items = this.items;\n }\n\n return Arr.each(items, (value, index) => {\n return this.ctor('renderItem')({ value, index });\n });\n },\n\n renderGridRows(passed)\n {\n let topOffset = Math.round(this.itemHeight *\n (passed.index + this.state.start));\n\n let style = {};\n\n if ( this.threshold && this.threshold <= this.items.length ) {\n style.top = topOffset + 'px';\n }\n\n let counter = passed.index * this.state.start;\n\n return (\n <div data-row={passed.index} class=\"n-virtualscroller__row\" style={style}>\n {\n Arr.each(passed.chunk, (value, index) => {\n return this.ctor('renderItem')({\n value, index: index + counter\n });\n })\n }\n </div>\n );\n },\n\n renderGrid()\n {\n let chunks = Arr.chunk(this.items,\n this.state.grid);\n\n let items = Arr.slice(chunks, this.state.start,\n this.state.end);\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n items = chunks;\n }\n\n return Arr.each(items, (chunk, index) => {\n return this.ctor('renderGridRows')({ chunk, index });\n });\n },\n\n renderItems()\n {\n if ( ! this.items.length ) {\n return this.$slots.empty && this.$slots.empty() || null;\n }\n\n if ( this.state.grid === 1 ) {\n return this.ctor('renderRows')();\n }\n\n return this.ctor('renderGrid')();\n },\n\n render()\n {\n let classList = [\n 'n-virtualscroller'\n ];\n\n if ( this.threshold && this.threshold <= this.items.length ) {\n classList.push('n-virtualscroller--absolute');\n }\n\n let props = {\n overflowY: this.overflowY,\n overflowX: this.overflowX,\n offsetY: this.offsetY,\n offsetX: this.offsetX,\n onSizechange: this.onSizechange,\n };\n\n let style = {\n 'overflow-y': 'hidden'\n };\n\n let totalHeight = Math.ceil(this.items.length / this.state.grid) *\n this.itemHeight;\n\n if ( this.threshold && this.items.length ) {\n style.height = Math.ceil(totalHeight + this.offsetY) + 'px';\n }\n\n return (\n <NScrollbar class={classList} ref=\"scrollbar\" {...props}>\n <div ref=\"inner\" class=\"n-virtualscroller__inner\" style={style}>\n { this.ctor('renderItems')() }\n </div>\n </NScrollbar>\n );\n }\n\n}\n","import { Arr, Obj, Num, Any, Dom, Event, Locale, UUID } from \"@kizmann/pico-js\";\n\nwindow.dragMods = [];\n\nclass NDragCounter\n{\n\n $el = null;\n\n constructor()\n {\n this.$el = Dom.make('div', {\n classList: ['n-draggable__counter']\n });\n\n Dom.ready(() => {\n this.$el.appendTo(document.body);\n });\n }\n\n get(event, count)\n {\n // Update dragover color/type\n this.update();\n\n this.$el.html(\n `<span>${Locale.choice(':count Item|:count Items', count)}</span>`\n );\n\n // Fix data transfer\n event.dataTransfer.setData('text/plain', '');\n\n if ( typeof event.dataTransfer.setDragImage !== 'function' ) {\n return;\n }\n\n // Set finally the drop image\n event.dataTransfer.setDragImage(this.$el.get(0), 0, 0);\n }\n\n update()\n {\n window.dragMods = window.keyMods;\n\n let classList = [\n 'n-draggable__counter'\n ];\n\n if ( Arr.has(window.dragMods, 18) ) {\n classList.push('n-modify--alt');\n }\n\n if ( Arr.has(window.dragMods, 17) ) {\n classList.push('n-modify--ctrl');\n }\n\n if ( Arr.has(window.dragMods, 91) ) {\n classList.push('n-modify--meta');\n }\n\n this.$el.attr('class', classList.join(' '));\n }\n\n}\n\nwindow.DragCounter = new NDragCounter;\n\nclass NDragIndicator\n{\n\n $el = null;\n\n parent = null;\n\n constructor(parent)\n {\n this.$el = Dom.make('div', {\n classList: ['n-draggable__indicator']\n });\n\n this.$el.appendTo(this.parent = parent);\n }\n\n resolve(event, safezone, el, strategy = 'inner')\n {\n let rect = el.getBoundingClientRect();\n\n if ( event.clientY < rect.y + safezone ) {\n strategy = 'before';\n }\n\n if ( event.clientY > rect.y + rect.height - safezone ) {\n strategy = 'after';\n }\n\n if ( Dom.find(el).hasClass('n-expanded') ) {\n strategy = strategy === 'after' ? 'inner' : strategy;\n }\n\n Arr.has(['before', 'after'], strategy) ?\n this.show(el, strategy) : this.hide();\n\n\n return strategy;\n }\n\n show(el, strategy)\n {\n let offsetTop = Dom.find(el).offsetTop(this.parent);\n\n let style = {\n top: offsetTop || 1\n };\n\n if ( strategy === 'after' ) {\n style.top = offsetTop + Dom.find(el).height();\n }\n\n this.$el.css(Obj.map(style, (item) => item + 'px'));\n }\n\n hide()\n {\n this.$el.css(null);\n }\n\n destroy()\n {\n this.$el.get(0).remove();\n }\n\n}\n\nclass NDraghandler\n{\n\n uid = null;\n\n rootNode = null;\n childNodes = {};\n\n dropNodes = [];\n cacheNodes = [];\n\n strategy = 'nodrop';\n frames = 0;\n timeout = 0;\n dragcount = {};\n\n constructor(rootNode)\n {\n this.rootNode = rootNode;\n }\n\n bindRoot(frame = null)\n {\n this.DragIndicator = new NDragIndicator(frame || this.rootNode.$el);\n\n if ( window.DragCache ) {\n this.bindDragstart.call(this, ...window.DragCache);\n }\n\n Dom.find(this.rootNode.$el).on('dragenter', (event) => {\n this.onDragenterRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragover', (event) => {\n this.onDragoverRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragleave', (event) => {\n this.onDragleaveRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragend', (event) => {\n this.onDragendRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('drop', (event) => {\n this.onDragdropRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragdrop', (event) => {\n this.onDragdropRoot(event);\n });\n\n Event.bind('NDrag:start', this.bindDragstart.bind(this),\n this.rootNode.uid);\n\n Event.bind('NDrag:end', this.bindDragend.bind(this),\n this.rootNode.uid);\n\n Event.bind('NDrag:drop', this.bindDragdrop.bind(this),\n this.rootNode.uid);\n }\n\n unbindRoot()\n {\n let events = [\n 'dragstart',\n 'dragenter',\n 'dragover',\n 'dragleave',\n 'dragend',\n 'drop',\n 'dragdrop',\n ];\n\n Dom.find(this.rootNode.$el).off(events);\n\n Event.unbind('NDrag:start', this.rootNode.uid);\n Event.unbind('NDrag:end', this.rootNode.uid);\n Event.unbind('NDrag:drop', this.rootNode.uid);\n }\n\n onDragenterRoot(event)\n {\n event.preventDefault();\n }\n\n onDragoverRoot(event)\n {\n let isNode = Dom.find(event.target)\n .closest('.n-draglist-item');\n\n if ( isNode || !this.cacheNodes.length ) {\n return;\n }\n\n event.preventDefault();\n\n if ( this.frames && Date.now() - this.frames < 135 ) {\n return;\n }\n\n let allowDrop = this.rootNode.allowDrop;\n\n if ( !Any.isFunction(allowDrop) ) {\n allowDrop = () => this.rootNode.allowDrop;\n }\n\n let rainbow = Arr.each(this.cacheNodes, (node) => {\n return !!allowDrop(node, null, this.strategy);\n });\n\n this.strategy = 'root';\n\n if ( Arr.has(rainbow, false) ) {\n this.strategy = 'nodrop';\n }\n\n this.DragIndicator.hide();\n\n if ( this.strategy !== 'nodrop' ) {\n Dom.find(this.rootNode.$el).addClass('n-dragover');\n } else {\n Dom.find(this.rootNode.$el).removeClass('n-dragover');\n }\n\n if ( this.strategy === 'nodrop' ) {\n Dom.find(this.rootNode.$el).addClass('n-nodrop');\n } else {\n Dom.find(this.rootNode.$el).removeClass('n-nodrop');\n }\n\n this.frames = Date.now();\n }\n\n onDragleaveRoot(event)\n {\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n }\n\n onDragendRoot(event)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n\n if ( this.strategy !== 'root' ) {\n return;\n }\n\n Event.fire('NDrag:end');\n }\n\n onDragdropRoot(event)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n\n if ( this.strategy !== 'root' ) {\n return;\n }\n\n event.preventDefault();\n\n this.moveNodes(null, this.strategy);\n\n Event.fire('NDrag:drop');\n }\n\n bindDragstart(group, cache)\n {\n if ( Arr.has(this.rootNode.allowGroups, group) ) {\n this.cacheNodes = JSON.parse(JSON.stringify(cache));\n }\n }\n\n bindDragend()\n {\n this.dragcount = {};\n\n this.cacheNodes = this.dropNodes = [];\n }\n\n bindDragdrop(...args)\n {\n if ( !this.dropNodes.length ) {\n return;\n }\n\n this.rootNode.tempSelected = [];\n\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected);\n\n if ( !this.rootNode.removeNode ) {\n return;\n }\n\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n this.unlinkNodes(clone);\n this.removeNodes(clone);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n onDragstartNode(event, node)\n {\n if ( !this.rootNode.isSelected(node) ) {\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected = [node.uid]);\n }\n\n let cache = Arr.each(this.rootNode.tempSelected, (id) => {\n return Arr.find(this.rootNode.virtuals, { [this.rootNode.uniqueProp]: id });\n });\n\n window.DragCounter.get(event, cache.length);\n\n Arr.map(cache, (value) => {\n return { value, item: Obj.get(this.rootNode, value.route) };\n });\n\n Event.fire('NDrag:start', this.rootNode.group,\n this.dropNodes = cache);\n\n window.DragCache = [\n this.rootNode.group, this.dropNodes\n ];\n\n this.dragcount[node.uid] = 0;\n }\n\n onDragenterNode(event, node)\n {\n event.preventDefault();\n\n if ( !this.dragcount[node.uid] ) {\n this.dragcount[node.uid] = 0;\n }\n\n this.dragcount[node.uid] ++;\n }\n\n onDragoverNode(event, node)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n event.preventDefault();\n\n if ( this.frames && Date.now() - this.frames < 45 ) {\n return;\n }\n\n let safezone = this.rootNode\n .safezone(node.$el.clientHeight);\n\n this.strategy = this.DragIndicator\n .resolve(event, safezone, node.$el);\n\n let targetNode = {\n value: node.value, item: node.item\n };\n\n let allowDrop = this.rootNode.allowDrop;\n\n if ( !Any.isFunction(allowDrop) ) {\n allowDrop = () => this.rootNode.allowDrop;\n }\n\n let rainbow = Arr.each(this.cacheNodes, (node) => {\n return !!allowDrop(node, targetNode, this.strategy);\n });\n\n let isInSelf = Arr.has(node.value.cascade,\n this.rootNode.tempSelected);\n\n rainbow.push(!isInSelf);\n\n if ( Arr.has(rainbow, false) ) {\n this.strategy = 'nodrop';\n }\n\n if ( this.strategy === 'nodrop' ) {\n this.DragIndicator.hide();\n }\n\n if ( this.strategy !== 'nodrop' ) {\n Dom.find(node.$el).addClass('n-dragover');\n Dom.find(node.$el).removeClass('n-nodrop');\n }\n\n if ( this.strategy === 'nodrop' ) {\n Dom.find(node.$el).removeClass('n-dragover');\n Dom.find(node.$el).addClass('n-nodrop');\n }\n\n this.frames = Date.now();\n }\n\n onDragleaveNode(event, node)\n {\n this.dragcount[node.uid] --;\n\n if ( this.dragcount[node.uid] !== 0 ) {\n return;\n }\n\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n }\n\n onDragendNode(event, node)\n {\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n Event.fire('NDrag:end');\n\n window.DragCache = null;\n }\n\n onDragdropNode(event, node)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n if ( this.strategy === 'nodrop' ) {\n return;\n }\n\n event.preventDefault();\n\n this.moveNodes(node, this.strategy);\n\n Event.fire('NDrag:drop');\n }\n\n bindNode(node)\n {\n if ( this.childNodes[node.uid] ) {\n this.unbindNode(node);\n }\n\n let $handle = Dom.find(node.$el);\n\n if ( this.rootNode.handle ) {\n $handle = $handle.find('[draggable]');\n }\n\n let $el = Dom.find(node.$el);\n\n $handle.on('dragstart', (event) => {\n this.onDragstartNode(event, node);\n });\n\n $el.on('dragenter', (event) => {\n this.onDragenterNode(event, node);\n });\n\n $el.on('dragover', (event) => {\n this.onDragoverNode(event, node);\n });\n\n $el.on('dragleave', (event) => {\n this.onDragleaveNode(event, node);\n });\n\n $el.on('dragend', (event) => {\n this.onDragendNode(event, node);\n });\n\n $el.on('drop', (event) => {\n this.onDragdropNode(event, node);\n });\n\n $el.on('dragdrop', (event) => {\n this.onDragdropNode(event, node);\n });\n\n this.childNodes[node.uid] = node;\n }\n\n unbindNode(node)\n {\n let $handle = Dom.find(node.$el);\n\n if ( this.rootNode.handle ) {\n $handle = $handle.find('[draggable]');\n }\n\n $handle.off('dragstart');\n\n let $el = Dom.find(node.$el);\n\n $el.off([\n 'dragenter',\n 'dragover',\n 'dragleave',\n 'dragend',\n 'drop',\n 'dragdrop',\n ]);\n\n $el.removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n delete this.childNodes[node.uid];\n }\n\n moveNodes(target, strategy) {\n\n if ( this.rootNode.items !== undefined ) {\n return this.moveNodesMany(target, strategy);\n }\n\n if ( this.rootNode.item !== undefined ) {\n return this.moveNodesOne(target, strategy);\n }\n\n return null;\n }\n\n moveNodesOne(target, strategy)\n {\n let clone = {\n items: [Obj.clone(this.rootNode.item)]\n };\n\n if ( this.rootNode.insertNode ) {\n clone = this.moveNodesRoot(clone, target);\n }\n\n if ( this.rootNode.removeNode ) {\n clone = this.removeNodes(clone);\n }\n\n let sources = Arr.each(this.cacheNodes, (node) => {\n return node.item[this.rootNode.uniqueProp];\n });\n\n let source = Arr.first(this.cacheNodes);\n\n this.rootNode.$emit('move', Obj.get(source, 'value.id'),\n Obj.get(target, 'uid'), strategy);\n\n this.rootNode.$emit('moveRaw',\n source, target, strategy);\n\n this.rootNode.$emit('update:item',\n Obj.get(source, 'item'));\n }\n\n moveNodesMany(target, strategy)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n if ( this.rootNode.removeNode ) {\n this.unlinkNodes(clone);\n }\n\n if ( !this.dropNodes.length ) {\n Arr.each(this.cacheNodes, (value, key) => {\n this.cacheNodes[key]['item'] = this.rootNode.transformDrop(value.item);\n });\n }\n\n if ( this.rootNode.insertNode && strategy === 'root' ) {\n clone = this.moveNodesRoot(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'inner' ) {\n clone = this.moveNodesInto(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'before' ) {\n clone = this.moveNodesBefore(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'after' ) {\n clone = this.moveNodesAfter(clone, target);\n }\n\n if ( this.rootNode.removeNode ) {\n clone = this.removeNodes(clone);\n }\n\n let sources = Arr.each(this.cacheNodes, (node) => {\n return node.item[this.rootNode.uniqueProp];\n });\n\n this.dropNodes = this.rootNode.tempSelected = [];\n\n let eventName = 'move';\n\n if ( Arr.has(window.dragMods, 18) ) {\n eventName = 'moveAlt';\n }\n\n if ( Arr.has(window.dragMods, 17) ) {\n eventName = 'moveCtrl';\n }\n\n if ( Arr.has(window.dragMods, 91) ) {\n eventName = 'moveMeta';\n }\n\n this.rootNode.$emit(eventName, sources,\n Obj.get(target, 'uid'), strategy);\n\n this.rootNode.$emit(eventName + 'Raw',\n this.cacheNodes, target, strategy);\n\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n unlinkNodes(clone)\n {\n Arr.each(this.dropNodes, (node) => {\n Obj.set(clone, node.value.route, null);\n });\n }\n\n removeNodes(clone, prop = 'items')\n {\n clone[prop] = Arr.filter(clone[prop], (node) => {\n return !!node;\n });\n\n Arr.map(clone[prop], (node) => {\n\n if ( !node[this.rootNode.childProp] ) {\n return node;\n }\n\n return this.removeNodes(node,\n this.rootNode.childProp);\n });\n\n return clone;\n }\n\n moveNodesRoot(clone)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n Arr.each(this.cacheNodes, (node) => {\n clone.items.push(node.item);\n });\n\n return clone;\n }\n\n moveNodesInto(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = [\n target.value.route,\n this.rootNode.childProp\n ].join('.');\n\n let children = Obj.get(clone,\n targetRoute, []);\n\n Arr.each(this.cacheNodes, (node) => {\n children.push(node.item);\n });\n\n Obj.set(clone, targetRoute, children);\n\n return clone;\n }\n\n moveNodesBefore(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = target.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n Arr.each(this.cacheNodes, (node, index) => {\n items.splice(target.value.index + index, 0, node.item);\n });\n\n Obj.set(clone, targetRoute, items);\n\n return clone;\n }\n\n moveNodesAfter(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = target.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n Arr.each(this.cacheNodes, (node, index) => {\n items.splice(target.value.index + index + 1, 0, node.item);\n });\n\n Obj.set(clone, targetRoute, items);\n\n return clone;\n }\n\n copyNode(node)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n let targetRoute = node.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n let target = Obj.except(node.item, [], {\n [this.rootNode.uniqueProp]: UUID()\n });\n\n items.splice(node.value.index + 1,\n 0, target);\n\n Obj.set(clone, targetRoute, items);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n removeNode(node)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n let targetRoute = node.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n items.splice(node.value.index, 1);\n\n Obj.set(clone, targetRoute, items);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n reduce(items, ...props)\n {\n return Arr.reduce(items, (merge, item, index) =>\n this.reduceItem(merge, item, Num.int(index), ...props), []);\n }\n\n reduceItem(merge, item, index, depth = 0, route = 'items', cascades = [])\n {\n // Get a unique id\n let unique = Obj.get(item,\n this.rootNode.uniqueProp, UUID());\n\n // Add unique to cascader\n let tempCascade = Arr.merge(cascades,\n [unique]);\n\n let virtual = {\n index: index,\n depth: depth,\n route: [route, index].join('.'),\n parent: Arr.last(cascades),\n cascade: tempCascade,\n };\n\n virtual[this.rootNode.uniqueProp] = unique;\n\n let children = Obj.get(item,\n this.rootNode.childProp, []);\n\n if ( Any.isEmpty(children) ) {\n return Arr.merge(merge, [virtual]);\n }\n\n let childRoute = [\n route, index,\n this.rootNode.childProp\n ].join('.');\n\n let props = [\n depth + 1, childRoute, tempCascade\n ]\n\n return Arr.merge(merge, [virtual],\n this.reduce(children, ...props));\n }\n\n}\n\nexport default NDraghandler;","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDraglist',\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n }\n },\n\n expanded: {\n default()\n {\n return [];\n }\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n safezone: {\n default()\n {\n return (height) => height * 0.265;\n }\n },\n\n lazyload: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 34;\n },\n type: [Number]\n },\n\n itemOffset: {\n default()\n {\n return 30;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderSelect: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderExpand: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NDraggable: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(),\n modifier: [],\n virtuals: [], \n visible: [], \n childNodes: {}, \n highlight: [],\n firstSelected: null,\n lastSelected: null,\n tempCurrent: this.current, \n tempExpanded: this.expanded, \n tempSelected: this.selected\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n\n Dom.find(window).on('keydown',\n this.watchModifierDown, this._.uid);\n\n Dom.find(window).on('keyup',\n this.watchModifierUp, this._.uid);\n },\n\n mounted()\n {\n let frame = this.$refs.virtualscroller.\n $refs.inner;\n\n this.drag.bindRoot(frame);\n\n this.$watch('tempSelected', this.watchSelected, \n { deep: true });\n\n this.refreshVirtuals();\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n\n Dom.find(document).off('keydown', null, this.uid);\n Dom.find(document).off('keyup', null, this.uid);\n },\n\n watch: {\n \n items()\n {\n if ( this.scrollTopOnChange ) {\n this.scrollTo();\n }\n\n this.refreshVirtuals();\n },\n\n virtuals()\n {\n this.filterVirtuals();\n },\n\n expanded(value)\n {\n this.tempExpanded = value;\n\n this.filterVirtuals();\n },\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n current(value)\n {\n this.tempCurrent = value;\n }\n\n },\n\n methods: {\n\n watchModifierDown(e)\n {\n Arr.add(this.modifier, e.which);\n },\n\n watchModifierUp(e)\n {\n Arr.remove(this.modifier, e.which);\n },\n\n watchSelected()\n {\n if ( ! this.tempSelected.length ) {\n return this.firstSelected = null;\n }\n\n this.firstSelected = Arr.find(this.virtuals, {\n [this.uniqueProp]: this.tempSelected[0]\n });\n },\n\n updateNode(node)\n {\n Obj.set(this, node.value.route, node.item);\n\n this.$emit('update:items', this.items);\n },\n\n findVirtual(unique)\n {\n let value = Arr.find(this.virtuals, (item) => {\n return item[this.uniqueProp] === unique;\n });\n\n if ( ! value ) {\n return null;\n }\n\n return {\n value, item: Obj.get(this, value.route, null)\n };\n },\n\n refreshVirtuals()\n {\n this.virtuals = this.drag.reduce(this.items);\n\n if ( window.DEBUG_NDLIST ) {\n console.log('Total virtual items mounted: ' + this.virtuals.length);\n }\n },\n\n filterVirtuals()\n {\n this.visible = Arr.filter(this.virtuals, (node) => {\n return Arr.contains(this.tempExpanded, node.cascade.slice(0, -1));\n });\n },\n\n getIndex(unique)\n {\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: unique\n });\n },\n\n getCurrentIndex()\n {\n if ( ! this.tempCurrent ) {\n return -1;\n }\n\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n },\n\n scrollTo(x = 0, y = 0)\n {\n if ( ! this.$refs.virtualscroller ) {\n return Any.delay(() => this.scrollTo(x, y));\n }\n\n this.$refs.virtualscroller.scrollTo(x, y);\n },\n\n scrollToIndex(index)\n {\n if ( ! this.$refs.virtualscroller ) {\n return Any.delay(() => this.scrollToIndex(index));\n }\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isDraggable(node)\n {\n let canDrag = this.allowDrag;\n\n if ( ! Any.isFunction(canDrag) ) {\n canDrag = () => this.allowDrag;\n }\n\n return canDrag(node);\n },\n\n isHighlight(node)\n {\n return Arr.has(this.highlight, node.value[this.uniqueProp]);\n },\n\n highlightNode(value, key = null)\n {\n clearTimeout(this.refresh);\n\n // Clear highlight items\n this.highlight = [];\n\n Arr.recursive(this.items, this.childProp, (node, cascade) => {\n\n let val = node;\n\n if ( !Any.isEmpty(key) ) {\n val = Obj.get(val, key);\n }\n\n if ( ! Any.isFunction(value) ) {\n value = (val) => val === value;\n }\n\n if ( ! value(val) ) {\n return;\n }\n\n Arr.each(cascade, (item) => {\n Arr.add(this.tempExpanded, item[this.uniqueProp]);\n });\n\n Arr.add(this.highlight, node[this.uniqueProp]);\n });\n\n if ( ! this.highlight.length ) {\n return;\n }\n\n this.$nextTick(this.scrollToHighlight);\n \n this.refresh = setTimeout(() =>\n this.highlight = [], this.highlightTimeout);\n \n this.filterVirtuals();\n },\n\n scrollToHighlight()\n {\n if ( ! this.highlight.length ) {\n return;\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: Arr.first(this.highlight)\n });\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isCurrent(node)\n {\n return this.renderCurrent && this.tempCurrent && \n node.value[this.uniqueProp] === this.tempCurrent[this.uniqueProp] ;\n },\n\n setCurrent(node)\n {\n let isSameNode = this.tempCurrent && \n this.tempCurrent[this.uniqueProp] === node.value[this.uniqueProp];\n\n if ( isSameNode ) {\n return;\n }\n\n this.$emit('update:current', \n this.tempCurrent = node.item);\n \n Event.fire('NDraglist:syncCurrent', node.item, this.uid);\n },\n\n setRawCurrent(index)\n {\n let route = Obj.get(this.visible, \n [index, 'route']);\n\n if ( ! route ) {\n return this.setRawCurrent(0);\n }\n\n let item = Obj.get(this, route);\n\n this.$refs.virtualscroller\n .scrollIntoView(index);\n\n this.$emit('update:current', \n this.tempCurrent = item);\n \n Event.fire('NDraglist:syncCurrent', item, this.uid);\n },\n\n setNextCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = 0;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index++;\n }\n\n if ( index >= this.visible.length ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n setPrevCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = this.visible.length - 1;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index--;\n }\n\n if ( index < 0 ) {\n index = reset;\n }\n \n this.setRawCurrent(index);\n },\n\n syncCurrent()\n {\n return ['NDraglist:syncCurrent', this.uid];\n },\n\n isDisabled(node)\n {\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n return ! canSelect(node) || (this.firstSelected &&\n node.value.depth !== this.firstSelected.depth);\n },\n\n hasChildren(node)\n {\n return !! this.getChildren(node).length;\n },\n\n getChildren(node)\n {\n return Obj.get(node.item, this.childProp, []);\n },\n\n isExpanded(node)\n {\n return Arr.has(this.tempExpanded, node.value[this.uniqueProp]);\n },\n\n expandItem(node)\n {\n if ( ! this.hasChildren(node) ) {\n return;\n }\n\n Arr.toggle(this.tempExpanded, node.value[this.uniqueProp]);\n\n this.filterVirtuals();\n },\n\n expandCurrent()\n {\n if ( ! this.tempCurrent ) {\n return;\n }\n\n let children = Obj.get(this.tempCurrent, \n this.childProp);\n\n if ( Any.isEmpty(children) ) {\n return;\n }\n\n Arr.toggle(this.tempExpanded, \n this.tempCurrent[this.uniqueProp]);\n\n this.filterVirtuals();\n },\n\n isSelected(node)\n {\n return Arr.has(this.tempSelected, node.value[this.uniqueProp]);\n },\n\n isTotalSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length === this.tempSelected;\n },\n\n isInterSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length !== this.tempSelected &&\n this.tempSelected;\n },\n\n toggleSingleNode(node)\n {\n Arr.toggle(this.tempSelected, this.lastSelected =\n node.value[this.uniqueProp]);\n },\n\n toggleRangeNode(node)\n {\n let indexies = [0, -1], reversed = false;\n\n if ( ! Any.isEmpty(this.lastSelected) ) {\n indexies[1] = this.getIndex(this.lastSelected);\n }\n\n indexies[0] = this.getIndex(node.value[this.uniqueProp]);\n\n if ( indexies[1] > indexies[0] ) {\n reversed = true;\n }\n\n if ( ! reversed ) {\n indexies = [indexies[1]+1, indexies[0]+1];\n }\n\n Arr.each(this.items.slice(indexies[0], indexies[1]), (item, index) => {\n Arr.toggle(this.tempSelected, item[this.uniqueProp]);\n });\n\n this.lastSelected = node.value[this.uniqueProp];\n },\n\n selectItem(node)\n {\n if ( this.isDisabled(node) ) {\n return;\n }\n\n ! Arr.has(this.modifier, 16) || this.renderExpand ?\n this.toggleSingleNode(node) : this.toggleRangeNode(node);\n\n this.$emit('update:selected', this.tempSelected);\n },\n\n selectAll()\n {\n let result = Arr.filter(this.visible, (item) => {\n\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n let row = {\n value: item, item: Obj.get(this, item.route)\n };\n\n return ! item.depth && canSelect(row);\n });\n\n let indexies = Arr.each(result, (item) => {\n return item[this.uniqueProp];\n });\n\n if ( indexies.length === this.tempSelected.length ) {\n return this.$emit('update:selected', this.tempSelected = []);\n }\n\n this.lastSelected = null;\n\n this.$emit('update:selected', this.tempSelected = indexies);\n },\n\n unselectAll()\n {\n if ( this.tempSelected.length ) {\n this.$emit('update:selected', this.tempSelected = []);\n }\n },\n\n bindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).on('keydown', \n this.onKeydown, this.uid)\n },\n\n unbindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).off('keydown', \n null, this.uid)\n },\n\n onKeydown(event, el)\n {\n if ( Dom.find(el).closest('input') ) {\n return;\n }\n\n if ( event.which === 32 ) {\n event.preventDefault();\n event.stopPropagation();\n this.expandCurrent();\n }\n\n if ( event.which === 38 ) {\n event.preventDefault();\n event.stopPropagation();\n this.setPrevCurrent();\n }\n\n if ( event.which === 40 ) {\n event.preventDefault();\n event.stopPropagation();\n this.setNextCurrent();\n }\n }\n\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-draglist__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entries') }\n </NEmptyIcon>\n );\n },\n\n renderItem(props)\n {\n return (\n <NDraglistItem {...Obj.except(props, ['index'])}>\n { { default: this.$slots.default } }\n </NDraglistItem>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draglist',\n 'n-draglist--' + this.size,\n 'n-draglist--' + this.type\n ];\n\n if ( ! this.items.length ) {\n classList.push('n-empty');\n }\n\n let passed = [\n 'threshold', 'bufferItems', 'itemHeight', \n 'overflowX', 'overflowY', 'offsetX', 'offsetY', 'useKeys'\n ];\n\n let props = Obj.only(this.$props, passed, {\n items: this.visible,\n onMouseenter: this.bindKeydown,\n onMouseleave: this.unbindKeydown\n });\n\n return (\n <NVirtualscroller ref=\"virtualscroller\" class={classList} {...props}>\n { { default: this.ctor('renderItem'), empty: this.ctor('renderEmpty') } }\n </NVirtualscroller>\n );\n }\n\n}\n","import { Str, Obj, Arr, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDraglistItem',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n \n },\n\n provide()\n {\n return {\n NDraggableItem: this\n };\n },\n\n props: {\n\n value: {\n required: true\n },\n\n },\n\n computed: {\n\n uid()\n {\n return Obj.get(this.value, this.NDraggable.uniqueProp);\n },\n\n item()\n {\n return Obj.get(this.NDraggable, this.value.route);\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n init: ! this.NDraggable.lazyload\n };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => {\n\n if ( this.NDraggable.draggable ) {\n this.timer = setTimeout(() => {\n this.NDraggable.drag.bindNode(this);\n }, 10);\n }\n\n this.init = true;\n }, 5);\n },\n\n beforeUnmount()\n {\n clearTimeout(this.timer);\n\n this.NDraggable.drag.unbindNode(this);\n },\n\n methods: {\n\n copy()\n {\n return this.NDraggable.drag.copyNode(this);\n },\n\n remove()\n {\n return this.NDraggable.drag.removeNode(this);\n },\n\n hasChildren()\n {\n return this.NDraggable.hasChildren(this);\n },\n\n isDisabled()\n {\n return this.NDraggable.isDisabled(this);\n },\n\n isHighlight()\n {\n return this.NDraggable.isHighlight(this);\n },\n\n isCurrent()\n {\n return this.NDraggable.isCurrent(this);\n },\n\n isDraggable()\n {\n return this.NDraggable.isDraggable(this);\n },\n\n isExpanded()\n {\n return this.NDraggable.isExpanded(this);\n },\n\n expandItem()\n {\n this.NDraggable.expandItem(this);\n },\n\n isSelected()\n {\n return this.NDraggable.isSelected(this);\n },\n\n selectItem()\n {\n this.NDraggable.selectItem(this);\n },\n\n onClick(event)\n {\n let isExpand = Dom.find(event.target)\n .closest('.n-draglist-item__expand');\n\n if ( isExpand ) {\n return;\n }\n\n this.NDraggable.setCurrent(this);\n\n if ( Arr.has(window.keyMods, 91) ) {\n this.NDraggable.selectItem(this);\n }\n\n this.NDraggable.$emit('row-click', this);\n },\n\n onDblclick()\n {\n this.NDraggable.setCurrent(this);\n\n this.NDraggable.$emit('row-dblclick', this);\n }\n\n },\n\n renderElement()\n {\n let classList = [\n 'n-draglist-item__element'\n ];\n\n if ( ! this.init ) {\n return (<div class={classList} />);\n }\n\n let props = {\n value: this.value,\n item: this.item,\n copy: this.copy,\n remove: this.remove,\n };\n\n let renderFunction = this.$slots.default;\n\n if ( this.NDraggable.renderNode ) {\n renderFunction = this.NDraggable.renderNode;\n }\n\n return (\n <div class={classList}>\n { renderFunction(props) }\n </div>\n );\n },\n\n renderSpacer()\n {\n let width = this.value.depth * \n this.NDraggable.itemOffset;\n\n if ( ! width ) {\n return null;\n }\n\n let style = {\n width: width + 'px'\n };\n\n return (\n <div class=\"n-draglist-item__spacer\" style={style}>\n { /* SPACER */ }\n </div>\n );\n },\n\n renderHandle()\n {\n if ( ! this.NDraggable.renderHandle ) {\n return null;\n }\n\n let props = {};\n\n if ( this.NDraggable.draggable && this.isDraggable() ) {\n props.draggable = true;\n }\n\n return (\n <div class=\"n-draglist-item__handle\" {...props}>\n <div class=\"n-draglist-item__ellipsis\">\n <i class={ nano.Icons.handle }></i>\n </div>\n </div>\n );\n },\n\n renderExpand()\n {\n if ( ! this.NDraggable.renderExpand ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.expandItem\n };\n\n return (\n <div class=\"n-draglist-item__expand\" {...props}>\n <div class=\"n-draglist-item__angle\">\n <i class={ nano.Icons.angleRight }></i>\n </div>\n </div>\n );\n },\n\n renderSelect()\n {\n if ( ! this.NDraggable.renderSelect ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.selectItem\n };\n\n return (\n <div class=\"n-draglist-item__select\" {...props}>\n <div class=\"n-draglist-item__checkbox\">\n <i class={ nano.Icons.checked }></i>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draglist-item'\n ];\n\n if ( this.hasChildren() ) {\n classList.push('n-children');\n }\n\n if ( this.isDisabled() ) {\n classList.push('n-disabled');\n }\n\n if ( this.isSelected() ) {\n classList.push('n-selected');\n }\n\n if ( this.isExpanded() ) {\n classList.push('n-expanded');\n }\n\n if ( this.isCurrent() ) {\n classList.push('n-current');\n }\n\n if ( this.isHighlight() ) {\n classList.push('n-highlight');\n }\n\n let props = {\n onClick: this.onClick,\n onDblclick: this.onDblclick,\n };\n\n if ( this.NDraggable.draggable && ! this.NDraggable.handle && this.isDraggable() ) {\n props.draggable = true;\n }\n\n props['data-unique'] = this.value[this.NDraggable.uniqueProp];\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHandle')() }\n { this.ctor('renderSpacer')() }\n { this.ctor('renderExpand')() }\n { this.ctor('renderSelect')() }\n { this.ctor('renderElement')() }\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDraggrid',\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n }\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n safezone: {\n default()\n {\n return (height) => -1;\n }\n },\n\n lazyload: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 200;\n },\n type: [Number]\n },\n\n itemWidth: {\n default()\n {\n return 150;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n deathzone: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderSelect: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NDraggable: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(),\n virtuals: [],\n visible: [],\n childNodes: {},\n highlight: [],\n firstSelected: null,\n tempCurrent: this.current,\n tempExpanded: this.expanded,\n tempSelected: this.selected\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n },\n\n mounted()\n {\n let frame = this.$refs.virtualscroller.\n $refs.inner;\n\n this.drag.bindRoot(frame);\n\n this.$watch('tempSelected', this.watchSelected,\n { deep: true });\n\n this.refreshVirtuals();\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n\n Dom.find(document).off('keydown', null, this.uid);\n },\n\n watch: {\n\n items()\n {\n if ( this.scrollTopOnChange ) {\n this.scrollTo();\n }\n\n this.refreshVirtuals();\n },\n\n virtuals()\n {\n this.filterVirtuals();\n },\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n current(value)\n {\n this.tempCurrent = value;\n }\n\n },\n\n methods: {\n\n watchSelected()\n {\n if ( ! this.tempSelected.length ) {\n return this.firstSelected = null;\n }\n\n this.firstSelected = Arr.find(this.virtuals, {\n [this.uniqueProp]: this.tempSelected[0]\n });\n },\n\n refreshVirtuals()\n {\n this.virtuals = this.drag.reduce(this.items);\n\n if ( window.DEBUG_NDLIST ) {\n console.log('Total virtual items mounted: ' + this.virtuals.length);\n }\n },\n\n filterVirtuals()\n {\n this.visible = Arr.filter(this.virtuals, (node) => {\n return node.depth === 0;\n });\n },\n\n getIndex(unique)\n {\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: unique\n });\n },\n\n getCurrentIndex()\n {\n if ( ! this.tempCurrent ) {\n return -1;\n }\n\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n },\n\n scrollTo(x = 0, y = 0)\n {\n this.$refs.virtualscroller.scrollTo(x, y);\n },\n\n scrollToIndex(index)\n {\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isDraggable(node)\n {\n let canDrag = this.allowDrag;\n\n if ( ! Any.isFunction(canDrag) ) {\n canDrag = () => this.allowDrag;\n }\n\n return canDrag(node);\n },\n\n isHighlight(node)\n {\n return Arr.has(this.highlight, node.value[this.uniqueProp]);\n },\n\n highlightNode(value, key = null)\n {\n clearTimeout(this.refresh);\n\n // Clear highlight items\n this.highlight = [];\n\n Arr.recursive(this.items, this.childProp, (node, cascade) => {\n\n if ( Obj.get(node, key || this.uniqueProp) !== value ) {\n return;\n }\n\n Arr.each(cascade, (item) => {\n Arr.add(this.tempExpanded, item[this.uniqueProp]);\n });\n\n Arr.add(this.highlight, node[this.uniqueProp]);\n });\n\n if ( ! this.highlight.length ) {\n return;\n }\n\n this.$nextTick(this.scrollToHighlight);\n\n this.refresh = setTimeout(() =>\n this.highlight = [], this.highlightTimeout);\n\n this.filterVirtuals();\n },\n\n scrollToHighlight()\n {\n if ( ! this.highlight.length ) {\n return;\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: Arr.first(this.highlight)\n });\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isCurrent(node)\n {\n return this.renderCurrent && this.tempCurrent &&\n node.value[this.uniqueProp] === this.tempCurrent[this.uniqueProp] ;\n },\n\n setCurrent(node)\n {\n let isSameNode = this.tempCurrent &&\n this.tempCurrent[this.uniqueProp] === node.value[this.uniqueProp];\n\n if ( isSameNode ) {\n return;\n }\n\n this.$emit('update:current',\n this.tempCurrent = node.item);\n\n Event.fire('NDraggrid:syncCurrent', node.item, this.uid);\n },\n\n setRawCurrent(index)\n {\n let route = Obj.get(this.visible,\n [index, 'route']);\n\n if ( ! route ) {\n return this.setRawCurrent(0);\n }\n\n let item = Obj.get(this, route);\n\n this.$refs.virtualscroller\n .scrollIntoView(index);\n\n this.$emit('update:current',\n this.tempCurrent = item);\n\n Event.fire('NDraggrid:syncCurrent', item, this.uid);\n },\n\n setNextCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = 0;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index++;\n }\n\n if ( index >= this.visible.length ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n setPrevCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = this.visible.length - 1;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index--;\n }\n\n if ( index < 0 ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n syncCurrent()\n {\n return ['NDraggrid:syncCurrent', this.uid];\n },\n\n isDisabled(node)\n {\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n return ! canSelect(node) || (this.firstSelected &&\n node.value.depth !== this.firstSelected.depth);\n },\n\n isSelected(node)\n {\n return Arr.has(this.tempSelected, node.value[this.uniqueProp]);\n },\n\n isTotalSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length === this.tempSelected;\n },\n\n isInterSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length !== this.tempSelected &&\n this.tempSelected;\n },\n\n selectItem(node)\n {\n if ( this.isDisabled(node) ) {\n return;\n }\n\n Arr.toggle(this.tempSelected, node.value[this.uniqueProp]);\n\n this.$emit('update:selected', this.tempSelected);\n },\n\n selectAll()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n let indexies = Arr.each(visible, (item) => {\n return item[this.uniqueProp];\n });\n\n if ( indexies.length === this.tempSelected.length ) {\n return this.$emit('update:selected', this.tempSelected = []);\n }\n\n this.$emit('update:selected', this.tempSelected = indexies);\n },\n\n unselectAll()\n {\n if ( this.tempSelected.length ) {\n this.$emit('update:selected', this.tempSelected = []);\n }\n },\n\n bindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).on('keydown',\n this.onKeydown, this.uid)\n },\n\n unbindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).off('keydown',\n null, this.uid)\n },\n\n onKeydown(event, el)\n {\n if ( Dom.find(el).closest('input') ) {\n return;\n }\n\n if ( event.which === 38 ) {\n event.preventDefault();\n event.stopPropagation();\n // this.setPrevCurrent();\n }\n\n if ( event.which === 40 ) {\n event.preventDefault();\n event.stopPropagation();\n // this.setNextCurrent();\n }\n }\n\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-draggrid__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entries') }\n </NEmptyIcon>\n );\n },\n\n renderItem(props)\n {\n return (\n <NDraggridItem {...Obj.except(props, ['index'])}>\n { { default: this.$slots.default } }\n </NDraggridItem>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draggrid',\n 'n-draggrid--' + this.size,\n 'n-draggrid--' + this.type\n ];\n\n if ( ! this.items.length ) {\n classList.push('n-empty');\n }\n\n let passed = [\n 'threshold', 'deathzone', 'itemHeight', 'itemWidth',\n 'overflowX', 'overflowY', 'offsetX', 'offsetY', 'useKeys'\n ];\n\n let props = Obj.only(this.$props, passed, {\n items: this.visible,\n onMouseenter: this.bindKeydown,\n onMouseleave: this.unbindKeydown\n });\n\n return (\n <NVirtualscroller ref=\"virtualscroller\" class={classList} {...props}>\n { { default: this.ctor('renderItem'), empty: this.ctor('renderEmpty') } }\n </NVirtualscroller>\n );\n }\n\n}\n","import { Str, Arr, Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDraggridItem',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NDraggableItem: this\n };\n },\n\n props: {\n\n value: {\n required: true\n }\n\n },\n\n computed: {\n\n uid()\n {\n return Obj.get(this.value, this.NDraggable.uniqueProp);\n },\n\n item()\n {\n return Obj.get(this.NDraggable, this.value.route);\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n init: ! this.NDraggable.lazyload\n };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => {\n\n if ( this.NDraggable.draggable ) {\n this.timer = setTimeout(() => {\n this.NDraggable.drag.bindNode(this);\n }, 50);\n }\n\n this.init = true;\n }, 40);\n },\n\n beforeUnmount()\n {\n if ( ! this.init ) {\n clearTimeout(this.timer);\n }\n\n this.NDraggable.drag.unbindNode(this);\n },\n\n methods: {\n\n copy()\n {\n return this.NDraggable.drag.copyNode(this);\n },\n\n remove()\n {\n return this.NDraggable.drag.removeNode(this);\n },\n\n isDisabled()\n {\n return this.NDraggable.isDisabled(this);\n },\n\n isHighlight()\n {\n return this.NDraggable.isHighlight(this);\n },\n\n isCurrent()\n {\n return this.NDraggable.isCurrent(this);\n },\n\n isDraggable()\n {\n return this.NDraggable.isDraggable(this);\n },\n\n isSelected()\n {\n return this.NDraggable.isSelected(this);\n },\n\n selectItem()\n {\n this.NDraggable.selectItem(this);\n },\n\n onClick()\n {\n this.NDraggable.setCurrent(this);\n\n if ( Arr.has(window.keyMods, 91) ) {\n this.NDraggable.selectItem(this);\n }\n\n this.NDraggable.$emit('row-click', this);\n },\n\n onDblclick()\n {\n this.NDraggable.setCurrent(this);\n\n this.NDraggable.$emit('row-dblclick', this);\n }\n\n },\n\n renderElement()\n {\n let classList = [\n 'n-draglist-item__element'\n ];\n\n if ( ! this.init ) {\n return (<div class={classList} />);\n }\n\n let props = {\n value: this.value,\n item: this.item,\n copy: this.copy,\n remove: this.remove,\n };\n\n let renderFunction = this.$slots.default;\n\n if ( this.NDraggable.renderNode ) {\n renderFunction = this.NDraggable.renderNode;\n }\n\n return (\n <div class={classList}>\n {renderFunction(props)}\n </div>\n );\n },\n\n renderHandle()\n {\n if ( ! this.NDraggable.renderHandle ) {\n return null;\n }\n\n let props = {};\n\n if ( this.NDraggable.draggable && this.isDraggable() ) {\n props.draggable = true;\n }\n\n return (\n <div class=\"n-draggrid-item__handle\" {...props}>\n <div class=\"n-draggrid-item__ellipsis\">\n <i class={ nano.Icons.handle }></i>\n </div>\n </div>\n );\n },\n\n renderSelect()\n {\n if ( ! this.NDraggable.renderSelect ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.selectItem\n };\n\n return (\n <div class=\"n-draggrid-item__select\" {...props}>\n <div class=\"n-draggrid-item__checkbox\">\n <i class={ nano.Icons.checked }></i>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draggrid-item'\n ];\n\n if ( this.isDisabled() ) {\n classList.push('n-disabled');\n }\n\n if ( this.isSelected() ) {\n classList.push('n-selected');\n }\n\n if ( this.isCurrent() ) {\n classList.push('n-current');\n }\n\n if ( this.isHighlight() ) {\n classList.push('n-highlight');\n }\n\n let props = {\n onClick: this.onClick,\n onDblclick: this.onDblclick,\n };\n\n if ( this.NDraggable.draggable && ! this.NDraggable.handle && this.isDraggable() ) {\n props.draggable = true;\n }\n\n props['data-unique'] = this.value[this.NDraggable.uniqueProp];\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHandle')() }\n { this.ctor('renderSelect')() }\n { this.ctor('renderElement')() }\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDropzone',\n\n model: {\n prop: 'item'\n },\n\n props: {\n\n item: {\n default()\n {\n return null;\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n },\n\n provide()\n {\n return {\n NDropzone: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(),\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n },\n\n mounted()\n {\n this.drag.bindRoot(this.$el);\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n },\n\n renderItem()\n {\n if ( Any.isEmpty(this.item) ) {\n return null;\n }\n\n return this.$slots.default && this.$slots.default(this.item)\n },\n\n renderEmpty()\n {\n if ( ! Any.isEmpty(this.item) ) {\n return null;\n }\n\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-dropzone__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entry') }\n </NEmptyIcon>\n );\n },\n\n render()\n {\n let classList = [\n 'n-dropzone',\n 'n-dropzone--' + this.size,\n 'n-dropzone--' + this.type\n ];\n\n if ( Any.isEmpty(this.item) ) {\n classList.push('n-empty');\n }\n\n return (\n <div class={classList}>\n {[this.ctor('renderItem')(), this.ctor('renderEmpty')()]}\n </div>\n );\n }\n\n}\n","import { UUID, Num, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NLoader',\n\n inject: {\n\n NLoader: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NLoader: this\n };\n },\n\n props: {\n\n visible: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n minimum: {\n default()\n {\n return 120;\n },\n type: [Number]\n },\n\n debounce: {\n default()\n {\n return 120;\n },\n type: [Number]\n }\n\n },\n\n data()\n {\n return {\n tempVisible: this.visible\n };\n },\n\n methods: {\n\n applyTimer()\n {\n this.timing = Date.now();\n\n if ( this.visible) {\n return this.tempVisible = this.visible;\n }\n\n this.startTimer();\n },\n\n startTimer()\n {\n let timing = Date.now() - this.timing;\n\n if ( timing < this.minimum ) {\n return this.restartTimer(timing);\n }\n\n this.timeout = setTimeout(() => this.tempVisible = false, \n this.debounce);\n },\n\n restartTimer(timing = 0) {\n Any.delay(this.startTimer, this.minimum - timing + 10);\n }\n\n },\n\n watch: {\n\n visible()\n {\n this.applyTimer();\n }\n\n },\n\n mounted()\n {\n this.applyTimer();\n },\n\n render()\n {\n let classList = [\n 'n-loader', \n 'n-loader--' + this.size, \n 'n-loader--' + this.type\n ];\n\n if ( this.tempVisible ) {\n classList.push('n-load');\n }\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { UUID, Arr, Obj, Dom, Any, Str, Locale, Event, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NResizer',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n width: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n minWidth: {\n default()\n {\n return 60;\n },\n type: [Number]\n },\n\n maxWidth: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n group: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n position: {\n default()\n {\n return 'right';\n },\n type: [String]\n },\n\n resizerWidth: {\n default()\n {\n return 6;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window || \n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n sizeFixed: false,\n tempValue: this.modelValue,\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n },\n\n mounted()\n {\n if ( ! this.modelValue ) {\n this.updateWidth();\n }\n\n if ( this.NScrollbar ) {\n this.bindSizechange();\n }\n\n Event.bind('NResizer:move', (...args) => {\n this.forceWidth(...args)\n }, this._.uid);\n\n Dom.find(window).on('resize', Any.debounce((...args) => {\n this.onResize(...args)\n }, 500), this._.uid);\n },\n\n updated()\n {\n this.updateWidth();\n },\n\n unmounted()\n {\n if ( this.NScrollbar ) {\n this.unbindSizechange();\n }\n\n Event.unbind('NResizer:move', \n this._.uid);\n \n Dom.find(window).off('resize', \n null, this._.uid);\n },\n\n methods: {\n\n forceWidth(group)\n {\n if ( ! Arr.has(group, this.group) ) {\n return;\n }\n \n if ( ! this.tempValue || ! this.group.length ) {\n return;\n }\n\n this.sizeFixed = true;\n\n let style = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(style);\n },\n\n updateWidth()\n {\n let width = Dom.find(this.$el)\n .width();\n\n if ( width === this.tempValue ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = width);\n \n this.updateHandle();\n },\n\n updateHandle()\n {\n let style = {};\n\n if ( this.position === 'left' ) {\n style.transform =`translateX(-${this.tempValue - this.resizerWidth}px)`\n }\n \n if ( this.position === 'right' ) {\n style.transform = `translateX(${this.tempValue - this.resizerWidth}px)`\n }\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n bindSizechange()\n {\n Dom.find(this.NScrollbar.$el).on('resized', \n Any.debounce(this.updateWidth, 50), this._.uid);\n },\n\n unbindSizechange()\n {\n Dom.find(this.NScrollbar.$el)\n .off('resized', null, this._.uid);\n },\n\n\n onResize()\n {\n if ( this.NScrollbar ) {\n return;\n }\n\n this.updateWidth();\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onLeftMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if ( this.group.length ) {\n Event.fire('NResizer:move', this.group);\n }\n\n Dom.find(this.$el).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onLeftMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onLeftMousemove, 60), this._.uid);\n },\n\n onLeftMousemove(event)\n {\n this.clientX = (window.innerWidth - \n this.getTouchEvent(event).clientX);\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = (this.clientX + scrollX - offsetX) -\n (this.resizerWidth / 2);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth,\n this.minWidth - this.resizerWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth,\n this.maxWidth - this.resizerWidth);\n }\n\n let style = {\n transform: `translateX(-${targetWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n onLeftMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mouseup, null, this._.uid);\n Dom.find(document).off(this.mousemove, null, this._.uid);\n\n if ( ! this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = this.clientX + scrollX - offsetX;\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth, this.minWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth, this.maxWidth);\n }\n\n this.tempValue = Math.round(targetWidth);\n\n Dom.find(this.$el).removeClass('n-move');\n\n let style = {\n transform: `translateX(-${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n onRightMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if ( this.group.length ) {\n Event.fire('NResizer:move', this.group);\n }\n\n Dom.find(this.$el).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onRightMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onRightMousemove, 60), this._.uid);\n },\n\n onRightMousemove(event)\n {\n this.clientX = this.getTouchEvent(event).clientX;\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = (this.clientX + scrollX - offsetX) -\n (this.resizerWidth / 2);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth,\n this.minWidth - this.resizerWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth,\n this.maxWidth - this.resizerWidth);\n }\n\n let style = {\n transform: `translateX(${targetWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n onRightMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mousemove, null, this._.uid);\n Dom.find(document).off(this.mouseup, null, this._.uid);\n\n if ( ! this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = this.clientX + scrollX - offsetX;\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth, this.minWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth, this.maxWidth);\n }\n\n this.tempValue = Math.round(targetWidth);\n\n Dom.find(this.$el).removeClass('n-move');\n\n let style = {\n transform: `translateX(${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.$emit('update:modelValue', this.tempValue);\n }\n\n },\n\n renderHandle()\n {\n if ( this.disabled ) {\n return null;\n }\n \n let classList = [\n 'n-resizer__handle',\n ];\n\n let props = {};\n\n if ( this.position === 'right' ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onRightMousedown;\n }\n\n if ( this.position === 'left' ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onLeftMousedown;\n }\n\n if ( this.resizerWidth ) {\n props.width = this.resizerWidth + 'px';\n }\n\n return (\n <div ref=\"handle\" class={classList} {...props}/>\n );\n },\n\n render()\n {\n let classList = [\n 'n-resizer',\n 'n-resizer--' + this.position,\n ];\n\n let style = {};\n\n if ( this.width && ! this.tempValue ) {\n style['width'] = this.width + 'px';\n }\n\n if ( this.width ) {\n style['flex-basis'] = this.width + 'px';\n }\n\n if ( this.minWidth ) {\n style['min-width'] = this.minWidth + 'px';\n }\n\n if ( this.maxWidth ) {\n style['max-width'] = this.maxWidth + 'px';\n }\n\n return (\n <div class={classList} style={style}>\n { [this.$slots.default(), this.ctor('renderHandle')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Any, Dom, Event, UUID } from \"@kizmann/pico-js\";\n\n\nexport default {\n\n name: 'NPopover',\n\n provide()\n {\n return {\n NPopover: this\n };\n },\n\n inject: {\n\n NPopover: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n width: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n window: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-center';\n },\n type: [String]\n },\n\n scrollClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n multiClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n framerate: {\n default()\n {\n return 15;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window || \n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n tempValue: false,\n clientX: 0,\n clientY: 0,\n target: null,\n prevent: false,\n };\n },\n\n watch: {\n\n modelValue()\n {\n this.tempValue = this.modelValue;\n },\n\n tempValue()\n {\n Any.delay(this.refreshVisible, 50);\n }\n\n },\n\n beforeMount()\n {\n this.tempValue = this.modelValue;\n },\n\n mounted()\n {\n this.target = Dom.find(this.$el).previous().get(0);\n\n if ( this.trigger === 'context' ) {\n this.target = Dom.find(this.$el).parent().get(0);\n }\n\n if ( this.window ) {\n Dom.find(document.body).append(this.$el);\n }\n\n if ( this.listen && this.trigger === 'hover' ) {\n Dom.find(document.body).on('mousemove', \n Any.framerate(this.onHover, 30), this._.uid);\n }\n\n if ( this.listen && this.trigger === 'click' ) {\n Dom.find(document.body).on(this.mousedown, \n Any.framerate(this.onClick, 30), this._.uid);\n }\n\n if ( this.listen && this.trigger === 'context' ) {\n Dom.find(document.body).on('contextmenu', \n Any.framerate(this.onContext, 30), this._.uid);\n }\n\n Dom.find(document.body).on(this.mousedown, \n Any.framerate(this.onExit, 30), this._.uid);\n\n Event.bind('NPopover:close', this.onCloseEvent, this._.uid);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n\n Dom.find(document).off('mousemove', null, this._.uid);\n Dom.find(document).off('mousedown', null, this._.uid);\n Dom.find(document).off('contextmenu', null, this._.uid);\n\n Event.unbind('NPopover:close', this._.uid);\n \n },\n\n methods: {\n\n active()\n {\n return this.tempValue;\n },\n\n open()\n {\n this.$emit('update:modelValue', \n this.tempValue = true);\n },\n\n close(type = null)\n {\n if ( this.prevent ) {\n return;\n }\n\n delete this.timer;\n\n if ( ! type ) {\n this.$emit('close');\n }\n\n if ( type === 'scroll' ) {\n this.$emit('scrollClose');\n }\n\n if ( type === 'multi' ) {\n this.$emit('multiClose');\n }\n\n this.$emit('update:modelValue', \n this.tempValue = false);\n },\n\n pause()\n {\n this.prevent = true;\n },\n\n unpause()\n {\n this.prevent = false;\n },\n\n onCloseEvent(uid)\n {\n if ( this.multiClose && this.tempValue && this._.uid !== uid ) {\n this.close('multi');\n }\n },\n\n refreshVisible()\n {\n Dom.find(this.$el).css(null);\n\n if ( ! this.tempValue ) {\n return this.stopRefreshInterval();\n }\n\n this.startRefreshInterval();\n\n delete this.passedOffset;\n },\n\n startRefreshInterval()\n {\n this.refresh = setInterval(this.updatePosition, \n 1000 / this.framerate);\n\n let onReady = () => {\n\n if ( this.listen ) {\n Dom.find(this.target).addClass('n-open');\n }\n\n Dom.find(this.$el).addClass('n-ready');\n\n if ( this.NPopover ) {\n this.NPopover.pause();\n }\n\n Event.fire('NPopover:close', this._.uid);\n }\n\n Any.delay(onReady, 100);\n },\n\n stopRefreshInterval()\n {\n clearInterval(this.refresh);\n\n if ( this.NPopover ) {\n this.NPopover.unpause();\n }\n\n if ( this.listen ) {\n Dom.find(this.target).removeClass('n-open');\n }\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n isSameOffset(offset)\n {\n if ( ! this.passedOffset ) {\n return false;\n }\n\n let rainbow = Arr.each(['x', 'y'], (key) => {\n return offset[key] === this.passedOffset[key];\n });\n\n return ! Arr.has(rainbow, false);\n },\n\n isSameSize(size)\n {\n if ( ! this.passedSize ) {\n return false;\n }\n\n let rainbow = Arr.each(['width', 'height'], (key) => {\n return size[key] === this.passedSize[key];\n });\n\n return ! Arr.has(rainbow, false);\n },\n\n getTargetHorizontal(position, fallback = null)\n {\n let targetRect = this.target.getBoundingClientRect();\n\n if ( this.trigger === 'context' ) {\n targetRect = {\n top: this.clientY, left: this.clientX, width: 2, height: 2\n };\n }\n\n let windowRect = this.$el.getBoundingClientRect();\n\n if ( this.width === -1 ) {\n windowRect.width = targetRect.width;\n }\n\n let posY = {\n\n // Set above the tagret element\n start: targetRect.top - windowRect.height,\n \n // Set at bottom of target element\n end: targetRect.top + targetRect.height,\n\n };\n\n let posX = {\n\n // Set on the left of target element\n start: targetRect.left,\n\n // Set into the center of the target element\n center: targetRect.left + (targetRect.width * 0.5) - \n (windowRect.width * 0.5),\n\n // Set on the right of the target element\n end: targetRect.left + targetRect.width - \n windowRect.width,\n\n };\n\n let offset = { x: 0, y: 0 };\n\n if ( position === 'top-start' ) {\n offset = { x: posX.start, y: posY.start };\n }\n\n if ( position === 'top-center' ) {\n offset = { x: posX.center, y: posY.start };\n }\n\n if ( position === 'top-end' ) {\n offset = { x: posX.end, y: posY.start };\n }\n\n if ( position === 'bottom-start' ) {\n offset = { x: posX.start, y: posY.end };\n }\n\n if ( position === 'bottom-center' ) {\n offset = { x: posX.center, y: posY.end };\n }\n\n if ( position === 'bottom-end' ) {\n offset = { x: posX.end, y: posY.end };\n }\n\n let inverse = this.position;\n\n if ( position.match(/^(top)\\-/) ) {\n inverse = inverse.replace(/^(top)\\-/, 'bottom-');\n }\n\n if ( position.match(/^(bottom)\\-/) ) {\n inverse = inverse.replace(/^(bottom)\\-/, 'top-');\n }\n\n let broken = offset.y + windowRect.height > \n window.innerHeight || offset.y < 0;\n\n if ( this.scrollClose && broken && ! fallback ) {\n return this.getTargetHorizontal(inverse, offset);\n }\n\n if ( fallback && broken ) {\n offset = fallback;\n }\n\n if ( offset.y < 0 ) {\n offset.y = 0;\n }\n \n if ( offset.y + windowRect.height > window.innerHeight ) {\n offset.y = window.innerHeight - windowRect.height;\n }\n\n if ( offset.x < 0 ) {\n offset.x = 0;\n }\n \n if ( offset.x + windowRect.width > window.innerWidth ) {\n offset.x = window.innerWidth - windowRect.width -\n (window.innerWidth - document.body.clientWidth);\n }\n\n return offset;\n },\n\n getTargetVertical(position, fallback = null)\n {\n let targetRect = this.target.getBoundingClientRect();\n\n if ( this.trigger === 'context' ) {\n targetRect = {\n top: this.clientY, left: this.clientX, width: 2, height: 2\n };\n }\n\n let windowRect = this.$el.getBoundingClientRect();\n\n if ( this.width === -1 ) {\n windowRect.width = targetRect.width;\n }\n \n let posY = {\n\n // Set at top edge of the target element\n start: targetRect.top,\n\n // Set at the middle of the target element\n center: targetRect.top + (targetRect.height * 0.5) - \n (windowRect.height * 0.5),\n\n // Ste at the bottom of the target elemnent\n end: targetRect.top + targetRect.height - \n windowRect.height,\n\n };\n\n let posX = {\n\n // Set to the left of the target element\n start: targetRect.left - windowRect.width,\n\n // Set to the right of the target element\n end: targetRect.left + targetRect.width,\n\n };\n\n let offset = { x: 0, y: 0 };\n\n if ( position === 'left-start' ) {\n offset = { x: posX.start, y: posY.start };\n }\n\n if ( position === 'left-center' ) {\n offset = { x: posX.start, y: posY.center };\n }\n\n if ( position === 'left-end' ) {\n offset = { x: posX.start, y: posY.end };\n }\n\n if ( position === 'right-start' ) {\n offset = { x: posX.end, y: posY.start };\n }\n\n if ( position === 'right-center' ) {\n offset = { x: posX.end, y: posY.center };\n }\n\n if ( position === 'right-end' ) {\n offset = { x: posX.end, y: posY.end };\n }\n\n let inverse = this.position;\n\n if ( position.match(/^(left)\\-/) ) {\n inverse = inverse.replace(/^(left)\\-/, 'right-');\n }\n\n if ( position.match(/^(right)\\-/) ) {\n inverse = inverse.replace(/^(right)\\-/, 'left-');\n }\n\n let broken = offset.x + windowRect.width > \n window.innerWidth || offset.x < 0;\n\n if ( this.scrollClose && broken && ! fallback ) {\n return this.getTargetVertical(inverse, offset);\n }\n\n if ( fallback && broken ) {\n offset = fallback;\n }\n\n if ( offset.y < 0 ) {\n offset.y = 0;\n }\n \n if ( offset.y + windowRect.height > window.innerHeight ) {\n offset.y = window.innerHeight - windowRect.height;\n }\n\n if ( offset.x < 0 ) {\n offset.x = 0;\n }\n \n if ( offset.x + windowRect.width > window.innerWidth ) {\n offset.x = window.innerWidth - windowRect.width -\n (window.innerWidth - document.body.clientWidth);\n }\n\n return offset;\n },\n\n getTargetOffset()\n {\n let position = this.position;\n\n if ( position.match(/^(top|bottom)\\-/) ) {\n return this.getTargetHorizontal(position);\n }\n\n if ( position.match(/^(left|right)\\-/) ) {\n return this.getTargetVertical(position);\n }\n\n return targetRect;\n },\n\n updatePosition()\n {\n let size = this.$el.getBoundingClientRect(),\n rect = this.target.getBoundingClientRect();\n\n let isSameSize = this.isSameSize(size);\n\n if ( isSameSize && this.isSameOffset(rect) ) {\n return;\n }\n\n if ( ! this.timer ) {\n this.timer = Date.now();\n }\n\n this.passedSize = size;\n\n if ( this.width ) {\n Dom.find(this.$el).css({ width: this.width + 'px' });\n }\n\n let offset = this.getTargetOffset();\n\n let scroll = Dom.find(document.body)\n .scroll();\n\n let style = {\n 'z-index': window.zIndex++,\n 'top': Math.round(offset.y + scroll.top) + 'px', \n 'left': Math.round(offset.x + scroll.left) + 'px', \n };\n\n if ( this.width === -1 ) {\n style.width = rect.width + 'px';\n }\n\n Dom.find(this.$el).css(style);\n\n let isScrollClose = this.passedOffset && isSameSize &&\n (Date.now() - this.timer) > 500;\n\n if ( this.scrollClose && isScrollClose ) {\n this.close('scroll');\n }\n\n this.passedOffset = rect;\n },\n\n onHover(event, el)\n {\n if ( this.disabled ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target),\n source = Dom.find(el).closest(this.$el);\n\n let result = (!! target || !! source);\n\n if ( this.tempValue === result ) {\n return;\n }\n\n if ( ! result ) {\n return this.$nextTick(this.close);\n }\n\n this.$emit('update:modelValue', this.tempValue = result);\n },\n\n onClick(event, el)\n {\n let keyCode = event.which === 1 ||\n event.which === 0;\n\n if ( this.disabled || this.tempValue || ! keyCode ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target),\n source = Dom.find(el).closest(this.$el);\n\n let result = (!! target || !! source);\n\n if ( this.tempValue === result ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = result);\n },\n\n onContext(event, el)\n {\n let keyCode = event.which === 3;\n\n if ( this.disabled || this.tempValue || ! keyCode ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target),\n source = Dom.find(el).closest(this.$el);\n\n this.clientX = event.clientX;\n this.clientY = event.clientY;\n\n let result = (!! target || !! source);\n\n if ( result ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if ( this.tempValue === result ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = result);\n },\n\n onExit(event, el)\n {\n if ( this.disabled || ! this.tempValue ) {\n return;\n }\n\n if ( !! Dom.find(el).closest(this.$el) ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target);\n\n if ( this.trigger !== 'context' && !! target ) {\n return;\n }\n\n this.close();\n }\n\n },\n\n renderBody()\n {\n if ( this.$slots.raw ) {\n return this.$slots.raw();\n }\n\n return (\n <div class=\"n-popover__frame\">\n { this.$slots.header &&\n <div class=\"n-popover__header\">\n { this.$slots.header() }\n </div>\n }\n <div class=\"n-popover__body\">\n { this.$slots.default() }\n </div>\n { this.$slots.footer &&\n <div class=\"n-popover__footer\">\n { this.$slots.footer() }\n </div>\n }\n </div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-popover',\n 'n-popover--' + this.type,\n 'n-popover--' + this.size,\n 'n-popover--' + this.position,\n ];\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let viewBody = this.modelValue;\n\n if ( Any.isNull(this.modelValue) ) {\n viewBody = this.tempValue;\n }\n\n return (\n <div class={classList}>\n { viewBody && this.ctor('renderBody')() }\n </div>\n );\n }\n\n}\n","export default {\n\n name: 'NPopoverGroup',\n\n inject: {\n NPopover: {\n default: undefined\n }\n },\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n\n },\n\n computed: {\n\n tempSize()\n {\n if ( this.NPopover ) {\n return this.NPopover.size;\n }\n\n return this.size;\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-popover-group',\n 'n-popover-group--' + this.tempSize,\n ];\n\n return (\n <label class={classList}>\n <span>{ this.$slots.default() }</span>\n </label>\n );\n }\n\n}\n","import { Obj, Arr, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPopoverOption',\n\n inject: {\n NPopover: {\n default: undefined\n }\n },\n\n props: {\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n focus: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n active: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n iconPosition: {\n default()\n {\n return 'after';\n },\n type: [String]\n },\n\n image: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n imagePosition: {\n default()\n {\n return 'before';\n },\n type: [String]\n },\n\n clickClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n\n },\n\n computed: {\n\n tempSize()\n {\n if ( this.NPopover ) {\n return this.NPopover.size;\n }\n\n return this.size;\n }\n\n },\n\n methods: {\n\n onClick(event)\n {\n if ( this.NPopover && this.clickClose ) {\n this.NPopover.close();\n }\n\n this.$emit('fakeclick', event);\n }\n\n },\n\n renderImage()\n {\n if ( ! this.image ) {\n return null;\n }\n\n let classList = [\n 'n-image',\n 'n-image--' + this.imagePosition,\n ];\n\n return (<img class={classList} src={this.image} />);\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n let classList = [\n 'n-icon', \n 'n-icon--' + this.iconPosition,\n ];\n\n classList.push(this.icon);\n\n return (<i class={classList}></i>);\n },\n\n renderContent()\n {\n if ( this.$slots.raw ) {\n return this.$slots.raw();\n }\n\n return (\n <span>{ this.$slots.default() }</span>\n );\n },\n\n render()\n {\n let classList = [\n 'n-popover-option',\n 'n-popover-option--' + this.type,\n 'n-popover-option--' + this.tempSize,\n ];\n\n if ( this.active ) {\n classList.push('n-active');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( ! this.disabled ) {\n props.onClick = this.onClick;\n }\n\n if ( this.disabled ) {\n props.disabled = true;\n }\n\n return (\n <a class={classList} href=\"javascript:void(0)\" {...props}>\n { this.ctor('renderImage')() }\n { this.ctor('renderContent')() }\n { this.ctor('renderIcon')() }\n </a>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NModal',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n width: {\n default()\n {\n return '50%';\n },\n type: [String]\n },\n\n height: {\n default()\n {\n return 'auto';\n },\n type: [String]\n },\n\n title: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'center-center';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n tempValue()\n {\n this.startRefreshTimeout();\n }\n\n },\n\n provide()\n {\n return {\n NModal: this\n };\n },\n\n data()\n {\n return {\n target: null, tempValue: false\n };\n },\n\n mounted()\n {\n this.target = Dom.find(this.selector || this.$el)\n .previous().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).on('keydown',\n this.eventKeydown, this._.uid);\n\n let showModal = () => {\n this.tempValue = true;\n };\n\n if ( this.modelValue ) {\n Any.delay(showModal, 100);\n }\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n\n Dom.find(document.body).off('keydown',\n null, this._.uid);\n },\n\n methods: {\n\n openModal(force = false, source = null)\n {\n if ( this.tempValue ) {\n return;\n }\n\n if ( this.closable || force ) {\n this.tempValue = true;\n }\n\n this.$emit('update:modelValue', true, source);\n },\n\n closeModal(force = false, source = null)\n {\n if ( ! this.tempValue ) {\n return;\n }\n\n if ( ! this.update ) {\n return this.$emit('close', source);\n }\n\n if ( this.closable || force ) {\n this.tempValue = false;\n }\n\n this.$emit('update:modelValue', false, source);\n },\n\n stopRefreshTimeout()\n {\n clearTimeout(this.refresh);\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n startRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n window.zIndex += 1;\n\n Dom.find(this.$el).attr('data-modal',\n window.zIndex);\n\n Dom.find(this.$el).css({\n 'z-index': window.zIndex\n });\n\n this.queueRefreshTimeout();\n },\n\n queueRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n this.refresh = setTimeout(() => {\n Dom.find(this.$el).addClass('n-ready');\n }, 100);\n },\n\n eventClick(event, el)\n {\n if ( this.disabled || event.which !== 1 ) {\n return;\n }\n\n let result = !! Dom.find(el).closest(this.target);\n\n if ( ! result && ! this.tempValue ) {\n return;\n }\n\n if ( this.tempValue && this.closable ) {\n result = ! Dom.find(el).closest(this.$refs.backdrop);\n }\n\n if ( result === this.tempValue ) {\n return;\n }\n\n if ( ! result ) {\n return this.closeModal(false, 'escape');\n }\n\n if ( this.listen ) {\n this.openModal(true, 'selector');\n }\n },\n\n eventKeydown(event, el)\n {\n if ( ! this.tempValue || event.which !== 27 ) {\n return;\n }\n\n let extractIndex = (modal) => {\n return Dom.find(modal).attr('data-modal');\n };\n\n let indexes = Dom.find('.n-modal:not(.n-hidden)')\n .each(extractIndex);\n\n let index = Dom.find(this.$el).attr('data-modal');\n\n if ( Arr.last(indexes.sort()) !== index ) {\n return;\n }\n\n this.closeModal(false, 'escape');\n },\n\n },\n\n renderClose()\n {\n if ( ! this.renderClose || ! this.closable ) {\n return null;\n }\n\n let props = {\n onClick: () => this.closeModal(false, 'escape')\n };\n\n return (\n <div class=\"n-modal__close\" {...props}>\n <span class={nano.Icons.times}></span>\n </div>\n );\n },\n\n renderHeader()\n {\n if ( ! this.$slots.header && ! this.title ) {\n return null;\n }\n\n return (\n <div class=\"n-modal__header\">\n { [this.$slots.header && this.$slots.header({ closeModal: this.closeModal }) || this.title, this.ctor('renderClose')()] }\n </div>\n );\n },\n\n renderFooter()\n {\n if ( ! this.$slots.footer ) {\n return null;\n }\n\n return (\n <div class=\"n-modal__footer\">\n { this.$slots.footer({ closeModal: this.closeModal }) }\n </div>\n );\n },\n\n renderBody()\n {\n let bodyHtml = (\n <NScrollbar ref=\"scrollbar\" relative={true} wrapClass=\"n-modal__wrap\">\n { this.$slots.default && this.$slots.default({ closeModal: this.closeModal }) }\n </NScrollbar>\n );\n\n if ( this.$slots.body ) {\n bodyHtml = this.$slots.body({ closeModal: this.closeModal });\n }\n\n return (\n <div class=\"n-modal__body\">\n { bodyHtml }\n </div>\n );\n },\n\n renderFrame()\n {\n if ( ! this.tempValue ) {\n return null;\n }\n\n let style = {\n width: this.width, height: this.height\n };\n\n let innerHtml = [\n this.ctor('renderHeader')(),\n this.ctor('renderBody')(),\n this.ctor('renderFooter')(),\n ]\n\n return (\n <div class=\"n-modal__frame\" style={style}>\n { this.$slots.raw ? this.$slots.raw() : innerHtml }\n </div>\n );\n },\n\n renderBackdrop()\n {\n return (\n <div ref=\"backdrop\" class=\"n-modal__backdrop\"></div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-modal',\n 'n-modal--' + this.size,\n 'n-modal--' + this.type,\n 'n-modal--' + this.position\n ];\n\n if ( this.tempValue ) {\n this.queueRefreshTimeout();\n }\n\n if ( this.renderClose ) {\n classList.push('n-closable');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let innerHtml = null;\n\n if ( this.tempValue ) {\n innerHtml = this.ctor('renderFrame')();\n }\n\n return (\n <div class={classList}>\n { [innerHtml, this.ctor('renderBackdrop')()] }\n </div>\n );\n }\n\n}\n","import { Obj } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NButton',\n\n props: {\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n link: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n square: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return null;\n }\n },\n\n iconPosition: {\n default()\n {\n return 'before';\n },\n type: [String]\n },\n\n nativeType: {\n default()\n {\n return 'button';\n },\n type: [String]\n }\n\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n let classList = [\n 'n-icon', \n 'n-icon--' + this.iconPosition,\n ];\n\n classList.push(this.icon);\n\n return (<i class={classList}></i>);\n },\n\n render()\n {\n let classList = [\n 'n-button',\n 'n-button--' + this.size,\n 'n-button--' + this.type,\n ];\n\n if ( this.icon ) {\n classList.push('n-button--icon');\n }\n\n if ( this.link ) {\n classList.push('n-button--link');\n }\n\n if ( this.square ) {\n classList.push('n-button--square');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = {\n class: classList\n };\n\n if ( this.disabled ) {\n props.disabled = true;\n }\n\n let innerHtml = [];\n\n if ( this.iconPosition === 'before' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n if ( this.$slots.default && ! this.square ) {\n innerHtml.push(<span>{ this.$slots.default && this.$slots.default() }</span>);\n }\n\n if ( this.iconPosition === 'after' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n return h(this.nativeType, props, innerHtml);\n }\n\n}\n","export default {\n\n name: 'NButtonGroup',\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-button-group',\n 'n-button-group--' + this.size\n ]\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { h } from \"vue\";\nimport { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInput',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n inheritAttrs: false,\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n iconPosition: {\n default()\n {\n return 'after';\n },\n type: [String]\n },\n\n iconDisabled: {\n default()\n {\n return null;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n nativeType: {\n default()\n {\n return 'text';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.modelValue || ''\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n onIconClick(event)\n {\n if ( event.clientX || event.clientY ) {\n this.$emit('icon-click', event);\n }\n },\n\n onInput(event)\n {\n this.$emit('update:modelValue',\n this.tempValue = event.target.value);\n },\n\n onKeydown(event)\n {\n this.$emit('keydown', event);\n\n if ( event.which !== 13 ) {\n return;\n }\n\n event.preventDefault();\n\n if ( ! this.NForm ) {\n return;\n }\n\n this.NForm.onSubmit(event);\n },\n\n onFocus(event)\n {\n this.focus = true;\n this.$emit('focus', event);\n },\n\n onBlur(event)\n {\n this.focus = false;\n this.$emit('blur', event);\n }\n\n },\n\n renderIcon()\n {\n if ( !this.icon ) {\n return null;\n }\n\n let disabled = this.deepDisabled;\n\n if ( this.iconDisabled !== null ) {\n disabled = this.iconDisabled;\n }\n\n let props = {\n type: 'input',\n icon: this.icon,\n size: this.size,\n square: true,\n disabled: disabled,\n };\n\n if ( !disabled ) {\n props.onClick = this.onIconClick;\n }\n\n return (<NButton {...props} />);\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs, [\n 'class', 'style'\n ]);\n\n Obj.assign(props, {\n value: this.tempValue,\n type: this.nativeType,\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onInput: this.onInput,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeydown: this.onKeydown\n });\n\n return h('input', props);\n },\n\n render()\n {\n let classList = [\n 'n-input',\n 'n-input--' + this.size,\n 'n-input--' + this.type,\n ];\n\n if ( this.icon ) {\n classList.push('n-input--icon');\n classList.push('n-input--icon-' + this.iconPosition);\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n let props = Obj.only(this.$attrs, ['style'], {\n class: this.cmer(classList)\n });\n\n let innerHtml = [];\n\n if ( this.iconPosition === 'before' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n innerHtml.push(this.ctor('renderInput')());\n\n if ( this.iconPosition === 'after' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n return h('div', props, innerHtml);\n }\n\n}\n","import { Arr, Obj, Num, Now, Any, Dom, Locale } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NInputNumber',\n\n inheritAttrs: false,\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n \n },\n\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n min: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return Number.MAX_VALUE;\n },\n type: [Number]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n stepSize: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n precision: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n format: {\n default()\n {\n return ':count';\n },\n type: [String]\n },\n\n decimals: {\n default()\n {\n return Locale.trans('.');\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = this.getValue(value);\n }\n }\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.getValue(),\n }\n },\n\n methods: {\n\n clear()\n {\n this.$emit('update:modelValue', this.tempValue = this.clearValue);\n },\n\n getValue(value = null)\n {\n if ( Any.isNull(value) ) {\n value = this.modelValue;\n }\n\n if ( Any.isEmpty(value) ) {\n return this.min;\n }\n\n return Num.float(value);\n },\n\n getDisplayValue()\n {\n\n if ( Any.isEmpty(this.modelValue) ) {\n return null;\n }\n\n let value = Num.format(this.tempValue,\n this.decimals, ' ', this.precision);\n\n return Locale.trans(this.format, { count: value });\n },\n\n nextStep()\n {\n if ( isNaN(this.tempValue) ) {\n this.tempValue = 0;\n }\n\n let value = this.tempValue + this.stepSize;\n\n if ( this.max < value ) {\n return;\n }\n\n value = Num.float(value).toFixed(this.precision);\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n },\n\n onNextDown()\n {\n this.nextStep();\n\n this.nextTimeout = setTimeout(() => {\n this.nextInterval = setInterval(this.nextStep, 100);\n }, 400);\n\n Dom.find(document).on('mouseup', this.onNextUp,\n this._.uid);\n },\n\n onNextUp()\n {\n clearTimeout(this.nextTimeout);\n clearInterval(this.nextInterval);\n\n Dom.find(document).off('mouseup', null,\n this._.uid);\n },\n\n prevStep()\n {\n if ( isNaN(this.tempValue) ) {\n this.tempValue = 0;\n }\n\n let value = this.tempValue - this.stepSize;\n\n if ( this.min > value ) {\n return;\n }\n\n value = Num.float(value).toFixed(this.precision);\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n },\n\n onPrevDown()\n {\n this.prevStep();\n\n this.prevTimeout = setTimeout(() => {\n this.prevInterval = setInterval(this.prevStep, 100);\n }, 400);\n\n Dom.find(document).on('mouseup', this.onPrevUp,\n this._.uid);\n },\n\n onPrevUp()\n {\n clearTimeout(this.prevTimeout);\n clearInterval(this.prevInterval);\n\n Dom.find(document).off('mouseup', null,\n this._.uid);\n },\n\n onKeydown(event)\n {\n if ( event.which === 13 ) {\n this.onInput(event);\n }\n },\n\n onFocus(event)\n {\n this.focus = true;\n },\n\n onBlur(event)\n {\n this.onInput(event);\n\n this.focus = false;\n },\n\n onInput(event)\n {\n let value = event.target.value;\n\n if ( value.match(/^[0-9]+((.|,)[0-9]+)?$/) ) {\n value = this.format.replace(':count', value);\n }\n\n let format = this.format.replace(':count',\n `([0-9\\\\,\\\\.\\\\-\\\\s]+)`);\n\n let regex = new RegExp(`^${format}$`);\n\n let match = value.match(regex);\n\n if ( !match ) {\n return event.target.value = this.getDisplayValue();\n }\n\n value = match[1].replace(',', '.')\n .replace(/\\s/, '');\n\n value = Num.float(value).toFixed(this.precision);\n\n if ( value < this.min ) {\n value = this.min;\n }\n\n if ( value > this.max ) {\n value = this.max;\n }\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n\n event.target.value = this.getDisplayValue();\n }\n\n },\n\n renderPrev()\n {\n let disabled = this.deepDisabled ||\n this.tempValue <= this.min;\n\n let props = {\n type: 'input-number',\n size: this.size,\n icon: 'fa fa-minus',\n square: true,\n disabled: disabled,\n onMousedown: this.onPrevDown,\n };\n\n return (<NButton {...props} />);\n },\n\n renderNext()\n {\n let disabled = this.deepDisabled ||\n this.tempValue >= this.max;\n\n let props = {\n type: 'input-number',\n size: this.size,\n icon: 'fa fa-plus',\n square: true,\n disabled: disabled,\n onMousedown: this.onNextDown,\n };\n\n return (<NButton {...props} />);\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs,\n ['class', 'style']);\n\n Obj.assign(props, {\n value: this.getDisplayValue(),\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onKeydown: this.onKeydown,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n });\n\n return h('input', props);\n },\n\n renderClear()\n {\n if ( !this.clearable || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( !this.deepDisabled ) {\n props.onMousedown = this.clear;\n }\n\n return (\n <div class=\"n-input-number__clear\" {...props}>\n <i class={nano.Icons.times}></i>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-input-number',\n 'n-input-number--' + this.type,\n 'n-input-number--' + this.size,\n ];\n\n if ( Any.isEmpty(this.modelValue) ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n {this.ctor('renderPrev')()}\n {this.ctor('renderInput')()}\n {this.ctor('renderClear')()}\n {this.ctor('renderNext')()}\n </div>\n );\n }\n\n}","import { h } from \"vue\";\nimport {Obj, Any, UUID} from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTextarea',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n autoRows: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n maxRows: {\n default()\n {\n return 12;\n },\n type: [Number]\n },\n\n minRows: {\n default()\n {\n return 4;\n },\n type: [Number]\n },\n\n maxLength: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n eventInput(event)\n {\n this.$emit('update:modelValue', \n this.tempValue = event.target.value);\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue || ''\n };\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs, ['class', 'style']);\n\n Obj.assign(props, {\n value: this.tempValue,\n rows: this.minRows,\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.eventInput,\n });\n\n if ( this.maxLength !== 0 ) {\n props.maxLength = this.maxLength;\n }\n\n let currentRows = (this.tempValue.match(/\\n/g) || []).length + 1;\n\n if ( this.autoRows && props.rows < currentRows ) {\n props.rows = currentRows <= this.maxRows ? currentRows : this.maxRows;\n }\n\n return h('textarea', props);\n },\n\n render()\n {\n let classList = [\n 'n-textarea',\n 'n-textarea--' + this.size,\n 'n-textarea--' + this.type,\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.only(this.$attrs, ['style'], {\n class: this.cmer(classList)\n });\n\n return h('div', props, [this.ctor('renderInput')()]);\n }\n\n}\n","import { Str, Arr, Obj, Any, Locale, Dom, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSelect',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n },\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n lazy: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-center';\n },\n type: [String]\n },\n\n multiple: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n collapse: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Please select');\n },\n type: [String]\n },\n\n emptyText: {\n default()\n {\n return 'No items';\n },\n type: [String]\n },\n\n undefinedText: {\n default()\n {\n return 'Undefined item';\n },\n type: [String]\n },\n\n collapseText: {\n default()\n {\n return '+:count item|+:count items';\n },\n type: [String]\n },\n\n allowCreate: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array, Object]\n },\n\n optionsValue: {\n default()\n {\n return '$index';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsDisabled: {\n default()\n {\n return 'null';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n deepDisabled()\n {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n },\n\n empty()\n {\n return Any.isEmpty(this.tempValue);\n },\n\n custom()\n {\n let result = Arr.filter(this.elements, (element) => {\n\n if ( Any.isArray(this.tempValue) ) {\n return Arr.has(this.tempValue, element.value);\n }\n\n return element.value === this.tempValue;\n });\n\n return result.length === 0;\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempClear: this.clearValue,\n focus: false,\n search: '',\n index: - 1,\n elements: [],\n searched: []\n };\n },\n\n\n beforeMount()\n {\n if ( this.lazy ) {\n this.generateOptions();\n }\n\n if ( this.multiple && !Any.isArray(this.tempValue) ) {\n this.tempValue = [];\n }\n\n if ( this.multiple && !Any.isArray(this.clearValue) ) {\n this.tempClear = [];\n }\n\n this.searchOptions();\n },\n\n provide()\n {\n return {\n NSelect: this\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( !this.multiple && Any.isArray(value) ) {\n value = null;\n }\n\n if ( this.multiple && !Any.isArray(value) ) {\n value = [];\n }\n\n this.tempValue = value;\n },\n\n search()\n {\n this.searchOptions();\n },\n\n focus()\n {\n this.$nextTick(this.scrollToClosest);\n },\n\n },\n\n methods: {\n\n clear(event = null)\n {\n if ( event ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.focusInput();\n\n this.$emit('update:modelValue',\n this.tempValue = Arr.clone(this.tempClear));\n },\n\n generateOptions()\n {\n this.elements = Arr.each(this.options, (value, index) => {\n\n let data = {\n $value: value, $index: index\n };\n\n let option = {\n label: Obj.get(data, this.optionsLabel),\n value: Obj.get(data, this.optionsValue)\n };\n\n return Obj.assign(option, {\n tempLabel: option.label, tempValue: option.value\n });\n });\n },\n\n addOption(option)\n {\n Arr.add(this.elements, option,\n { tempValue: option.tempValue });\n },\n\n removeOption(option)\n {\n Arr.remove(this.elements,\n { tempValue: option.tempValue });\n },\n\n resetInput()\n {\n this.index = - 1;\n this.search = '';\n },\n\n focusInput(event = null)\n {\n if ( event ) {\n event.preventDefault();\n }\n\n this.$refs.input.focus();\n },\n\n onFocusInput()\n {\n if ( !this.focus ) {\n this.$refs.popover.open();\n }\n\n clearInterval(this.refresh);\n },\n\n onInputInput(event)\n {\n this.search = event.target.value;\n },\n\n onKeydownInput(event)\n {\n if ( !this.focus ) {\n return this.onFocusInput();\n }\n\n if ( event.which === 13 ) {\n this.createOrToggle();\n }\n\n if ( event.which === 38 ) {\n this.selectPrev();\n }\n\n if ( event.which === 40 ) {\n this.selectNext();\n }\n },\n\n searchOptions()\n {\n this.index = - 1;\n\n if ( Any.isEmpty(this.search) ) {\n return this.searched = this.elements;\n }\n\n let searchRegex = new RegExp(this.search, 'i');\n\n let searched = Arr.filter(this.elements, (option) => {\n return Any.isString(option.label) && option.label.match(searchRegex);\n });\n\n this.searched = searched;\n },\n\n toggleOption(value, event = null)\n {\n if ( Any.isEmpty(value) ) {\n return;\n }\n\n if ( event && event.which !== 1 ) {\n return;\n }\n\n if ( event ) {\n event.preventDefault();\n }\n\n let tempValue = this.tempValue;\n\n if ( this.multiple ) {\n this.focusInput();\n }\n\n if ( !this.multiple ) {\n tempValue = value;\n }\n\n if ( this.multiple ) {\n Arr.toggle(tempValue, value);\n }\n\n this.$refs.popover.close();\n\n let denyUpdate = this.tempValue === tempValue;\n\n if ( this.multiple && !Any.isArray(this.modelValue) ) {\n denyUpdate = false;\n }\n\n if ( !this.multiple && Any.isArray(this.modelValue) ) {\n denyUpdate = false;\n }\n\n if ( denyUpdate ) {\n return;\n }\n\n this.$emit('update:modelValue',\n this.tempValue = tempValue);\n },\n\n getOptionLabel(value)\n {\n let option = Arr.find(this.elements,\n { tempValue: value });\n\n if ( !option && this.allowCreate ) {\n return value;\n }\n\n if ( !option && !this.allowCreate ) {\n return this.trans(this.undefinedText);\n }\n\n return option.tempLabel;\n },\n\n selectPrev()\n {\n let newIndex = this.index - 1;\n\n if ( newIndex < 0 ) {\n newIndex = this.searched.length - 1;\n }\n\n this.index = newIndex;\n\n this.scrollToCurrent();\n },\n\n selectNext()\n {\n let newIndex = this.index + 1;\n\n if ( newIndex > this.searched.length - 1 ) {\n newIndex = 0;\n }\n\n this.index = newIndex;\n\n this.scrollToCurrent();\n },\n\n createOrToggle()\n {\n if ( this.allowCreate && this.search ) {\n return this.createOption();\n }\n\n let selected = Arr.get(this.searched,\n this.index);\n\n if ( this.searched.length === 1 ) {\n selected = Arr.first(this.searched);\n }\n\n if ( !selected || selected.disabled ) {\n return;\n }\n\n this.toggleOption(selected.tempValue);\n },\n\n createOption()\n {\n this.toggleOption(this.search);\n\n this.search = '';\n },\n\n scrollToCurrent()\n {\n if ( !this.focus ) {\n return;\n }\n\n let selected = Arr.get(this.searched,\n this.index);\n\n if ( !selected ) {\n return;\n }\n\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.scrollIntoView(`[data-option=\"${selected._.uid}\"]`);\n }\n\n if ( this.$refs.virtualbar ) {\n this.$refs.virtualbar.scrollToIndex(this.index);\n }\n },\n\n scrollToClosest()\n {\n if ( !this.focus ) {\n return;\n }\n\n let value = this.tempValue;\n\n if ( Any.isArray(this.tempValue) ) {\n value = Arr.first(this.tempValue);\n }\n\n if ( !value ) {\n return;\n }\n\n let index = Arr.findIndex(this.elements, {\n tempValue: value\n });\n\n if ( !index ) {\n return;\n }\n\n if ( this.$refs.virtualbar ) {\n this.$refs.virtualbar.scrollToIndex(index, 250);\n }\n\n let select = `[data-option=\"${Obj.get(this.elements[index], '_.uid', 0)}\"]`;\n\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.scrollIntoView(select, 250);\n }\n }\n\n },\n\n renderLabelClear()\n {\n if ( !this.clearable || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( !this.deepDisabled ) {\n props.onMousedown = this.clear;\n }\n\n return (\n <div class=\"n-select__clear\" {...props}>\n <i class={nano.Icons.times}></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-select__angle\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n },\n\n renderLabelItem(value)\n {\n let classList = [\n 'n-select__item'\n ];\n\n let props = {\n class: nano.Icons.times,\n };\n\n if ( !this.deepDisabled ) {\n props.onMousedown = (event) => this.toggleOption(value, event);\n }\n\n let labelHtml = (\n <span>{this.getOptionLabel(value)}</span>\n );\n\n return (\n <div class={classList}>\n {[labelHtml, <i {...props}></i>]}\n </div>\n );\n },\n\n renderLabelCollapse()\n {\n let first = Arr.first(this.tempValue);\n\n if ( !first ) {\n return null;\n }\n\n let firstHtml = this.ctor('renderLabelItem')(first);\n\n if ( this.tempValue.length === 1 ) {\n return firstHtml;\n }\n\n let count = this.tempValue.length - 1;\n\n let collapseHtml = (\n <div class=\"n-select__item\">\n <span>{this.choice(this.collapseText, count)}</span>\n </div>\n );\n\n return [\n firstHtml, collapseHtml\n ];\n },\n\n renderLabelItems()\n {\n if ( !Any.isArray(this.tempValue) ) {\n return null;\n }\n\n if ( this.collapse ) {\n return this.ctor('renderLabelCollapse')();\n }\n\n return Arr.each(this.tempValue, (value) => {\n return this.ctor('renderLabelItem')(value);\n });\n },\n\n renderMultiple()\n {\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n let props = {\n value: this.search,\n placeholder: this.placeholder,\n disabled: this.deepDisabled,\n onFocus: this.onFocusInput,\n onInput: this.onInputInput,\n onKeydown: this.onKeydownInput\n };\n\n if ( !this.focus ) {\n props.value = null;\n }\n\n if ( !isEmptyValue ) {\n props.placeholder = null;\n }\n\n let inputHtml = (\n <div class=\"n-select__input\">\n <input ref=\"input\" {...props} />\n </div>\n );\n\n return [\n this.ctor('renderLabelClear')(),\n (\n <div class=\"n-select__items\">\n {[this.ctor('renderLabelItems')(), inputHtml]}\n </div>\n ),\n this.ctor('renderLabelAngle')()\n ];\n },\n\n renderSingle()\n {\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n let modelLabel = this.getOptionLabel(\n this.tempValue);\n\n if ( isEmptyValue ) {\n modelLabel = null;\n }\n\n let props = {\n value: this.search,\n placeholder: this.placeholder,\n disabled: this.deepDisabled,\n onFocus: this.onFocusInput,\n onInput: this.onInputInput,\n onKeydown: this.onKeydownInput\n };\n\n if ( !this.search && this.custom ) {\n props.value = this.tempValue;\n }\n\n if ( !this.focus ) {\n props.value = modelLabel;\n }\n\n if ( !isEmptyValue ) {\n props.placeholder = modelLabel;\n }\n\n return [\n this.ctor('renderLabelClear')(),\n (\n <div class=\"n-select__input\">\n <input ref=\"input\" {...props} />\n </div>\n ),\n this.ctor('renderLabelAngle')()\n ];\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-select__display'\n ];\n\n if ( this.multiple ) {\n classList.push('n-multiple');\n }\n\n let displayHtml = this.ctor('renderSingle');\n\n if ( this.multiple ) {\n displayHtml = this.ctor('renderMultiple');\n }\n\n return (\n <div class={classList}>{displayHtml()}</div>\n );\n },\n\n renderItems()\n {\n let emptyHtml = (\n <div class=\"n-select__empty\">\n <NEmptyIcon inline={true}>{this.trans(this.emptyText)}</NEmptyIcon>\n </div>\n );\n\n if ( !this.searched.length ) {\n return emptyHtml;\n }\n\n if ( this.lazy ) {\n return this.ctor('renderLazyItems')();\n }\n\n let options = Obj.each(this.searched, (option, index) => {\n return option.ctor('renderOption')(index);\n });\n\n let props = {\n relative: true, size: this.size\n }\n\n return (\n <NScrollbar ref=\"scrollbar\" class=\"n-select__body\" {...props}>\n {Obj.values(options)}\n </NScrollbar>\n );\n },\n\n renderLazyOption(value, index)\n {\n let classList = [];\n\n let isMultipleActive = this.multiple &&\n Arr.has(this.tempValue, value.value);\n\n if ( isMultipleActive ) {\n classList.push('n-active');\n }\n\n let isSingleActive = ! this.multiple &&\n this.tempValue === value.value;\n\n if ( isSingleActive ) {\n classList.push('n-active');\n }\n\n if ( this.index === Num.int(index) ) {\n classList.push('n-focus');\n }\n\n let props = {\n 'type': this.type,\n 'clickClose': ! this.multiple,\n };\n\n props['onMousedown'] = (e) => {\n this.toggleOption(value.value, e);\n };\n\n if ( isSingleActive || isMultipleActive ) {\n props.icon = nano.Icons.checked;\n }\n\n return (\n <NPopoverOption class={classList} {...props}>\n {value.label}\n </NPopoverOption>\n );\n },\n\n renderLazyItems()\n {\n let props = {\n items: this.searched\n };\n\n props.renderNode = ({ value, index }) => {\n return this.ctor('renderLazyOption')(value, index);\n };\n\n return (\n <NVirtualscroller ref=\"virtualbar\" class=\"n-select__body n-virtual\" {...props} />\n );\n },\n\n renderPopover()\n {\n let classList = [\n 'n-popover--select'\n ];\n\n if ( this.lazy ) {\n classList.push('n-virtual');\n }\n\n let props = {\n class: classList,\n trigger: 'click',\n width: - 1,\n listen: true,\n size: this.size,\n scrollClose: true,\n disabled: this.deepDisabled,\n onClose: this.resetInput\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n {{ raw: this.ctor('renderItems') }}\n </NPopover>\n );\n },\n\n renderOptions()\n {\n if ( this.lazy ) {\n return null;\n }\n\n if ( Any.isEmpty(this.options) ) {\n return this.$slots.default && this.$slots.default();\n }\n\n let optionRender = ($value, $index) => {\n\n let props = {\n label: Obj.get({ $value, $index }, this.optionsLabel, null),\n value: Obj.get({ $value, $index }, this.optionsValue, null),\n };\n\n return (<NSelectOption {...props}></NSelectOption>);\n };\n\n return Obj.values(Obj.each(this.options, optionRender));\n },\n\n render()\n {\n let classList = [\n 'n-select',\n 'n-select--' + this.type,\n 'n-select--' + this.size,\n ];\n\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n if ( isEmptyValue ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList} onClick={this.focusInput}>\n {this.ctor('renderDisplay')()}\n {this.ctor('renderPopover')()}\n {this.ctor('renderOptions')()}\n </div>\n );\n }\n\n}\n","import { Num, Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSelectOption',\n\n inheritAttrs: false,\n\n inject: {\n\n NSelect: {\n default: undefined\n }\n\n },\n\n props: {\n\n value: {\n default()\n {\n return '';\n }\n },\n\n label: {\n default()\n {\n return null;\n }\n },\n\n valueProp: {\n default()\n {\n return null;\n }\n },\n\n labelProp: {\n default()\n {\n return null;\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n tempValue()\n {\n if ( Any.isEmpty(this.valueProp) ) {\n return this.value;\n }\n\n return Obj.get(this.value, this.valueProp);\n },\n\n tempLabel()\n {\n if ( Any.isEmpty(this.labelProp) ) {\n return this.label;\n }\n\n return Obj.get(this.value, this.labelProp);\n }\n\n },\n\n mounted()\n {\n if ( ! this.NSelect.lazy ) {\n this.NSelect.addOption(this);\n }\n },\n\n beforeUnmount()\n {\n if ( ! this.NSelect.lazy ) {\n this.NSelect.removeOption(this);\n }\n },\n\n methods: {\n\n toggleItem(event) \n {\n event.preventDefault();\n\n if ( event.which !== 1 ) {\n return;\n }\n\n if ( this.disabled ) {\n return;\n }\n\n this.NSelect.toggleOption(this.tempValue, \n event);\n },\n\n },\n\n renderOption(index)\n {\n\n let classList = [];\n\n let isMultipleActive = this.NSelect.multiple && \n Arr.has(this.NSelect.tempValue, this.tempValue);\n\n if ( isMultipleActive ) {\n classList.push('n-active');\n }\n\n let isSingleActive = ! this.NSelect.multiple && \n this.NSelect.tempValue === this.tempValue;\n\n if ( isSingleActive ) {\n classList.push('n-active');\n }\n\n if ( this.NSelect.index === Num.int(index) ) {\n classList.push('n-focus');\n }\n\n let props = {\n 'disabled': this.disabled,\n 'onMousedown': this.toggleItem,\n 'type': this.NSelect.type,\n 'clickClose': ! this.NSelect.multiple,\n };\n\n if ( isSingleActive || isMultipleActive ) {\n props.icon = nano.Icons.checked;\n }\n\n // Required for scrolldown\n props['data-option'] = this._.uid;\n\n return (\n <NPopoverOption class={classList} {...props}>\n { this.$slots.default && this.$slots.default() || this.tempLabel }\n </NPopoverOption>\n );\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Arr, Obj, Any, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCheckbox',\n\n inject: {\n\n NCheckboxGroup: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n value: {\n default()\n {\n return null;\n }\n },\n\n allowUncheck: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n intermediate: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n global: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n tempComputed()\n {\n return ! this.global ? this.tempChecked :\n this.NCheckboxGroup.globalChecked;\n },\n\n tempIntermediate()\n {\n return ! this.global ? this.intermediate :\n this.NCheckboxGroup.globalIntermediate;\n },\n\n tempDisabled()\n {\n return ! this.global ? this.disabled :\n this.NCheckboxGroup.globalDisabled;\n }\n\n },\n\n data()\n {\n return {\n uid: UUID(), tempChecked: this.modelValue\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempChecked ) {\n this.tempChecked = value;\n }\n }\n\n },\n\n beforeMount()\n {\n if ( this.NCheckboxGroup ) {\n this.tempChecked = this.NCheckboxGroup.isChecked(this.value);\n }\n },\n\n mounted()\n {\n if ( ! this.NCheckboxGroup || this.global ) {\n return;\n }\n\n this.$watch('NCheckboxGroup.tempValue', () => {\n this.tempChecked = this.NCheckboxGroup.isChecked(this.value);\n });\n\n this.NCheckboxGroup.addCheckbox(this);\n },\n\n beforeUnmount()\n {\n if ( this.NCheckboxGroup && ! this.global ) {\n this.NCheckboxGroup.removeCheckbox(this);\n }\n },\n\n methods: {\n\n toggle()\n {\n this.$emit('update:modelValue', this.tempChecked = ! this.tempChecked);\n },\n\n check()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.checkCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n uncheck()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.uncheckCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = false);\n },\n\n eventShiftClick()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.shiftCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n eventLocalClick(event)\n {\n let canClick = ! this.tempDisabled || (this.allowUncheck &&\n this.tempChecked);\n\n if ( ! canClick ) {\n return;\n }\n\n event.preventDefault();\n\n if ( event.shiftKey ) {\n return this.eventShiftClick();\n }\n \n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.toggleCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = ! this.tempChecked);\n },\n\n eventGlobalClick()\n {\n let canClick = ! this.tempDisabled || (this.allowUncheck &&\n this.tempChecked);\n\n if ( ! canClick ) {\n return;\n }\n\n this.NCheckboxGroup.toggleAll();\n },\n\n updateFromGroup()\n {\n let checked = this.NCheckboxGroup.isChecked(this.value);\n\n if ( this.tempChecked === checked ) {\n return;\n }\n \n this.$emit('update:modelValue', this.tempChecked = checked);\n }\n\n },\n\n renderCheckbox()\n {\n let interHtml = this.$slots.intermediate &&\n this.$slots.intermediate();\n\n if ( ! interHtml ) {\n interHtml = (<i class={nano.Icons.intermediate}></i>);\n }\n\n let checkHtml = this.$slots.checked &&\n this.$slots.checked();\n\n if ( ! checkHtml ) {\n checkHtml = (<i class={nano.Icons.checked}></i>);\n }\n\n return (\n <div class=\"n-checkbox__checkbox\">\n { this.tempIntermediate ? interHtml : checkHtml }\n </div>\n );\n },\n\n renderLabel()\n {\n if ( ! this.cslo('default') && ! this.cslo('label') ) {\n return null;\n }\n\n return (\n <div class=\"n-checkbox__label\">\n { this.$slots.default() || this.$slots.label() }\n </div>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NCheckboxGroup ) {\n size = this.NCheckboxGroup.size;\n }\n\n let classList = [\n 'n-checkbox',\n 'n-checkbox--' + size,\n 'n-checkbox--' + this.type,\n ];\n\n if ( this.allowUncheck ) {\n classList.push('n-uncheck');\n }\n\n if ( this.tempComputed ) {\n classList.push('n-checked');\n }\n\n if ( this.tempIntermediate ) {\n classList.push('n-intermediate');\n }\n\n if ( this.tempDisabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.tempComputed && this.allowUncheck ) {\n Arr.remove(classList, 'n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( this.global ) {\n props.onMousedown = this.eventGlobalClick;\n }\n\n if ( ! this.global ) {\n props.onMousedown = this.eventLocalClick;\n }\n\n return (\n <div class={classList} {...props}>\n { [this.ctor('renderCheckbox')(), this.ctor('renderLabel')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCheckboxGroup',\n\n provide()\n {\n return {\n NCheckboxGroup: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'horizontal';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n globalChecked()\n {\n let checked = Arr.filter(this.elements, (checkbox) => {\n return checkbox.tempChecked;\n });\n\n return checked.length === this.elements.length &&\n this.elements.length !== 0;\n },\n\n globalIntermediate()\n {\n let checked = this.elements.filter((checkbox) => {\n return checkbox.tempChecked;\n });\n\n return checked.length !== this.elements.length &&\n checked.length !== 0 ;\n },\n\n globalDisabled()\n {\n return this.elements.length === 0;\n },\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n index: -1,\n elements: []\n }\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.tempValue = this.modelValue ) {\n this.tempValue = this.modelValue;\n }\n \n },\n\n },\n\n methods: {\n\n addCheckbox(checkbox)\n {\n this.index = -1;\n\n Arr.add(this.elements, checkbox, {\n uid: checkbox.uid\n });\n\n this.elements = Arr.sort(this.elements, 'sort');\n },\n\n removeCheckbox(checkbox)\n {\n this.index = -1;\n \n Arr.remove(this.elements, {\n uid: checkbox.uid\n });\n },\n\n toggleCheckbox(checkbox, emit = true)\n {\n let index = Arr.findIndex(this.elements, {\n uid: checkbox.uid\n });\n\n if ( ! checkbox.tempChecked ) {\n this.index = index;\n }\n\n Arr.toggle(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n checkCheckbox(checkbox, emit = true)\n {\n Arr.add(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n uncheckCheckbox(checkbox, emit = true)\n {\n Arr.remove(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n shiftCheckbox(checkbox)\n {\n if ( this.index === -1 ) {\n return this.toggleCheckbox(checkbox, false);\n }\n\n let index = Arr.findIndex(this.elements, {\n uid: checkbox.uid\n });\n\n let checkboxes = this.elements.slice(this.index, index + 1);\n\n if ( index < this.index ) {\n checkboxes = this.elements.slice(index, this.index + 1);\n }\n\n this.index = -1;\n\n Arr.each(checkboxes, (checkbox) => {\n this.checkCheckbox(checkbox, false);\n });\n\n Arr.each(checkboxes, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n toggleAll()\n {\n this.globalChecked ? this.uncheckAll() : this.checkAll();\n },\n\n checkAll()\n {\n Arr.each(this.elements, (checkbox) => {\n this.checkCheckbox(checkbox, false);\n });\n\n Arr.each(this.elements, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n uncheckAll()\n {\n Arr.each(this.elements, (checkbox) => {\n this.uncheckCheckbox(checkbox, false);\n });\n\n Arr.each(this.elements, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n isChecked(value)\n {\n return Arr.has(this.tempValue, value);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-checkbox-group',\n 'n-checkbox-group--' + this.size,\n 'n-checkbox-group--' + this.align,\n ];\n\n return (\n <div class={classList}>\n {this.$slots.default()}\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRadio',\n\n model: {\n prop: 'checked'\n },\n\n inject: {\n\n NRadioGroup: {\n default: undefined\n }\n\n },\n\n props: {\n\n value: {\n default()\n {\n return null;\n }\n },\n\n checked: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n uid()\n {\n return this._.uid;\n }\n\n },\n\n data()\n {\n return {\n tempChecked: this.checked\n };\n },\n\n watch: {\n\n checked()\n {\n if ( this.checked !== this.tempChecked ) {\n this.tempChecked = this.checked;\n }\n }\n\n },\n\n beforeMount()\n {\n if ( this.NRadioGroup ) {\n this.tempChecked = this.NRadioGroup.isChecked(this.value);\n }\n },\n\n mounted()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.addRadio(this);\n }\n },\n\n beforeUnmount()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.removeRadio(this);\n }\n },\n\n methods: {\n\n check()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.checkRadio(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n updateFromGroup()\n {\n let checked = this.NRadioGroup.isChecked(this.value);\n\n if ( this.tempChecked === checked ) {\n return;\n }\n \n this.$emit('update:modelValue', this.tempChecked = checked);\n }\n\n },\n\n renderRadio()\n {\n return (\n <div class=\"n-radio__radio\">\n <span></span>\n </div>\n );\n },\n\n renderLabel()\n {\n if ( ! this.$slots.default && ! this.$slots.label ) {\n return null;\n }\n\n return (\n <div class=\"n-radio__label\">\n { this.$slots.default() || this.$slots.label() }\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-radio',\n 'n-radio--' + this.size,\n 'n-radio--' + this.type,\n ];\n\n if ( this.tempChecked ) {\n classList.push('n-checked');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( ! this.disabled ) {\n props.onMousedown = this.check;\n }\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderRadio')() }\n { this.ctor('renderLabel')() }\n </div>\n );\n }\n\n}\n","import { Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRadioGroup',\n\n provide()\n {\n return {\n NRadioGroup: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'horizontal';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n elements: []\n }\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n },\n\n },\n\n methods: {\n\n addRadio(radio)\n {\n Arr.add(this.elements, radio, {\n uid: radio.uid\n });\n },\n\n removeRadio(radio)\n {\n Arr.remove(this.elements, {\n uid: radio.uid\n });\n },\n\n checkRadio(radio)\n {\n this.tempValue = radio.value;\n \n Arr.each(this.elements, (radio) => {\n radio.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n isChecked(value)\n {\n return this.tempValue === value;\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-radio-group',\n 'n-radio-group--' + this.size,\n 'n-radio-group--' + this.align,\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { Obj, Arr, Any, Num, Dom, Event } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSlider',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n steps: {\n default()\n {\n return 1;\n }\n },\n\n labels: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n min: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return 100;\n },\n type: [Number]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n index: 0, width: null, tempValue: [null, null]\n };\n },\n\n computed: {\n\n selector()\n {\n return `[data-index=\"${this.index}\"]`;\n },\n\n fixmin()\n {\n return Any.isArray(this.steps) ? Arr.first(this.steps) : this.min;\n },\n\n fixmax()\n {\n return Any.isArray(this.steps) ? Arr.last(this.steps) : this.max;\n },\n\n minmax()\n {\n return this.fixmax - this.fixmin;\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n },\n\n watch: {\n\n modelValue()\n {\n this.getPseudoValue();\n }\n\n },\n\n mounted()\n {\n Dom.find(window).on('resize',\n Any.debounce(this.onResize, 500), this._.uid);\n\n this.onResize();\n this.getPseudoValue();\n },\n\n unmounted()\n {\n Dom.find(window).off('resize',\n null, this._.uid);\n },\n\n methods: {\n\n onResize()\n {\n this.width = Dom.find(this.$el).width();\n },\n\n getPseudoValue()\n {\n let value = this.modelValue;\n\n if ( Any.isNull(value) ) {\n value = this.fixmax;\n }\n if ( ! Any.isArray(value) ) {\n value = [this.fixmin, value];\n }\n\n return this.tempValue = value;\n },\n\n setModelValue()\n {\n let value = this.tempValue;\n\n if ( ! this.range ) {\n value = this.tempValue[1];\n }\n\n this.$emit('update:modelValue', value);\n },\n\n getValPos(value)\n {\n return Num.fixed(this.width / this.minmax * (value - this.fixmin), 2) + 'px';\n },\n\n getValStyle(value)\n {\n return 'transform: translateX(' + this.getValPos(value) + ');';\n },\n\n getBarPos()\n {\n return Num.fixed(this.width / this.minmax * (this.tempValue[0] - this.fixmin), 2) + 'px';\n },\n\n getBarWidth()\n {\n return Num.fixed(this.width / this.minmax * (this.tempValue[1] - this.tempValue[0]), 2) + 'px';\n },\n\n getBarStyle()\n {\n return 'max-width: ' + this.getBarWidth() + '; ' +\n 'transform: translateX(' + this.getBarPos() + ');';\n },\n\n getClosestValue(width)\n {\n if ( Any.isNumber(this.steps) ) {\n return Num.round(width / this.steps) * this.steps;\n }\n\n let range = Arr.last(this.steps) -\n Arr.first(this.steps);\n\n let diff = Arr.each(this.steps, (step) => {\n return Math.abs((range / 100 * width) - step + this.fixmin);\n });\n\n let index = Arr.findIndex(diff, Math.min(...diff));\n\n return this.steps[index];\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onMousedown(event)\n {\n if ( this.disabled ) {\n return;\n }\n\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(this.$el).find(this.selector).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onMousemove, 60), this._.uid);\n },\n\n onMousemove(event)\n {\n this.clientX = this.getTouchEvent(event).clientX;\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let relativeWidth = (this.clientX - offsetX) / this.width * 100;\n\n let closestValue = this.getClosestValue(relativeWidth);\n\n if ( closestValue < this.fixmin ) {\n closestValue = this.fixmin;\n }\n\n if ( closestValue > this.fixmax ) {\n closestValue = this.fixmax;\n }\n\n let stepMin = this.tempValue[0] + this.steps;\n\n if ( this.index === 1 && closestValue < stepMin ) {\n closestValue = stepMin;\n }\n\n let stepMax = this.tempValue[1] - this.steps;\n\n if ( this.index === 0 && closestValue > stepMax ) {\n closestValue = stepMax;\n }\n\n this.tempValue[this.index] = closestValue;\n },\n\n onMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mouseup, null, this._.uid);\n Dom.find(document).off(this.mousemove, null, this._.uid);\n\n Dom.find(this.$el).find(this.selector).removeClass('n-move');\n Dom.find(document.body).removeClass('n-move');\n\n this.setModelValue();\n },\n\n },\n\n renderHandle(value, index)\n {\n let handleProps = {\n 'data-value': value,\n 'data-index': index,\n style: this.getValStyle(value)\n };\n\n handleProps['onMousedown'] = (event) => {\n this.onMousedown(event, this.index = index);\n };\n\n let key = Arr.findIndex(this.steps, value);\n\n return (\n <div class=\"n-slider__handle\" {...handleProps}>\n <span>{ Obj.get(this.labels, key, value) }</span>\n </div>\n );\n },\n\n renderHandles()\n {\n let values = Arr.clone(this.tempValue);\n\n if ( ! this.range ) {\n delete values[0];\n }\n\n return Arr.each(values, (value, index) => {\n return this.ctor('renderHandle')(value, index);\n });\n },\n\n renderBar()\n {\n let barProps = {\n style: this.getBarStyle()\n };\n\n return (\n <div class=\"n-slider__bar\">\n <div class=\"n-slider__range\" {...barProps}></div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-slider',\n 'n-slider--' + this.type,\n 'n-slider--' + this.size\n ];\n\n if ( this.range ) {\n classList.push('n-range');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderBar')() }\n { this.ctor('renderHandles')() }\n </div>\n );\n }\n\n}\n","import { Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSwitch',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n }\n },\n\n onValue: {\n default()\n {\n return true;\n }\n },\n\n offValue: {\n default()\n {\n return false;\n }\n },\n\n onType: {\n default()\n {\n return 'primary';\n }\n },\n\n offType: {\n default()\n {\n return 'default';\n }\n },\n\n size: {\n default()\n {\n return 'md';\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n eventClick()\n {\n let tempValue = this.onValue;\n\n if ( this.tempValue === this.onValue ) {\n tempValue = this.offValue;\n }\n\n this.$emit('update:modelValue', this.tempValue = tempValue);\n }\n\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n }\n\n },\n\n renderSwitch()\n {\n let classList = [\n 'n-switch__switch'\n ];\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.eventClick;\n }\n\n return (\n <div class={classList} {...props}>\n <span></span>\n </div>\n )\n },\n\n renderLabel()\n {\n if ( ! this.$slots.default ) {\n return null;\n }\n\n let classList = [\n 'n-switch__label',\n ];\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.eventClick;\n }\n\n return (\n <div class={classList} {...props}>\n { this.$slots.default() }\n </div>\n )\n },\n\n render()\n {\n let classList = [\n 'n-switch',\n 'n-switch--' + this.size\n ];\n\n if ( this.tempValue === this.onValue ) {\n classList.push('n-switch--' + this.onType);\n }\n\n if ( this.tempValue === this.offValue) {\n classList.push('n-switch--' + this.offType);\n }\n\n if ( this.tempValue === this.onValue ) {\n classList.push('n-on');\n }\n\n if ( this.tempValue === this.offValue ) {\n classList.push('n-off');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderSwitch')() }\n { this.ctor('renderLabel')() }\n </div>\n );\n }\n\n}\n","import { Obj, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NConfirm',\n\n props: {\n\n visible: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n width: {\n default()\n {\n return 'auto';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'center-center';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n confirmText: {\n default()\n {\n return Locale.trans('Confirm');\n },\n type: [String]\n },\n\n abortText: {\n default()\n {\n return Locale.trans('Abort');\n },\n type: [String]\n },\n\n buttonSize: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n },\n\n watch: {\n\n visible()\n {\n if ( this.visible !== this.tempVisible ) {\n this.tempVisible = this.visible;\n }\n }\n\n },\n\n data()\n {\n return {\n tempVisible: this.visible\n };\n },\n\n methods: {\n\n abort(event)\n {\n this.$refs.modal.closeModal(true, 'self');\n this.$emit('abort');\n },\n\n confirm(event)\n {\n this.$refs.modal.closeModal(true, 'self');\n this.$emit('confirm');\n },\n\n eventInput(value, source)\n {\n if ( ! value && source !== 'self' ) {\n this.$emit('abort');\n }\n\n this.$emit('update:visible', this.tempVisible = value);\n }\n\n },\n\n renderIcon()\n {\n return (\n <div class=\"n-confirm__icon\">\n <span class={nano.Icons[this.type]}></span>\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-confirm__body\">\n { this.$slots.default && this.$slots.default() || this.trans('Are you sure?') }\n </div>\n );\n },\n\n renderAction()\n {\n let classList = [\n 'n-confirm__action'\n ];\n\n if ( window.WIN ) {\n classList.push('n-reverse');\n }\n\n return (\n <div class={classList}>\n <NButton size={this.buttonSize} type={this.type} link={true} onClick={this.abort}>\n { this.abortText }\n </NButton>\n <NButton size={this.buttonSize} type={this.type} link={false} onClick={this.confirm}>\n { this.confirmText }\n </NButton>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-confirm',\n 'n-confirm--' + this.type,\n 'n-confirm--' + this.size\n ];\n\n let props = {\n type: 'default',\n selector: this.selector,\n listen: this.listen,\n update: this.update,\n width: this.width,\n position: this.position,\n closable: this.closable,\n modelValue: this.tempVisible,\n };\n\n // Override input listener\n props['onUpdate:modelValue'] = this.eventInput;\n\n let innerHtml = {\n raw: () => (\n <div class={classList}>\n { this.ctor('renderIcon')() }\n { this.ctor('renderBody')() }\n { this.ctor('renderAction')() }\n </div>\n )\n };\n\n return (\n <NModal ref=\"modal\" {...props}>\n { innerHtml }\n </NModal>\n );\n }\n\n}\n","import { Arr, Obj, Any, Str } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCascaderPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n clearValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n hover: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n valueProp: {\n default()\n {\n return 'value';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n disabledProp: {\n default()\n {\n return 'disabled';\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window || \n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempHover: this.hover,\n };\n },\n\n watch: {\n\n modelValue(value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n hover(value) {\n if ( value !== this.tempHover ) {\n this.tempHover = value;\n }\n }\n\n },\n\n methods: {\n\n clearCascader()\n {\n this.$emit('update:modelValue', this.tempHover = \n this.tempValue = this.clearValue);\n },\n\n onHover(cascade)\n {\n return (event) => this.hoverItem(cascade, event)\n },\n\n onSelect(cascade)\n {\n return (event) => this.selectItem(cascade, event)\n },\n\n hoverItem(cascade, event = null)\n {\n // Hover intend emulation\n clearTimeout(this.delay);\n\n let updateHover = () => {\n this.$emit('update:hover', \n this.tempHover = cascade);\n };\n\n this.delay = setTimeout(updateHover, 130);\n },\n\n selectItem(cascade, event = null)\n {\n clearTimeout(this.clickTimer);\n\n if ( ! this.lastclick ) {\n this.lastclick = 0;\n }\n\n this.lastclick++;\n\n let trigger = this.touch ? 'click' : \n this.trigger ;\n \n this.clickTimer = setTimeout(() => \n this.lastclick = 0, 240);\n\n this.hoverTimer = setTimeout(() => \n this.hoverItem(cascade), 240);\n\n if ( this.lastclick === 1 && trigger === 'click' ) {\n return this.hoverItem(cascade, event);\n }\n\n if ( event ) {\n event.preventDefault();\n }\n\n this.clickTimer = setTimeout(() => \n this.fireSelectItem(cascade), 50);\n },\n\n fireSelectItem(cascade)\n {\n clearTimeout(this.hoverTimer);\n\n this.lastclick = 0;\n\n this.$emit('update:modelValue', \n this.tempValue = cascade);\n }\n\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-cascader-panel',\n 'n-cascader-panel--' + this.size\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderLabel')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n )\n },\n\n renderOption(item, cascade = [])\n {\n let value = Obj.get(item, this.valueProp);\n\n let classList = [\n 'n-popover-option'\n ];\n\n if ( Arr.has(this.tempValue, item[this.valueProp]) ) {\n classList.push('n-active');\n }\n\n let disabled = Obj.get(item, this.disabledProp, false);\n\n if ( disabled ) {\n classList.push('n-disabled');\n }\n\n let props = {\n size: this.size,\n type: this.type,\n clickClose: false\n };\n\n if ( Arr.last(this.tempValue) === value ) {\n props.icon = nano.Icons.checked;\n }\n\n let tempCascade = Arr.merge(Arr.clone(cascade), [value]);\n\n if ( this.trigger === 'hover' ) {\n props.onMousemove = Any.framerate(this.onHover(tempCascade), 30);\n }\n\n if ( ! disabled ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onSelect(tempCascade);\n }\n\n let children = Obj.get(item, this.childProp);\n\n if ( ! props.icon && ! Any.isEmpty(children) ) {\n props.icon = nano.Icons.angleRight;\n }\n\n return (\n <NPopoverOption class={classList} {...props}>\n { Obj.get(item, this.labelProp) }\n </NPopoverOption>\n );\n },\n\n renderOptions(items, cascade = [])\n {\n if ( Any.isEmpty(items) ) {\n return null;\n }\n\n return (\n <div class=\"n-cascader-panel__items\">\n <NScrollbar relative={true}>\n {\n Arr.each(items, (item) => {\n return this.ctor('renderOption')(item, cascade);\n })\n }\n </NScrollbar>\n </div>\n )\n },\n\n renderCascade()\n {\n let renderList = [\n this.ctor('renderOptions')(this.options)\n ];\n\n let items = this.options, cascade = [];\n\n Arr.each(this.tempHover, (value) => {\n\n if ( ! items ) {\n return;\n }\n\n cascade.push(value);\n\n let item = Arr.find(items, {\n [this.valueProp]: value\n });\n\n items = Obj.get(item, this.childProp);\n\n let options = this.ctor('renderOptions')\n (items, cascade);\n\n renderList.push(options);\n });\n\n return renderList;\n },\n\n render()\n {\n let classList = [\n 'n-cascader-panel',\n 'n-cascader-panel--' + this.size\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>{ this.ctor('renderCascade')() }</div>\n );\n }\n\n}","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCascader',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n clearValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Please select';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n valueProp: {\n default()\n {\n return 'value';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n disabledProp: {\n default()\n {\n return 'disabled';\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempHover: this.modelValue,\n focus: false,\n };\n },\n\n methods: {\n\n clearCascader()\n {\n this.focus = true;\n\n this.$emit('update:modelValue', \n this.tempValue = this.tempHover = this.clearValue);\n },\n\n onCascaderInput(value)\n {\n this.focus = false;\n\n this.$emit('update:modelValue', \n this.tempValue = value);\n },\n\n onCascaderHover(value)\n {\n this.$emit('update:hover', \n this.tempHover = value);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n },\n\n watch: {\n\n modelValue(value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearCascader;\n }\n\n return (\n <div class=\"n-cascader__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-cascader__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderLabelItems()\n {\n let items = this.options, renderList = [];\n\n if ( Any.isEmpty(this.tempValue) ) {\n return (\n <div class=\"n-cascader__placeholder\">\n { this.trans(this.placeholder) }\n </div>\n );\n }\n\n Arr.each(this.tempValue, (value) => {\n\n if ( ! items ) {\n return;\n }\n\n let item = Arr.find(items, {\n [this.valueProp]: value\n });\n\n items = Obj.get(item, this.childProp);\n\n let itemLabel = (\n <div class=\"n-cascader__item\">\n <span>{ Obj.get(item, this.labelProp) }</span>\n </div>\n );\n\n renderList.push(itemLabel);\n });\n\n return (\n <div class=\"n-cascader__items\">\n { renderList }\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-cascader__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderLabelItems')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n let props = Obj.except(this.$props, ['modelValue'], {\n hover: this.tempHover,\n modelValue: this.tempValue,\n });\n\n props['onUpdate:hover'] = this.onCascaderHover;\n props['onUpdate:modelValue'] = this.onCascaderInput;\n\n return (\n <NCascaderPanel class=\"n-cascader__body\" {...props}></NCascaderPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled,\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderItems') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-cascader',\n 'n-cascader--' + this.type,\n 'n-cascader--' + this.size,\n ];\n\n if ( Any.isEmpty(this.tempValue) ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Arr, Str, Now, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatepickerPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n arrive: {\n default()\n {\n return null;\n }\n },\n\n clearArrive: {\n default()\n {\n return null;\n }\n },\n\n depart: {\n default()\n {\n return null;\n }\n },\n\n clearDepart: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su',\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', \n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',\n ]\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n yearsGrid()\n {\n return this.tempCache.getYears();\n },\n\n monthsGrid()\n {\n return this.tempCache.getMonths();\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n arrive(value)\n {\n if ( value !== this.tempArrive.format(this.format) ) {\n this.tempArrive = Now.make(value);\n }\n },\n\n depart(value)\n {\n if ( value !== this.tempDepart.format(this.format) ) {\n this.tempDepart = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n tempView: 'date',\n tempRanger: null,\n cacheArrive: null,\n cacheDepart: null,\n tempValue: Now.make(this.modelValue, this.format),\n tempCache: Now.make(this.modelValue, this.format),\n tempArrive: Now.make(this.arrive),\n tempDepart: Now.make(this.depart),\n }\n },\n\n methods: {\n\n gotoDate()\n {\n this.tempView = 'date';\n },\n\n gotoMonth()\n {\n this.tempView = 'month';\n },\n\n gotoYear()\n {\n this.tempView = 'year';\n },\n\n patchDate(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n if ( Any.isEmpty(this.modelValue) ) {\n now.resetTime();\n } else {\n now.applyTime(this.tempValue);\n }\n\n // Copy now to cache\n this.tempCache = now.clone();\n\n // Copy now to value\n this.tempValue = now.clone();\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n patchMonth(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n this.tempCache = now.clone();\n\n this.gotoDate();\n },\n\n printRange(now)\n {\n this.tempRanger = now.clone();\n },\n\n patchYear(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n this.tempCache = now.clone();\n\n this.gotoMonth();\n },\n\n patchRange(now)\n {\n if ( this.cacheArrive && ! this.cacheDepart ) {\n this.cacheDepart = now.clone();\n }\n\n if ( ! this.cacheArrive && ! this.cacheDepart ) {\n this.cacheArrive = now.clone();\n }\n\n if ( ! this.cacheArrive || ! this.cacheDepart ) {\n return;\n }\n\n this.tempArrive = this.cacheArrive.clone();\n this.tempDepart = this.cacheDepart.clone();\n\n this.$emit('update:arrive', \n this.tempArrive.format(this.format));\n\n this.$emit('update:depart', \n this.tempDepart.format(this.format));\n\n this.cacheArrive = null;\n this.cacheDepart = null;\n\n this.$emit('rangeSelected', [\n this.tempArrive.format(this.format),\n this.tempDepart.format(this.format)\n ]);\n },\n\n },\n\n renderToolbarPrev(closure)\n {\n let props = {\n type: this.type,\n link: true,\n icon: nano.Icons.angleLeft,\n onClick: closure\n };\n\n return (<NButton {...props}></NButton>);\n },\n\n renderToolbarNext(closure)\n {\n let props = {\n type: this.type,\n link: true,\n icon: nano.Icons.angleRight,\n onClick: closure\n };\n\n return (<NButton {...props}></NButton>);\n },\n\n renderToolbarMonth()\n {\n let props = {\n onClick: this.gotoMonth\n };\n\n let monthsHtml = [\n this.months[this.tempCache.month()]\n ];\n\n let month = this.tempCache.clone()\n .addMonths(this.monthPanels - 1);\n\n if ( month.month() !== this.tempCache.month() ) {\n monthsHtml.push(this.months[month.month()]);\n }\n\n return (\n <span class=\"n-datepicker-panel__month\" {...props}>\n { monthsHtml.join(' - ') }\n </span>\n );\n },\n\n renderToolbarYear()\n {\n let props = {\n onClick: this.gotoYear\n };\n\n let yearsHtml = [\n this.tempCache.year()\n ];\n\n let month = this.tempCache.clone()\n .addMonths(this.monthPanels - 1);\n\n if ( month.year() !== this.tempCache.year() ) {\n yearsHtml.push(month.year());\n }\n\n return (\n <span class=\"n-datepicker-panel__year\" {...props}>\n { yearsHtml.join(' - ') }\n </span>\n );\n },\n\n renderToolbar({ prev, next })\n {\n return (\n <div class=\"n-datepicker-panel__toolbar\">\n <div class=\"n-datepicker-panel__display\">\n { this.ctor('renderToolbarMonth')() }\n { this.ctor('renderToolbarYear')() }\n </div>\n <div class=\"n-datepicker-panel__prev\">\n { this.ctor('renderToolbarPrev')(prev) }\n </div>\n <div class=\"n-datepicker-panel__next\">\n { this.ctor('renderToolbarNext')(next) }\n </div>\n </div>\n );\n },\n\n renderDateItem(now, month)\n {\n let classList = [\n 'n-datepicker-panel__day'\n ];\n\n if ( now.equalDate() ) {\n classList.push('n-today');\n }\n\n let isSelected = this.tempValue.valid() && \n now.equalDate(this.tempValue);\n\n if ( isSelected ) {\n classList.push('n-selected');\n }\n\n if ( now.month() === month.month() ) {\n classList.push('n-current');\n }\n\n let isNotBeforeMin = ! this.minDate || \n now.after(this.minDate) || now.equalDate(this.minDate);\n\n let isNotAfterMax = ! this.maxDate || \n now.before(this.maxDate) || now.equalDate(this.maxDate);\n\n if ( ! isNotBeforeMin || ! isNotAfterMax ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( isNotBeforeMin && isNotAfterMax ) {\n props.onClick = () => this.patchDate(now);\n }\n\n return (\n <div class={classList} {...props}>\n <span>{ now.format('DD') }</span>\n </div>\n );\n },\n\n renderRangeDateItem(now, month)\n {\n let classList = [\n 'n-datepicker-panel__day'\n ];\n\n if ( now.equalDate('now') ) {\n classList.push('n-today');\n }\n\n if ( now.month() === month.month() ) {\n classList.push('n-current');\n }\n\n let viewMode = 0;\n\n if ( !! this.cacheArrive ) {\n viewMode++;\n }\n\n if ( !! this.cacheDepart ) {\n viewMode++;\n }\n\n let isTempValid = this.tempArrive.valid() && \n this.tempDepart.valid();\n\n if ( viewMode === 0 && isTempValid ) {\n\n if ( now.between(this.tempArrive, this.tempDepart) ) {\n classList.push('n-between');\n classList.push('n-selected');\n }\n\n let arriveFirst = this.tempArrive.before(this.tempDepart);\n\n if ( now.equalDate(this.tempArrive) ) {\n classList.push(arriveFirst ? 'n-arrive' : 'n-depart');\n classList.push('n-selected');\n }\n\n if ( now.equalDate(this.tempDepart) ) {\n classList.push(arriveFirst ? 'n-depart' : 'n-arrive');\n classList.push('n-selected');\n }\n\n }\n\n if ( viewMode === 1 && this.cacheArrive ) {\n\n if ( now.between(this.cacheArrive, this.tempRanger) ) {\n classList.push('n-between');\n }\n\n let arriveFirst = this.cacheArrive.before(this.tempRanger);\n\n if ( now.equalDate(this.cacheArrive) ) {\n classList.push(arriveFirst ? 'n-arrive' : 'n-depart');\n }\n\n if ( now.equalDate(this.tempRanger) ) {\n classList.push(arriveFirst ? 'n-depart' : 'n-arrive');\n }\n\n }\n\n let isNotBeforeMin = ! this.minDate || \n now.after(this.minDate) || now.equalDate(this.minDate);\n\n let isNotAfterMax = ! this.maxDate || \n now.before(this.maxDate) || now.equalDate(this.maxDate);\n\n if ( ! isNotBeforeMin || ! isNotAfterMax ) {\n classList.push('n-disabled');\n }\n\n let props = {\n onMouseenter: () => this.printRange(now)\n };\n\n if ( isNotBeforeMin && isNotAfterMax ) {\n props.onClick = () => this.patchRange(now);\n }\n\n return (\n <div class={classList} {...props}>\n <span>{ now.format('DD') }</span>\n </div>\n );\n },\n\n renderDate()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevMonth();\n };\n let next = () => {\n this.tempCache = this.tempCache.nextMonth();\n };\n\n let legendHtml = (\n Arr.each(this.weekdays, (day) => {\n return (\n <div class=\"n-datepicker-panel__day\">\n <span>{ this.trans(day) }</span>\n </div>\n );\n })\n );\n\n let renderItem = this.ctor('renderDateItem');\n\n if ( this.range ) {\n renderItem = this.ctor('renderRangeDateItem');\n }\n\n let bodyHtml = (month) => (\n Arr.each(Arr.chunk(month.getDatesGrid(), 7), (chunks) => {\n return (\n <div class=\"n-datepicker-panel__week\">\n { Arr.each(chunks, (chunk) => renderItem(chunk, month)) }\n </div>\n );\n })\n );\n\n let panelHtml = (\n Arr.each(Arr.make(this.monthPanels), (offset) => {\n\n let month = this.tempCache.clone()\n .addMonths(offset - 1);\n\n return (\n <div class=\"n-datepicker-panel__panel\">\n <div class=\"n-datepicker-panel__legend\">\n { legendHtml }\n </div>\n <div class=\"n-datepicker-panel__body\">\n { bodyHtml(month) }\n </div>\n </div>\n );\n })\n );\n\n return (\n <div class=\"n-datepicker-panel__dateview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__panels\">\n { panelHtml }\n </div>\n </div>\n );\n },\n\n renderMonthItem(now)\n {\n let classList = [\n 'n-datepicker-panel__month'\n ];\n\n if ( now.equal(this.tempCache, 'YYYYMM') ) {\n classList.push('n-selected');\n }\n\n if ( now.month() === Now.make('now').month() ) {\n classList.push('n-current');\n }\n\n let props = {\n onClick: () => this.patchMonth(now)\n };\n\n return (\n <div class={classList} {...props}>\n <span>{ this.trans(this.months[now.month()]) }</span>\n </div>\n )\n },\n\n renderMonth()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevYear();\n };\n\n let next = () => {\n this.tempCache = this.tempCache.nextYear();\n };\n\n return (\n <div class=\"n-datepicker-panel__monthview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__body\">\n <div class=\"n-datepicker-panel__year\">\n { Arr.each(this.monthsGrid, this.ctor('renderMonthItem')) }\n </div>\n </div>\n <div class=\"n-datepicker-panel__footer\">\n <NButton size={this.type} size={this.size} link={true} onClick={this.gotoDate}>\n { this.trans('Go back') }\n </NButton>\n </div>\n </div>\n );\n },\n\n renderYearItem(now)\n {\n let classList = [\n 'n-datepicker-panel__year'\n ];\n\n if ( now.equal(this.tempCache, 'YYYY') ) {\n classList.push('n-selected');\n }\n\n if ( now.year() === Now.make('now').year() ) {\n classList.push('n-current');\n }\n\n let props = {\n onClick: () => this.patchYear(now)\n };\n\n return (\n <div class={classList} {...props}>\n <span>{ now.year() }</span>\n </div>\n )\n },\n\n renderYear()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevDecade();\n };\n\n let next = () => {\n this.tempCache = this.tempCache.nextDecade();\n };\n\n return (\n <div class=\"n-datepicker-panel__yearview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__body\">\n <div class=\"n-datepicker-panel__decade\">\n { Arr.each(this.yearsGrid, this.ctor('renderYearItem')) }\n </div>\n </div>\n <div class=\"n-datepicker-panel__footer\">\n <NButton size={this.type} size={this.size} link={true} onClick={this.gotoDate}>\n { this.trans('Go back') }\n </NButton>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-datepicker-panel',\n 'n-datepicker-panel--' + this.size,\n 'n-datepicker-panel--' + this.type\n ]\n\n return (\n <div class={classList}>\n { this.ctor('render' + Str.ucfirst(this.tempView))() }\n </div>\n );\n }\n\n}","import { Obj, Now, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatepicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n arrive: {\n default()\n {\n return null;\n }\n },\n\n clearArrive: {\n default()\n {\n return null;\n }\n },\n\n depart: {\n default()\n {\n return null;\n }\n },\n\n clearDepart: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select date');\n },\n type: [String]\n },\n\n placeholderArrive: {\n default()\n {\n return Locale.trans('Start date');\n },\n type: [String]\n },\n\n placeholderDepart: {\n default()\n {\n return Locale.trans('End date');\n },\n type: [String]\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n rangeSeparator: {\n default()\n {\n return '-';\n },\n type: [String]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD');\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n Locale.trans('Mo'),\n Locale.trans('Tu'),\n Locale.trans('We'),\n Locale.trans('Th'),\n Locale.trans('Fr'),\n Locale.trans('Sa'),\n Locale.trans('Su'),\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n Locale.trans('Jan'),\n Locale.trans('Feb'),\n Locale.trans('Mar'),\n Locale.trans('Apr'),\n Locale.trans('May'),\n Locale.trans('Jun'),\n Locale.trans('Jul'),\n Locale.trans('Aug'),\n Locale.trans('Sep'),\n Locale.trans('Oct'),\n Locale.trans('Nov'),\n Locale.trans('Dec'),\n ];\n },\n type: [Array]\n }\n\n },\n\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n arrive(value)\n {\n if ( value !== this.tempArrive.format(this.format) ) {\n this.tempArrive = Now.make(value);\n }\n },\n\n depart(value)\n {\n if ( value !== this.tempDepart.format(this.format) ) {\n this.tempDepart = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false,\n tempValue: Now.make(this.modelValue, this.format),\n tempArrive: Now.make(this.arrive, this.format),\n tempDepart: Now.make(this.depart, this.format),\n };\n },\n\n methods: {\n\n clearDatepicker()\n {\n this.range ? this.clearRangeDatepicker() :\n this.clearSingleDatepicker();\n },\n\n clearSingleDatepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n\n clearRangeDatepicker()\n {\n this.tempArrive = Now.make(this.clearArrive, \n this.format);\n\n this.$emit('update:arrive', this.clearValue);\n\n this.tempDepart = Now.make(this.clearDepart, \n this.format);\n\n this.$emit('update:depart', this.clearDepart);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onArriveInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempArrive = Now.make(moment);\n\n this.$emit('update:arrive', \n this.tempArrive.format(this.format));\n },\n\n onDepartInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempDepart = Now.make(moment);\n\n this.$emit('update:depart', \n this.tempDepart.format(this.format));\n },\n\n onDatepickerInput(value)\n {\n this.focus = false;\n\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n onDatepickerDepart(value)\n {\n this.focus = false;\n\n this.tempDepart = Now.make(value, \n this.format);\n\n this.$emit('update:depart', value);\n },\n\n onDatepickerArrive(value)\n {\n this.focus = false;\n\n this.tempArrive = Now.make(value, \n this.format);\n\n this.$emit('update:arrive', value);\n },\n\n },\n\n\n renderLabelClear()\n {\n let isEmpty = ! this.tempArrive.initialDate &&\n ! this.tempDepart.initialDate;\n\n if ( ! this.range ) {\n isEmpty = ! this.tempValue.initialDate;\n }\n\n if ( ! this.clearable || isEmpty ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearDatepicker;\n }\n\n return (\n <div class=\"n-datepicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-datepicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderRange()\n {\n let arriveProps = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholderArrive,\n onInput: this.onArriveInput,\n };\n\n if ( this.tempArrive.valid() ) {\n arriveProps.value = this.tempArrive.format(\n this.displayFormat, true);\n }\n\n let departProps = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholderDepart,\n onInput: this.onDepartInput,\n };\n\n if ( this.tempDepart.valid() ) {\n departProps.value = this.tempDepart.format(\n this.displayFormat, true);\n }\n\n return [\n (\n <div class=\"n-datepicker__input\">\n <input {...arriveProps}/>\n </div>\n ),\n (\n <div class=\"n-datepicker__seperator\">\n <span>{ this.rangeSeparator }</span>\n </div>\n ),\n (\n <div class=\"n-datepicker__input\">\n <input {...departProps}/>\n </div>\n )\n ];\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-datepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-datepicker__display'\n ];\n\n if ( this.range ) {\n classList.push('n-range');\n }\n\n let displayHtml = this.ctor('renderSingle');\n\n if ( this.range ) {\n displayHtml = this.ctor('renderRange');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { displayHtml() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n \n let props = Obj.except(this.$props, ['modelValue'], {\n arrive: this.tempArrive.format(this.format) || null,\n depart: this.tempDepart.format(this.format) || null,\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:arrive'] = this.onDatepickerArrive;\n props['onUpdate:depart'] = this.onDatepickerDepart;\n props['onUpdate:modelValue'] = this.onDatepickerInput;\n\n return (\n <NDatepickerPanel class=\"n-datepicker__body\" {...props}></NDatepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderItems') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-datepicker',\n 'n-datepicker--' + this.type,\n 'n-datepicker--' + this.size,\n ];\n\n let isEmpty = ! this.tempArrive.initialDate &&\n ! this.tempDepart.initialDate;\n\n if ( ! this.range ) {\n isEmpty = ! this.tempValue.initialDate;\n }\n\n if ( isEmpty ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Arr, Obj, Now, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTimepickerPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Select time';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return 'HH:mm:ss';\n },\n type: [String]\n },\n\n hoursInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n minutesInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n secondsInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n hoursGrid()\n {\n return this.tempValue.getHours(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutes(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSeconds(this.secondsInterval);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n }\n\n },\n\n data()\n {\n let modelValue = Now.make(this.modelValue);\n\n if ( Any.isEmpty(this.modelValue) ) {\n modelValue = modelValue.resetTime();\n }\n\n return {\n tempValue: modelValue,\n }\n },\n\n mounted()\n {\n this.scrollTo();\n },\n\n methods: {\n\n eventSelect(now)\n {\n this.$emit('update:modelValue',\n (this.tempValue = now.clone()).format(this.format));\n },\n\n scrollTo()\n {\n let scrollbars = Obj.only(this.$refs, [\n 'hour', 'minute', 'second'\n ]);\n\n Arr.each(scrollbars, (ref, key) => {\n ref.scrollIntoView(`[data-index=\"${this.tempValue[key]()}\"]`);\n });\n }\n\n },\n\n renderToolbar()\n {\n return (\n <div class=\"n-timepicker-panel__toolbar\">\n <div class=\"n-timepicker-panel__display\">\n <span class=\"n-timepicker-panel__time\">\n {this.tempValue.format(this.displayFormat) || this.placeholder}\n </span>\n </div>\n </div>\n )\n },\n\n renderHourItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.hour() === this.tempValue.hour() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.hour()}>\n <span>{now.format('HH')}</span>\n </div>\n );\n },\n\n renderHourPanel()\n {\n if ( !this.displayFormat.match('HH') ) {\n return null;\n }\n\n return (\n <NScrollbar ref=\"hour\" class=\"n-timepicker-panel__panel\" wrapClass=\"n-timepicker-panel__wrap\">\n {Arr.each(this.hoursGrid, this.ctor('renderHourItem'))}\n </NScrollbar>\n );\n },\n\n renderMinuteItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.minute() === this.tempValue.minute() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.minute()}>\n <span>{now.format('mm')}</span>\n </div>\n );\n },\n\n renderMinutePanel()\n {\n if ( !this.displayFormat.match('mm') ) {\n return null;\n }\n\n return (\n <NScrollbar ref=\"minute\" class=\"n-timepicker-panel__panel\" wrapClass=\"n-timepicker-panel__wrap\">\n {Arr.each(this.minutesGrid, this.ctor('renderMinuteItem'))}\n </NScrollbar>\n );\n },\n\n renderSecondItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.second() === this.tempValue.second() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.second()}>\n <span>{now.format('ss')}</span>\n </div>\n );\n },\n\n renderSecondPanel()\n {\n if ( !this.displayFormat.match('ss') ) {\n return null;\n }\n\n return (\n <NScrollbar ref=\"second\" class=\"n-timepicker-panel__panel\" wrapClass=\"n-timepicker-panel__wrap\">\n {Arr.each(this.secondsGrid, this.ctor('renderSecondItem'))}\n </NScrollbar>\n );\n },\n\n render()\n {\n let classList = [\n 'n-timepicker-panel',\n 'n-timepicker-panel--' + this.size,\n 'n-timepicker-panel--' + this.type,\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-timepicker-panel__header\">\n {this.ctor('renderToolbar')()}\n </div>\n <div class=\"n-timepicker-panel__body\">\n {this.ctor('renderHourPanel')()}\n {this.ctor('renderMinutePanel')()}\n {this.ctor('renderSecondPanel')()}\n </div>\n </div>\n );\n }\n\n}","import { Arr, Obj, Now, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTimepicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Select time';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('HH:mm:ss');\n },\n type: [String]\n },\n\n hoursInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n minutesInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n secondsInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n hoursGrid()\n {\n return this.tempValue.getHours(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutes(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSeconds(this.secondsInterval);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n }\n\n },\n\n data()\n {\n return {\n focus: false,\n tempValue: Now.make(this.modelValue),\n }\n },\n\n methods: {\n\n clearTimepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n hour: value.moment.hour(), \n minute: value.moment.minute(), \n second: value.moment.second(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onTimepickerInput(value)\n {\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || ! this.tempValue.valid() ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearTimepicker;\n }\n\n return (\n <div class=\"n-timepicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-timepicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.disabled,\n placeholder: this.trans(this.placeholder),\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-timepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-timepicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderSingle')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderPanel()\n {\n \n let props = Obj.except(this.$props, ['modelValue'], {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onTimepickerInput;\n\n return (\n <NTimepickerPanel class=\"n-timepicker__body\" {...props}></NTimepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderPanel') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-timepicker',\n 'n-timepicker--' + this.type,\n 'n-timepicker--' + this.size,\n ];\n\n if ( ! this.tempValue.valid() ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Obj, Now, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatetimepicker',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select datetime');\n },\n type: [String]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm:ss');\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n Locale.trans('Mo'),\n Locale.trans('Tu'),\n Locale.trans('We'),\n Locale.trans('Th'),\n Locale.trans('Fr'),\n Locale.trans('Sa'),\n Locale.trans('Su'),\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n Locale.trans('Jan'),\n Locale.trans('Feb'),\n Locale.trans('Mar'),\n Locale.trans('Apr'),\n Locale.trans('May'),\n Locale.trans('Jun'),\n Locale.trans('Jul'),\n Locale.trans('Aug'),\n Locale.trans('Sep'),\n Locale.trans('Oct'),\n Locale.trans('Nov'),\n Locale.trans('Dec'),\n ];\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: Now.make(this.modelValue, this.format),\n };\n },\n\n methods: {\n\n clearDatetimepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n hour: value.moment.hour(),\n minute: value.moment.minute(),\n second: value.moment.second(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onDatepickerInput(value)\n {\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n onTimepickerInput(value)\n {\n this.tempValue = Now.make(value,\n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n },\n\n\n renderLabelClear()\n {\n let isEmpty = ! this.tempValue.initialDate;\n\n if ( ! this.clearable || isEmpty ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.clearDatetimepicker;\n }\n\n return (\n <div class=\"n-datetimepicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-datetimepicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-datetimepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-datetimepicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderSingle')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderPanels()\n {\n return (\n <div class=\"n-datetimepicker__body\">\n {[this.ctor('renderDatePanel')(), this.ctor('renderTimePanel')()]}\n </div>\n );\n },\n\n renderDatePanel()\n {\n let props = Obj.only(this.$props, [\n 'minDate', 'maxDate', 'size', 'type', 'format', 'monthPanels', 'disabled', 'weekdays', 'months'\n ]);\n\n props = Obj.assign(props, {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onDatepickerInput;\n\n return (\n <NDatepickerPanel class=\"n-datetimepicker__date-panel\" {...props}></NDatepickerPanel>\n );\n },\n\n renderTimePanel()\n {\n let props = Obj.only(this.$props, [\n 'size', 'type', 'format', 'disabled', 'hoursInterval', 'minutesInterval', 'secondsInterval'\n ]);\n\n props = Obj.assign(props, {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onTimepickerInput;\n\n return (\n <NTimepickerPanel class=\"n-datetimepicker__time-panel\" {...props}></NTimepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.deepDisabled\n };\n\n let slots = {\n raw: this.ctor('renderPanels')\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props} v-slots={slots} />\n );\n },\n\n render()\n {\n let classList = [\n 'n-datetimepicker',\n 'n-datetimepicker--' + this.type,\n 'n-datetimepicker--' + this.size,\n ];\n\n let isEmpty = ! this.tempValue.initialDate;\n\n if ( isEmpty ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Any, Obj, Arr, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDurationpicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n options: {\n default()\n {\n return [\n 60 * 5,\n 60 * 10,\n 60 * 15,\n 60 * 30,\n 60 * 45,\n 60 * 60,\n 60 * 90,\n 60 * 120,\n 60 * 150,\n 60 * 60 * 3,\n 60 * 60 * 4,\n 60 * 60 * 5,\n 60 * 60 * 6,\n 60 * 60 * 12,\n 60 * 60 * 24,\n 60 * 60 * 24 * 2,\n 60 * 60 * 24 * 3,\n 60 * 60 * 24 * 4,\n 60 * 60 * 24 * 5,\n 60 * 60 * 24 * 6,\n 60 * 60 * 24 * 7,\n ];\n },\n type: [Array]\n },\n\n minDuration: {\n default()\n {\n return null;\n }\n },\n\n maxDuration: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select duration');\n },\n type: [String]\n },\n\n negativeText: {\n default()\n {\n return Locale.trans('Negative duration');\n },\n type: [String]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n days: {\n default()\n {\n return Locale.trans(':count Day|:count Days');\n },\n type: [String]\n },\n\n hours: {\n default()\n {\n return Locale.trans(':count Hour|:count Hours');\n },\n type: [String]\n },\n\n minutes: {\n default()\n {\n return Locale.trans(':count Minute|:count Minutes');\n },\n type: [String]\n },\n\n seconds: {\n default()\n {\n return Locale.trans(':count Second|:count Seconds');\n },\n type: [String]\n }\n\n },\n\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.modelValue, editValue: null\n };\n },\n\n methods: {\n\n findPattern(text, pattern)\n {\n pattern = pattern.replaceAll(':count', '([0-9\\.\\,]+)')\n .replaceAll(' ', '\\\\s*');\n\n return text.match(new RegExp(pattern, 'i'));\n },\n\n humanizeValue(value)\n {\n if ( Any.isEmpty(value) ) {\n return '';\n }\n\n if ( value < 0 ) {\n return this.negativeText;\n }\n\n let seconds = value;\n\n // Extract minutes\n let minutes = Math.floor(seconds/60);\n seconds -= minutes * 60;\n\n // Extract hours\n let hours = Math.floor(minutes/60);\n minutes -= hours * 60;\n\n\n // Extract days\n let days = Math.floor(hours/24);\n hours -= days * 24;\n\n let text = [];\n\n if ( days ) {\n text.push(Locale.choice(this.days, days));\n }\n\n if ( hours ) {\n text.push(Locale.choice(this.hours, hours));\n }\n\n if ( minutes ) {\n text.push(Locale.choice(this.minutes, minutes));\n }\n\n if ( seconds ) {\n text.push(Locale.choice(this.seconds, seconds));\n }\n\n return text.join(' ');\n },\n\n digitizeValue(text)\n {\n if ( Any.isEmpty(text) ) {\n return this.clearValue;\n }\n\n let value = 0;\n\n let dmatch = this.findPattern(text, this.days);\n\n if ( dmatch && dmatch.length === 3 ) {\n value += Any.float(dmatch[1].replace(',', '.')) * 24 * 60 * 60;\n }\n\n let hmatch = this.findPattern(text, this.hours);\n\n if ( hmatch && hmatch.length === 3 ) {\n value += Any.float(hmatch[1].replace(',', '.')) * 60 * 60;\n }\n\n let mmatch = this.findPattern(text, this.minutes);\n\n if ( mmatch && mmatch.length === 3 ) {\n value += Any.float(mmatch[1].replace(',', '.')) * 60;\n }\n\n let smatch = this.findPattern(text, this.seconds);\n\n if ( smatch && smatch.length === 3 ) {\n value += Any.float(smatch[1].replace(',', '.'));\n }\n\n return value;\n },\n\n clearDurationpicker()\n {\n this.$emit('update:modelValue', this.tempValue = this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(e)\n {\n let value = this.digitizeValue(e.target.value);\n\n if ( value === this.tempValue ) {\n return;\n }\n\n this.editValue = value;\n },\n\n onValueChange(e)\n {\n let value = this.editValue;\n\n // Clear edit value\n this.editValue = null;\n\n if ( ! value || value === this.tempValue ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = value);\n },\n\n onDurationpickerInput(value)\n {\n this.focus = false;\n\n // Clear edit value\n this.editValue = null;\n\n this.$emit('update:modelValue', this.tempValue = value);\n },\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || ! this.tempValue ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearDurationpicker;\n }\n\n return (\n <div class=\"n-durationpicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-durationpicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderInput()\n {\n let props = {\n value: this.humanizeValue(this.tempValue),\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n onBlur: this.onValueChange,\n onChange: this.onValueChange,\n };\n\n return (\n <div class=\"n-durationpicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-durationpicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderInput')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n return Arr.each(this.options, (value) => {\n\n let text = this.humanizeValue(value);\n\n let optionProps = {\n //\n };\n\n optionProps['onClick'] = () => {\n this.onDurationpickerInput(value);\n }\n\n return (<NPopoverOption {...optionProps}>{text}</NPopoverOption>)\n });\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: -1,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n let slots = {};\n\n slots.raw = () => {\n\n let scrollProps = {\n relative: true, size: this.size\n }\n\n return (\n <NScrollbar ref=\"scrollbar\" class=\"n-durationpicker__body\" {...scrollProps}>\n {this.ctor('renderItems')()}\n </NScrollbar>\n )\n }\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props} v-slots={slots} />\n );\n },\n\n render()\n {\n let classList = [\n 'n-durationpicker',\n 'n-durationpicker--' + this.type,\n 'n-durationpicker--' + this.size,\n ];\n\n if ( ! this.tempValue ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Str, Arr, Obj, Any, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTransfer',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n sourceLabel: {\n default()\n {\n return 'Source';\n },\n type: [String]\n },\n\n targetLabel: {\n default()\n {\n return 'Target';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n sourceChecked()\n {\n return !! this.selectedSource.length && \n this.selectedSource.length === this.tempSource.length;\n },\n\n sourceIntermediate()\n {\n return !! this.selectedSource.length && \n this.selectedSource.length !== this.tempSource.length;\n },\n\n targetChecked()\n {\n return !! this.selectedTarget.length && \n this.selectedTarget.length === this.tempTarget.length;\n },\n\n targetIntermediate()\n {\n return !! this.selectedTarget.length && \n this.selectedTarget.length !== this.tempTarget.length;\n },\n\n tempSource()\n {\n let source = Arr.filter(this.options, (item) => {\n return ! Arr.find(this.tempValue, { [this.uniqueProp]: item[this.uniqueProp] });\n });\n\n if ( Any.isEmpty(this.sourceSearch) ) {\n return Arr.clone(source);\n }\n\n let searchPattern = new RegExp(this.sourceSearch, 'i');\n\n source = Arr.filter(source, (item) => {\n return item[this.labelProp].match(searchPattern);\n });\n\n return Arr.clone(source);\n },\n\n tempTarget()\n {\n let target = Arr.filter(this.options, (item) => {\n return !! Arr.find(this.tempValue, { [this.uniqueProp]: item[this.uniqueProp] });\n });\n\n if ( Any.isEmpty(this.targetSearch) ) {\n return Arr.clone(target);\n }\n\n let searchPattern = new RegExp(this.targetSearch, 'i');\n\n target = Arr.filter(target, (item) => {\n return item[this.labelProp].match(searchPattern);\n });\n\n return Arr.clone(target);\n }\n\n },\n data()\n {\n return {\n uid: UUID(),\n tempValue: this.modelValue,\n sourceSearch: '',\n targetSearch: '',\n selectedSource: [],\n selectedTarget: []\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n moveItemsTarget(options)\n {\n Arr.each(options, (source) => {\n\n let item = Arr.find(this.options, {\n [this.uniqueProp]: source\n });\n\n Arr.add(this.tempValue, item, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.$emit('input', this.tempValue);\n },\n\n moveItemsSource(options)\n {\n Arr.each(options, (source) => {\n\n Arr.remove(this.tempValue, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.$emit('input', this.tempValue);\n },\n\n moveRowTarget(node)\n {\n // Get node unique\n let target = node.value[this.uniqueProp];\n\n // Remove item from selected list\n Arr.remove(this.selectedTarget, target);\n\n this.tempValue = Arr.remove(this.tempValue, {\n [this.uniqueProp]: target\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveRowSource(node)\n {\n // Get node unique\n let source = node.value[this.uniqueProp];\n\n // Remove item from selected list\n Arr.remove(this.selectedSource, source);\n\n Arr.add(this.tempValue, node.item, source, {\n [this.uniqueProp]: source\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveToSource()\n {\n Arr.each(this.selectedTarget, (target) => {\n\n Arr.remove(this.tempValue, {\n [this.uniqueProp]: target\n });\n\n });\n\n this.selectedTarget = [];\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveToTarget()\n {\n Arr.each(this.selectedSource, (source) => {\n\n let item = Arr.find(this.options, {\n [this.uniqueProp]: source\n });\n\n Arr.add(this.tempValue, item, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.selectedSource = [];\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n updateSelectedSource(selected)\n {\n this.selectedSource = selected;\n },\n\n updateSelectedTarget(selected)\n {\n this.selectedTarget = selected;\n }\n\n },\n\n renderSourceSelect()\n {\n let props = {\n modelValue: this.sourceChecked,\n size: this.size,\n type: this.type,\n intermediate: this.sourceIntermediate,\n disabled: ! this.tempSource.length\n };\n\n props['onUpdate:modelValue'] = () => {\n this.$refs.source.selectAll();\n };\n\n return (\n <div class=\"n-transfer__select\">\n <NCheckbox {...props} />\n </div>\n );\n },\n\n renderSourceTitle()\n {\n let labelHtml = (\n <span class=\"n-transfer__item-title\">\n { this.sourceLabel }\n </span>\n );\n\n let counterHtml = (\n <span class=\"n-transfer__item-count\">\n { this.tempSource.length }\n </span>\n );\n\n return (\n <div class=\"n-transfer__title\">\n { [labelHtml, counterHtml] }\n </div>\n );\n },\n\n renderSourceHeader()\n {\n return (\n <div class=\"n-transfer__header\">\n { this.ctor('renderSourceSelect')() }\n { this.ctor('renderSourceTitle')() }\n </div>\n );\n },\n\n renderSourceSearch()\n {\n let props = {\n placeholder: this.trans('Search item'),\n size: this.size,\n type: this.type,\n icon: nano.Icons.times,\n iconDisabled: ! this.sourceSearch\n };\n\n props['onIconClick'] = () => {\n this.sourceSearch = '';\n };\n\n props['onUpdate:modelValue'] = () => {\n this.selectedSource = [];\n };\n\n return (\n <div class=\"n-transfer__search\">\n <NInput vModel={this.sourceSearch} {...props} />\n </div>\n )\n },\n\n renderSourceBody()\n {\n let props = {\n group: [this.uid + 'source'],\n allowGroups: [this.uid + 'target'],\n items: this.tempSource,\n size: this.size,\n type: this.type,\n renderSelect: true,\n selected: this.selectedSource,\n safezone: () => -10,\n disableMove: true,\n renderNode: this.ctor('renderNode'),\n onMove: this.moveItemsSource,\n 'onRowDblclick': this.moveRowSource,\n 'onUpdate:selected': this.updateSelectedSource\n };\n\n return (\n <NDraglist ref=\"source\" class=\"n-transfer__body\" {...props} />\n );\n },\n\n renderTargetSelect()\n {\n let props = {\n modelValue: this.targetChecked,\n size: this.size,\n type: this.type,\n intermediate: this.targetIntermediate,\n disabled: ! this.tempTarget.length\n };\n\n props['onUpdate:modelValue'] = () => {\n this.$refs.target.selectAll();\n };\n\n return (\n <div class=\"n-transfer__select\">\n <NCheckbox {...props} />\n </div>\n );\n },\n\n renderTargetTitle()\n {\n let labelHtml = (\n <span class=\"n-transfer__item-title\">\n { this.targetLabel }\n </span>\n );\n\n let counterHtml = (\n <span class=\"n-transfer__item-count\">\n { this.tempTarget.length }\n </span>\n );\n\n return (\n <div class=\"n-transfer__title\">\n { [labelHtml, counterHtml] }\n </div>\n );\n },\n\n renderTargetHeader()\n {\n return (\n <div class=\"n-transfer__header\">\n { this.ctor('renderTargetSelect')() }\n { this.ctor('renderTargetTitle')() }\n </div>\n );\n },\n\n renderTargetSearch()\n {\n let props = {\n placeholder: this.trans('Search item'),\n size: this.size,\n type: this.type,\n icon: nano.Icons.times,\n iconDisabled: ! this.targetSearch\n };\n\n props['onIconClick'] = () => {\n this.targetSearch = '';\n };\n\n props['onUpdate:modelValue'] = () => {\n this.selectedTarget = [];\n };\n\n return (\n <div class=\"n-transfer__search\">\n <NInput vModel={this.targetSearch} {...props} />\n </div>\n )\n },\n\n renderTargetBody()\n {\n let props = {\n group: [this.uid + 'target'],\n allowGroups: [this.uid + 'source'],\n items: this.tempTarget,\n size: this.size,\n type: this.type,\n renderSelect: true,\n selected: this.selectedTarget,\n safezone: () => -1,\n disableMove: true,\n renderNode: this.ctor('renderNode'),\n onMove: this.moveItemsTarget,\n 'onRowDblclick': this.moveRowTarget,\n 'onUpdate:selected': this.updateSelectedTarget\n };\n\n return (\n <NDraglist ref=\"target\" class=\"n-transfer__body\" {...props} />\n );\n },\n\n renderNode(props)\n {\n if ( this.$slots.default ) {\n return this.$slots.default(props);\n }\n\n return (\n <div class=\"n-transfer__item\">\n { Obj.get(props.item, this.labelProp) }\n </div>\n );\n },\n\n renderMoveSource()\n {\n let props = {\n disabled: ! this.selectedSource.length,\n size: this.size,\n type: this.type,\n square: true, \n icon: nano.Icons.angleRight,\n onClick: this.moveToTarget\n };\n\n return (\n <NButton {...props} />\n );\n },\n\n renderMoveTarget()\n {\n let props = {\n disabled: ! this.selectedTarget.length,\n size: this.size,\n type: this.type,\n square: true, \n icon: nano.Icons.angleLeft,\n onClick: this.moveToSource\n };\n return (\n <NButton {...props} />\n );\n },\n\n render($render)\n {\n let classList = [\n 'n-transfer',\n 'n-transfer--' + this.size,\n 'n-transfer--' + this.type,\n ]\n\n return (\n <div class={classList}>\n <div class=\"n-transfer__panel\">\n { this.ctor('renderSourceHeader')() }\n { this.ctor('renderSourceSearch')() }\n { this.ctor('renderSourceBody')() }\n </div>\n <div class=\"n-transfer__controls\">\n { this.ctor('renderMoveSource')() }\n { this.ctor('renderMoveTarget')() }\n </div>\n <div class=\"n-transfer__panel\">\n { this.ctor('renderTargetHeader')() }\n { this.ctor('renderTargetSearch')() }\n { this.ctor('renderTargetBody')() }\n </div>\n </div>\n );\n }\n\n}","import { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NForm',\n\n inheritAttrs: false,\n\n model: {\n prop: 'form'\n },\n\n props: {\n\n dom: {\n default()\n {\n return 'div';\n },\n type: [String]\n },\n\n form: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n errors: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n kind: {\n default()\n {\n return 'classic';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'vertical';\n },\n type: [String]\n },\n\n prevent: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n ignore: {\n default()\n {\n return ['modified', 'dragid'];\n },\n type: [Array]\n },\n\n forceChange: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n forceErrors: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n classList()\n {\n if ( ! this.$attrs.class ) {\n return [];\n }\n\n return Any.isArray(this.$attrs) ? this.$attrs.class :\n [this.$attrs.class];\n }\n\n },\n\n data()\n {\n return {\n uid: UUID(), elements: [], groups: {}, blocked: true,\n };\n },\n\n provide()\n {\n return {\n NForm: this\n };\n },\n\n mounted()\n {\n Any.delay(this.ctor('ready'), 500);\n },\n\n ready()\n {\n this.$watch('form', this.emitChange,\n { deep: true });\n\n this.resetChange();\n },\n\n methods: {\n\n registerGroup(group)\n {\n this.groups[group.key] = group;\n },\n\n unregisterGroup(group)\n {\n delete this.groups[group.key];\n },\n\n onSubmit(event)\n {\n if ( this.prevent ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if ( Dom.find(event.target).is('input') ) {\n this.$emit('submit', event);\n }\n\n return this.prevent;\n },\n\n addItem(item)\n {\n Arr.add(this.elements, item, {\n uid: item.uid\n });\n },\n\n removeItem(item)\n {\n Arr.remove(this.elements,{\n uid: item.uid\n });\n },\n\n resetChange(timeout = 500)\n {\n clearTimeout(this.timeout);\n\n this.timeout = setTimeout(() => {\n this.blocked = false;\n }, timeout);\n\n this.blocked = true;\n\n let value = Obj.except(this.form,\n this.ignore);\n\n this.prevState = JSON.stringify(value);\n },\n\n emitChange()\n {\n if ( this.blocked ) {\n return;\n }\n\n let value = Obj.except(this.form,\n this.ignore);\n\n let nextState = JSON.stringify(value);\n\n if ( this.prevState == nextState ) {\n return;\n }\n\n this.prevState = nextState;\n\n this.$emit('change');\n },\n\n },\n\n render()\n {\n let classList = [\n 'n-form',\n 'n-form--' + this.align,\n ];\n\n let attrs = Obj.except(this.$attrs, ['class', 'onChange', 'onSubmit'], {\n class: this.cmer(classList)\n });\n\n attrs['onSubmit'] = (e) => {\n return false;\n }\n\n return h(this.dom, { ...attrs }, [\n this.$slots.default && this.$slots.default()\n ]);\n }\n\n}\n","import { UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormGroup',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NFormFrame: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n key: {\n default()\n {\n return UUID();\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n }\n },\n\n size: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n kind: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'vertical';\n },\n type: [String]\n },\n\n collapse: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltipPosition: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n }\n\n },\n\n mounted()\n {\n if ( this.NForm ) {\n this.NForm.registerGroup(this);\n }\n },\n\n unmounted()\n {\n if ( this.NForm ) {\n this.NForm.unregisterGroup(this);\n }\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n toggleGroup()\n {\n this.$emit('update:modelValue', this.tempValue = ! this.tempValue);\n },\n\n openGroup()\n {\n this.$emit('update:modelValue', this.tempValue = true);\n },\n\n closeGroup()\n {\n this.$emit('update:modelValue', this.tempValue = true);\n }\n\n },\n\n renderCollapse()\n {\n if ( ! this.collapse ) {\n return null;\n }\n\n return (\n <div class=\"n-form-group__collapse\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-form-group__icon\">\n <i class={['n-icon', this.icon]}></i>\n </div>\n );\n },\n\n renderText()\n {\n let textHtml = (\n <div class=\"n-form-group__text\">\n <span>{ this.label }</span>\n </div>\n );\n\n return (\n <div class=\"n-form-group__label\">\n { [this.ctor('renderIcon')(), textHtml] } \n </div>\n );\n },\n\n renderAction()\n {\n if ( ! this.$slots.action ) {\n return null;\n }\n\n return (\n <div class=\"n-form-group__action\">\n { this.$slots.action() }\n </div>\n );\n },\n\n renderLabel()\n {\n return (\n <div class=\"n-form-group__legend\" onClick={this.toggleGroup}>\n { this.ctor('renderCollapse')() }\n { this.ctor('renderText')() }\n { this.ctor('renderAction')() }\n </div>\n );\n },\n\n renderTooltip()\n {\n if ( ! this.tooltip ) {\n return null;\n }\n\n return (\n <NPopover type=\"tooltip\" size=\"sm\" position={this.tooltipPosition}>\n {this.tooltip}\n </NPopover>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-form-group__body\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NForm ) {\n size = size || this.NForm.size;\n }\n\n let kind = this.kind;\n\n if ( this.NFormFrame ) {\n kind = kind || this.NFormFrame.kind;\n }\n\n if ( this.NForm ) {\n kind = kind || this.NForm.kind;\n }\n\n let classList = [\n 'n-form-group', \n 'n-form-group--' + size,\n 'n-form-group--' + kind,\n 'n-form-group--' + this.type,\n 'n-form-group--' + this.align,\n ];\n\n if ( this.collapse ) {\n classList.push('n-form-group--collapse');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n if ( this.$slots.action ) {\n classList.push('n-action');\n }\n\n return (\n <fieldset id={this.key} class={classList} data-group-key={this.key}>\n { this.ctor('renderLabel')() }\n { this.ctor('renderTooltip')() }\n { this.ctor('renderBody')() }\n </fieldset>\n );\n }\n}\n","import { Arr, Obj, Any, Dom, UUID, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormItem',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NTabs: {\n default: undefined\n },\n\n NTabsItem: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return { NFormItem: this };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n prop: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltipPosition: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n tooltipWindow: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n conditional: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n conditionOn: {\n default()\n {\n return Locale.trans('Enable field');\n },\n type: [String]\n },\n\n conditionOff: {\n default()\n {\n return Locale.trans('Disable field');\n },\n type: [String]\n }\n\n },\n\n methods: {\n\n enabled(component = false)\n {\n return (! this.conditional || this.modelValue) && ! component;\n },\n\n disabled(component)\n {\n return (this.conditional && ! this.modelValue) || component;\n },\n\n toggleCondition()\n {\n this.$emit('update:modelValue', !this.modelValue);\n },\n\n focusInput()\n {\n let $input = Dom.find(this.$el).find('input');\n\n if ( !$input.empty() ) {\n return $input.get(0).focus();\n }\n\n $input = Dom.find(this.$refs.input).childs();\n\n if ( !$input.empty() ) {\n return $input.get(0).click();\n }\n\n console.log('I dont belong here :o');\n },\n\n gotoInput()\n {\n let errors = this.NForm.errors;\n\n if ( Any.isEmpty(errors) ) {\n return;\n }\n\n if ( !this.NTabs || !this.NTabsItem ) {\n return;\n }\n\n let keys = Any.keys(errors);\n\n if ( Arr.first(keys) !== this.prop ) {\n return;\n }\n\n this.NTabs.changeTab(this.NTabsItem.name);\n }\n\n },\n\n data()\n {\n return {\n uid: UUID()\n };\n },\n\n beforeMount()\n {\n if ( this.NForm ) {\n this.NForm.addItem(this);\n }\n },\n\n mounted()\n {\n if ( this.NForm ) {\n this.NForm.$watch('errors', this.gotoInput, { deep: true });\n }\n },\n\n beforeUnmount()\n {\n if ( this.NForm ) {\n this.NForm.removeItem(this);\n }\n },\n\n renderTooltip()\n {\n if ( !this.tooltip && !this.$slots.tooltip ) {\n return null;\n }\n\n let props = {\n size: 'sm',\n position: this.tooltipPosition,\n };\n\n return (\n <NPopover type=\"tooltip\" {...props}>\n {this.$slots.tooltip && this.$slots.tooltip() || this.tooltip}\n </NPopover>\n );\n },\n\n renderCondition()\n {\n if ( ! this.conditional ) {\n return null;\n }\n\n return (\n <div class=\"n-form-item__condition\" onClick={this.toggleCondition}>\n <span>{ this.modelValue ? this.conditionOff : this.conditionOn }</span>\n </div>\n );\n },\n\n renderLabel()\n {\n if ( !this.label && !this.$slots.label ) {\n return null;\n }\n\n let labelHtml = (\n <div class=\"n-form-item__label\">\n <label onClick={this.focusInput}>\n {this.$slots.label && this.$slots.label() || this.label}\n </label>\n </div>\n );\n\n return [\n labelHtml, this.ctor('renderTooltip')()\n ]\n },\n\n renderError()\n {\n if ( !this.NForm || !Obj.has(this.NForm.errors, this.prop) ) {\n return null;\n }\n\n return (\n <div class=\"n-form-item__error\">\n {Obj.get(this.NForm.errors, this.prop)}\n </div>\n );\n },\n\n renderInput()\n {\n return (\n <div ref=\"input\" class=\"n-form-item__input\">\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n },\n\n render()\n {\n let size = this.size || Obj.get(this.NForm, 'size', 'md');\n\n\n let classList = [\n 'n-form-item',\n 'n-form-item--' + size,\n ];\n\n if ( this.disabled() ) {\n classList.push('is-disabled');\n }\n\n return <div class={classList}>\n {this.ctor('renderCondition')()}\n {this.ctor('renderLabel')()}\n {this.ctor('renderInput')()}\n {this.ctor('renderError')()}\n </div>;\n }\n}\n","import { Arr, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormFrame',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n },\n\n provide()\n {\n return { NFormFrame: this };\n },\n\n props: {\n\n kind: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n },\n\n mounted()\n {\n this.$nextTick(() => {\n this.onScrollEvent();\n });\n },\n\n methods: {\n\n onScrollEvent()\n {\n Dom.find(this.$el).find('[data-menu-key]').each((el) => {\n Dom.find(el).removeClass('is-visible');\n });\n\n Dom.inviewMaxY(`[data-group-key]`, (el, attr) => {\n\n let selector = `[data-menu-key=\"${attr}\"]`;\n\n Dom.find(this.$el).find(selector)\n .addClass('is-visible');\n\n this.$refs.menu.scrollIntoView(selector)\n\n }, this.$el);\n }\n\n },\n\n renderMenu(item)\n {\n let labelHtml = (\n <span>{item.label}</span>\n );\n\n let iconHtml = null;\n\n if ( item.icon ) {\n iconHtml = (<i class={item.icon} />);\n }\n\n let buttonProps = {\n href: '#' + item.key\n }\n\n buttonProps['onClick'] = () => {\n\n let selector = `[data-group-key=\"${item.key}\"]`\n\n if ( item.collapse ) {\n item.openGroup();\n }\n\n if ( ! Any.isEmpty(this.timeout) ) {\n clearTimeout(this.timeout);\n }\n\n Dom.find('[data-group-key]').removeClass('on-search');\n\n this.timeout = setTimeout(() => {\n Dom.find(selector).removeClass('on-search');\n }, 4000);\n\n this.$nextTick(() => {\n Dom.find(selector).addClass('on-search');\n });\n };\n\n let classList = [\n 'n-form-frame__menu',\n 'n-form-frame__menu--' + item.type\n ]\n\n return (\n <a class={classList} data-menu-key={item.key} {...buttonProps}>\n {[iconHtml, labelHtml]}\n </a>\n );\n },\n\n renderMenus()\n {\n let items = Arr.each(this.NForm.groups, (item) => {\n return this.ctor('renderMenu')(item);\n });\n\n return (\n <n-scrollbar ref=\"menu\" class=\"n-form-frame__menus\">\n { items } { this.$slots.menu && this.$slots.menu() }\n </n-scrollbar>\n );\n },\n\n renderBody()\n {\n let bodyProps = {\n //\n };\n\n bodyProps['onScrollupdate'] = Any.debounce(() => {\n this.onScrollEvent();\n });\n\n return (\n <n-scrollbar ref=\"body\" class=\"n-form-frame__body\" {...bodyProps}>\n {this.$slots.default && this.$slots.default()}\n </n-scrollbar>\n );\n },\n\n render()\n {\n let classList = [\n 'n-form-frame',\n 'n-form-frame--' + this.NForm.size\n ];\n\n return (\n <div class={classList}>\n {[this.$slots.frame && this.$slots.frame(), this.ctor('renderMenus')(), this.ctor('renderBody')()]}\n </div>\n );\n }\n}\n","import { Arr, Dom, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTabs',\n\n provide()\n {\n return {\n NTabs: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n float: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n data()\n {\n return {\n init: false,\n elements: [], \n width: 0, \n offset: 0, \n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTab(tab)\n {\n Arr.add(this.elements, tab, \n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTab(tab)\n {\n Arr.remove(this.elements, \n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n getTab(updateEvent = true)\n {\n let currentTab = Arr.find(this.elements, {\n name: this.modelValue\n });\n\n let sorted = Arr.sort(this.elements, 'sort');\n\n if ( ! currentTab ) {\n currentTab = Arr.first(sorted);\n }\n\n let repeatNext = () => this.getTab(updateEvent);\n\n if ( ! currentTab ) {\n return Any.delay(repeatNext, 250);\n }\n\n if ( currentTab.name === this.tempValue || ! updateEvent ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = currentTab.name);\n },\n\n changeTab(value)\n {\n if ( this.tempValue === value ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = value);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n this.getTab(false);\n },\n\n updated()\n {\n let width = Dom.find(this.$el).find('.n-active')\n .width();\n\n this.width = width < 0 ? 0 : width;\n\n let offset = Dom.find(this.$el).find('.n-active')\n .offset('left', this.$el);\n\n this.offset = offset < 0 ? 0 : offset;\n },\n\n renderHeaderIndicator()\n {\n let transform = `scaleX(${this.width / 100}) ` + \n `translateX(${this.offset / (this.width / 100)}px)`;\n\n return (\n <div class=\"n-tabs__indicator\" style={{ transform }}>\n { /* Indicator bar */ }\n </div>\n );\n },\n\n renderHeader()\n {\n if ( this.elements.length <= 1 ) {\n return null;\n }\n\n // FIXME: As soon vue doesnt bug\n let sorted = Arr.sort(this.elements, 'sort');\n \n let tabs = Arr.each(Arr.make(sorted.length), (tab, index) => {\n return sorted[index].ctor('renderHeader')();\n });\n\n return (\n <div class=\"n-tabs__header\">\n {[tabs, this.ctor('renderHeaderIndicator')()]}\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-tabs__body\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-tabs', \n 'n-tabs--' + this.size, \n 'n-tabs--' + this.type\n ];\n\n if ( this.float ) {\n classList.push('n-float');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderHeader')() }\n { this.ctor('renderBody')() }\n </div>\n );\n }\n}\n","import { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NTabsItem',\n\n inject: {\n\n NTabs: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NTabsItem: this\n };\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n name: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n preload: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n keep: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n\n },\n\n methods: {\n\n changeTab()\n {\n this.NTabs.changeTab(this.name);\n }\n\n },\n\n data()\n {\n return {\n _key: null, init: false\n }\n },\n\n beforeMount()\n {\n this.NTabs.addTab(this);\n },\n\n beforeUnmount()\n {\n this.NTabs.removeTab(this);\n },\n\n renderHeaderIcon()\n {\n if ( ! this.$slots.icon && ! this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-tabs__tab-icon\">\n { this.$slots.icon && this.$slots.icon() || <i class={this.icon}></i> }\n </div>\n );\n },\n\n renderHeaderLabel()\n {\n return (\n <div class=\"n-tabs__tab-label\">\n { this.$slots.label && this.$slots.label () || <span>{this.label}</span> }\n </div>\n );\n },\n\n renderHeader()\n {\n let classList = [\n 'n-tabs__tab'\n ];\n\n if ( this.NTabs.tempValue === this.name ) {\n classList.push('n-active');\n }\n\n let props = {\n onClick: () => this.changeTab(this.name)\n };\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHeaderIcon')() }\n { this.ctor('renderHeaderLabel')() }\n </div>\n );\n },\n\n render()\n {\n let renderBody = this.NTabs.tempValue === this.name;\n\n if ( this.NTabs.tempValue !== this.name && this.keep ) {\n renderBody = this.init;\n }\n\n if ( this.NTabs.tempValue !== this.name && this.preload ) {\n renderBody = true;\n }\n\n if ( ! renderBody ) {\n return null;\n }\n\n this.init = true;\n\n let classList = [\n 'n-tabs-item'\n ];\n\n let style = {};\n\n if ( this.NTabs.tempValue !== this.name ) {\n style.display = 'none';\n }\n\n if ( this.$slots.raw ) {\n return this.$slots.raw({ style });\n }\n\n let element = 'div';\n\n if ( ! this.relative && ! this.NTabs.relative ) {\n element = resolveComponent('NScrollbar');\n }\n\n return h(element, { class: classList, style }, this.$slots);\n }\n}\n","import { Arr, Dom, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTags',\n\n provide()\n {\n return {\n NTags: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n tags: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n init: false, elements: [], tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTag(tab)\n {\n Arr.add(this.elements, tab,\n { label: tab.label });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTag(tab)\n {\n Arr.remove(this.elements,\n { label: tab.label });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n },\n\n render()\n {\n let classList = [\n 'n-tags',\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { Arr, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTagsItem',\n\n inject: {\n\n NTags: {\n default: undefined\n }\n\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return -1;\n },\n type: [String, Number]\n },\n\n color: {\n default()\n {\n return 0;\n },\n type: [String, Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n },\n\n beforeMount()\n {\n if ( this.NTags ) {\n this.NTags.addTag(this);\n }\n },\n\n beforeUnmount()\n {\n if ( this.NTags ) {\n this.NTags.removeTag(this);\n }\n },\n\n renderIcon()\n {\n if ( Any.isEmpty(this.icon) ) {\n return null;\n }\n\n return (\n <i class={this.icon}></i>\n );\n },\n\n renderLabel()\n {\n return (\n <span>{this.$slots.default ? this.$slots.default() : this.label}</span>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NTags ) {\n size = this.NTags.size;\n }\n\n let classList = [\n 'n-tags-item',\n 'n-tags-item--' + size,\n ,\n ];\n\n if ( this.type === -1 ) {\n classList.push('n-tags-item--color-' + this.color);\n }\n\n if ( this.type !== -1 ) {\n classList.push('n-tags-item--color-' + this.type);\n }\n\n return (\n <div class={classList}>\n {[this.ctor('renderIcon')(), this.ctor('renderLabel')()]}\n </div>\n );\n }\n\n}\n","import { Arr, Dom, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCollapse',\n\n provide()\n {\n return {\n NCollapse: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n init: false, elements: [], tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTab(tab)\n {\n Arr.add(this.elements, tab,\n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTab(tab)\n {\n Arr.remove(this.elements,\n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n showTab(value)\n {\n if ( Arr.has(this.tempValue, value) ) {\n return;\n }\n\n Arr.add(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n hideTab(value)\n {\n if ( ! Arr.has(this.tempValue, value) ) {\n return;\n }\n\n Arr.remove(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n toggleTab(value)\n {\n Arr.toggle(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n },\n\n render()\n {\n let classList = [\n 'n-collapse',\n 'n-collapse--' + this.size,\n 'n-collapse--' + this.type\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { Arr, Any, Dom } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NCollapseItem',\n\n inject: {\n\n NCollapse: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NCollapseItem: this\n };\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n name: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n preload: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n keep: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n methods: {\n\n showTab()\n {\n this.NCollapse.showTab(this.name);\n },\n\n hideTab()\n {\n this.NCollapse.hideTab(this.name);\n },\n\n toggleTab()\n {\n this.NCollapse.toggleTab(this.name);\n }\n\n },\n\n data()\n {\n return {\n _key: null, init: false, dragger: 0\n }\n },\n\n beforeMount()\n {\n this.NCollapse.addTab(this);\n },\n\n beforeUnmount()\n {\n this.NCollapse.removeTab(this);\n },\n\n renderHeaderIcon()\n {\n if ( !this.$slots.icon && !this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-collapse__header-icon\">\n {this.$slots.icon && this.$slots.icon() || <i class={this.icon}></i>}\n </div>\n );\n },\n\n renderHeaderLabel()\n {\n return (\n <div class=\"n-collapse__header-label\">\n {this.$slots.label && this.$slots.label() || <span>{this.label}</span>}\n </div>\n );\n },\n\n renderHeaderAngle()\n {\n return (\n <div class=\"n-collapse__header-angle\">\n {this.$slots.angle && this.$slots.angle() || <i class={nano.Icons.angleRight}></i>}\n </div>\n );\n },\n\n renderHeader()\n {\n if ( !this.label && !this.$slots.label ) {\n return null;\n }\n\n let classList = [\n 'n-collapse__header'\n ];\n\n if ( Arr.has(this.NCollapse.tempValue, this.name) ) {\n classList.push('n-active');\n }\n\n let props = {\n onClick: () => this.toggleTab(this.name)\n };\n\n props['onDragenter'] = (event) => {\n\n this.dragger ++;\n\n if ( this.dragger !== 1 ) {\n return;\n }\n\n this.showDelay = setTimeout(() => {\n this.showTab(this.name);\n }, 350);\n };\n\n props['onDragleave'] = (event) => {\n\n this.dragger --;\n\n if ( this.dragger !== 0 ) {\n return;\n }\n\n clearTimeout(this.showDelay);\n };\n\n props.style = {\n order: this.sort + 1,\n };\n\n return (\n <div ref=\"header\" class={classList} {...props}>\n {this.ctor('renderHeaderIcon')()}\n {this.ctor('renderHeaderLabel')()}\n {this.ctor('renderHeaderAngle')()}\n </div>\n );\n },\n\n renderBody()\n {\n let classList = [\n 'n-collapse__body'\n ];\n\n let tempValue = Arr.clone(this.NCollapse.tempValue);\n\n if ( !this.label && !this.$slots.label ) {\n tempValue.push(this.name);\n }\n\n let renderBody = Arr.has(tempValue, this.name);\n\n if ( !Arr.has(tempValue, this.name) && this.keep ) {\n renderBody = this.init;\n }\n\n if ( !Arr.has(tempValue, this.name) && this.preload ) {\n renderBody = true;\n }\n\n if ( !renderBody && this.label ) {\n return null;\n }\n\n this.init = true;\n\n let style = {\n order: this.sort + 2\n };\n\n if ( !Arr.has(tempValue, this.name) ) {\n style.display = 'none';\n }\n\n let element = 'div';\n\n if ( !this.relative && !this.NCollapse.relative ) {\n element = resolveComponent('NScrollbar');\n }\n\n return h(element, { class: classList, style, }, this.$slots);\n },\n\n render()\n {\n return [\n this.ctor('renderHeader')(), this.ctor('renderBody')()\n ];\n }\n}\n","import { Any, Arr, Obj, Dom, Event, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTable',\n\n provide()\n {\n return {\n NTable: this\n };\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n visible: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n expanded: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n filter: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n sortProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n sortDir: {\n default()\n {\n return 'desc';\n },\n type: [String]\n },\n\n closeFilterOnEnter: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n safezone: {\n default()\n {\n return (height) => height * 0.51;\n }\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 38;\n },\n type: [Number]\n },\n\n itemOffset: {\n default()\n {\n return 30;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderSelect: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderExpand: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return () => true;\n }\n },\n\n removeNode: {\n default()\n {\n return () => true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n },\n\n },\n\n computed: {\n\n checked()\n {\n return !!this.tempSelected.length &&\n this.tempSelected.length === this.items.length;\n },\n\n intermediate()\n {\n return !!this.tempSelected.length &&\n this.tempSelected.length !== this.items.length\n }\n\n },\n\n data()\n {\n return {\n uid: UUID(),\n elements: [],\n tempVisible: this.visible,\n tempVisibleProps: [],\n tempSelected: this.selected,\n tempSortProp: this.sortProp,\n tempSortDir: this.sortDir,\n tempFilter: this.filter,\n tempFilterProps: [],\n }\n },\n\n mounted()\n {\n this.$watch('tempVisible',\n this.makeVisibleProps, { deep: true });\n\n if ( !this.tempVisible.length ) {\n Arr.each(this.elements, this.detectVisible);\n }\n },\n\n watch: {\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n },\n\n methods: {\n\n addColumn(column)\n {\n Arr.add(this.elements, column,\n { uid: column.uid });\n },\n\n removeColumn(column)\n {\n Arr.remove(this.elements,\n { uid: column.uid });\n },\n\n getColumnIndex(column)\n {\n if ( !Any.isString(column) ) {\n column = column['prop'];\n }\n\n return Arr.findIndex(this.tempVisibleProps,\n column);\n },\n\n getColumnVisiblity(column)\n {\n if ( !Any.isString(column) ) {\n column = column.prop;\n }\n\n return Arr.has(this.tempVisible, column);\n },\n\n getColumnSorted(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n if ( this.tempSortProp !== prop ) {\n return null;\n }\n\n return this.tempSortDir;\n },\n\n getColumnFilter(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n return Arr.find(this.tempFilter, {\n property: prop\n });\n },\n\n getColumnFiltered(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n return Arr.has(this.tempFilterProps, prop);\n },\n\n detectVisible(column)\n {\n if ( column.detectVisibity() ) {\n Arr.add(this.tempVisible, column.prop);\n }\n },\n\n makeVisibleProps()\n {\n this.tempVisibleProps = Arr.intersect(\n Arr.extract(this.elements, 'prop'), this.tempVisible);\n\n this.$nextTick(this.$refs.scrollbar.onResize);\n },\n\n sortByColumn(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n\n let dir = this.tempSortDir;\n\n if ( prop === this.tempSortProp && this.tempSortDir === 'desc' ) {\n dir = 'asc';\n }\n\n if ( prop === this.tempSortProp && this.tempSortDir === 'asc' ) {\n dir = 'desc';\n }\n\n if ( this.tempSortDir !== dir ) {\n this.$emit('update:sortDir', this.tempSortDir = dir);\n }\n\n if ( this.tempSortProp !== prop ) {\n this.$emit('update:sortProp', this.tempSortProp = prop);\n }\n\n this.$emit('sort', this.tempSortProp, this.tempSortDir);\n },\n\n replaceFilter(filter, search)\n {\n Arr.replace(this.tempFilter, filter, search);\n\n let filters = Arr.filter(this.tempFilter, (filter) => {\n return Arr.has(this.tempFilterProps, filter.property);\n });\n\n this.$emit('update:filter', filters);\n\n this.$emit('filter', filters, this.tempFilterProps);\n },\n\n resetFilter()\n {\n this.tempFilter = this.tempFilterProps = [];\n\n Event.fire('NTable:reset', this.uid);\n\n this.$emit('update:filter', this.tempFilter);\n\n this.$emit('filter', this.tempFilter, this.tempFilterProps);\n },\n\n selectAll()\n {\n this.$refs.draggable.selectAll();\n },\n\n highlightNode(value, key = null)\n {\n this.$refs.draggable.highlightNode(value, key);\n },\n\n syncCurrent()\n {\n return this.$refs.draggable.syncCurrent();\n },\n\n refreshCurrent()\n {\n this.$refs.draggable.refreshCurrent();\n },\n\n },\n\n renderHandle()\n {\n if ( !this.renderHandle ) {\n return null;\n }\n\n return (\n <div class=\"n-draglist-item__handle\">\n { /* Only used in row */}\n </div>\n )\n },\n\n renderExpand()\n {\n if ( !this.renderExpand ) {\n return null;\n }\n\n return (\n <div class=\"n-draglist-item__expand\">\n { /* Only used in row */}\n </div>\n )\n },\n\n renderSelect()\n {\n if ( !this.renderSelect ) {\n return null;\n }\n\n let props = {\n modelValue: this.checked,\n intermediate: this.intermediate,\n disabled: !this.items.length,\n onClick: this.selectAll\n };\n\n return (\n <div class=\"n-draglist-item__select\">\n <NCheckbox {...props}></NCheckbox>\n </div>\n );\n },\n\n renderBody(props)\n {\n let columns = Obj.each(this.elements, (column) => {\n return column.disabled ? null : column.ctor('renderBody')(props);\n });\n\n return Obj.values(columns);\n },\n\n renderContext()\n {\n let columns = Obj.each(this.elements, (column) => {\n\n if ( column.disabled ) {\n return null;\n }\n\n return (\n <NCheckbox class=\"n-table__checkbox\" value={column.prop}>\n {column.label}\n </NCheckbox>\n );\n });\n\n return (\n <NPopover trigger=\"context\" width={220}>\n <NCheckboxGroup vModel={this.tempVisible} align=\"vertical\">\n {Obj.values(columns)}\n </NCheckboxGroup>\n </NPopover>\n );\n },\n\n renderHead()\n {\n let defaultRender = [\n this.ctor('renderHandle')(),\n this.ctor('renderExpand')(),\n this.ctor('renderSelect')(),\n this.ctor('renderContext')()\n ];\n\n let columns = Obj.each(this.elements, (column) => {\n return column.disabled ? null : column.ctor('renderHead')();\n });\n\n return (\n <div class=\"n-table__header\">\n {defaultRender} {Obj.values(columns)}\n </div>\n );\n },\n\n render()\n {\n let except = [\n 'visible', 'filter', 'sortProp',\n 'sortDir', 'closeFilterOnEnter'\n ];\n\n let props = Obj.except(this.$props, except, {\n items: this.items,\n selected: this.tempSelected,\n overflowX: false,\n useKeys: this.useKeys,\n // renderNode: this.ctor('renderBody')\n });\n\n props['onRowClick'] = (...args) => {\n this.$emit('row-click', ...args);\n }\n\n props['onRowDblclick'] = (...args) => {\n this.$emit('row-dblclick', ...args);\n }\n\n props['onUpdate:items'] = (value) => {\n this.$emit('update:items', value);\n }\n\n props['onUpdate:current'] = (value) => {\n this.$emit('update:current', value);\n }\n\n props['onUpdate:expanded'] = (value) => {\n this.$emit('update:expanded', value);\n }\n\n props['onUpdate:selected'] = (value) => {\n this.$emit('update:selected', this.tempSelected = value);\n }\n\n let draggableHtml = (\n <div class=\"n-table__body\">\n <NDraglist ref=\"draggable\" {...props} offsetX={25}>\n {{ default: this.ctor('renderBody') }}\n </NDraglist>\n </div>\n );\n\n return (\n <div class=\"n-table\">\n <NScrollbar ref=\"scrollbar\" class=\"n-table__wrap\" fixture={true} overflowY={false}>\n <div class=\"n-table__inner\">\n {[this.ctor('renderHead')(), draggableHtml]}\n </div>\n </NScrollbar>\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n },\n\n}","import { Any, Arr, Obj, Str, Dom, UUID, Num, Locale } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NTableColumn',\n\n inject: {\n\n NTable: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n prop: {\n default()\n {\n return UUID();\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'string';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'left';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n filter: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n visible: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean, Function]\n },\n\n matrixDisabled: {\n default()\n {\n return false;\n },\n type: [Boolean, Function]\n },\n\n breakpoint: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n previewProp: {\n default()\n {\n return 'preview';\n },\n type: [String]\n },\n\n matrix: {\n default()\n {\n return - 1;\n },\n type: [Number, String]\n },\n\n matrixProp: {\n default()\n {\n return 'matrix';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Object, Array, Function]\n },\n\n optionsValue: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n sortProp: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n filterProp: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n fluid: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n fixedWidth: {\n default()\n {\n return 0;\n }\n },\n\n width: {\n default()\n {\n return 0;\n }\n },\n\n minWidth: {\n default()\n {\n return 120;\n }\n },\n\n maxWidth: {\n default()\n {\n return 0;\n }\n },\n\n emptyText: {\n default()\n {\n return '-';\n },\n type: [String]\n },\n\n undefinedText: {\n default()\n {\n return Locale.trans('-');\n },\n type: [String]\n },\n\n trueText: {\n default()\n {\n return Locale.trans('Yes');\n },\n type: [String]\n },\n\n falseText: {\n default()\n {\n return Locale.trans('No');\n },\n type: [String]\n },\n\n datetimeFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm');\n },\n type: [String]\n },\n\n allowUncheck: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n matrixValues()\n {\n if ( this.type !== 'matrix' ) {\n return;\n }\n\n let values = {};\n\n if ( Any.isEmpty(this.modelValue) ) {\n return values;\n }\n\n Arr.each(this.modelValue, (item) => {\n Obj.set(values, item[this.NTable.uniqueProp],\n Num.matrix(item[this.matrixProp]));\n });\n\n return values;\n }\n\n },\n\n provide()\n {\n return {\n NTableColumn: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(), tempWidth: 0\n };\n },\n\n methods: {\n\n detectVisibity()\n {\n let visible = this.visible;\n\n if ( this.breakpoint ) {\n visible &= Dom.find(this.NTable.$el).width() > this.breakpoint;\n }\n\n return visible;\n },\n\n sortByColumn(event)\n {\n if ( !Arr.has([0, 1], event.which) ) {\n return;\n }\n\n if ( !Dom.find(event.target).closest('.n-table-column__filter') ) {\n this.NTable.sortByColumn(this);\n }\n },\n\n },\n\n beforeMount()\n {\n this.changedStates = {};\n this.NTable.addColumn(this);\n },\n\n beforeUnmount()\n {\n this.NTable.removeColumn(this);\n },\n\n renderHead()\n {\n if ( !this.NTable.getColumnVisiblity(this) ) {\n return null;\n }\n\n let classList = [\n 'n-table-column',\n 'n-table-column--' + this.align,\n 'n-table-column--' + this.type,\n ];\n\n let sortDirection = this.NTable.getColumnSorted(this);\n\n if ( sortDirection ) {\n classList.push('n-sorted', 'n-' + sortDirection);\n }\n\n if ( this.fluid || !this.width ) {\n classList.push('n-fluid');\n }\n\n if ( this.fixedWidth ) {\n classList.push('n-fixed');\n }\n\n if ( this.NTable.getColumnFiltered(this) ) {\n classList.push('n-filtered');\n }\n\n let style = {};\n\n if ( this.fixedWidth ) {\n style.width = this.fixedWidth + 'px';\n }\n\n if ( this.width ) {\n style.flexBasis = this.width + 'px';\n }\n\n let props = {\n modelValue: this.tempWidth,\n width: this.width,\n minWidth: this.minWidth,\n maxWidth: this.maxWidth,\n disabled: !!this.fixedWidth,\n group: [this.NTable.uid],\n };\n\n props['onUpdate:modelValue'] = (value) => {\n this.tempWidth = value;\n }\n\n if ( this.sort ) {\n props.onMousedown = this.sortByColumn;\n }\n\n return (\n <NResizer ref=\"column\" class={classList} style={style} {...props}>\n {this.ctor('renderHeadSort')()}\n {this.ctor('renderHeadLabel')()}\n {this.ctor('renderHeadFilter')()}\n </NResizer>\n );\n },\n\n renderHeadLabel()\n {\n let classList = [\n 'n-table-column__label'\n ];\n\n let labelHtml = (\n <div class={classList}>\n <span>{this.label}</span>\n </div>\n );\n\n if ( Any.isEmpty(this.tooltip) ) {\n return labelHtml;\n }\n\n let tooltipHtml = (\n <NPopover type=\"tooltip\">{this.tooltip}</NPopover>\n );\n\n return [labelHtml, tooltipHtml];\n },\n\n renderHeadSort()\n {\n if ( !this.sort ) {\n return null;\n }\n\n return (\n <div class=\"n-table-column__sort\">\n <i>{ /* Sorting angles */}</i>\n </div>\n )\n },\n\n renderHeadFilter()\n {\n if ( !this.filter ) {\n return null;\n }\n\n let angleHtml = (\n <div class=\"n-table-column__filter\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n\n let component = resolveComponent('NTableFilter' +\n Str.ucfirst(this.type));\n\n return [\n angleHtml, h(component, { column: this })\n ];\n },\n\n renderBody(props)\n {\n if ( !this.NTable.getColumnVisiblity(this) ) {\n return null;\n }\n\n let uid = props.value[this.NTable.uniqueProp]\n + this.uid;\n\n let classList = [\n 'n-table-cell',\n 'n-table-cell--' + this.align,\n 'n-table-cell--' + this.type,\n ];\n\n if ( this.fluid ) {\n classList.push('n-fluid');\n }\n\n if ( this.tempWidth ) {\n classList.push('n-fixed');\n }\n\n let index = this.NTable.getColumnIndex(this);\n\n let offset = 0;\n\n if ( index === 0 ) {\n offset = props.value.depth * this.NTable.itemOffset;\n }\n\n let style = {\n width: (this.tempWidth - offset) + 'px'\n };\n\n if ( this.minWidth ) {\n style.minWidth = (this.minWidth - offset) + 'px';\n }\n\n if ( this.maxWidth ) {\n style.maxWidth = (this.maxWidth - offset) + 'px';\n }\n\n let passed = Obj.except(this.$attrs, [], {\n ...props, uid: uid, class: classList, style: style, column: this\n });\n\n let component = resolveComponent('NTableCell' +\n Str.ucfirst(this.type));\n\n return h(component, passed);\n },\n\n render()\n {\n return null;\n }\n\n}","import { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NTable: {\n default: undefined\n },\n\n NDraggableItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n uid: {\n required: true\n },\n\n column: {\n required: true\n },\n\n item: {\n required: true\n },\n\n value: {\n required: true\n },\n\n copy: {\n required: true\n },\n\n remove: {\n required: true\n },\n\n\n },\n\n computed: {\n\n input()\n {\n return Obj.get(this.item, this.column.prop);\n }\n\n },\n\n data()\n {\n return { init: false };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => this.init = true, 20);\n },\n\n beforeUnmount()\n {\n clearTimeout(this.timer);\n },\n\n methods: {\n\n setFirstState(state)\n {\n Obj.set(this.column.changedStates,\n this.uid, this.firstState = state);\n }\n\n },\n\n render()\n {\n if ( this.column.$slots.default ) {\n return this.column.$slots.default(this);\n }\n \n return (\n <div>{ this.input }</div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellString',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertString(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellBoolean',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n return (\n <div>\n <span>{ Any.convertBoolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellDatetime',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n return (\n <div>\n <span>{ Any.convertDatetime(this.input, this.column.datetimeFormat, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellOption',\n\n extends: TableCell,\n\n renderOption(value)\n {\n let options = this.column.options;\n\n if ( Any.isFunction(options) ) {\n options = this.column.options(this);\n }\n\n options = Arr.each(options, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let prop = this.column.optionsValue;\n\n let option = Arr.find(options, (item) => {\n return Obj.get(item, prop) == value;\n });\n\n if ( ! option ) {\n return [this.column.emptyText];\n }\n\n return Obj.get(option, this.column.optionsLabel,\n this.column.undefinedText);\n },\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n let input = ! Any.isObject(this.input) ?\n [this.input] : this.input;\n\n return (\n <div>\n <span>{ Arr.each(input, this.ctor('renderOption')) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellImage',\n\n extends: TableCell,\n\n computed: {\n\n preview()\n {\n return Obj.get(this.item, this.column.previewProp);\n }\n\n },\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n let classList = [\n 'n-table-cell',\n 'n-table-cell--' + this.column.type\n ];\n\n let props = {\n fit: 'contain',\n }\n\n return (\n <div class={classList}>\n <NPreview file={this.preview || this.input} thumb={this.input} {...props} />\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Num, Any, Obj, Arr, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellMatrix',\n\n extends: TableCell,\n\n beforeMount()\n {\n this.firstState = Obj.get(this.column.changedStates,\n this.uid);\n },\n\n methods: {\n\n toggleMatrix()\n {\n if ( this.column.matrix === -1 ) {\n return this.toggleSelect();\n }\n\n let itemList = this.column.modelValue;\n\n if ( itemList === null ) {\n itemList = [];\n }\n\n let item = Arr.find(itemList, {\n [this.NTable.uniqueProp]: this.value[this.NTable.uniqueProp]\n });\n\n if ( ! item ) {\n item = Obj.assign({}, this.item, { [this.column.matrixProp]: 0 });\n }\n\n let currentMatrix = Num.int(item[this.column.matrixProp]);\n\n let matrix = Arr.toggle(Num.matrix(currentMatrix),\n Num.int(this.column.matrix));\n\n item[this.column.matrixProp] = Num.combine(matrix);\n\n Arr.replace(itemList, item, {\n [this.NTable.uniqueProp]: item[this.NTable.uniqueProp]\n });\n\n this.column.$emit('update:modelValue', itemList);\n },\n\n toggleSelect()\n {\n let itemList = this.column.modelValue;\n\n if ( itemList === null ) {\n itemList = [];\n }\n\n let fallback = Obj.assign({}, this.item, {\n [this.column.matrixProp]: this.column.matrix\n });\n\n let finder = {\n [this.NTable.uniqueProp]: this.value[this.NTable.uniqueProp],\n };\n\n let item = Arr.find(itemList, finder);\n\n if ( ! item ) {\n Arr.add(itemList, fallback);\n } else {\n Arr.remove(itemList, finder);\n }\n\n this.column.$emit('update:modelValue', itemList);\n },\n\n isChecked()\n {\n let matrix = Obj.get(this.column.matrixValues,\n this.item[this.NTable.uniqueProp]);\n\n if ( ! matrix ) {\n return false;\n }\n\n let value = Num.int(this.column.matrix);\n\n if ( value === -1 ) {\n return true;\n }\n\n return Arr.has(matrix, value);\n },\n\n isDisabled()\n {\n if ( ! Any.isFunction(this.column.matrixDisabled) ) {\n return this.column.matrixDisabled;\n }\n\n return this.column.matrixDisabled(this);\n }\n\n },\n\n render()\n {\n let checked = this.isChecked();\n\n if ( this.firstState === null ) {\n this.setFirstState(checked);\n }\n\n if ( ! this.init ) {\n return null;\n }\n\n let classList = [\n 'n-table-cell--checkbox'\n ];\n\n if ( this.firstState !== checked ) {\n classList.push('n-changed');\n }\n\n if ( checked ) {\n classList.push('n-checked');\n }\n\n let isDisabled = this.isDisabled();\n\n if ( this.column.allowUncheck ) {\n isDisabled = isDisabled && ! checked;\n }\n\n if ( isDisabled ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( ! isDisabled ) {\n props.onClick = this.toggleMatrix;\n }\n\n return (\n <div class={classList} {...props}>\n <i class={nano.Icons.checked}></i>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Num, Any, Obj, Arr } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellSelect',\n\n extends: TableCell,\n\n beforeMount()\n {\n this.firstState = Obj.get(this.column.changedStates,\n this.uid);\n },\n\n methods: {\n\n toggleSelect()\n {\n let item = null;\n\n if ( ! this.isChecked() ) {\n item = Obj.assign({}, this.item);\n }\n\n this.column.$emit('update:modelValue', item);\n },\n\n isChecked()\n {\n if ( Any.isEmpty(this.column.modelValue) ) {\n return false;\n }\n\n return Obj.get(this.column.modelValue, this.NTable.uniqueProp) ===\n this.value[this.NTable.uniqueProp];\n },\n\n isDisabled()\n {\n if ( ! Any.isEmpty(this.column.modelValue) ) {\n return true;\n }\n\n if ( Any.isFunction(this.column.matrixDisabled) ) {\n return this.column.matrixDisabled(this);\n }\n\n if ( ! Any.isFunction(this.column.disabled) ) {\n return this.column.disabled;\n }\n\n return this.column.disabled(this);\n },\n\n },\n\n render()\n {\n let checked = this.isChecked();\n\n if ( this.firstState === null ) {\n this.setFirstState(checked);\n }\n\n if ( ! this.init ) {\n return null;\n }\n\n let classList = [\n 'n-table-cell--checkbox'\n ];\n\n if ( this.firstState !== checked ) {\n classList.push('n-changed');\n }\n\n if ( checked ) {\n classList.push('n-checked');\n }\n\n let isDisabled = this.isDisabled();\n\n if ( this.column.allowUncheck ) {\n isDisabled = isDisabled && ! checked;\n }\n\n if ( isDisabled ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( ! isDisabled ) {\n props.onClick = this.toggleSelect;\n }\n\n return (\n <div class={classList} {...props}>\n <i class={nano.Icons.checked}></i>\n </div>\n );\n }\n\n}\n","import {Arr, Obj, Any, Dom, Event, UUID} from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NTable: {\n default: undefined\n }\n\n },\n\n props: {\n\n column: {\n required: true\n }\n\n },\n\n computed: {\n\n tempFilter()\n {\n return this.NTable.getColumnFilter(this.column);\n },\n\n canReset()\n {\n return ! this.NTable.getColumnFiltered(this.column);\n },\n\n canApply()\n {\n return ! Any.isEmpty(this.filter.value);\n }\n\n },\n\n data()\n {\n return {\n filter: this.getFilterClone(), visible: false\n };\n },\n\n beforeMount()\n {\n this.mountFilter();\n },\n\n mounted()\n {\n Event.bind('NTable:reset', \n this.resetFilter, this._.uid);\n\n Dom.find(document).on('keydown', \n this.onKeydown, this._.uid);\n },\n\n beforeUnmount()\n {\n Event.unbind('NTable:reset', \n this._.uid);\n\n Dom.find(document).off('keydown', \n null, this._.uid);\n },\n\n methods: {\n\n getFilterClone()\n {\n let tempFilter = this.NTable.getColumnFilter(this.column);\n\n if ( Any.isEmpty(tempFilter) ) {\n return null;\n }\n\n return Obj.clone(tempFilter);\n },\n\n getFilterProp()\n {\n return this.column.filterProp || \n this.column.prop;\n },\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null,\n property: this.getFilterProp(), \n };\n },\n\n mountFilter()\n {\n if ( this.filter ) {\n return this.applyFilter();\n }\n\n this.filter = this.getDefaultFilter();\n\n if ( ! this.canApply ) {\n return;\n }\n\n Arr.add(this.NTable.tempFilter, this.filter, {\n property: this.getFilterProp()\n });\n },\n\n resetFilter(uid)\n {\n if ( this.NTable.uid !== uid ) {\n return;\n }\n\n this.filter = this.getDefaultFilter();\n\n Arr.add(this.NTable.tempFilter, this.filter, {\n property: this.getFilterProp()\n });\n },\n\n onKeydown(event)\n {\n if ( ! this.visible ) {\n return;\n }\n\n if ( event.which === 13 && this.canApply ) {\n this.applyFilter();\n }\n\n if ( event.which === 13 && ! this.canApply ) {\n this.clearFilter();\n }\n\n let closeAnyway = event.which === 13 &&\n this.NTable.closeFilterOnEnter;\n\n if ( closeAnyway || event.which === 27 ) {\n this.$refs.popover.close();\n }\n },\n\n applyFilter()\n {\n let filter = Obj.clone(this.filter);\n\n Arr.add(this.NTable.tempFilterProps, \n this.getFilterProp());\n\n this.NTable.replaceFilter(filter, {\n property: this.getFilterProp()\n });\n },\n\n clearFilter()\n {\n let filter = this.getDefaultFilter();\n\n Arr.remove(this.NTable.tempFilterProps, \n this.getFilterProp());\n\n this.NTable.replaceFilter(filter, {\n property: this.getFilterProp()\n });\n\n this.filter = filter;\n }\n\n },\n\n renderForm()\n {\n return null;\n },\n\n renderApply()\n {\n let props = {\n type: 'primary',\n link: true,\n size: 'xs',\n disabled: ! this.canApply\n };\n\n return (\n <NButton {...props} onClick={this.applyFilter}>\n { this.trans('Apply') }\n </NButton>\n );\n },\n\n renderReset()\n {\n let props = {\n type: 'danger',\n link: true,\n size: 'xs',\n disabled: this.canReset,\n };\n\n return (\n <NButton {...props} onClick={this.clearFilter}>\n { this.trans('Reset') }\n </NButton>\n );\n },\n\n renderFooter()\n {\n return (\n <div class=\"n-table-filter__footer\">\n { this.ctor('renderReset')() }\n { this.ctor('renderApply')() }\n </div>\n )\n },\n\n render()\n {\n let props = {\n class: 'n-table-filter__popover',\n trigger: 'click',\n size: 'sm',\n width: 220,\n }\n\n return (\n <NPopover ref=\"popover\" vModel={this.visible} {...props}>\n {\n { default: this.ctor('renderForm'), footer: this.ctor('renderFooter') }\n }\n </NPopover>\n );\n }\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Dom, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterString',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'li',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n li: this.trans('Includes value'),\n nl: this.trans('Excludes value'),\n eq: this.trans('Equal value'),\n ne: this.trans('Except value'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NInput size=\"sm\" vModel={this.filter.value} />\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterBoolean',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'in',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n 1: this.trans(this.column.trueText),\n 0: this.trans(this.column.falseText),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.value} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\n\nexport default {\n\n name: 'NTableFilterDatetime',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'eq',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n eq: this.trans('Exact date'),\n lt: this.trans('Before date'),\n gt: this.trans('After date'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NDatepicker size=\"sm\" vModel={this.filter.value} format={this.column.datetimeFormat} />\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Arr, Obj, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterOption',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type,\n value: [],\n operator: 'in',\n property: this.getFilterProp(),\n };\n }\n\n },\n\n renderOption(value)\n {\n let props = {\n value: Obj.get(value, this.column.optionsValue)\n };\n\n return (\n <NCheckbox {...props}>{ Obj.get(value, this.column.optionsLabel) }</NCheckbox>\n );\n },\n\n renderForm()\n {\n let items = this.column.options;\n\n if ( Any.isFunction(items) ) {\n items = this.column.options(this);\n }\n\n items = Arr.each(items, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let options = {\n in: this.trans('Includes value'),\n ni: this.trans('Excludes value'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NCheckboxGroup size=\"sm\" align=\"vertical\" vModel={this.filter.value}>\n { Arr.each(items, this.ctor('renderOption')) }\n </NCheckboxGroup>\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import { Str, Num, Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPaginator',\n\n props: {\n\n page: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n limit: {\n default()\n {\n return 100;\n },\n type: [Number]\n },\n\n limitOptions: {\n default()\n {\n return [25, 50, 100, 500, 1000, 2500];\n },\n },\n\n total: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n maxPages: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n layout: {\n default()\n {\n return [\n 'limit', 'count', 'spacer', 'goto', 'pages'\n ]\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n pages()\n {\n return Num.ceil(this.total / this.tempLimit);\n },\n\n pageOptions()\n {\n return Arr.make(this.pages || 1);\n }\n\n },\n\n data()\n {\n return {\n tempPage: this.page, tempLimit: this.limit,\n };\n },\n\n\n\n methods: {\n\n forcePage(page)\n {\n if ( page !== this.tempPage ) {\n this.tempPage = page;\n }\n },\n\n updatePaginate()\n {\n let paginate = {\n page: this.tempPage, limit: this.tempLimit\n };\n\n this.$emit('paginate', paginate);\n },\n\n onPrevPage()\n {\n this.onPageInput(this.tempPage - 1);\n },\n\n onNextPage()\n {\n this.onPageInput(this.tempPage + 1);\n },\n\n onFirstPage()\n {\n this.onPageInput(1);\n },\n\n onLastPage()\n {\n this.onPageInput(this.pages);\n },\n\n onPageInput(value)\n {\n this.$emit('update:page', this.tempPage = value);\n\n this.updatePaginate();\n },\n\n onLimitInput(value)\n {\n if ( this.tempLimit !== value ) {\n this.$emit('update:page', this.tempPage = 1);\n }\n\n this.$emit('update:limit', this.tempLimit = value);\n\n this.updatePaginate();\n },\n\n },\n\n watch: {\n\n page(value)\n {\n if ( value !== this.tempPage ) {\n this.tempPage = value;\n }\n },\n\n limit(value)\n {\n if ( value !== this.tempLimit ) {\n this.tempLimit = value;\n }\n }\n\n },\n\n renderLimit()\n {\n let props = {\n modelValue: this.tempLimit,\n size: this.size,\n type: this.type,\n optionsValue: '$value.value',\n optionsLabel: '$value.label',\n };\n\n props.options = Arr.each(this.limitOptions, (limit) => {\n return {\n value: limit, label: this.choice(':count items', limit)\n };\n });\n\n props['onUpdate:modelValue'] = this.onLimitInput;\n\n return (\n <div class=\"n-paginator__limit\">\n <NSelect {...props} />\n </div>\n );\n },\n\n renderCount()\n {\n return (\n <div class=\"n-paginator__count\">\n { this.choice('No items|Total :count item|Total :count items', this.total) }\n </div>\n );\n },\n\n renderSpacer()\n {\n return (\n <div class=\"n-paginator__spacer\">\n { /* Nothing :( */ }\n </div>\n );\n },\n\n renderGoto()\n {\n if ( this.pageOptions.length > 500 ) {\n return null;\n }\n\n let props = {\n modelValue: this.tempPage,\n size: this.size,\n type: this.type,\n undefinedText: '?',\n optionsValue: '$value.value',\n optionsLabel: '$value.label',\n };\n\n props.options = Arr.reduce(this.pageOptions, (merge, index) => {\n return Arr.push(merge, {\n value: index, label: index\n });\n }, []);\n\n props['onUpdate:modelValue'] = this.onPageInput;\n\n return (\n <div class=\"n-paginator__goto\">\n <NSelect {...props} />\n </div>\n );\n },\n\n renderPrev()\n {\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleLeft,\n onClick: this.onPrevPage\n };\n\n if ( this.tempPage - 1 < 1 ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderNext()\n {\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleRight,\n onClick: this.onNextPage\n };\n\n if ( this.tempPage + 1 > this.pages ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderFirst()\n {\n if ( this.pages < this.maxPages ) {\n return null;\n }\n\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleDoubleLeft,\n onClick: this.onFirstPage\n };\n\n if ( this.tempPage - 1 < 1 ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderLast()\n {\n if ( this.pages < this.maxPages ) {\n return null;\n }\n\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleDoubleRight,\n onClick: this.onLastPage\n };\n\n if ( this.tempPage + 1 > this.pages ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderPage(index)\n {\n let page = this.tempPage;\n\n let pages = Math.abs(this.maxPages / 2);\n\n if ( page < pages ) {\n page = pages;\n }\n\n let global = Array(this.pages).length;\n\n if ( page > global - pages ) {\n page = global - pages;\n }\n\n let current = Num.int(index);\n\n if ( current < page - pages ) {\n return null;\n }\n\n if ( current > Math.max(1, page + pages) ) {\n return null;\n }\n\n let props = {\n type: this.type,\n size: this.size,\n };\n\n if ( current === this.tempPage ) {\n props.disabled = true;\n }\n\n props.onClick = () => {\n this.onPageInput(current);\n };\n\n return (\n <NButton {...props}>{ current }</NButton>\n );\n },\n\n renderPages()\n {\n let pages = Arr.each(this.pageOptions, (index) => {\n return this.ctor('renderPage')(index);\n });\n\n return (\n <div class=\"n-paginator__pages\">\n { this.ctor('renderFirst')() }\n { this.ctor('renderPrev')() }\n { ...pages }\n { this.ctor('renderNext')() }\n { this.ctor('renderLast')() }\n </div>\n );\n },\n\n renderSlot(view)\n {\n let renderFunction = this.ctor('render' + \n Str.ucfirst(view));\n\n if ( Any.isFunction(renderFunction) ) {\n return renderFunction();\n }\n\n return this.$slots[view] && this.$slots[view]();\n },\n\n render()\n {\n let className = [\n 'n-paginator',\n 'n-paginator--' + this.size,\n 'n-paginator--' + this.type\n ];\n\n return <div class={className}>\n {\n Arr.each(this.layout, (view) => {\n return this.ctor('renderSlot')(view);\n })\n }\n </div>;\n }\n}\n","import { Arr, Any, Obj, Event, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInfo',\n\n model: {\n prop: 'item'\n },\n\n props: {\n\n item: {\n default()\n {\n return null;\n }\n },\n\n syncEvent: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n uid: UUID(),\n elements: [],\n options: [],\n tempValue: this.item,\n };\n },\n\n watch: {\n\n item(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.bindSyncEvent();\n },\n\n beforeUnmount()\n {\n this.unbindSyncEvent();\n },\n\n updated()\n {\n Any.delay(() => {\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.adaptHeight();\n }\n }, 500);\n },\n\n methods: {\n\n bindSyncEvent()\n {\n if ( !this.syncEvent ) {\n return;\n }\n\n this.options = this.syncEvent;\n\n if ( Any.isFunction(this.options) ) {\n this.options = this.options(this);\n }\n\n let syncFunction = (value, uid = null) => {\n if ( uid === this.options[1] ) {\n this.setValue(value);\n }\n };\n\n Event.bind(this.options[0], syncFunction,\n this.uid);\n },\n\n unbindSyncEvent()\n {\n Event.unbind(this.options[0], this.uid);\n },\n\n setValue(value)\n {\n this.$emit('update:modelValue',\n this.tempValue = value);\n },\n\n addColumn(column)\n {\n Arr.add(this.elements,\n column, { uid: column.uid });\n },\n\n removeColumn(column)\n {\n Arr.remove(this.elements,\n { uid: column.uid });\n },\n\n },\n\n provide()\n {\n return {\n NInfo: this\n };\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={!this.showEmptyIcon} class=\"n-info__empty\">\n {this.$slots.empty && this.$slots.empty() || this.trans('No entry')}\n </NEmptyIcon>\n );\n },\n\n renderBody()\n {\n if ( Any.isEmpty(this.tempValue) ) {\n return this.ctor('renderEmpty')();\n }\n\n let elements = Obj.each(this.elements, (column) => {\n return (\n <div class=\"n-info__column\">\n {column.ctor('renderLabel')({ item: this.tempValue })}\n {column.ctor('renderBody')({ item: this.tempValue })}\n </div>\n );\n });\n\n return (\n <div class=\"n-info__body\">\n {Any.vals(elements)}\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-info',\n 'n-info--' + this.type,\n 'n-info--' + this.size,\n ];\n\n let infoHtml = (\n <NScrollbar ref=\"scrollbar\" relative={this.relative}>\n {this.ctor('renderBody')()}\n </NScrollbar>\n );\n\n return (\n <div class={classList}>\n {[infoHtml, this.$slots.default()]}\n </div>\n );\n }\n}\n","import { UUID, Obj, Locale, Str } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NInfoColumn',\n\n inject: {\n\n NInfo: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n prop: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'string';\n },\n type: [String]\n },\n\n previewProp: {\n default()\n {\n return 'preview';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Object, Array, Function]\n },\n\n optionsValue: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n emptyText: {\n default()\n {\n return Locale.trans('-');\n },\n type: [String]\n },\n\n trueText: {\n default()\n {\n return Locale.trans('Yes');\n },\n type: [String]\n },\n\n falseText: {\n default()\n {\n return Locale.trans('No');\n },\n type: [String]\n },\n\n datetimeFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm');\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n uid: UUID()\n };\n },\n\n beforeMount()\n {\n this.NInfo.addColumn(this);\n },\n\n beforeUnmount()\n {\n this.NInfo.removeColumn(this);\n },\n\n renderLabel()\n {\n if ( this.$slots.label ) {\n return this.$slots.label();\n }\n \n return (\n <div class=\"n-info-column\">\n <span>{this.label}</span>\n </div>\n );\n },\n\n renderBody(props)\n {\n let passed = Obj.except(props, [], {\n column: this\n });\n\n let component = resolveComponent('NInfoField' + \n Str.ucfirst(this.type));\n\n if ( ! component ) {\n return null;\n }\n\n passed.class = [\n 'n-info-field',\n 'n-info-field--' + this.type\n ];\n\n return h(component, passed);\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NInfo: {\n default: undefined\n }\n\n },\n\n props: {\n\n column: {\n required: true\n },\n\n item: {\n required: true\n },\n\n },\n\n computed: {\n\n input()\n {\n return Obj.get(this.item, this.column.prop);\n }\n\n },\n\n render()\n {\n return (\n <div>\n <span>{ this.input }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldString',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertString(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldBoolean',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertBoolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldDatetime',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertDatetime(this.input, this.column.datetimeFormat, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldOption',\n\n extends: InfoField,\n\n renderOption(value)\n {\n let options = this.column.options;\n\n if ( Any.isFunction(options) ) {\n options = this.column.options(this);\n }\n\n let prop = this.column.optionsValue;\n\n options = Arr.each(options, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let option = Arr.find(options, (item) => {\n return Obj.get(item, prop) == value;\n });\n\n if ( ! option ) {\n return [this.column.emptyText];\n }\n\n return Obj.get(option, this.column.optionsLabel,\n this.column.undefinedText);\n },\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n let input = ! Any.isObject(this.input) ?\n [this.input] : this.input;\n\n return (\n <div>\n <span>{ Arr.each(input, this.ctor('renderOption')) }</span>\n </div>\n );\n }\n\n}\n","import InfoField from \"../info-field.jsx\";\nimport { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInfoFieldImage',\n\n extends: InfoField,\n\n computed: {\n\n preview()\n {\n return Obj.get(this.item, this.column.previewProp);\n }\n\n },\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n let props = {\n fit: 'contain',\n };\n\n return (\n <div>\n <NPreview file={this.preview || this.input} thumb={this.input} {...props} />\n </div>\n );\n }\n\n}\n","import { Obj, Arr, Any, Dom } from \"@kizmann/pico-js\";\n\nconst fileMap = {\n image: [\n 'jpg', 'jpeg', 'gif', 'svg', 'png'\n ],\n video: [\n 'mp4', 'webm', 'mov'\n ],\n font: [\n 'woff', 'ttf', 'otf'\n ],\n text: [\n 'csv', 'txt', 'html'\n ],\n application: [\n 'pdf', 'doc', 'xls'\n ]\n}\n\nexport default {\n\n name: 'NPreview',\n\n props: {\n\n file: {\n default()\n {\n return null;\n }\n },\n\n thumb: {\n default()\n {\n return null;\n }\n },\n\n fit: {\n default()\n {\n return 'cover';\n },\n type: [String]\n },\n\n mime: {\n default()\n {\n return null;\n },\n typre: [String]\n },\n\n preview: {\n default()\n {\n return true;\n },\n typre: [Boolean]\n },\n\n showSrc: {\n default()\n {\n return true;\n },\n typre: [Boolean]\n },\n\n map: {\n default()\n {\n return fileMap;\n },\n type: [Object]\n }\n\n },\n\n computed: {\n\n tempFile()\n {\n return this.file || this.thumb;\n },\n\n tempThumb()\n {\n return this.thumb || this.file;\n },\n\n fileMime()\n {\n return this.getFileMime();\n },\n\n thumbMime()\n {\n return this.getThumbMime();\n },\n\n },\n\n data()\n {\n return {\n lightbox: false, load: false\n };\n },\n\n methods: {\n\n getFileMime(fallback = null)\n {\n let file = Obj.get(this.tempFile, 'name',\n this.tempFile);\n\n if ( Any.isEmpty(file) ) {\n return fallback;\n }\n\n let extension = file.replace(/^.*?\\.([^.?]+)(\\?.*?)?$/,\n '$1');\n\n Obj.each(this.map, (exts, key) => {\n if ( Arr.has(exts, extension) ) fallback = key;\n });\n\n if ( window.resolveVimeo(file) ) {\n fallback = 'video';\n }\n\n if ( window.resolveYoutube(file) ) {\n fallback = 'video';\n }\n\n if ( Any.isString(this.mime) ) {\n fallback = this.mime;\n }\n\n return fallback;\n },\n\n getThumbMime(fallback = null)\n {\n if ( Any.isString(this.mime) ) {\n return this.mime;\n }\n\n let file = Obj.get(this.tempThumb, 'name',\n this.tempThumb);\n\n if ( Any.isEmpty(file) ) {\n return fallback;\n }\n\n let extension = file.replace(/^.*?\\.([^.?]+)(\\?.*?)?$/,\n '$1');\n\n Obj.each(this.map, (exts, key) => {\n if ( Arr.has(exts, extension) ) fallback = key;\n });\n\n return fallback;\n },\n\n showLightbox()\n {\n this.lightbox = true;\n },\n\n },\n\n renderPreview()\n {\n if ( ! this.preview ) {\n return this.ctor('renderFull')();\n }\n\n if ( this.thumbMime === 'image' ) {\n return (<NPreviewImage src={this.tempThumb} />);\n }\n\n let props = {\n type: this.thumbMime,\n showSrc: false,\n }\n\n return (<NPreviewPlain src={this.tempThumb} {...props} />);\n },\n\n renderFull()\n {\n let isObject = Any.isObject(this.tempFile);\n\n if ( this.fileMime === 'image' ) {\n return (<NPreviewImage src={this.tempFile} />);\n }\n\n if ( this.fileMime === 'video' && ! isObject ) {\n return (<NPreviewVideo src={this.tempFile} />);\n }\n\n let props = {\n type: this.thumbMime,\n showSrc: this.showSrc,\n }\n\n return (<NPreviewPlain src={this.tempFile} {...props} />);\n },\n\n renderLightbox()\n {\n if ( ! this.lightbox || ! this.preview ) {\n return null;\n }\n\n let slots = {\n raw: this.ctor('renderFull')\n }\n\n let props = {\n type: 'preview',\n width: '80%',\n height: '90%',\n }\n\n return (<NModal vModel={this.lightbox} {...props} v-slots={slots} />);\n },\n\n render()\n {\n let classList = [\n 'n-preview',\n 'n-preview--' + this.fit\n ];\n\n if ( this.preview ) {\n classList.push('n-clickable');\n }\n\n if ( this.fileMime ) {\n classList.push('n-mime-' + this.fileMime);\n }\n\n let props = {};\n\n if ( this.preview ) {\n props.onClick = this.showLightbox;\n }\n\n let key = btoa(this.tempThumb);\n\n return (\n <div key={key} class={classList} {...props}>\n { [this.ctor('renderPreview')(), this.ctor('renderLightbox')()] }\n </div>\n );\n }\n\n}","import { Any, Obj, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewPlain',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return null;\n }\n },\n\n showSrc: {\n default()\n {\n return true;\n }\n }\n\n },\n\n computed: {\n\n tempSrc()\n {\n return Obj.get(this.src, 'name', this.src);\n },\n\n tempExt()\n {\n let regex = /^.*?\\.([^.?]+)(\\?.*?)?$/;\n\n if ( Any.isEmpty(this.tempSrc) ) {\n return null;\n }\n\n return this.tempSrc.replace(regex, '$1');\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-preview-plain'\n ];\n\n let slots = [];\n\n slots[0] = (\n <li>{ this.type || Locale.trans('plain') }/{ this.tempExt || Locale.trans('none') }</li>\n );\n\n if ( this.showSrc ) {\n slots[1] = (<li>{ this.tempSrc }</li>);\n }\n\n return (\n <div class={classList}>\n <ul>{ slots }</ul>\n </div>\n );\n }\n\n}","import { Obj, Arr, Str, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewImage',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n },\n\n data()\n {\n return {\n load: false, tempSrc: null\n };\n },\n\n beforeMount()\n {\n if ( ! window.ImageCache ) {\n window.ImageCache = [];\n }\n\n\n if ( ! Arr.has(window.ImageCache, this.src) ) {\n this.tempSrc = this.src;\n }\n\n },\n\n mounted()\n {\n this.resolveLoad();\n },\n\n watch: {\n\n 'src': function () {\n this.resolveLoad();\n }\n\n },\n\n methods: {\n\n resolveLoad()\n {\n if ( Arr.has(window.ImageCache, this.src) ) {\n return;\n }\n\n this.tempSrc = null;\n\n if ( Any.isObject(this.src) ) {\n return this.resolveData();\n }\n\n Dom.find(this.$refs.image).loaded(() => {\n\n /**\n * Add image to cache\n */\n Arr.add(window.ImageCache, this.src);\n\n /**\n * Mark image as loaded\n */\n Any.delay(() => this.load = false, 200);\n });\n\n this.laod = true;\n },\n\n resolveData()\n {\n let reader = new FileReader();\n\n reader.onload = () => {\n this.tempSrc = reader.result;\n };\n\n reader.readAsDataURL(this.src);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-preview-image'\n ];\n\n if ( Arr.has(window.ImageCache, this.src) ) {\n classList.push('n-cached');\n }\n\n if ( ! this.load ) {\n classList.push('n-ready');\n }\n\n return (\n <div class={classList}>\n <img ref=\"image\" src={this.tempSrc || this.src} />\n </div>\n );\n }\n\n}","import { Obj, Arr, Str, Any, Dom } from \"@kizmann/pico-js\";\n\nwindow.resolveYoutube = function(url, fallback = null) {\n\n if ( ! Any.isString(url) ) {\n return fallback;\n }\n\n let host = url.match(/^https?:\\/\\/(www\\.)?(youtube\\.com|youtu\\.be)/);\n\n if ( ! host ) {\n return fallback;\n }\n\n let id = url.match(/(\\?v=.*?)(?=&|$)/);\n\n if ( id && id.length === 2 ) {\n return id[0].replace(/^\\?v=/, '');\n }\n\n let path = url.match(/(\\.be\\/.*?)(?=\\?|$)/);\n\n if ( path && path.length === 2 ) {\n return path[0].replace(/^\\.be\\//, '');\n }\n\n let frame = url.match(/(\\/embed\\/)(.*?$)/);\n\n if ( frame && frame.length === 3 ) {\n return frame[0].replace(/^\\/embed\\//, '');\n }\n\n return fallback;\n}\n\nwindow.resolveVimeo = function(url, fallback = null) {\n\n if ( ! Any.isString(url) ) {\n return fallback;\n }\n\n let host = url.match(/^https?:\\/\\/(www\\.|player\\.)?vimeo\\.com/);\n\n if ( ! host ) {\n return fallback;\n }\n\n let path = url.match(/(\\/[0-9]+)(&|$)/);\n\n if ( path && path.length === 3 ) {\n return path[0].replace(/(^\\/|&$)/, '');\n }\n\n return fallback;\n}\n\nexport default {\n\n name: 'NPreviewVideo',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n },\n\n data()\n {\n return {\n provider: 'plain', unique: null, tempSrc: null\n };\n },\n\n mounted()\n {\n this.resolveType();\n },\n\n watch: {\n\n 'src': function () {\n this.resolveType();\n }\n\n },\n\n methods: {\n\n resolveType()\n {\n this.tempSrc = null;\n\n if ( this.resolveYoutube() ) {\n return;\n }\n\n if ( this.resolveVimeo() ) {\n return;\n }\n\n if ( Any.isObject(this.src) ) {\n this.resolveData();\n }\n\n this.provider = 'plain';\n },\n\n resolveData()\n {\n console.log('Coming at some point (blob stream)....');\n },\n\n resolveYoutube()\n {\n let youtube = window.resolveYoutube(this.src);\n\n if ( ! youtube ) {\n return false;\n }\n\n this.provider = 'youtube';\n\n this.$emit('resolve:youtube', this.unique = youtube);\n\n return true;\n },\n\n resolveVimeo()\n {\n let vimeo = window.resolveVimeo(this.src);\n\n if ( ! vimeo ) {\n return false;\n }\n\n this.provider = 'vimeo';\n\n this.$emit('resolve:vimeo', this.unique = vimeo);\n\n return true;\n }\n\n },\n\n renderYoutube()\n {\n let props = {\n src: `https://www.youtube.com/embed/${this.unique}`\n };\n\n return (\n <iframe {...props}></iframe>\n );\n },\n\n renderVimeo()\n {\n let props = {\n src: `https://player.vimeo.com/video/${this.unique}`\n };\n\n return (\n <iframe {...props}></iframe>\n );\n },\n\n renderPlain()\n {\n let src = Obj.get(this.src, 'name', this.src);\n\n let extension = src.replace(/^.*?\\.([^.?]+)(\\?.*?)?$/,\n '$1');\n\n return (\n <video width=\"320\" height=\"240\" controls>\n <source src={this.tempSrc || this.src} type={`video/${extension}`} />\n </video>\n );\n },\n\n render()\n {\n let classList = [\n 'n-preview-video'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('render' + Str.ucfirst(this.provider))() }\n </div>\n );\n }\n\n}","import { Arr, Map, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NMap',\n\n props: {\n\n lat: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n lng: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n zoom: {\n default()\n {\n return 15;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NMap: this\n };\n },\n\n data()\n {\n return { init: false, callbacks: [], tempMap: null };\n },\n\n watch: {\n\n lat()\n {\n Any.delay(() => this.tempMap.focusMarkers(), 100);\n },\n\n lng()\n {\n Any.delay(() => this.tempMap.focusMarkers(), 100);\n }\n\n },\n\n mounted()\n {\n this.tempMap = new Map(this.$el, {\n lat: this.lat, lng: this.lng, zoom: this.zoom\n });\n\n this.init = true;\n\n Arr.each(this.callbacks, (callback) => callback())\n },\n\n methods: {\n\n getMap()\n {\n return this.tempMap;\n },\n\n onMount(callback)\n {\n this.init ? callback() : this.callbacks.push(callback);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-map'\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { UUID, Obj, Num, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NMapMarker',\n\n inject: {\n\n NMap: {\n default: undefined\n }\n\n },\n\n props: {\n\n lat: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n lng: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n drag: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n options: {\n default()\n {\n return { style: 'default' };\n },\n type: [Object]\n },\n\n },\n\n data()\n {\n return {\n id: UUID(), tempMarker: null\n };\n },\n\n methods: {\n\n importMarkerPosition()\n {\n this.tempMarker.marker.setPosition({\n lat: this.lat, lng: this.lng\n });\n },\n\n updateMarkerPosition()\n {\n this.$emit('update:lat', this.tempMarker.marker.getPosition().lat());\n this.$emit('update:lng', this.tempMarker.marker.getPosition().lng());\n },\n\n initializeMarker()\n {\n let options = Obj.assign({\n lat: Num.float(this.lat), lng: Num.float(this.lng), draggable: this.drag\n }, this.options);\n\n if ( ! Any.isEmpty(this.$slots.default) ) {\n options.html = this.$el.innerHTML;\n }\n\n this.tempMarker = this.NMap.getMap().createMarker(this.id, options);\n\n this.tempMarker.marker.addListener('position_changed',\n Any.debounce(this.updateMarkerPosition));\n\n this.tempMarker.marker.addListener('dragstart',\n () => this.$emit('dragstart', this.tempMarker));\n\n this.tempMarker.marker.addListener('dragend',\n () => this.$emit('dragend', this.tempMarker));\n\n this.tempMarker.marker.addListener('mouseover',\n () => this.$emit('mouseenter', this.tempMarker));\n\n this.tempMarker.marker.addListener('mouseout',\n () => this.$emit('mouseleave', this.tempMarker));\n },\n\n setMarkerByAddress(address)\n {\n let successClosure = () => {\n this.NMap.getMap().focusMarkers(null, this.NMap.zoom);\n };\n\n let errorClosure = () => {\n this.Notify(this.trans('Address not found.'), 'danger');\n };\n\n this.NMap.getMap().setMarkerByAddress(this.id, address)\n .then(successClosure, errorClosure);\n }\n\n },\n\n watch: {\n\n lat()\n {\n this.importMarkerPosition();\n },\n\n lng()\n {\n this.importMarkerPosition();\n }\n\n },\n\n beforeMount()\n {\n this.NMap.onMount(this.initializeMarker);\n },\n\n render()\n {\n return (\n <div style=\"display: none;\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFile',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n multiple: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n clearable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n clearableIcon: {\n default()\n {\n return nano.Icons.times;\n },\n type: [String]\n },\n\n buttonText: {\n default()\n {\n return Locale.trans('Select file');\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n },\n\n tempValue()\n {\n if ( Any.isEmpty(this.tempValue) ) {\n this.$refs.input.value = null;\n }\n }\n\n },\n\n methods: {\n\n openContext()\n {\n this.$refs.input.click();\n },\n\n updateFile()\n {\n let tempValue = [\n ...this.$refs.input.files\n ];\n\n if ( ! this.multiple ) {\n tempValue = tempValue[0];\n }\n\n this.$emit('update:modelValue', this.tempValue = tempValue);\n },\n\n clearFile()\n {\n this.$emit('update:modelValue', null);\n }\n\n },\n\n renderInput()\n {\n let props = {\n size: this.size,\n disabled: true,\n iconDisabled: false,\n };\n\n props['onIconClick'] = this.clearFile;\n\n if ( ! this.multiple ) {\n props.modelValue = Obj.get(this.tempValue, 'name');\n }\n\n if ( this.multiple ) {\n props.modelValue = Locale.choice(':count File|:count Files',\n this.tempValue.length);\n }\n\n if ( this.clearable && !Any.isEmpty(this.tempValue) ) {\n props.icon = this.clearableIcon;\n }\n\n return (\n <NInput {...props}>\n { /* Input field for text */ }\n </NInput>\n );\n },\n\n renderButton()\n {\n let props = {\n size: this.size,\n disabled: this.disabled,\n icon: this.icon,\n onClick: this.openContext\n };\n\n return (\n <NButton {...props}>{this.buttonText}</NButton>\n );\n },\n\n renderHidden()\n {\n let props = {\n 'onInput': this.updateFile\n };\n\n return (\n <div class=\"n-file__input\">\n <input ref=\"input\" type=\"file\" multiple={this.multiple} {...props}></input>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-file'\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderInput')() }\n { this.ctor('renderButton')() }\n { this.ctor('renderHidden')() }\n </div>\n )\n }\n\n}\n","import { Num, Arr, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRating',\n\n props: {\n\n modelValue: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n steps: {\n default()\n {\n return 0.5;\n },\n type: [Number]\n },\n\n fixed: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n choice: {\n default()\n {\n return ':count';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n virtualValue()\n {\n return Num.fixed(1 / this.max * this.modelValue * 5, this.fixed);\n },\n\n },\n\n renderStars()\n {\n let stars = [\n 1, 2, 3, 4, 5\n ];\n\n return Arr.each (stars, (rate) => {\n\n let className = 'is-null';\n\n if ( this.virtualValue >= rate - 0.5 ) {\n className = 'is-half';\n }\n\n if ( this.virtualValue >= rate ) {\n className = 'is-full';\n }\n\n return (\n <span class={className}></span>\n );\n });\n },\n\n renderValue()\n {\n let vars = {\n value: Num.format(this.modelValue, '.', '', this.fixed)\n };\n\n if ( this.$slots.default ) {\n return this.$slots.default(vars);\n }\n\n return Locale.choice(this.choice, this.modelValue, vars);\n },\n\n render()\n {\n let classList = [\n 'n-rating',\n 'n-rating--' + this.size,\n 'n-rating--' + this.type\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-rating__stars\">\n {this.ctor('renderStars')()}\n </div>\n <div class=\"n-rating__value\">\n {this.ctor('renderValue')()}\n </div>\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDrawer',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n width: {\n default()\n {\n return '30%';\n },\n type: [String]\n },\n\n title: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'right';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n tempValue()\n {\n this.startRefreshTimeout();\n }\n\n },\n\n provide()\n {\n return {\n NDrawer: this\n };\n },\n\n data()\n {\n return {\n target: null, tempValue: false\n };\n },\n\n mounted()\n {\n this.target = Dom.find(this.selector || this.$el)\n .previous().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).on('keydown',\n this.eventKeydown, this._.uid);\n\n let showDrawer = () => {\n this.tempValue = true;\n };\n\n if ( this.modelValue ) {\n Any.delay(showDrawer, 100);\n }\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n\n Dom.find(document.body).off('keydown',\n null, this._.uid);\n },\n\n methods: {\n\n openModal(force = false, source = null)\n {\n if ( this.tempValue ) {\n return;\n }\n\n if ( this.closable || force ) {\n this.tempValue = true;\n }\n\n this.$emit('update:modelValue', true, source);\n },\n\n closeDrawer(force = false, source = null)\n {\n if ( ! this.tempValue ) {\n return;\n }\n\n if ( ! this.update ) {\n return this.$emit('close', source);\n }\n\n if ( this.closable || force ) {\n this.tempValue = false;\n }\n\n this.$emit('update:modelValue', false, source);\n },\n\n stopRefreshTimeout()\n {\n clearTimeout(this.refresh);\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n startRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n window.zIndex += 1;\n\n Dom.find(this.$el).attr('data-drawer',\n window.zIndex);\n\n Dom.find(this.$el).css({\n 'z-index': window.zIndex\n });\n\n this.queueRefreshTimeout();\n },\n\n queueRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n this.refresh = setTimeout(() => {\n Dom.find(this.$el).addClass('n-ready');\n }, 100);\n },\n\n eventClick(event, el)\n {\n if ( this.disabled || event.which !== 1 ) {\n return;\n }\n\n let result = !! Dom.find(el).closest(this.target);\n\n if ( ! result && ! this.tempValue ) {\n return;\n }\n\n if ( this.tempValue && this.closable ) {\n result = ! Dom.find(el).closest(this.$refs.backdrop);\n }\n\n if ( result === this.tempValue ) {\n return;\n }\n\n if ( ! result ) {\n return this.closeDrawer(false, 'escape');\n }\n\n if ( this.listen ) {\n this.openModal(true, 'selector');\n }\n },\n\n eventKeydown(event, el)\n {\n if ( ! this.tempValue || event.which !== 27 ) {\n return;\n }\n\n let extractIndex = (modal) => {\n return Dom.find(modal).attr('data-drawer');\n };\n\n let indexes = Dom.find('.n-drawer:not(.n-hidden)')\n .each(extractIndex);\n\n let index = Dom.find(this.$el).attr('data-drawer');\n\n if ( Arr.last(indexes.sort()) !== index ) {\n return;\n }\n\n this.closeDrawer(false, 'escape');\n },\n\n },\n\n renderClose()\n {\n if ( ! this.renderClose || ! this.closable ) {\n return null;\n }\n\n let props = {\n onClick: () => this.closeDrawer(false, 'escape')\n };\n\n return (\n <div class=\"n-drawer__close\" {...props}>\n <span class={nano.Icons.times}></span>\n </div>\n );\n },\n\n renderHeader()\n {\n if ( ! this.$slots.header && ! this.title ) {\n return null;\n }\n\n return (\n <div class=\"n-drawer__header\">\n { [this.$slots.header && this.$slots.header({ closeDrawer: this.closeDrawer }) || this.title, this.ctor('renderClose')()] }\n </div>\n );\n },\n\n renderFooter()\n {\n if ( ! this.$slots.footer ) {\n return null;\n }\n\n return (\n <div class=\"n-drawer__footer\">\n { this.$slots.footer({ closeDrawer: this.closeDrawer }) }\n </div>\n );\n },\n\n renderBody()\n {\n let bodyHtml = (\n <NScrollbar ref=\"scrollbar\" relative={true} wrapClass=\"n-drawer__wrap\">\n { this.$slots.default && this.$slots.default({ closeDrawer: this.closeDrawer }) }\n </NScrollbar>\n );\n\n if ( this.$slots.body ) {\n bodyHtml = this.$slots.body({ closeDrawer: this.closeDrawer });\n }\n\n return (\n <div class=\"n-drawer__body\">\n { bodyHtml }\n </div>\n );\n },\n\n renderFrame()\n {\n if ( ! this.tempValue ) {\n return null;\n }\n\n let style = {\n width: this.width\n };\n\n let innerHtml = [\n this.ctor('renderHeader')(),\n this.ctor('renderBody')(),\n this.ctor('renderFooter')(),\n ]\n\n return (\n <div class=\"n-drawer__frame\" style={style}>\n { this.$slots.raw ? this.$slots.raw() : innerHtml }\n </div>\n );\n },\n\n renderBackdrop()\n {\n return (\n <div ref=\"backdrop\" class=\"n-drawer__backdrop\"></div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-drawer',\n 'n-drawer--' + this.size,\n 'n-drawer--' + this.type,\n 'n-drawer--' + this.position\n ];\n\n if ( this.tempValue ) {\n this.queueRefreshTimeout();\n }\n\n if ( this.renderClose ) {\n classList.push('n-closable');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let innerHtml = null;\n\n if ( this.tempValue ) {\n innerHtml = this.ctor('renderFrame')();\n }\n\n return (\n <div class={classList}>\n { [innerHtml, this.ctor('renderBackdrop')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Dom, Locale } from \"@kizmann/pico-js\";\n\nimport CtorMixin from \"./mixins/src/ctor.js\";\nimport CmerMixin from \"./mixins/src/cmer.js\";\nimport CsloMixin from \"./mixins/src/cslo.js\";\n\nimport Alert from \"./alert/index.js\";\nimport Notification from \"./notification/index.js\";\nimport Empty from \"./empty/index.js\";\nimport Config from \"./config/index.js\";\nimport Scrollbar from \"./scrollbar/index.js\";\nimport Virtualscroller from \"./virtualscroller/index.js\";\nimport Draggable from \"./draggable/index.js\";\nimport Loader from \"./loader/index.js\";\nimport Resizer from \"./resizer/index.js\";\nimport Popover from \"./popover/index.js\";\nimport Modal from \"./modal/index.js\";\nimport Button from \"./button/index.js\";\nimport Input from \"./input/index.js\";\nimport InputNumber from \"./input-number/index.js\";\nimport Textarea from \"./textarea/index.js\";\nimport Select from \"./select/index.js\";\nimport Checkbox from \"./checkbox/index.js\";\nimport Radio from \"./radio/index.js\";\nimport Slider from \"./slider/index.js\";\nimport Switch from \"./switch/index.js\";\nimport Confirm from \"./confirm/index.js\";\nimport Cascader from \"./cascader/index.js\";\nimport Datepicker from \"./datepicker/index.js\";\nimport Timepicker from \"./timepicker/index.js\";\nimport Datetimepicker from \"./datetimepicker/index.js\";\nimport Durationpicker from \"./durationpicker/index.js\";\nimport Transfer from \"./transfer/index.js\";\nimport Form from \"./form/index.js\";\nimport Tabs from \"./tabs/index.js\";\nimport Tags from \"./tags/index.js\";\nimport Collapse from \"./collapse/index.js\";\nimport Table from \"./table/index.js\";\nimport Paginator from \"./paginator/index.js\";\nimport Info from \"./info/index.js\";\nimport Preview from \"./preview/index.js\";\nimport Map from \"./map/index.js\";\nimport File from \"./file/index.js\";\nimport Rating from \"./rating/index.js\";\nimport Drawer from \"./drawer/index.js\";\n\nconst NanoImports = [\n Alert,\n Notification,\n Empty,\n Config,\n Scrollbar,\n Virtualscroller,\n Draggable,\n Loader,\n Resizer,\n Popover,\n Modal,\n Button,\n Input,\n InputNumber,\n Textarea,\n Select,\n Checkbox,\n Radio,\n Slider,\n Switch,\n Confirm,\n Cascader,\n Datepicker,\n Timepicker,\n Datetimepicker,\n Durationpicker,\n Transfer,\n Form,\n Tabs,\n Tags,\n Collapse,\n Table,\n Paginator,\n Info,\n Preview,\n Map,\n File,\n Rating,\n Drawer\n];\n\nexport const Icons = {\n handle: 'fa fa-ellipsis-v',\n checked: 'fa fa-check',\n circle: 'fa fa-circle',\n intermediate: 'fa fa-minus',\n clock: 'fa fa-clock',\n calendar: 'fa fa-calendar',\n times: 'fa fa-times',\n primary: 'fa fa-info-circle',\n success: 'fa fa-check-circle',\n warning: 'fa fa-exclamation-circle',\n danger: 'fa fa-times-circle',\n info: 'fa fa-info-circle',\n angleUp: 'fa fa-angle-up',\n angleRight: 'fa fa-angle-right',\n angleDown: 'fa fa-angle-down',\n angleLeft: 'fa fa-angle-left',\n angleDoubleLeft: 'fa fa-angle-double-left',\n angleDoubleRight: 'fa fa-angle-double-right'\n};\n\nexport const Settings = {\n iconPosition: 'before',\n notifySize: 'md',\n notifyPosition: 'bottom-start'\n};\n\nexport function Install(App, Icons = {}, Settings = {})\n{\n /**\n * @const window.pi\n */\n\n if ( typeof window.pi === 'undefined' ) {\n return console.error('pico-js is not available.');\n }\n\n Obj.each(window.pi, (value, key) => {\n App.config.globalProperties[key] = value;\n });\n\n App.config.globalProperties.ctor = CtorMixin.ctor;\n App.config.globalProperties.cmer = CmerMixin.cmer;\n App.config.globalProperties.cslo = CsloMixin.cslo;\n\n App.config.globalProperties.trans = Locale.trans;\n App.config.globalProperties.choice = Locale.choice;\n\n window.nano.Icons = Obj.assign(window.nano.Icons, Icons);\n window.nano.Settings = Obj.assign(window.nano.Settings, Settings);\n\n Arr.each(NanoImports, (NanoModule) => {\n NanoModule(App);\n });\n\n // require('./chart/index.js'); // Ignore\n // require('./wysiwyg/index.js'); // Ignore\n}\n\nexport const Nano = {\n Icons: Icons, Settings: Settings, Install: Install\n};\n\nwindow.keyMods = [];\n\nDom.find(document).on('keydown', (event) => {\n Arr.add(window.keyMods, event.which);\n});\n\nDom.find(document).on('keyup', (event) => {\n Arr.remove(window.keyMods, event.which);\n});\n\nDom.find(document).on('dragstart', (event) => {\n Arr.add(window.keyMods, event.which);\n});\n\nDom.find(document).on('dragend', (event) => {\n window.keyMods = [];\n});\n\nif ( typeof window.nano === 'undefined' ) {\n window.nano = Nano;\n}\n\nexport default Nano;\n","export default function (App) {\n import(\"./src/alert/alert.js\").then(({ Alert }) => {\n App.config.globalProperties[Alert.alias] = window[Alert.alias] = Alert.handle;\n });\n}\n","export default function (App) {\n import(\"./src/notification/notification.js\").then(({ Notify }) => {\n App.config.globalProperties[Notify.alias] = window[Notify.alias] = Notify.handle;\n });\n}\n","import EmptyIcon from \"./src/empty-icon/empty-icon.jsx\";\n\nexport default function (App) {\n App.component(EmptyIcon.name, EmptyIcon);\n}\n","import NConfig from \"./src/config/config.jsx\";\nimport NConfigNext from \"./src/config/config-next.jsx\";\nimport NBuilder from \"./src/builder/builder.jsx\";\nimport NRefrencePanel from \"./src/reference-panel/reference-panel.jsx\";\nimport NRefrencePicker from \"./src/reference-picker/reference-picker.jsx\";\n\nexport default function(App) {\n App.component(NConfig.name, NConfig);\n App.component(NConfigNext.name, NConfigNext);\n App.component(NBuilder.name, NBuilder);\n App.component(NRefrencePanel.name, NRefrencePanel);\n App.component(NRefrencePicker.name, NRefrencePicker);\n}\n","import Scrollbar from \"./src/scrollbar/scrollbar.jsx\";\n\nexport default function (App) {\n App.component(Scrollbar.name, Scrollbar);\n}","import Virtualscroller from \"./src/virtualscroller/virtualscroller.jsx\";\n\nexport default function (App) {\n App.component(Virtualscroller.name, Virtualscroller);\n}","import Draglist from \"./src/draglist/draglist.jsx\";\nimport DraglistItem from \"./src/draglist-item/draglist-item.jsx\";\nimport Draggrid from \"./src/draggrid/draggrid.jsx\";\nimport DraggridItem from \"./src/draggrid-item/draggrid-item.jsx\";\nimport Dropzone from \"./src/dropzone/dropzone.jsx\";\n\nexport default function (App) {\n App.component(Draglist.name, Draglist);\n App.component(DraglistItem.name, DraglistItem);\n App.component(Draggrid.name, Draggrid);\n App.component(DraggridItem.name, DraggridItem);\n App.component(Dropzone.name, Dropzone);\n}","import Loader from \"./src/loader/loader.jsx\";\n\nexport default function (App) {\n App.component(Loader.name, Loader);\n}\n","import Resizer from \"./src/resizer/resizer.jsx\";\n\nexport default function (App) {\n App.component(Resizer.name, Resizer);\n}\n","import Popover from \"./src/popover/popover.jsx\";\nimport PopoverGroup from \"./src/popover-group/popover-group.jsx\";\nimport PopoverOption from \"./src/popover-option/popover-option.jsx\";\n\nexport default function (App) {\n App.component(Popover.name, Popover);\n App.component(PopoverGroup.name, PopoverGroup);\n App.component(PopoverOption.name, PopoverOption);\n}","import Modal from \"./src/modal/modal.jsx\";\n\nexport default function (App) {\n App.component(Modal.name, Modal);\n}\n","import Button from \"./src/button/button.jsx\";\nimport ButtonGroup from \"./src/button-group/button-group.jsx\";\n\nexport default function (App) {\n App.component(Button.name, Button);\n App.component(ButtonGroup.name, ButtonGroup);\n}\n","import Input from \"./src/input/input.jsx\";\n\nexport default function (App) {\n App.component(Input.name, Input);\n}\n","import InputNumber from \"./src/input-number/input-number.jsx\";\n\nexport default function (App) {\n App.component(InputNumber.name, InputNumber);\n}","import Textarea from \"./src/textarea/textarea.jsx\";\n\nexport default function (App) {\n App.component(Textarea.name, Textarea);\n}","import Select from \"./src/select/select.jsx\";\nimport SelectOption from \"./src/select-option/select-option.jsx\";\n\nexport default function (App) {\n App.component(Select.name, Select);\n App.component(SelectOption.name, SelectOption);\n}\n","import Checkbox from \"./src/checkbox/checkbox.jsx\";\nimport CheckboxGroup from \"./src/checkbox-group/checkbox-group.jsx\";\n\nexport default function (App) {\n App.component(Checkbox.name, Checkbox);\n App.component(CheckboxGroup.name, CheckboxGroup);\n}","import NRadio from \"./src/radio/radio.jsx\";\nimport NRadioGroup from \"./src/radio-group/radio-group.jsx\";\n\nexport default function (App) {\n App.component(NRadio.name, NRadio);\n App.component(NRadioGroup.name, NRadioGroup);\n}\n","import Slider from \"./src/slider/slider.jsx\";\n\nexport default function (App) {\n App.component(Slider.name, Slider);\n}","import Switch from \"./src/switch/switch.jsx\";\n\nexport default function (App) {\n App.component(Switch.name, Switch);\n}","import Confirm from \"./src/confirm/confirm.jsx\";\n\nexport default function (App) {\n App.component(Confirm.name, Confirm);\n}\n","import CascaderPanel from \"./src/cascader-panel/cascader-panel.jsx\";\nimport Cascader from \"./src/cascader/cascader.jsx\";\n\nexport default function (App) {\n App.component(CascaderPanel.name, CascaderPanel);\n App.component(Cascader.name, Cascader);\n}","import DatepickerPanel from \"./src/datepicker-panel/datepicker-panel.jsx\";\nimport Datepicker from \"./src/datepicker/datepicker.jsx\";\n\nexport default function (App) {\n App.component(DatepickerPanel.name, DatepickerPanel);\n App.component(Datepicker.name, Datepicker);\n}","import TimepickerPanel from \"./src/timepicker-panel/timepicker-panel.jsx\";\nimport Timepicker from \"./src/timepicker/timepicker.jsx\";\n\nexport default function (App) {\n App.component(TimepickerPanel.name, TimepickerPanel);\n App.component(Timepicker.name, Timepicker);\n}","import Datetimepicker from \"./src/datetimepicker/datetimepicker.jsx\";\n\nexport default function (App) {\n App.component(Datetimepicker.name, Datetimepicker);\n}","import Durationpicker from \"./src/durationpicker/durationpicker.jsx\";\n\nexport default function (App) {\n App.component(Durationpicker.name, Durationpicker);\n}","import Transfer from \"./src/transfer/transfer.jsx\";\n\nexport default function (App) {\n App.component(Transfer.name, Transfer);\n}","import Form from \"./src/form/form.jsx\";\nimport FormGroup from \"./src/form-group/form-group.jsx\";\nimport FormItem from \"./src/form-item/form-item.jsx\";\nimport FormFrame from \"./src/form-frame/form-frame.jsx\";\n\nexport default function (App) {\n App.component(Form.name, Form);\n App.component(FormGroup.name, FormGroup);\n App.component(FormItem.name, FormItem);\n App.component(FormFrame.name, FormFrame);\n}","import Tabs from \"./src/tabs/tabs.jsx\";\nimport TabsItem from \"./src/tabs-item/tabs-item.jsx\";\n\nexport default function (App) {\n App.component(Tabs.name, Tabs);\n App.component(TabsItem.name, TabsItem);\n}","import Tags from \"./src/tags/tags.jsx\";\nimport TagsItem from \"./src/tags-item/tags-item.jsx\";\n\nexport default function (App) {\n App.component(Tags.name, Tags);\n App.component(TagsItem.name, TagsItem);\n}","import Collapse from \"./src/collapse/collapse.jsx\";\nimport CollapseItem from \"./src/collapse-item/collapse-item.jsx\";\n\nexport default function (App) {\n App.component(Collapse.name, Collapse);\n App.component(CollapseItem.name, CollapseItem);\n}","import Table from \"./src/table/table.jsx\";\nimport TableColumn from \"./src/table-column/table-column.jsx\";\nimport TableCellString from \"./src/table-cell/types/table-cell-string.jsx\";\nimport TableCellBoolean from \"./src/table-cell/types/table-cell-boolean.jsx\";\nimport TableCellDatetime from \"./src/table-cell/types/table-cell-datetime.jsx\";\nimport TableCellOption from \"./src/table-cell/types/table-cell-option.jsx\";\nimport TableCellImage from \"./src/table-cell/types/table-cell-image.jsx\";\nimport TableCellMatrix from \"./src/table-cell/types/table-cell-matrix.jsx\";\nimport TableCellSelect from \"./src/table-cell/types/table-cell-select.jsx\";\nimport TableFilterString from \"./src/table-filter/types/table-filter-string.jsx\";\nimport TableFilterBoolean from \"./src/table-filter/types/table-filter-boolean.jsx\";\nimport TableFilterDatetime from \"./src/table-filter/types/table-filter-datetime.jsx\";\nimport TableFilterOption from \"./src/table-filter/types/table-filter-option.jsx\";\n\n\nexport default function (App) {\n App.component(Table.name, Table);\n App.component(TableColumn.name, TableColumn);\n App.component(TableCellString.name, TableCellString);\n App.component(TableCellBoolean.name, TableCellBoolean);\n App.component(TableCellDatetime.name, TableCellDatetime);\n App.component(TableCellOption.name, TableCellOption);\n App.component(TableCellImage.name, TableCellImage);\n App.component(TableCellMatrix.name, TableCellMatrix);\n App.component(TableCellSelect.name, TableCellSelect);\n App.component(TableFilterString.name, TableFilterString);\n App.component(TableFilterBoolean.name, TableFilterBoolean);\n App.component(TableFilterDatetime.name, TableFilterDatetime);\n App.component(TableFilterOption.name, TableFilterOption);\n}","import Paginator from \"./src/paginator/paginator.jsx\";\n\nexport default function (App) {\n App.component(Paginator.name, Paginator);\n}","import Info from \"./src/info/info.jsx\";\nimport InfoColumn from \"./src/info-column/info-column.jsx\";\nimport InfoFieldString from \"./src/info-field/types/info-field-string.jsx\";\nimport InfoFieldBoolean from \"./src/info-field/types/info-field-boolean.jsx\";\nimport InfoFieldDatetime from \"./src/info-field/types/info-field-datetime.jsx\";\nimport InfoFieldOption from \"./src/info-field/types/info-field-option.jsx\";\nimport InfoFieldImage from \"./src/info-field/types/info-field-image.jsx\";\n\nexport default function (App) {\n App.component(Info.name, Info);\n App.component(InfoColumn.name, InfoColumn);\n App.component(InfoFieldString.name, InfoFieldString);\n App.component(InfoFieldBoolean.name, InfoFieldBoolean);\n App.component(InfoFieldDatetime.name, InfoFieldDatetime);\n App.component(InfoFieldOption.name, InfoFieldOption);\n App.component(InfoFieldImage.name, InfoFieldImage);\n}","import Preview from \"./src/preview/preview.jsx\";\nimport PreviewPlain from \"./src/preview-plain/preview-plain.jsx\";\nimport PreviewImage from \"./src/preview-image/preview-image.jsx\";\nimport PreviewVideo from \"./src/preview-video/preview-video.jsx\";\n\nexport default function (App) {\n App.component(Preview.name, Preview);\n App.component(PreviewPlain.name, PreviewPlain);\n App.component(PreviewImage.name, PreviewImage);\n App.component(PreviewVideo.name, PreviewVideo);\n}\n\n","import Map from \"./src/map/map.jsx\";\nimport MapMarker from \"./src/map-marker/map-marker.jsx\";\n\nexport default function (App) {\n App.component(Map.name, Map);\n App.component(MapMarker.name, MapMarker);\n}\n\n","import File from \"./src/file/file.jsx\";\n\nexport default function (App) {\n App.component(File.name, File);\n}\n\n","import Rating from \"./src/rating/rating.jsx\";\n\nexport default function (App) {\n App.component(Rating.name, Rating);\n}\n","import Modal from \"./src/drawer/drawer.jsx\";\n\nexport default function (App) {\n App.component(Modal.name, Modal);\n}\n"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__55__","__WEBPACK_EXTERNAL_MODULE__122__","window","NanoBuilderTypes","Locale","trans","NanoBuilderIndexies","childs","props","modelValue","for","type","onValue","offValue","onType","options","NanoPrototypeTypes","offType","size","NanoPrototypeSizes","disabled","NanoPrototypeBools","default","clearValue","clearable","min","max","Number","MAX_VALUE","stepSize","precision","placeholder","format","decimals","Notification","_createClass","text","arguments","length","undefined","_classCallCheck","_defineProperty","duration","defaultIcons","iconPrimary","nano","Icons","info","iconSecondary","iconSuccess","success","iconWarning","warning","iconDanger","danger","iconInfo","this","Obj","assign","render","key","value","get","Str","ucfirst","_this","el","document","body","appendTo","setTimeout","addClass","remove","_this2","classList","Dom","make","join","onclick","icon","getIcon","html","Notify","_len","args","Array","_key","uid","create","apply","concat","wrapper","getWrapper","notifications","append","UUID","_len2","_key2","_construct","zIndex","style","position","find","empty","css","Settings","notifySize","notifyPosition","link","square","iconPosition","nativeType","click","label","iconDisabled","iconClick","AlertFrame","on","event","which","off","Alert","backdrop","onClick","frame","Any","isEmpty","alert","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","Object","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","ctor","fallback","$options","split","cmer","attrsList","isString","isArray","Arr","each","isPlain","$attrs","cslo","slot","$slots","findIndex","Comment","name","String","Boolean","inline","push","_createVNode","config","scope","data","tempValue","methods","solveAwait","match","has","$$scope","$$value","solveValue","isFunction","solveEvent","$configRefs","$refs","solveContent","_len3","_key3","$render","prepareValue","veModel","path","deepSet","inputClosure","closure","keys","val","shift","set","watch","renderLayer","source","setup","component","replace","vIf","vShow","vAwait","class","$on","$props","display","model","map","input","content","slots","resolved","resolveComponent","h","extraValue","sempValue","getString","final","propAwait","result","state","getState","propExists","exists","solveInput","sources","$scope","$model","$extra","$global","toPropKey","splits","lcfirst","toEventKey","cb","solveContext","_this3","console","error","getProp","getInput","isNull","setInput","renderSetup","alias","_this4","defaultsBind","binds","events","updateKey","_this5","_isSlot","s","toString","_isVNode","NanoBuilderPropType","NanoBuilderPropCode","NanoBuilderProps","renderDemo","renderExport","init","demo","collapse","safevar","normalizeModel","mounted","exportJson","JSON","stringify","clone","matches","exportExecutable","Function","normalizeChild","order","vals","child","applyProps","_objectSpread","except","builder","buildProps","first","_typeof","getOriginalValue","safevalue","btoa","getSafeValue","string","getRealValue","realvalue","code","number","parse","atob","original","changeElement","update","newKey","unset","k","changeAlias","changeType","bindValue","e","only","sey","isObject","$nextTick","addProp","removeProp","collapseElement","toggle","addElement","removeElement","moveupElement","_ref","close","MIN_VALUE","sub","Math","replacement","movedownElement","_ref2","renderTools","rootProps","collapseProps","href","addProps","removeProps","moveupProps","movedownProps","_mergeProps","renderProp","_this6","group","$data","index","typeProps","keyProps","allowCreate","optionsLabel","codeProps","valueInputProps","valueHtml","_resolveComponent","$event","fallbackProps","minRows","autoRows","_createTextVNode","renderProps","_slot","_this7","elementProps","aliasProps","plainProps","renderElement","_this8","builderHtml","renderBuilder","_this9","items","sort","v","renderBody","renderHead","_slot2","_slot3","_this0","addHtml","demoProps","demoHtml","renderOutput","_slot4","_this1","renderFunction","_ref3","configProps","width","height","expanded","selected","modelTree","buildTree","scopeTree","ref","submitItem","$emit","selectItem","expandItem","renderLeaf","renderTree","childItems","childHtml","renderItem","renderModel","modelHtml","renderScope","scopeHtml","modal","updateValue","renderModal","modalProps","panelProps","renderInput","inputProps","provide","NScrollbar","relative","fixture","allowNative","overflowY","overflowX","offsetY","offsetX","framerate","wrapClass","computed","touch","navigator","msMaxTouchPoints","mousedown","mousemove","mouseup","native","beforeMount","adaptScrollBehavior","bindAdaptHeight","bindAdaptWidth","passive","_","Event","bind","onResize","onUpdate","onScroll","updated","passedHeight","passedWidth","$el","beforeUnmount","unbindAdaptHeight","unbindAdaptWidth","unbind","scrollTo","x","y","delay","onScrollTo","scrollTop","scrollLeft","scrollIntoView","selector","onScrollIntoView","outerHeight","clientHeight","offsetTop","outerWidth","clientWidth","offsetLeft","$dom","offsetWidth","offsetHeight","adaptScrollHeight","innerHeight","scrollHeight","virtualHeight","barHeight","maxHeight","ceil","heightRatio","vbar","hasVtrack","removeClass","adaptScrollPosition","adaptScrollWidth","innerWidth","scrollWidth","virtualWidth","barWidth","maxWidth","widthRatio","hbar","hasHtrack","scroll","top","left","vbarTop","transform","hbarLeft","adaptHeight","cacheChildEl","cacheWindwoEl","windowCache","onSizechange","spacer","refreshHeight","setInterval","clearInterval","adaptWidth","resizeTimer","refreshWidth","clearTimeout","fire","$inner","actual","getTouchEvent","touches","changedTouches","onVbarMousedown","stopPropagation","onVbarMousemove","onVbarMouseup","clientY","offset","onHbarMousedown","onHbarMousemove","onHbarMouseup","clientX","WIN","vbarProps","hbarProps","DEBUG_NVSCROLL","inject","NDraggable","itemHeight","itemWidth","renderNode","deathzone","threshold","useKeys","start","end","grid","buffer","load","updateRender","bindAdaptScroll","unbindAdaptScroll","refreshScroll","onScrollupdate","isIndexRendered","scrollbar","scrollToIndex","onScrollToIndex","total","floor","targetTop","clearState","async","refreshDriver","inner","queue","timer","Date","now","to","bufferItems","round","isEqual","passed","topOffset","uniqueProp","renderRows","slice","renderGridRows","counter","chunk","renderGrid","chunks","renderItems","totalHeight","dragMods","NDragCounter","ready","count","choice","dataTransfer","setData","setDragImage","keyMods","attr","DragCounter","NDragIndicator","parent","safezone","strategy","rect","getBoundingClientRect","hasClass","show","hide","item","NDraghandler","rootNode","_this$bindDragstart","DragIndicator","DragCache","bindDragstart","_toConsumableArray","onDragenterRoot","onDragoverRoot","onDragleaveRoot","onDragendRoot","onDragdropRoot","bindDragend","bindDragdrop","preventDefault","target","closest","cacheNodes","frames","allowDrop","rainbow","node","moveNodes","cache","allowGroups","dragcount","dropNodes","tempSelected","removeNode","unlinkNodes","removeNodes","isSelected","id","virtuals","route","resolve","targetNode","isInSelf","cascade","childNodes","unbindNode","$handle","handle","onDragstartNode","onDragenterNode","onDragoverNode","onDragleaveNode","onDragendNode","onDragdropNode","moveNodesMany","moveNodesOne","insertNode","moveNodesRoot","transformDrop","moveNodesInto","moveNodesBefore","moveNodesAfter","eventName","filter","childProp","disableMove","targetRoute","children","splice","reduce","merge","reduceItem","Num","depth","cascades","unique","tempCascade","virtual","last","DEBUG_NDLIST","draggable","current","lazyload","showEmptyIcon","itemOffset","scrollTopOnChange","renderCurrent","renderHandle","renderSelect","renderExpand","allowSelect","allowDrag","keyEvents","highlightTimeout","modifier","visible","highlight","firstSelected","lastSelected","tempCurrent","tempExpanded","drag","watchModifierDown","watchModifierUp","virtualscroller","bindRoot","$watch","watchSelected","deep","refreshVirtuals","unbindRoot","filterVirtuals","add","updateNode","findVirtual","log","contains","getIndex","getCurrentIndex","isDraggable","canDrag","isHighlight","highlightNode","refresh","recursive","scrollToHighlight","isCurrent","setCurrent","setRawCurrent","setNextCurrent","setPrevCurrent","reset","syncCurrent","isDisabled","canSelect","hasChildren","getChildren","isExpanded","expandCurrent","isTotalSelected","isInterSelected","toggleSingleNode","toggleRangeNode","indexies","reversed","selectAll","row","unselectAll","bindKeydown","onKeydown","unbindKeydown","renderEmpty","onMouseenter","onMouseleave","NDraggableItem","required","bindNode","copy","copyNode","onDblclick","renderSpacer","angleRight","checked","NDropzone","NLoader","minimum","debounce","tempVisible","applyTimer","timing","startTimer","restartTimer","timeout","minWidth","resizerWidth","sizeFixed","updateWidth","bindSizechange","forceWidth","unmounted","unbindSizechange","flex","updateHandle","onLeftMousedown","onLeftMouseup","onLeftMousemove","scrollX","targetWidth","frameStyle","onRightMousedown","onRightMouseup","onRightMousemove","NPopover","listen","trigger","scrollClose","multiClose","prevent","refreshVisible","previous","onHover","onContext","onExit","onCloseEvent","active","open","pause","unpause","stopRefreshInterval","startRefreshInterval","passedOffset","updatePosition","isSameOffset","isSameSize","passedSize","getTargetHorizontal","targetRect","windowRect","posY","posX","center","inverse","broken","getTargetVertical","getTargetOffset","isScrollClose","keyCode","raw","header","footer","viewBody","tempSize","focus","image","imagePosition","clickClose","renderImage","renderIcon","renderContent","title","closable","renderClose","startRefreshTimeout","NModal","eventClick","eventKeydown","openModal","force","closeModal","stopRefreshTimeout","queueRefreshTimeout","indexes","times","renderHeader","renderFooter","bodyHtml","renderFrame","innerHtml","renderBackdrop","NForm","NFormItem","inheritAttrs","deepDisabled","onIconClick","onInput","onSubmit","onFocus","onBlur","getValue","clear","getDisplayValue","nextStep","isNaN","toFixed","onNextDown","nextTimeout","nextInterval","onNextUp","prevStep","onPrevDown","prevTimeout","prevInterval","onPrevUp","regex","RegExp","renderPrev","onMousedown","renderNext","renderClear","maxRows","maxLength","eventInput","rows","currentRows","lazy","multiple","emptyText","undefinedText","collapseText","optionsValue","optionsDisabled","custom","elements","element","tempClear","search","searched","generateOptions","searchOptions","NSelect","scrollToClosest","focusInput","$value","$index","option","tempLabel","addOption","removeOption","resetInput","onFocusInput","popover","onInputInput","onKeydownInput","createOrToggle","selectPrev","selectNext","searchRegex","toggleOption","denyUpdate","getOptionLabel","newIndex","scrollToCurrent","createOption","virtualbar","select","renderLabelClear","renderLabelAngle","angleDown","renderLabelItem","labelHtml","renderLabelCollapse","firstHtml","renderLabelItems","renderMultiple","isEmptyValue","isNumber","inputHtml","renderSingle","modelLabel","renderDisplay","displayHtml","emptyHtml","values","renderLazyOption","isMultipleActive","isSingleActive","renderLazyItems","renderPopover","onClose","renderOptions","valueProp","labelProp","toggleItem","renderOption","NCheckboxGroup","allowUncheck","intermediate","global","tempComputed","globalChecked","tempChecked","tempIntermediate","globalIntermediate","tempDisabled","globalDisabled","isChecked","addCheckbox","removeCheckbox","check","checkCheckbox","uncheck","uncheckCheckbox","eventShiftClick","shiftCheckbox","eventLocalClick","shiftKey","toggleCheckbox","eventGlobalClick","toggleAll","updateFromGroup","renderCheckbox","interHtml","checkHtml","renderLabel","align","checkbox","emit","checkboxes","uncheckAll","checkAll","NRadioGroup","addRadio","removeRadio","checkRadio","renderRadio","radio","range","steps","labels","fixmin","fixmax","minmax","getPseudoValue","setModelValue","getValPos","fixed","getValStyle","getBarPos","getBarWidth","getBarStyle","getClosestValue","diff","step","abs","onMouseup","onMousemove","relativeWidth","closestValue","stepMin","stepMax","handleProps","renderHandles","renderBar","barProps","renderSwitch","confirmText","abortText","buttonSize","abort","confirm","renderAction","hover","disabledProp","tempHover","clearCascader","hoverItem","onSelect","clickTimer","lastclick","hoverTimer","fireSelectItem","renderCascade","renderList","onCascaderInput","onCascaderHover","onPopoverInput","itemLabel","arrive","clearArrive","depart","clearDepart","minDate","maxDate","monthPanels","weekdays","months","yearsGrid","tempCache","getYears","monthsGrid","getMonths","Now","tempArrive","tempDepart","tempView","tempRanger","cacheArrive","cacheDepart","gotoDate","gotoMonth","gotoYear","patchDate","resetTime","applyTime","patchMonth","printRange","patchYear","patchRange","renderToolbarPrev","angleLeft","renderToolbarNext","renderToolbarMonth","monthsHtml","month","addMonths","renderToolbarYear","yearsHtml","year","renderToolbar","prev","next","renderDateItem","equalDate","valid","isNotBeforeMin","after","isNotAfterMax","before","renderRangeDateItem","viewMode","isTempValid","between","arriveFirst","renderDate","legendHtml","day","getDatesGrid","panelHtml","prevMonth","nextMonth","renderMonthItem","equal","renderMonth","prevYear","nextYear","renderYearItem","renderYear","prevDecade","nextDecade","placeholderArrive","placeholderDepart","rangeSeparator","boundary","displayFormat","clearDatepicker","clearRangeDatepicker","clearSingleDatepicker","onValueInput","moment","isValid","date","onArriveInput","onDepartInput","onDatepickerInput","onDatepickerDepart","onDatepickerArrive","initialDate","renderRange","arriveProps","departProps","hoursInterval","minutesInterval","secondsInterval","hoursGrid","getHours","minutesGrid","getMinutes","secondsGrid","getSeconds","eventSelect","scrollbars","renderHourItem","hour","renderHourPanel","renderMinuteItem","minute","renderMinutePanel","renderSecondItem","second","renderSecondPanel","clearTimepicker","onTimepickerInput","renderPanel","clearDatetimepicker","renderPanels","renderDatePanel","renderTimePanel","minDuration","maxDuration","negativeText","days","hours","minutes","seconds","editValue","findPattern","pattern","replaceAll","humanizeValue","digitizeValue","dmatch","hmatch","mmatch","smatch","clearDurationpicker","onValueChange","onDurationpickerInput","onChange","optionProps","scrollProps","sourceLabel","targetLabel","sourceChecked","selectedSource","tempSource","sourceIntermediate","targetChecked","selectedTarget","tempTarget","targetIntermediate","sourceSearch","searchPattern","targetSearch","moveItemsTarget","moveItemsSource","moveRowTarget","moveRowSource","moveToSource","moveToTarget","updateSelectedSource","updateSelectedTarget","renderSourceSelect","renderSourceTitle","counterHtml","renderSourceHeader","renderSourceSearch","renderSourceBody","onMove","renderTargetSelect","renderTargetTitle","renderTargetHeader","renderTargetSearch","renderTargetBody","renderMoveSource","renderMoveTarget","dom","form","errors","kind","ignore","forceChange","forceErrors","groups","blocked","emitChange","resetChange","registerGroup","unregisterGroup","is","addItem","removeItem","prevState","nextState","attrs","NFormFrame","tooltip","tooltipPosition","toggleGroup","openGroup","closeGroup","renderCollapse","renderText","textHtml","action","renderTooltip","NTabs","NTabsItem","tooltipWindow","conditional","conditionOn","conditionOff","enabled","toggleCondition","$input","gotoInput","changeTab","renderCondition","renderError","onScrollEvent","inviewMaxY","menu","renderMenu","iconHtml","buttonProps","renderMenus","bodyProps","float","addTab","tab","$forceUpdate","removeTab","getTab","updateEvent","currentTab","sorted","renderHeaderIndicator","tabs","preload","keep","renderHeaderIcon","renderHeaderLabel","NTags","tags","addTag","removeTag","color","NCollapse","showTab","hideTab","toggleTab","NCollapseItem","dragger","renderHeaderAngle","angle","showDelay","NTable","sortProp","sortDir","closeFilterOnEnter","tempVisibleProps","tempSortProp","tempSortDir","tempFilter","tempFilterProps","makeVisibleProps","detectVisible","addColumn","column","removeColumn","getColumnIndex","getColumnVisiblity","getColumnSorted","getColumnFilter","filterProp","property","getColumnFiltered","detectVisibity","intersect","extract","sortByColumn","dir","replaceFilter","filters","resetFilter","refreshCurrent","columns","renderContext","defaultRender","draggableHtml","matrixDisabled","breakpoint","previewProp","matrix","matrixProp","fluid","fixedWidth","trueText","falseText","datetimeFormat","matrixValues","NTableColumn","tempWidth","changedStates","sortDirection","flexBasis","renderHeadLabel","renderHeadSort","renderHeadFilter","angleHtml","setFirstState","firstState","extends","TableCell","convertString","convertBoolean","convertDatetime","preview","fit","toggleMatrix","toggleSelect","itemList","currentMatrix","combine","finder","canReset","canApply","getFilterClone","mountFilter","getFilterProp","getDefaultFilter","applyFilter","clearFilter","renderForm","renderApply","renderReset","TableFilter","operator","li","nl","eq","ne","lt","gt","in","ni","page","limit","limitOptions","maxPages","layout","pages","tempLimit","pageOptions","tempPage","forcePage","updatePaginate","paginate","onPrevPage","onPageInput","onNextPage","onFirstPage","onLastPage","onLimitInput","renderLimit","renderCount","renderGoto","renderFirst","angleDoubleLeft","renderLast","angleDoubleRight","renderPage","renderPages","renderSlot","view","className","syncEvent","bindSyncEvent","unbindSyncEvent","setValue","NInfo","infoHtml","InfoField","fileMap","video","font","application","file","thumb","mime","typre","showSrc","tempFile","tempThumb","fileMime","getFileMime","thumbMime","getThumbMime","lightbox","extension","exts","resolveVimeo","resolveYoutube","showLightbox","renderPreview","renderFull","renderLightbox","src","tempSrc","tempExt","ImageCache","resolveLoad","resolveData","loaded","laod","reader","FileReader","onload","readAsDataURL","url","provider","resolveType","youtube","vimeo","renderYoutube","renderVimeo","renderPlain","lat","lng","zoom","NMap","callbacks","tempMap","focusMarkers","Map","callback","getMap","onMount","tempMarker","importMarkerPosition","marker","setPosition","updateMarkerPosition","getPosition","initializeMarker","innerHTML","createMarker","addListener","setMarkerByAddress","address","then","clearableIcon","buttonText","openContext","updateFile","files","clearFile","renderButton","renderHidden","virtualValue","renderStars","rate","renderValue","vars","NDrawer","closeDrawer","NanoImports","App","globalProperties","EmptyIcon","NConfig","NConfigNext","NBuilder","NRefrencePanel","NRefrencePicker","Scrollbar","Virtualscroller","Draglist","DraglistItem","Draggrid","DraggridItem","Dropzone","Loader","Resizer","Popover","PopoverGroup","PopoverOption","Modal","Button","ButtonGroup","Input","InputNumber","Textarea","Select","SelectOption","Checkbox","CheckboxGroup","NRadio","Slider","Switch","Confirm","CascaderPanel","Cascader","DatepickerPanel","Datepicker","TimepickerPanel","Timepicker","Datetimepicker","Durationpicker","Transfer","Form","FormGroup","FormItem","FormFrame","Tabs","TabsItem","Tags","TagsItem","Collapse","CollapseItem","Table","TableColumn","TableCellString","TableCellBoolean","TableCellDatetime","TableCellOption","TableCellImage","TableCellMatrix","TableCellSelect","TableFilterString","TableFilterBoolean","TableFilterDatetime","TableFilterOption","Paginator","Info","InfoColumn","InfoFieldString","InfoFieldBoolean","InfoFieldDatetime","InfoFieldOption","InfoFieldImage","Preview","PreviewPlain","PreviewImage","PreviewVideo","MapMarker","File","Rating","circle","clock","calendar","primary","angleUp","Install","pi","CtorMixin","CmerMixin","CsloMixin","NanoModule","Nano"],"sourceRoot":""}
1
+ {"version":3,"file":"nano-ui.js","mappings":"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","sources":["webpack://Nano/webpack/universalModuleDefinition","webpack://Nano/./src/config/src/builder/prototypes/durationpicker/n-durationpicker.js","webpack://Nano/./src/config/src/builder/prototypes/switch/n-switch.js","webpack://Nano/external umd {\"root\":\"pi\",\"commonjs2\":\"@kizmann/pico-js\",\"commonjs\":\"@kizmann/pico-js\",\"amd\":\"@kizmann/pico-js\"}","webpack://Nano/./src/config/src/builder/prototypes/rating/n-rating.js","webpack://Nano/./src/config/src/builder/prototypes/input-number/n-input-number.js","webpack://Nano/external umd {\"root\":\"Vue\",\"commonjs2\":\"vue\",\"commonjs\":\"vue\",\"amd\":\"vue\"}","webpack://Nano/./src/config/src/builder/prototypes/html/span.js","webpack://Nano/./src/notification/src/notification/notification.js","webpack://Nano/./src/config/src/builder/prototypes/html/div.js","webpack://Nano/./src/config/src/builder/prototypes/tabs/n-tabs.js","webpack://Nano/./src/config/src/builder/prototypes/button/n-button.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form-group.js","webpack://Nano/./src/config/src/builder/prototypes/slider/n-slider.js","webpack://Nano/./src/config/src/builder/prototypes/datepicker/n-datepicker.js","webpack://Nano/./src/config/src/builder/prototypes/button/n-button-group.js","webpack://Nano/./src/config/src/builder/prototypes/datetimepicker/n-datetimepicker.js","webpack://Nano/./src/config/src/builder/prototypes/select/n-select.js","webpack://Nano/./src/config/src/builder/prototypes/table/n-table-column.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form.js","webpack://Nano/./src/config/src/builder/prototypes/radio/n-radio-group.js","webpack://Nano/./src/config/src/builder/prototypes/input/n-input.js","webpack://Nano/./src/config/src/builder/prototypes/table/n-table.js","webpack://Nano/./src/config/src/builder/prototypes/tags/n-tags.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form-item.js","webpack://Nano/./src/config/src/builder/prototypes/html/nano.js","webpack://Nano/./src/config/src/builder/prototypes/checkbox/n-checkbox.js","webpack://Nano/./src/config/src/builder/prototypes/tabs/n-tabs-item.js","webpack://Nano/./src/config/src/builder/prototypes/empty/n-empty.js","webpack://Nano/./src/config/src/builder/prototypes/tags/n-tags-item.js","webpack://Nano/./src/config/src/builder/prototypes/checkbox/n-checkbox-group.js","webpack://Nano/./src/config/src/builder/prototypes/cascader/n-cascader.js","webpack://Nano/./src/config/src/builder/prototypes/loader/n-loader.js","webpack://Nano/./src/config/src/builder/prototypes/timepicker/n-timepicker.js","webpack://Nano/./src/config/src/builder/prototypes/modal/n-modal.js","webpack://Nano/./src/alert/src/alert/alert.js","webpack://Nano/./src/config/src/builder/prototypes/confirm/n-confirm.js","webpack://Nano/./src/config/src/builder/prototypes/radio/n-radio.js","webpack://Nano/./src/config/src/builder/prototypes/transfer/n-transfer.js","webpack://Nano/webpack/bootstrap","webpack://Nano/webpack/runtime/define property getters","webpack://Nano/webpack/runtime/hasOwnProperty shorthand","webpack://Nano/webpack/runtime/make namespace object","webpack://Nano/./src/mixins/src/ctor.js","webpack://Nano/./src/mixins/src/cmer.js","webpack://Nano/./src/mixins/src/cslo.js","webpack://Nano/./src/empty/src/empty-icon/empty-icon.jsx","webpack://Nano/./src/config/src/config/config.jsx","webpack://Nano/./src/config/src/config/config-next.jsx","webpack://Nano/./src/config/src/builder/builder.jsx","webpack://Nano/./src/config/src/reference-panel/reference-panel.jsx","webpack://Nano/./src/config/src/reference-picker/reference-picker.jsx","webpack://Nano/./src/scrollbar/src/scrollbar/scrollbar.jsx","webpack://Nano/./src/virtualscroller/src/virtualscroller/virtualscroller.jsx","webpack://Nano/./src/draggable/src/draghandler/draghandler.js","webpack://Nano/./src/draggable/src/draglist/draglist.jsx","webpack://Nano/./src/draggable/src/draglist-item/draglist-item.jsx","webpack://Nano/./src/draggable/src/draggrid/draggrid.jsx","webpack://Nano/./src/draggable/src/draggrid-item/draggrid-item.jsx","webpack://Nano/./src/draggable/src/dropzone/dropzone.jsx","webpack://Nano/./src/loader/src/loader/loader.jsx","webpack://Nano/./src/resizer/src/resizer/resizer.jsx","webpack://Nano/./src/popover/src/popover/popover.jsx","webpack://Nano/./src/popover/src/popover-group/popover-group.jsx","webpack://Nano/./src/popover/src/popover-option/popover-option.jsx","webpack://Nano/./src/modal/src/modal/modal.jsx","webpack://Nano/./src/button/src/button/button.jsx","webpack://Nano/./src/button/src/button-group/button-group.jsx","webpack://Nano/./src/input/src/input/input.jsx","webpack://Nano/./src/input-number/src/input-number/input-number.jsx","webpack://Nano/./src/textarea/src/textarea/textarea.jsx","webpack://Nano/./src/select/src/select/select.jsx","webpack://Nano/./src/select/src/select-option/select-option.jsx","webpack://Nano/./src/checkbox/src/checkbox/checkbox.jsx","webpack://Nano/./src/checkbox/src/checkbox-group/checkbox-group.jsx","webpack://Nano/./src/radio/src/radio/radio.jsx","webpack://Nano/./src/radio/src/radio-group/radio-group.jsx","webpack://Nano/./src/slider/src/slider/slider.jsx","webpack://Nano/./src/switch/src/switch/switch.jsx","webpack://Nano/./src/confirm/src/confirm/confirm.jsx","webpack://Nano/./src/cascader/src/cascader-panel/cascader-panel.jsx","webpack://Nano/./src/cascader/src/cascader/cascader.jsx","webpack://Nano/./src/datepicker/src/datepicker-panel/datepicker-panel.jsx","webpack://Nano/./src/datepicker/src/datepicker/datepicker.jsx","webpack://Nano/./src/timepicker/src/timepicker-panel/timepicker-panel.jsx","webpack://Nano/./src/timepicker/src/timepicker/timepicker.jsx","webpack://Nano/./src/datetimepicker/src/datetimepicker/datetimepicker.jsx","webpack://Nano/./src/durationpicker/src/durationpicker/durationpicker.jsx","webpack://Nano/./src/transfer/src/transfer/transfer.jsx","webpack://Nano/./src/form/src/form/form.jsx","webpack://Nano/./src/form/src/form-group/form-group.jsx","webpack://Nano/./src/form/src/form-item/form-item.jsx","webpack://Nano/./src/form/src/form-frame/form-frame.jsx","webpack://Nano/./src/tabs/src/tabs/tabs.jsx","webpack://Nano/./src/tabs/src/tabs-item/tabs-item.jsx","webpack://Nano/./src/tags/src/tags/tags.jsx","webpack://Nano/./src/tags/src/tags-item/tags-item.jsx","webpack://Nano/./src/collapse/src/collapse/collapse.jsx","webpack://Nano/./src/collapse/src/collapse-item/collapse-item.jsx","webpack://Nano/./src/table/src/table/table.jsx","webpack://Nano/./src/table/src/table-column/table-column.jsx","webpack://Nano/./src/table/src/table-cell/table-cell.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-string.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-boolean.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-datetime.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-option.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-image.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-matrix.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-select.jsx","webpack://Nano/./src/table/src/table-filter/table-filter.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-string.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-boolean.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-datetime.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-option.jsx","webpack://Nano/./src/paginator/src/paginator/paginator.jsx","webpack://Nano/./src/info/src/info/info.jsx","webpack://Nano/./src/info/src/info-column/info-column.jsx","webpack://Nano/./src/info/src/info-field/info-field.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-string.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-boolean.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-datetime.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-option.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-image.jsx","webpack://Nano/./src/preview/src/preview/preview.jsx","webpack://Nano/./src/preview/src/preview-plain/preview-plain.jsx","webpack://Nano/./src/preview/src/preview-image/preview-image.jsx","webpack://Nano/./src/preview/src/preview-video/preview-video.jsx","webpack://Nano/./src/map/src/map/map.jsx","webpack://Nano/./src/map/src/map-marker/map-marker.jsx","webpack://Nano/./src/file/src/file/file.jsx","webpack://Nano/./src/rating/src/rating/rating.jsx","webpack://Nano/./src/drawer/src/drawer/drawer.jsx","webpack://Nano/./src/index.js","webpack://Nano/./src/alert/index.js","webpack://Nano/./src/notification/index.js","webpack://Nano/./src/empty/index.js","webpack://Nano/./src/config/index.js","webpack://Nano/./src/scrollbar/index.js","webpack://Nano/./src/virtualscroller/index.js","webpack://Nano/./src/draggable/index.js","webpack://Nano/./src/loader/index.js","webpack://Nano/./src/resizer/index.js","webpack://Nano/./src/popover/index.js","webpack://Nano/./src/modal/index.js","webpack://Nano/./src/button/index.js","webpack://Nano/./src/input/index.js","webpack://Nano/./src/input-number/index.js","webpack://Nano/./src/textarea/index.js","webpack://Nano/./src/select/index.js","webpack://Nano/./src/checkbox/index.js","webpack://Nano/./src/radio/index.js","webpack://Nano/./src/slider/index.js","webpack://Nano/./src/switch/index.js","webpack://Nano/./src/confirm/index.js","webpack://Nano/./src/cascader/index.js","webpack://Nano/./src/datepicker/index.js","webpack://Nano/./src/timepicker/index.js","webpack://Nano/./src/datetimepicker/index.js","webpack://Nano/./src/durationpicker/index.js","webpack://Nano/./src/transfer/index.js","webpack://Nano/./src/form/index.js","webpack://Nano/./src/tabs/index.js","webpack://Nano/./src/tags/index.js","webpack://Nano/./src/collapse/index.js","webpack://Nano/./src/table/index.js","webpack://Nano/./src/paginator/index.js","webpack://Nano/./src/info/index.js","webpack://Nano/./src/preview/index.js","webpack://Nano/./src/map/index.js","webpack://Nano/./src/file/index.js","webpack://Nano/./src/rating/index.js","webpack://Nano/./src/drawer/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@kizmann/pico-js\"), require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@kizmann/pico-js\", \"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Nano\"] = factory(require(\"@kizmann/pico-js\"), require(\"vue\"));\n\telse\n\t\troot[\"Nano\"] = factory(root[\"pi\"], root[\"Vue\"]);\n})(self, (__WEBPACK_EXTERNAL_MODULE__55__, __WEBPACK_EXTERNAL_MODULE__122__) => {\nreturn ","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDurationpicker'] = Locale.trans('NDurationpicker');\n\nwindow.NanoBuilderIndexies['NDurationpicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDurationpicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSwitch'] = Locale.trans('NSwitch');\n\nwindow.NanoBuilderIndexies['NSwitch'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSwitch']['props'] = {\n modelValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n onValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n offValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n onType: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n offType: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n size: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeSizes\n },\n disabled: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n};","module.exports = __WEBPACK_EXTERNAL_MODULE__55__;","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRating'] = Locale.trans('NRating');\n\nwindow.NanoBuilderIndexies['NRating'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRating']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NInputNumber'] = Locale.trans('NInputNumber');\n\nwindow.NanoBuilderIndexies['NInputNumber'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NInputNumber']['props'] = {\n modelValue: {\n for: ['binds', 'props'], default: null, type: 'Number'\n },\n clearValue: {\n for: ['binds', 'props'], default: null, type: 'Number'\n },\n clearable: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n min: {\n for: ['binds', 'props'], default: 0, type: 'Number'\n },\n max: {\n for: ['binds', 'props'], default: Number.MAX_VALUE, type: 'Number'\n },\n stepSize: {\n for: ['binds', 'props'], default: 1, type: 'Number'\n },\n precision: {\n for: ['binds', 'props'], default: 0, type: 'Number'\n },\n size: {\n for: ['binds', 'props'], default: 'md', type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], default: 'primary', type: 'String', options: window.NanoPrototypeTypes\n },\n disabled: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n placeholder: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n format: {\n for: ['binds', 'props'], default: ':count', type: 'String'\n },\n decimals: {\n for: ['binds', 'props'], default: '.', type: 'String'\n },\n};","module.exports = __WEBPACK_EXTERNAL_MODULE__122__;","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['span'] = Locale.trans('span');\n\nwindow.NanoBuilderIndexies['span'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['span']['props'] = {\n //\n};","import { UUID, Str, Obj, Dom } from \"@kizmann/pico-js\";\n\nclass Notification {\n\n el = null;\n\n text = '';\n\n icon = '';\n\n type = '';\n\n options = {\n duration: 4500,\n };\n\n constructor(text, type = 'primary', options = {})\n {\n let defaultIcons = {\n iconPrimary: window.nano.Icons.info,\n iconSecondary: window.nano.Icons.info,\n iconSuccess: window.nano.Icons.success,\n iconWarning: window.nano.Icons.warning,\n iconDanger: window.nano.Icons.danger,\n iconInfo: window.nano.Icons.info\n };\n\n this.text = text;\n this.type = type;\n\n this.options = Obj.assign(this.options,\n defaultIcons, options);\n\n this.render();\n }\n\n getIcon()\n {\n return Obj.get(this.options,\n 'icon' + Str.ucfirst(this.type));\n }\n\n append(el = document.body)\n {\n this.el.appendTo(el);\n\n setTimeout(() => this.el.addClass('n-active'), 100);\n\n return this;\n }\n\n remove()\n {\n this.el.get(0).remove();\n\n return this;\n }\n\n render()\n {\n let classList = [\n 'n-notification',\n 'n-notification--' + this.type\n ];\n\n this.el = Dom.make('div', {\n classList: classList.join(' '), onclick: () => this.remove()\n });\n \n\n let icon = Dom.make('div', {\n classList: 'n-notification__icon'\n });\n\n icon.appendTo(this.el);\n\n let iconSpan = Dom.make('span', {\n classList: this.getIcon()\n });\n\n iconSpan.appendTo(icon);\n\n let text = Dom.make('div', {\n classList: 'n-notification__text'\n });\n\n text.html(this.text).appendTo(this.el);\n }\n\n}\n\nexport class Notify {\n\n static alias = 'Notify';\n\n static size = window.nano.Settings.notifySize;\n\n static position = window.nano.Settings.notifyPosition;\n\n static notifications = {};\n\n static handle(...args)\n {\n let uid = Notify.create(undefined, ...args);\n\n let wrapper = Notify.getWrapper();\n\n // Append element to dom\n Notify.notifications[uid].append(wrapper);\n\n // Queue remove\n setTimeout(() => Notify.remove(uid),\n Notify.notifications[uid].options.duration);\n\n return uid;\n }\n\n static create(uid = UUID(), ...args)\n {\n Notify.notifications[uid] = new Notification(...args);\n\n return uid;\n }\n\n static remove(uid)\n {\n if ( Notify.notifications[uid] === undefined ) {\n return;\n }\n\n // Remove dom element\n Notify.notifications[uid].remove();\n\n // Remove from list\n delete Notify.notifications[uid];\n }\n\n static getWrapper()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let style = {\n 'z-index': window.zIndex + 100\n };\n\n let classList = [\n 'n-notification-frame',\n 'n-notification-frame--' + this.size,\n 'n-notification-frame--' + this.position\n ];\n\n if ( Dom.find('.n-notification-frame').empty() === true ) {\n Dom.make('div', { classList: classList.join(' ') }).appendTo(document.body);\n }\n\n Dom.find('.n-notification-frame').css(style);\n\n return Dom.find('.n-notification-frame');\n }\n\n}\n\nexport default Notify;\n","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['div'] = Locale.trans('div');\n\nwindow.NanoBuilderIndexies['div'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['div']['props'] = {\n classList: {\n type: 'String'\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTabs'] = Locale.trans('NTabs');\n\nwindow.NanoBuilderIndexies['NTabs'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTabs']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NButton'] = Locale.trans('NButton');\n\nwindow.NanoBuilderIndexies['NButton'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NButton']['props'] = {\n size: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n link: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n square: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n disabled: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n icon: {\n for: ['binds', 'props'], type: 'String'\n },\n iconPosition: {\n for: ['binds', 'props'], type: 'String', options: ['before', 'after']\n },\n nativeType: {\n for: ['binds', 'props'], type: 'String', options: ['button', 'a', 'div']\n },\n click: {\n for: ['on'], type: 'String'\n }\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NFormGroup'] = Locale.trans('NFormGroup');\n\nwindow.NanoBuilderIndexies['NFormGroup'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NFormGroup']['props'] = {\n label: {\n for: ['binds', 'props'], type: 'String'\n }\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSlider'] = Locale.trans('NSlider');\n\nwindow.NanoBuilderIndexies['NSlider'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSlider']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDatepicker'] = Locale.trans('NDatepicker');\n\nwindow.NanoBuilderIndexies['NDatepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDatepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NButtonGroup'] = Locale.trans('n-button-group');\n\nwindow.NanoBuilderIndexies['NButtonGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NButtonGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDatetimepicker'] = Locale.trans('NDatetimepicker');\n\nwindow.NanoBuilderIndexies['NDatetimepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDatetimepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSelect'] = Locale.trans('NSelect');\n\nwindow.NanoBuilderIndexies['NSelect'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSelect']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTableColumn'] = Locale.trans('NTableColumn');\n\nwindow.NanoBuilderIndexies['NTableColumn'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTableColumn']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NForm'] = Locale.trans('NForm');\n\nwindow.NanoBuilderIndexies['NForm'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NForm']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRadioGroup'] = Locale.trans('NRadioGroup');\n\nwindow.NanoBuilderIndexies['NRadioGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRadioGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NInput'] = Locale.trans('NInput');\n\nwindow.NanoBuilderIndexies['NInput'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NInput']['props'] = {\n modelValue: {\n for: ['binds', 'props'], default: null, type: 'String'\n },\n size: {\n for: ['binds', 'props'], default: 'md', type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], default: 'primary', type: 'String', options: window.NanoPrototypeTypes\n },\n disabled: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n placeholder: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n nativeType: {\n for: ['binds', 'props'], default: 'text', type: 'String', options: ['text', 'password', 'email']\n },\n icon: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n iconPosition: {\n for: ['binds', 'props'], default: 'before', type: 'String', options: ['before', 'after']\n },\n iconDisabled: {\n for: ['binds', 'props'], default: null, type: 'Boolean', options: window.NanoPrototypeBools\n },\n iconClick: {\n for: ['on'], type: 'String'\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTable'] = Locale.trans('NTable');\n\nwindow.NanoBuilderIndexies['NTable'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTable']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTags'] = Locale.trans('NTags');\n\nwindow.NanoBuilderIndexies['NTags'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTags']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NFormItem'] = Locale.trans('NFormItem');\n\nwindow.NanoBuilderIndexies['NFormItem'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NFormItem']['props'] = {\n label: {\n for: ['binds', 'props'], type: 'String'\n }\n};","window.NanoPrototypeSizes = [\n 'xs', 'sm', 'md', 'lg'\n];\n\nwindow.NanoPrototypeTypes = [\n 'primary', 'secondary', 'success', 'warning', 'danger', 'info'\n];\n\nwindow.NanoPrototypeBools = [\n 'true', 'false'\n];","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCheckbox'] = Locale.trans('n-checkbox');\n\nwindow.NanoBuilderIndexies['NCheckbox'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCheckbox']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTabsItem'] = Locale.trans('NTabsItem');\n\nwindow.NanoBuilderIndexies['NTabsItem'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTabsItem']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NEmpty'] = Locale.trans('NEmpty');\n\nwindow.NanoBuilderIndexies['NEmpty'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NEmpty']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTagsItem'] = Locale.trans('NTagsItem');\n\nwindow.NanoBuilderIndexies['NTagsItem'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTagsItem']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCheckboxGroup'] = Locale.trans('NCheckboxGroup');\n\nwindow.NanoBuilderIndexies['NCheckboxGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCheckboxGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCascader'] = Locale.trans('n-cascader');\n\nwindow.NanoBuilderIndexies['NCascader'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCascader']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NLoader'] = Locale.trans('NLoader');\n\nwindow.NanoBuilderIndexies['NLoader'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NLoader']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTimepicker'] = Locale.trans('NTimepicker');\n\nwindow.NanoBuilderIndexies['NTimepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTimepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NModal'] = Locale.trans('NModal');\n\nwindow.NanoBuilderIndexies['NModal'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NModal']['props'] = {\n //\n};","import { Any, Str, Obj, Dom } from \"@kizmann/pico-js\";\n\nclass AlertFrame {\n\n el = null;\n\n text = '';\n\n icon = '';\n\n type = '';\n\n options = {};\n\n constructor(text, type = 'primary', options = {})\n {\n let defaultIcons = {\n iconPrimary: window.nano.Icons.info,\n iconSecondary: window.nano.Icons.info,\n iconSuccess: window.nano.Icons.success,\n iconWarning: window.nano.Icons.warning,\n iconDanger: window.nano.Icons.danger,\n iconInfo: window.nano.Icons.info\n };\n\n this.text = text;\n this.type = type;\n\n this.options = Obj.assign(this.options,\n defaultIcons, options);\n\n this.render();\n }\n\n getIcon()\n {\n return Obj.get(this.options,\n 'icon' + Str.ucfirst(this.type));\n }\n\n append(el = document.body)\n {\n this.el.appendTo(el);\n\n Dom.find(document.body).on('keydown', (event) => {\n if ( event.which === 27 ) {\n this.remove();\n }\n }, 'n-alert');\n\n setTimeout(() => this.el.addClass('n-active'), 100);\n }\n\n remove()\n {\n Dom.find(document.body).off('keydown', null, 'n-alert');\n\n this.el.get(0).remove();\n }\n\n render()\n {\n let classList = [\n 'n-alert-frame',\n 'n-alert-frame--' + this.type,\n 'n-alert-frame--' + Alert.size\n ];\n\n this.el = Dom.make('div', {\n classList: classList.join(' ')\n });\n\n let backdrop = Dom.make('div', {\n classList: 'n-alert-backdrop', onclick: () => this.remove()\n });\n\n backdrop.onClick = () => {\n this.remove();\n };\n\n backdrop.appendTo(this.el);\n\n let frame = Dom.make('div', {\n classList: 'n-alert'\n });\n\n frame.appendTo(this.el);\n\n let icon = Dom.make('div', {\n classList: 'n-alert__icon'\n });\n\n icon.appendTo(frame);\n\n let iconSpan = Dom.make('span', {\n classList: this.getIcon()\n });\n\n iconSpan.appendTo(icon);\n\n let text = Dom.make('div', {\n classList: 'n-alert__text'\n });\n\n text.html(this.text).appendTo(frame);\n }\n\n}\n\nexport class Alert {\n\n static alias = 'Alert';\n\n static size = window.nano.Settings.notifySize;\n\n static alert = null;\n\n static handle(...args)\n {\n if ( ! Any.isEmpty(Alert.alert) ) {\n Alert.alert.remove();\n }\n\n Alert.alert = new AlertFrame(...args);\n\n Alert.alert.append();\n\n return Alert;\n }\n\n}\n\nexport default Alert;\n","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NConfirm'] = Locale.trans('n-confirm');\n\nwindow.NanoBuilderIndexies['NConfirm'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NConfirm']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRadio'] = Locale.trans('NRadio');\n\nwindow.NanoBuilderIndexies['NRadio'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRadio']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTransfer'] = Locale.trans('NTransfer');\n\nwindow.NanoBuilderIndexies['NTransfer'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTransfer']['props'] = {\n //\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { Arr, Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n ctor(key, fallback = null)\n {\n let ctor = Obj.get(this.$options, key.split('.'), -1);\n\n // if ( ctor === -1 ) {\n // ctor = Obj.get(this.$vnode.componentOptions.Ctor,\n // Arr.merge(['options'], key.split('.')), -1);\n // }\n\n if ( ctor === -1 ) {\n ctor = fallback;\n }\n\n if ( typeof ctor !== 'function' ) {\n return ctor;\n }\n\n return (...args) => ctor.apply(this, args);\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n cmer(classList)\n {\n let attrsList = {};\n\n if ( Any.isString(classList) ) {\n attrsList[classList] = true;\n }\n\n if ( Any.isArray(classList) ) {\n Arr.each(classList, (value) => attrsList[value] = true);\n }\n\n if ( Any.isPlain(classList) ) {\n Obj.assign(attrsList, classList);\n }\n\n if ( Any.isString(this.$attrs.class) ) {\n attrsList[this.$attrs.class] = true;\n }\n\n if ( Any.isArray(this.$attrs.class) ) {\n Arr.each(this.$attrs.class, (value) => attrsList[value] = true);\n }\n\n if ( Any.isPlain(this.$attrs.class) ) {\n Obj.assign(attrsList, this.$attrs.class);\n }\n\n return attrsList;\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport { Comment } from \"vue\";\n\nexport default {\n\n cslo(slot = 'default', props = {})\n {\n if ( ! this.$slots[slot] ) {\n return false;\n }\n\n return this.$slots[slot](props).findIndex((o) => {\n return o.type !== Comment;\n }) !== -1;\n }\n\n}\n","export default {\n\n name: 'NEmptyIcon',\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n inline: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-empty-icon',\n 'n-empty-icon--' + this.size,\n 'n-empty-icon--' + this.type\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.inline ) {\n classList.push('n-inline');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-empty-icon__frame\">\n { /* Icon */ }\n </div>\n <div class=\"n-empty-icon__text\">\n { this.$slots.default && this.$slots.default() }\n </div>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NConfig',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n config: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return this;\n },\n type: [Object]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n solveAwait(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( Any.isString(value) && value.match(/\\$\\$scope/) ) {\n return Obj.has({ $$scope: this.scope }, value);\n }\n\n if ( Any.isString(value) && value.match(/\\$\\$value/) ) {\n return Obj.has({ $$value: this.tempValue }, value);\n }\n\n return false;\n },\n\n solveValue(value, ...args)\n {\n if ( Any.isFunction(value) ) {\n return value.apply(this.scope, [this.tempValue, ...args]);\n }\n\n if ( Any.isString(value) && value.match(/^\\$\\$scope/) ) {\n return Obj.get({ $$scope: this.scope }, value);\n }\n\n if ( Any.isString(value) && value.match(/^\\$\\$value/) ) {\n return Obj.get({ $$value: this.tempValue }, value);\n }\n\n return value;\n },\n\n solveEvent(value)\n {\n let scope = Obj.assign(this.scope, {\n $configRefs: this.$refs\n });\n\n if ( Any.isFunction(value) ) {\n return (...args) => value.apply(scope, args);\n }\n\n return value;\n },\n\n solveContent(value, ...args)\n {\n if ( Any.isFunction(value) ) {\n return value.apply(this.scope, [this.$render, this.tempValue, ...args]);\n }\n\n return value;\n },\n\n prepareValue(veModel)\n {\n if ( ! veModel.path ) {\n return veModel.fallback;\n }\n\n if ( ! Obj.has(this.tempValue, veModel.path) ) {\n this.deepSet(this.tempValue, veModel.path, veModel.fallback);\n }\n\n return Obj.get(this.tempValue, veModel.path);\n },\n\n inputClosure(veModel, closure = null)\n {\n if ( ! veModel.path ) {\n return () => null;\n }\n\n return (value) => {\n\n if ( closure ) {\n closure(value, this.tempValue);\n }\n\n this.deepSet(this.tempValue, veModel.path, value);\n };\n },\n\n deepSet(obj, keys, val)\n {\n keys = (typeof keys === 'string') ?\n keys.split('.') : keys;\n\n let key = keys.shift();\n\n if ( obj[key] === undefined || obj[key] === null ) {\n Obj.set(obj, key, {});\n }\n\n if ( keys.length === 0 ) {\n return Obj.set(obj, key, val);\n }\n\n return this.deepSet(obj[key], keys, val);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n renderLayer(source)\n {\n if ( ! Any.isPlain(source) ) {\n return source;\n }\n\n return Arr.each(source, (setup, component) => {\n\n component = component.replace(/:.*?$/, '');\n\n // Set setup defaults\n setup = Obj.assign({\n vIf: true, vShow: true, vAwait: null, class: null, $on: {}, $props: {}, $attrs: {}\n }, setup);\n\n if ( ! this.solveAwait(setup.vAwait) ) {\n return null;\n }\n\n if ( ! this.solveValue(setup.vIf) ) {\n return null;\n }\n\n if ( ! this.solveValue(setup.vShow) ) {\n setup.style = { display: 'none' };\n }\n\n // Build default model\n let veModel = Obj.assign({\n prop: 'modelValue', fallback: null\n }, setup.model);\n\n // Delete model from setup\n delete setup.model;\n\n // Normalize props\n setup.$props = this.solveValue(setup.$props);\n\n // Normalize class\n setup.class = this.solveValue(setup.class);\n\n // Solve props\n Obj.map(setup.$props, (value) => this.solveValue(value));\n\n // Normalize attrs\n setup.$attrs = this.solveValue(setup.$attrs);\n\n // Solve attrs\n Obj.map(setup.$attrs, (value) => this.solveValue(value));\n\n // Solve events\n Obj.map(setup.$on, (value) => this.solveEvent(value));\n\n if ( veModel.path ) {\n\n // Override input event\n setup['onUpdate:modelValue'] = this.inputClosure(veModel, setup.$on.input);\n\n // Set prop in value or get fallback\n setup.$props[veModel.prop] = this.prepareValue(veModel);\n }\n\n Obj.assign(setup, setup.$props);\n delete setup.$props;\n\n Obj.assign(setup, setup.$attrs);\n delete setup.$attrs;\n\n Obj.assign(setup, setup.$on);\n delete setup.$on;\n\n let content = setup.content;\n delete setup.content;\n\n delete setup.vIf;\n delete setup.vShow;\n delete setup.vAwait;\n\n // Solve content if is functional\n let slots = this.solveContent(content, setup);\n\n let domtypes = [\n 'div', 'span', 'a'\n ];\n\n let resolved = component;\n\n if ( ! Arr.has(domtypes, resolved) ) {\n resolved = resolveComponent(component);\n }\n\n return h(resolved, setup, this.ctor('renderLayer')(slots));\n });\n },\n\n render()\n {\n return this.ctor('renderLayer')(this.config)[0];\n }\n\n}","import { Arr, Obj, Str, Any } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NConfigNext',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n extraValue: {\n default()\n {\n return null;\n },\n type: [Object]\n },\n\n config: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue, sempValue: this.extraValue || this.modelValue\n };\n },\n\n watch: {\n\n modelValue: function (value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n extraValue: function (value) {\n if ( value !== this.sempValue ) {\n this.sempValue = value;\n }\n }\n\n },\n\n methods: {\n\n getString(value)\n {\n let final = value.replace(/^@/, '')\n .replace(/^\\\\@/, '@');\n\n\n\n if ( value.match(/^@/) ) {\n return this.trans(final);\n }\n\n return final;\n },\n\n propAwait(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Any.isArray(value) ) {\n value = [value];\n }\n\n let result = Arr.each(value, (state) => {\n return this.getState(state, true);\n });\n\n return ! Arr.has(result, false);\n },\n\n propExists(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Any.isArray(value) ) {\n value = [value];\n }\n\n let result = Arr.each(value, (state) => {\n return this.getState(state, false);\n });\n\n return ! Arr.has(result, false);\n },\n\n getState(value, exists = true)\n {\n if ( Any.isFunction(value) ) {\n return !! this.solveInput(value);\n }\n\n if ( ! Any.isString(value) ) {\n return !! value;\n }\n\n if ( ! value.match(/(\\$scope|\\$model|\\$global)/) ) {\n return !! value;\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n if ( exists ) {\n return Obj.get(sources, value, undefined) === undefined;\n }\n\n return !! Obj.get(sources, value);\n },\n\n toPropKey(value)\n {\n let splits = value.replace(/^!/, '').split('-');\n\n value = Arr.each(splits, (split) => {\n return Str.ucfirst(split);\n });\n\n return Str.lcfirst(value.join(''));\n },\n\n toEventKey(value)\n {\n if ( ! value.match(/^on/) ) {\n value = 'on-' + value;\n }\n\n let splits = value.split('-');\n\n value = Arr.each(splits, (split) => {\n return Str.ucfirst(split);\n });\n\n return Str.lcfirst(value.join(''));\n },\n\n solveInput(cb, fallback)\n {\n return cb.call(this.scope, this.tempValue, fallback);\n },\n\n solveContext(cb)\n {\n if ( ! Any.isFunction(cb) ) {\n return () => console.error('Raw suffix (!) only allowed on functions');\n }\n\n return (...args) => cb.call(this.scope, ...args);\n },\n\n getProp(key, value)\n {\n if ( key.match(/^!/) ) {\n return this.solveContext(value);\n }\n\n if ( Any.isFunction(value) ) {\n return this.solveInput(value);\n }\n\n if ( ! Any.isString(value) ) {\n return value;\n }\n\n if ( ! value.match(/(\\$scope|\\$model|\\$global)/) ) {\n return this.getString(value);\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n let result = Obj.get(sources, value.replace(/^!+/, ''));\n\n if ( value.match(/^!!\\$/) ) {\n result = Any.isEmpty(result);\n }\n\n if ( value.match(/^!\\$/) ) {\n result = Any.isEmpty(result);\n }\n\n return result;\n },\n\n getInput(prop, fallback)\n {\n if ( Any.isFunction(prop) ) {\n return this.solveInput(prop, fallback);\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n if ( ! Any.isNull(fallback) && Obj.get(sources, prop, -1337) === -1337 ) {\n Obj.set(sources, prop, fallback);\n }\n\n return Obj.get(sources, prop);\n },\n\n setInput(prop, value)\n {\n if ( Any.isFunction(prop) ) {\n return console.error('NConfigNew: Bind with function is not allowed!');\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n Obj.set(sources, prop, value);\n }\n\n },\n\n renderSetup(setup, alias)\n {\n if ( ! Any.isPlain(setup) ) {\n return setup;\n }\n\n if ( ! this.propExists(setup['vIf']) ) {\n return null;\n }\n\n if ( ! this.propAwait(setup['vAwait']) ) {\n return null;\n }\n\n let defaults = {\n binds: {}, props: {}, events: {}, content: {}, slots: {}\n };\n\n let defaultsBind = {\n value: '', fallback: null\n };\n\n setup = Obj.assign(defaults, setup);\n\n let binds = {};\n\n Obj.each(setup['binds'], (value, key) => {\n\n if ( Any.isString(value) ) {\n value = { value: value };\n }\n\n binds[key] = Obj.assign(defaultsBind, value);\n });\n\n let events = {};\n\n Obj.each(setup['events'], (value, key) => {\n events[this.toEventKey(key)] = this.solveContext(value);\n });\n\n let props = {};\n\n Obj.each(setup['props'], (value, key) => {\n props[this.toPropKey(key)] = this.getProp(key, value);\n });\n\n props = Obj.assign(props, events);\n\n Obj.each(binds, (value, key) => {\n\n let updateKey = 'onUpdate:' + key;\n\n props[this.toEventKey(updateKey)] = (input) => {\n this.setInput(value.value, input);\n };\n\n props[this.toPropKey(key)] = this.getInput(value.value,\n value.fallback);\n });\n\n let component = alias.replace(/:.*?$/, '');\n\n if ( !Arr.has(['div', 'p'], component) ) {\n component = resolveComponent(component);\n }\n\n if ( Any.isEmpty(component) ) {\n return null;\n }\n\n if ( !this.propExists(setup['vShow']) ) {\n props.style = \"display: none;\";\n }\n\n let slots = {\n default: this.ctor('renderSlot')(setup.content)\n };\n\n Obj.each(setup.slots, (slot, key) => {\n slots[key] = this.ctor('renderSlot')(slot);\n });\n\n return h(component, props, slots);\n },\n\n renderSlot(callback)\n {\n let render = () => Arr.each(callback, (value, key) => {\n return this.ctor('renderSetup')(value, key);\n });\n\n if ( Any.isFunction(callback) ) {\n render = () => callback.apply(this.scope);\n }\n\n if ( Any.isString(callback) ) {\n render = () => this.getString(callback);\n }\n\n return render;\n },\n\n render()\n {\n return Arr.each(this.config, (value, key) => this.ctor('renderSetup')(value, key));\n }\n\n}","import { Arr, Dom, Any, Locale, Obj, UUID, Num } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderPropType = {\n 'root': Locale.trans('Root'),\n 'binds': Locale.trans('Bind'),\n 'props': Locale.trans('Property'),\n 'attrs': Locale.trans('Attribute'),\n 'on': Locale.trans('Event'),\n};\n\nwindow.NanoBuilderPropCode = {\n 'string': Locale.trans('String'),\n 'number': Locale.trans('Number'),\n 'boolean': Locale.trans('Boolean'),\n 'object': Locale.trans('Object'),\n 'function': Locale.trans('Function'),\n};\n\nwindow.NanoBuilderProps = {\n classList: {\n for: ['root', 'attrs', 'props'], type: 'String'\n },\n vIf: {\n for: ['root'], type: 'String'\n },\n vShow: {\n for: ['root'], type: 'String'\n },\n};\n\nwindow.NanoBuilderTypes = {\n //\n};\n\nwindow.NanoBuilderIndexies = {\n //\n};\n\n// DOM elements\nrequire('./prototypes/html/nano');\nrequire('./prototypes/html/div');\nrequire('./prototypes/html/span');\n\n// Nano elements\nrequire('./prototypes/button/n-button');\nrequire('./prototypes/button/n-button-group');\nrequire('./prototypes/cascader/n-cascader');\nrequire('./prototypes/checkbox/n-checkbox');\nrequire('./prototypes/checkbox/n-checkbox-group');\nrequire('./prototypes/confirm/n-confirm');\nrequire('./prototypes/datepicker/n-datepicker');\nrequire('./prototypes/datetimepicker/n-datetimepicker');\nrequire('./prototypes/durationpicker/n-durationpicker');\nrequire('./prototypes/empty/n-empty');\nrequire('./prototypes/form/n-form');\nrequire('./prototypes/form/n-form-group');\nrequire('./prototypes/form/n-form-item');\nrequire('./prototypes/input/n-input');\nrequire('./prototypes/input-number/n-input-number');\nrequire('./prototypes/loader/n-loader');\nrequire('./prototypes/modal/n-modal');\nrequire('./prototypes/radio/n-radio');\nrequire('./prototypes/radio/n-radio-group');\nrequire('./prototypes/rating/n-rating');\nrequire('./prototypes/select/n-select');\nrequire('./prototypes/slider/n-slider');\nrequire('./prototypes/switch/n-switch');\nrequire('./prototypes/table/n-table');\nrequire('./prototypes/table/n-table-column');\nrequire('./prototypes/tabs/n-tabs');\nrequire('./prototypes/tabs/n-tabs-item');\nrequire('./prototypes/tags/n-tags');\nrequire('./prototypes/tags/n-tags-item');\nrequire('./prototypes/timepicker/n-timepicker');\nrequire('./prototypes/transfer/n-transfer');\n\nexport default {\n\n name: 'NBuilder',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n renderDemo: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderExport: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n init: false, demo: false, collapse: [], safevar: this.normalizeModel(this.modelValue)\n };\n },\n\n watch: {\n modelValue: function () {\n this.safevar = this.normalizeModel(this.modelValue)\n }\n },\n\n mounted()\n {\n this.init = true;\n },\n\n methods: {\n\n exportJson(value)\n {\n return JSON.stringify(Obj.clone(value), null, 4).replace(/\"!FUNC:(.*?):FUNC!\"/g, (matches) => {\n return matches.replace(/^\"!FUNC:/, '').replace(/:FUNC!\"$/, '').replace(/\\\\\"/, '\"').replace(/\\\\n/g, \"\\n\");\n });\n },\n\n exportExecutable(value)\n {\n return new Function(`return ${this.exportJson(value)};`)();\n },\n\n normalizeModel(model)\n {\n let result = {};\n\n Obj.each(model, (value, key) => {\n result[key] = Obj.assign(this.normalizeChild(value), {\n order: (Any.vals(result).length + 1) * 100\n });\n });\n\n return result;\n },\n\n normalizeChild(child)\n {\n let result = this.applyProps(null, {\n ...Obj.except(child, ['content']), content: {}, builder: this.buildProps(child),\n });\n\n if ( Any.isArray(child.content) ) {\n child.content = Arr.first(child.content);\n }\n\n if ( ! Any.isPlain(child.content) && ! Any.isString(child.content) ) {\n child.content = {};\n }\n\n result.builder[\"null\"] = {\n type: typeof child.content\n }\n\n if (Any.isPlain(child.content)) {\n Obj.each(child.content || {}, (value, key) => {\n\n if ( ! key.match(':') ) {\n key += ':' + UUID();\n }\n\n result['content'][key] = Obj.assign(this.normalizeChild(value), {\n order: (Any.vals(result['content']).length + 1) * 100\n });\n });\n } else {\n result.content = child.content;\n }\n\n return result;\n },\n\n getOriginalValue(prop)\n {\n let safevalue = prop.value;\n\n if ( typeof prop.value === 'function' ) {\n safevalue = btoa(\"!FUNC:\" + prop.value.toString() + \":FUNC!\");\n }\n\n return safevalue;\n },\n\n getSafeValue(prop)\n {\n let safevalue = '';\n\n if ( typeof prop.value === 'string' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'boolean' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'number' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'object' ) {\n safevalue = JSON.stringify(prop.value);\n }\n\n if ( typeof prop.value === 'function' ) {\n safevalue = btoa(\"!FUNC:\" + prop.value.toString() + \":FUNC!\");\n }\n\n return safevalue;\n },\n\n getRealValue(prop)\n {\n let realvalue = '';\n\n if ( prop.code === 'string' ) {\n realvalue = Any.string(prop.value);\n }\n\n if ( prop.code === 'boolean' ) {\n realvalue = Any.boolean(prop.value);\n }\n\n if ( prop.code === 'number' ) {\n realvalue = Any.number(prop.value, 0);\n }\n\n if ( prop.code === 'object' ) {\n realvalue = JSON.parse(prop.value);\n }\n\n if ( prop.code === 'function' ) {\n realvalue = atob(prop.original);\n }\n\n return realvalue;\n },\n\n changeElement(key, update)\n {\n if ( Any.isEmpty(update) ) {\n return;\n }\n\n let newKey = key.replace(/^(.*?)([^\\.]+):([^\\.]+)$/, `$1${update}:$3`);\n\n let value = Obj.get(this, key, {});\n\n Obj.unset(this, key);\n Obj.set(this, newKey, value);\n\n this.collapse = Arr.each(this.collapse, (k) => {\n return k.replace(key, newKey);\n });\n },\n\n changeAlias(key, update)\n {\n if ( Any.isEmpty(update) ) {\n return;\n }\n\n let newKey = key.replace(/^(.*?)([^\\.]+):([^\\.]+)$/, `$1$2:${update}`);\n\n let value = Obj.get(this, key, {});\n\n Obj.unset(this, key);\n Obj.set(this, newKey, value);\n\n this.collapse = Arr.each(this.collapse, (k) => {\n return k.replace(key, newKey);\n });\n },\n\n changeType(key, type)\n {\n let value = Obj.get(this, key, {});\n\n let original = Obj.get(value, 'builder.null.type');\n\n if ( type === 'object' ) {\n value.content = {};\n }\n\n if ( type === 'string' ) {\n value.content = '';\n }\n\n Obj.set(value, 'builder.null.type', typeof value.content);\n },\n\n applyProps(key = null, value = {})\n {\n if ( ! Any.isEmpty(key) ) {\n value = Obj.get(this, key, {});\n }\n\n let reset = [\n 'vIf', 'vShow', 'classList', 'vLocale', 'binds', 'attrs', 'props', 'on',\n ];\n\n Obj.each(reset, (prop) => {\n Obj.unset(value, prop);\n });\n\n Obj.each(value.builder || {}, (val) => {\n\n if ( Any.isEmpty(val.key) ) {\n return;\n }\n\n let bindValue = {\n value: val.value, fallback: null\n };\n\n if ( val.code === 'string' ) {\n bindValue.fallback = Any.string(val.fallback || '');\n }\n\n if ( val.code === 'boolean' ) {\n bindValue.fallback = Any.boolean(val.fallback || 'false');\n }\n\n if ( val.code === 'object' ) {\n bindValue.fallback = JSON.parse(val.fallback || '{}');\n }\n\n if ( val.type === 'binds' ) {\n return Obj.set(value, [val.type, val.key], bindValue);\n }\n\n let realvalue = '';\n\n try {\n realvalue = this.getRealValue(val);\n } catch (e) {\n if ( ! Any.isEmpty(val.value) ) {\n console.error('Invalid JSON: ' + val.value);\n }\n }\n\n if ( val.type === 'root' ) {\n return Obj.set(value, val.key, realvalue);\n }\n\n if ( val.type === 'attrs' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n if ( val.type === 'props' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n if ( val.type === 'on' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n });\n\n if ( Any.isEmpty(key) ) {\n return value;\n }\n\n return Obj.set(this, key, value);\n },\n\n buildProps(el, key = null)\n {\n let builder = {};\n\n Obj.each(Obj.only(el, ['vIf', 'vShow', 'classList']), (value, sey) => {\n builder[UUID()] = {\n type: 'root', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value })\n };\n });\n\n Obj.each(Obj.get(el, `binds`, {}), (value, sey) => {\n\n let result = {\n type: 'binds', code: typeof value, key: sey, fallback: null, original: this.getOriginalValue({ value })\n }\n\n if ( Any.isString(value) ) {\n result.value = this.getSafeValue({ value });\n }\n\n if ( Any.isObject(value) ) {\n Obj.assign(result, { value: this.getSafeValue(value), fallback: Obj.get(value, 'fallback', null) })\n }\n\n builder[UUID()] = result;\n });\n\n Obj.each(Obj.get(el, `props`, {}), (value, sey) => {\n builder[UUID()] = { type: 'props', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n Obj.each(Obj.get(el, `attrs`, {}), (value, sey) => {\n builder[UUID()] = { type: 'attrs', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n Obj.each(Obj.get(el, `on`, {}), (value, sey) => {\n builder[UUID()] = { type: 'on', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n if ( Any.isEmpty(key) ) {\n return builder;\n }\n\n this.$nextTick(() => {\n Obj.set(this, `${key}.builder`, builder);\n });\n\n return builder;\n },\n\n addProp(key)\n {\n let value = Obj.get(this, `${key}.builder`, {});\n\n Obj.set(value, UUID(), {\n type: 'props', code: 'string', key: '', value: '', fallback: null\n });\n\n Obj.set(this, `${key}.builder`, value);\n },\n\n removeProp(key, prop)\n {\n Obj.unset(this, `${key}.builder.${prop}`);\n\n this.applyProps(key);\n },\n\n collapseElement(key)\n {\n Arr.toggle(this.collapse, key);\n },\n\n addElement(key)\n {\n let value = Obj.get(this, key, {});\n\n Obj.set(value, 'div:' + UUID(), {\n order: (Any.vals(value).length + 1) * 100, props: { modelValue: '$scope.list' }, content: {}\n });\n\n Obj.assign(this, key, value);\n },\n\n removeElement(key)\n {\n Obj.unset(this, key);\n },\n\n moveupElement(key)\n {\n let [el, childs] = [\n Obj.get(this, key), Obj.get(this, key.replace(/\\.[^.]+$/, ''))\n ];\n\n let close = Number.MIN_VALUE;\n\n Arr.each(childs, (sub) => {\n if ( sub.order < el.order ) close = Math.max(close, sub.order);\n });\n\n if ( close === Number.MIN_VALUE ) {\n return;\n }\n\n let replacement = Arr.find(childs, {\n order: close\n });\n\n Obj.assign(replacement, {\n order: el.order\n });\n\n Obj.assign(el, { order: close });\n },\n\n movedownElement(key)\n {\n let [el, childs] = [\n Obj.get(this, key), Obj.get(this, key.replace(/\\.[^.]+$/, ''))\n ];\n\n let close = Number.MAX_VALUE;\n\n Arr.each(childs, (sub) => {\n if ( sub.order > el.order ) close = Math.min(close, sub.order);\n });\n\n if ( close === Number.MAX_VALUE ) {\n return;\n }\n\n let replacement = Arr.find(childs, {\n order: close\n });\n\n Obj.assign(replacement, {\n order: el.order\n });\n\n Obj.assign(el, { order: close });\n },\n\n },\n\n renderTools(el, value, key)\n {\n let rootProps = {\n //\n };\n\n rootProps['onDblclick'] = () => {\n this.collapseElement(key);\n };\n\n let collapseProps = {\n href: 'javascript:void(0)',\n };\n\n collapseProps['onClick'] = () => {\n this.collapseElement(key);\n };\n\n let addProps = {\n href: 'javascript:void(0)',\n };\n\n addProps['onClick'] = () => {\n this.addElement(`${key}.content`);\n };\n\n let removeProps = {\n href: 'javascript:void(0)',\n };\n\n removeProps['onClick'] = () => {\n this.removeElement(key);\n };\n\n let moveupProps = {\n href: 'javascript:void(0)',\n };\n\n moveupProps['onClick'] = () => {\n this.moveupElement(key);\n };\n\n let movedownProps = {\n href: 'javascript:void(0)',\n };\n\n movedownProps['onClick'] = () => {\n this.movedownElement(key);\n };\n\n\n return (\n <div class=\"n-builder__tools\" {...rootProps}>\n <div class=\"n-builder__collapse\">\n <a {...collapseProps}><i class=\"fa fa-bars\"></i></a>\n </div>\n <div class=\"n-builder__name\">\n {key.replace(/^.*?([^\\.:]+):([^\\.:]+)$/, '$1')}<span>{key.replace(/^.*?([^\\.:]+):([^\\.:]+)$/, '$2')}</span>\n </div>\n <div class=\"n-builder__move\">\n <a {...moveupProps}><i class=\"fa fa-angle-up\"></i></a>\n <a {...movedownProps}><i class=\"fa fa-angle-down\"></i></a>\n </div>\n <div class=\"n-builder__add\">\n <a {...addProps}><i class=\"fa fa-plus\"></i></a>\n </div>\n <div class=\"n-builder__remove\">\n <a {...removeProps}><i class=\"fa fa-trash\"></i></a>\n </div>\n </div>\n );\n },\n\n renderProp(el, sub, key)\n {\n if ( sub === \"null\" ) {\n return null;\n }\n\n let group = key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$1')\n let value = Obj.get(this.$data, `${key}.builder.${sub}`, {});\n\n let props = Obj.clone(Obj.get(window.NanoBuilderIndexies, `${group}.props`, {}));\n\n props = Obj.assign({}, window.NanoBuilderProps, props);\n\n Obj.each(props, (prop, index) => {\n if ( ! Any.isEmpty(prop.for) && ! Arr.has(prop.for, value.type) ) {\n props = Obj.unset(props, index);\n }\n });\n\n let typeProps = {\n size: 'sm', options: window.NanoBuilderPropType\n };\n\n typeProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let keyProps = {\n size: 'sm', allowCreate: true, options: props, optionsLabel: '$index'\n };\n\n keyProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let codeProps = {\n size: 'sm', options: window.NanoBuilderPropCode\n };\n\n codeProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let values = Obj.get(props, `${value.key}.options`, []);\n\n let valueInputProps = {\n size: 'sm', model: this.model, scope: this.scope\n };\n\n valueInputProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let valueHtml = (\n <NReferencePicker vModel={value.value} {...valueInputProps} />\n );\n\n let fallbackProps = {\n size: 'sm', minRows: 1, autoRows: true\n };\n\n fallbackProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let tooltipHtml = (\n <div class=\"n-builder_prop-text\">\n <p>{Obj.get(props, `${value.key}.desc`, '')}</p>\n </div>\n );\n\n return (\n <div class=\"n-builder_prop\">\n <div class=\"n-builder_prop-type\">\n <NSelect vModel={value.type} {...typeProps} />\n </div>\n <div class=\"n-builder_prop-key\">\n <NSelect vModel={value.key} {...keyProps} />\n </div>\n <div class=\"n-builder_prop-func\">\n <NSelect vModel={value.code} {...codeProps} />\n </div>\n <div class=\"n-builder_prop-value\">\n {valueHtml}\n </div>\n <div class=\"n-builder_prop-fallback\">\n <NInput vModel={value.fallback} {...fallbackProps} />\n </div>\n <div class=\"n-builder_prop-button\">\n <NButton size=\"sm\" type=\"danger\" onClick={() => this.removeProp(key, sub)}>Remove</NButton>\n </div>\n </div>\n );\n },\n\n renderProps(el, value, key)\n {\n if ( !Arr.has(this.collapse, key) ) {\n return null;\n }\n\n let elementProps = {\n options: window.NanoBuilderTypes, allowCreate: true, modelValue: key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$1'),\n };\n\n elementProps['onUpdate:modelValue'] = (value) => {\n this.changeElement(key, value);\n };\n\n let aliasProps = {\n modelValue: key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$2'),\n };\n\n aliasProps['onUpdate:modelValue'] = (value) => {\n this.changeAlias(key, value);\n };\n\n let plainProps = {\n modelValue: Obj.get(value, 'builder.null.type'),\n options: {\n 'object': this.trans('Object'),\n 'string': this.trans('String'),\n }\n };\n\n plainProps['onUpdate:modelValue'] = (value) => {\n this.changeType(key, value);\n };\n\n let addProps = {\n type: 'primary', size: 'sm', link: true\n };\n\n addProps['onClick'] = () => {\n this.addProp(key, value);\n };\n\n let props = Obj.get(value, `builder`);\n\n if ( ! Obj.has(value, 'builder') ) {\n props = this.buildProps(el, key, value);\n }\n\n return (\n <NForm class=\"n-builder__props\">\n <NFormItem class=\"n-builder__element-type\" label={this.trans('Type')}>\n <NSelect {...elementProps} />\n </NFormItem>\n <NFormItem class=\"n-builder__element-alias\" label={this.trans('Alias')}>\n <NInput {...aliasProps} />\n </NFormItem>\n <NFormItem class=\"n-builder__element-plain\" label={this.trans('Content')}>\n <NSelect {...plainProps}>{this.trans('Enable plain')}</NSelect>\n </NFormItem>\n <div class=\"n-builder__element-prop\">\n <NButton {...addProps}>Add property</NButton>\n </div>\n <div class=\"n-builder__element-list\">\n {Arr.each(props, (prop, sub) => this.ctor('renderProp')(el, sub, key))}\n </div>\n </NForm>\n );\n },\n\n renderElement(el, value, key)\n {\n let classList = [\n 'n-builder__element'\n ];\n\n if ( Arr.has(this.collapse, key) ) {\n classList.push('is-open');\n }\n\n let builderHtml = () => {\n return this.ctor('renderBuilder')(value.content || {}, `${key}.content`);\n };\n\n if ( value.builder[\"null\"][\"type\"] === 'string' ) {\n builderHtml = () => {\n return (<div><NInput vModel={value.content} /></div>);\n };\n }\n\n return (\n <div class={classList}>\n {this.ctor('renderTools')(el, value, key)}\n {this.ctor('renderProps')(el, value, key)}\n {builderHtml()}\n </div>\n );\n },\n\n renderBuilder(el, key)\n {\n if ( Any.isEmpty(el) ) {\n return null;\n }\n\n let items = Arr.each(Obj.sort(Obj.clone(el), 'order'), (v) => {\n\n let args = [\n Obj.get(this.$data, key, {}),\n Obj.get(this.$data, [key, v._key], {}),\n `${key}.${v._key}`\n ];\n\n return this.ctor('renderElement')(...args);\n });\n\n return (\n <div class=\"n-builder__frame\">\n {items}\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-builder__body\">\n {this.ctor('renderBuilder')(this.safevar, 'safevar')}\n </div>\n );\n },\n\n renderHead()\n {\n let addProps = {\n type: 'primary'\n };\n\n addProps['onClick'] = () => {\n this.addElement('safevar');\n };\n\n let addHtml = (\n <div class=\"n-builder__head-add\">\n <NButton {...addProps}>{this.trans('Add root element')}</NButton>\n </div>\n );\n\n let demoProps = {\n type: 'primary'\n };\n\n demoProps['onClick'] = () => {\n this.demo = true;\n };\n\n let demoHtml = (\n <div class=\"n-builder__head-demo\">\n <NButton {...demoProps}>{this.trans('Render demo')}</NButton>\n </div>\n );\n\n return (\n <div class=\"n-builder__head\">\n {[addHtml, demoHtml]}\n </div>\n );\n },\n\n renderOutput()\n {\n return (\n <div class=\"n-builder__output\">\n <pre>{this.exportJson(this.safevar)}</pre>\n </div>\n );\n },\n\n renderDemo()\n {\n if ( ! this.renderDemo || ! this.demo ) {\n return null;\n }\n\n let renderFunction = this.$slots.default;\n\n if ( Any.isEmpty(renderFunction) ) {\n renderFunction = ({ render }) => render();\n }\n\n let modalProps = {\n width: '100%',\n height: '100%'\n };\n\n let configProps = {\n modelValue: this.model, scope: this.scope, config: this.exportExecutable(this.safevar)\n };\n\n let renderContent = () => {\n return ( <NConfigNext {...configProps} />);\n };\n\n return (\n <NModal vModel={this.demo} {...modalProps}>\n {renderFunction({ render: renderContent })}\n </NModal>\n );\n },\n\n render()\n {\n let classList = [\n 'n-builder',\n ];\n\n return (\n <div class={classList}>\n {[\n this.ctor('renderBody')(), this.ctor('renderHead')(), this.ctor('renderOutput')(), this.ctor('renderDemo')(),\n ]}\n </div>\n );\n }\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NReferencePanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return \"\";\n },\n type: [String]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n },\n\n data()\n {\n return {\n expanded: [], selected: null, modelTree: this.buildTree(this.model, '$model'), scopeTree: this.buildTree(this.scope, '$scope')\n };\n },\n\n methods: {\n\n buildTree(value, path = '')\n {\n let result = {};\n\n if ( ! Any.isPlain(value) && ! Obj.get(value, '__v_skip') ) {\n return result;\n }\n\n for(var key in value) {\n\n let [ref, val] = [\n `${path}.${key}`, value[key]\n ];\n\n if ( Any.isPlain(val) ) {\n val = this.buildTree(val, ref);\n }\n\n let type = typeof val;\n\n if ( Any.isArray(val) ) {\n type = 'array';\n }\n\n result[key] = {\n path: ref, value: val, type: type\n };\n\n }\n\n return result;\n },\n\n submitItem(value)\n {\n this.$emit('update:modelValue', value.path);\n },\n\n selectItem(value)\n {\n this.selected = value;\n },\n\n expandItem(value)\n {\n if ( value.type === 'object' ) {\n Arr.toggle(this.expanded, value.path);\n }\n }\n\n },\n\n renderLeaf(value, key)\n {\n let classList = [\n 'n-reference-panel__item',\n 'n-reference-panel__item--' + value.type,\n ];\n\n if ( Obj.get(this.selected, 'path') === value.path) {\n classList.push('is-selected');\n }\n\n if ( value.type === 'object' ) {\n classList.push('has-childs');\n }\n\n if ( Arr.has(this.expanded, value.path) ) {\n classList.push('is-expanded');\n }\n\n return (\n <div class={classList} onDblclick={() => this.submitItem(value)}>\n <div class=\"n-reference-panel__expand\" onClick={() => this.expandItem(value)}>\n <i class=\"fa fa-angle-right\"></i>\n </div>\n <div class=\"n-reference-panel__name\" onClick={() => this.selectItem(value)}>\n {key}\n </div>\n <div class=\"n-reference-panel__type\" onClick={() => this.selectItem(value)}>\n {value.type}\n </div>\n <div class=\"n-reference-panel__pick\" onClick={() => this.submitItem(value)}>\n <i class=\"fa fa-expand\"></i>\n </div>\n </div>\n );\n },\n\n renderTree(value, key)\n {\n let childItems = Arr.each(value.value, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n let childHtml = (\n <div class=\"n-reference-panel__childs\">\n {childItems}\n </div>\n );\n\n if ( ! Arr.has(this.expanded, value.path) ) {\n childHtml = null;\n }\n\n return [this.ctor('renderLeaf')(value, key), childHtml];\n },\n\n renderItem(value, key)\n {\n if ( value.type === 'object' ) {\n return this.ctor('renderTree')(value, key);\n }\n\n return this.ctor('renderLeaf')(value, key);\n },\n\n renderModel()\n {\n let modelHtml = Arr.each(this.modelTree, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n return (\n <div class=\"n-reference-panel__model\">\n {modelHtml}\n </div>\n );\n },\n\n renderScope()\n {\n let scopeHtml = Arr.each(this.scopeTree, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n return (\n <div class=\"n-reference-panel__scope\">\n {scopeHtml}\n </div>\n );\n },\n\n render()\n {\n return (\n <div class=\"n-reference-panel\">\n {[this.ctor('renderModel')(), this.ctor('renderScope')()]}\n </div>\n );\n }\n\n}","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NReferencePicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n width: {\n default()\n {\n return '100%';\n },\n type: [String]\n },\n\n height: {\n default()\n {\n return '100%';\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return {\n modal: false, tempValue: this.modelValue\n };\n },\n\n methods: {\n\n updateValue(value)\n {\n this.$emit('update:modelValue', this.tempValue = value);\n }\n\n },\n\n renderModal()\n {\n if ( ! this.modal ) {\n return null;\n }\n\n let modalProps = {\n modelValue: true,\n width: this.width,\n height: this.height,\n };\n\n modalProps['onClose'] = () => {\n this.modal = false;\n };\n\n let panelProps = {\n model: this.model, scope: this.scope,\n };\n\n panelProps['onUpdate:modelValue'] = (value) => {\n this.updateValue(value); this.modal = false;\n };\n\n let slots = {\n //\n };\n\n slots['body'] = () => (\n <NReferencePanel class=\"in-modal\" {...panelProps} />\n );\n\n return (\n <NModal {...modalProps} v-slots={slots} />\n );\n },\n\n renderInput()\n {\n let inputProps = {\n modelValue: this.tempValue,\n icon: 'fa fa-expand',\n size: this.size,\n };\n\n inputProps['onUpdate:modelValue'] = (value) => {\n this.updateValue(value);\n };\n\n inputProps['onBlur'] = (e) => {\n this.$emit('onBlur', e);\n };\n\n inputProps['onIconClick'] = () => {\n this.modal = true;\n };\n\n return (\n <NInput {...inputProps} />\n );\n },\n\n render()\n {\n return (\n <div class=\"n-reference-picker\">\n {[this.ctor('renderInput')(), this.ctor('renderModal')()]}\n </div>\n );\n }\n\n}","import { Arr, Obj, Dom, Any, Str, Event } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NScrollbar',\n\n provide()\n {\n return {\n NScrollbar: this\n };\n },\n\n props: {\n\n options: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n fixture: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n allowNative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n framerate: {\n default()\n {\n return 24;\n },\n type: [Number]\n },\n\n wrapClass: {\n default()\n {\n return 'n-scrollbar__wrap';\n }\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n native: false\n };\n },\n\n beforeMount()\n {\n this.adaptScrollBehavior();\n },\n\n mounted()\n {\n this.bindAdaptHeight();\n this.bindAdaptWidth();\n\n let passive = {\n passive: true, uid: this._.uid\n };\n\n Event.bind('NScrollbar:resize',\n this.onResize, this._.uid);\n\n Event.bind('NResizer:moved',\n this.onUpdate, this._.uid);\n\n Dom.find(window).on('resize',\n this.onResize, passive);\n\n Dom.find(this.$refs.content).on('scroll',\n this.onScroll, passive);\n },\n\n updated()\n {\n if ( this.passedHeight || this.passedWidth ) {\n Dom.find(this.$el).addClass('n-ready');\n }\n },\n\n beforeUnmount()\n {\n this.unbindAdaptHeight();\n this.unbindAdaptWidth();\n\n let passive = {\n passive: true, uid: this._.uid\n };\n\n Event.unbind('NScrollbar:resize',\n this._.uid);\n\n Event.unbind('NResizer:moved',\n this._.uid);\n\n Dom.find(window).off('resize',\n null, passive);\n\n Dom.find(this.$el).off('scroll',\n null, passive);\n },\n\n methods: {\n\n scrollTo(x = 0, y = 0, delay = 0)\n {\n Any.delay(() => this.onScrollTo(x, y), delay);\n },\n\n onScrollTo(x = 0, y = 0)\n {\n if ( this.$refs.content ) {\n this.$refs.content.scrollTop = y;\n this.$refs.content.scrollLeft = x;\n }\n },\n\n scrollIntoView(selector, delay = 0, offset = 0)\n {\n Any.delay(() => this.onScrollIntoView(selector, offset), delay);\n },\n\n onScrollIntoView(selector, offset = 0)\n {\n let $el = Dom.find(this.$el).find(selector);\n\n let scrollTop = this.$refs.content\n .scrollTop;\n\n let outerHeight = this.$refs.content.\n clientHeight;\n\n let offsetTop = $el.offsetTop(this.$el);\n\n if ( offsetTop < scrollTop ) {\n this.$refs.content.scrollTop = offsetTop;\n }\n\n if ( offsetTop + $el.height() >= scrollTop + outerHeight ) {\n this.$refs.content.scrollTop = offsetTop - outerHeight + $el.height();\n }\n\n let scrollLeft = this.$refs.content\n .scrollLeft;\n\n let outerWidth = this.$refs.content.\n clientWidth;\n\n let offsetLeft = $el.offsetLeft(this.$el);\n\n if ( offsetLeft < scrollLeft ) {\n this.$refs.content.scrollLeft = offsetLeft;\n }\n\n if ( offsetLeft + $el.width() >= scrollLeft + outerWidth ) {\n this.$refs.content.scrollLeft = offsetLeft - outerWidth + $el.width();\n }\n },\n\n adaptScrollBehavior()\n {\n let $dom = Dom.make('div', { classList: ['n-scrollbar-test'] })\n .appendTo(document.body).get(0);\n\n Dom.make('div').appendTo($dom);\n\n this.native = $dom.clientWidth === $dom.offsetWidth ||\n $dom.clientHeight === $dom.offsetHeight;\n\n $dom.remove();\n },\n\n adaptScrollHeight()\n {\n if ( this.native && this.allowNative ) {\n return;\n }\n\n // let offsetHeight = this.$refs.content.clientHeight -\n // this.$refs.content.offsetHeight;\n //\n // let offsetWidth = this.$refs.content.clientWidth -\n // this.$refs.content.offsetWidth;\n\n let outerHeight = this.$refs.content.\n clientHeight || 0;\n\n if ( this.native && ! this.allowNative ) {\n outerHeight -= 16;\n }\n\n // if ( offsetHeight === 0 && this.overflowX ) {\n // outerHeight -= 15;\n // }\n\n let innerHeight = this.$refs.content\n .scrollHeight || 0;\n\n let virtualHeight = 0;\n\n Dom.find(this.$refs.content).childs().each((el) => {\n virtualHeight += Dom.find(el).height() || 0;\n });\n\n if ( this.native && ! this.allowNative ) {\n innerHeight -= 16;\n }\n\n if ( virtualHeight > innerHeight ) {\n innerHeight = virtualHeight;\n }\n\n // if ( offsetHeight === 0 && this.overflowX ) {\n // innerHeight -= 15;\n // }\n\n let isSameOld = outerHeight === this.outerHeight &&\n innerHeight === this.innerHeight;\n\n if ( isSameOld ) {\n return;\n }\n\n this.outerHeight = outerHeight;\n this.innerHeight = innerHeight;\n\n let height = (outerHeight / innerHeight)\n * outerHeight;\n\n let barHeight = Math.max(height, 50);\n\n let maxHeight = Math.ceil((outerHeight / innerHeight) *\n (innerHeight - outerHeight));\n\n this.heightRatio = (maxHeight - (barHeight - height)\n - this.offsetY) / maxHeight;\n\n Dom.find(this.$refs.vbar).css({\n height: (this.barHeight = Math.ceil(barHeight)) + 'px'\n });\n\n // let hasNativeBar = offsetWidth !== 0 && this.overflowY;\n //\n // if ( hasNativeBar ) {\n // Dom.find(this.$el).addClass('has-native-vbar');\n // }\n //\n // if ( hasNativeBar && this.overflowX ) {\n // Dom.find(this.$el).addClass('has-native-hbar');\n // }\n\n let hasVtrack = outerHeight && outerHeight < innerHeight;\n\n if ( hasVtrack ) {\n Dom.find(this.$el).addClass('has-vtrack');\n }\n\n if ( ! hasVtrack ) {\n Dom.find(this.$el).removeClass('has-vtrack');\n }\n\n // if ( hasVtrack && ! hasNativeBar ) {\n // Event.fire('NScrollbar:native');\n // }\n\n this.adaptScrollPosition();\n },\n\n adaptScrollWidth()\n {\n if ( this.native && this.allowNative ) {\n return;\n }\n\n // let offsetWidth = this.$refs.content.clientWidth -\n // this.$refs.content.offsetWidth;\n //\n // let offsetHeight = this.$refs.content.clientHeight -\n // this.$refs.content.offsetHeight;\n\n let outerWidth = this.$refs.content.\n clientWidth || 0;\n\n if ( this.native && ! this.allowNative ) {\n outerWidth -= 16;\n }\n\n // if ( offsetWidth === 0 && this.overflowY ) {\n // outerWidth -= 15;\n // }\n\n let innerWidth = this.$refs.content\n .scrollWidth || 0;\n\n let virtualWidth = 0;\n\n Dom.find(this.$refs.content).childs().each((el) => {\n virtualWidth += Dom.find(el).width() || 0;\n });\n\n if ( this.native && ! this.allowNative ) {\n innerWidth -= 16;\n }\n\n if ( virtualWidth > innerWidth ) {\n innerWidth = virtualWidth;\n }\n\n // if ( offsetWidth === 0 && this.overflowY ) {\n // innerWidth -= 15;\n // }\n\n let isSameOld = outerWidth === this.outerWidth &&\n innerWidth === this.innerWidth;\n\n if ( isSameOld ) {\n return;\n }\n\n this.outerWidth = outerWidth;\n this.innerWidth = innerWidth;\n\n let width = (outerWidth / innerWidth)\n * outerWidth;\n\n let barWidth = Math.max(width, 50);\n\n let maxWidth = Math.ceil((outerWidth / innerWidth) *\n (innerWidth - outerWidth));\n\n this.widthRatio = (maxWidth - (barWidth - width)\n - this.offsetX) / maxWidth;\n\n Dom.find(this.$refs.hbar).css({\n width: (this.barWidth = Math.ceil(barWidth)) + 'px'\n });\n\n // let hasNativeBar = offsetHeight && this.overflowX;\n\n // if ( hasNativeBar ) {\n // Dom.find(this.$el).addClass('has-native-hbar');\n // }\n //\n // if ( hasNativeBar && this.overflowY ) {\n // Dom.find(this.$el).addClass('has-native-vbar');\n // }\n\n let hasHtrack = outerWidth && outerWidth < innerWidth;\n\n if ( hasHtrack ) {\n Dom.find(this.$el).addClass('has-htrack');\n }\n\n if ( ! hasHtrack ) {\n Dom.find(this.$el).removeClass('has-htrack');\n }\n\n // if ( hasHtrack && ! hasNativeBar ) {\n // Event.fire('NScrollbar:native');\n // }\n\n this.adaptScrollPosition();\n },\n\n adaptScrollPosition(scroll = {})\n {\n if ( this.native && this.allowNative ) {\n return;\n }\n\n if ( ! scroll.top ) {\n scroll.top = this.$refs.content.scrollTop;\n }\n\n if ( ! scroll.left ) {\n scroll.left = this.$refs.content.scrollLeft;\n }\n\n let vbarTop = Math.ceil((this.outerHeight / this.innerHeight) *\n scroll.top * this.heightRatio) || 0;\n\n if ( ! this.vbarTop || vbarTop !== this.vbarTop ) {\n\n Dom.find(this.$refs.vbar).css({\n transform: `translateY(${vbarTop}px) translateZ(0)`\n });\n\n this.vbarTop = vbarTop;\n }\n\n let hbarLeft = Math.ceil((this.outerWidth / this.innerWidth) *\n scroll.left * this.widthRatio) || 0;\n\n if ( ! this.hbarLeft || hbarLeft !== this.hbarLeft ) {\n\n Dom.find(this.$refs.hbar).css({\n transform: `translateX(${hbarLeft}px) translateZ(0)`\n });\n\n this.hbarLeft = hbarLeft;\n }\n },\n\n adaptHeight()\n {\n if ( ! this.cacheChildEl ) {\n this.cacheChildEl = Dom.find(this.$refs.content).child();\n }\n\n let height = this.cacheChildEl\n .height();\n\n if ( ! this.cacheWindwoEl ) {\n this.cacheWindwoEl = Dom.find(this.$el);\n }\n\n let window = this.cacheWindwoEl\n .innerHeight();\n\n if ( height === this.passedHeight && window === this.windowCache ) {\n return;\n }\n\n this.windowCache = window;\n\n if ( this.overflowY ) {\n this.adaptScrollHeight();\n }\n\n if ( window ) {\n this.passedHeight = height;\n }\n\n let style = {\n height: (height + 1) + 'px'\n };\n\n if ( ! this.relative ) {\n return Any.delay(this.onSizechange, 100);\n }\n\n Dom.find(this.$refs.spacer).child().css(style);\n },\n\n bindAdaptHeight()\n {\n this.refreshHeight = setInterval(this.adaptHeight,\n 1000 / this.framerate);\n },\n\n unbindAdaptHeight()\n {\n clearInterval(this.refreshHeight);\n },\n\n adaptWidth()\n {\n if ( this.resizeTimer ) {\n return;\n }\n\n let width = Dom.find(this.$refs.content)\n .child().width();\n\n let window = Dom.find(this.$el)\n .innerWidth();\n\n if ( width === this.passedWidth ) {\n return;\n }\n\n if ( this.overflowX ) {\n this.adaptScrollWidth();\n }\n\n if ( window ) {\n this.passedWidth = width;\n }\n\n let style = {\n width: width + 'px'\n };\n\n if ( this.fixture ) {\n this.onUpdate();\n }\n\n if ( ! this.relative ) {\n return Any.delay(this.onSizechange, 100);\n }\n\n Dom.find(this.$refs.spacer).child().css(style);\n },\n\n bindAdaptWidth()\n {\n this.refreshWidth = setInterval(this.adaptWidth,\n 1000 / this.framerate);\n },\n\n unbindAdaptWidth()\n {\n clearInterval(this.refreshWidth);\n },\n\n onScroll(event)\n {\n let scroll = {\n top: this.$refs.content.scrollTop,\n left: this.$refs.content.scrollLeft\n };\n\n let scrollUpdate = () => {\n this.$emit('scrollupdate', scroll.top, scroll.left);\n }\n\n this.$nextTick(scrollUpdate);\n this.adaptScrollPosition(scroll);\n },\n\n onSizechange(event)\n {\n let height = Dom.find(this.$el).height();\n let width = Dom.find(this.$el).width();\n\n if ( ! height || ! width ) {\n return;\n }\n\n if ( this.passedHeight || this.passedWidth ) {\n Dom.find(this.$el).addClass('is-ready');\n }\n\n this.$emit('sizechange', height, width, this.$el);\n },\n\n onResize()\n {\n if ( ! this.fixture ) {\n return;\n }\n\n Dom.find(this.$refs.content)\n .child().css(null);\n\n clearTimeout(this.resizeTimer);\n\n this.resizeTimer = setTimeout(\n this.onUpdate, 500);\n\n Dom.find(this.$el).fire('resized');\n },\n\n onUpdate()\n {\n if ( ! this.fixture || ! this.$refs.content ) {\n return;\n }\n\n let $inner = Dom.find(this.$refs.content)\n .child();\n\n let height = $inner.actual(() => {\n return $inner.scrollHeight();\n });\n\n if ( height !== this.passedHeight ) {\n $inner.css({ height: height + 'px' });\n }\n\n let width = $inner.actual(() => {\n return $inner.scrollWidth() - 1;\n });\n\n if ( width !== this.passedWidth ) {\n $inner.css({ width: width + 'px' });\n }\n\n delete this.resizeTimer;\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onVbarMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.stopPropagation();\n\n Dom.find(document).on(this.mousemove,\n this.onVbarMousemove, this._.uid);\n\n Dom.find(document).on(this.mouseup,\n this.onVbarMouseup, this._.uid);\n\n this.scrollTop = this.$refs.content\n .scrollTop;\n\n this.clientY = this.getTouchEvent(event)\n .clientY;\n },\n\n onVbarMousemove(event)\n {\n let clientY = this.getTouchEvent(event)\n .clientY;\n\n let top = (this.outerHeight / this.innerHeight) *\n this.scrollTop * this.heightRatio;\n\n let offset = (clientY - this.clientY) + top;\n\n let height = (this.outerHeight -\n this.barHeight - this.offsetY);\n\n this.$refs.content.scrollTop = offset / height *\n (this.innerHeight - this.outerHeight);\n },\n\n onVbarMouseup(event)\n {\n Dom.find(document).off(this.mousemove,\n null, this._.uid);\n\n Dom.find(document).off(this.mouseup,\n null, this._.uid);\n },\n\n onHbarMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.stopPropagation();\n\n Dom.find(document).on(this.mousemove,\n this.onHbarMousemove, this._.uid);\n\n Dom.find(document).on(this.mouseup,\n this.onHbarMouseup, this._.uid);\n\n this.scrollLeft = this.$refs.content\n .scrollLeft;\n\n this.clientX = event.clientX;\n },\n\n onHbarMousemove(event)\n {\n let top = (this.outerWidth / this.innerWidth) *\n this.scrollLeft * this.widthRatio;\n\n let offset = (event.clientX - this.clientX) + top;\n\n let width = (this.outerWidth -\n this.barWidth - this.offsetX);\n\n this.$refs.content.scrollLeft = offset / width *\n (this.innerWidth - this.outerWidth);\n },\n\n onHbarMouseup(event)\n {\n Dom.find(document).off(this.mousemove,\n null, this._.uid);\n\n Dom.find(document).off(this.mouseup,\n null, this._.uid);\n },\n\n },\n\n render()\n {\n let classList = [\n 'n-scrollbar'\n ];\n\n if ( this.native ) {\n classList.push('n-scrollbar--native');\n }\n\n if ( ! this.allowNative ) {\n classList.push('n-scrollbar--forced');\n }\n\n if ( this.touch ) {\n classList.push('n-scrollbar--touch');\n }\n\n if ( window.WIN ) {\n classList.push('n-windows');\n }\n\n if ( this.overflowY ) {\n classList.push('n-overflow-y');\n }\n\n if ( this.overflowX ) {\n classList.push('n-overflow-x');\n }\n\n let vbarProps = {\n ['on' + Str.ucfirst(this.mousedown)]: this.onVbarMousedown\n };\n\n let hbarProps = {\n ['on' + Str.ucfirst(this.mousedown)]: this.onHbarMousedown\n };\n\n return (\n <div class={classList} {...Obj.except(this.$attrs, ['class'])}>\n <div class=\"n-scrollbar-content\" ref=\"content\">\n <div class={this.wrapClass}>\n { this.$slots.default && this.$slots.default() }\n </div>\n </div>\n <div class=\"n-scrollbar-spacer\" ref=\"spacer\">\n <div class={this.wrapClass}>\n { /* Adapt inner height */ }\n </div>\n </div>\n <div ref=\"hbar\" class=\"n-scrollbar-h\" {...hbarProps}></div>\n <div ref=\"vbar\" class=\"n-scrollbar-v\" {...vbarProps}></div>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any, Dom } from \"@kizmann/pico-js\";\n\nwindow.DEBUG_NVSCROLL = false;\n\nexport default {\n\n name: 'NVirtualscroller',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n\n },\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n itemHeight: {\n default()\n {\n return 34;\n }\n },\n\n itemWidth: {\n default()\n {\n return 0;\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n deathzone: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n framerate: {\n default()\n {\n return 65;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n let state = {\n start: 0, end: 0, grid: 1\n };\n\n return {\n state, buffer: [], width: 0, height: 0, load: true\n };\n },\n\n watch: {\n\n 'items': function () {\n this.updateRender();\n }\n\n },\n\n beforeMount()\n {\n this.scrollTop = 0;\n },\n\n mounted()\n {\n\n this.bindAdaptScroll()\n },\n\n\n beforeUnmount()\n {\n this.unbindAdaptScroll()\n },\n\n methods: {\n\n bindAdaptScroll()\n {\n this.refreshScroll = setInterval(this.onScrollupdate,\n 1000 / this.framerate);\n },\n\n unbindAdaptScroll()\n {\n clearInterval(this.refreshScroll);\n },\n\n isIndexRendered(index)\n {\n if ( ! this.itemHeight ) {\n return true;\n }\n\n return this.state.start < index &&\n this.state.end > index;\n },\n\n scrollIntoView(index)\n {\n if ( ! this.$refs.scrollbar ) {\n return;\n }\n\n if ( index === -1 || index >= this.items.length ) {\n index = this.items.length;\n }\n\n if ( ! this.isIndexRendered(index) ) {\n return this.scrollToIndex(index);\n }\n\n let selector = `[data-index=\"${index}\"]`;\n\n this.$refs.scrollbar.scrollIntoView(selector);\n },\n\n scrollToIndex(index, delay = 0)\n {\n Any.delay(() => this.onScrollToIndex(index), delay);\n },\n\n onScrollToIndex(index)\n {\n if ( ! this.$refs.scrollbar ) {\n return;\n }\n\n let total = Math.ceil(this.items.length /\n this.state.grid);\n\n index = Math.floor(index / this.state.grid);\n\n if ( index === -1 || index >= total ) {\n index = total;\n }\n\n let targetTop = index * this.itemHeight;\n\n if ( this.scrollTop > targetTop ) {\n return this.scrollTo(0, targetTop);\n }\n\n targetTop = targetTop - this.height +\n this.itemHeight;\n\n this.scrollTo(0, targetTop);\n },\n\n scrollTo(x = 0, y = 0, delay = 0)\n {\n Any.delay(() => this.onScrollTo(x, y), delay);\n },\n\n onScrollTo(x = 0, y = 0)\n {\n if ( ! this.$refs.scrollbar ) {\n return;\n }\n\n this.$refs.scrollbar.scrollTo(x, y);\n },\n\n clearState()\n {\n this.state = { start: 0, end: 0 };\n },\n\n updateRender()\n {\n if ( ! this.$refs.scrollbar ) {\n return Any.delay(this.updateRender);\n }\n\n this.scrollTop = this.$refs.scrollbar.\n $refs.content.scrollTop;\n\n Any.async(this.refreshDriver);\n },\n\n onScrollupdate()\n {\n if ( ! this.threshold ) {\n return;\n }\n\n let scrollTop = this.$refs.scrollbar.\n $refs.content.scrollTop;\n\n if ( scrollTop === this.scrollTop ) {\n return;\n }\n\n this.scrollTop = scrollTop;\n\n let offset = this.$refs.scrollbar.$el.offsetHeight -\n this.$refs.scrollbar.$el.clientHeight;\n\n let isOutOfRange = scrollTop < 0 || scrollTop + this.height\n > this.$refs.inner.scrollHeight + offset;\n\n if ( isOutOfRange ) {\n return;\n }\n\n Any.async(this.refreshDriver);\n },\n\n onSizechange(height, width, el)\n {\n this.width = width;\n this.height = height;\n\n Any.async(this.refreshDriver);\n },\n\n\n refreshDriver(queue = true)\n {\n if ( Any.isEmpty(this.timer) ) {\n this.timer = Date.now();\n }\n\n if ( Date.now() - this.timer > 20 ) {\n queue = false;\n }\n\n clearTimeout(this.to);\n\n this.to = setTimeout(() => {\n this.refreshDriver(false);\n }, 25);\n\n if ( queue ) {\n return;\n }\n\n clearTimeout(this.to);\n\n let grid = 1;\n\n if ( this.itemWidth ) {\n grid = Math.floor((this.width - this.deathzone) /\n this.itemWidth) || 1;\n }\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n return this.state = { start: 0, end: 0, grid };\n }\n\n let total = Math.ceil(this.items.length\n / grid);\n\n let bufferItems = Math.round((this.height /\n this.itemHeight) * 0.6);\n\n let startItem = Math.round(this.scrollTop /\n this.itemHeight);\n\n let endItem = Math.round((this.scrollTop +\n this.height) / this.itemHeight);\n\n let start = (startItem - bufferItems);\n\n if ( start < 0 ) {\n start = 0;\n }\n\n let end = endItem + bufferItems;\n\n if ( end > total ) {\n end = total;\n }\n\n let state = { start, end, grid };\n\n if ( Any.isEqual(this.state, state) ) {\n return;\n }\n\n this.state = state;\n },\n\n },\n\n renderItem(passed)\n {\n passed.index = (passed.index +\n this.state.start);\n\n let topOffset = Math.round(this.itemHeight *\n passed.index);\n\n let renderFunction = this.$slots.default;\n\n if ( this.renderNode ) {\n renderFunction = this.renderNode;\n }\n\n let props = {\n 'data-index': passed.index\n };\n\n if ( this.NDraggable && this.useKeys ) {\n props.key = passed.value[this.NDraggable.uniqueProp];\n }\n\n let style = {};\n\n let isLazy = this.threshold && this.threshold <=\n this.items.length;\n\n if ( isLazy && this.state.grid === 1 ) {\n style.top = topOffset + 'px';\n }\n\n if ( this.itemHeight ) {\n style.height = this.itemHeight + 'px';\n }\n\n if ( this.state.grid !== 1 ) {\n style.width = this.itemWidth + 'px';\n }\n\n return (\n <div class=\"n-virtualscroller__item\" style={style} {...props}>\n { renderFunction(passed) }\n </div>\n );\n },\n\n renderRows()\n {\n let items = Arr.slice(this.items, this.state.start,\n this.state.end);\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n items = this.items;\n }\n\n return Arr.each(items, (value, index) => {\n return this.ctor('renderItem')({ value, index });\n });\n },\n\n renderGridRows(passed)\n {\n let topOffset = Math.round(this.itemHeight *\n (passed.index + this.state.start));\n\n let style = {};\n\n if ( this.threshold && this.threshold <= this.items.length ) {\n style.top = topOffset + 'px';\n }\n\n let counter = passed.index * this.state.start;\n\n return (\n <div data-row={passed.index} class=\"n-virtualscroller__row\" style={style}>\n {\n Arr.each(passed.chunk, (value, index) => {\n return this.ctor('renderItem')({\n value, index: index + counter\n });\n })\n }\n </div>\n );\n },\n\n renderGrid()\n {\n let chunks = Arr.chunk(this.items,\n this.state.grid);\n\n let items = Arr.slice(chunks, this.state.start,\n this.state.end);\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n items = chunks;\n }\n\n return Arr.each(items, (chunk, index) => {\n return this.ctor('renderGridRows')({ chunk, index });\n });\n },\n\n renderItems()\n {\n if ( ! this.items.length ) {\n return this.$slots.empty && this.$slots.empty() || null;\n }\n\n if ( this.state.grid === 1 ) {\n return this.ctor('renderRows')();\n }\n\n return this.ctor('renderGrid')();\n },\n\n render()\n {\n let classList = [\n 'n-virtualscroller'\n ];\n\n if ( this.threshold && this.threshold <= this.items.length ) {\n classList.push('n-virtualscroller--absolute');\n }\n\n let props = {\n overflowY: this.overflowY,\n overflowX: this.overflowX,\n offsetY: this.offsetY,\n offsetX: this.offsetX,\n onSizechange: this.onSizechange,\n };\n\n let style = {\n 'overflow-y': 'hidden'\n };\n\n let totalHeight = Math.ceil(this.items.length / this.state.grid) *\n this.itemHeight;\n\n if ( this.threshold && this.items.length ) {\n style.height = Math.ceil(totalHeight + this.offsetY) + 'px';\n }\n\n return (\n <NScrollbar class={classList} ref=\"scrollbar\" {...props}>\n <div ref=\"inner\" class=\"n-virtualscroller__inner\" style={style}>\n { this.ctor('renderItems')() }\n </div>\n </NScrollbar>\n );\n }\n\n}\n","import { Arr, Obj, Num, Any, Dom, Event, Locale, UUID } from \"@kizmann/pico-js\";\n\nwindow.dragMods = [];\n\nclass NDragCounter\n{\n\n $el = null;\n\n constructor()\n {\n this.$el = Dom.make('div', {\n classList: ['n-draggable__counter']\n });\n\n Dom.ready(() => {\n this.$el.appendTo(document.body);\n });\n }\n\n get(event, count)\n {\n // Update dragover color/type\n this.update();\n\n this.$el.html(\n `<span>${Locale.choice(':count Item|:count Items', count)}</span>`\n );\n\n // Fix data transfer\n event.dataTransfer.setData('text/plain', '');\n\n if ( typeof event.dataTransfer.setDragImage !== 'function' ) {\n return;\n }\n\n // Set finally the drop image\n event.dataTransfer.setDragImage(this.$el.get(0), 0, 0);\n }\n\n update()\n {\n window.dragMods = window.keyMods;\n\n let classList = [\n 'n-draggable__counter'\n ];\n\n if ( Arr.has(window.dragMods, 18) ) {\n classList.push('n-modify--alt');\n }\n\n if ( Arr.has(window.dragMods, 17) ) {\n classList.push('n-modify--ctrl');\n }\n\n if ( Arr.has(window.dragMods, 91) ) {\n classList.push('n-modify--meta');\n }\n\n this.$el.attr('class', classList.join(' '));\n }\n\n}\n\nwindow.DragCounter = new NDragCounter;\n\nclass NDragIndicator\n{\n\n $el = null;\n\n parent = null;\n\n constructor(parent)\n {\n this.$el = Dom.make('div', {\n classList: ['n-draggable__indicator']\n });\n\n this.$el.appendTo(this.parent = parent);\n }\n\n resolve(event, safezone, el, strategy = 'inner')\n {\n let rect = el.getBoundingClientRect();\n\n if ( event.clientY < rect.y + safezone ) {\n strategy = 'before';\n }\n\n if ( event.clientY > rect.y + rect.height - safezone ) {\n strategy = 'after';\n }\n\n if ( Dom.find(el).hasClass('n-expanded') ) {\n strategy = strategy === 'after' ? 'inner' : strategy;\n }\n\n Arr.has(['before', 'after'], strategy) ?\n this.show(el, strategy) : this.hide();\n\n\n return strategy;\n }\n\n show(el, strategy)\n {\n let offsetTop = Dom.find(el).offsetTop(this.parent);\n\n let style = {\n top: offsetTop || 1\n };\n\n if ( strategy === 'after' ) {\n style.top = offsetTop + Dom.find(el).height();\n }\n\n this.$el.css(Obj.map(style, (item) => item + 'px'));\n }\n\n hide()\n {\n this.$el.css(null);\n }\n\n destroy()\n {\n this.$el.get(0).remove();\n }\n\n}\n\nclass NDraghandler\n{\n\n uid = null;\n\n rootNode = null;\n childNodes = {};\n\n dropNodes = [];\n cacheNodes = [];\n\n strategy = 'nodrop';\n frames = 0;\n timeout = 0;\n dragcount = {};\n\n constructor(rootNode)\n {\n this.rootNode = rootNode;\n }\n\n bindRoot(frame = null)\n {\n this.DragIndicator = new NDragIndicator(frame || this.rootNode.$el);\n\n if ( window.DragCache ) {\n this.bindDragstart.call(this, ...window.DragCache);\n }\n\n Dom.find(this.rootNode.$el).on('dragenter', (event) => {\n this.onDragenterRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragover', (event) => {\n this.onDragoverRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragleave', (event) => {\n this.onDragleaveRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragend', (event) => {\n this.onDragendRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('drop', (event) => {\n this.onDragdropRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragdrop', (event) => {\n this.onDragdropRoot(event);\n });\n\n Event.bind('NDrag:start', this.bindDragstart.bind(this),\n this.rootNode.uid);\n\n Event.bind('NDrag:end', this.bindDragend.bind(this),\n this.rootNode.uid);\n\n Event.bind('NDrag:drop', this.bindDragdrop.bind(this),\n this.rootNode.uid);\n }\n\n unbindRoot()\n {\n let events = [\n 'dragstart',\n 'dragenter',\n 'dragover',\n 'dragleave',\n 'dragend',\n 'drop',\n 'dragdrop',\n ];\n\n Dom.find(this.rootNode.$el).off(events);\n\n Event.unbind('NDrag:start', this.rootNode.uid);\n Event.unbind('NDrag:end', this.rootNode.uid);\n Event.unbind('NDrag:drop', this.rootNode.uid);\n }\n\n onDragenterRoot(event)\n {\n event.preventDefault();\n }\n\n onDragoverRoot(event)\n {\n let isNode = Dom.find(event.target)\n .closest('.n-draglist-item');\n\n if ( isNode || !this.cacheNodes.length ) {\n return;\n }\n\n event.preventDefault();\n\n if ( this.frames && Date.now() - this.frames < 135 ) {\n return;\n }\n\n let allowDrop = this.rootNode.allowDrop;\n\n if ( !Any.isFunction(allowDrop) ) {\n allowDrop = () => this.rootNode.allowDrop;\n }\n\n let rainbow = Arr.each(this.cacheNodes, (node) => {\n return !!allowDrop(node, null, this.strategy);\n });\n\n this.strategy = 'root';\n\n if ( Arr.has(rainbow, false) ) {\n this.strategy = 'nodrop';\n }\n\n this.DragIndicator.hide();\n\n if ( this.strategy !== 'nodrop' ) {\n Dom.find(this.rootNode.$el).addClass('n-dragover');\n } else {\n Dom.find(this.rootNode.$el).removeClass('n-dragover');\n }\n\n if ( this.strategy === 'nodrop' ) {\n Dom.find(this.rootNode.$el).addClass('n-nodrop');\n } else {\n Dom.find(this.rootNode.$el).removeClass('n-nodrop');\n }\n\n this.frames = Date.now();\n }\n\n onDragleaveRoot(event)\n {\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n }\n\n onDragendRoot(event)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n\n if ( this.strategy !== 'root' ) {\n return;\n }\n\n Event.fire('NDrag:end');\n }\n\n onDragdropRoot(event)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n\n if ( this.strategy !== 'root' ) {\n return;\n }\n\n event.preventDefault();\n\n this.moveNodes(null, this.strategy);\n\n Event.fire('NDrag:drop');\n }\n\n bindDragstart(group, cache)\n {\n if ( Arr.has(this.rootNode.allowGroups, group) ) {\n this.cacheNodes = JSON.parse(JSON.stringify(cache));\n }\n }\n\n bindDragend()\n {\n this.dragcount = {};\n\n this.cacheNodes = this.dropNodes = [];\n }\n\n bindDragdrop(...args)\n {\n if ( !this.dropNodes.length ) {\n return;\n }\n\n this.rootNode.tempSelected = [];\n\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected);\n\n if ( !this.rootNode.removeNode ) {\n return;\n }\n\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n this.unlinkNodes(clone);\n this.removeNodes(clone);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n onDragstartNode(event, node)\n {\n if ( !this.rootNode.isSelected(node) ) {\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected = [node.uid]);\n }\n\n let cache = Arr.each(this.rootNode.tempSelected, (id) => {\n return Arr.find(this.rootNode.virtuals, { [this.rootNode.uniqueProp]: id });\n });\n\n window.DragCounter.get(event, cache.length);\n\n Arr.map(cache, (value) => {\n return { value, item: Obj.get(this.rootNode, value.route) };\n });\n\n Event.fire('NDrag:start', this.rootNode.group,\n this.dropNodes = cache);\n\n window.DragCache = [\n this.rootNode.group, this.dropNodes\n ];\n\n this.dragcount[node.uid] = 0;\n }\n\n onDragenterNode(event, node)\n {\n event.preventDefault();\n\n if ( !this.dragcount[node.uid] ) {\n this.dragcount[node.uid] = 0;\n }\n\n this.dragcount[node.uid] ++;\n }\n\n onDragoverNode(event, node)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n event.preventDefault();\n\n if ( this.frames && Date.now() - this.frames < 45 ) {\n return;\n }\n\n let safezone = this.rootNode\n .safezone(node.$el.clientHeight);\n\n this.strategy = this.DragIndicator\n .resolve(event, safezone, node.$el);\n\n let targetNode = {\n value: node.value, item: node.item\n };\n\n let allowDrop = this.rootNode.allowDrop;\n\n if ( !Any.isFunction(allowDrop) ) {\n allowDrop = () => this.rootNode.allowDrop;\n }\n\n let rainbow = Arr.each(this.cacheNodes, (node) => {\n return !!allowDrop(node, targetNode, this.strategy);\n });\n\n let isInSelf = Arr.has(node.value.cascade,\n this.rootNode.tempSelected);\n\n rainbow.push(!isInSelf);\n\n if ( Arr.has(rainbow, false) ) {\n this.strategy = 'nodrop';\n }\n\n if ( this.strategy === 'nodrop' ) {\n this.DragIndicator.hide();\n }\n\n if ( this.strategy !== 'nodrop' ) {\n Dom.find(node.$el).addClass('n-dragover');\n Dom.find(node.$el).removeClass('n-nodrop');\n }\n\n if ( this.strategy === 'nodrop' ) {\n Dom.find(node.$el).removeClass('n-dragover');\n Dom.find(node.$el).addClass('n-nodrop');\n }\n\n this.frames = Date.now();\n }\n\n onDragleaveNode(event, node)\n {\n this.dragcount[node.uid] --;\n\n if ( this.dragcount[node.uid] !== 0 ) {\n return;\n }\n\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n }\n\n onDragendNode(event, node)\n {\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n Event.fire('NDrag:end');\n\n window.DragCache = null;\n }\n\n onDragdropNode(event, node)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n if ( this.strategy === 'nodrop' ) {\n return;\n }\n\n event.preventDefault();\n\n this.moveNodes(node, this.strategy);\n\n Event.fire('NDrag:drop');\n }\n\n bindNode(node)\n {\n if ( this.childNodes[node.uid] ) {\n this.unbindNode(node);\n }\n\n let $handle = Dom.find(node.$el);\n\n if ( this.rootNode.handle ) {\n $handle = $handle.find('[draggable]');\n }\n\n let $el = Dom.find(node.$el);\n\n $handle.on('dragstart', (event) => {\n this.onDragstartNode(event, node);\n });\n\n $el.on('dragenter', (event) => {\n this.onDragenterNode(event, node);\n });\n\n $el.on('dragover', (event) => {\n this.onDragoverNode(event, node);\n });\n\n $el.on('dragleave', (event) => {\n this.onDragleaveNode(event, node);\n });\n\n $el.on('dragend', (event) => {\n this.onDragendNode(event, node);\n });\n\n $el.on('drop', (event) => {\n this.onDragdropNode(event, node);\n });\n\n $el.on('dragdrop', (event) => {\n this.onDragdropNode(event, node);\n });\n\n this.childNodes[node.uid] = node;\n }\n\n unbindNode(node)\n {\n let $handle = Dom.find(node.$el);\n\n if ( this.rootNode.handle ) {\n $handle = $handle.find('[draggable]');\n }\n\n $handle.off('dragstart');\n\n let $el = Dom.find(node.$el);\n\n $el.off([\n 'dragenter',\n 'dragover',\n 'dragleave',\n 'dragend',\n 'drop',\n 'dragdrop',\n ]);\n\n $el.removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n delete this.childNodes[node.uid];\n }\n\n moveNodes(target, strategy) {\n\n if ( this.rootNode.items !== undefined ) {\n return this.moveNodesMany(target, strategy);\n }\n\n if ( this.rootNode.item !== undefined ) {\n return this.moveNodesOne(target, strategy);\n }\n\n return null;\n }\n\n moveNodesOne(target, strategy)\n {\n let clone = {\n items: [Obj.clone(this.rootNode.item)]\n };\n\n if ( this.rootNode.insertNode ) {\n clone = this.moveNodesRoot(clone, target);\n }\n\n if ( this.rootNode.removeNode ) {\n clone = this.removeNodes(clone);\n }\n\n let sources = Arr.each(this.cacheNodes, (node) => {\n return node.item[this.rootNode.uniqueProp];\n });\n\n let source = Arr.first(this.cacheNodes);\n\n this.rootNode.$emit('move', Obj.get(source, 'value.id'),\n Obj.get(target, 'uid'), strategy);\n\n this.rootNode.$emit('moveRaw',\n source, target, strategy);\n\n this.rootNode.$emit('update:item',\n Obj.get(source, 'item'));\n }\n\n moveNodesMany(target, strategy)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n if ( this.rootNode.removeNode ) {\n this.unlinkNodes(clone);\n }\n\n if ( !this.dropNodes.length ) {\n Arr.each(this.cacheNodes, (value, key) => {\n this.cacheNodes[key]['item'] = this.rootNode.transformDrop(value.item);\n });\n }\n\n if ( this.rootNode.insertNode && strategy === 'root' ) {\n clone = this.moveNodesRoot(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'inner' ) {\n clone = this.moveNodesInto(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'before' ) {\n clone = this.moveNodesBefore(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'after' ) {\n clone = this.moveNodesAfter(clone, target);\n }\n\n if ( this.rootNode.removeNode ) {\n clone = this.removeNodes(clone);\n }\n\n let sources = Arr.each(this.cacheNodes, (node) => {\n return node.item[this.rootNode.uniqueProp];\n });\n\n this.dropNodes = this.rootNode.tempSelected = [];\n\n let eventName = 'move';\n\n if ( Arr.has(window.dragMods, 18) ) {\n eventName = 'moveAlt';\n }\n\n if ( Arr.has(window.dragMods, 17) ) {\n eventName = 'moveCtrl';\n }\n\n if ( Arr.has(window.dragMods, 91) ) {\n eventName = 'moveMeta';\n }\n\n this.rootNode.$emit(eventName, sources,\n Obj.get(target, 'uid'), strategy);\n\n this.rootNode.$emit(eventName + 'Raw',\n this.cacheNodes, target, strategy);\n\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n unlinkNodes(clone)\n {\n Arr.each(this.dropNodes, (node) => {\n Obj.set(clone, node.value.route, null);\n });\n }\n\n removeNodes(clone, prop = 'items')\n {\n clone[prop] = Arr.filter(clone[prop], (node) => {\n return !!node;\n });\n\n Arr.map(clone[prop], (node) => {\n\n if ( !node[this.rootNode.childProp] ) {\n return node;\n }\n\n return this.removeNodes(node,\n this.rootNode.childProp);\n });\n\n return clone;\n }\n\n moveNodesRoot(clone)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n Arr.each(this.cacheNodes, (node) => {\n clone.items.push(node.item);\n });\n\n return clone;\n }\n\n moveNodesInto(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = [\n target.value.route,\n this.rootNode.childProp\n ].join('.');\n\n let children = Obj.get(clone,\n targetRoute, []);\n\n Arr.each(this.cacheNodes, (node) => {\n children.push(node.item);\n });\n\n Obj.set(clone, targetRoute, children);\n\n return clone;\n }\n\n moveNodesBefore(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = target.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n Arr.each(this.cacheNodes, (node, index) => {\n items.splice(target.value.index + index, 0, node.item);\n });\n\n Obj.set(clone, targetRoute, items);\n\n return clone;\n }\n\n moveNodesAfter(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = target.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n Arr.each(this.cacheNodes, (node, index) => {\n items.splice(target.value.index + index + 1, 0, node.item);\n });\n\n Obj.set(clone, targetRoute, items);\n\n return clone;\n }\n\n copyNode(node)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n let targetRoute = node.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n let target = Obj.except(node.item, [], {\n [this.rootNode.uniqueProp]: UUID()\n });\n\n items.splice(node.value.index + 1,\n 0, target);\n\n Obj.set(clone, targetRoute, items);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n removeNode(node)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n let targetRoute = node.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n items.splice(node.value.index, 1);\n\n Obj.set(clone, targetRoute, items);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n reduce(items, ...props)\n {\n return Arr.reduce(items, (merge, item, index) =>\n this.reduceItem(merge, item, Num.int(index), ...props), []);\n }\n\n reduceItem(merge, item, index, depth = 0, route = 'items', cascades = [])\n {\n // Get a unique id\n let unique = Obj.get(item,\n this.rootNode.uniqueProp, UUID());\n\n // Add unique to cascader\n let tempCascade = Arr.merge(cascades,\n [unique]);\n\n let virtual = {\n index: index,\n depth: depth,\n route: [route, index].join('.'),\n parent: Arr.last(cascades),\n cascade: tempCascade,\n };\n\n virtual[this.rootNode.uniqueProp] = unique;\n\n let children = Obj.get(item,\n this.rootNode.childProp, []);\n\n if ( Any.isEmpty(children) ) {\n return Arr.merge(merge, [virtual]);\n }\n\n let childRoute = [\n route, index,\n this.rootNode.childProp\n ].join('.');\n\n let props = [\n depth + 1, childRoute, tempCascade\n ]\n\n return Arr.merge(merge, [virtual],\n this.reduce(children, ...props));\n }\n\n}\n\nexport default NDraghandler;","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDraglist',\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n }\n },\n\n expanded: {\n default()\n {\n return [];\n }\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n safezone: {\n default()\n {\n return (height) => height * 0.265;\n }\n },\n\n lazyload: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 34;\n },\n type: [Number]\n },\n\n itemOffset: {\n default()\n {\n return 30;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderSelect: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderExpand: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NDraggable: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(),\n modifier: [],\n virtuals: [], \n visible: [], \n childNodes: {}, \n highlight: [],\n firstSelected: null,\n lastSelected: null,\n tempCurrent: this.current, \n tempExpanded: this.expanded, \n tempSelected: this.selected\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n\n Dom.find(window).on('keydown',\n this.watchModifierDown, this._.uid);\n\n Dom.find(window).on('keyup',\n this.watchModifierUp, this._.uid);\n },\n\n mounted()\n {\n let frame = this.$refs.virtualscroller.\n $refs.inner;\n\n this.drag.bindRoot(frame);\n\n this.$watch('tempSelected', this.watchSelected, \n { deep: true });\n\n this.refreshVirtuals();\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n\n Dom.find(document).off('keydown', null, this.uid);\n Dom.find(document).off('keyup', null, this.uid);\n },\n\n watch: {\n \n items()\n {\n if ( this.scrollTopOnChange ) {\n this.scrollTo();\n }\n\n this.refreshVirtuals();\n },\n\n virtuals()\n {\n this.filterVirtuals();\n },\n\n expanded(value)\n {\n this.tempExpanded = value;\n\n this.filterVirtuals();\n },\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n current(value)\n {\n this.tempCurrent = value;\n }\n\n },\n\n methods: {\n\n watchModifierDown(e)\n {\n Arr.add(this.modifier, e.which);\n },\n\n watchModifierUp(e)\n {\n Arr.remove(this.modifier, e.which);\n },\n\n watchSelected()\n {\n if ( ! this.tempSelected.length ) {\n return this.firstSelected = null;\n }\n\n this.firstSelected = Arr.find(this.virtuals, {\n [this.uniqueProp]: this.tempSelected[0]\n });\n },\n\n updateNode(node)\n {\n Obj.set(this, node.value.route, node.item);\n\n this.$emit('update:items', this.items);\n },\n\n findVirtual(unique)\n {\n let value = Arr.find(this.virtuals, (item) => {\n return item[this.uniqueProp] === unique;\n });\n\n if ( ! value ) {\n return null;\n }\n\n return {\n value, item: Obj.get(this, value.route, null)\n };\n },\n\n refreshVirtuals()\n {\n this.virtuals = this.drag.reduce(this.items);\n\n if ( window.DEBUG_NDLIST ) {\n console.log('Total virtual items mounted: ' + this.virtuals.length);\n }\n },\n\n filterVirtuals()\n {\n this.visible = Arr.filter(this.virtuals, (node) => {\n return Arr.contains(this.tempExpanded, node.cascade.slice(0, -1));\n });\n },\n\n getIndex(unique)\n {\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: unique\n });\n },\n\n getCurrentIndex()\n {\n if ( ! this.tempCurrent ) {\n return -1;\n }\n\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n },\n\n scrollTo(x = 0, y = 0)\n {\n if ( ! this.$refs.virtualscroller ) {\n return Any.delay(() => this.scrollTo(x, y));\n }\n\n this.$refs.virtualscroller.scrollTo(x, y);\n },\n\n scrollToIndex(index)\n {\n if ( ! this.$refs.virtualscroller ) {\n return Any.delay(() => this.scrollToIndex(index));\n }\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isDraggable(node)\n {\n let canDrag = this.allowDrag;\n\n if ( ! Any.isFunction(canDrag) ) {\n canDrag = () => this.allowDrag;\n }\n\n return canDrag(node);\n },\n\n isHighlight(node)\n {\n return Arr.has(this.highlight, node.value[this.uniqueProp]);\n },\n\n highlightNode(value, key = null)\n {\n clearTimeout(this.refresh);\n\n // Clear highlight items\n this.highlight = [];\n\n Arr.recursive(this.items, this.childProp, (node, cascade) => {\n\n let val = node;\n\n if ( !Any.isEmpty(key) ) {\n val = Obj.get(val, key);\n }\n\n if ( ! Any.isFunction(value) ) {\n value = (val) => val === value;\n }\n\n if ( ! value(val) ) {\n return;\n }\n\n Arr.each(cascade, (item) => {\n Arr.add(this.tempExpanded, item[this.uniqueProp]);\n });\n\n Arr.add(this.highlight, node[this.uniqueProp]);\n });\n\n if ( ! this.highlight.length ) {\n return;\n }\n\n this.$nextTick(this.scrollToHighlight);\n \n this.refresh = setTimeout(() =>\n this.highlight = [], this.highlightTimeout);\n \n this.filterVirtuals();\n },\n\n scrollToHighlight()\n {\n if ( ! this.highlight.length ) {\n return;\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: Arr.first(this.highlight)\n });\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isCurrent(node)\n {\n return this.renderCurrent && this.tempCurrent && \n node.value[this.uniqueProp] === this.tempCurrent[this.uniqueProp] ;\n },\n\n setCurrent(node)\n {\n let isSameNode = this.tempCurrent && \n this.tempCurrent[this.uniqueProp] === node.value[this.uniqueProp];\n\n if ( isSameNode ) {\n return;\n }\n\n this.$emit('update:current', \n this.tempCurrent = node.item);\n \n Event.fire('NDraglist:syncCurrent', node.item, this.uid);\n },\n\n setRawCurrent(index)\n {\n let route = Obj.get(this.visible, \n [index, 'route']);\n\n if ( ! route ) {\n return this.setRawCurrent(0);\n }\n\n let item = Obj.get(this, route);\n\n this.$refs.virtualscroller\n .scrollIntoView(index);\n\n this.$emit('update:current', \n this.tempCurrent = item);\n \n Event.fire('NDraglist:syncCurrent', item, this.uid);\n },\n\n setNextCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = 0;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index++;\n }\n\n if ( index >= this.visible.length ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n setPrevCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = this.visible.length - 1;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index--;\n }\n\n if ( index < 0 ) {\n index = reset;\n }\n \n this.setRawCurrent(index);\n },\n\n syncCurrent()\n {\n return ['NDraglist:syncCurrent', this.uid];\n },\n\n isDisabled(node)\n {\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n return ! canSelect(node) || (this.firstSelected &&\n node.value.depth !== this.firstSelected.depth);\n },\n\n hasChildren(node)\n {\n return !! this.getChildren(node).length;\n },\n\n getChildren(node)\n {\n return Obj.get(node.item, this.childProp, []);\n },\n\n isExpanded(node)\n {\n return Arr.has(this.tempExpanded, node.value[this.uniqueProp]);\n },\n\n expandItem(node)\n {\n if ( ! this.hasChildren(node) ) {\n return;\n }\n\n Arr.toggle(this.tempExpanded, node.value[this.uniqueProp]);\n\n this.filterVirtuals();\n },\n\n expandCurrent()\n {\n if ( ! this.tempCurrent ) {\n return;\n }\n\n let children = Obj.get(this.tempCurrent, \n this.childProp);\n\n if ( Any.isEmpty(children) ) {\n return;\n }\n\n Arr.toggle(this.tempExpanded, \n this.tempCurrent[this.uniqueProp]);\n\n this.filterVirtuals();\n },\n\n isSelected(node)\n {\n return Arr.has(this.tempSelected, node.value[this.uniqueProp]);\n },\n\n isTotalSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length === this.tempSelected;\n },\n\n isInterSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length !== this.tempSelected &&\n this.tempSelected;\n },\n\n toggleSingleNode(node)\n {\n Arr.toggle(this.tempSelected, this.lastSelected =\n node.value[this.uniqueProp]);\n },\n\n toggleRangeNode(node)\n {\n let indexies = [0, -1], reversed = false;\n\n if ( ! Any.isEmpty(this.lastSelected) ) {\n indexies[1] = this.getIndex(this.lastSelected);\n }\n\n indexies[0] = this.getIndex(node.value[this.uniqueProp]);\n\n if ( indexies[1] > indexies[0] ) {\n reversed = true;\n }\n\n if ( ! reversed ) {\n indexies = [indexies[1]+1, indexies[0]+1];\n }\n\n Arr.each(this.items.slice(indexies[0], indexies[1]), (item, index) => {\n Arr.toggle(this.tempSelected, item[this.uniqueProp]);\n });\n\n this.lastSelected = node.value[this.uniqueProp];\n },\n\n selectItem(node)\n {\n if ( this.isDisabled(node) ) {\n return;\n }\n\n ! Arr.has(this.modifier, 16) || this.renderExpand ?\n this.toggleSingleNode(node) : this.toggleRangeNode(node);\n\n this.$emit('update:selected', this.tempSelected);\n },\n\n selectAll()\n {\n let result = Arr.filter(this.visible, (item) => {\n\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n let row = {\n value: item, item: Obj.get(this, item.route)\n };\n\n return ! item.depth && canSelect(row);\n });\n\n let indexies = Arr.each(result, (item) => {\n return item[this.uniqueProp];\n });\n\n if ( indexies.length === this.tempSelected.length ) {\n return this.$emit('update:selected', this.tempSelected = []);\n }\n\n this.lastSelected = null;\n\n this.$emit('update:selected', this.tempSelected = indexies);\n },\n\n unselectAll()\n {\n if ( this.tempSelected.length ) {\n this.$emit('update:selected', this.tempSelected = []);\n }\n },\n\n bindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).on('keydown', \n this.onKeydown, this.uid)\n },\n\n unbindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).off('keydown', \n null, this.uid)\n },\n\n onKeydown(event, el)\n {\n if ( Dom.find(el).closest('input') ) {\n return;\n }\n\n if ( event.which === 32 ) {\n event.preventDefault();\n event.stopPropagation();\n this.expandCurrent();\n }\n\n if ( event.which === 38 ) {\n event.preventDefault();\n event.stopPropagation();\n this.setPrevCurrent();\n }\n\n if ( event.which === 40 ) {\n event.preventDefault();\n event.stopPropagation();\n this.setNextCurrent();\n }\n }\n\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-draglist__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entries') }\n </NEmptyIcon>\n );\n },\n\n renderItem(props)\n {\n return (\n <NDraglistItem {...Obj.except(props, ['index'])}>\n { { default: this.$slots.default } }\n </NDraglistItem>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draglist',\n 'n-draglist--' + this.size,\n 'n-draglist--' + this.type\n ];\n\n if ( ! this.items.length ) {\n classList.push('n-empty');\n }\n\n let passed = [\n 'threshold', 'bufferItems', 'itemHeight', \n 'overflowX', 'overflowY', 'offsetX', 'offsetY', 'useKeys'\n ];\n\n let props = Obj.only(this.$props, passed, {\n items: this.visible,\n onMouseenter: this.bindKeydown,\n onMouseleave: this.unbindKeydown\n });\n\n return (\n <NVirtualscroller ref=\"virtualscroller\" class={classList} {...props}>\n { { default: this.ctor('renderItem'), empty: this.ctor('renderEmpty') } }\n </NVirtualscroller>\n );\n }\n\n}\n","import { Str, Obj, Arr, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDraglistItem',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n \n },\n\n provide()\n {\n return {\n NDraggableItem: this\n };\n },\n\n props: {\n\n value: {\n required: true\n },\n\n },\n\n computed: {\n\n uid()\n {\n return Obj.get(this.value, this.NDraggable.uniqueProp);\n },\n\n item()\n {\n return Obj.get(this.NDraggable, this.value.route);\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n init: ! this.NDraggable.lazyload\n };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => {\n\n if ( this.NDraggable.draggable ) {\n this.timer = setTimeout(() => {\n this.NDraggable.drag.bindNode(this);\n }, 10);\n }\n\n this.init = true;\n }, 5);\n },\n\n beforeUnmount()\n {\n clearTimeout(this.timer);\n\n this.NDraggable.drag.unbindNode(this);\n },\n\n methods: {\n\n copy()\n {\n return this.NDraggable.drag.copyNode(this);\n },\n\n remove()\n {\n return this.NDraggable.drag.removeNode(this);\n },\n\n hasChildren()\n {\n return this.NDraggable.hasChildren(this);\n },\n\n isDisabled()\n {\n return this.NDraggable.isDisabled(this);\n },\n\n isHighlight()\n {\n return this.NDraggable.isHighlight(this);\n },\n\n isCurrent()\n {\n return this.NDraggable.isCurrent(this);\n },\n\n isDraggable()\n {\n return this.NDraggable.isDraggable(this);\n },\n\n isExpanded()\n {\n return this.NDraggable.isExpanded(this);\n },\n\n expandItem()\n {\n this.NDraggable.expandItem(this);\n },\n\n isSelected()\n {\n return this.NDraggable.isSelected(this);\n },\n\n selectItem()\n {\n this.NDraggable.selectItem(this);\n },\n\n onClick(event)\n {\n let isExpand = Dom.find(event.target)\n .closest('.n-draglist-item__expand');\n\n if ( isExpand ) {\n return;\n }\n\n this.NDraggable.setCurrent(this);\n\n if ( Arr.has(window.keyMods, 91) ) {\n this.NDraggable.selectItem(this);\n }\n\n this.NDraggable.$emit('row-click', this);\n },\n\n onDblclick()\n {\n this.NDraggable.setCurrent(this);\n\n this.NDraggable.$emit('row-dblclick', this);\n }\n\n },\n\n renderElement()\n {\n let classList = [\n 'n-draglist-item__element'\n ];\n\n if ( ! this.init ) {\n return (<div class={classList} />);\n }\n\n let props = {\n value: this.value,\n item: this.item,\n copy: this.copy,\n remove: this.remove,\n };\n\n let renderFunction = this.$slots.default;\n\n if ( this.NDraggable.renderNode ) {\n renderFunction = this.NDraggable.renderNode;\n }\n\n return (\n <div class={classList}>\n { renderFunction(props) }\n </div>\n );\n },\n\n renderSpacer()\n {\n let width = this.value.depth * \n this.NDraggable.itemOffset;\n\n if ( ! width ) {\n return null;\n }\n\n let style = {\n width: width + 'px'\n };\n\n return (\n <div class=\"n-draglist-item__spacer\" style={style}>\n { /* SPACER */ }\n </div>\n );\n },\n\n renderHandle()\n {\n if ( ! this.NDraggable.renderHandle ) {\n return null;\n }\n\n let props = {};\n\n if ( this.NDraggable.draggable && this.isDraggable() ) {\n props.draggable = true;\n }\n\n return (\n <div class=\"n-draglist-item__handle\" {...props}>\n <div class=\"n-draglist-item__ellipsis\">\n <i class={ nano.Icons.handle }></i>\n </div>\n </div>\n );\n },\n\n renderExpand()\n {\n if ( ! this.NDraggable.renderExpand ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.expandItem\n };\n\n return (\n <div class=\"n-draglist-item__expand\" {...props}>\n <div class=\"n-draglist-item__angle\">\n <i class={ nano.Icons.angleRight }></i>\n </div>\n </div>\n );\n },\n\n renderSelect()\n {\n if ( ! this.NDraggable.renderSelect ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.selectItem\n };\n\n return (\n <div class=\"n-draglist-item__select\" {...props}>\n <div class=\"n-draglist-item__checkbox\">\n <i class={ nano.Icons.checked }></i>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draglist-item'\n ];\n\n if ( this.hasChildren() ) {\n classList.push('n-children');\n }\n\n if ( this.isDisabled() ) {\n classList.push('n-disabled');\n }\n\n if ( this.isSelected() ) {\n classList.push('n-selected');\n }\n\n if ( this.isExpanded() ) {\n classList.push('n-expanded');\n }\n\n if ( this.isCurrent() ) {\n classList.push('n-current');\n }\n\n if ( this.isHighlight() ) {\n classList.push('n-highlight');\n }\n\n let props = {\n onClick: this.onClick,\n onDblclick: this.onDblclick,\n };\n\n if ( this.NDraggable.draggable && ! this.NDraggable.handle && this.isDraggable() ) {\n props.draggable = true;\n }\n\n props['data-unique'] = this.value[this.NDraggable.uniqueProp];\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHandle')() }\n { this.ctor('renderSpacer')() }\n { this.ctor('renderExpand')() }\n { this.ctor('renderSelect')() }\n { this.ctor('renderElement')() }\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDraggrid',\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n }\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n safezone: {\n default()\n {\n return (height) => -1;\n }\n },\n\n lazyload: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 200;\n },\n type: [Number]\n },\n\n itemWidth: {\n default()\n {\n return 150;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n deathzone: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderSelect: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NDraggable: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(),\n virtuals: [],\n visible: [],\n childNodes: {},\n highlight: [],\n firstSelected: null,\n tempCurrent: this.current,\n tempExpanded: this.expanded,\n tempSelected: this.selected\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n },\n\n mounted()\n {\n let frame = this.$refs.virtualscroller.\n $refs.inner;\n\n this.drag.bindRoot(frame);\n\n this.$watch('tempSelected', this.watchSelected,\n { deep: true });\n\n this.refreshVirtuals();\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n\n Dom.find(document).off('keydown', null, this.uid);\n },\n\n watch: {\n\n items()\n {\n if ( this.scrollTopOnChange ) {\n this.scrollTo();\n }\n\n this.refreshVirtuals();\n },\n\n virtuals()\n {\n this.filterVirtuals();\n },\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n current(value)\n {\n this.tempCurrent = value;\n }\n\n },\n\n methods: {\n\n watchSelected()\n {\n if ( ! this.tempSelected.length ) {\n return this.firstSelected = null;\n }\n\n this.firstSelected = Arr.find(this.virtuals, {\n [this.uniqueProp]: this.tempSelected[0]\n });\n },\n\n refreshVirtuals()\n {\n this.virtuals = this.drag.reduce(this.items);\n\n if ( window.DEBUG_NDLIST ) {\n console.log('Total virtual items mounted: ' + this.virtuals.length);\n }\n },\n\n filterVirtuals()\n {\n this.visible = Arr.filter(this.virtuals, (node) => {\n return node.depth === 0;\n });\n },\n\n getIndex(unique)\n {\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: unique\n });\n },\n\n getCurrentIndex()\n {\n if ( ! this.tempCurrent ) {\n return -1;\n }\n\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n },\n\n scrollTo(x = 0, y = 0)\n {\n this.$refs.virtualscroller.scrollTo(x, y);\n },\n\n scrollToIndex(index)\n {\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isDraggable(node)\n {\n let canDrag = this.allowDrag;\n\n if ( ! Any.isFunction(canDrag) ) {\n canDrag = () => this.allowDrag;\n }\n\n return canDrag(node);\n },\n\n isHighlight(node)\n {\n return Arr.has(this.highlight, node.value[this.uniqueProp]);\n },\n\n highlightNode(value, key = null)\n {\n clearTimeout(this.refresh);\n\n // Clear highlight items\n this.highlight = [];\n\n Arr.recursive(this.items, this.childProp, (node, cascade) => {\n\n if ( Obj.get(node, key || this.uniqueProp) !== value ) {\n return;\n }\n\n Arr.each(cascade, (item) => {\n Arr.add(this.tempExpanded, item[this.uniqueProp]);\n });\n\n Arr.add(this.highlight, node[this.uniqueProp]);\n });\n\n if ( ! this.highlight.length ) {\n return;\n }\n\n this.$nextTick(this.scrollToHighlight);\n\n this.refresh = setTimeout(() =>\n this.highlight = [], this.highlightTimeout);\n\n this.filterVirtuals();\n },\n\n scrollToHighlight()\n {\n if ( ! this.highlight.length ) {\n return;\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: Arr.first(this.highlight)\n });\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isCurrent(node)\n {\n return this.renderCurrent && this.tempCurrent &&\n node.value[this.uniqueProp] === this.tempCurrent[this.uniqueProp] ;\n },\n\n setCurrent(node)\n {\n let isSameNode = this.tempCurrent &&\n this.tempCurrent[this.uniqueProp] === node.value[this.uniqueProp];\n\n if ( isSameNode ) {\n return;\n }\n\n this.$emit('update:current',\n this.tempCurrent = node.item);\n\n Event.fire('NDraggrid:syncCurrent', node.item, this.uid);\n },\n\n setRawCurrent(index)\n {\n let route = Obj.get(this.visible,\n [index, 'route']);\n\n if ( ! route ) {\n return this.setRawCurrent(0);\n }\n\n let item = Obj.get(this, route);\n\n this.$refs.virtualscroller\n .scrollIntoView(index);\n\n this.$emit('update:current',\n this.tempCurrent = item);\n\n Event.fire('NDraggrid:syncCurrent', item, this.uid);\n },\n\n setNextCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = 0;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index++;\n }\n\n if ( index >= this.visible.length ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n setPrevCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = this.visible.length - 1;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index--;\n }\n\n if ( index < 0 ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n syncCurrent()\n {\n return ['NDraggrid:syncCurrent', this.uid];\n },\n\n isDisabled(node)\n {\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n return ! canSelect(node) || (this.firstSelected &&\n node.value.depth !== this.firstSelected.depth);\n },\n\n isSelected(node)\n {\n return Arr.has(this.tempSelected, node.value[this.uniqueProp]);\n },\n\n isTotalSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length === this.tempSelected;\n },\n\n isInterSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length !== this.tempSelected &&\n this.tempSelected;\n },\n\n selectItem(node)\n {\n if ( this.isDisabled(node) ) {\n return;\n }\n\n Arr.toggle(this.tempSelected, node.value[this.uniqueProp]);\n\n this.$emit('update:selected', this.tempSelected);\n },\n\n selectAll()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n let indexies = Arr.each(visible, (item) => {\n return item[this.uniqueProp];\n });\n\n if ( indexies.length === this.tempSelected.length ) {\n return this.$emit('update:selected', this.tempSelected = []);\n }\n\n this.$emit('update:selected', this.tempSelected = indexies);\n },\n\n unselectAll()\n {\n if ( this.tempSelected.length ) {\n this.$emit('update:selected', this.tempSelected = []);\n }\n },\n\n bindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).on('keydown',\n this.onKeydown, this.uid)\n },\n\n unbindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).off('keydown',\n null, this.uid)\n },\n\n onKeydown(event, el)\n {\n if ( Dom.find(el).closest('input') ) {\n return;\n }\n\n if ( event.which === 38 ) {\n event.preventDefault();\n event.stopPropagation();\n // this.setPrevCurrent();\n }\n\n if ( event.which === 40 ) {\n event.preventDefault();\n event.stopPropagation();\n // this.setNextCurrent();\n }\n }\n\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-draggrid__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entries') }\n </NEmptyIcon>\n );\n },\n\n renderItem(props)\n {\n return (\n <NDraggridItem {...Obj.except(props, ['index'])}>\n { { default: this.$slots.default } }\n </NDraggridItem>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draggrid',\n 'n-draggrid--' + this.size,\n 'n-draggrid--' + this.type\n ];\n\n if ( ! this.items.length ) {\n classList.push('n-empty');\n }\n\n let passed = [\n 'threshold', 'deathzone', 'itemHeight', 'itemWidth',\n 'overflowX', 'overflowY', 'offsetX', 'offsetY', 'useKeys'\n ];\n\n let props = Obj.only(this.$props, passed, {\n items: this.visible,\n onMouseenter: this.bindKeydown,\n onMouseleave: this.unbindKeydown\n });\n\n return (\n <NVirtualscroller ref=\"virtualscroller\" class={classList} {...props}>\n { { default: this.ctor('renderItem'), empty: this.ctor('renderEmpty') } }\n </NVirtualscroller>\n );\n }\n\n}\n","import { Str, Arr, Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDraggridItem',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NDraggableItem: this\n };\n },\n\n props: {\n\n value: {\n required: true\n }\n\n },\n\n computed: {\n\n uid()\n {\n return Obj.get(this.value, this.NDraggable.uniqueProp);\n },\n\n item()\n {\n return Obj.get(this.NDraggable, this.value.route);\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n init: ! this.NDraggable.lazyload\n };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => {\n\n if ( this.NDraggable.draggable ) {\n this.timer = setTimeout(() => {\n this.NDraggable.drag.bindNode(this);\n }, 50);\n }\n\n this.init = true;\n }, 40);\n },\n\n beforeUnmount()\n {\n if ( ! this.init ) {\n clearTimeout(this.timer);\n }\n\n this.NDraggable.drag.unbindNode(this);\n },\n\n methods: {\n\n copy()\n {\n return this.NDraggable.drag.copyNode(this);\n },\n\n remove()\n {\n return this.NDraggable.drag.removeNode(this);\n },\n\n isDisabled()\n {\n return this.NDraggable.isDisabled(this);\n },\n\n isHighlight()\n {\n return this.NDraggable.isHighlight(this);\n },\n\n isCurrent()\n {\n return this.NDraggable.isCurrent(this);\n },\n\n isDraggable()\n {\n return this.NDraggable.isDraggable(this);\n },\n\n isSelected()\n {\n return this.NDraggable.isSelected(this);\n },\n\n selectItem()\n {\n this.NDraggable.selectItem(this);\n },\n\n onClick()\n {\n this.NDraggable.setCurrent(this);\n\n if ( Arr.has(window.keyMods, 91) ) {\n this.NDraggable.selectItem(this);\n }\n\n this.NDraggable.$emit('row-click', this);\n },\n\n onDblclick()\n {\n this.NDraggable.setCurrent(this);\n\n this.NDraggable.$emit('row-dblclick', this);\n }\n\n },\n\n renderElement()\n {\n let classList = [\n 'n-draglist-item__element'\n ];\n\n if ( ! this.init ) {\n return (<div class={classList} />);\n }\n\n let props = {\n value: this.value,\n item: this.item,\n copy: this.copy,\n remove: this.remove,\n };\n\n let renderFunction = this.$slots.default;\n\n if ( this.NDraggable.renderNode ) {\n renderFunction = this.NDraggable.renderNode;\n }\n\n return (\n <div class={classList}>\n {renderFunction(props)}\n </div>\n );\n },\n\n renderHandle()\n {\n if ( ! this.NDraggable.renderHandle ) {\n return null;\n }\n\n let props = {};\n\n if ( this.NDraggable.draggable && this.isDraggable() ) {\n props.draggable = true;\n }\n\n return (\n <div class=\"n-draggrid-item__handle\" {...props}>\n <div class=\"n-draggrid-item__ellipsis\">\n <i class={ nano.Icons.handle }></i>\n </div>\n </div>\n );\n },\n\n renderSelect()\n {\n if ( ! this.NDraggable.renderSelect ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.selectItem\n };\n\n return (\n <div class=\"n-draggrid-item__select\" {...props}>\n <div class=\"n-draggrid-item__checkbox\">\n <i class={ nano.Icons.checked }></i>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draggrid-item'\n ];\n\n if ( this.isDisabled() ) {\n classList.push('n-disabled');\n }\n\n if ( this.isSelected() ) {\n classList.push('n-selected');\n }\n\n if ( this.isCurrent() ) {\n classList.push('n-current');\n }\n\n if ( this.isHighlight() ) {\n classList.push('n-highlight');\n }\n\n let props = {\n onClick: this.onClick,\n onDblclick: this.onDblclick,\n };\n\n if ( this.NDraggable.draggable && ! this.NDraggable.handle && this.isDraggable() ) {\n props.draggable = true;\n }\n\n props['data-unique'] = this.value[this.NDraggable.uniqueProp];\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHandle')() }\n { this.ctor('renderSelect')() }\n { this.ctor('renderElement')() }\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDropzone',\n\n model: {\n prop: 'item'\n },\n\n props: {\n\n item: {\n default()\n {\n return null;\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n },\n\n provide()\n {\n return {\n NDropzone: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(),\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n },\n\n mounted()\n {\n this.drag.bindRoot(this.$el);\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n },\n\n renderItem()\n {\n if ( Any.isEmpty(this.item) ) {\n return null;\n }\n\n return this.$slots.default && this.$slots.default(this.item)\n },\n\n renderEmpty()\n {\n if ( ! Any.isEmpty(this.item) ) {\n return null;\n }\n\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-dropzone__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entry') }\n </NEmptyIcon>\n );\n },\n\n render()\n {\n let classList = [\n 'n-dropzone',\n 'n-dropzone--' + this.size,\n 'n-dropzone--' + this.type\n ];\n\n if ( Any.isEmpty(this.item) ) {\n classList.push('n-empty');\n }\n\n return (\n <div class={classList}>\n {[this.ctor('renderItem')(), this.ctor('renderEmpty')()]}\n </div>\n );\n }\n\n}\n","import { UUID, Num, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NLoader',\n\n inject: {\n\n NLoader: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NLoader: this\n };\n },\n\n props: {\n\n visible: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n minimum: {\n default()\n {\n return 120;\n },\n type: [Number]\n },\n\n debounce: {\n default()\n {\n return 120;\n },\n type: [Number]\n }\n\n },\n\n data()\n {\n return {\n tempVisible: this.visible\n };\n },\n\n methods: {\n\n applyTimer()\n {\n this.timing = Date.now();\n\n if ( this.visible) {\n return this.tempVisible = this.visible;\n }\n\n this.startTimer();\n },\n\n startTimer()\n {\n let timing = Date.now() - this.timing;\n\n if ( timing < this.minimum ) {\n return this.restartTimer(timing);\n }\n\n this.timeout = setTimeout(() => this.tempVisible = false, \n this.debounce);\n },\n\n restartTimer(timing = 0) {\n Any.delay(this.startTimer, this.minimum - timing + 10);\n }\n\n },\n\n watch: {\n\n visible()\n {\n this.applyTimer();\n }\n\n },\n\n mounted()\n {\n this.applyTimer();\n },\n\n render()\n {\n let classList = [\n 'n-loader', \n 'n-loader--' + this.size, \n 'n-loader--' + this.type\n ];\n\n if ( this.tempVisible ) {\n classList.push('n-load');\n }\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { UUID, Arr, Obj, Dom, Any, Str, Locale, Event, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NResizer',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n width: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n minWidth: {\n default()\n {\n return 60;\n },\n type: [Number]\n },\n\n maxWidth: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n group: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n position: {\n default()\n {\n return 'right';\n },\n type: [String]\n },\n\n resizerWidth: {\n default()\n {\n return 6;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window || \n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n sizeFixed: false,\n tempValue: this.modelValue,\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n },\n\n mounted()\n {\n if ( ! this.modelValue ) {\n this.updateWidth();\n }\n\n if ( this.NScrollbar ) {\n this.bindSizechange();\n }\n\n Event.bind('NResizer:move', (...args) => {\n this.forceWidth(...args)\n }, this._.uid);\n\n Dom.find(window).on('resize', Any.debounce((...args) => {\n this.onResize(...args)\n }, 500), this._.uid);\n },\n\n updated()\n {\n this.updateWidth();\n },\n\n unmounted()\n {\n if ( this.NScrollbar ) {\n this.unbindSizechange();\n }\n\n Event.unbind('NResizer:move', \n this._.uid);\n \n Dom.find(window).off('resize', \n null, this._.uid);\n },\n\n methods: {\n\n forceWidth(group)\n {\n if ( ! Arr.has(group, this.group) ) {\n return;\n }\n \n if ( ! this.tempValue || ! this.group.length ) {\n return;\n }\n\n this.sizeFixed = true;\n\n let style = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(style);\n },\n\n updateWidth()\n {\n let width = Dom.find(this.$el)\n .width();\n\n if ( width === this.tempValue ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = width);\n \n this.updateHandle();\n },\n\n updateHandle()\n {\n let style = {};\n\n if ( this.position === 'left' ) {\n style.transform =`translateX(-${this.tempValue - this.resizerWidth}px)`\n }\n \n if ( this.position === 'right' ) {\n style.transform = `translateX(${this.tempValue - this.resizerWidth}px)`\n }\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n bindSizechange()\n {\n Dom.find(this.NScrollbar.$el).on('resized', \n Any.debounce(this.updateWidth, 50), this._.uid);\n },\n\n unbindSizechange()\n {\n Dom.find(this.NScrollbar.$el)\n .off('resized', null, this._.uid);\n },\n\n\n onResize()\n {\n if ( this.NScrollbar ) {\n return;\n }\n\n this.updateWidth();\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onLeftMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if ( this.group.length ) {\n Event.fire('NResizer:move', this.group);\n }\n\n Dom.find(this.$el).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onLeftMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onLeftMousemove, 60), this._.uid);\n },\n\n onLeftMousemove(event)\n {\n this.clientX = (window.innerWidth - \n this.getTouchEvent(event).clientX);\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = (this.clientX + scrollX - offsetX) -\n (this.resizerWidth / 2);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth,\n this.minWidth - this.resizerWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth,\n this.maxWidth - this.resizerWidth);\n }\n\n let style = {\n transform: `translateX(-${targetWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n onLeftMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mouseup, null, this._.uid);\n Dom.find(document).off(this.mousemove, null, this._.uid);\n\n if ( ! this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = this.clientX + scrollX - offsetX;\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth, this.minWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth, this.maxWidth);\n }\n\n this.tempValue = Math.round(targetWidth);\n\n Dom.find(this.$el).removeClass('n-move');\n\n let style = {\n transform: `translateX(-${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n onRightMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if ( this.group.length ) {\n Event.fire('NResizer:move', this.group);\n }\n\n Dom.find(this.$el).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onRightMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onRightMousemove, 60), this._.uid);\n },\n\n onRightMousemove(event)\n {\n this.clientX = this.getTouchEvent(event).clientX;\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = (this.clientX + scrollX - offsetX) -\n (this.resizerWidth / 2);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth,\n this.minWidth - this.resizerWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth,\n this.maxWidth - this.resizerWidth);\n }\n\n let style = {\n transform: `translateX(${targetWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n onRightMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mousemove, null, this._.uid);\n Dom.find(document).off(this.mouseup, null, this._.uid);\n\n if ( ! this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = this.clientX + scrollX - offsetX;\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth, this.minWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth, this.maxWidth);\n }\n\n this.tempValue = Math.round(targetWidth);\n\n Dom.find(this.$el).removeClass('n-move');\n\n let style = {\n transform: `translateX(${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.$emit('update:modelValue', this.tempValue);\n }\n\n },\n\n renderHandle()\n {\n if ( this.disabled ) {\n return null;\n }\n \n let classList = [\n 'n-resizer__handle',\n ];\n\n let props = {};\n\n if ( this.position === 'right' ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onRightMousedown;\n }\n\n if ( this.position === 'left' ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onLeftMousedown;\n }\n\n if ( this.resizerWidth ) {\n props.width = this.resizerWidth + 'px';\n }\n\n return (\n <div ref=\"handle\" class={classList} {...props}/>\n );\n },\n\n render()\n {\n let classList = [\n 'n-resizer',\n 'n-resizer--' + this.position,\n ];\n\n let style = {};\n\n if ( this.width && ! this.tempValue ) {\n style['width'] = this.width + 'px';\n }\n\n if ( this.width ) {\n style['flex-basis'] = this.width + 'px';\n }\n\n if ( this.minWidth ) {\n style['min-width'] = this.minWidth + 'px';\n }\n\n if ( this.maxWidth ) {\n style['max-width'] = this.maxWidth + 'px';\n }\n\n return (\n <div class={classList} style={style}>\n { [this.$slots.default(), this.ctor('renderHandle')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Any, Dom, Event, UUID } from \"@kizmann/pico-js\";\n\n\nexport default {\n\n name: 'NPopover',\n\n provide()\n {\n return {\n NPopover: this\n };\n },\n\n inject: {\n\n NPopover: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n width: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n window: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-center';\n },\n type: [String]\n },\n\n scrollClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n multiClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n framerate: {\n default()\n {\n return 15;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window || \n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n tempValue: false,\n clientX: 0,\n clientY: 0,\n target: null,\n prevent: false,\n };\n },\n\n watch: {\n\n modelValue()\n {\n this.tempValue = this.modelValue;\n },\n\n tempValue()\n {\n Any.delay(this.refreshVisible, 50);\n }\n\n },\n\n beforeMount()\n {\n this.tempValue = this.modelValue;\n },\n\n mounted()\n {\n this.target = Dom.find(this.$el).previous().get(0);\n\n if ( this.trigger === 'context' ) {\n this.target = Dom.find(this.$el).parent().get(0);\n }\n\n if ( this.window ) {\n Dom.find(document.body).append(this.$el);\n }\n\n if ( this.listen && this.trigger === 'hover' ) {\n Dom.find(document.body).on('mousemove', \n Any.framerate(this.onHover, 30), this._.uid);\n }\n\n if ( this.listen && this.trigger === 'click' ) {\n Dom.find(document.body).on(this.mousedown, \n Any.framerate(this.onClick, 30), this._.uid);\n }\n\n if ( this.listen && this.trigger === 'context' ) {\n Dom.find(document.body).on('contextmenu', \n Any.framerate(this.onContext, 30), this._.uid);\n }\n\n Dom.find(document.body).on(this.mousedown, \n Any.framerate(this.onExit, 30), this._.uid);\n\n Event.bind('NPopover:close', this.onCloseEvent, this._.uid);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n\n Dom.find(document).off('mousemove', null, this._.uid);\n Dom.find(document).off('mousedown', null, this._.uid);\n Dom.find(document).off('contextmenu', null, this._.uid);\n\n Event.unbind('NPopover:close', this._.uid);\n \n },\n\n methods: {\n\n active()\n {\n return this.tempValue;\n },\n\n open()\n {\n this.$emit('update:modelValue', \n this.tempValue = true);\n },\n\n close(type = null)\n {\n if ( this.prevent ) {\n return;\n }\n\n delete this.timer;\n\n if ( ! type ) {\n this.$emit('close');\n }\n\n if ( type === 'scroll' ) {\n this.$emit('scrollClose');\n }\n\n if ( type === 'multi' ) {\n this.$emit('multiClose');\n }\n\n this.$emit('update:modelValue', \n this.tempValue = false);\n },\n\n pause()\n {\n this.prevent = true;\n },\n\n unpause()\n {\n this.prevent = false;\n },\n\n onCloseEvent(uid)\n {\n if ( this.multiClose && this.tempValue && this._.uid !== uid ) {\n this.close('multi');\n }\n },\n\n refreshVisible()\n {\n Dom.find(this.$el).css(null);\n\n if ( ! this.tempValue ) {\n return this.stopRefreshInterval();\n }\n\n this.startRefreshInterval();\n\n delete this.passedOffset;\n },\n\n startRefreshInterval()\n {\n this.refresh = setInterval(this.updatePosition, \n 1000 / this.framerate);\n\n let onReady = () => {\n\n if ( this.listen ) {\n Dom.find(this.target).addClass('n-open');\n }\n\n Dom.find(this.$el).addClass('n-ready');\n\n if ( this.NPopover ) {\n this.NPopover.pause();\n }\n\n Event.fire('NPopover:close', this._.uid);\n }\n\n Any.delay(onReady, 100);\n },\n\n stopRefreshInterval()\n {\n clearInterval(this.refresh);\n\n if ( this.NPopover ) {\n this.NPopover.unpause();\n }\n\n if ( this.listen ) {\n Dom.find(this.target).removeClass('n-open');\n }\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n isSameOffset(offset)\n {\n if ( ! this.passedOffset ) {\n return false;\n }\n\n let rainbow = Arr.each(['x', 'y'], (key) => {\n return offset[key] === this.passedOffset[key];\n });\n\n return ! Arr.has(rainbow, false);\n },\n\n isSameSize(size)\n {\n if ( ! this.passedSize ) {\n return false;\n }\n\n let rainbow = Arr.each(['width', 'height'], (key) => {\n return size[key] === this.passedSize[key];\n });\n\n return ! Arr.has(rainbow, false);\n },\n\n getTargetHorizontal(position, fallback = null)\n {\n let targetRect = this.target.getBoundingClientRect();\n\n if ( this.trigger === 'context' ) {\n targetRect = {\n top: this.clientY, left: this.clientX, width: 2, height: 2\n };\n }\n\n let windowRect = this.$el.getBoundingClientRect();\n\n if ( this.width === -1 ) {\n windowRect.width = targetRect.width;\n }\n\n let posY = {\n\n // Set above the tagret element\n start: targetRect.top - windowRect.height,\n \n // Set at bottom of target element\n end: targetRect.top + targetRect.height,\n\n };\n\n let posX = {\n\n // Set on the left of target element\n start: targetRect.left,\n\n // Set into the center of the target element\n center: targetRect.left + (targetRect.width * 0.5) - \n (windowRect.width * 0.5),\n\n // Set on the right of the target element\n end: targetRect.left + targetRect.width - \n windowRect.width,\n\n };\n\n let offset = { x: 0, y: 0 };\n\n if ( position === 'top-start' ) {\n offset = { x: posX.start, y: posY.start };\n }\n\n if ( position === 'top-center' ) {\n offset = { x: posX.center, y: posY.start };\n }\n\n if ( position === 'top-end' ) {\n offset = { x: posX.end, y: posY.start };\n }\n\n if ( position === 'bottom-start' ) {\n offset = { x: posX.start, y: posY.end };\n }\n\n if ( position === 'bottom-center' ) {\n offset = { x: posX.center, y: posY.end };\n }\n\n if ( position === 'bottom-end' ) {\n offset = { x: posX.end, y: posY.end };\n }\n\n let inverse = this.position;\n\n if ( position.match(/^(top)\\-/) ) {\n inverse = inverse.replace(/^(top)\\-/, 'bottom-');\n }\n\n if ( position.match(/^(bottom)\\-/) ) {\n inverse = inverse.replace(/^(bottom)\\-/, 'top-');\n }\n\n let broken = offset.y + windowRect.height > \n window.innerHeight || offset.y < 0;\n\n if ( this.scrollClose && broken && ! fallback ) {\n return this.getTargetHorizontal(inverse, offset);\n }\n\n if ( fallback && broken ) {\n offset = fallback;\n }\n\n if ( offset.y < 0 ) {\n offset.y = 0;\n }\n \n if ( offset.y + windowRect.height > window.innerHeight ) {\n offset.y = window.innerHeight - windowRect.height;\n }\n\n if ( offset.x < 0 ) {\n offset.x = 0;\n }\n \n if ( offset.x + windowRect.width > window.innerWidth ) {\n offset.x = window.innerWidth - windowRect.width -\n (window.innerWidth - document.body.clientWidth);\n }\n\n return offset;\n },\n\n getTargetVertical(position, fallback = null)\n {\n let targetRect = this.target.getBoundingClientRect();\n\n if ( this.trigger === 'context' ) {\n targetRect = {\n top: this.clientY, left: this.clientX, width: 2, height: 2\n };\n }\n\n let windowRect = this.$el.getBoundingClientRect();\n\n if ( this.width === -1 ) {\n windowRect.width = targetRect.width;\n }\n \n let posY = {\n\n // Set at top edge of the target element\n start: targetRect.top,\n\n // Set at the middle of the target element\n center: targetRect.top + (targetRect.height * 0.5) - \n (windowRect.height * 0.5),\n\n // Ste at the bottom of the target elemnent\n end: targetRect.top + targetRect.height - \n windowRect.height,\n\n };\n\n let posX = {\n\n // Set to the left of the target element\n start: targetRect.left - windowRect.width,\n\n // Set to the right of the target element\n end: targetRect.left + targetRect.width,\n\n };\n\n let offset = { x: 0, y: 0 };\n\n if ( position === 'left-start' ) {\n offset = { x: posX.start, y: posY.start };\n }\n\n if ( position === 'left-center' ) {\n offset = { x: posX.start, y: posY.center };\n }\n\n if ( position === 'left-end' ) {\n offset = { x: posX.start, y: posY.end };\n }\n\n if ( position === 'right-start' ) {\n offset = { x: posX.end, y: posY.start };\n }\n\n if ( position === 'right-center' ) {\n offset = { x: posX.end, y: posY.center };\n }\n\n if ( position === 'right-end' ) {\n offset = { x: posX.end, y: posY.end };\n }\n\n let inverse = this.position;\n\n if ( position.match(/^(left)\\-/) ) {\n inverse = inverse.replace(/^(left)\\-/, 'right-');\n }\n\n if ( position.match(/^(right)\\-/) ) {\n inverse = inverse.replace(/^(right)\\-/, 'left-');\n }\n\n let broken = offset.x + windowRect.width > \n window.innerWidth || offset.x < 0;\n\n if ( this.scrollClose && broken && ! fallback ) {\n return this.getTargetVertical(inverse, offset);\n }\n\n if ( fallback && broken ) {\n offset = fallback;\n }\n\n if ( offset.y < 0 ) {\n offset.y = 0;\n }\n \n if ( offset.y + windowRect.height > window.innerHeight ) {\n offset.y = window.innerHeight - windowRect.height;\n }\n\n if ( offset.x < 0 ) {\n offset.x = 0;\n }\n \n if ( offset.x + windowRect.width > window.innerWidth ) {\n offset.x = window.innerWidth - windowRect.width -\n (window.innerWidth - document.body.clientWidth);\n }\n\n return offset;\n },\n\n getTargetOffset()\n {\n let position = this.position;\n\n if ( position.match(/^(top|bottom)\\-/) ) {\n return this.getTargetHorizontal(position);\n }\n\n if ( position.match(/^(left|right)\\-/) ) {\n return this.getTargetVertical(position);\n }\n\n return targetRect;\n },\n\n updatePosition()\n {\n let size = this.$el.getBoundingClientRect(),\n rect = this.target.getBoundingClientRect();\n\n let isSameSize = this.isSameSize(size);\n\n if ( isSameSize && this.isSameOffset(rect) ) {\n return;\n }\n\n if ( ! this.timer ) {\n this.timer = Date.now();\n }\n\n this.passedSize = size;\n\n if ( this.width ) {\n Dom.find(this.$el).css({ width: this.width + 'px' });\n }\n\n let offset = this.getTargetOffset();\n\n let scroll = Dom.find(document.body)\n .scroll();\n\n let style = {\n 'z-index': window.zIndex++,\n 'top': Math.round(offset.y + scroll.top) + 'px', \n 'left': Math.round(offset.x + scroll.left) + 'px', \n };\n\n if ( this.width === -1 ) {\n style.width = rect.width + 'px';\n }\n\n Dom.find(this.$el).css(style);\n\n let isScrollClose = this.passedOffset && isSameSize &&\n (Date.now() - this.timer) > 500;\n\n if ( this.scrollClose && isScrollClose ) {\n this.close('scroll');\n }\n\n this.passedOffset = rect;\n },\n\n onHover(event, el)\n {\n if ( this.disabled ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target),\n source = Dom.find(el).closest(this.$el);\n\n let result = (!! target || !! source);\n\n if ( this.tempValue === result ) {\n return;\n }\n\n if ( ! result ) {\n return this.$nextTick(this.close);\n }\n\n this.$emit('update:modelValue', this.tempValue = result);\n },\n\n onClick(event, el)\n {\n let keyCode = event.which === 1 ||\n event.which === 0;\n\n if ( this.disabled || this.tempValue || ! keyCode ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target),\n source = Dom.find(el).closest(this.$el);\n\n let result = (!! target || !! source);\n\n if ( this.tempValue === result ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = result);\n },\n\n onContext(event, el)\n {\n let keyCode = event.which === 3;\n\n if ( this.disabled || this.tempValue || ! keyCode ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target),\n source = Dom.find(el).closest(this.$el);\n\n this.clientX = event.clientX;\n this.clientY = event.clientY;\n\n let result = (!! target || !! source);\n\n if ( result ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if ( this.tempValue === result ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = result);\n },\n\n onExit(event, el)\n {\n if ( this.disabled || ! this.tempValue ) {\n return;\n }\n\n if ( !! Dom.find(el).closest(this.$el) ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target);\n\n if ( this.trigger !== 'context' && !! target ) {\n return;\n }\n\n this.close();\n }\n\n },\n\n renderBody()\n {\n if ( this.$slots.raw ) {\n return this.$slots.raw();\n }\n\n return (\n <div class=\"n-popover__frame\">\n { this.$slots.header &&\n <div class=\"n-popover__header\">\n { this.$slots.header() }\n </div>\n }\n <div class=\"n-popover__body\">\n { this.$slots.default() }\n </div>\n { this.$slots.footer &&\n <div class=\"n-popover__footer\">\n { this.$slots.footer() }\n </div>\n }\n </div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-popover',\n 'n-popover--' + this.type,\n 'n-popover--' + this.size,\n 'n-popover--' + this.position,\n ];\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let viewBody = this.modelValue;\n\n if ( Any.isNull(this.modelValue) ) {\n viewBody = this.tempValue;\n }\n\n return (\n <div class={classList}>\n { viewBody && this.ctor('renderBody')() }\n </div>\n );\n }\n\n}\n","export default {\n\n name: 'NPopoverGroup',\n\n inject: {\n NPopover: {\n default: undefined\n }\n },\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n\n },\n\n computed: {\n\n tempSize()\n {\n if ( this.NPopover ) {\n return this.NPopover.size;\n }\n\n return this.size;\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-popover-group',\n 'n-popover-group--' + this.tempSize,\n ];\n\n return (\n <label class={classList}>\n <span>{ this.$slots.default() }</span>\n </label>\n );\n }\n\n}\n","import { Obj, Arr, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPopoverOption',\n\n inject: {\n NPopover: {\n default: undefined\n }\n },\n\n props: {\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n focus: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n active: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n iconPosition: {\n default()\n {\n return 'after';\n },\n type: [String]\n },\n\n image: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n imagePosition: {\n default()\n {\n return 'before';\n },\n type: [String]\n },\n\n clickClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n\n },\n\n computed: {\n\n tempSize()\n {\n if ( this.NPopover ) {\n return this.NPopover.size;\n }\n\n return this.size;\n }\n\n },\n\n methods: {\n\n onClick(event)\n {\n if ( this.NPopover && this.clickClose ) {\n this.NPopover.close();\n }\n\n this.$emit('fakeclick', event);\n }\n\n },\n\n renderImage()\n {\n if ( ! this.image ) {\n return null;\n }\n\n let classList = [\n 'n-image',\n 'n-image--' + this.imagePosition,\n ];\n\n return (<img class={classList} src={this.image} />);\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n let classList = [\n 'n-icon', \n 'n-icon--' + this.iconPosition,\n ];\n\n classList.push(this.icon);\n\n return (<i class={classList}></i>);\n },\n\n renderContent()\n {\n if ( this.$slots.raw ) {\n return this.$slots.raw();\n }\n\n return (\n <span>{ this.$slots.default() }</span>\n );\n },\n\n render()\n {\n let classList = [\n 'n-popover-option',\n 'n-popover-option--' + this.type,\n 'n-popover-option--' + this.tempSize,\n ];\n\n if ( this.active ) {\n classList.push('n-active');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( ! this.disabled ) {\n props.onClick = this.onClick;\n }\n\n if ( this.disabled ) {\n props.disabled = true;\n }\n\n return (\n <a class={classList} href=\"javascript:void(0)\" {...props}>\n { this.ctor('renderImage')() }\n { this.ctor('renderContent')() }\n { this.ctor('renderIcon')() }\n </a>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NModal',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n width: {\n default()\n {\n return '50%';\n },\n type: [String]\n },\n\n height: {\n default()\n {\n return 'auto';\n },\n type: [String]\n },\n\n title: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'center-center';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n tempValue()\n {\n this.startRefreshTimeout();\n }\n\n },\n\n provide()\n {\n return {\n NModal: this\n };\n },\n\n data()\n {\n return {\n target: null, tempValue: false\n };\n },\n\n mounted()\n {\n this.target = Dom.find(this.selector || this.$el)\n .previous().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).on('keydown',\n this.eventKeydown, this._.uid);\n\n let showModal = () => {\n this.tempValue = true;\n };\n\n if ( this.modelValue ) {\n Any.delay(showModal, 100);\n }\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n\n Dom.find(document.body).off('keydown',\n null, this._.uid);\n },\n\n methods: {\n\n openModal(force = false, source = null)\n {\n if ( this.tempValue ) {\n return;\n }\n\n if ( this.closable || force ) {\n this.tempValue = true;\n }\n\n this.$emit('update:modelValue', true, source);\n },\n\n closeModal(force = false, source = null)\n {\n if ( ! this.tempValue ) {\n return;\n }\n\n if ( ! this.update ) {\n return this.$emit('close', source);\n }\n\n if ( this.closable || force ) {\n this.tempValue = false;\n }\n\n this.$emit('update:modelValue', false, source);\n },\n\n stopRefreshTimeout()\n {\n clearTimeout(this.refresh);\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n startRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n window.zIndex += 1;\n\n Dom.find(this.$el).attr('data-modal',\n window.zIndex);\n\n Dom.find(this.$el).css({\n 'z-index': window.zIndex\n });\n\n this.queueRefreshTimeout();\n },\n\n queueRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n this.refresh = setTimeout(() => {\n Dom.find(this.$el).addClass('n-ready');\n }, 100);\n },\n\n eventClick(event, el)\n {\n if ( this.disabled || event.which !== 1 ) {\n return;\n }\n\n let result = !! Dom.find(el).closest(this.target);\n\n if ( ! result && ! this.tempValue ) {\n return;\n }\n\n if ( this.tempValue && this.closable ) {\n result = ! Dom.find(el).closest(this.$refs.backdrop);\n }\n\n if ( result === this.tempValue ) {\n return;\n }\n\n if ( ! result ) {\n return this.closeModal(false, 'escape');\n }\n\n if ( this.listen ) {\n this.openModal(true, 'selector');\n }\n },\n\n eventKeydown(event, el)\n {\n if ( ! this.tempValue || event.which !== 27 ) {\n return;\n }\n\n let extractIndex = (modal) => {\n return Dom.find(modal).attr('data-modal');\n };\n\n let indexes = Dom.find('.n-modal:not(.n-hidden)')\n .each(extractIndex);\n\n let index = Dom.find(this.$el).attr('data-modal');\n\n if ( Arr.last(indexes.sort()) !== index ) {\n return;\n }\n\n this.closeModal(false, 'escape');\n },\n\n },\n\n renderClose()\n {\n if ( ! this.renderClose || ! this.closable ) {\n return null;\n }\n\n let props = {\n onClick: () => this.closeModal(false, 'escape')\n };\n\n return (\n <div class=\"n-modal__close\" {...props}>\n <span class={nano.Icons.times}></span>\n </div>\n );\n },\n\n renderHeader()\n {\n if ( ! this.$slots.header && ! this.title ) {\n return null;\n }\n\n return (\n <div class=\"n-modal__header\">\n { [this.$slots.header && this.$slots.header({ closeModal: this.closeModal }) || this.title, this.ctor('renderClose')()] }\n </div>\n );\n },\n\n renderFooter()\n {\n if ( ! this.$slots.footer ) {\n return null;\n }\n\n return (\n <div class=\"n-modal__footer\">\n { this.$slots.footer({ closeModal: this.closeModal }) }\n </div>\n );\n },\n\n renderBody()\n {\n let bodyHtml = (\n <NScrollbar ref=\"scrollbar\" relative={true} wrapClass=\"n-modal__wrap\">\n { this.$slots.default && this.$slots.default({ closeModal: this.closeModal }) }\n </NScrollbar>\n );\n\n if ( this.$slots.body ) {\n bodyHtml = this.$slots.body({ closeModal: this.closeModal });\n }\n\n return (\n <div class=\"n-modal__body\">\n { bodyHtml }\n </div>\n );\n },\n\n renderFrame()\n {\n if ( ! this.tempValue ) {\n return null;\n }\n\n let style = {\n width: this.width, height: this.height\n };\n\n let innerHtml = [\n this.ctor('renderHeader')(),\n this.ctor('renderBody')(),\n this.ctor('renderFooter')(),\n ]\n\n return (\n <div class=\"n-modal__frame\" style={style}>\n { this.$slots.raw ? this.$slots.raw() : innerHtml }\n </div>\n );\n },\n\n renderBackdrop()\n {\n return (\n <div ref=\"backdrop\" class=\"n-modal__backdrop\"></div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-modal',\n 'n-modal--' + this.size,\n 'n-modal--' + this.type,\n 'n-modal--' + this.position\n ];\n\n if ( this.tempValue ) {\n this.queueRefreshTimeout();\n }\n\n if ( this.renderClose ) {\n classList.push('n-closable');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let innerHtml = null;\n\n if ( this.tempValue ) {\n innerHtml = this.ctor('renderFrame')();\n }\n\n return (\n <div class={classList}>\n { [innerHtml, this.ctor('renderBackdrop')()] }\n </div>\n );\n }\n\n}\n","import { Obj } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NButton',\n\n props: {\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n link: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n square: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return null;\n }\n },\n\n iconPosition: {\n default()\n {\n return 'before';\n },\n type: [String]\n },\n\n nativeType: {\n default()\n {\n return 'button';\n },\n type: [String]\n }\n\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n let classList = [\n 'n-icon', \n 'n-icon--' + this.iconPosition,\n ];\n\n classList.push(this.icon);\n\n return (<i class={classList}></i>);\n },\n\n render()\n {\n let classList = [\n 'n-button',\n 'n-button--' + this.size,\n 'n-button--' + this.type,\n ];\n\n if ( this.icon ) {\n classList.push('n-button--icon');\n }\n\n if ( this.link ) {\n classList.push('n-button--link');\n }\n\n if ( this.square ) {\n classList.push('n-button--square');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = {\n class: classList\n };\n\n if ( this.disabled ) {\n props.disabled = true;\n }\n\n let innerHtml = [];\n\n if ( this.iconPosition === 'before' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n if ( this.$slots.default && ! this.square ) {\n innerHtml.push(<span>{ this.$slots.default && this.$slots.default() }</span>);\n }\n\n if ( this.iconPosition === 'after' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n return h(this.nativeType, props, innerHtml);\n }\n\n}\n","export default {\n\n name: 'NButtonGroup',\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-button-group',\n 'n-button-group--' + this.size\n ]\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { h } from \"vue\";\nimport { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInput',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n inheritAttrs: false,\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n iconPosition: {\n default()\n {\n return 'after';\n },\n type: [String]\n },\n\n iconDisabled: {\n default()\n {\n return null;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n nativeType: {\n default()\n {\n return 'text';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.modelValue || ''\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n onIconClick(event)\n {\n if ( event.clientX || event.clientY ) {\n this.$emit('icon-click', event);\n }\n },\n\n onInput(event)\n {\n this.$emit('update:modelValue',\n this.tempValue = event.target.value);\n },\n\n onKeydown(event)\n {\n this.$emit('keydown', event);\n\n if ( event.which !== 13 ) {\n return;\n }\n\n event.preventDefault();\n\n if ( ! this.NForm ) {\n return;\n }\n\n this.NForm.onSubmit(event);\n },\n\n onFocus(event)\n {\n this.focus = true;\n this.$emit('focus', event);\n },\n\n onBlur(event)\n {\n this.focus = false;\n this.$emit('blur', event);\n }\n\n },\n\n renderIcon()\n {\n if ( !this.icon ) {\n return null;\n }\n\n let disabled = this.deepDisabled;\n\n if ( this.iconDisabled !== null ) {\n disabled = this.iconDisabled;\n }\n\n let props = {\n type: 'input',\n icon: this.icon,\n size: this.size,\n square: true,\n disabled: disabled,\n };\n\n if ( !disabled ) {\n props.onClick = this.onIconClick;\n }\n\n return (<NButton {...props} />);\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs, [\n 'class', 'style'\n ]);\n\n Obj.assign(props, {\n value: this.tempValue,\n type: this.nativeType,\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onInput: this.onInput,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeydown: this.onKeydown\n });\n\n return h('input', props);\n },\n\n render()\n {\n let classList = [\n 'n-input',\n 'n-input--' + this.size,\n 'n-input--' + this.type,\n ];\n\n if ( this.icon ) {\n classList.push('n-input--icon');\n classList.push('n-input--icon-' + this.iconPosition);\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n let props = Obj.only(this.$attrs, ['style'], {\n class: this.cmer(classList)\n });\n\n let innerHtml = [];\n\n if ( this.iconPosition === 'before' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n innerHtml.push(this.ctor('renderInput')());\n\n if ( this.iconPosition === 'after' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n return h('div', props, innerHtml);\n }\n\n}\n","import { Arr, Obj, Num, Now, Any, Dom, Locale } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NInputNumber',\n\n inheritAttrs: false,\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n \n },\n\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n min: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return Number.MAX_VALUE;\n },\n type: [Number]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n stepSize: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n precision: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n format: {\n default()\n {\n return ':count';\n },\n type: [String]\n },\n\n decimals: {\n default()\n {\n return Locale.trans('.');\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = this.getValue(value);\n }\n }\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.getValue(),\n }\n },\n\n methods: {\n\n clear()\n {\n this.$emit('update:modelValue', this.tempValue = this.clearValue);\n },\n\n getValue(value = null)\n {\n if ( Any.isNull(value) ) {\n value = this.modelValue;\n }\n\n if ( Any.isEmpty(value) ) {\n return this.min;\n }\n\n return Num.float(value);\n },\n\n getDisplayValue()\n {\n\n if ( Any.isEmpty(this.modelValue) ) {\n return null;\n }\n\n let value = Num.format(this.tempValue,\n this.decimals, ' ', this.precision);\n\n return Locale.trans(this.format, { count: value });\n },\n\n nextStep()\n {\n if ( isNaN(this.tempValue) ) {\n this.tempValue = 0;\n }\n\n let value = this.tempValue + this.stepSize;\n\n if ( this.max < value ) {\n return;\n }\n\n value = Num.float(value).toFixed(this.precision);\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n },\n\n onNextDown()\n {\n this.nextStep();\n\n this.nextTimeout = setTimeout(() => {\n this.nextInterval = setInterval(this.nextStep, 100);\n }, 400);\n\n Dom.find(document).on('mouseup', this.onNextUp,\n this._.uid);\n },\n\n onNextUp()\n {\n clearTimeout(this.nextTimeout);\n clearInterval(this.nextInterval);\n\n Dom.find(document).off('mouseup', null,\n this._.uid);\n },\n\n prevStep()\n {\n if ( isNaN(this.tempValue) ) {\n this.tempValue = 0;\n }\n\n let value = this.tempValue - this.stepSize;\n\n if ( this.min > value ) {\n return;\n }\n\n value = Num.float(value).toFixed(this.precision);\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n },\n\n onPrevDown()\n {\n this.prevStep();\n\n this.prevTimeout = setTimeout(() => {\n this.prevInterval = setInterval(this.prevStep, 100);\n }, 400);\n\n Dom.find(document).on('mouseup', this.onPrevUp,\n this._.uid);\n },\n\n onPrevUp()\n {\n clearTimeout(this.prevTimeout);\n clearInterval(this.prevInterval);\n\n Dom.find(document).off('mouseup', null,\n this._.uid);\n },\n\n onKeydown(event)\n {\n if ( event.which === 13 ) {\n this.onInput(event);\n }\n },\n\n onFocus(event)\n {\n this.focus = true;\n },\n\n onBlur(event)\n {\n this.onInput(event);\n\n this.focus = false;\n },\n\n onInput(event)\n {\n let value = event.target.value;\n\n if ( value.match(/^[0-9]+((.|,)[0-9]+)?$/) ) {\n value = this.format.replace(':count', value);\n }\n\n let format = this.format.replace(':count',\n `([0-9\\\\,\\\\.\\\\-\\\\s]+)`);\n\n let regex = new RegExp(`^${format}$`);\n\n let match = value.match(regex);\n\n if ( !match ) {\n return event.target.value = this.getDisplayValue();\n }\n\n value = match[1].replace(',', '.')\n .replace(/\\s/, '');\n\n value = Num.float(value).toFixed(this.precision);\n\n if ( value < this.min ) {\n value = this.min;\n }\n\n if ( value > this.max ) {\n value = this.max;\n }\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n\n event.target.value = this.getDisplayValue();\n }\n\n },\n\n renderPrev()\n {\n let disabled = this.deepDisabled ||\n this.tempValue <= this.min;\n\n let props = {\n type: 'input-number',\n size: this.size,\n icon: 'fa fa-minus',\n square: true,\n disabled: disabled,\n onMousedown: this.onPrevDown,\n };\n\n return (<NButton {...props} />);\n },\n\n renderNext()\n {\n let disabled = this.deepDisabled ||\n this.tempValue >= this.max;\n\n let props = {\n type: 'input-number',\n size: this.size,\n icon: 'fa fa-plus',\n square: true,\n disabled: disabled,\n onMousedown: this.onNextDown,\n };\n\n return (<NButton {...props} />);\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs,\n ['class', 'style']);\n\n Obj.assign(props, {\n value: this.getDisplayValue(),\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onKeydown: this.onKeydown,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n });\n\n return h('input', props);\n },\n\n renderClear()\n {\n if ( !this.clearable || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( !this.deepDisabled ) {\n props.onMousedown = this.clear;\n }\n\n return (\n <div class=\"n-input-number__clear\" {...props}>\n <i class={nano.Icons.times}></i>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-input-number',\n 'n-input-number--' + this.type,\n 'n-input-number--' + this.size,\n ];\n\n if ( Any.isEmpty(this.modelValue) ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n {this.ctor('renderPrev')()}\n {this.ctor('renderInput')()}\n {this.ctor('renderClear')()}\n {this.ctor('renderNext')()}\n </div>\n );\n }\n\n}","import { h } from \"vue\";\nimport {Obj, Any, UUID} from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTextarea',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n autoRows: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n maxRows: {\n default()\n {\n return 12;\n },\n type: [Number]\n },\n\n minRows: {\n default()\n {\n return 4;\n },\n type: [Number]\n },\n\n maxLength: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n eventInput(event)\n {\n this.$emit('update:modelValue', \n this.tempValue = event.target.value);\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue || ''\n };\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs, ['class', 'style']);\n\n Obj.assign(props, {\n value: this.tempValue,\n rows: this.minRows,\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.eventInput,\n });\n\n if ( this.maxLength !== 0 ) {\n props.maxLength = this.maxLength;\n }\n\n let currentRows = (this.tempValue.match(/\\n/g) || []).length + 1;\n\n if ( this.autoRows && props.rows < currentRows ) {\n props.rows = currentRows <= this.maxRows ? currentRows : this.maxRows;\n }\n\n return h('textarea', props);\n },\n\n render()\n {\n let classList = [\n 'n-textarea',\n 'n-textarea--' + this.size,\n 'n-textarea--' + this.type,\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.only(this.$attrs, ['style'], {\n class: this.cmer(classList)\n });\n\n return h('div', props, [this.ctor('renderInput')()]);\n }\n\n}\n","import { Str, Arr, Obj, Any, Locale, Dom, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSelect',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n },\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n lazy: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-center';\n },\n type: [String]\n },\n\n multiple: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n collapse: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Please select');\n },\n type: [String]\n },\n\n emptyText: {\n default()\n {\n return 'No items';\n },\n type: [String]\n },\n\n undefinedText: {\n default()\n {\n return 'Undefined item';\n },\n type: [String]\n },\n\n collapseText: {\n default()\n {\n return '+:count item|+:count items';\n },\n type: [String]\n },\n\n allowCreate: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array, Object]\n },\n\n optionsValue: {\n default()\n {\n return '$index';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsDisabled: {\n default()\n {\n return 'null';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n deepDisabled()\n {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n },\n\n empty()\n {\n return Any.isEmpty(this.tempValue);\n },\n\n custom()\n {\n let result = Arr.filter(this.elements, (element) => {\n\n if ( Any.isArray(this.tempValue) ) {\n return Arr.has(this.tempValue, element.value);\n }\n\n return element.value === this.tempValue;\n });\n\n return result.length === 0;\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempClear: this.clearValue,\n focus: false,\n search: '',\n index: - 1,\n elements: [],\n searched: []\n };\n },\n\n\n beforeMount()\n {\n if ( this.lazy ) {\n this.generateOptions();\n }\n\n if ( this.multiple && !Any.isArray(this.tempValue) ) {\n this.tempValue = [];\n }\n\n if ( this.multiple && !Any.isArray(this.clearValue) ) {\n this.tempClear = [];\n }\n\n this.searchOptions();\n },\n\n provide()\n {\n return {\n NSelect: this\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( !this.multiple && Any.isArray(value) ) {\n value = null;\n }\n\n if ( this.multiple && !Any.isArray(value) ) {\n value = [];\n }\n\n this.tempValue = value;\n },\n\n search()\n {\n this.searchOptions();\n },\n\n focus()\n {\n this.$nextTick(this.scrollToClosest);\n },\n\n },\n\n methods: {\n\n clear(event = null)\n {\n if ( event ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.focusInput();\n\n this.$emit('update:modelValue',\n this.tempValue = Arr.clone(this.tempClear));\n },\n\n generateOptions()\n {\n this.elements = Arr.each(this.options, (value, index) => {\n\n let data = {\n $value: value, $index: index\n };\n\n let option = {\n label: Obj.get(data, this.optionsLabel),\n value: Obj.get(data, this.optionsValue)\n };\n\n return Obj.assign(option, {\n tempLabel: option.label, tempValue: option.value\n });\n });\n },\n\n addOption(option)\n {\n Arr.add(this.elements, option,\n { tempValue: option.tempValue });\n },\n\n removeOption(option)\n {\n Arr.remove(this.elements,\n { tempValue: option.tempValue });\n },\n\n resetInput()\n {\n this.index = - 1;\n this.search = '';\n },\n\n focusInput(event = null)\n {\n if ( event ) {\n event.preventDefault();\n }\n\n this.$refs.input.focus();\n },\n\n onFocusInput()\n {\n if ( !this.focus ) {\n this.$refs.popover.open();\n }\n\n clearInterval(this.refresh);\n },\n\n onInputInput(event)\n {\n this.search = event.target.value;\n },\n\n onKeydownInput(event)\n {\n if ( !this.focus ) {\n return this.onFocusInput();\n }\n\n if ( event.which === 13 ) {\n this.createOrToggle();\n }\n\n if ( event.which === 38 ) {\n this.selectPrev();\n }\n\n if ( event.which === 40 ) {\n this.selectNext();\n }\n },\n\n searchOptions()\n {\n this.index = - 1;\n\n if ( Any.isEmpty(this.search) ) {\n return this.searched = this.elements;\n }\n\n let searchRegex = new RegExp(this.search, 'i');\n\n let searched = Arr.filter(this.elements, (option) => {\n return Any.isString(option.label) && option.label.match(searchRegex);\n });\n\n this.searched = searched;\n },\n\n toggleOption(value, event = null)\n {\n if ( Any.isEmpty(value) ) {\n return;\n }\n\n if ( event && event.which !== 1 ) {\n return;\n }\n\n if ( event ) {\n event.preventDefault();\n }\n\n let tempValue = this.tempValue;\n\n if ( this.multiple ) {\n this.focusInput();\n }\n\n if ( !this.multiple ) {\n tempValue = value;\n }\n\n if ( this.multiple ) {\n Arr.toggle(tempValue, value);\n }\n\n this.$refs.popover.close();\n\n let denyUpdate = this.tempValue === tempValue;\n\n if ( this.multiple && !Any.isArray(this.modelValue) ) {\n denyUpdate = false;\n }\n\n if ( !this.multiple && Any.isArray(this.modelValue) ) {\n denyUpdate = false;\n }\n\n if ( denyUpdate ) {\n return;\n }\n\n this.$emit('update:modelValue',\n this.tempValue = tempValue);\n },\n\n getOptionLabel(value)\n {\n let option = Arr.find(this.elements,\n { tempValue: value });\n\n if ( !option && this.allowCreate ) {\n return value;\n }\n\n if ( !option && !this.allowCreate ) {\n return this.trans(this.undefinedText);\n }\n\n return option.tempLabel;\n },\n\n selectPrev()\n {\n let newIndex = this.index - 1;\n\n if ( newIndex < 0 ) {\n newIndex = this.searched.length - 1;\n }\n\n this.index = newIndex;\n\n this.scrollToCurrent();\n },\n\n selectNext()\n {\n let newIndex = this.index + 1;\n\n if ( newIndex > this.searched.length - 1 ) {\n newIndex = 0;\n }\n\n this.index = newIndex;\n\n this.scrollToCurrent();\n },\n\n createOrToggle()\n {\n if ( this.allowCreate && this.search ) {\n return this.createOption();\n }\n\n let selected = Arr.get(this.searched,\n this.index);\n\n if ( this.searched.length === 1 ) {\n selected = Arr.first(this.searched);\n }\n\n if ( !selected || selected.disabled ) {\n return;\n }\n\n this.toggleOption(selected.tempValue);\n },\n\n createOption()\n {\n this.toggleOption(this.search);\n\n this.search = '';\n },\n\n scrollToCurrent()\n {\n if ( !this.focus ) {\n return;\n }\n\n let selected = Arr.get(this.searched,\n this.index);\n\n if ( !selected ) {\n return;\n }\n\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.scrollIntoView(`[data-option=\"${selected._.uid}\"]`);\n }\n\n if ( this.$refs.virtualbar ) {\n this.$refs.virtualbar.scrollToIndex(this.index);\n }\n },\n\n scrollToClosest()\n {\n if ( !this.focus ) {\n return;\n }\n\n let value = this.tempValue;\n\n if ( Any.isArray(this.tempValue) ) {\n value = Arr.first(this.tempValue);\n }\n\n if ( !value ) {\n return;\n }\n\n let index = Arr.findIndex(this.elements, {\n tempValue: value\n });\n\n if ( !index ) {\n return;\n }\n\n if ( this.$refs.virtualbar ) {\n this.$refs.virtualbar.scrollToIndex(index, 250);\n }\n\n let select = `[data-option=\"${Obj.get(this.elements[index], '_.uid', 0)}\"]`;\n\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.scrollIntoView(select, 250);\n }\n }\n\n },\n\n renderLabelClear()\n {\n if ( !this.clearable || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( !this.deepDisabled ) {\n props.onMousedown = this.clear;\n }\n\n return (\n <div class=\"n-select__clear\" {...props}>\n <i class={nano.Icons.times}></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-select__angle\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n },\n\n renderLabelItem(value)\n {\n let classList = [\n 'n-select__item'\n ];\n\n let props = {\n class: nano.Icons.times,\n };\n\n if ( !this.deepDisabled ) {\n props.onMousedown = (event) => this.toggleOption(value, event);\n }\n\n let labelHtml = (\n <span>{this.getOptionLabel(value)}</span>\n );\n\n return (\n <div class={classList}>\n {[labelHtml, <i {...props}></i>]}\n </div>\n );\n },\n\n renderLabelCollapse()\n {\n let first = Arr.first(this.tempValue);\n\n if ( !first ) {\n return null;\n }\n\n let firstHtml = this.ctor('renderLabelItem')(first);\n\n if ( this.tempValue.length === 1 ) {\n return firstHtml;\n }\n\n let count = this.tempValue.length - 1;\n\n let collapseHtml = (\n <div class=\"n-select__item\">\n <span>{this.choice(this.collapseText, count)}</span>\n </div>\n );\n\n return [\n firstHtml, collapseHtml\n ];\n },\n\n renderLabelItems()\n {\n if ( !Any.isArray(this.tempValue) ) {\n return null;\n }\n\n if ( this.collapse ) {\n return this.ctor('renderLabelCollapse')();\n }\n\n return Arr.each(this.tempValue, (value) => {\n return this.ctor('renderLabelItem')(value);\n });\n },\n\n renderMultiple()\n {\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n let props = {\n value: this.search,\n placeholder: this.placeholder,\n disabled: this.deepDisabled,\n onFocus: this.onFocusInput,\n onInput: this.onInputInput,\n onKeydown: this.onKeydownInput\n };\n\n if ( !this.focus ) {\n props.value = null;\n }\n\n if ( !isEmptyValue ) {\n props.placeholder = null;\n }\n\n let inputHtml = (\n <div class=\"n-select__input\">\n <input ref=\"input\" {...props} />\n </div>\n );\n\n return [\n this.ctor('renderLabelClear')(),\n (\n <div class=\"n-select__items\">\n {[this.ctor('renderLabelItems')(), inputHtml]}\n </div>\n ),\n this.ctor('renderLabelAngle')()\n ];\n },\n\n renderSingle()\n {\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n let modelLabel = this.getOptionLabel(\n this.tempValue);\n\n if ( isEmptyValue ) {\n modelLabel = null;\n }\n\n let props = {\n value: this.search,\n placeholder: this.placeholder,\n disabled: this.deepDisabled,\n onFocus: this.onFocusInput,\n onInput: this.onInputInput,\n onKeydown: this.onKeydownInput\n };\n\n if ( !this.search && this.custom ) {\n props.value = this.tempValue;\n }\n\n if ( !this.focus ) {\n props.value = modelLabel;\n }\n\n if ( !isEmptyValue ) {\n props.placeholder = modelLabel;\n }\n\n return [\n this.ctor('renderLabelClear')(),\n (\n <div class=\"n-select__input\">\n <input ref=\"input\" {...props} />\n </div>\n ),\n this.ctor('renderLabelAngle')()\n ];\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-select__display'\n ];\n\n if ( this.multiple ) {\n classList.push('n-multiple');\n }\n\n let displayHtml = this.ctor('renderSingle');\n\n if ( this.multiple ) {\n displayHtml = this.ctor('renderMultiple');\n }\n\n return (\n <div class={classList}>{displayHtml()}</div>\n );\n },\n\n renderItems()\n {\n let emptyHtml = (\n <div class=\"n-select__empty\">\n <NEmptyIcon inline={true}>{this.trans(this.emptyText)}</NEmptyIcon>\n </div>\n );\n\n if ( !this.searched.length ) {\n return emptyHtml;\n }\n\n if ( this.lazy ) {\n return this.ctor('renderLazyItems')();\n }\n\n let options = Obj.each(this.searched, (option, index) => {\n return option.ctor('renderOption')(index);\n });\n\n let props = {\n relative: true, size: this.size\n }\n\n return (\n <NScrollbar ref=\"scrollbar\" class=\"n-select__body\" {...props}>\n {Obj.values(options)}\n </NScrollbar>\n );\n },\n\n renderLazyOption(value, index)\n {\n let classList = [];\n\n let isMultipleActive = this.multiple &&\n Arr.has(this.tempValue, value.value);\n\n if ( isMultipleActive ) {\n classList.push('n-active');\n }\n\n let isSingleActive = ! this.multiple &&\n this.tempValue === value.value;\n\n if ( isSingleActive ) {\n classList.push('n-active');\n }\n\n if ( this.index === Num.int(index) ) {\n classList.push('n-focus');\n }\n\n let props = {\n 'type': this.type,\n 'clickClose': ! this.multiple,\n };\n\n props['onMousedown'] = (e) => {\n this.toggleOption(value.value, e);\n };\n\n if ( isSingleActive || isMultipleActive ) {\n props.icon = nano.Icons.checked;\n }\n\n return (\n <NPopoverOption class={classList} {...props}>\n {value.label}\n </NPopoverOption>\n );\n },\n\n renderLazyItems()\n {\n let props = {\n items: this.searched\n };\n\n props.renderNode = ({ value, index }) => {\n return this.ctor('renderLazyOption')(value, index);\n };\n\n return (\n <NVirtualscroller ref=\"virtualbar\" class=\"n-select__body n-virtual\" {...props} />\n );\n },\n\n renderPopover()\n {\n let classList = [\n 'n-popover--select'\n ];\n\n if ( this.lazy ) {\n classList.push('n-virtual');\n }\n\n let props = {\n class: classList,\n trigger: 'click',\n width: - 1,\n listen: true,\n size: this.size,\n scrollClose: true,\n disabled: this.deepDisabled,\n onClose: this.resetInput\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n {{ raw: this.ctor('renderItems') }}\n </NPopover>\n );\n },\n\n renderOptions()\n {\n if ( this.lazy ) {\n return null;\n }\n\n if ( Any.isEmpty(this.options) ) {\n return this.$slots.default && this.$slots.default();\n }\n\n let optionRender = ($value, $index) => {\n\n let props = {\n label: Obj.get({ $value, $index }, this.optionsLabel, null),\n value: Obj.get({ $value, $index }, this.optionsValue, null),\n };\n\n return (<NSelectOption {...props}></NSelectOption>);\n };\n\n return Obj.values(Obj.each(this.options, optionRender));\n },\n\n render()\n {\n let classList = [\n 'n-select',\n 'n-select--' + this.type,\n 'n-select--' + this.size,\n ];\n\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n if ( isEmptyValue ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList} onClick={this.focusInput}>\n {this.ctor('renderDisplay')()}\n {this.ctor('renderPopover')()}\n {this.ctor('renderOptions')()}\n </div>\n );\n }\n\n}\n","import { Num, Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSelectOption',\n\n inheritAttrs: false,\n\n inject: {\n\n NSelect: {\n default: undefined\n }\n\n },\n\n props: {\n\n value: {\n default()\n {\n return '';\n }\n },\n\n label: {\n default()\n {\n return null;\n }\n },\n\n valueProp: {\n default()\n {\n return null;\n }\n },\n\n labelProp: {\n default()\n {\n return null;\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n tempValue()\n {\n if ( Any.isEmpty(this.valueProp) ) {\n return this.value;\n }\n\n return Obj.get(this.value, this.valueProp);\n },\n\n tempLabel()\n {\n if ( Any.isEmpty(this.labelProp) ) {\n return this.label;\n }\n\n return Obj.get(this.value, this.labelProp);\n }\n\n },\n\n mounted()\n {\n if ( ! this.NSelect.lazy ) {\n this.NSelect.addOption(this);\n }\n },\n\n beforeUnmount()\n {\n if ( ! this.NSelect.lazy ) {\n this.NSelect.removeOption(this);\n }\n },\n\n methods: {\n\n toggleItem(event) \n {\n event.preventDefault();\n\n if ( event.which !== 1 ) {\n return;\n }\n\n if ( this.disabled ) {\n return;\n }\n\n this.NSelect.toggleOption(this.tempValue, \n event);\n },\n\n },\n\n renderOption(index)\n {\n\n let classList = [];\n\n let isMultipleActive = this.NSelect.multiple && \n Arr.has(this.NSelect.tempValue, this.tempValue);\n\n if ( isMultipleActive ) {\n classList.push('n-active');\n }\n\n let isSingleActive = ! this.NSelect.multiple && \n this.NSelect.tempValue === this.tempValue;\n\n if ( isSingleActive ) {\n classList.push('n-active');\n }\n\n if ( this.NSelect.index === Num.int(index) ) {\n classList.push('n-focus');\n }\n\n let props = {\n 'disabled': this.disabled,\n 'onMousedown': this.toggleItem,\n 'type': this.NSelect.type,\n 'clickClose': ! this.NSelect.multiple,\n };\n\n if ( isSingleActive || isMultipleActive ) {\n props.icon = nano.Icons.checked;\n }\n\n // Required for scrolldown\n props['data-option'] = this._.uid;\n\n return (\n <NPopoverOption class={classList} {...props}>\n { this.$slots.default && this.$slots.default() || this.tempLabel }\n </NPopoverOption>\n );\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Arr, Obj, Any, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCheckbox',\n\n inject: {\n\n NCheckboxGroup: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n value: {\n default()\n {\n return null;\n }\n },\n\n allowUncheck: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n intermediate: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n global: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n tempComputed()\n {\n return ! this.global ? this.tempChecked :\n this.NCheckboxGroup.globalChecked;\n },\n\n tempIntermediate()\n {\n return ! this.global ? this.intermediate :\n this.NCheckboxGroup.globalIntermediate;\n },\n\n tempDisabled()\n {\n return ! this.global ? this.disabled :\n this.NCheckboxGroup.globalDisabled;\n }\n\n },\n\n data()\n {\n return {\n uid: UUID(), tempChecked: this.modelValue\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempChecked ) {\n this.tempChecked = value;\n }\n }\n\n },\n\n beforeMount()\n {\n if ( this.NCheckboxGroup ) {\n this.tempChecked = this.NCheckboxGroup.isChecked(this.value);\n }\n },\n\n mounted()\n {\n if ( ! this.NCheckboxGroup || this.global ) {\n return;\n }\n\n this.$watch('NCheckboxGroup.tempValue', () => {\n this.tempChecked = this.NCheckboxGroup.isChecked(this.value);\n });\n\n this.NCheckboxGroup.addCheckbox(this);\n },\n\n beforeUnmount()\n {\n if ( this.NCheckboxGroup && ! this.global ) {\n this.NCheckboxGroup.removeCheckbox(this);\n }\n },\n\n methods: {\n\n toggle()\n {\n this.$emit('update:modelValue', this.tempChecked = ! this.tempChecked);\n },\n\n check()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.checkCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n uncheck()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.uncheckCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = false);\n },\n\n eventShiftClick()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.shiftCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n eventLocalClick(event)\n {\n let canClick = ! this.tempDisabled || (this.allowUncheck &&\n this.tempChecked);\n\n if ( ! canClick ) {\n return;\n }\n\n event.preventDefault();\n\n if ( event.shiftKey ) {\n return this.eventShiftClick();\n }\n \n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.toggleCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = ! this.tempChecked);\n },\n\n eventGlobalClick()\n {\n let canClick = ! this.tempDisabled || (this.allowUncheck &&\n this.tempChecked);\n\n if ( ! canClick ) {\n return;\n }\n\n this.NCheckboxGroup.toggleAll();\n },\n\n updateFromGroup()\n {\n let checked = this.NCheckboxGroup.isChecked(this.value);\n\n if ( this.tempChecked === checked ) {\n return;\n }\n \n this.$emit('update:modelValue', this.tempChecked = checked);\n }\n\n },\n\n renderCheckbox()\n {\n let interHtml = this.$slots.intermediate &&\n this.$slots.intermediate();\n\n if ( ! interHtml ) {\n interHtml = (<i class={nano.Icons.intermediate}></i>);\n }\n\n let checkHtml = this.$slots.checked &&\n this.$slots.checked();\n\n if ( ! checkHtml ) {\n checkHtml = (<i class={nano.Icons.checked}></i>);\n }\n\n return (\n <div class=\"n-checkbox__checkbox\">\n { this.tempIntermediate ? interHtml : checkHtml }\n </div>\n );\n },\n\n renderLabel()\n {\n if ( ! this.cslo('default') && ! this.cslo('label') ) {\n return null;\n }\n\n return (\n <div class=\"n-checkbox__label\">\n { this.$slots.default() || this.$slots.label() }\n </div>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NCheckboxGroup ) {\n size = this.NCheckboxGroup.size;\n }\n\n let classList = [\n 'n-checkbox',\n 'n-checkbox--' + size,\n 'n-checkbox--' + this.type,\n ];\n\n if ( this.allowUncheck ) {\n classList.push('n-uncheck');\n }\n\n if ( this.tempComputed ) {\n classList.push('n-checked');\n }\n\n if ( this.tempIntermediate ) {\n classList.push('n-intermediate');\n }\n\n if ( this.tempDisabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.tempComputed && this.allowUncheck ) {\n Arr.remove(classList, 'n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( this.global ) {\n props.onMousedown = this.eventGlobalClick;\n }\n\n if ( ! this.global ) {\n props.onMousedown = this.eventLocalClick;\n }\n\n return (\n <div class={classList} {...props}>\n { [this.ctor('renderCheckbox')(), this.ctor('renderLabel')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCheckboxGroup',\n\n provide()\n {\n return {\n NCheckboxGroup: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'horizontal';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n globalChecked()\n {\n let checked = Arr.filter(this.elements, (checkbox) => {\n return checkbox.tempChecked;\n });\n\n return checked.length === this.elements.length &&\n this.elements.length !== 0;\n },\n\n globalIntermediate()\n {\n let checked = this.elements.filter((checkbox) => {\n return checkbox.tempChecked;\n });\n\n return checked.length !== this.elements.length &&\n checked.length !== 0 ;\n },\n\n globalDisabled()\n {\n return this.elements.length === 0;\n },\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n index: -1,\n elements: []\n }\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.tempValue = this.modelValue ) {\n this.tempValue = this.modelValue;\n }\n \n },\n\n },\n\n methods: {\n\n addCheckbox(checkbox)\n {\n this.index = -1;\n\n Arr.add(this.elements, checkbox, {\n uid: checkbox.uid\n });\n\n this.elements = Arr.sort(this.elements, 'sort');\n },\n\n removeCheckbox(checkbox)\n {\n this.index = -1;\n \n Arr.remove(this.elements, {\n uid: checkbox.uid\n });\n },\n\n toggleCheckbox(checkbox, emit = true)\n {\n let index = Arr.findIndex(this.elements, {\n uid: checkbox.uid\n });\n\n if ( ! checkbox.tempChecked ) {\n this.index = index;\n }\n\n Arr.toggle(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n checkCheckbox(checkbox, emit = true)\n {\n Arr.add(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n uncheckCheckbox(checkbox, emit = true)\n {\n Arr.remove(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n shiftCheckbox(checkbox)\n {\n if ( this.index === -1 ) {\n return this.toggleCheckbox(checkbox, false);\n }\n\n let index = Arr.findIndex(this.elements, {\n uid: checkbox.uid\n });\n\n let checkboxes = this.elements.slice(this.index, index + 1);\n\n if ( index < this.index ) {\n checkboxes = this.elements.slice(index, this.index + 1);\n }\n\n this.index = -1;\n\n Arr.each(checkboxes, (checkbox) => {\n this.checkCheckbox(checkbox, false);\n });\n\n Arr.each(checkboxes, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n toggleAll()\n {\n this.globalChecked ? this.uncheckAll() : this.checkAll();\n },\n\n checkAll()\n {\n Arr.each(this.elements, (checkbox) => {\n this.checkCheckbox(checkbox, false);\n });\n\n Arr.each(this.elements, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n uncheckAll()\n {\n Arr.each(this.elements, (checkbox) => {\n this.uncheckCheckbox(checkbox, false);\n });\n\n Arr.each(this.elements, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n isChecked(value)\n {\n return Arr.has(this.tempValue, value);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-checkbox-group',\n 'n-checkbox-group--' + this.size,\n 'n-checkbox-group--' + this.align,\n ];\n\n return (\n <div class={classList}>\n {this.$slots.default()}\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRadio',\n\n model: {\n prop: 'checked'\n },\n\n inject: {\n\n NRadioGroup: {\n default: undefined\n }\n\n },\n\n props: {\n\n value: {\n default()\n {\n return null;\n }\n },\n\n checked: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n uid()\n {\n return this._.uid;\n }\n\n },\n\n data()\n {\n return {\n tempChecked: this.checked\n };\n },\n\n watch: {\n\n checked()\n {\n if ( this.checked !== this.tempChecked ) {\n this.tempChecked = this.checked;\n }\n }\n\n },\n\n beforeMount()\n {\n if ( this.NRadioGroup ) {\n this.tempChecked = this.NRadioGroup.isChecked(this.value);\n }\n },\n\n mounted()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.addRadio(this);\n }\n },\n\n beforeUnmount()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.removeRadio(this);\n }\n },\n\n methods: {\n\n check()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.checkRadio(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n updateFromGroup()\n {\n let checked = this.NRadioGroup.isChecked(this.value);\n\n if ( this.tempChecked === checked ) {\n return;\n }\n \n this.$emit('update:modelValue', this.tempChecked = checked);\n }\n\n },\n\n renderRadio()\n {\n return (\n <div class=\"n-radio__radio\">\n <span></span>\n </div>\n );\n },\n\n renderLabel()\n {\n if ( ! this.$slots.default && ! this.$slots.label ) {\n return null;\n }\n\n return (\n <div class=\"n-radio__label\">\n { this.$slots.default() || this.$slots.label() }\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-radio',\n 'n-radio--' + this.size,\n 'n-radio--' + this.type,\n ];\n\n if ( this.tempChecked ) {\n classList.push('n-checked');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( ! this.disabled ) {\n props.onMousedown = this.check;\n }\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderRadio')() }\n { this.ctor('renderLabel')() }\n </div>\n );\n }\n\n}\n","import { Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRadioGroup',\n\n provide()\n {\n return {\n NRadioGroup: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'horizontal';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n elements: []\n }\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n },\n\n },\n\n methods: {\n\n addRadio(radio)\n {\n Arr.add(this.elements, radio, {\n uid: radio.uid\n });\n },\n\n removeRadio(radio)\n {\n Arr.remove(this.elements, {\n uid: radio.uid\n });\n },\n\n checkRadio(radio)\n {\n this.tempValue = radio.value;\n \n Arr.each(this.elements, (radio) => {\n radio.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n isChecked(value)\n {\n return this.tempValue === value;\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-radio-group',\n 'n-radio-group--' + this.size,\n 'n-radio-group--' + this.align,\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { Obj, Arr, Any, Num, Dom, Event } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSlider',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n steps: {\n default()\n {\n return 1;\n }\n },\n\n labels: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n min: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return 100;\n },\n type: [Number]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n index: 0, width: null, tempValue: [null, null]\n };\n },\n\n computed: {\n\n selector()\n {\n return `[data-index=\"${this.index}\"]`;\n },\n\n fixmin()\n {\n return Any.isArray(this.steps) ? Arr.first(this.steps) : this.min;\n },\n\n fixmax()\n {\n return Any.isArray(this.steps) ? Arr.last(this.steps) : this.max;\n },\n\n minmax()\n {\n return this.fixmax - this.fixmin;\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n },\n\n watch: {\n\n modelValue()\n {\n this.getPseudoValue();\n }\n\n },\n\n mounted()\n {\n Dom.find(window).on('resize',\n Any.debounce(this.onResize, 500), this._.uid);\n\n this.onResize();\n this.getPseudoValue();\n },\n\n unmounted()\n {\n Dom.find(window).off('resize',\n null, this._.uid);\n },\n\n methods: {\n\n onResize()\n {\n this.width = Dom.find(this.$el).width();\n },\n\n getPseudoValue()\n {\n let value = this.modelValue;\n\n if ( Any.isNull(value) ) {\n value = this.fixmax;\n }\n if ( ! Any.isArray(value) ) {\n value = [this.fixmin, value];\n }\n\n return this.tempValue = value;\n },\n\n setModelValue()\n {\n let value = this.tempValue;\n\n if ( ! this.range ) {\n value = this.tempValue[1];\n }\n\n this.$emit('update:modelValue', value);\n },\n\n getValPos(value)\n {\n return Num.fixed(this.width / this.minmax * (value - this.fixmin), 2) + 'px';\n },\n\n getValStyle(value)\n {\n return 'transform: translateX(' + this.getValPos(value) + ');';\n },\n\n getBarPos()\n {\n return Num.fixed(this.width / this.minmax * (this.tempValue[0] - this.fixmin), 2) + 'px';\n },\n\n getBarWidth()\n {\n return Num.fixed(this.width / this.minmax * (this.tempValue[1] - this.tempValue[0]), 2) + 'px';\n },\n\n getBarStyle()\n {\n return 'max-width: ' + this.getBarWidth() + '; ' +\n 'transform: translateX(' + this.getBarPos() + ');';\n },\n\n getClosestValue(width)\n {\n if ( Any.isNumber(this.steps) ) {\n return Num.round(width / this.steps) * this.steps;\n }\n\n let range = Arr.last(this.steps) -\n Arr.first(this.steps);\n\n let diff = Arr.each(this.steps, (step) => {\n return Math.abs((range / 100 * width) - step + this.fixmin);\n });\n\n let index = Arr.findIndex(diff, Math.min(...diff));\n\n return this.steps[index];\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onMousedown(event)\n {\n if ( this.disabled ) {\n return;\n }\n\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(this.$el).find(this.selector).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onMousemove, 60), this._.uid);\n },\n\n onMousemove(event)\n {\n this.clientX = this.getTouchEvent(event).clientX;\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let relativeWidth = (this.clientX - offsetX) / this.width * 100;\n\n let closestValue = this.getClosestValue(relativeWidth);\n\n if ( closestValue < this.fixmin ) {\n closestValue = this.fixmin;\n }\n\n if ( closestValue > this.fixmax ) {\n closestValue = this.fixmax;\n }\n\n let stepMin = this.tempValue[0] + this.steps;\n\n if ( this.index === 1 && closestValue < stepMin ) {\n closestValue = stepMin;\n }\n\n let stepMax = this.tempValue[1] - this.steps;\n\n if ( this.index === 0 && closestValue > stepMax ) {\n closestValue = stepMax;\n }\n\n this.tempValue[this.index] = closestValue;\n },\n\n onMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mouseup, null, this._.uid);\n Dom.find(document).off(this.mousemove, null, this._.uid);\n\n Dom.find(this.$el).find(this.selector).removeClass('n-move');\n Dom.find(document.body).removeClass('n-move');\n\n this.setModelValue();\n },\n\n },\n\n renderHandle(value, index)\n {\n let handleProps = {\n 'data-value': value,\n 'data-index': index,\n style: this.getValStyle(value)\n };\n\n handleProps['onMousedown'] = (event) => {\n this.onMousedown(event, this.index = index);\n };\n\n let key = Arr.findIndex(this.steps, value);\n\n return (\n <div class=\"n-slider__handle\" {...handleProps}>\n <span>{ Obj.get(this.labels, key, value) }</span>\n </div>\n );\n },\n\n renderHandles()\n {\n let values = Arr.clone(this.tempValue);\n\n if ( ! this.range ) {\n delete values[0];\n }\n\n return Arr.each(values, (value, index) => {\n return this.ctor('renderHandle')(value, index);\n });\n },\n\n renderBar()\n {\n let barProps = {\n style: this.getBarStyle()\n };\n\n return (\n <div class=\"n-slider__bar\">\n <div class=\"n-slider__range\" {...barProps}></div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-slider',\n 'n-slider--' + this.type,\n 'n-slider--' + this.size\n ];\n\n if ( this.range ) {\n classList.push('n-range');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderBar')() }\n { this.ctor('renderHandles')() }\n </div>\n );\n }\n\n}\n","import { Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSwitch',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n }\n },\n\n onValue: {\n default()\n {\n return true;\n }\n },\n\n offValue: {\n default()\n {\n return false;\n }\n },\n\n onType: {\n default()\n {\n return 'primary';\n }\n },\n\n offType: {\n default()\n {\n return 'default';\n }\n },\n\n size: {\n default()\n {\n return 'md';\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n eventClick()\n {\n let tempValue = this.onValue;\n\n if ( this.tempValue === this.onValue ) {\n tempValue = this.offValue;\n }\n\n this.$emit('update:modelValue', this.tempValue = tempValue);\n }\n\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n }\n\n },\n\n renderSwitch()\n {\n let classList = [\n 'n-switch__switch'\n ];\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.eventClick;\n }\n\n return (\n <div class={classList} {...props}>\n <span></span>\n </div>\n )\n },\n\n renderLabel()\n {\n if ( ! this.$slots.default ) {\n return null;\n }\n\n let classList = [\n 'n-switch__label',\n ];\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.eventClick;\n }\n\n return (\n <div class={classList} {...props}>\n { this.$slots.default() }\n </div>\n )\n },\n\n render()\n {\n let classList = [\n 'n-switch',\n 'n-switch--' + this.size\n ];\n\n if ( this.tempValue === this.onValue ) {\n classList.push('n-switch--' + this.onType);\n }\n\n if ( this.tempValue === this.offValue) {\n classList.push('n-switch--' + this.offType);\n }\n\n if ( this.tempValue === this.onValue ) {\n classList.push('n-on');\n }\n\n if ( this.tempValue === this.offValue ) {\n classList.push('n-off');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderSwitch')() }\n { this.ctor('renderLabel')() }\n </div>\n );\n }\n\n}\n","import { Obj, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NConfirm',\n\n props: {\n\n visible: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n width: {\n default()\n {\n return 'auto';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'center-center';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n confirmText: {\n default()\n {\n return Locale.trans('Confirm');\n },\n type: [String]\n },\n\n abortText: {\n default()\n {\n return Locale.trans('Abort');\n },\n type: [String]\n },\n\n buttonSize: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n },\n\n watch: {\n\n visible()\n {\n if ( this.visible !== this.tempVisible ) {\n this.tempVisible = this.visible;\n }\n }\n\n },\n\n data()\n {\n return {\n tempVisible: this.visible\n };\n },\n\n methods: {\n\n abort(event)\n {\n this.$refs.modal.closeModal(true, 'self');\n this.$emit('abort');\n },\n\n confirm(event)\n {\n this.$refs.modal.closeModal(true, 'self');\n this.$emit('confirm');\n },\n\n eventInput(value, source)\n {\n if ( ! value && source !== 'self' ) {\n this.$emit('abort');\n }\n\n this.$emit('update:visible', this.tempVisible = value);\n }\n\n },\n\n renderIcon()\n {\n return (\n <div class=\"n-confirm__icon\">\n <span class={nano.Icons[this.type]}></span>\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-confirm__body\">\n { this.$slots.default && this.$slots.default() || this.trans('Are you sure?') }\n </div>\n );\n },\n\n renderAction()\n {\n let classList = [\n 'n-confirm__action'\n ];\n\n if ( window.WIN ) {\n classList.push('n-reverse');\n }\n\n return (\n <div class={classList}>\n <NButton size={this.buttonSize} type={this.type} link={true} onClick={this.abort}>\n { this.abortText }\n </NButton>\n <NButton size={this.buttonSize} type={this.type} link={false} onClick={this.confirm}>\n { this.confirmText }\n </NButton>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-confirm',\n 'n-confirm--' + this.type,\n 'n-confirm--' + this.size\n ];\n\n let props = {\n type: 'default',\n selector: this.selector,\n listen: this.listen,\n update: this.update,\n width: this.width,\n position: this.position,\n closable: this.closable,\n modelValue: this.tempVisible,\n };\n\n // Override input listener\n props['onUpdate:modelValue'] = this.eventInput;\n\n let innerHtml = {\n raw: () => (\n <div class={classList}>\n { this.ctor('renderIcon')() }\n { this.ctor('renderBody')() }\n { this.ctor('renderAction')() }\n </div>\n )\n };\n\n return (\n <NModal ref=\"modal\" {...props}>\n { innerHtml }\n </NModal>\n );\n }\n\n}\n","import { Arr, Obj, Any, Str } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCascaderPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n clearValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n hover: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n valueProp: {\n default()\n {\n return 'value';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n disabledProp: {\n default()\n {\n return 'disabled';\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window || \n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempHover: this.hover,\n };\n },\n\n watch: {\n\n modelValue(value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n hover(value) {\n if ( value !== this.tempHover ) {\n this.tempHover = value;\n }\n }\n\n },\n\n methods: {\n\n clearCascader()\n {\n this.$emit('update:modelValue', this.tempHover = \n this.tempValue = this.clearValue);\n },\n\n onHover(cascade)\n {\n return (event) => this.hoverItem(cascade, event)\n },\n\n onSelect(cascade)\n {\n return (event) => this.selectItem(cascade, event)\n },\n\n hoverItem(cascade, event = null)\n {\n // Hover intend emulation\n clearTimeout(this.delay);\n\n let updateHover = () => {\n this.$emit('update:hover', \n this.tempHover = cascade);\n };\n\n this.delay = setTimeout(updateHover, 130);\n },\n\n selectItem(cascade, event = null)\n {\n clearTimeout(this.clickTimer);\n\n if ( ! this.lastclick ) {\n this.lastclick = 0;\n }\n\n this.lastclick++;\n\n let trigger = this.touch ? 'click' : \n this.trigger ;\n \n this.clickTimer = setTimeout(() => \n this.lastclick = 0, 240);\n\n this.hoverTimer = setTimeout(() => \n this.hoverItem(cascade), 240);\n\n if ( this.lastclick === 1 && trigger === 'click' ) {\n return this.hoverItem(cascade, event);\n }\n\n if ( event ) {\n event.preventDefault();\n }\n\n this.clickTimer = setTimeout(() => \n this.fireSelectItem(cascade), 50);\n },\n\n fireSelectItem(cascade)\n {\n clearTimeout(this.hoverTimer);\n\n this.lastclick = 0;\n\n this.$emit('update:modelValue', \n this.tempValue = cascade);\n }\n\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-cascader-panel',\n 'n-cascader-panel--' + this.size\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderLabel')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n )\n },\n\n renderOption(item, cascade = [])\n {\n let value = Obj.get(item, this.valueProp);\n\n let classList = [\n 'n-popover-option'\n ];\n\n if ( Arr.has(this.tempValue, item[this.valueProp]) ) {\n classList.push('n-active');\n }\n\n let disabled = Obj.get(item, this.disabledProp, false);\n\n if ( disabled ) {\n classList.push('n-disabled');\n }\n\n let props = {\n size: this.size,\n type: this.type,\n clickClose: false\n };\n\n if ( Arr.last(this.tempValue) === value ) {\n props.icon = nano.Icons.checked;\n }\n\n let tempCascade = Arr.merge(Arr.clone(cascade), [value]);\n\n if ( this.trigger === 'hover' ) {\n props.onMousemove = Any.framerate(this.onHover(tempCascade), 30);\n }\n\n if ( ! disabled ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onSelect(tempCascade);\n }\n\n let children = Obj.get(item, this.childProp);\n\n if ( ! props.icon && ! Any.isEmpty(children) ) {\n props.icon = nano.Icons.angleRight;\n }\n\n return (\n <NPopoverOption class={classList} {...props}>\n { Obj.get(item, this.labelProp) }\n </NPopoverOption>\n );\n },\n\n renderOptions(items, cascade = [])\n {\n if ( Any.isEmpty(items) ) {\n return null;\n }\n\n return (\n <div class=\"n-cascader-panel__items\">\n <NScrollbar relative={true}>\n {\n Arr.each(items, (item) => {\n return this.ctor('renderOption')(item, cascade);\n })\n }\n </NScrollbar>\n </div>\n )\n },\n\n renderCascade()\n {\n let renderList = [\n this.ctor('renderOptions')(this.options)\n ];\n\n let items = this.options, cascade = [];\n\n Arr.each(this.tempHover, (value) => {\n\n if ( ! items ) {\n return;\n }\n\n cascade.push(value);\n\n let item = Arr.find(items, {\n [this.valueProp]: value\n });\n\n items = Obj.get(item, this.childProp);\n\n let options = this.ctor('renderOptions')\n (items, cascade);\n\n renderList.push(options);\n });\n\n return renderList;\n },\n\n render()\n {\n let classList = [\n 'n-cascader-panel',\n 'n-cascader-panel--' + this.size\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>{ this.ctor('renderCascade')() }</div>\n );\n }\n\n}","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCascader',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n clearValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Please select';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n valueProp: {\n default()\n {\n return 'value';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n disabledProp: {\n default()\n {\n return 'disabled';\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempHover: this.modelValue,\n focus: false,\n };\n },\n\n methods: {\n\n clearCascader()\n {\n this.focus = true;\n\n this.$emit('update:modelValue', \n this.tempValue = this.tempHover = this.clearValue);\n },\n\n onCascaderInput(value)\n {\n this.focus = false;\n\n this.$emit('update:modelValue', \n this.tempValue = value);\n },\n\n onCascaderHover(value)\n {\n this.$emit('update:hover', \n this.tempHover = value);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n },\n\n watch: {\n\n modelValue(value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearCascader;\n }\n\n return (\n <div class=\"n-cascader__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-cascader__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderLabelItems()\n {\n let items = this.options, renderList = [];\n\n if ( Any.isEmpty(this.tempValue) ) {\n return (\n <div class=\"n-cascader__placeholder\">\n { this.trans(this.placeholder) }\n </div>\n );\n }\n\n Arr.each(this.tempValue, (value) => {\n\n if ( ! items ) {\n return;\n }\n\n let item = Arr.find(items, {\n [this.valueProp]: value\n });\n\n items = Obj.get(item, this.childProp);\n\n let itemLabel = (\n <div class=\"n-cascader__item\">\n <span>{ Obj.get(item, this.labelProp) }</span>\n </div>\n );\n\n renderList.push(itemLabel);\n });\n\n return (\n <div class=\"n-cascader__items\">\n { renderList }\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-cascader__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderLabelItems')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n let props = Obj.except(this.$props, ['modelValue'], {\n hover: this.tempHover,\n modelValue: this.tempValue,\n });\n\n props['onUpdate:hover'] = this.onCascaderHover;\n props['onUpdate:modelValue'] = this.onCascaderInput;\n\n return (\n <NCascaderPanel class=\"n-cascader__body\" {...props}></NCascaderPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled,\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderItems') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-cascader',\n 'n-cascader--' + this.type,\n 'n-cascader--' + this.size,\n ];\n\n if ( Any.isEmpty(this.tempValue) ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Arr, Str, Now, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatepickerPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n arrive: {\n default()\n {\n return null;\n }\n },\n\n clearArrive: {\n default()\n {\n return null;\n }\n },\n\n depart: {\n default()\n {\n return null;\n }\n },\n\n clearDepart: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su',\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', \n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',\n ]\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n yearsGrid()\n {\n return this.tempCache.getYears();\n },\n\n monthsGrid()\n {\n return this.tempCache.getMonths();\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n arrive(value)\n {\n if ( value !== this.tempArrive.format(this.format) ) {\n this.tempArrive = Now.make(value);\n }\n },\n\n depart(value)\n {\n if ( value !== this.tempDepart.format(this.format) ) {\n this.tempDepart = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n tempView: 'date',\n tempRanger: null,\n cacheArrive: null,\n cacheDepart: null,\n tempValue: Now.make(this.modelValue, this.format),\n tempCache: Now.make(this.modelValue, this.format),\n tempArrive: Now.make(this.arrive),\n tempDepart: Now.make(this.depart),\n }\n },\n\n methods: {\n\n gotoDate()\n {\n this.tempView = 'date';\n },\n\n gotoMonth()\n {\n this.tempView = 'month';\n },\n\n gotoYear()\n {\n this.tempView = 'year';\n },\n\n patchDate(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n if ( Any.isEmpty(this.modelValue) ) {\n now.resetTime();\n } else {\n now.applyTime(this.tempValue);\n }\n\n // Copy now to cache\n this.tempCache = now.clone();\n\n // Copy now to value\n this.tempValue = now.clone();\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n patchMonth(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n this.tempCache = now.clone();\n\n this.gotoDate();\n },\n\n printRange(now)\n {\n this.tempRanger = now.clone();\n },\n\n patchYear(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n this.tempCache = now.clone();\n\n this.gotoMonth();\n },\n\n patchRange(now)\n {\n if ( this.cacheArrive && ! this.cacheDepart ) {\n this.cacheDepart = now.clone();\n }\n\n if ( ! this.cacheArrive && ! this.cacheDepart ) {\n this.cacheArrive = now.clone();\n }\n\n if ( ! this.cacheArrive || ! this.cacheDepart ) {\n return;\n }\n\n this.tempArrive = this.cacheArrive.clone();\n this.tempDepart = this.cacheDepart.clone();\n\n this.$emit('update:arrive', \n this.tempArrive.format(this.format));\n\n this.$emit('update:depart', \n this.tempDepart.format(this.format));\n\n this.cacheArrive = null;\n this.cacheDepart = null;\n\n this.$emit('rangeSelected', [\n this.tempArrive.format(this.format),\n this.tempDepart.format(this.format)\n ]);\n },\n\n },\n\n renderToolbarPrev(closure)\n {\n let props = {\n type: this.type,\n link: true,\n icon: nano.Icons.angleLeft,\n onClick: closure\n };\n\n return (<NButton {...props}></NButton>);\n },\n\n renderToolbarNext(closure)\n {\n let props = {\n type: this.type,\n link: true,\n icon: nano.Icons.angleRight,\n onClick: closure\n };\n\n return (<NButton {...props}></NButton>);\n },\n\n renderToolbarMonth()\n {\n let props = {\n onClick: this.gotoMonth\n };\n\n let monthsHtml = [\n this.months[this.tempCache.month()]\n ];\n\n let month = this.tempCache.clone()\n .addMonths(this.monthPanels - 1);\n\n if ( month.month() !== this.tempCache.month() ) {\n monthsHtml.push(this.months[month.month()]);\n }\n\n return (\n <span class=\"n-datepicker-panel__month\" {...props}>\n { monthsHtml.join(' - ') }\n </span>\n );\n },\n\n renderToolbarYear()\n {\n let props = {\n onClick: this.gotoYear\n };\n\n let yearsHtml = [\n this.tempCache.year()\n ];\n\n let month = this.tempCache.clone()\n .addMonths(this.monthPanels - 1);\n\n if ( month.year() !== this.tempCache.year() ) {\n yearsHtml.push(month.year());\n }\n\n return (\n <span class=\"n-datepicker-panel__year\" {...props}>\n { yearsHtml.join(' - ') }\n </span>\n );\n },\n\n renderToolbar({ prev, next })\n {\n return (\n <div class=\"n-datepicker-panel__toolbar\">\n <div class=\"n-datepicker-panel__display\">\n { this.ctor('renderToolbarMonth')() }\n { this.ctor('renderToolbarYear')() }\n </div>\n <div class=\"n-datepicker-panel__prev\">\n { this.ctor('renderToolbarPrev')(prev) }\n </div>\n <div class=\"n-datepicker-panel__next\">\n { this.ctor('renderToolbarNext')(next) }\n </div>\n </div>\n );\n },\n\n renderDateItem(now, month)\n {\n let classList = [\n 'n-datepicker-panel__day'\n ];\n\n if ( now.equalDate() ) {\n classList.push('n-today');\n }\n\n let isSelected = this.tempValue.valid() && \n now.equalDate(this.tempValue);\n\n if ( isSelected ) {\n classList.push('n-selected');\n }\n\n if ( now.month() === month.month() ) {\n classList.push('n-current');\n }\n\n let isNotBeforeMin = ! this.minDate || \n now.after(this.minDate) || now.equalDate(this.minDate);\n\n let isNotAfterMax = ! this.maxDate || \n now.before(this.maxDate) || now.equalDate(this.maxDate);\n\n if ( ! isNotBeforeMin || ! isNotAfterMax ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( isNotBeforeMin && isNotAfterMax ) {\n props.onClick = () => this.patchDate(now);\n }\n\n return (\n <div class={classList} {...props}>\n <span>{ now.format('DD') }</span>\n </div>\n );\n },\n\n renderRangeDateItem(now, month)\n {\n let classList = [\n 'n-datepicker-panel__day'\n ];\n\n if ( now.equalDate('now') ) {\n classList.push('n-today');\n }\n\n if ( now.month() === month.month() ) {\n classList.push('n-current');\n }\n\n let viewMode = 0;\n\n if ( !! this.cacheArrive ) {\n viewMode++;\n }\n\n if ( !! this.cacheDepart ) {\n viewMode++;\n }\n\n let isTempValid = this.tempArrive.valid() && \n this.tempDepart.valid();\n\n if ( viewMode === 0 && isTempValid ) {\n\n if ( now.between(this.tempArrive, this.tempDepart) ) {\n classList.push('n-between');\n classList.push('n-selected');\n }\n\n let arriveFirst = this.tempArrive.before(this.tempDepart);\n\n if ( now.equalDate(this.tempArrive) ) {\n classList.push(arriveFirst ? 'n-arrive' : 'n-depart');\n classList.push('n-selected');\n }\n\n if ( now.equalDate(this.tempDepart) ) {\n classList.push(arriveFirst ? 'n-depart' : 'n-arrive');\n classList.push('n-selected');\n }\n\n }\n\n if ( viewMode === 1 && this.cacheArrive ) {\n\n if ( now.between(this.cacheArrive, this.tempRanger) ) {\n classList.push('n-between');\n }\n\n let arriveFirst = this.cacheArrive.before(this.tempRanger);\n\n if ( now.equalDate(this.cacheArrive) ) {\n classList.push(arriveFirst ? 'n-arrive' : 'n-depart');\n }\n\n if ( now.equalDate(this.tempRanger) ) {\n classList.push(arriveFirst ? 'n-depart' : 'n-arrive');\n }\n\n }\n\n let isNotBeforeMin = ! this.minDate || \n now.after(this.minDate) || now.equalDate(this.minDate);\n\n let isNotAfterMax = ! this.maxDate || \n now.before(this.maxDate) || now.equalDate(this.maxDate);\n\n if ( ! isNotBeforeMin || ! isNotAfterMax ) {\n classList.push('n-disabled');\n }\n\n let props = {\n onMouseenter: () => this.printRange(now)\n };\n\n if ( isNotBeforeMin && isNotAfterMax ) {\n props.onClick = () => this.patchRange(now);\n }\n\n return (\n <div class={classList} {...props}>\n <span>{ now.format('DD') }</span>\n </div>\n );\n },\n\n renderDate()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevMonth();\n };\n let next = () => {\n this.tempCache = this.tempCache.nextMonth();\n };\n\n let legendHtml = (\n Arr.each(this.weekdays, (day) => {\n return (\n <div class=\"n-datepicker-panel__day\">\n <span>{ this.trans(day) }</span>\n </div>\n );\n })\n );\n\n let renderItem = this.ctor('renderDateItem');\n\n if ( this.range ) {\n renderItem = this.ctor('renderRangeDateItem');\n }\n\n let bodyHtml = (month) => (\n Arr.each(Arr.chunk(month.getDatesGrid(), 7), (chunks) => {\n return (\n <div class=\"n-datepicker-panel__week\">\n { Arr.each(chunks, (chunk) => renderItem(chunk, month)) }\n </div>\n );\n })\n );\n\n let panelHtml = (\n Arr.each(Arr.make(this.monthPanels), (offset) => {\n\n let month = this.tempCache.clone()\n .addMonths(offset - 1);\n\n return (\n <div class=\"n-datepicker-panel__panel\">\n <div class=\"n-datepicker-panel__legend\">\n { legendHtml }\n </div>\n <div class=\"n-datepicker-panel__body\">\n { bodyHtml(month) }\n </div>\n </div>\n );\n })\n );\n\n return (\n <div class=\"n-datepicker-panel__dateview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__panels\">\n { panelHtml }\n </div>\n </div>\n );\n },\n\n renderMonthItem(now)\n {\n let classList = [\n 'n-datepicker-panel__month'\n ];\n\n if ( now.equal(this.tempCache, 'YYYYMM') ) {\n classList.push('n-selected');\n }\n\n if ( now.month() === Now.make('now').month() ) {\n classList.push('n-current');\n }\n\n let props = {\n onClick: () => this.patchMonth(now)\n };\n\n return (\n <div class={classList} {...props}>\n <span>{ this.trans(this.months[now.month()]) }</span>\n </div>\n )\n },\n\n renderMonth()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevYear();\n };\n\n let next = () => {\n this.tempCache = this.tempCache.nextYear();\n };\n\n return (\n <div class=\"n-datepicker-panel__monthview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__body\">\n <div class=\"n-datepicker-panel__year\">\n { Arr.each(this.monthsGrid, this.ctor('renderMonthItem')) }\n </div>\n </div>\n <div class=\"n-datepicker-panel__footer\">\n <NButton size={this.type} size={this.size} link={true} onClick={this.gotoDate}>\n { this.trans('Go back') }\n </NButton>\n </div>\n </div>\n );\n },\n\n renderYearItem(now)\n {\n let classList = [\n 'n-datepicker-panel__year'\n ];\n\n if ( now.equal(this.tempCache, 'YYYY') ) {\n classList.push('n-selected');\n }\n\n if ( now.year() === Now.make('now').year() ) {\n classList.push('n-current');\n }\n\n let props = {\n onClick: () => this.patchYear(now)\n };\n\n return (\n <div class={classList} {...props}>\n <span>{ now.year() }</span>\n </div>\n )\n },\n\n renderYear()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevDecade();\n };\n\n let next = () => {\n this.tempCache = this.tempCache.nextDecade();\n };\n\n return (\n <div class=\"n-datepicker-panel__yearview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__body\">\n <div class=\"n-datepicker-panel__decade\">\n { Arr.each(this.yearsGrid, this.ctor('renderYearItem')) }\n </div>\n </div>\n <div class=\"n-datepicker-panel__footer\">\n <NButton size={this.type} size={this.size} link={true} onClick={this.gotoDate}>\n { this.trans('Go back') }\n </NButton>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-datepicker-panel',\n 'n-datepicker-panel--' + this.size,\n 'n-datepicker-panel--' + this.type\n ]\n\n return (\n <div class={classList}>\n { this.ctor('render' + Str.ucfirst(this.tempView))() }\n </div>\n );\n }\n\n}","import { Obj, Now, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatepicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n arrive: {\n default()\n {\n return null;\n }\n },\n\n clearArrive: {\n default()\n {\n return null;\n }\n },\n\n depart: {\n default()\n {\n return null;\n }\n },\n\n clearDepart: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select date');\n },\n type: [String]\n },\n\n placeholderArrive: {\n default()\n {\n return Locale.trans('Start date');\n },\n type: [String]\n },\n\n placeholderDepart: {\n default()\n {\n return Locale.trans('End date');\n },\n type: [String]\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n rangeSeparator: {\n default()\n {\n return '-';\n },\n type: [String]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD');\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n Locale.trans('Mo'),\n Locale.trans('Tu'),\n Locale.trans('We'),\n Locale.trans('Th'),\n Locale.trans('Fr'),\n Locale.trans('Sa'),\n Locale.trans('Su'),\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n Locale.trans('Jan'),\n Locale.trans('Feb'),\n Locale.trans('Mar'),\n Locale.trans('Apr'),\n Locale.trans('May'),\n Locale.trans('Jun'),\n Locale.trans('Jul'),\n Locale.trans('Aug'),\n Locale.trans('Sep'),\n Locale.trans('Oct'),\n Locale.trans('Nov'),\n Locale.trans('Dec'),\n ];\n },\n type: [Array]\n }\n\n },\n\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n arrive(value)\n {\n if ( value !== this.tempArrive.format(this.format) ) {\n this.tempArrive = Now.make(value);\n }\n },\n\n depart(value)\n {\n if ( value !== this.tempDepart.format(this.format) ) {\n this.tempDepart = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false,\n tempValue: Now.make(this.modelValue, this.format),\n tempArrive: Now.make(this.arrive, this.format),\n tempDepart: Now.make(this.depart, this.format),\n };\n },\n\n methods: {\n\n clearDatepicker()\n {\n this.range ? this.clearRangeDatepicker() :\n this.clearSingleDatepicker();\n },\n\n clearSingleDatepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n\n clearRangeDatepicker()\n {\n this.tempArrive = Now.make(this.clearArrive, \n this.format);\n\n this.$emit('update:arrive', this.clearValue);\n\n this.tempDepart = Now.make(this.clearDepart, \n this.format);\n\n this.$emit('update:depart', this.clearDepart);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onArriveInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempArrive = Now.make(moment);\n\n this.$emit('update:arrive', \n this.tempArrive.format(this.format));\n },\n\n onDepartInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempDepart = Now.make(moment);\n\n this.$emit('update:depart', \n this.tempDepart.format(this.format));\n },\n\n onDatepickerInput(value)\n {\n this.focus = false;\n\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n onDatepickerDepart(value)\n {\n this.focus = false;\n\n this.tempDepart = Now.make(value, \n this.format);\n\n this.$emit('update:depart', value);\n },\n\n onDatepickerArrive(value)\n {\n this.focus = false;\n\n this.tempArrive = Now.make(value, \n this.format);\n\n this.$emit('update:arrive', value);\n },\n\n },\n\n\n renderLabelClear()\n {\n let isEmpty = ! this.tempArrive.initialDate &&\n ! this.tempDepart.initialDate;\n\n if ( ! this.range ) {\n isEmpty = ! this.tempValue.initialDate;\n }\n\n if ( ! this.clearable || isEmpty ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearDatepicker;\n }\n\n return (\n <div class=\"n-datepicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-datepicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderRange()\n {\n let arriveProps = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholderArrive,\n onInput: this.onArriveInput,\n };\n\n if ( this.tempArrive.valid() ) {\n arriveProps.value = this.tempArrive.format(\n this.displayFormat, true);\n }\n\n let departProps = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholderDepart,\n onInput: this.onDepartInput,\n };\n\n if ( this.tempDepart.valid() ) {\n departProps.value = this.tempDepart.format(\n this.displayFormat, true);\n }\n\n return [\n (\n <div class=\"n-datepicker__input\">\n <input {...arriveProps}/>\n </div>\n ),\n (\n <div class=\"n-datepicker__seperator\">\n <span>{ this.rangeSeparator }</span>\n </div>\n ),\n (\n <div class=\"n-datepicker__input\">\n <input {...departProps}/>\n </div>\n )\n ];\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-datepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-datepicker__display'\n ];\n\n if ( this.range ) {\n classList.push('n-range');\n }\n\n let displayHtml = this.ctor('renderSingle');\n\n if ( this.range ) {\n displayHtml = this.ctor('renderRange');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { displayHtml() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n \n let props = Obj.except(this.$props, ['modelValue'], {\n arrive: this.tempArrive.format(this.format) || null,\n depart: this.tempDepart.format(this.format) || null,\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:arrive'] = this.onDatepickerArrive;\n props['onUpdate:depart'] = this.onDatepickerDepart;\n props['onUpdate:modelValue'] = this.onDatepickerInput;\n\n return (\n <NDatepickerPanel class=\"n-datepicker__body\" {...props}></NDatepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderItems') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-datepicker',\n 'n-datepicker--' + this.type,\n 'n-datepicker--' + this.size,\n ];\n\n let isEmpty = ! this.tempArrive.initialDate &&\n ! this.tempDepart.initialDate;\n\n if ( ! this.range ) {\n isEmpty = ! this.tempValue.initialDate;\n }\n\n if ( isEmpty ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Arr, Obj, Now, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTimepickerPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Select time';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return 'HH:mm:ss';\n },\n type: [String]\n },\n\n hoursInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n minutesInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n secondsInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n hoursGrid()\n {\n return this.tempValue.getHours(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutes(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSeconds(this.secondsInterval);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n }\n\n },\n\n data()\n {\n let modelValue = Now.make(this.modelValue);\n\n if ( Any.isEmpty(this.modelValue) ) {\n modelValue = modelValue.resetTime();\n }\n\n return {\n tempValue: modelValue,\n }\n },\n\n mounted()\n {\n this.scrollTo();\n },\n\n methods: {\n\n eventSelect(now)\n {\n this.$emit('update:modelValue',\n (this.tempValue = now.clone()).format(this.format));\n },\n\n scrollTo()\n {\n let scrollbars = Obj.only(this.$refs, [\n 'hour', 'minute', 'second'\n ]);\n\n Arr.each(scrollbars, (ref, key) => {\n ref.scrollIntoView(`[data-index=\"${this.tempValue[key]()}\"]`);\n });\n }\n\n },\n\n renderToolbar()\n {\n return (\n <div class=\"n-timepicker-panel__toolbar\">\n <div class=\"n-timepicker-panel__display\">\n <span class=\"n-timepicker-panel__time\">\n {this.tempValue.format(this.displayFormat) || this.placeholder}\n </span>\n </div>\n </div>\n )\n },\n\n renderHourItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.hour() === this.tempValue.hour() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.hour()}>\n <span>{now.format('HH')}</span>\n </div>\n );\n },\n\n renderHourPanel()\n {\n if ( !this.displayFormat.match('HH') ) {\n return null;\n }\n\n return (\n <NScrollbar ref=\"hour\" class=\"n-timepicker-panel__panel\" wrapClass=\"n-timepicker-panel__wrap\">\n {Arr.each(this.hoursGrid, this.ctor('renderHourItem'))}\n </NScrollbar>\n );\n },\n\n renderMinuteItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.minute() === this.tempValue.minute() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.minute()}>\n <span>{now.format('mm')}</span>\n </div>\n );\n },\n\n renderMinutePanel()\n {\n if ( !this.displayFormat.match('mm') ) {\n return null;\n }\n\n return (\n <NScrollbar ref=\"minute\" class=\"n-timepicker-panel__panel\" wrapClass=\"n-timepicker-panel__wrap\">\n {Arr.each(this.minutesGrid, this.ctor('renderMinuteItem'))}\n </NScrollbar>\n );\n },\n\n renderSecondItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.second() === this.tempValue.second() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.second()}>\n <span>{now.format('ss')}</span>\n </div>\n );\n },\n\n renderSecondPanel()\n {\n if ( !this.displayFormat.match('ss') ) {\n return null;\n }\n\n return (\n <NScrollbar ref=\"second\" class=\"n-timepicker-panel__panel\" wrapClass=\"n-timepicker-panel__wrap\">\n {Arr.each(this.secondsGrid, this.ctor('renderSecondItem'))}\n </NScrollbar>\n );\n },\n\n render()\n {\n let classList = [\n 'n-timepicker-panel',\n 'n-timepicker-panel--' + this.size,\n 'n-timepicker-panel--' + this.type,\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-timepicker-panel__header\">\n {this.ctor('renderToolbar')()}\n </div>\n <div class=\"n-timepicker-panel__body\">\n {this.ctor('renderHourPanel')()}\n {this.ctor('renderMinutePanel')()}\n {this.ctor('renderSecondPanel')()}\n </div>\n </div>\n );\n }\n\n}","import { Arr, Obj, Now, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTimepicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Select time';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('HH:mm:ss');\n },\n type: [String]\n },\n\n hoursInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n minutesInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n secondsInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n hoursGrid()\n {\n return this.tempValue.getHours(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutes(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSeconds(this.secondsInterval);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n }\n\n },\n\n data()\n {\n return {\n focus: false,\n tempValue: Now.make(this.modelValue),\n }\n },\n\n methods: {\n\n clearTimepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n hour: value.moment.hour(), \n minute: value.moment.minute(), \n second: value.moment.second(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onTimepickerInput(value)\n {\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || ! this.tempValue.valid() ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearTimepicker;\n }\n\n return (\n <div class=\"n-timepicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-timepicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.disabled,\n placeholder: this.trans(this.placeholder),\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-timepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-timepicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderSingle')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderPanel()\n {\n \n let props = Obj.except(this.$props, ['modelValue'], {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onTimepickerInput;\n\n return (\n <NTimepickerPanel class=\"n-timepicker__body\" {...props}></NTimepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderPanel') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-timepicker',\n 'n-timepicker--' + this.type,\n 'n-timepicker--' + this.size,\n ];\n\n if ( ! this.tempValue.valid() ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Obj, Now, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatetimepicker',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select datetime');\n },\n type: [String]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm:ss');\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n Locale.trans('Mo'),\n Locale.trans('Tu'),\n Locale.trans('We'),\n Locale.trans('Th'),\n Locale.trans('Fr'),\n Locale.trans('Sa'),\n Locale.trans('Su'),\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n Locale.trans('Jan'),\n Locale.trans('Feb'),\n Locale.trans('Mar'),\n Locale.trans('Apr'),\n Locale.trans('May'),\n Locale.trans('Jun'),\n Locale.trans('Jul'),\n Locale.trans('Aug'),\n Locale.trans('Sep'),\n Locale.trans('Oct'),\n Locale.trans('Nov'),\n Locale.trans('Dec'),\n ];\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: Now.make(this.modelValue, this.format),\n };\n },\n\n methods: {\n\n clearDatetimepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n hour: value.moment.hour(),\n minute: value.moment.minute(),\n second: value.moment.second(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onDatepickerInput(value)\n {\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n onTimepickerInput(value)\n {\n this.tempValue = Now.make(value,\n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n },\n\n\n renderLabelClear()\n {\n let isEmpty = ! this.tempValue.initialDate;\n\n if ( ! this.clearable || isEmpty ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.clearDatetimepicker;\n }\n\n return (\n <div class=\"n-datetimepicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-datetimepicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-datetimepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-datetimepicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderSingle')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderPanels()\n {\n return (\n <div class=\"n-datetimepicker__body\">\n {[this.ctor('renderDatePanel')(), this.ctor('renderTimePanel')()]}\n </div>\n );\n },\n\n renderDatePanel()\n {\n let props = Obj.only(this.$props, [\n 'minDate', 'maxDate', 'size', 'type', 'format', 'monthPanels', 'disabled', 'weekdays', 'months'\n ]);\n\n props = Obj.assign(props, {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onDatepickerInput;\n\n return (\n <NDatepickerPanel class=\"n-datetimepicker__date-panel\" {...props}></NDatepickerPanel>\n );\n },\n\n renderTimePanel()\n {\n let props = Obj.only(this.$props, [\n 'size', 'type', 'format', 'disabled', 'hoursInterval', 'minutesInterval', 'secondsInterval'\n ]);\n\n props = Obj.assign(props, {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onTimepickerInput;\n\n return (\n <NTimepickerPanel class=\"n-datetimepicker__time-panel\" {...props}></NTimepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.deepDisabled\n };\n\n let slots = {\n raw: this.ctor('renderPanels')\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props} v-slots={slots} />\n );\n },\n\n render()\n {\n let classList = [\n 'n-datetimepicker',\n 'n-datetimepicker--' + this.type,\n 'n-datetimepicker--' + this.size,\n ];\n\n let isEmpty = ! this.tempValue.initialDate;\n\n if ( isEmpty ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Any, Obj, Arr, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDurationpicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n options: {\n default()\n {\n return [\n 60 * 5,\n 60 * 10,\n 60 * 15,\n 60 * 30,\n 60 * 45,\n 60 * 60,\n 60 * 90,\n 60 * 120,\n 60 * 150,\n 60 * 60 * 3,\n 60 * 60 * 4,\n 60 * 60 * 5,\n 60 * 60 * 6,\n 60 * 60 * 12,\n 60 * 60 * 24,\n 60 * 60 * 24 * 2,\n 60 * 60 * 24 * 3,\n 60 * 60 * 24 * 4,\n 60 * 60 * 24 * 5,\n 60 * 60 * 24 * 6,\n 60 * 60 * 24 * 7,\n ];\n },\n type: [Array]\n },\n\n minDuration: {\n default()\n {\n return null;\n }\n },\n\n maxDuration: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select duration');\n },\n type: [String]\n },\n\n negativeText: {\n default()\n {\n return Locale.trans('Negative duration');\n },\n type: [String]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n days: {\n default()\n {\n return Locale.trans(':count Day|:count Days');\n },\n type: [String]\n },\n\n hours: {\n default()\n {\n return Locale.trans(':count Hour|:count Hours');\n },\n type: [String]\n },\n\n minutes: {\n default()\n {\n return Locale.trans(':count Minute|:count Minutes');\n },\n type: [String]\n },\n\n seconds: {\n default()\n {\n return Locale.trans(':count Second|:count Seconds');\n },\n type: [String]\n }\n\n },\n\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.modelValue, editValue: null\n };\n },\n\n methods: {\n\n findPattern(text, pattern)\n {\n pattern = pattern.replaceAll(':count', '([0-9\\.\\,]+)')\n .replaceAll(' ', '\\\\s*');\n\n return text.match(new RegExp(pattern, 'i'));\n },\n\n humanizeValue(value)\n {\n if ( Any.isEmpty(value) ) {\n return '';\n }\n\n if ( value < 0 ) {\n return this.negativeText;\n }\n\n let seconds = value;\n\n // Extract minutes\n let minutes = Math.floor(seconds/60);\n seconds -= minutes * 60;\n\n // Extract hours\n let hours = Math.floor(minutes/60);\n minutes -= hours * 60;\n\n\n // Extract days\n let days = Math.floor(hours/24);\n hours -= days * 24;\n\n let text = [];\n\n if ( days ) {\n text.push(Locale.choice(this.days, days));\n }\n\n if ( hours ) {\n text.push(Locale.choice(this.hours, hours));\n }\n\n if ( minutes ) {\n text.push(Locale.choice(this.minutes, minutes));\n }\n\n if ( seconds ) {\n text.push(Locale.choice(this.seconds, seconds));\n }\n\n return text.join(' ');\n },\n\n digitizeValue(text)\n {\n if ( Any.isEmpty(text) ) {\n return this.clearValue;\n }\n\n let value = 0;\n\n let dmatch = this.findPattern(text, this.days);\n\n if ( dmatch && dmatch.length === 3 ) {\n value += Any.float(dmatch[1].replace(',', '.')) * 24 * 60 * 60;\n }\n\n let hmatch = this.findPattern(text, this.hours);\n\n if ( hmatch && hmatch.length === 3 ) {\n value += Any.float(hmatch[1].replace(',', '.')) * 60 * 60;\n }\n\n let mmatch = this.findPattern(text, this.minutes);\n\n if ( mmatch && mmatch.length === 3 ) {\n value += Any.float(mmatch[1].replace(',', '.')) * 60;\n }\n\n let smatch = this.findPattern(text, this.seconds);\n\n if ( smatch && smatch.length === 3 ) {\n value += Any.float(smatch[1].replace(',', '.'));\n }\n\n return value;\n },\n\n clearDurationpicker()\n {\n this.$emit('update:modelValue', this.tempValue = this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(e)\n {\n let value = this.digitizeValue(e.target.value);\n\n if ( value === this.tempValue ) {\n return;\n }\n\n this.editValue = value;\n },\n\n onValueChange(e)\n {\n let value = this.editValue;\n\n // Clear edit value\n this.editValue = null;\n\n if ( ! value || value === this.tempValue ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = value);\n },\n\n onDurationpickerInput(value)\n {\n this.focus = false;\n\n // Clear edit value\n this.editValue = null;\n\n this.$emit('update:modelValue', this.tempValue = value);\n },\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || ! this.tempValue ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearDurationpicker;\n }\n\n return (\n <div class=\"n-durationpicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-durationpicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderInput()\n {\n let props = {\n value: this.humanizeValue(this.tempValue),\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n onBlur: this.onValueChange,\n onChange: this.onValueChange,\n };\n\n return (\n <div class=\"n-durationpicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-durationpicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderInput')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n return Arr.each(this.options, (value) => {\n\n let text = this.humanizeValue(value);\n\n let optionProps = {\n //\n };\n\n optionProps['onClick'] = () => {\n this.onDurationpickerInput(value);\n }\n\n return (<NPopoverOption {...optionProps}>{text}</NPopoverOption>)\n });\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: -1,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n let slots = {};\n\n slots.raw = () => {\n\n let scrollProps = {\n relative: true, size: this.size\n }\n\n return (\n <NScrollbar ref=\"scrollbar\" class=\"n-durationpicker__body\" {...scrollProps}>\n {this.ctor('renderItems')()}\n </NScrollbar>\n )\n }\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props} v-slots={slots} />\n );\n },\n\n render()\n {\n let classList = [\n 'n-durationpicker',\n 'n-durationpicker--' + this.type,\n 'n-durationpicker--' + this.size,\n ];\n\n if ( ! this.tempValue ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Str, Arr, Obj, Any, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTransfer',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n sourceLabel: {\n default()\n {\n return 'Source';\n },\n type: [String]\n },\n\n targetLabel: {\n default()\n {\n return 'Target';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n sourceChecked()\n {\n return !! this.selectedSource.length && \n this.selectedSource.length === this.tempSource.length;\n },\n\n sourceIntermediate()\n {\n return !! this.selectedSource.length && \n this.selectedSource.length !== this.tempSource.length;\n },\n\n targetChecked()\n {\n return !! this.selectedTarget.length && \n this.selectedTarget.length === this.tempTarget.length;\n },\n\n targetIntermediate()\n {\n return !! this.selectedTarget.length && \n this.selectedTarget.length !== this.tempTarget.length;\n },\n\n tempSource()\n {\n let source = Arr.filter(this.options, (item) => {\n return ! Arr.find(this.tempValue, { [this.uniqueProp]: item[this.uniqueProp] });\n });\n\n if ( Any.isEmpty(this.sourceSearch) ) {\n return Arr.clone(source);\n }\n\n let searchPattern = new RegExp(this.sourceSearch, 'i');\n\n source = Arr.filter(source, (item) => {\n return item[this.labelProp].match(searchPattern);\n });\n\n return Arr.clone(source);\n },\n\n tempTarget()\n {\n let target = Arr.filter(this.options, (item) => {\n return !! Arr.find(this.tempValue, { [this.uniqueProp]: item[this.uniqueProp] });\n });\n\n if ( Any.isEmpty(this.targetSearch) ) {\n return Arr.clone(target);\n }\n\n let searchPattern = new RegExp(this.targetSearch, 'i');\n\n target = Arr.filter(target, (item) => {\n return item[this.labelProp].match(searchPattern);\n });\n\n return Arr.clone(target);\n }\n\n },\n data()\n {\n return {\n uid: UUID(),\n tempValue: this.modelValue,\n sourceSearch: '',\n targetSearch: '',\n selectedSource: [],\n selectedTarget: []\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n moveItemsTarget(options)\n {\n Arr.each(options, (source) => {\n\n let item = Arr.find(this.options, {\n [this.uniqueProp]: source\n });\n\n Arr.add(this.tempValue, item, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.$emit('input', this.tempValue);\n },\n\n moveItemsSource(options)\n {\n Arr.each(options, (source) => {\n\n Arr.remove(this.tempValue, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.$emit('input', this.tempValue);\n },\n\n moveRowTarget(node)\n {\n // Get node unique\n let target = node.value[this.uniqueProp];\n\n // Remove item from selected list\n Arr.remove(this.selectedTarget, target);\n\n this.tempValue = Arr.remove(this.tempValue, {\n [this.uniqueProp]: target\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveRowSource(node)\n {\n // Get node unique\n let source = node.value[this.uniqueProp];\n\n // Remove item from selected list\n Arr.remove(this.selectedSource, source);\n\n Arr.add(this.tempValue, node.item, source, {\n [this.uniqueProp]: source\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveToSource()\n {\n Arr.each(this.selectedTarget, (target) => {\n\n Arr.remove(this.tempValue, {\n [this.uniqueProp]: target\n });\n\n });\n\n this.selectedTarget = [];\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveToTarget()\n {\n Arr.each(this.selectedSource, (source) => {\n\n let item = Arr.find(this.options, {\n [this.uniqueProp]: source\n });\n\n Arr.add(this.tempValue, item, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.selectedSource = [];\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n updateSelectedSource(selected)\n {\n this.selectedSource = selected;\n },\n\n updateSelectedTarget(selected)\n {\n this.selectedTarget = selected;\n }\n\n },\n\n renderSourceSelect()\n {\n let props = {\n modelValue: this.sourceChecked,\n size: this.size,\n type: this.type,\n intermediate: this.sourceIntermediate,\n disabled: ! this.tempSource.length\n };\n\n props['onUpdate:modelValue'] = () => {\n this.$refs.source.selectAll();\n };\n\n return (\n <div class=\"n-transfer__select\">\n <NCheckbox {...props} />\n </div>\n );\n },\n\n renderSourceTitle()\n {\n let labelHtml = (\n <span class=\"n-transfer__item-title\">\n { this.sourceLabel }\n </span>\n );\n\n let counterHtml = (\n <span class=\"n-transfer__item-count\">\n { this.tempSource.length }\n </span>\n );\n\n return (\n <div class=\"n-transfer__title\">\n { [labelHtml, counterHtml] }\n </div>\n );\n },\n\n renderSourceHeader()\n {\n return (\n <div class=\"n-transfer__header\">\n { this.ctor('renderSourceSelect')() }\n { this.ctor('renderSourceTitle')() }\n </div>\n );\n },\n\n renderSourceSearch()\n {\n let props = {\n placeholder: this.trans('Search item'),\n size: this.size,\n type: this.type,\n icon: nano.Icons.times,\n iconDisabled: ! this.sourceSearch\n };\n\n props['onIconClick'] = () => {\n this.sourceSearch = '';\n };\n\n props['onUpdate:modelValue'] = () => {\n this.selectedSource = [];\n };\n\n return (\n <div class=\"n-transfer__search\">\n <NInput vModel={this.sourceSearch} {...props} />\n </div>\n )\n },\n\n renderSourceBody()\n {\n let props = {\n group: [this.uid + 'source'],\n allowGroups: [this.uid + 'target'],\n items: this.tempSource,\n size: this.size,\n type: this.type,\n renderSelect: true,\n selected: this.selectedSource,\n safezone: () => -10,\n disableMove: true,\n renderNode: this.ctor('renderNode'),\n onMove: this.moveItemsSource,\n 'onRowDblclick': this.moveRowSource,\n 'onUpdate:selected': this.updateSelectedSource\n };\n\n return (\n <NDraglist ref=\"source\" class=\"n-transfer__body\" {...props} />\n );\n },\n\n renderTargetSelect()\n {\n let props = {\n modelValue: this.targetChecked,\n size: this.size,\n type: this.type,\n intermediate: this.targetIntermediate,\n disabled: ! this.tempTarget.length\n };\n\n props['onUpdate:modelValue'] = () => {\n this.$refs.target.selectAll();\n };\n\n return (\n <div class=\"n-transfer__select\">\n <NCheckbox {...props} />\n </div>\n );\n },\n\n renderTargetTitle()\n {\n let labelHtml = (\n <span class=\"n-transfer__item-title\">\n { this.targetLabel }\n </span>\n );\n\n let counterHtml = (\n <span class=\"n-transfer__item-count\">\n { this.tempTarget.length }\n </span>\n );\n\n return (\n <div class=\"n-transfer__title\">\n { [labelHtml, counterHtml] }\n </div>\n );\n },\n\n renderTargetHeader()\n {\n return (\n <div class=\"n-transfer__header\">\n { this.ctor('renderTargetSelect')() }\n { this.ctor('renderTargetTitle')() }\n </div>\n );\n },\n\n renderTargetSearch()\n {\n let props = {\n placeholder: this.trans('Search item'),\n size: this.size,\n type: this.type,\n icon: nano.Icons.times,\n iconDisabled: ! this.targetSearch\n };\n\n props['onIconClick'] = () => {\n this.targetSearch = '';\n };\n\n props['onUpdate:modelValue'] = () => {\n this.selectedTarget = [];\n };\n\n return (\n <div class=\"n-transfer__search\">\n <NInput vModel={this.targetSearch} {...props} />\n </div>\n )\n },\n\n renderTargetBody()\n {\n let props = {\n group: [this.uid + 'target'],\n allowGroups: [this.uid + 'source'],\n items: this.tempTarget,\n size: this.size,\n type: this.type,\n renderSelect: true,\n selected: this.selectedTarget,\n safezone: () => -1,\n disableMove: true,\n renderNode: this.ctor('renderNode'),\n onMove: this.moveItemsTarget,\n 'onRowDblclick': this.moveRowTarget,\n 'onUpdate:selected': this.updateSelectedTarget\n };\n\n return (\n <NDraglist ref=\"target\" class=\"n-transfer__body\" {...props} />\n );\n },\n\n renderNode(props)\n {\n if ( this.$slots.default ) {\n return this.$slots.default(props);\n }\n\n return (\n <div class=\"n-transfer__item\">\n { Obj.get(props.item, this.labelProp) }\n </div>\n );\n },\n\n renderMoveSource()\n {\n let props = {\n disabled: ! this.selectedSource.length,\n size: this.size,\n type: this.type,\n square: true, \n icon: nano.Icons.angleRight,\n onClick: this.moveToTarget\n };\n\n return (\n <NButton {...props} />\n );\n },\n\n renderMoveTarget()\n {\n let props = {\n disabled: ! this.selectedTarget.length,\n size: this.size,\n type: this.type,\n square: true, \n icon: nano.Icons.angleLeft,\n onClick: this.moveToSource\n };\n return (\n <NButton {...props} />\n );\n },\n\n render($render)\n {\n let classList = [\n 'n-transfer',\n 'n-transfer--' + this.size,\n 'n-transfer--' + this.type,\n ]\n\n return (\n <div class={classList}>\n <div class=\"n-transfer__panel\">\n { this.ctor('renderSourceHeader')() }\n { this.ctor('renderSourceSearch')() }\n { this.ctor('renderSourceBody')() }\n </div>\n <div class=\"n-transfer__controls\">\n { this.ctor('renderMoveSource')() }\n { this.ctor('renderMoveTarget')() }\n </div>\n <div class=\"n-transfer__panel\">\n { this.ctor('renderTargetHeader')() }\n { this.ctor('renderTargetSearch')() }\n { this.ctor('renderTargetBody')() }\n </div>\n </div>\n );\n }\n\n}","import { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NForm',\n\n inheritAttrs: false,\n\n model: {\n prop: 'form'\n },\n\n props: {\n\n dom: {\n default()\n {\n return 'div';\n },\n type: [String]\n },\n\n form: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n errors: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n kind: {\n default()\n {\n return 'classic';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'vertical';\n },\n type: [String]\n },\n\n prevent: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n ignore: {\n default()\n {\n return ['modified', 'dragid'];\n },\n type: [Array]\n },\n\n forceChange: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n forceErrors: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n classList()\n {\n if ( ! this.$attrs.class ) {\n return [];\n }\n\n return Any.isArray(this.$attrs) ? this.$attrs.class :\n [this.$attrs.class];\n }\n\n },\n\n data()\n {\n return {\n uid: UUID(), elements: [], groups: {}, blocked: true,\n };\n },\n\n provide()\n {\n return {\n NForm: this\n };\n },\n\n mounted()\n {\n Any.delay(this.ctor('ready'), 500);\n },\n\n ready()\n {\n this.$watch('form', this.emitChange,\n { deep: true });\n\n this.resetChange();\n },\n\n methods: {\n\n registerGroup(group)\n {\n this.groups[group.key] = group;\n },\n\n unregisterGroup(group)\n {\n delete this.groups[group.key];\n },\n\n onSubmit(event)\n {\n if ( this.prevent ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if ( Dom.find(event.target).is('input') ) {\n this.$emit('submit', event);\n }\n\n return this.prevent;\n },\n\n addItem(item)\n {\n Arr.add(this.elements, item, {\n uid: item.uid\n });\n },\n\n removeItem(item)\n {\n Arr.remove(this.elements,{\n uid: item.uid\n });\n },\n\n resetChange(timeout = 500)\n {\n clearTimeout(this.timeout);\n\n this.timeout = setTimeout(() => {\n this.blocked = false;\n }, timeout);\n\n this.blocked = true;\n\n let value = Obj.except(this.form,\n this.ignore);\n\n this.prevState = JSON.stringify(value);\n },\n\n emitChange()\n {\n if ( this.blocked ) {\n return;\n }\n\n let value = Obj.except(this.form,\n this.ignore);\n\n let nextState = JSON.stringify(value);\n\n if ( this.prevState == nextState ) {\n return;\n }\n\n this.prevState = nextState;\n\n this.$emit('change');\n },\n\n },\n\n render()\n {\n let classList = [\n 'n-form',\n 'n-form--' + this.align,\n ];\n\n let attrs = Obj.except(this.$attrs, ['class', 'onChange', 'onSubmit'], {\n class: this.cmer(classList)\n });\n\n attrs['onSubmit'] = (e) => {\n return false;\n }\n\n return h(this.dom, { ...attrs }, [\n this.$slots.default && this.$slots.default()\n ]);\n }\n\n}\n","import { UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormGroup',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NFormFrame: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n key: {\n default()\n {\n return UUID();\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n }\n },\n\n size: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n kind: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'vertical';\n },\n type: [String]\n },\n\n collapse: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltipPosition: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n }\n\n },\n\n mounted()\n {\n if ( this.NForm ) {\n this.NForm.registerGroup(this);\n }\n },\n\n unmounted()\n {\n if ( this.NForm ) {\n this.NForm.unregisterGroup(this);\n }\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n toggleGroup()\n {\n this.$emit('update:modelValue', this.tempValue = ! this.tempValue);\n },\n\n openGroup()\n {\n this.$emit('update:modelValue', this.tempValue = true);\n },\n\n closeGroup()\n {\n this.$emit('update:modelValue', this.tempValue = true);\n }\n\n },\n\n renderCollapse()\n {\n if ( ! this.collapse ) {\n return null;\n }\n\n return (\n <div class=\"n-form-group__collapse\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-form-group__icon\">\n <i class={['n-icon', this.icon]}></i>\n </div>\n );\n },\n\n renderText()\n {\n let textHtml = (\n <div class=\"n-form-group__text\">\n <span>{ this.label }</span>\n </div>\n );\n\n return (\n <div class=\"n-form-group__label\">\n { [this.ctor('renderIcon')(), textHtml] } \n </div>\n );\n },\n\n renderAction()\n {\n if ( ! this.$slots.action ) {\n return null;\n }\n\n return (\n <div class=\"n-form-group__action\">\n { this.$slots.action() }\n </div>\n );\n },\n\n renderLabel()\n {\n return (\n <div class=\"n-form-group__legend\" onClick={this.toggleGroup}>\n { this.ctor('renderCollapse')() }\n { this.ctor('renderText')() }\n { this.ctor('renderAction')() }\n </div>\n );\n },\n\n renderTooltip()\n {\n if ( ! this.tooltip ) {\n return null;\n }\n\n return (\n <NPopover type=\"tooltip\" size=\"sm\" position={this.tooltipPosition}>\n {this.tooltip}\n </NPopover>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-form-group__body\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NForm ) {\n size = size || this.NForm.size;\n }\n\n let kind = this.kind;\n\n if ( this.NFormFrame ) {\n kind = kind || this.NFormFrame.kind;\n }\n\n if ( this.NForm ) {\n kind = kind || this.NForm.kind;\n }\n\n let classList = [\n 'n-form-group', \n 'n-form-group--' + size,\n 'n-form-group--' + kind,\n 'n-form-group--' + this.type,\n 'n-form-group--' + this.align,\n ];\n\n if ( this.collapse ) {\n classList.push('n-form-group--collapse');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n if ( this.$slots.action ) {\n classList.push('n-action');\n }\n\n return (\n <fieldset id={this.key} class={classList} data-group-key={this.key}>\n { this.ctor('renderLabel')() }\n { this.ctor('renderTooltip')() }\n { this.ctor('renderBody')() }\n </fieldset>\n );\n }\n}\n","import { Arr, Obj, Any, Dom, UUID, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormItem',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NTabs: {\n default: undefined\n },\n\n NTabsItem: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return { NFormItem: this };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n prop: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltipPosition: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n tooltipWindow: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n conditional: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n conditionOn: {\n default()\n {\n return Locale.trans('Enable field');\n },\n type: [String]\n },\n\n conditionOff: {\n default()\n {\n return Locale.trans('Disable field');\n },\n type: [String]\n }\n\n },\n\n methods: {\n\n enabled(component = false)\n {\n return (! this.conditional || this.modelValue) && ! component;\n },\n\n disabled(component)\n {\n return (this.conditional && ! this.modelValue) || component;\n },\n\n toggleCondition()\n {\n this.$emit('update:modelValue', !this.modelValue);\n },\n\n focusInput()\n {\n let $input = Dom.find(this.$el).find('input');\n\n if ( !$input.empty() ) {\n return $input.get(0).focus();\n }\n\n $input = Dom.find(this.$refs.input).childs();\n\n if ( !$input.empty() ) {\n return $input.get(0).click();\n }\n\n console.log('I dont belong here :o');\n },\n\n gotoInput()\n {\n let errors = this.NForm.errors;\n\n if ( Any.isEmpty(errors) ) {\n return;\n }\n\n if ( !this.NTabs || !this.NTabsItem ) {\n return;\n }\n\n let keys = Any.keys(errors);\n\n if ( Arr.first(keys) !== this.prop ) {\n return;\n }\n\n this.NTabs.changeTab(this.NTabsItem.name);\n }\n\n },\n\n data()\n {\n return {\n uid: UUID()\n };\n },\n\n beforeMount()\n {\n if ( this.NForm ) {\n this.NForm.addItem(this);\n }\n },\n\n mounted()\n {\n if ( this.NForm ) {\n this.NForm.$watch('errors', this.gotoInput, { deep: true });\n }\n },\n\n beforeUnmount()\n {\n if ( this.NForm ) {\n this.NForm.removeItem(this);\n }\n },\n\n renderTooltip()\n {\n if ( !this.tooltip && !this.$slots.tooltip ) {\n return null;\n }\n\n let props = {\n size: 'sm',\n position: this.tooltipPosition,\n };\n\n return (\n <NPopover type=\"tooltip\" {...props}>\n {this.$slots.tooltip && this.$slots.tooltip() || this.tooltip}\n </NPopover>\n );\n },\n\n renderCondition()\n {\n if ( ! this.conditional ) {\n return null;\n }\n\n return (\n <div class=\"n-form-item__condition\" onClick={this.toggleCondition}>\n <span>{ this.modelValue ? this.conditionOff : this.conditionOn }</span>\n </div>\n );\n },\n\n renderLabel()\n {\n if ( !this.label && !this.$slots.label ) {\n return null;\n }\n\n let labelHtml = (\n <div class=\"n-form-item__label\">\n <label onClick={this.focusInput}>\n {this.$slots.label && this.$slots.label() || this.label}\n </label>\n </div>\n );\n\n return [\n labelHtml, this.ctor('renderTooltip')()\n ]\n },\n\n renderError()\n {\n if ( !this.NForm || !Obj.has(this.NForm.errors, this.prop) ) {\n return null;\n }\n\n return (\n <div class=\"n-form-item__error\">\n {Obj.get(this.NForm.errors, this.prop)}\n </div>\n );\n },\n\n renderInput()\n {\n return (\n <div ref=\"input\" class=\"n-form-item__input\">\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n },\n\n render()\n {\n let size = this.size || Obj.get(this.NForm, 'size', 'md');\n\n\n let classList = [\n 'n-form-item',\n 'n-form-item--' + size,\n ];\n\n if ( this.disabled() ) {\n classList.push('is-disabled');\n }\n\n return <div class={classList}>\n {this.ctor('renderCondition')()}\n {this.ctor('renderLabel')()}\n {this.ctor('renderInput')()}\n {this.ctor('renderError')()}\n </div>;\n }\n}\n","import { Arr, Any, Dom, Str, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormFrame',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n },\n\n provide()\n {\n return { NFormFrame: this };\n },\n\n props: {\n\n showSearch: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n searchPlaceholder: {\n default()\n {\n return Locale.trans('Search ...');\n },\n type: [String]\n },\n\n searchIcon: {\n default()\n {\n return 'fa fa-times';\n },\n type: [String]\n },\n\n kind: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return { search: '' };\n },\n\n mounted()\n {\n this.$watch('search', () => {\n this.onSearchInput();\n });\n\n this.$nextTick(() => {\n this.onScrollEvent();\n });\n },\n\n methods: {\n\n onScrollEvent()\n {\n Dom.find(this.$el).find('[data-menu-key]').each((el) => {\n Dom.find(el).removeClass('is-visible');\n });\n\n Dom.inviewMaxY(`[data-group-key]`, (el, attr) => {\n\n let selector = `[data-menu-key=\"${attr}\"]`;\n\n Dom.find(this.$el).find(selector)\n .addClass('is-visible');\n\n this.$refs.menu.scrollIntoView(selector)\n\n }, this.$el);\n },\n\n onSearchInput()\n {\n let search = Str.lower(this.search);\n\n Dom.find(this.$el).find(`[data-menu-key]`)\n .removeClass('on-search');\n\n if ( Any.isEmpty(search) ) {\n return;\n }\n\n let groups = Arr.filter(this.NForm.groups, (group) => {\n return Str.lower(group.label).indexOf(search) !== -1;\n });\n\n Arr.each(groups, (group) => {\n Dom.find(this.$el).find(`[data-menu-key=\"${group.key}\"]`).addClass('on-search');\n });\n },\n\n onClickEvent(item, event = null)\n {\n if ( ! Any.isEmpty(event) ) {\n event.preventDefault();\n }\n\n let selector = `[data-group-key=\"${item.key}\"]`\n\n if ( item.collapse ) {\n item.openGroup();\n }\n\n if ( ! Any.isEmpty(this.timeout) ) {\n clearTimeout(this.timeout);\n }\n\n Dom.find('[data-group-key]').removeClass('on-search');\n\n this.timeout = setTimeout(() => {\n Dom.find(selector).removeClass('on-search');\n }, 4000);\n\n this.$nextTick(() => {\n Dom.find(selector).addClass('on-search');\n });\n\n this.$refs.body.scrollIntoView(selector)\n }\n\n },\n\n renderSearch()\n {\n if ( ! this.showSearch ) {\n return null;\n }\n\n let searchProps = {\n placeholder: this.searchPlaceholder\n };\n\n if ( ! Any.isEmpty(this.search) ) {\n searchProps.icon = this.searchIcon;\n }\n\n searchProps['onIconClick'] = () => {\n this.search = '';\n }\n\n return (\n <div class=\"n-form-frame__search\">\n <NInput vModel={this.search} {...searchProps}></NInput>\n </div>\n )\n },\n\n renderMenu(item)\n {\n let labelHtml = (\n <span>{item.label}</span>\n );\n\n let iconHtml = null;\n\n if ( item.icon ) {\n iconHtml = (<i class={item.icon} />);\n }\n\n let buttonProps = {\n href: '#' + item.key\n }\n\n buttonProps['onClick'] = (e) => {\n this.onClickEvent(item, e)\n };\n\n let classList = [\n 'n-form-frame__menu',\n 'n-form-frame__menu--' + item.type\n ]\n\n return (\n <a class={classList} data-menu-key={item.key} {...buttonProps}>\n {[iconHtml, labelHtml]}\n </a>\n );\n },\n\n renderMenus()\n {\n let items = Arr.each(this.NForm.groups, (item) => {\n return this.ctor('renderMenu')(item);\n });\n\n return (\n <n-scrollbar ref=\"menu\" class=\"n-form-frame__menus\">\n { this.ctor('renderSearch')() } { items } { this.$slots.menu && this.$slots.menu() }\n </n-scrollbar>\n );\n },\n\n renderBody()\n {\n let bodyProps = {\n //\n };\n\n bodyProps['onScrollupdate'] = Any.debounce(() => {\n this.onScrollEvent();\n });\n\n return (\n <n-scrollbar ref=\"body\" class=\"n-form-frame__body\" {...bodyProps}>\n {this.$slots.default && this.$slots.default()}\n </n-scrollbar>\n );\n },\n\n render()\n {\n let classList = [\n 'n-form-frame',\n 'n-form-frame--' + this.NForm.size\n ];\n\n if ( ! Any.isEmpty(this.search) ) {\n classList.push('n-form-frame--search')\n }\n\n return (\n <div class={classList}>\n {[this.$slots.frame && this.$slots.frame(), this.ctor('renderMenus')(), this.ctor('renderBody')()]}\n </div>\n );\n }\n}\n","import { Arr, Dom, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTabs',\n\n provide()\n {\n return {\n NTabs: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n float: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n data()\n {\n return {\n init: false,\n elements: [], \n width: 0, \n offset: 0, \n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTab(tab)\n {\n Arr.add(this.elements, tab, \n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTab(tab)\n {\n Arr.remove(this.elements, \n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n getTab(updateEvent = true)\n {\n let currentTab = Arr.find(this.elements, {\n name: this.modelValue\n });\n\n let sorted = Arr.sort(this.elements, 'sort');\n\n if ( ! currentTab ) {\n currentTab = Arr.first(sorted);\n }\n\n let repeatNext = () => this.getTab(updateEvent);\n\n if ( ! currentTab ) {\n return Any.delay(repeatNext, 250);\n }\n\n if ( currentTab.name === this.tempValue || ! updateEvent ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = currentTab.name);\n },\n\n changeTab(value)\n {\n if ( this.tempValue === value ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = value);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n this.getTab(false);\n },\n\n updated()\n {\n let width = Dom.find(this.$el).find('.n-active')\n .width();\n\n this.width = width < 0 ? 0 : width;\n\n let offset = Dom.find(this.$el).find('.n-active')\n .offset('left', this.$el);\n\n this.offset = offset < 0 ? 0 : offset;\n },\n\n renderHeaderIndicator()\n {\n let transform = `scaleX(${this.width / 100}) ` + \n `translateX(${this.offset / (this.width / 100)}px)`;\n\n return (\n <div class=\"n-tabs__indicator\" style={{ transform }}>\n { /* Indicator bar */ }\n </div>\n );\n },\n\n renderHeader()\n {\n if ( this.elements.length <= 1 ) {\n return null;\n }\n\n // FIXME: As soon vue doesnt bug\n let sorted = Arr.sort(this.elements, 'sort');\n \n let tabs = Arr.each(Arr.make(sorted.length), (tab, index) => {\n return sorted[index].ctor('renderHeader')();\n });\n\n return (\n <div class=\"n-tabs__header\">\n {[tabs, this.ctor('renderHeaderIndicator')()]}\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-tabs__body\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-tabs', \n 'n-tabs--' + this.size, \n 'n-tabs--' + this.type\n ];\n\n if ( this.float ) {\n classList.push('n-float');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderHeader')() }\n { this.ctor('renderBody')() }\n </div>\n );\n }\n}\n","import { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NTabsItem',\n\n inject: {\n\n NTabs: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NTabsItem: this\n };\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n name: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n preload: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n keep: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n\n },\n\n methods: {\n\n changeTab()\n {\n this.NTabs.changeTab(this.name);\n }\n\n },\n\n data()\n {\n return {\n _key: null, init: false\n }\n },\n\n beforeMount()\n {\n this.NTabs.addTab(this);\n },\n\n beforeUnmount()\n {\n this.NTabs.removeTab(this);\n },\n\n renderHeaderIcon()\n {\n if ( ! this.$slots.icon && ! this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-tabs__tab-icon\">\n { this.$slots.icon && this.$slots.icon() || <i class={this.icon}></i> }\n </div>\n );\n },\n\n renderHeaderLabel()\n {\n return (\n <div class=\"n-tabs__tab-label\">\n { this.$slots.label && this.$slots.label () || <span>{this.label}</span> }\n </div>\n );\n },\n\n renderHeader()\n {\n let classList = [\n 'n-tabs__tab'\n ];\n\n if ( this.NTabs.tempValue === this.name ) {\n classList.push('n-active');\n }\n\n let props = {\n onClick: () => this.changeTab(this.name)\n };\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHeaderIcon')() }\n { this.ctor('renderHeaderLabel')() }\n </div>\n );\n },\n\n render()\n {\n let renderBody = this.NTabs.tempValue === this.name;\n\n if ( this.NTabs.tempValue !== this.name && this.keep ) {\n renderBody = this.init;\n }\n\n if ( this.NTabs.tempValue !== this.name && this.preload ) {\n renderBody = true;\n }\n\n if ( ! renderBody ) {\n return null;\n }\n\n this.init = true;\n\n let classList = [\n 'n-tabs-item'\n ];\n\n let style = {};\n\n if ( this.NTabs.tempValue !== this.name ) {\n style.display = 'none';\n }\n\n if ( this.$slots.raw ) {\n return this.$slots.raw({ style });\n }\n\n let element = 'div';\n\n if ( ! this.relative && ! this.NTabs.relative ) {\n element = resolveComponent('NScrollbar');\n }\n\n return h(element, { class: classList, style }, this.$slots);\n }\n}\n","import { Arr, Dom, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTags',\n\n provide()\n {\n return {\n NTags: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n tags: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n init: false, elements: [], tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTag(tab)\n {\n Arr.add(this.elements, tab,\n { label: tab.label });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTag(tab)\n {\n Arr.remove(this.elements,\n { label: tab.label });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n },\n\n render()\n {\n let classList = [\n 'n-tags',\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { Arr, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTagsItem',\n\n inject: {\n\n NTags: {\n default: undefined\n }\n\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return -1;\n },\n type: [String, Number]\n },\n\n color: {\n default()\n {\n return 0;\n },\n type: [String, Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n },\n\n beforeMount()\n {\n if ( this.NTags ) {\n this.NTags.addTag(this);\n }\n },\n\n beforeUnmount()\n {\n if ( this.NTags ) {\n this.NTags.removeTag(this);\n }\n },\n\n renderIcon()\n {\n if ( Any.isEmpty(this.icon) ) {\n return null;\n }\n\n return (\n <i class={this.icon}></i>\n );\n },\n\n renderLabel()\n {\n return (\n <span>{this.$slots.default ? this.$slots.default() : this.label}</span>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NTags ) {\n size = this.NTags.size;\n }\n\n let classList = [\n 'n-tags-item',\n 'n-tags-item--' + size,\n ,\n ];\n\n if ( this.type === -1 ) {\n classList.push('n-tags-item--color-' + this.color);\n }\n\n if ( this.type !== -1 ) {\n classList.push('n-tags-item--color-' + this.type);\n }\n\n return (\n <div class={classList}>\n {[this.ctor('renderIcon')(), this.ctor('renderLabel')()]}\n </div>\n );\n }\n\n}\n","import { Arr, Dom, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCollapse',\n\n provide()\n {\n return {\n NCollapse: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n init: false, elements: [], tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTab(tab)\n {\n Arr.add(this.elements, tab,\n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTab(tab)\n {\n Arr.remove(this.elements,\n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n showTab(value)\n {\n if ( Arr.has(this.tempValue, value) ) {\n return;\n }\n\n Arr.add(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n hideTab(value)\n {\n if ( ! Arr.has(this.tempValue, value) ) {\n return;\n }\n\n Arr.remove(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n toggleTab(value)\n {\n Arr.toggle(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n },\n\n render()\n {\n let classList = [\n 'n-collapse',\n 'n-collapse--' + this.size,\n 'n-collapse--' + this.type\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { Arr, Any, Dom } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NCollapseItem',\n\n inject: {\n\n NCollapse: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NCollapseItem: this\n };\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n name: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n preload: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n keep: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n methods: {\n\n showTab()\n {\n this.NCollapse.showTab(this.name);\n },\n\n hideTab()\n {\n this.NCollapse.hideTab(this.name);\n },\n\n toggleTab()\n {\n this.NCollapse.toggleTab(this.name);\n }\n\n },\n\n data()\n {\n return {\n _key: null, init: false, dragger: 0\n }\n },\n\n beforeMount()\n {\n this.NCollapse.addTab(this);\n },\n\n beforeUnmount()\n {\n this.NCollapse.removeTab(this);\n },\n\n renderHeaderIcon()\n {\n if ( !this.$slots.icon && !this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-collapse__header-icon\">\n {this.$slots.icon && this.$slots.icon() || <i class={this.icon}></i>}\n </div>\n );\n },\n\n renderHeaderLabel()\n {\n return (\n <div class=\"n-collapse__header-label\">\n {this.$slots.label && this.$slots.label() || <span>{this.label}</span>}\n </div>\n );\n },\n\n renderHeaderAngle()\n {\n return (\n <div class=\"n-collapse__header-angle\">\n {this.$slots.angle && this.$slots.angle() || <i class={nano.Icons.angleRight}></i>}\n </div>\n );\n },\n\n renderHeader()\n {\n if ( !this.label && !this.$slots.label ) {\n return null;\n }\n\n let classList = [\n 'n-collapse__header'\n ];\n\n if ( Arr.has(this.NCollapse.tempValue, this.name) ) {\n classList.push('n-active');\n }\n\n let props = {\n onClick: () => this.toggleTab(this.name)\n };\n\n props['onDragenter'] = (event) => {\n\n this.dragger ++;\n\n if ( this.dragger !== 1 ) {\n return;\n }\n\n this.showDelay = setTimeout(() => {\n this.showTab(this.name);\n }, 350);\n };\n\n props['onDragleave'] = (event) => {\n\n this.dragger --;\n\n if ( this.dragger !== 0 ) {\n return;\n }\n\n clearTimeout(this.showDelay);\n };\n\n props.style = {\n order: this.sort + 1,\n };\n\n return (\n <div ref=\"header\" class={classList} {...props}>\n {this.ctor('renderHeaderIcon')()}\n {this.ctor('renderHeaderLabel')()}\n {this.ctor('renderHeaderAngle')()}\n </div>\n );\n },\n\n renderBody()\n {\n let classList = [\n 'n-collapse__body'\n ];\n\n let tempValue = Arr.clone(this.NCollapse.tempValue);\n\n if ( !this.label && !this.$slots.label ) {\n tempValue.push(this.name);\n }\n\n let renderBody = Arr.has(tempValue, this.name);\n\n if ( !Arr.has(tempValue, this.name) && this.keep ) {\n renderBody = this.init;\n }\n\n if ( !Arr.has(tempValue, this.name) && this.preload ) {\n renderBody = true;\n }\n\n if ( !renderBody && this.label ) {\n return null;\n }\n\n this.init = true;\n\n let style = {\n order: this.sort + 2\n };\n\n if ( !Arr.has(tempValue, this.name) ) {\n style.display = 'none';\n }\n\n let element = 'div';\n\n if ( !this.relative && !this.NCollapse.relative ) {\n element = resolveComponent('NScrollbar');\n }\n\n return h(element, { class: classList, style, }, this.$slots);\n },\n\n render()\n {\n return [\n this.ctor('renderHeader')(), this.ctor('renderBody')()\n ];\n }\n}\n","import { Any, Arr, Obj, Dom, Event, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTable',\n\n provide()\n {\n return {\n NTable: this\n };\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n visible: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n expanded: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n filter: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n sortProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n sortDir: {\n default()\n {\n return 'desc';\n },\n type: [String]\n },\n\n closeFilterOnEnter: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n safezone: {\n default()\n {\n return (height) => height * 0.51;\n }\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 38;\n },\n type: [Number]\n },\n\n itemOffset: {\n default()\n {\n return 30;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderSelect: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderExpand: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return () => true;\n }\n },\n\n removeNode: {\n default()\n {\n return () => true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n },\n\n },\n\n computed: {\n\n checked()\n {\n return !!this.tempSelected.length &&\n this.tempSelected.length === this.items.length;\n },\n\n intermediate()\n {\n return !!this.tempSelected.length &&\n this.tempSelected.length !== this.items.length\n }\n\n },\n\n data()\n {\n return {\n uid: UUID(),\n elements: [],\n tempVisible: this.visible,\n tempVisibleProps: [],\n tempSelected: this.selected,\n tempSortProp: this.sortProp,\n tempSortDir: this.sortDir,\n tempFilter: this.filter,\n tempFilterProps: [],\n }\n },\n\n mounted()\n {\n this.$watch('tempVisible',\n this.makeVisibleProps, { deep: true });\n\n if ( !this.tempVisible.length ) {\n Arr.each(this.elements, this.detectVisible);\n }\n },\n\n watch: {\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n },\n\n methods: {\n\n addColumn(column)\n {\n Arr.add(this.elements, column,\n { uid: column.uid });\n },\n\n removeColumn(column)\n {\n Arr.remove(this.elements,\n { uid: column.uid });\n },\n\n getColumnIndex(column)\n {\n if ( !Any.isString(column) ) {\n column = column['prop'];\n }\n\n return Arr.findIndex(this.tempVisibleProps,\n column);\n },\n\n getColumnVisiblity(column)\n {\n if ( !Any.isString(column) ) {\n column = column.prop;\n }\n\n return Arr.has(this.tempVisible, column);\n },\n\n getColumnSorted(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n if ( this.tempSortProp !== prop ) {\n return null;\n }\n\n return this.tempSortDir;\n },\n\n getColumnFilter(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n return Arr.find(this.tempFilter, {\n property: prop\n });\n },\n\n getColumnFiltered(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n return Arr.has(this.tempFilterProps, prop);\n },\n\n detectVisible(column)\n {\n if ( column.detectVisibity() ) {\n Arr.add(this.tempVisible, column.prop);\n }\n },\n\n makeVisibleProps()\n {\n this.tempVisibleProps = Arr.intersect(\n Arr.extract(this.elements, 'prop'), this.tempVisible);\n\n this.$nextTick(this.$refs.scrollbar.onResize);\n },\n\n sortByColumn(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n\n let dir = this.tempSortDir;\n\n if ( prop === this.tempSortProp && this.tempSortDir === 'desc' ) {\n dir = 'asc';\n }\n\n if ( prop === this.tempSortProp && this.tempSortDir === 'asc' ) {\n dir = 'desc';\n }\n\n if ( this.tempSortDir !== dir ) {\n this.$emit('update:sortDir', this.tempSortDir = dir);\n }\n\n if ( this.tempSortProp !== prop ) {\n this.$emit('update:sortProp', this.tempSortProp = prop);\n }\n\n this.$emit('sort', this.tempSortProp, this.tempSortDir);\n },\n\n replaceFilter(filter, search)\n {\n Arr.replace(this.tempFilter, filter, search);\n\n let filters = Arr.filter(this.tempFilter, (filter) => {\n return Arr.has(this.tempFilterProps, filter.property);\n });\n\n this.$emit('update:filter', filters);\n\n this.$emit('filter', filters, this.tempFilterProps);\n },\n\n resetFilter()\n {\n this.tempFilter = this.tempFilterProps = [];\n\n Event.fire('NTable:reset', this.uid);\n\n this.$emit('update:filter', this.tempFilter);\n\n this.$emit('filter', this.tempFilter, this.tempFilterProps);\n },\n\n selectAll()\n {\n this.$refs.draggable.selectAll();\n },\n\n highlightNode(value, key = null)\n {\n this.$refs.draggable.highlightNode(value, key);\n },\n\n syncCurrent()\n {\n return this.$refs.draggable.syncCurrent();\n },\n\n refreshCurrent()\n {\n this.$refs.draggable.refreshCurrent();\n },\n\n },\n\n renderHandle()\n {\n if ( !this.renderHandle ) {\n return null;\n }\n\n return (\n <div class=\"n-draglist-item__handle\">\n { /* Only used in row */}\n </div>\n )\n },\n\n renderExpand()\n {\n if ( !this.renderExpand ) {\n return null;\n }\n\n return (\n <div class=\"n-draglist-item__expand\">\n { /* Only used in row */}\n </div>\n )\n },\n\n renderSelect()\n {\n if ( !this.renderSelect ) {\n return null;\n }\n\n let props = {\n modelValue: this.checked,\n intermediate: this.intermediate,\n disabled: !this.items.length,\n onClick: this.selectAll\n };\n\n return (\n <div class=\"n-draglist-item__select\">\n <NCheckbox {...props}></NCheckbox>\n </div>\n );\n },\n\n renderBody(props)\n {\n let columns = Obj.each(this.elements, (column) => {\n return column.disabled ? null : column.ctor('renderBody')(props);\n });\n\n return Obj.values(columns);\n },\n\n renderContext()\n {\n let columns = Obj.each(this.elements, (column) => {\n\n if ( column.disabled ) {\n return null;\n }\n\n return (\n <NCheckbox class=\"n-table__checkbox\" value={column.prop}>\n {column.label}\n </NCheckbox>\n );\n });\n\n return (\n <NPopover trigger=\"context\" width={220}>\n <NCheckboxGroup vModel={this.tempVisible} align=\"vertical\">\n {Obj.values(columns)}\n </NCheckboxGroup>\n </NPopover>\n );\n },\n\n renderHead()\n {\n let defaultRender = [\n this.ctor('renderHandle')(),\n this.ctor('renderExpand')(),\n this.ctor('renderSelect')(),\n this.ctor('renderContext')()\n ];\n\n let columns = Obj.each(this.elements, (column) => {\n return column.disabled ? null : column.ctor('renderHead')();\n });\n\n return (\n <div class=\"n-table__header\">\n {defaultRender} {Obj.values(columns)}\n </div>\n );\n },\n\n render()\n {\n let except = [\n 'visible', 'filter', 'sortProp',\n 'sortDir', 'closeFilterOnEnter'\n ];\n\n let props = Obj.except(this.$props, except, {\n items: this.items,\n selected: this.tempSelected,\n overflowX: false,\n useKeys: this.useKeys,\n // renderNode: this.ctor('renderBody')\n });\n\n props['onRowClick'] = (...args) => {\n this.$emit('row-click', ...args);\n }\n\n props['onRowDblclick'] = (...args) => {\n this.$emit('row-dblclick', ...args);\n }\n\n props['onUpdate:items'] = (value) => {\n this.$emit('update:items', value);\n }\n\n props['onUpdate:current'] = (value) => {\n this.$emit('update:current', value);\n }\n\n props['onUpdate:expanded'] = (value) => {\n this.$emit('update:expanded', value);\n }\n\n props['onUpdate:selected'] = (value) => {\n this.$emit('update:selected', this.tempSelected = value);\n }\n\n let draggableHtml = (\n <div class=\"n-table__body\">\n <NDraglist ref=\"draggable\" {...props} offsetX={25}>\n {{ default: this.ctor('renderBody') }}\n </NDraglist>\n </div>\n );\n\n return (\n <div class=\"n-table\">\n <NScrollbar ref=\"scrollbar\" class=\"n-table__wrap\" fixture={true} overflowY={false}>\n <div class=\"n-table__inner\">\n {[this.ctor('renderHead')(), draggableHtml]}\n </div>\n </NScrollbar>\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n },\n\n}","import { Any, Arr, Obj, Str, Dom, UUID, Num, Locale } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NTableColumn',\n\n inject: {\n\n NTable: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n prop: {\n default()\n {\n return UUID();\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'string';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'left';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n filter: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n visible: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean, Function]\n },\n\n matrixDisabled: {\n default()\n {\n return false;\n },\n type: [Boolean, Function]\n },\n\n breakpoint: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n previewProp: {\n default()\n {\n return 'preview';\n },\n type: [String]\n },\n\n matrix: {\n default()\n {\n return - 1;\n },\n type: [Number, String]\n },\n\n matrixProp: {\n default()\n {\n return 'matrix';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Object, Array, Function]\n },\n\n optionsValue: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n sortProp: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n filterProp: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n fluid: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n fixedWidth: {\n default()\n {\n return 0;\n }\n },\n\n width: {\n default()\n {\n return 0;\n }\n },\n\n minWidth: {\n default()\n {\n return 120;\n }\n },\n\n maxWidth: {\n default()\n {\n return 0;\n }\n },\n\n emptyText: {\n default()\n {\n return '-';\n },\n type: [String]\n },\n\n undefinedText: {\n default()\n {\n return Locale.trans('-');\n },\n type: [String]\n },\n\n trueText: {\n default()\n {\n return Locale.trans('Yes');\n },\n type: [String]\n },\n\n falseText: {\n default()\n {\n return Locale.trans('No');\n },\n type: [String]\n },\n\n datetimeFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm');\n },\n type: [String]\n },\n\n allowUncheck: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n matrixValues()\n {\n if ( this.type !== 'matrix' ) {\n return;\n }\n\n let values = {};\n\n if ( Any.isEmpty(this.modelValue) ) {\n return values;\n }\n\n Arr.each(this.modelValue, (item) => {\n Obj.set(values, item[this.NTable.uniqueProp],\n Num.matrix(item[this.matrixProp]));\n });\n\n return values;\n }\n\n },\n\n provide()\n {\n return {\n NTableColumn: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(), tempWidth: 0\n };\n },\n\n methods: {\n\n detectVisibity()\n {\n let visible = this.visible;\n\n if ( this.breakpoint ) {\n visible &= Dom.find(this.NTable.$el).width() > this.breakpoint;\n }\n\n return visible;\n },\n\n sortByColumn(event)\n {\n if ( !Arr.has([0, 1], event.which) ) {\n return;\n }\n\n if ( !Dom.find(event.target).closest('.n-table-column__filter') ) {\n this.NTable.sortByColumn(this);\n }\n },\n\n },\n\n beforeMount()\n {\n this.changedStates = {};\n this.NTable.addColumn(this);\n },\n\n beforeUnmount()\n {\n this.NTable.removeColumn(this);\n },\n\n renderHead()\n {\n if ( !this.NTable.getColumnVisiblity(this) ) {\n return null;\n }\n\n let classList = [\n 'n-table-column',\n 'n-table-column--' + this.align,\n 'n-table-column--' + this.type,\n ];\n\n let sortDirection = this.NTable.getColumnSorted(this);\n\n if ( sortDirection ) {\n classList.push('n-sorted', 'n-' + sortDirection);\n }\n\n if ( this.fluid || !this.width ) {\n classList.push('n-fluid');\n }\n\n if ( this.fixedWidth ) {\n classList.push('n-fixed');\n }\n\n if ( this.NTable.getColumnFiltered(this) ) {\n classList.push('n-filtered');\n }\n\n let style = {};\n\n if ( this.fixedWidth ) {\n style.width = this.fixedWidth + 'px';\n }\n\n if ( this.width ) {\n style.flexBasis = this.width + 'px';\n }\n\n let props = {\n modelValue: this.tempWidth,\n width: this.width,\n minWidth: this.minWidth,\n maxWidth: this.maxWidth,\n disabled: !!this.fixedWidth,\n group: [this.NTable.uid],\n };\n\n props['onUpdate:modelValue'] = (value) => {\n this.tempWidth = value;\n }\n\n if ( this.sort ) {\n props.onMousedown = this.sortByColumn;\n }\n\n return (\n <NResizer ref=\"column\" class={classList} style={style} {...props}>\n {this.ctor('renderHeadSort')()}\n {this.ctor('renderHeadLabel')()}\n {this.ctor('renderHeadFilter')()}\n </NResizer>\n );\n },\n\n renderHeadLabel()\n {\n let classList = [\n 'n-table-column__label'\n ];\n\n let labelHtml = (\n <div class={classList}>\n <span>{this.label}</span>\n </div>\n );\n\n if ( Any.isEmpty(this.tooltip) ) {\n return labelHtml;\n }\n\n let tooltipHtml = (\n <NPopover type=\"tooltip\">{this.tooltip}</NPopover>\n );\n\n return [labelHtml, tooltipHtml];\n },\n\n renderHeadSort()\n {\n if ( !this.sort ) {\n return null;\n }\n\n return (\n <div class=\"n-table-column__sort\">\n <i>{ /* Sorting angles */}</i>\n </div>\n )\n },\n\n renderHeadFilter()\n {\n if ( !this.filter ) {\n return null;\n }\n\n let angleHtml = (\n <div class=\"n-table-column__filter\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n\n let component = resolveComponent('NTableFilter' +\n Str.ucfirst(this.type));\n\n return [\n angleHtml, h(component, { column: this })\n ];\n },\n\n renderBody(props)\n {\n if ( !this.NTable.getColumnVisiblity(this) ) {\n return null;\n }\n\n let uid = props.value[this.NTable.uniqueProp]\n + this.uid;\n\n let classList = [\n 'n-table-cell',\n 'n-table-cell--' + this.align,\n 'n-table-cell--' + this.type,\n ];\n\n if ( this.fluid ) {\n classList.push('n-fluid');\n }\n\n if ( this.tempWidth ) {\n classList.push('n-fixed');\n }\n\n let index = this.NTable.getColumnIndex(this);\n\n let offset = 0;\n\n if ( index === 0 ) {\n offset = props.value.depth * this.NTable.itemOffset;\n }\n\n let style = {\n width: (this.tempWidth - offset) + 'px'\n };\n\n if ( this.minWidth ) {\n style.minWidth = (this.minWidth - offset) + 'px';\n }\n\n if ( this.maxWidth ) {\n style.maxWidth = (this.maxWidth - offset) + 'px';\n }\n\n let passed = Obj.except(this.$attrs, [], {\n ...props, uid: uid, class: classList, style: style, column: this\n });\n\n let component = resolveComponent('NTableCell' +\n Str.ucfirst(this.type));\n\n return h(component, passed);\n },\n\n render()\n {\n return null;\n }\n\n}","import { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NTable: {\n default: undefined\n },\n\n NDraggableItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n uid: {\n required: true\n },\n\n column: {\n required: true\n },\n\n item: {\n required: true\n },\n\n value: {\n required: true\n },\n\n copy: {\n required: true\n },\n\n remove: {\n required: true\n },\n\n\n },\n\n computed: {\n\n input()\n {\n return Obj.get(this.item, this.column.prop);\n }\n\n },\n\n data()\n {\n return { init: false };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => this.init = true, 20);\n },\n\n beforeUnmount()\n {\n clearTimeout(this.timer);\n },\n\n methods: {\n\n setFirstState(state)\n {\n Obj.set(this.column.changedStates,\n this.uid, this.firstState = state);\n }\n\n },\n\n render()\n {\n if ( this.column.$slots.default ) {\n return this.column.$slots.default(this);\n }\n \n return (\n <div>{ this.input }</div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellString',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertString(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellBoolean',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n return (\n <div>\n <span>{ Any.convertBoolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellDatetime',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n return (\n <div>\n <span>{ Any.convertDatetime(this.input, this.column.datetimeFormat, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellOption',\n\n extends: TableCell,\n\n renderOption(value)\n {\n let options = this.column.options;\n\n if ( Any.isFunction(options) ) {\n options = this.column.options(this);\n }\n\n options = Arr.each(options, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let prop = this.column.optionsValue;\n\n let option = Arr.find(options, (item) => {\n return Obj.get(item, prop) == value;\n });\n\n if ( ! option ) {\n return [this.column.emptyText];\n }\n\n return Obj.get(option, this.column.optionsLabel,\n this.column.undefinedText);\n },\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n let input = ! Any.isObject(this.input) ?\n [this.input] : this.input;\n\n return (\n <div>\n <span>{ Arr.each(input, this.ctor('renderOption')) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellImage',\n\n extends: TableCell,\n\n computed: {\n\n preview()\n {\n return Obj.get(this.item, this.column.previewProp);\n }\n\n },\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n let classList = [\n 'n-table-cell',\n 'n-table-cell--' + this.column.type\n ];\n\n let props = {\n fit: 'contain',\n }\n\n return (\n <div class={classList}>\n <NPreview file={this.preview || this.input} thumb={this.input} {...props} />\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Num, Any, Obj, Arr, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellMatrix',\n\n extends: TableCell,\n\n beforeMount()\n {\n this.firstState = Obj.get(this.column.changedStates,\n this.uid);\n },\n\n methods: {\n\n toggleMatrix()\n {\n if ( this.column.matrix === -1 ) {\n return this.toggleSelect();\n }\n\n let itemList = this.column.modelValue;\n\n if ( itemList === null ) {\n itemList = [];\n }\n\n let item = Arr.find(itemList, {\n [this.NTable.uniqueProp]: this.value[this.NTable.uniqueProp]\n });\n\n if ( ! item ) {\n item = Obj.assign({}, this.item, { [this.column.matrixProp]: 0 });\n }\n\n let currentMatrix = Num.int(item[this.column.matrixProp]);\n\n let matrix = Arr.toggle(Num.matrix(currentMatrix),\n Num.int(this.column.matrix));\n\n item[this.column.matrixProp] = Num.combine(matrix);\n\n Arr.replace(itemList, item, {\n [this.NTable.uniqueProp]: item[this.NTable.uniqueProp]\n });\n\n this.column.$emit('update:modelValue', itemList);\n },\n\n toggleSelect()\n {\n let itemList = this.column.modelValue;\n\n if ( itemList === null ) {\n itemList = [];\n }\n\n let fallback = Obj.assign({}, this.item, {\n [this.column.matrixProp]: this.column.matrix\n });\n\n let finder = {\n [this.NTable.uniqueProp]: this.value[this.NTable.uniqueProp],\n };\n\n let item = Arr.find(itemList, finder);\n\n if ( ! item ) {\n Arr.add(itemList, fallback);\n } else {\n Arr.remove(itemList, finder);\n }\n\n this.column.$emit('update:modelValue', itemList);\n },\n\n isChecked()\n {\n let matrix = Obj.get(this.column.matrixValues,\n this.item[this.NTable.uniqueProp]);\n\n if ( ! matrix ) {\n return false;\n }\n\n let value = Num.int(this.column.matrix);\n\n if ( value === -1 ) {\n return true;\n }\n\n return Arr.has(matrix, value);\n },\n\n isDisabled()\n {\n if ( ! Any.isFunction(this.column.matrixDisabled) ) {\n return this.column.matrixDisabled;\n }\n\n return this.column.matrixDisabled(this);\n }\n\n },\n\n render()\n {\n let checked = this.isChecked();\n\n if ( this.firstState === null ) {\n this.setFirstState(checked);\n }\n\n if ( ! this.init ) {\n return null;\n }\n\n let classList = [\n 'n-table-cell--checkbox'\n ];\n\n if ( this.firstState !== checked ) {\n classList.push('n-changed');\n }\n\n if ( checked ) {\n classList.push('n-checked');\n }\n\n let isDisabled = this.isDisabled();\n\n if ( this.column.allowUncheck ) {\n isDisabled = isDisabled && ! checked;\n }\n\n if ( isDisabled ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( ! isDisabled ) {\n props.onClick = this.toggleMatrix;\n }\n\n return (\n <div class={classList} {...props}>\n <i class={nano.Icons.checked}></i>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Num, Any, Obj, Arr } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellSelect',\n\n extends: TableCell,\n\n beforeMount()\n {\n this.firstState = Obj.get(this.column.changedStates,\n this.uid);\n },\n\n methods: {\n\n toggleSelect()\n {\n let item = null;\n\n if ( ! this.isChecked() ) {\n item = Obj.assign({}, this.item);\n }\n\n this.column.$emit('update:modelValue', item);\n },\n\n isChecked()\n {\n if ( Any.isEmpty(this.column.modelValue) ) {\n return false;\n }\n\n return Obj.get(this.column.modelValue, this.NTable.uniqueProp) ===\n this.value[this.NTable.uniqueProp];\n },\n\n isDisabled()\n {\n if ( ! Any.isEmpty(this.column.modelValue) ) {\n return true;\n }\n\n if ( Any.isFunction(this.column.matrixDisabled) ) {\n return this.column.matrixDisabled(this);\n }\n\n if ( ! Any.isFunction(this.column.disabled) ) {\n return this.column.disabled;\n }\n\n return this.column.disabled(this);\n },\n\n },\n\n render()\n {\n let checked = this.isChecked();\n\n if ( this.firstState === null ) {\n this.setFirstState(checked);\n }\n\n if ( ! this.init ) {\n return null;\n }\n\n let classList = [\n 'n-table-cell--checkbox'\n ];\n\n if ( this.firstState !== checked ) {\n classList.push('n-changed');\n }\n\n if ( checked ) {\n classList.push('n-checked');\n }\n\n let isDisabled = this.isDisabled();\n\n if ( this.column.allowUncheck ) {\n isDisabled = isDisabled && ! checked;\n }\n\n if ( isDisabled ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( ! isDisabled ) {\n props.onClick = this.toggleSelect;\n }\n\n return (\n <div class={classList} {...props}>\n <i class={nano.Icons.checked}></i>\n </div>\n );\n }\n\n}\n","import {Arr, Obj, Any, Dom, Event, UUID} from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NTable: {\n default: undefined\n }\n\n },\n\n props: {\n\n column: {\n required: true\n }\n\n },\n\n computed: {\n\n tempFilter()\n {\n return this.NTable.getColumnFilter(this.column);\n },\n\n canReset()\n {\n return ! this.NTable.getColumnFiltered(this.column);\n },\n\n canApply()\n {\n return ! Any.isEmpty(this.filter.value);\n }\n\n },\n\n data()\n {\n return {\n filter: this.getFilterClone(), visible: false\n };\n },\n\n beforeMount()\n {\n this.mountFilter();\n },\n\n mounted()\n {\n Event.bind('NTable:reset', \n this.resetFilter, this._.uid);\n\n Dom.find(document).on('keydown', \n this.onKeydown, this._.uid);\n },\n\n beforeUnmount()\n {\n Event.unbind('NTable:reset', \n this._.uid);\n\n Dom.find(document).off('keydown', \n null, this._.uid);\n },\n\n methods: {\n\n getFilterClone()\n {\n let tempFilter = this.NTable.getColumnFilter(this.column);\n\n if ( Any.isEmpty(tempFilter) ) {\n return null;\n }\n\n return Obj.clone(tempFilter);\n },\n\n getFilterProp()\n {\n return this.column.filterProp || \n this.column.prop;\n },\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null,\n property: this.getFilterProp(), \n };\n },\n\n mountFilter()\n {\n if ( this.filter ) {\n return this.applyFilter();\n }\n\n this.filter = this.getDefaultFilter();\n\n if ( ! this.canApply ) {\n return;\n }\n\n Arr.add(this.NTable.tempFilter, this.filter, {\n property: this.getFilterProp()\n });\n },\n\n resetFilter(uid)\n {\n if ( this.NTable.uid !== uid ) {\n return;\n }\n\n this.filter = this.getDefaultFilter();\n\n Arr.add(this.NTable.tempFilter, this.filter, {\n property: this.getFilterProp()\n });\n },\n\n onKeydown(event)\n {\n if ( ! this.visible ) {\n return;\n }\n\n if ( event.which === 13 && this.canApply ) {\n this.applyFilter();\n }\n\n if ( event.which === 13 && ! this.canApply ) {\n this.clearFilter();\n }\n\n let closeAnyway = event.which === 13 &&\n this.NTable.closeFilterOnEnter;\n\n if ( closeAnyway || event.which === 27 ) {\n this.$refs.popover.close();\n }\n },\n\n applyFilter()\n {\n let filter = Obj.clone(this.filter);\n\n Arr.add(this.NTable.tempFilterProps, \n this.getFilterProp());\n\n this.NTable.replaceFilter(filter, {\n property: this.getFilterProp()\n });\n },\n\n clearFilter()\n {\n let filter = this.getDefaultFilter();\n\n Arr.remove(this.NTable.tempFilterProps, \n this.getFilterProp());\n\n this.NTable.replaceFilter(filter, {\n property: this.getFilterProp()\n });\n\n this.filter = filter;\n }\n\n },\n\n renderForm()\n {\n return null;\n },\n\n renderApply()\n {\n let props = {\n type: 'primary',\n link: true,\n size: 'xs',\n disabled: ! this.canApply\n };\n\n return (\n <NButton {...props} onClick={this.applyFilter}>\n { this.trans('Apply') }\n </NButton>\n );\n },\n\n renderReset()\n {\n let props = {\n type: 'danger',\n link: true,\n size: 'xs',\n disabled: this.canReset,\n };\n\n return (\n <NButton {...props} onClick={this.clearFilter}>\n { this.trans('Reset') }\n </NButton>\n );\n },\n\n renderFooter()\n {\n return (\n <div class=\"n-table-filter__footer\">\n { this.ctor('renderReset')() }\n { this.ctor('renderApply')() }\n </div>\n )\n },\n\n render()\n {\n let props = {\n class: 'n-table-filter__popover',\n trigger: 'click',\n size: 'sm',\n width: 220,\n }\n\n return (\n <NPopover ref=\"popover\" vModel={this.visible} {...props}>\n {\n { default: this.ctor('renderForm'), footer: this.ctor('renderFooter') }\n }\n </NPopover>\n );\n }\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Dom, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterString',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'li',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n li: this.trans('Includes value'),\n nl: this.trans('Excludes value'),\n eq: this.trans('Equal value'),\n ne: this.trans('Except value'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NInput size=\"sm\" vModel={this.filter.value} />\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterBoolean',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'in',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n 1: this.trans(this.column.trueText),\n 0: this.trans(this.column.falseText),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.value} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\n\nexport default {\n\n name: 'NTableFilterDatetime',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'eq',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n eq: this.trans('Exact date'),\n lt: this.trans('Before date'),\n gt: this.trans('After date'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NDatepicker size=\"sm\" vModel={this.filter.value} format={this.column.datetimeFormat} />\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Arr, Obj, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterOption',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type,\n value: [],\n operator: 'in',\n property: this.getFilterProp(),\n };\n }\n\n },\n\n renderOption(value)\n {\n let props = {\n value: Obj.get(value, this.column.optionsValue)\n };\n\n return (\n <NCheckbox {...props}>{ Obj.get(value, this.column.optionsLabel) }</NCheckbox>\n );\n },\n\n renderForm()\n {\n let items = this.column.options;\n\n if ( Any.isFunction(items) ) {\n items = this.column.options(this);\n }\n\n items = Arr.each(items, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let options = {\n in: this.trans('Includes value'),\n ni: this.trans('Excludes value'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NCheckboxGroup size=\"sm\" align=\"vertical\" vModel={this.filter.value}>\n { Arr.each(items, this.ctor('renderOption')) }\n </NCheckboxGroup>\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import { Str, Num, Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPaginator',\n\n props: {\n\n page: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n limit: {\n default()\n {\n return 100;\n },\n type: [Number]\n },\n\n limitOptions: {\n default()\n {\n return [25, 50, 100, 500, 1000, 2500];\n },\n },\n\n total: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n maxPages: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n layout: {\n default()\n {\n return [\n 'limit', 'count', 'spacer', 'goto', 'pages'\n ]\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n pages()\n {\n return Num.ceil(this.total / this.tempLimit);\n },\n\n pageOptions()\n {\n return Arr.make(this.pages || 1);\n }\n\n },\n\n data()\n {\n return {\n tempPage: this.page, tempLimit: this.limit,\n };\n },\n\n\n\n methods: {\n\n forcePage(page)\n {\n if ( page !== this.tempPage ) {\n this.tempPage = page;\n }\n },\n\n updatePaginate()\n {\n let paginate = {\n page: this.tempPage, limit: this.tempLimit\n };\n\n this.$emit('paginate', paginate);\n },\n\n onPrevPage()\n {\n this.onPageInput(this.tempPage - 1);\n },\n\n onNextPage()\n {\n this.onPageInput(this.tempPage + 1);\n },\n\n onFirstPage()\n {\n this.onPageInput(1);\n },\n\n onLastPage()\n {\n this.onPageInput(this.pages);\n },\n\n onPageInput(value)\n {\n this.$emit('update:page', this.tempPage = value);\n\n this.updatePaginate();\n },\n\n onLimitInput(value)\n {\n if ( this.tempLimit !== value ) {\n this.$emit('update:page', this.tempPage = 1);\n }\n\n this.$emit('update:limit', this.tempLimit = value);\n\n this.updatePaginate();\n },\n\n },\n\n watch: {\n\n page(value)\n {\n if ( value !== this.tempPage ) {\n this.tempPage = value;\n }\n },\n\n limit(value)\n {\n if ( value !== this.tempLimit ) {\n this.tempLimit = value;\n }\n }\n\n },\n\n renderLimit()\n {\n let props = {\n modelValue: this.tempLimit,\n size: this.size,\n type: this.type,\n optionsValue: '$value.value',\n optionsLabel: '$value.label',\n };\n\n props.options = Arr.each(this.limitOptions, (limit) => {\n return {\n value: limit, label: this.choice(':count items', limit)\n };\n });\n\n props['onUpdate:modelValue'] = this.onLimitInput;\n\n return (\n <div class=\"n-paginator__limit\">\n <NSelect {...props} />\n </div>\n );\n },\n\n renderCount()\n {\n return (\n <div class=\"n-paginator__count\">\n { this.choice('No items|Total :count item|Total :count items', this.total) }\n </div>\n );\n },\n\n renderSpacer()\n {\n return (\n <div class=\"n-paginator__spacer\">\n { /* Nothing :( */ }\n </div>\n );\n },\n\n renderGoto()\n {\n if ( this.pageOptions.length > 500 ) {\n return null;\n }\n\n let props = {\n modelValue: this.tempPage,\n size: this.size,\n type: this.type,\n undefinedText: '?',\n optionsValue: '$value.value',\n optionsLabel: '$value.label',\n };\n\n props.options = Arr.reduce(this.pageOptions, (merge, index) => {\n return Arr.push(merge, {\n value: index, label: index\n });\n }, []);\n\n props['onUpdate:modelValue'] = this.onPageInput;\n\n return (\n <div class=\"n-paginator__goto\">\n <NSelect {...props} />\n </div>\n );\n },\n\n renderPrev()\n {\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleLeft,\n onClick: this.onPrevPage\n };\n\n if ( this.tempPage - 1 < 1 ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderNext()\n {\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleRight,\n onClick: this.onNextPage\n };\n\n if ( this.tempPage + 1 > this.pages ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderFirst()\n {\n if ( this.pages < this.maxPages ) {\n return null;\n }\n\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleDoubleLeft,\n onClick: this.onFirstPage\n };\n\n if ( this.tempPage - 1 < 1 ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderLast()\n {\n if ( this.pages < this.maxPages ) {\n return null;\n }\n\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleDoubleRight,\n onClick: this.onLastPage\n };\n\n if ( this.tempPage + 1 > this.pages ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderPage(index)\n {\n let page = this.tempPage;\n\n let pages = Math.abs(this.maxPages / 2);\n\n if ( page < pages ) {\n page = pages;\n }\n\n let global = Array(this.pages).length;\n\n if ( page > global - pages ) {\n page = global - pages;\n }\n\n let current = Num.int(index);\n\n if ( current < page - pages ) {\n return null;\n }\n\n if ( current > Math.max(1, page + pages) ) {\n return null;\n }\n\n let props = {\n type: this.type,\n size: this.size,\n };\n\n if ( current === this.tempPage ) {\n props.disabled = true;\n }\n\n props.onClick = () => {\n this.onPageInput(current);\n };\n\n return (\n <NButton {...props}>{ current }</NButton>\n );\n },\n\n renderPages()\n {\n let pages = Arr.each(this.pageOptions, (index) => {\n return this.ctor('renderPage')(index);\n });\n\n return (\n <div class=\"n-paginator__pages\">\n { this.ctor('renderFirst')() }\n { this.ctor('renderPrev')() }\n { ...pages }\n { this.ctor('renderNext')() }\n { this.ctor('renderLast')() }\n </div>\n );\n },\n\n renderSlot(view)\n {\n let renderFunction = this.ctor('render' + \n Str.ucfirst(view));\n\n if ( Any.isFunction(renderFunction) ) {\n return renderFunction();\n }\n\n return this.$slots[view] && this.$slots[view]();\n },\n\n render()\n {\n let className = [\n 'n-paginator',\n 'n-paginator--' + this.size,\n 'n-paginator--' + this.type\n ];\n\n return <div class={className}>\n {\n Arr.each(this.layout, (view) => {\n return this.ctor('renderSlot')(view);\n })\n }\n </div>;\n }\n}\n","import { Arr, Any, Obj, Event, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInfo',\n\n model: {\n prop: 'item'\n },\n\n props: {\n\n item: {\n default()\n {\n return null;\n }\n },\n\n syncEvent: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n uid: UUID(),\n elements: [],\n options: [],\n tempValue: this.item,\n };\n },\n\n watch: {\n\n item(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.bindSyncEvent();\n },\n\n beforeUnmount()\n {\n this.unbindSyncEvent();\n },\n\n updated()\n {\n Any.delay(() => {\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.adaptHeight();\n }\n }, 500);\n },\n\n methods: {\n\n bindSyncEvent()\n {\n if ( !this.syncEvent ) {\n return;\n }\n\n this.options = this.syncEvent;\n\n if ( Any.isFunction(this.options) ) {\n this.options = this.options(this);\n }\n\n let syncFunction = (value, uid = null) => {\n if ( uid === this.options[1] ) {\n this.setValue(value);\n }\n };\n\n Event.bind(this.options[0], syncFunction,\n this.uid);\n },\n\n unbindSyncEvent()\n {\n Event.unbind(this.options[0], this.uid);\n },\n\n setValue(value)\n {\n this.$emit('update:modelValue',\n this.tempValue = value);\n },\n\n addColumn(column)\n {\n Arr.add(this.elements,\n column, { uid: column.uid });\n },\n\n removeColumn(column)\n {\n Arr.remove(this.elements,\n { uid: column.uid });\n },\n\n },\n\n provide()\n {\n return {\n NInfo: this\n };\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={!this.showEmptyIcon} class=\"n-info__empty\">\n {this.$slots.empty && this.$slots.empty() || this.trans('No entry')}\n </NEmptyIcon>\n );\n },\n\n renderBody()\n {\n if ( Any.isEmpty(this.tempValue) ) {\n return this.ctor('renderEmpty')();\n }\n\n let elements = Obj.each(this.elements, (column) => {\n return (\n <div class=\"n-info__column\">\n {column.ctor('renderLabel')({ item: this.tempValue })}\n {column.ctor('renderBody')({ item: this.tempValue })}\n </div>\n );\n });\n\n return (\n <div class=\"n-info__body\">\n {Any.vals(elements)}\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-info',\n 'n-info--' + this.type,\n 'n-info--' + this.size,\n ];\n\n let infoHtml = (\n <NScrollbar ref=\"scrollbar\" relative={this.relative}>\n {this.ctor('renderBody')()}\n </NScrollbar>\n );\n\n return (\n <div class={classList}>\n {[infoHtml, this.$slots.default()]}\n </div>\n );\n }\n}\n","import { UUID, Obj, Locale, Str } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NInfoColumn',\n\n inject: {\n\n NInfo: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n prop: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'string';\n },\n type: [String]\n },\n\n previewProp: {\n default()\n {\n return 'preview';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Object, Array, Function]\n },\n\n optionsValue: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n emptyText: {\n default()\n {\n return Locale.trans('-');\n },\n type: [String]\n },\n\n trueText: {\n default()\n {\n return Locale.trans('Yes');\n },\n type: [String]\n },\n\n falseText: {\n default()\n {\n return Locale.trans('No');\n },\n type: [String]\n },\n\n datetimeFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm');\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n uid: UUID()\n };\n },\n\n beforeMount()\n {\n this.NInfo.addColumn(this);\n },\n\n beforeUnmount()\n {\n this.NInfo.removeColumn(this);\n },\n\n renderLabel()\n {\n if ( this.$slots.label ) {\n return this.$slots.label();\n }\n \n return (\n <div class=\"n-info-column\">\n <span>{this.label}</span>\n </div>\n );\n },\n\n renderBody(props)\n {\n let passed = Obj.except(props, [], {\n column: this\n });\n\n let component = resolveComponent('NInfoField' + \n Str.ucfirst(this.type));\n\n if ( ! component ) {\n return null;\n }\n\n passed.class = [\n 'n-info-field',\n 'n-info-field--' + this.type\n ];\n\n return h(component, passed);\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NInfo: {\n default: undefined\n }\n\n },\n\n props: {\n\n column: {\n required: true\n },\n\n item: {\n required: true\n },\n\n },\n\n computed: {\n\n input()\n {\n return Obj.get(this.item, this.column.prop);\n }\n\n },\n\n render()\n {\n return (\n <div>\n <span>{ this.input }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldString',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertString(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldBoolean',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertBoolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldDatetime',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertDatetime(this.input, this.column.datetimeFormat, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldOption',\n\n extends: InfoField,\n\n renderOption(value)\n {\n let options = this.column.options;\n\n if ( Any.isFunction(options) ) {\n options = this.column.options(this);\n }\n\n let prop = this.column.optionsValue;\n\n options = Arr.each(options, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let option = Arr.find(options, (item) => {\n return Obj.get(item, prop) == value;\n });\n\n if ( ! option ) {\n return [this.column.emptyText];\n }\n\n return Obj.get(option, this.column.optionsLabel,\n this.column.undefinedText);\n },\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n let input = ! Any.isObject(this.input) ?\n [this.input] : this.input;\n\n return (\n <div>\n <span>{ Arr.each(input, this.ctor('renderOption')) }</span>\n </div>\n );\n }\n\n}\n","import InfoField from \"../info-field.jsx\";\nimport { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInfoFieldImage',\n\n extends: InfoField,\n\n computed: {\n\n preview()\n {\n return Obj.get(this.item, this.column.previewProp);\n }\n\n },\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n let props = {\n fit: 'contain',\n };\n\n return (\n <div>\n <NPreview file={this.preview || this.input} thumb={this.input} {...props} />\n </div>\n );\n }\n\n}\n","import { Obj, Arr, Any, Dom } from \"@kizmann/pico-js\";\n\nconst fileMap = {\n image: [\n 'jpg', 'jpeg', 'gif', 'svg', 'png'\n ],\n video: [\n 'mp4', 'webm', 'mov'\n ],\n font: [\n 'woff', 'ttf', 'otf'\n ],\n text: [\n 'csv', 'txt', 'html'\n ],\n application: [\n 'pdf', 'doc', 'xls'\n ]\n}\n\nexport default {\n\n name: 'NPreview',\n\n props: {\n\n file: {\n default()\n {\n return null;\n }\n },\n\n thumb: {\n default()\n {\n return null;\n }\n },\n\n fit: {\n default()\n {\n return 'cover';\n },\n type: [String]\n },\n\n mime: {\n default()\n {\n return null;\n },\n typre: [String]\n },\n\n preview: {\n default()\n {\n return true;\n },\n typre: [Boolean]\n },\n\n showSrc: {\n default()\n {\n return true;\n },\n typre: [Boolean]\n },\n\n map: {\n default()\n {\n return fileMap;\n },\n type: [Object]\n }\n\n },\n\n computed: {\n\n tempFile()\n {\n return this.file || this.thumb;\n },\n\n tempThumb()\n {\n return this.thumb || this.file;\n },\n\n fileMime()\n {\n return this.getFileMime();\n },\n\n thumbMime()\n {\n return this.getThumbMime();\n },\n\n },\n\n data()\n {\n return {\n lightbox: false, load: false\n };\n },\n\n methods: {\n\n getFileMime(fallback = null)\n {\n let file = Obj.get(this.tempFile, 'name',\n this.tempFile);\n\n if ( Any.isEmpty(file) ) {\n return fallback;\n }\n\n let extension = file.replace(/^.*?\\.([^.?]+)(\\?.*?)?$/,\n '$1');\n\n Obj.each(this.map, (exts, key) => {\n if ( Arr.has(exts, extension) ) fallback = key;\n });\n\n if ( window.resolveVimeo(file) ) {\n fallback = 'video';\n }\n\n if ( window.resolveYoutube(file) ) {\n fallback = 'video';\n }\n\n if ( Any.isString(this.mime) ) {\n fallback = this.mime;\n }\n\n return fallback;\n },\n\n getThumbMime(fallback = null)\n {\n if ( Any.isString(this.mime) ) {\n return this.mime;\n }\n\n let file = Obj.get(this.tempThumb, 'name',\n this.tempThumb);\n\n if ( Any.isEmpty(file) ) {\n return fallback;\n }\n\n let extension = file.replace(/^.*?\\.([^.?]+)(\\?.*?)?$/,\n '$1');\n\n Obj.each(this.map, (exts, key) => {\n if ( Arr.has(exts, extension) ) fallback = key;\n });\n\n return fallback;\n },\n\n showLightbox()\n {\n this.lightbox = true;\n },\n\n },\n\n renderPreview()\n {\n if ( ! this.preview ) {\n return this.ctor('renderFull')();\n }\n\n if ( this.thumbMime === 'image' ) {\n return (<NPreviewImage src={this.tempThumb} />);\n }\n\n let props = {\n type: this.thumbMime,\n showSrc: false,\n }\n\n return (<NPreviewPlain src={this.tempThumb} {...props} />);\n },\n\n renderFull()\n {\n let isObject = Any.isObject(this.tempFile);\n\n if ( this.fileMime === 'image' ) {\n return (<NPreviewImage src={this.tempFile} />);\n }\n\n if ( this.fileMime === 'video' && ! isObject ) {\n return (<NPreviewVideo src={this.tempFile} />);\n }\n\n let props = {\n type: this.thumbMime,\n showSrc: this.showSrc,\n }\n\n return (<NPreviewPlain src={this.tempFile} {...props} />);\n },\n\n renderLightbox()\n {\n if ( ! this.lightbox || ! this.preview ) {\n return null;\n }\n\n let slots = {\n raw: this.ctor('renderFull')\n }\n\n let props = {\n type: 'preview',\n width: '80%',\n height: '90%',\n }\n\n return (<NModal vModel={this.lightbox} {...props} v-slots={slots} />);\n },\n\n render()\n {\n let classList = [\n 'n-preview',\n 'n-preview--' + this.fit\n ];\n\n if ( this.preview ) {\n classList.push('n-clickable');\n }\n\n if ( this.fileMime ) {\n classList.push('n-mime-' + this.fileMime);\n }\n\n let props = {};\n\n if ( this.preview ) {\n props.onClick = this.showLightbox;\n }\n\n let key = btoa(this.tempThumb);\n\n return (\n <div key={key} class={classList} {...props}>\n { [this.ctor('renderPreview')(), this.ctor('renderLightbox')()] }\n </div>\n );\n }\n\n}","import { Any, Obj, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewPlain',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return null;\n }\n },\n\n showSrc: {\n default()\n {\n return true;\n }\n }\n\n },\n\n computed: {\n\n tempSrc()\n {\n return Obj.get(this.src, 'name', this.src);\n },\n\n tempExt()\n {\n let regex = /^.*?\\.([^.?]+)(\\?.*?)?$/;\n\n if ( Any.isEmpty(this.tempSrc) ) {\n return null;\n }\n\n return this.tempSrc.replace(regex, '$1');\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-preview-plain'\n ];\n\n let slots = [];\n\n slots[0] = (\n <li>{ this.type || Locale.trans('plain') }/{ this.tempExt || Locale.trans('none') }</li>\n );\n\n if ( this.showSrc ) {\n slots[1] = (<li>{ this.tempSrc }</li>);\n }\n\n return (\n <div class={classList}>\n <ul>{ slots }</ul>\n </div>\n );\n }\n\n}","import { Obj, Arr, Str, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewImage',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n },\n\n data()\n {\n return {\n load: false, tempSrc: null\n };\n },\n\n beforeMount()\n {\n if ( ! window.ImageCache ) {\n window.ImageCache = [];\n }\n\n\n if ( ! Arr.has(window.ImageCache, this.src) ) {\n this.tempSrc = this.src;\n }\n\n },\n\n mounted()\n {\n this.resolveLoad();\n },\n\n watch: {\n\n 'src': function () {\n this.resolveLoad();\n }\n\n },\n\n methods: {\n\n resolveLoad()\n {\n if ( Arr.has(window.ImageCache, this.src) ) {\n return;\n }\n\n this.tempSrc = null;\n\n if ( Any.isObject(this.src) ) {\n return this.resolveData();\n }\n\n Dom.find(this.$refs.image).loaded(() => {\n\n /**\n * Add image to cache\n */\n Arr.add(window.ImageCache, this.src);\n\n /**\n * Mark image as loaded\n */\n Any.delay(() => this.load = false, 200);\n });\n\n this.laod = true;\n },\n\n resolveData()\n {\n let reader = new FileReader();\n\n reader.onload = () => {\n this.tempSrc = reader.result;\n };\n\n reader.readAsDataURL(this.src);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-preview-image'\n ];\n\n if ( Arr.has(window.ImageCache, this.src) ) {\n classList.push('n-cached');\n }\n\n if ( ! this.load ) {\n classList.push('n-ready');\n }\n\n return (\n <div class={classList}>\n <img ref=\"image\" src={this.tempSrc || this.src} />\n </div>\n );\n }\n\n}","import { Obj, Arr, Str, Any, Dom } from \"@kizmann/pico-js\";\n\nwindow.resolveYoutube = function(url, fallback = null) {\n\n if ( ! Any.isString(url) ) {\n return fallback;\n }\n\n let host = url.match(/^https?:\\/\\/(www\\.)?(youtube\\.com|youtu\\.be)/);\n\n if ( ! host ) {\n return fallback;\n }\n\n let id = url.match(/(\\?v=.*?)(?=&|$)/);\n\n if ( id && id.length === 2 ) {\n return id[0].replace(/^\\?v=/, '');\n }\n\n let path = url.match(/(\\.be\\/.*?)(?=\\?|$)/);\n\n if ( path && path.length === 2 ) {\n return path[0].replace(/^\\.be\\//, '');\n }\n\n let frame = url.match(/(\\/embed\\/)(.*?$)/);\n\n if ( frame && frame.length === 3 ) {\n return frame[0].replace(/^\\/embed\\//, '');\n }\n\n return fallback;\n}\n\nwindow.resolveVimeo = function(url, fallback = null) {\n\n if ( ! Any.isString(url) ) {\n return fallback;\n }\n\n let host = url.match(/^https?:\\/\\/(www\\.|player\\.)?vimeo\\.com/);\n\n if ( ! host ) {\n return fallback;\n }\n\n let path = url.match(/(\\/[0-9]+)(&|$)/);\n\n if ( path && path.length === 3 ) {\n return path[0].replace(/(^\\/|&$)/, '');\n }\n\n return fallback;\n}\n\nexport default {\n\n name: 'NPreviewVideo',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n },\n\n data()\n {\n return {\n provider: 'plain', unique: null, tempSrc: null\n };\n },\n\n mounted()\n {\n this.resolveType();\n },\n\n watch: {\n\n 'src': function () {\n this.resolveType();\n }\n\n },\n\n methods: {\n\n resolveType()\n {\n this.tempSrc = null;\n\n if ( this.resolveYoutube() ) {\n return;\n }\n\n if ( this.resolveVimeo() ) {\n return;\n }\n\n if ( Any.isObject(this.src) ) {\n this.resolveData();\n }\n\n this.provider = 'plain';\n },\n\n resolveData()\n {\n console.log('Coming at some point (blob stream)....');\n },\n\n resolveYoutube()\n {\n let youtube = window.resolveYoutube(this.src);\n\n if ( ! youtube ) {\n return false;\n }\n\n this.provider = 'youtube';\n\n this.$emit('resolve:youtube', this.unique = youtube);\n\n return true;\n },\n\n resolveVimeo()\n {\n let vimeo = window.resolveVimeo(this.src);\n\n if ( ! vimeo ) {\n return false;\n }\n\n this.provider = 'vimeo';\n\n this.$emit('resolve:vimeo', this.unique = vimeo);\n\n return true;\n }\n\n },\n\n renderYoutube()\n {\n let props = {\n src: `https://www.youtube.com/embed/${this.unique}`\n };\n\n return (\n <iframe {...props}></iframe>\n );\n },\n\n renderVimeo()\n {\n let props = {\n src: `https://player.vimeo.com/video/${this.unique}`\n };\n\n return (\n <iframe {...props}></iframe>\n );\n },\n\n renderPlain()\n {\n let src = Obj.get(this.src, 'name', this.src);\n\n let extension = src.replace(/^.*?\\.([^.?]+)(\\?.*?)?$/,\n '$1');\n\n return (\n <video width=\"320\" height=\"240\" controls>\n <source src={this.tempSrc || this.src} type={`video/${extension}`} />\n </video>\n );\n },\n\n render()\n {\n let classList = [\n 'n-preview-video'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('render' + Str.ucfirst(this.provider))() }\n </div>\n );\n }\n\n}","import { Arr, Map, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NMap',\n\n props: {\n\n lat: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n lng: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n zoom: {\n default()\n {\n return 15;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NMap: this\n };\n },\n\n data()\n {\n return { init: false, callbacks: [], tempMap: null };\n },\n\n watch: {\n\n lat()\n {\n Any.delay(() => this.tempMap.focusMarkers(), 100);\n },\n\n lng()\n {\n Any.delay(() => this.tempMap.focusMarkers(), 100);\n }\n\n },\n\n mounted()\n {\n this.tempMap = new Map(this.$el, {\n lat: this.lat, lng: this.lng, zoom: this.zoom\n });\n\n this.init = true;\n\n Arr.each(this.callbacks, (callback) => callback())\n },\n\n methods: {\n\n getMap()\n {\n return this.tempMap;\n },\n\n onMount(callback)\n {\n this.init ? callback() : this.callbacks.push(callback);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-map'\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { UUID, Obj, Num, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NMapMarker',\n\n inject: {\n\n NMap: {\n default: undefined\n }\n\n },\n\n props: {\n\n lat: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n lng: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n drag: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n options: {\n default()\n {\n return { style: 'default' };\n },\n type: [Object]\n },\n\n },\n\n data()\n {\n return {\n id: UUID(), tempMarker: null\n };\n },\n\n methods: {\n\n importMarkerPosition()\n {\n this.tempMarker.marker.setPosition({\n lat: this.lat, lng: this.lng\n });\n },\n\n updateMarkerPosition()\n {\n this.$emit('update:lat', this.tempMarker.marker.getPosition().lat());\n this.$emit('update:lng', this.tempMarker.marker.getPosition().lng());\n },\n\n initializeMarker()\n {\n let options = Obj.assign({\n lat: Num.float(this.lat), lng: Num.float(this.lng), draggable: this.drag\n }, this.options);\n\n if ( ! Any.isEmpty(this.$slots.default) ) {\n options.html = this.$el.innerHTML;\n }\n\n this.tempMarker = this.NMap.getMap().createMarker(this.id, options);\n\n this.tempMarker.marker.addListener('position_changed',\n Any.debounce(this.updateMarkerPosition));\n\n this.tempMarker.marker.addListener('dragstart',\n () => this.$emit('dragstart', this.tempMarker));\n\n this.tempMarker.marker.addListener('dragend',\n () => this.$emit('dragend', this.tempMarker));\n\n this.tempMarker.marker.addListener('mouseover',\n () => this.$emit('mouseenter', this.tempMarker));\n\n this.tempMarker.marker.addListener('mouseout',\n () => this.$emit('mouseleave', this.tempMarker));\n },\n\n setMarkerByAddress(address)\n {\n let successClosure = () => {\n this.NMap.getMap().focusMarkers(null, this.NMap.zoom);\n };\n\n let errorClosure = () => {\n this.Notify(this.trans('Address not found.'), 'danger');\n };\n\n this.NMap.getMap().setMarkerByAddress(this.id, address)\n .then(successClosure, errorClosure);\n }\n\n },\n\n watch: {\n\n lat()\n {\n this.importMarkerPosition();\n },\n\n lng()\n {\n this.importMarkerPosition();\n }\n\n },\n\n beforeMount()\n {\n this.NMap.onMount(this.initializeMarker);\n },\n\n render()\n {\n return (\n <div style=\"display: none;\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFile',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n multiple: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n clearable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n clearableIcon: {\n default()\n {\n return nano.Icons.times;\n },\n type: [String]\n },\n\n buttonText: {\n default()\n {\n return Locale.trans('Select file');\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n },\n\n tempValue()\n {\n if ( Any.isEmpty(this.tempValue) ) {\n this.$refs.input.value = null;\n }\n }\n\n },\n\n methods: {\n\n openContext()\n {\n this.$refs.input.click();\n },\n\n updateFile()\n {\n let tempValue = [\n ...this.$refs.input.files\n ];\n\n if ( ! this.multiple ) {\n tempValue = tempValue[0];\n }\n\n this.$emit('update:modelValue', this.tempValue = tempValue);\n },\n\n clearFile()\n {\n this.$emit('update:modelValue', null);\n }\n\n },\n\n renderInput()\n {\n let props = {\n size: this.size,\n disabled: true,\n iconDisabled: false,\n };\n\n props['onIconClick'] = this.clearFile;\n\n if ( ! this.multiple ) {\n props.modelValue = Obj.get(this.tempValue, 'name');\n }\n\n if ( this.multiple ) {\n props.modelValue = Locale.choice(':count File|:count Files',\n this.tempValue.length);\n }\n\n if ( this.clearable && !Any.isEmpty(this.tempValue) ) {\n props.icon = this.clearableIcon;\n }\n\n return (\n <NInput {...props}>\n { /* Input field for text */ }\n </NInput>\n );\n },\n\n renderButton()\n {\n let props = {\n size: this.size,\n disabled: this.disabled,\n icon: this.icon,\n onClick: this.openContext\n };\n\n return (\n <NButton {...props}>{this.buttonText}</NButton>\n );\n },\n\n renderHidden()\n {\n let props = {\n 'onInput': this.updateFile\n };\n\n return (\n <div class=\"n-file__input\">\n <input ref=\"input\" type=\"file\" multiple={this.multiple} {...props}></input>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-file'\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderInput')() }\n { this.ctor('renderButton')() }\n { this.ctor('renderHidden')() }\n </div>\n )\n }\n\n}\n","import { Num, Arr, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRating',\n\n props: {\n\n modelValue: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n steps: {\n default()\n {\n return 0.5;\n },\n type: [Number]\n },\n\n fixed: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n choice: {\n default()\n {\n return ':count';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n virtualValue()\n {\n return Num.fixed(1 / this.max * this.modelValue * 5, this.fixed);\n },\n\n },\n\n renderStars()\n {\n let stars = [\n 1, 2, 3, 4, 5\n ];\n\n return Arr.each (stars, (rate) => {\n\n let className = 'is-null';\n\n if ( this.virtualValue >= rate - 0.5 ) {\n className = 'is-half';\n }\n\n if ( this.virtualValue >= rate ) {\n className = 'is-full';\n }\n\n return (\n <span class={className}></span>\n );\n });\n },\n\n renderValue()\n {\n let vars = {\n value: Num.format(this.modelValue, '.', '', this.fixed)\n };\n\n if ( this.$slots.default ) {\n return this.$slots.default(vars);\n }\n\n return Locale.choice(this.choice, this.modelValue, vars);\n },\n\n render()\n {\n let classList = [\n 'n-rating',\n 'n-rating--' + this.size,\n 'n-rating--' + this.type\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-rating__stars\">\n {this.ctor('renderStars')()}\n </div>\n <div class=\"n-rating__value\">\n {this.ctor('renderValue')()}\n </div>\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDrawer',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n width: {\n default()\n {\n return '30%';\n },\n type: [String]\n },\n\n title: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'right';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n tempValue()\n {\n this.startRefreshTimeout();\n }\n\n },\n\n provide()\n {\n return {\n NDrawer: this\n };\n },\n\n data()\n {\n return {\n target: null, tempValue: false\n };\n },\n\n mounted()\n {\n this.target = Dom.find(this.selector || this.$el)\n .previous().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).on('keydown',\n this.eventKeydown, this._.uid);\n\n let showDrawer = () => {\n this.tempValue = true;\n };\n\n if ( this.modelValue ) {\n Any.delay(showDrawer, 100);\n }\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n\n Dom.find(document.body).off('keydown',\n null, this._.uid);\n },\n\n methods: {\n\n openModal(force = false, source = null)\n {\n if ( this.tempValue ) {\n return;\n }\n\n if ( this.closable || force ) {\n this.tempValue = true;\n }\n\n this.$emit('update:modelValue', true, source);\n },\n\n closeDrawer(force = false, source = null)\n {\n if ( ! this.tempValue ) {\n return;\n }\n\n if ( ! this.update ) {\n return this.$emit('close', source);\n }\n\n if ( this.closable || force ) {\n this.tempValue = false;\n }\n\n this.$emit('update:modelValue', false, source);\n },\n\n stopRefreshTimeout()\n {\n clearTimeout(this.refresh);\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n startRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n window.zIndex += 1;\n\n Dom.find(this.$el).attr('data-drawer',\n window.zIndex);\n\n Dom.find(this.$el).css({\n 'z-index': window.zIndex\n });\n\n this.queueRefreshTimeout();\n },\n\n queueRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n this.refresh = setTimeout(() => {\n Dom.find(this.$el).addClass('n-ready');\n }, 100);\n },\n\n eventClick(event, el)\n {\n if ( this.disabled || event.which !== 1 ) {\n return;\n }\n\n let result = !! Dom.find(el).closest(this.target);\n\n if ( ! result && ! this.tempValue ) {\n return;\n }\n\n if ( this.tempValue && this.closable ) {\n result = ! Dom.find(el).closest(this.$refs.backdrop);\n }\n\n if ( result === this.tempValue ) {\n return;\n }\n\n if ( ! result ) {\n return this.closeDrawer(false, 'escape');\n }\n\n if ( this.listen ) {\n this.openModal(true, 'selector');\n }\n },\n\n eventKeydown(event, el)\n {\n if ( ! this.tempValue || event.which !== 27 ) {\n return;\n }\n\n let extractIndex = (modal) => {\n return Dom.find(modal).attr('data-drawer');\n };\n\n let indexes = Dom.find('.n-drawer:not(.n-hidden)')\n .each(extractIndex);\n\n let index = Dom.find(this.$el).attr('data-drawer');\n\n if ( Arr.last(indexes.sort()) !== index ) {\n return;\n }\n\n this.closeDrawer(false, 'escape');\n },\n\n },\n\n renderClose()\n {\n if ( ! this.renderClose || ! this.closable ) {\n return null;\n }\n\n let props = {\n onClick: () => this.closeDrawer(false, 'escape')\n };\n\n return (\n <div class=\"n-drawer__close\" {...props}>\n <span class={nano.Icons.times}></span>\n </div>\n );\n },\n\n renderHeader()\n {\n if ( ! this.$slots.header && ! this.title ) {\n return null;\n }\n\n return (\n <div class=\"n-drawer__header\">\n { [this.$slots.header && this.$slots.header({ closeDrawer: this.closeDrawer }) || this.title, this.ctor('renderClose')()] }\n </div>\n );\n },\n\n renderFooter()\n {\n if ( ! this.$slots.footer ) {\n return null;\n }\n\n return (\n <div class=\"n-drawer__footer\">\n { this.$slots.footer({ closeDrawer: this.closeDrawer }) }\n </div>\n );\n },\n\n renderBody()\n {\n let bodyHtml = (\n <NScrollbar ref=\"scrollbar\" relative={true} wrapClass=\"n-drawer__wrap\">\n { this.$slots.default && this.$slots.default({ closeDrawer: this.closeDrawer }) }\n </NScrollbar>\n );\n\n if ( this.$slots.body ) {\n bodyHtml = this.$slots.body({ closeDrawer: this.closeDrawer });\n }\n\n return (\n <div class=\"n-drawer__body\">\n { bodyHtml }\n </div>\n );\n },\n\n renderFrame()\n {\n if ( ! this.tempValue ) {\n return null;\n }\n\n let style = {\n width: this.width\n };\n\n let innerHtml = [\n this.ctor('renderHeader')(),\n this.ctor('renderBody')(),\n this.ctor('renderFooter')(),\n ]\n\n return (\n <div class=\"n-drawer__frame\" style={style}>\n { this.$slots.raw ? this.$slots.raw() : innerHtml }\n </div>\n );\n },\n\n renderBackdrop()\n {\n return (\n <div ref=\"backdrop\" class=\"n-drawer__backdrop\"></div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-drawer',\n 'n-drawer--' + this.size,\n 'n-drawer--' + this.type,\n 'n-drawer--' + this.position\n ];\n\n if ( this.tempValue ) {\n this.queueRefreshTimeout();\n }\n\n if ( this.renderClose ) {\n classList.push('n-closable');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let innerHtml = null;\n\n if ( this.tempValue ) {\n innerHtml = this.ctor('renderFrame')();\n }\n\n return (\n <div class={classList}>\n { [innerHtml, this.ctor('renderBackdrop')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Dom, Locale } from \"@kizmann/pico-js\";\n\nimport CtorMixin from \"./mixins/src/ctor.js\";\nimport CmerMixin from \"./mixins/src/cmer.js\";\nimport CsloMixin from \"./mixins/src/cslo.js\";\n\nimport Alert from \"./alert/index.js\";\nimport Notification from \"./notification/index.js\";\nimport Empty from \"./empty/index.js\";\nimport Config from \"./config/index.js\";\nimport Scrollbar from \"./scrollbar/index.js\";\nimport Virtualscroller from \"./virtualscroller/index.js\";\nimport Draggable from \"./draggable/index.js\";\nimport Loader from \"./loader/index.js\";\nimport Resizer from \"./resizer/index.js\";\nimport Popover from \"./popover/index.js\";\nimport Modal from \"./modal/index.js\";\nimport Button from \"./button/index.js\";\nimport Input from \"./input/index.js\";\nimport InputNumber from \"./input-number/index.js\";\nimport Textarea from \"./textarea/index.js\";\nimport Select from \"./select/index.js\";\nimport Checkbox from \"./checkbox/index.js\";\nimport Radio from \"./radio/index.js\";\nimport Slider from \"./slider/index.js\";\nimport Switch from \"./switch/index.js\";\nimport Confirm from \"./confirm/index.js\";\nimport Cascader from \"./cascader/index.js\";\nimport Datepicker from \"./datepicker/index.js\";\nimport Timepicker from \"./timepicker/index.js\";\nimport Datetimepicker from \"./datetimepicker/index.js\";\nimport Durationpicker from \"./durationpicker/index.js\";\nimport Transfer from \"./transfer/index.js\";\nimport Form from \"./form/index.js\";\nimport Tabs from \"./tabs/index.js\";\nimport Tags from \"./tags/index.js\";\nimport Collapse from \"./collapse/index.js\";\nimport Table from \"./table/index.js\";\nimport Paginator from \"./paginator/index.js\";\nimport Info from \"./info/index.js\";\nimport Preview from \"./preview/index.js\";\nimport Map from \"./map/index.js\";\nimport File from \"./file/index.js\";\nimport Rating from \"./rating/index.js\";\nimport Drawer from \"./drawer/index.js\";\n\nconst NanoImports = [\n Alert,\n Notification,\n Empty,\n Config,\n Scrollbar,\n Virtualscroller,\n Draggable,\n Loader,\n Resizer,\n Popover,\n Modal,\n Button,\n Input,\n InputNumber,\n Textarea,\n Select,\n Checkbox,\n Radio,\n Slider,\n Switch,\n Confirm,\n Cascader,\n Datepicker,\n Timepicker,\n Datetimepicker,\n Durationpicker,\n Transfer,\n Form,\n Tabs,\n Tags,\n Collapse,\n Table,\n Paginator,\n Info,\n Preview,\n Map,\n File,\n Rating,\n Drawer\n];\n\nexport const Icons = {\n handle: 'fa fa-ellipsis-v',\n checked: 'fa fa-check',\n circle: 'fa fa-circle',\n intermediate: 'fa fa-minus',\n clock: 'fa fa-clock',\n calendar: 'fa fa-calendar',\n times: 'fa fa-times',\n primary: 'fa fa-info-circle',\n success: 'fa fa-check-circle',\n warning: 'fa fa-exclamation-circle',\n danger: 'fa fa-times-circle',\n info: 'fa fa-info-circle',\n angleUp: 'fa fa-angle-up',\n angleRight: 'fa fa-angle-right',\n angleDown: 'fa fa-angle-down',\n angleLeft: 'fa fa-angle-left',\n angleDoubleLeft: 'fa fa-angle-double-left',\n angleDoubleRight: 'fa fa-angle-double-right'\n};\n\nexport const Settings = {\n iconPosition: 'before',\n notifySize: 'md',\n notifyPosition: 'bottom-start'\n};\n\nexport function Install(App, Icons = {}, Settings = {})\n{\n /**\n * @const window.pi\n */\n\n if ( typeof window.pi === 'undefined' ) {\n return console.error('pico-js is not available.');\n }\n\n Obj.each(window.pi, (value, key) => {\n App.config.globalProperties[key] = value;\n });\n\n App.config.globalProperties.ctor = CtorMixin.ctor;\n App.config.globalProperties.cmer = CmerMixin.cmer;\n App.config.globalProperties.cslo = CsloMixin.cslo;\n\n App.config.globalProperties.trans = Locale.trans;\n App.config.globalProperties.choice = Locale.choice;\n\n window.nano.Icons = Obj.assign(window.nano.Icons, Icons);\n window.nano.Settings = Obj.assign(window.nano.Settings, Settings);\n\n Arr.each(NanoImports, (NanoModule) => {\n NanoModule(App);\n });\n\n // require('./chart/index.js'); // Ignore\n // require('./wysiwyg/index.js'); // Ignore\n}\n\nexport const Nano = {\n Icons: Icons, Settings: Settings, Install: Install\n};\n\nwindow.keyMods = [];\n\nDom.find(document).on('keydown', (event) => {\n Arr.add(window.keyMods, event.which);\n});\n\nDom.find(document).on('keyup', (event) => {\n Arr.remove(window.keyMods, event.which);\n});\n\nDom.find(document).on('dragstart', (event) => {\n Arr.add(window.keyMods, event.which);\n});\n\nDom.find(document).on('dragend', (event) => {\n window.keyMods = [];\n});\n\nif ( typeof window.nano === 'undefined' ) {\n window.nano = Nano;\n}\n\nexport default Nano;\n","export default function (App) {\n import(\"./src/alert/alert.js\").then(({ Alert }) => {\n App.config.globalProperties[Alert.alias] = window[Alert.alias] = Alert.handle;\n });\n}\n","export default function (App) {\n import(\"./src/notification/notification.js\").then(({ Notify }) => {\n App.config.globalProperties[Notify.alias] = window[Notify.alias] = Notify.handle;\n });\n}\n","import EmptyIcon from \"./src/empty-icon/empty-icon.jsx\";\n\nexport default function (App) {\n App.component(EmptyIcon.name, EmptyIcon);\n}\n","import NConfig from \"./src/config/config.jsx\";\nimport NConfigNext from \"./src/config/config-next.jsx\";\nimport NBuilder from \"./src/builder/builder.jsx\";\nimport NRefrencePanel from \"./src/reference-panel/reference-panel.jsx\";\nimport NRefrencePicker from \"./src/reference-picker/reference-picker.jsx\";\n\nexport default function(App) {\n App.component(NConfig.name, NConfig);\n App.component(NConfigNext.name, NConfigNext);\n App.component(NBuilder.name, NBuilder);\n App.component(NRefrencePanel.name, NRefrencePanel);\n App.component(NRefrencePicker.name, NRefrencePicker);\n}\n","import Scrollbar from \"./src/scrollbar/scrollbar.jsx\";\n\nexport default function (App) {\n App.component(Scrollbar.name, Scrollbar);\n}","import Virtualscroller from \"./src/virtualscroller/virtualscroller.jsx\";\n\nexport default function (App) {\n App.component(Virtualscroller.name, Virtualscroller);\n}","import Draglist from \"./src/draglist/draglist.jsx\";\nimport DraglistItem from \"./src/draglist-item/draglist-item.jsx\";\nimport Draggrid from \"./src/draggrid/draggrid.jsx\";\nimport DraggridItem from \"./src/draggrid-item/draggrid-item.jsx\";\nimport Dropzone from \"./src/dropzone/dropzone.jsx\";\n\nexport default function (App) {\n App.component(Draglist.name, Draglist);\n App.component(DraglistItem.name, DraglistItem);\n App.component(Draggrid.name, Draggrid);\n App.component(DraggridItem.name, DraggridItem);\n App.component(Dropzone.name, Dropzone);\n}","import Loader from \"./src/loader/loader.jsx\";\n\nexport default function (App) {\n App.component(Loader.name, Loader);\n}\n","import Resizer from \"./src/resizer/resizer.jsx\";\n\nexport default function (App) {\n App.component(Resizer.name, Resizer);\n}\n","import Popover from \"./src/popover/popover.jsx\";\nimport PopoverGroup from \"./src/popover-group/popover-group.jsx\";\nimport PopoverOption from \"./src/popover-option/popover-option.jsx\";\n\nexport default function (App) {\n App.component(Popover.name, Popover);\n App.component(PopoverGroup.name, PopoverGroup);\n App.component(PopoverOption.name, PopoverOption);\n}","import Modal from \"./src/modal/modal.jsx\";\n\nexport default function (App) {\n App.component(Modal.name, Modal);\n}\n","import Button from \"./src/button/button.jsx\";\nimport ButtonGroup from \"./src/button-group/button-group.jsx\";\n\nexport default function (App) {\n App.component(Button.name, Button);\n App.component(ButtonGroup.name, ButtonGroup);\n}\n","import Input from \"./src/input/input.jsx\";\n\nexport default function (App) {\n App.component(Input.name, Input);\n}\n","import InputNumber from \"./src/input-number/input-number.jsx\";\n\nexport default function (App) {\n App.component(InputNumber.name, InputNumber);\n}","import Textarea from \"./src/textarea/textarea.jsx\";\n\nexport default function (App) {\n App.component(Textarea.name, Textarea);\n}","import Select from \"./src/select/select.jsx\";\nimport SelectOption from \"./src/select-option/select-option.jsx\";\n\nexport default function (App) {\n App.component(Select.name, Select);\n App.component(SelectOption.name, SelectOption);\n}\n","import Checkbox from \"./src/checkbox/checkbox.jsx\";\nimport CheckboxGroup from \"./src/checkbox-group/checkbox-group.jsx\";\n\nexport default function (App) {\n App.component(Checkbox.name, Checkbox);\n App.component(CheckboxGroup.name, CheckboxGroup);\n}","import NRadio from \"./src/radio/radio.jsx\";\nimport NRadioGroup from \"./src/radio-group/radio-group.jsx\";\n\nexport default function (App) {\n App.component(NRadio.name, NRadio);\n App.component(NRadioGroup.name, NRadioGroup);\n}\n","import Slider from \"./src/slider/slider.jsx\";\n\nexport default function (App) {\n App.component(Slider.name, Slider);\n}","import Switch from \"./src/switch/switch.jsx\";\n\nexport default function (App) {\n App.component(Switch.name, Switch);\n}","import Confirm from \"./src/confirm/confirm.jsx\";\n\nexport default function (App) {\n App.component(Confirm.name, Confirm);\n}\n","import CascaderPanel from \"./src/cascader-panel/cascader-panel.jsx\";\nimport Cascader from \"./src/cascader/cascader.jsx\";\n\nexport default function (App) {\n App.component(CascaderPanel.name, CascaderPanel);\n App.component(Cascader.name, Cascader);\n}","import DatepickerPanel from \"./src/datepicker-panel/datepicker-panel.jsx\";\nimport Datepicker from \"./src/datepicker/datepicker.jsx\";\n\nexport default function (App) {\n App.component(DatepickerPanel.name, DatepickerPanel);\n App.component(Datepicker.name, Datepicker);\n}","import TimepickerPanel from \"./src/timepicker-panel/timepicker-panel.jsx\";\nimport Timepicker from \"./src/timepicker/timepicker.jsx\";\n\nexport default function (App) {\n App.component(TimepickerPanel.name, TimepickerPanel);\n App.component(Timepicker.name, Timepicker);\n}","import Datetimepicker from \"./src/datetimepicker/datetimepicker.jsx\";\n\nexport default function (App) {\n App.component(Datetimepicker.name, Datetimepicker);\n}","import Durationpicker from \"./src/durationpicker/durationpicker.jsx\";\n\nexport default function (App) {\n App.component(Durationpicker.name, Durationpicker);\n}","import Transfer from \"./src/transfer/transfer.jsx\";\n\nexport default function (App) {\n App.component(Transfer.name, Transfer);\n}","import Form from \"./src/form/form.jsx\";\nimport FormGroup from \"./src/form-group/form-group.jsx\";\nimport FormItem from \"./src/form-item/form-item.jsx\";\nimport FormFrame from \"./src/form-frame/form-frame.jsx\";\n\nexport default function (App) {\n App.component(Form.name, Form);\n App.component(FormGroup.name, FormGroup);\n App.component(FormItem.name, FormItem);\n App.component(FormFrame.name, FormFrame);\n}","import Tabs from \"./src/tabs/tabs.jsx\";\nimport TabsItem from \"./src/tabs-item/tabs-item.jsx\";\n\nexport default function (App) {\n App.component(Tabs.name, Tabs);\n App.component(TabsItem.name, TabsItem);\n}","import Tags from \"./src/tags/tags.jsx\";\nimport TagsItem from \"./src/tags-item/tags-item.jsx\";\n\nexport default function (App) {\n App.component(Tags.name, Tags);\n App.component(TagsItem.name, TagsItem);\n}","import Collapse from \"./src/collapse/collapse.jsx\";\nimport CollapseItem from \"./src/collapse-item/collapse-item.jsx\";\n\nexport default function (App) {\n App.component(Collapse.name, Collapse);\n App.component(CollapseItem.name, CollapseItem);\n}","import Table from \"./src/table/table.jsx\";\nimport TableColumn from \"./src/table-column/table-column.jsx\";\nimport TableCellString from \"./src/table-cell/types/table-cell-string.jsx\";\nimport TableCellBoolean from \"./src/table-cell/types/table-cell-boolean.jsx\";\nimport TableCellDatetime from \"./src/table-cell/types/table-cell-datetime.jsx\";\nimport TableCellOption from \"./src/table-cell/types/table-cell-option.jsx\";\nimport TableCellImage from \"./src/table-cell/types/table-cell-image.jsx\";\nimport TableCellMatrix from \"./src/table-cell/types/table-cell-matrix.jsx\";\nimport TableCellSelect from \"./src/table-cell/types/table-cell-select.jsx\";\nimport TableFilterString from \"./src/table-filter/types/table-filter-string.jsx\";\nimport TableFilterBoolean from \"./src/table-filter/types/table-filter-boolean.jsx\";\nimport TableFilterDatetime from \"./src/table-filter/types/table-filter-datetime.jsx\";\nimport TableFilterOption from \"./src/table-filter/types/table-filter-option.jsx\";\n\n\nexport default function (App) {\n App.component(Table.name, Table);\n App.component(TableColumn.name, TableColumn);\n App.component(TableCellString.name, TableCellString);\n App.component(TableCellBoolean.name, TableCellBoolean);\n App.component(TableCellDatetime.name, TableCellDatetime);\n App.component(TableCellOption.name, TableCellOption);\n App.component(TableCellImage.name, TableCellImage);\n App.component(TableCellMatrix.name, TableCellMatrix);\n App.component(TableCellSelect.name, TableCellSelect);\n App.component(TableFilterString.name, TableFilterString);\n App.component(TableFilterBoolean.name, TableFilterBoolean);\n App.component(TableFilterDatetime.name, TableFilterDatetime);\n App.component(TableFilterOption.name, TableFilterOption);\n}","import Paginator from \"./src/paginator/paginator.jsx\";\n\nexport default function (App) {\n App.component(Paginator.name, Paginator);\n}","import Info from \"./src/info/info.jsx\";\nimport InfoColumn from \"./src/info-column/info-column.jsx\";\nimport InfoFieldString from \"./src/info-field/types/info-field-string.jsx\";\nimport InfoFieldBoolean from \"./src/info-field/types/info-field-boolean.jsx\";\nimport InfoFieldDatetime from \"./src/info-field/types/info-field-datetime.jsx\";\nimport InfoFieldOption from \"./src/info-field/types/info-field-option.jsx\";\nimport InfoFieldImage from \"./src/info-field/types/info-field-image.jsx\";\n\nexport default function (App) {\n App.component(Info.name, Info);\n App.component(InfoColumn.name, InfoColumn);\n App.component(InfoFieldString.name, InfoFieldString);\n App.component(InfoFieldBoolean.name, InfoFieldBoolean);\n App.component(InfoFieldDatetime.name, InfoFieldDatetime);\n App.component(InfoFieldOption.name, InfoFieldOption);\n App.component(InfoFieldImage.name, InfoFieldImage);\n}","import Preview from \"./src/preview/preview.jsx\";\nimport PreviewPlain from \"./src/preview-plain/preview-plain.jsx\";\nimport PreviewImage from \"./src/preview-image/preview-image.jsx\";\nimport PreviewVideo from \"./src/preview-video/preview-video.jsx\";\n\nexport default function (App) {\n App.component(Preview.name, Preview);\n App.component(PreviewPlain.name, PreviewPlain);\n App.component(PreviewImage.name, PreviewImage);\n App.component(PreviewVideo.name, PreviewVideo);\n}\n\n","import Map from \"./src/map/map.jsx\";\nimport MapMarker from \"./src/map-marker/map-marker.jsx\";\n\nexport default function (App) {\n App.component(Map.name, Map);\n App.component(MapMarker.name, MapMarker);\n}\n\n","import File from \"./src/file/file.jsx\";\n\nexport default function (App) {\n App.component(File.name, File);\n}\n\n","import Rating from \"./src/rating/rating.jsx\";\n\nexport default function (App) {\n App.component(Rating.name, Rating);\n}\n","import Modal from \"./src/drawer/drawer.jsx\";\n\nexport default function (App) {\n App.component(Modal.name, Modal);\n}\n"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__55__","__WEBPACK_EXTERNAL_MODULE__122__","window","NanoBuilderTypes","Locale","trans","NanoBuilderIndexies","childs","props","modelValue","for","type","onValue","offValue","onType","options","NanoPrototypeTypes","offType","size","NanoPrototypeSizes","disabled","NanoPrototypeBools","default","clearValue","clearable","min","max","Number","MAX_VALUE","stepSize","precision","placeholder","format","decimals","Notification","_createClass","text","arguments","length","undefined","_classCallCheck","_defineProperty","duration","defaultIcons","iconPrimary","nano","Icons","info","iconSecondary","iconSuccess","success","iconWarning","warning","iconDanger","danger","iconInfo","this","Obj","assign","render","key","value","get","Str","ucfirst","_this","el","document","body","appendTo","setTimeout","addClass","remove","_this2","classList","Dom","make","join","onclick","icon","getIcon","html","Notify","_len","args","Array","_key","uid","create","apply","concat","wrapper","getWrapper","notifications","append","UUID","_len2","_key2","_construct","zIndex","style","position","find","empty","css","Settings","notifySize","notifyPosition","link","square","iconPosition","nativeType","click","label","iconDisabled","iconClick","AlertFrame","on","event","which","off","Alert","backdrop","onClick","frame","Any","isEmpty","alert","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","Object","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","ctor","fallback","$options","split","cmer","attrsList","isString","isArray","Arr","each","isPlain","$attrs","cslo","slot","$slots","findIndex","Comment","name","String","Boolean","inline","push","_createVNode","config","scope","data","tempValue","methods","solveAwait","match","has","$$scope","$$value","solveValue","isFunction","solveEvent","$configRefs","$refs","solveContent","_len3","_key3","$render","prepareValue","veModel","path","deepSet","inputClosure","closure","keys","val","shift","set","watch","renderLayer","source","setup","component","replace","vIf","vShow","vAwait","class","$on","$props","display","model","map","input","content","slots","resolved","resolveComponent","h","extraValue","sempValue","getString","final","propAwait","result","state","getState","propExists","exists","solveInput","sources","$scope","$model","$extra","$global","toPropKey","splits","lcfirst","toEventKey","cb","solveContext","_this3","console","error","getProp","getInput","isNull","setInput","renderSetup","alias","_this4","defaultsBind","binds","events","updateKey","renderSlot","callback","_this5","_this6","_isSlot","s","toString","_isVNode","NanoBuilderPropType","NanoBuilderPropCode","NanoBuilderProps","renderDemo","renderExport","init","demo","collapse","safevar","normalizeModel","mounted","exportJson","JSON","stringify","clone","matches","exportExecutable","Function","normalizeChild","order","vals","child","applyProps","_objectSpread","except","builder","buildProps","first","_typeof","getOriginalValue","safevalue","btoa","getSafeValue","string","getRealValue","realvalue","code","number","parse","atob","original","changeElement","update","newKey","unset","k","changeAlias","changeType","bindValue","e","only","sey","isObject","$nextTick","addProp","removeProp","collapseElement","toggle","addElement","removeElement","moveupElement","_ref","close","MIN_VALUE","sub","Math","replacement","movedownElement","_ref2","renderTools","rootProps","collapseProps","href","addProps","removeProps","moveupProps","movedownProps","_mergeProps","renderProp","group","$data","index","typeProps","keyProps","allowCreate","optionsLabel","codeProps","valueInputProps","valueHtml","_resolveComponent","$event","fallbackProps","minRows","autoRows","_createTextVNode","renderProps","_slot","_this7","elementProps","aliasProps","plainProps","renderElement","_this8","builderHtml","renderBuilder","_this9","items","sort","v","renderBody","renderHead","_slot2","_slot3","_this0","addHtml","demoProps","demoHtml","renderOutput","_slot4","_this1","renderFunction","_ref3","configProps","width","height","expanded","selected","modelTree","buildTree","scopeTree","ref","submitItem","$emit","selectItem","expandItem","renderLeaf","renderTree","childItems","childHtml","renderItem","renderModel","modelHtml","renderScope","scopeHtml","modal","updateValue","renderModal","modalProps","panelProps","renderInput","inputProps","provide","NScrollbar","relative","fixture","allowNative","overflowY","overflowX","offsetY","offsetX","framerate","wrapClass","computed","touch","navigator","msMaxTouchPoints","mousedown","mousemove","mouseup","native","beforeMount","adaptScrollBehavior","bindAdaptHeight","bindAdaptWidth","passive","_","Event","bind","onResize","onUpdate","onScroll","updated","passedHeight","passedWidth","$el","beforeUnmount","unbindAdaptHeight","unbindAdaptWidth","unbind","scrollTo","x","y","delay","onScrollTo","scrollTop","scrollLeft","scrollIntoView","selector","offset","onScrollIntoView","outerHeight","clientHeight","offsetTop","outerWidth","clientWidth","offsetLeft","$dom","offsetWidth","offsetHeight","adaptScrollHeight","innerHeight","scrollHeight","virtualHeight","barHeight","maxHeight","ceil","heightRatio","vbar","hasVtrack","removeClass","adaptScrollPosition","adaptScrollWidth","innerWidth","scrollWidth","virtualWidth","barWidth","maxWidth","widthRatio","hbar","hasHtrack","scroll","top","left","vbarTop","transform","hbarLeft","adaptHeight","cacheChildEl","cacheWindwoEl","windowCache","onSizechange","spacer","refreshHeight","setInterval","clearInterval","adaptWidth","resizeTimer","refreshWidth","clearTimeout","fire","$inner","actual","getTouchEvent","touches","changedTouches","onVbarMousedown","stopPropagation","onVbarMousemove","onVbarMouseup","clientY","onHbarMousedown","onHbarMousemove","onHbarMouseup","clientX","WIN","vbarProps","hbarProps","DEBUG_NVSCROLL","inject","NDraggable","itemHeight","itemWidth","renderNode","deathzone","threshold","useKeys","start","end","grid","buffer","load","updateRender","bindAdaptScroll","unbindAdaptScroll","refreshScroll","onScrollupdate","isIndexRendered","scrollbar","scrollToIndex","onScrollToIndex","total","floor","targetTop","clearState","async","refreshDriver","inner","queue","timer","Date","now","to","bufferItems","round","isEqual","passed","topOffset","uniqueProp","renderRows","slice","renderGridRows","counter","chunk","renderGrid","chunks","renderItems","totalHeight","dragMods","NDragCounter","ready","count","choice","dataTransfer","setData","setDragImage","keyMods","attr","DragCounter","NDragIndicator","parent","safezone","strategy","rect","getBoundingClientRect","hasClass","show","hide","item","NDraghandler","rootNode","_this$bindDragstart","DragIndicator","DragCache","bindDragstart","_toConsumableArray","onDragenterRoot","onDragoverRoot","onDragleaveRoot","onDragendRoot","onDragdropRoot","bindDragend","bindDragdrop","preventDefault","target","closest","cacheNodes","frames","allowDrop","rainbow","node","moveNodes","cache","allowGroups","dragcount","dropNodes","tempSelected","removeNode","unlinkNodes","removeNodes","isSelected","id","virtuals","route","resolve","targetNode","isInSelf","cascade","childNodes","unbindNode","$handle","handle","onDragstartNode","onDragenterNode","onDragoverNode","onDragleaveNode","onDragendNode","onDragdropNode","moveNodesMany","moveNodesOne","insertNode","moveNodesRoot","transformDrop","moveNodesInto","moveNodesBefore","moveNodesAfter","eventName","filter","childProp","disableMove","targetRoute","children","splice","reduce","merge","reduceItem","Num","depth","cascades","unique","tempCascade","virtual","last","DEBUG_NDLIST","draggable","current","lazyload","showEmptyIcon","itemOffset","scrollTopOnChange","renderCurrent","renderHandle","renderSelect","renderExpand","allowSelect","allowDrag","keyEvents","highlightTimeout","modifier","visible","highlight","firstSelected","lastSelected","tempCurrent","tempExpanded","drag","watchModifierDown","watchModifierUp","virtualscroller","bindRoot","$watch","watchSelected","deep","refreshVirtuals","unbindRoot","filterVirtuals","add","updateNode","findVirtual","log","contains","getIndex","getCurrentIndex","isDraggable","canDrag","isHighlight","highlightNode","refresh","recursive","scrollToHighlight","isCurrent","setCurrent","setRawCurrent","setNextCurrent","setPrevCurrent","reset","syncCurrent","isDisabled","canSelect","hasChildren","getChildren","isExpanded","expandCurrent","isTotalSelected","isInterSelected","toggleSingleNode","toggleRangeNode","indexies","reversed","selectAll","row","unselectAll","bindKeydown","onKeydown","unbindKeydown","renderEmpty","onMouseenter","onMouseleave","NDraggableItem","required","bindNode","copy","copyNode","onDblclick","renderSpacer","angleRight","checked","NDropzone","NLoader","minimum","debounce","tempVisible","applyTimer","timing","startTimer","restartTimer","timeout","minWidth","resizerWidth","sizeFixed","updateWidth","bindSizechange","forceWidth","unmounted","unbindSizechange","flex","updateHandle","onLeftMousedown","onLeftMouseup","onLeftMousemove","scrollX","targetWidth","frameStyle","onRightMousedown","onRightMouseup","onRightMousemove","NPopover","listen","trigger","scrollClose","multiClose","prevent","refreshVisible","previous","onHover","onContext","onExit","onCloseEvent","active","open","pause","unpause","stopRefreshInterval","startRefreshInterval","passedOffset","updatePosition","isSameOffset","isSameSize","passedSize","getTargetHorizontal","targetRect","windowRect","posY","posX","center","inverse","broken","getTargetVertical","getTargetOffset","isScrollClose","keyCode","raw","header","footer","viewBody","tempSize","focus","image","imagePosition","clickClose","renderImage","renderIcon","renderContent","title","closable","renderClose","startRefreshTimeout","NModal","eventClick","eventKeydown","openModal","force","closeModal","stopRefreshTimeout","queueRefreshTimeout","indexes","times","renderHeader","renderFooter","bodyHtml","renderFrame","innerHtml","renderBackdrop","NForm","NFormItem","inheritAttrs","deepDisabled","onIconClick","onInput","onSubmit","onFocus","onBlur","getValue","clear","getDisplayValue","nextStep","isNaN","toFixed","onNextDown","nextTimeout","nextInterval","onNextUp","prevStep","onPrevDown","prevTimeout","prevInterval","onPrevUp","regex","RegExp","renderPrev","onMousedown","renderNext","renderClear","maxRows","maxLength","eventInput","rows","currentRows","lazy","multiple","emptyText","undefinedText","collapseText","optionsValue","optionsDisabled","custom","elements","element","tempClear","search","searched","generateOptions","searchOptions","NSelect","scrollToClosest","focusInput","$value","$index","option","tempLabel","addOption","removeOption","resetInput","onFocusInput","popover","onInputInput","onKeydownInput","createOrToggle","selectPrev","selectNext","searchRegex","toggleOption","denyUpdate","getOptionLabel","newIndex","scrollToCurrent","createOption","virtualbar","select","renderLabelClear","renderLabelAngle","angleDown","renderLabelItem","labelHtml","renderLabelCollapse","firstHtml","renderLabelItems","renderMultiple","isEmptyValue","isNumber","inputHtml","renderSingle","modelLabel","renderDisplay","displayHtml","emptyHtml","values","renderLazyOption","isMultipleActive","isSingleActive","renderLazyItems","renderPopover","onClose","renderOptions","valueProp","labelProp","toggleItem","renderOption","NCheckboxGroup","allowUncheck","intermediate","global","tempComputed","globalChecked","tempChecked","tempIntermediate","globalIntermediate","tempDisabled","globalDisabled","isChecked","addCheckbox","removeCheckbox","check","checkCheckbox","uncheck","uncheckCheckbox","eventShiftClick","shiftCheckbox","eventLocalClick","shiftKey","toggleCheckbox","eventGlobalClick","toggleAll","updateFromGroup","renderCheckbox","interHtml","checkHtml","renderLabel","align","checkbox","emit","checkboxes","uncheckAll","checkAll","NRadioGroup","addRadio","removeRadio","checkRadio","renderRadio","radio","range","steps","labels","fixmin","fixmax","minmax","getPseudoValue","setModelValue","getValPos","fixed","getValStyle","getBarPos","getBarWidth","getBarStyle","getClosestValue","diff","step","abs","onMouseup","onMousemove","relativeWidth","closestValue","stepMin","stepMax","handleProps","renderHandles","renderBar","barProps","renderSwitch","confirmText","abortText","buttonSize","abort","confirm","renderAction","hover","disabledProp","tempHover","clearCascader","hoverItem","onSelect","clickTimer","lastclick","hoverTimer","fireSelectItem","renderCascade","renderList","onCascaderInput","onCascaderHover","onPopoverInput","itemLabel","arrive","clearArrive","depart","clearDepart","minDate","maxDate","monthPanels","weekdays","months","yearsGrid","tempCache","getYears","monthsGrid","getMonths","Now","tempArrive","tempDepart","tempView","tempRanger","cacheArrive","cacheDepart","gotoDate","gotoMonth","gotoYear","patchDate","resetTime","applyTime","patchMonth","printRange","patchYear","patchRange","renderToolbarPrev","angleLeft","renderToolbarNext","renderToolbarMonth","monthsHtml","month","addMonths","renderToolbarYear","yearsHtml","year","renderToolbar","prev","next","renderDateItem","equalDate","valid","isNotBeforeMin","after","isNotAfterMax","before","renderRangeDateItem","viewMode","isTempValid","between","arriveFirst","renderDate","legendHtml","day","getDatesGrid","panelHtml","prevMonth","nextMonth","renderMonthItem","equal","renderMonth","prevYear","nextYear","renderYearItem","renderYear","prevDecade","nextDecade","placeholderArrive","placeholderDepart","rangeSeparator","boundary","displayFormat","clearDatepicker","clearRangeDatepicker","clearSingleDatepicker","onValueInput","moment","isValid","date","onArriveInput","onDepartInput","onDatepickerInput","onDatepickerDepart","onDatepickerArrive","initialDate","renderRange","arriveProps","departProps","hoursInterval","minutesInterval","secondsInterval","hoursGrid","getHours","minutesGrid","getMinutes","secondsGrid","getSeconds","eventSelect","scrollbars","renderHourItem","hour","renderHourPanel","renderMinuteItem","minute","renderMinutePanel","renderSecondItem","second","renderSecondPanel","clearTimepicker","onTimepickerInput","renderPanel","clearDatetimepicker","renderPanels","renderDatePanel","renderTimePanel","minDuration","maxDuration","negativeText","days","hours","minutes","seconds","editValue","findPattern","pattern","replaceAll","humanizeValue","digitizeValue","dmatch","hmatch","mmatch","smatch","clearDurationpicker","onValueChange","onDurationpickerInput","onChange","optionProps","scrollProps","sourceLabel","targetLabel","sourceChecked","selectedSource","tempSource","sourceIntermediate","targetChecked","selectedTarget","tempTarget","targetIntermediate","sourceSearch","searchPattern","targetSearch","moveItemsTarget","moveItemsSource","moveRowTarget","moveRowSource","moveToSource","moveToTarget","updateSelectedSource","updateSelectedTarget","renderSourceSelect","renderSourceTitle","counterHtml","renderSourceHeader","renderSourceSearch","renderSourceBody","onMove","renderTargetSelect","renderTargetTitle","renderTargetHeader","renderTargetSearch","renderTargetBody","renderMoveSource","renderMoveTarget","dom","form","errors","kind","ignore","forceChange","forceErrors","groups","blocked","emitChange","resetChange","registerGroup","unregisterGroup","is","addItem","removeItem","prevState","nextState","attrs","NFormFrame","tooltip","tooltipPosition","toggleGroup","openGroup","closeGroup","renderCollapse","renderText","textHtml","action","renderTooltip","NTabs","NTabsItem","tooltipWindow","conditional","conditionOn","conditionOff","enabled","toggleCondition","$input","gotoInput","changeTab","renderCondition","renderError","showSearch","searchPlaceholder","searchIcon","onSearchInput","onScrollEvent","inviewMaxY","menu","lower","indexOf","onClickEvent","renderSearch","searchProps","renderMenu","iconHtml","buttonProps","renderMenus","bodyProps","float","addTab","tab","$forceUpdate","removeTab","getTab","updateEvent","currentTab","sorted","renderHeaderIndicator","tabs","preload","keep","renderHeaderIcon","renderHeaderLabel","NTags","tags","addTag","removeTag","color","NCollapse","showTab","hideTab","toggleTab","NCollapseItem","dragger","renderHeaderAngle","angle","showDelay","NTable","sortProp","sortDir","closeFilterOnEnter","tempVisibleProps","tempSortProp","tempSortDir","tempFilter","tempFilterProps","makeVisibleProps","detectVisible","addColumn","column","removeColumn","getColumnIndex","getColumnVisiblity","getColumnSorted","getColumnFilter","filterProp","property","getColumnFiltered","detectVisibity","intersect","extract","sortByColumn","dir","replaceFilter","filters","resetFilter","refreshCurrent","columns","renderContext","defaultRender","draggableHtml","matrixDisabled","breakpoint","previewProp","matrix","matrixProp","fluid","fixedWidth","trueText","falseText","datetimeFormat","matrixValues","NTableColumn","tempWidth","changedStates","sortDirection","flexBasis","renderHeadLabel","renderHeadSort","renderHeadFilter","angleHtml","setFirstState","firstState","extends","TableCell","convertString","convertBoolean","convertDatetime","preview","fit","toggleMatrix","toggleSelect","itemList","currentMatrix","combine","finder","canReset","canApply","getFilterClone","mountFilter","getFilterProp","getDefaultFilter","applyFilter","clearFilter","renderForm","renderApply","renderReset","TableFilter","operator","li","nl","eq","ne","lt","gt","in","ni","page","limit","limitOptions","maxPages","layout","pages","tempLimit","pageOptions","tempPage","forcePage","updatePaginate","paginate","onPrevPage","onPageInput","onNextPage","onFirstPage","onLastPage","onLimitInput","renderLimit","renderCount","renderGoto","renderFirst","angleDoubleLeft","renderLast","angleDoubleRight","renderPage","renderPages","view","className","syncEvent","bindSyncEvent","unbindSyncEvent","setValue","NInfo","infoHtml","InfoField","fileMap","video","font","application","file","thumb","mime","typre","showSrc","tempFile","tempThumb","fileMime","getFileMime","thumbMime","getThumbMime","lightbox","extension","exts","resolveVimeo","resolveYoutube","showLightbox","renderPreview","renderFull","renderLightbox","src","tempSrc","tempExt","ImageCache","resolveLoad","resolveData","loaded","laod","reader","FileReader","onload","readAsDataURL","url","provider","resolveType","youtube","vimeo","renderYoutube","renderVimeo","renderPlain","lat","lng","zoom","NMap","callbacks","tempMap","focusMarkers","Map","getMap","onMount","tempMarker","importMarkerPosition","marker","setPosition","updateMarkerPosition","getPosition","initializeMarker","innerHTML","createMarker","addListener","setMarkerByAddress","address","then","clearableIcon","buttonText","openContext","updateFile","files","clearFile","renderButton","renderHidden","virtualValue","renderStars","rate","renderValue","vars","NDrawer","closeDrawer","NanoImports","App","globalProperties","EmptyIcon","NConfig","NConfigNext","NBuilder","NRefrencePanel","NRefrencePicker","Scrollbar","Virtualscroller","Draglist","DraglistItem","Draggrid","DraggridItem","Dropzone","Loader","Resizer","Popover","PopoverGroup","PopoverOption","Modal","Button","ButtonGroup","Input","InputNumber","Textarea","Select","SelectOption","Checkbox","CheckboxGroup","NRadio","Slider","Switch","Confirm","CascaderPanel","Cascader","DatepickerPanel","Datepicker","TimepickerPanel","Timepicker","Datetimepicker","Durationpicker","Transfer","Form","FormGroup","FormItem","FormFrame","Tabs","TabsItem","Tags","TagsItem","Collapse","CollapseItem","Table","TableColumn","TableCellString","TableCellBoolean","TableCellDatetime","TableCellOption","TableCellImage","TableCellMatrix","TableCellSelect","TableFilterString","TableFilterBoolean","TableFilterDatetime","TableFilterOption","Paginator","Info","InfoColumn","InfoFieldString","InfoFieldBoolean","InfoFieldDatetime","InfoFieldOption","InfoFieldImage","Preview","PreviewPlain","PreviewImage","PreviewVideo","MapMarker","File","Rating","circle","clock","calendar","primary","angleUp","Install","pi","CtorMixin","CmerMixin","CsloMixin","NanoModule","Nano"],"sourceRoot":""}