@kizmann/nano-ui 2.0.0 → 2.0.2

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.esm.js","mappings":"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","sources":["webpack://Nano/webpack/universalModuleDefinition","webpack://Nano/external umd {\"root\":\"Vue\",\"commonjs2\":\"vue\",\"commonjs\":\"vue\",\"amd\":\"vue\"}","webpack://Nano/external umd {\"root\":\"pi\",\"commonjs2\":\"@kizmann/pico-js\",\"commonjs\":\"@kizmann/pico-js\",\"amd\":\"@kizmann/pico-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/alert/src/alert/alert-handler.mjs","webpack://Nano/./src/notification/src/notification/notification-element.mjs","webpack://Nano/./src/notification/src/notification/notification-handler.mjs","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/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/resizer/src/resizer/resizer-next.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/popover/src/popover/popover-helper.mjs","webpack://Nano/./src/popover/src/popover/popover-handler.mjs","webpack://Nano/./src/popover/src/popover/popover-element.mjs","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/confirm/src/confirm/confirm-handler.mjs","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-rules.mjs","webpack://Nano/./src/form/src/form/form.jsx","webpack://Nano/./src/form/src/form-bag/form-bag.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/preview/src/preview-modal/preview-modal.jsx","webpack://Nano/./src/preview/src/preview/preview-helper.mjs","webpack://Nano/./src/preview/src/preview/preview-handler.mjs","webpack://Nano/./src/preview/index.js","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/chart/src/chart-item/chart-item.jsx","webpack://Nano/./src/chart/src/chart-donut/chart-donut.jsx","webpack://Nano/./src/chart/src/chart-bar/chart-bar.jsx","webpack://Nano/./src/index.esm.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/map/index.js","webpack://Nano/./src/file/index.js","webpack://Nano/./src/rating/index.js","webpack://Nano/./src/drawer/index.js","webpack://Nano/./src/chart/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 ","module.exports = __WEBPACK_EXTERNAL_MODULE__122__;","module.exports = __WEBPACK_EXTERNAL_MODULE__55__;","// 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, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n cmer(classList)\n {\n let attrsList = {};\n\n if ( Mix.isString(classList) ) {\n attrsList[classList] = true;\n }\n\n if ( Mix.isArray(classList) ) {\n Arr.each(classList, (value) => attrsList[value] = true);\n }\n\n if ( Mix.isObj(classList) ) {\n Obj.assign(attrsList, classList);\n }\n\n if ( Mix.isString(this.$attrs.class) ) {\n attrsList[this.$attrs.class] = true;\n }\n\n if ( Mix.isArray(this.$attrs.class) ) {\n Arr.each(this.$attrs.class, (value) => attrsList[value] = true);\n }\n\n if ( Mix.isObj(this.$attrs.class) ) {\n Obj.assign(attrsList, this.$attrs.class);\n }\n\n return attrsList;\n }\n\n}\n","import { Arr, Obj, Mix } 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","import { Mix, Run, Obj, Dom, Locale, Arr, Hash } from \"@kizmann/pico-js\";\n\n\nexport class AlertHandler\n{\n static alias = 'Alert';\n\n modal = null;\n\n options = {\n text: '', size: 'md', type: 'primary',\n };\n\n static make(text, type = 'primary', options = {})\n {\n options = {\n text, type\n };\n\n return new AlertHandler(options).render();\n }\n\n constructor(options = {})\n {\n this.options = Obj.assign(this.options, options, {\n uid: Hash.uuid(),\n });\n }\n\n close()\n {\n this.unbindEvents();\n this.modal.remove();\n\n Dom.find(document.body).style({\n 'overflow': 'undefined'\n });\n }\n\n renderIcon(el)\n {\n let icon = Obj.get(window.AlertIcons, this.options.type, 'fa fa-ghost');\n\n let child = Dom.make('div', {\n classList: 'n-alert__icon', innerHTML: `<i class=\"n-icon ${icon}\"></i>`\n });\n\n child.appendTo(el);\n }\n\n renderText(el)\n {\n let child = Dom.make('div', {\n classList: 'n-alert__text', innerHTML: `<p>${this.options.text}</p>`\n });\n\n child.appendTo(el);\n }\n\n bindEvents()\n {\n let { uid } = this.options;\n\n Dom.find(window).on('keydown', (e) => {\n if ( e.keyCode === 27 ) {\n e.stopPropagation(); this.close();\n }\n }, { uid });\n\n Dom.find(this.modal).on('click', (e) => {\n if ( ! Dom.find(e.target).inside('.n-alert-frame') ) {\n this.close();\n }\n }, { uid });\n\n Run.delay(() => {\n Dom.find(this.modal).addClass('n-ready');\n });\n }\n\n unbindEvents()\n {\n let { uid } = this.options;\n\n Dom.find(window).off('keydown', null, {\n uid\n });\n\n Dom.find(this.modal).off('click', null, {\n uid\n });\n }\n\n render()\n {\n let cls = Obj.get(this.options, 'class', []);\n\n if ( Mix.isString(cls) ) {\n cls = cls.split(' ');\n }\n\n let classList = [\n 'n-alert',\n 'n-alert--' + this.options.size,\n 'n-alert--' + this.options.type,\n ];\n\n classList.push('n-theme--dark');\n\n let modal = Dom.make('div', {\n classList: Arr.merge(classList, cls).join(' ')\n });\n\n let frame = Dom.make('div', {\n classList: ['n-alert-frame']\n });\n\n frame.appendTo(modal);\n\n let body = Dom.make('div', {\n classList: ['n-alert__body']\n });\n\n body.appendTo(frame);\n\n this.renderIcon(body);\n this.renderText(body);\n\n Dom.find(document.body).style({\n 'overflow': 'hidden'\n });\n\n modal.appendTo(document.body);\n\n requestAnimationFrame(() => {\n this.bindEvents();\n });\n\n this.modal = modal.get(0);\n }\n}\n\nexport default AlertHandler;\n","import { Dom, Obj } from \"@kizmann/pico-js\";\n\nexport class NotificationElement\n{\n static alias = 'NotificationElement';\n\n el = null;\n\n options = {\n text: '', icon: '', type: 'primary', duration: 4500,\n };\n\n constructor(text, type = 'primary', options = {})\n {\n this.options = Obj.assign(this.options, options, {\n text, type\n });\n\n this.render();\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.options.type\n ];\n\n this.el = Dom.make('div', {\n classList: classList.join(' ')\n });\n\n this.el.on('click', () => {\n this.remove();\n });\n\n let iconClass = Obj.get(window.NotifcationIcons, this.options.type, 'fa fa-ghost');\n\n let icon = Dom.make('div', {\n classList: 'n-notification__icon', innerHTML: `<i class=\"n-icon ${iconClass}\"></i>`\n });\n\n icon.appendTo(this.el);\n\n let text = Dom.make('div', {\n classList: 'n-notification__text', innerHTML: `<p>${this.options.text}</p>`\n });\n\n text.appendTo(this.el);\n }\n\n}\n\nif ( ! window[NotificationElement.alias] ) {\n window[NotificationElement.alias] = NotificationElement;\n}\n\nexport default NotificationElement;","import { Hash, Str, Run, Dom, Mix } from \"@kizmann/pico-js\";\nimport NotificationElement from \"./notification-element.mjs\";\n\nwindow.NotificationBag = {};\n\nexport class NotificationHandler\n{\n\n static alias = 'Notification';\n\n static notifications = {};\n\n static make(...args)\n {\n let { uid, el } = NotificationHandler.create(undefined, ...args);\n\n let wrapper = NotificationHandler.element();\n\n // Append element to dom\n window.NotificationBag[uid].append(wrapper);\n\n // Queue remove\n Run.delay(() => {\n NotificationHandler.remove(uid);\n }, el.options.duration);\n\n return uid;\n }\n\n static create(uid = Hash.uuid(), ...args)\n {\n window.NotificationBag[uid] = new NotificationElement(...args);\n\n return { uid, el: window.NotificationBag[uid] };\n }\n\n static remove(uid)\n {\n if ( window.NotificationBag[uid] === undefined ) {\n return;\n }\n\n // Remove dom element\n window.NotificationBag[uid].remove();\n\n // Remove from list\n delete window.NotificationBag[uid];\n }\n\n static element()\n {\n let el = Dom.find('.n-notification-frame');\n\n if ( !el.empty() ) {\n return el;\n }\n\n let classList = [\n 'n-notification-frame',\n 'n-notification-frame--' + window.nano.Settings.notifySize,\n 'n-notification-frame--' + window.nano.Settings.notifyPosition,\n ];\n\n el = Dom.make('div', {\n classList: classList.join(' ')\n });\n\n el.appendTo(document.body);\n\n return el;\n }\n\n}\n\nexport default NotificationHandler;\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 true;\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, Mix } 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 ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isString(value) && value.match(/\\$\\$scope/) ) {\n return Obj.has({ $$scope: this.scope }, value);\n }\n\n if ( Mix.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 ( Mix.isFunction(value) ) {\n return value.apply(this.scope, [this.tempValue, ...args]);\n }\n\n if ( Mix.isString(value) && value.match(/^\\$\\$scope/) ) {\n return Obj.get({ $$scope: this.scope }, value);\n }\n\n if ( Mix.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 ( Mix.isFunction(value) ) {\n return (...args) => value.apply(scope, args);\n }\n\n return value;\n },\n\n solveContent(value, ...args)\n {\n if ( Mix.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 ( ! Mix.isObj(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, Mix } 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 if ( value.match(/^@/) ) {\n return this.trans(final);\n }\n\n return final;\n },\n\n propAwait(value)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Mix.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 ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Mix.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 ( Mix.isFunction(value) ) {\n return !! this.solveInput(value);\n }\n\n if ( ! Mix.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 ( ! Mix.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 ( Mix.isFunction(value) ) {\n return this.solveInput(value);\n }\n\n if ( ! Mix.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 = Mix.isEmpty(result);\n }\n\n if ( value.match(/^!\\$/) ) {\n result = Mix.isEmpty(result);\n }\n\n return result;\n },\n\n getInput(prop, fallback)\n {\n if ( Mix.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 ( ! Mix.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 ( Mix.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 ( ! Mix.isObj(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 ( Mix.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 ( Mix.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 ( Mix.isFunction(callback) ) {\n render = () => callback.apply(this.scope);\n }\n\n if ( Mix.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 { Run, Arr, Obj, Dom, Mix, Str, Event, Hash } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NScrollbar',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NScrollbar: this\n };\n },\n\n props: {\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 0;\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 {\n return !!('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown()\n {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove()\n {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup()\n {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid(), init: false, native: false, height: 0, width: 0\n };\n },\n\n beforeMount()\n {\n this.outer = {};\n this.state = {};\n\n this.hasHtrack = false;\n this.hasVtrack = false;\n\n this.adaptScrollBehavior();\n },\n\n mounted()\n {\n this.observer = new ResizeObserver(() => {\n this.getWrapperSizeDebounced();\n });\n\n this.observer.observe(this.$el);\n\n if ( this.$refs.wrapper ) {\n this.observer.observe(this.$refs.wrapper);\n }\n\n Event.bind('NResizer:moved',\n this.getWrapperSizeDebounced, this._.uid);\n\n let passive = {\n passive: true, uid: this._.uid\n };\n\n Dom.find(this.$refs.content).on('scroll',\n this.onScroll, passive);\n\n this.getWrapperSize();\n },\n\n beforeUnmount()\n {\n if ( this.observer ) {\n this.observer.disconnect();\n }\n\n Event.unbind('NResizer:moved',\n this._.uid);\n\n let passive = {\n passive: true, uid: this._.uid\n };\n\n Dom.find(this.$el).off('scroll',\n null, passive);\n },\n\n methods: {\n\n getWrapperSizeDebounced()\n {\n if ( Dom.find(this.$el).inside('is-paused') ) {\n return;\n }\n\n let rect = this.$refs.wrapper.getBoundingClientRect();\n\n let now = {\n width: Math.round(rect.width), height: Math.round(rect.height)\n };\n\n if ( Mix.isEqual(this.state, now) ) {\n return;\n }\n\n clearInterval(this.interval);\n\n this.interval = setTimeout(() => {\n this.getWrapperSize();\n }, 5);\n },\n\n getWrapperSize()\n {\n if ( ! this.$refs.wrapper ) {\n return;\n }\n\n let [width, height] = [0, 0];\n\n Dom.find(this.$refs.spacer).actual(() => {\n\n Dom.find(this.$el).addClass('is-paused');\n\n [width, height] = [\n Math.round(this.$refs.wrapper.getBoundingClientRect().width),\n Math.round(this.$refs.wrapper.getBoundingClientRect().height)\n ];\n\n Dom.find(this.$el).remClass('is-paused');\n });\n\n let outer = {\n width: Math.round(this.$refs.content.clientWidth),\n height: Math.round(this.$refs.content.clientHeight),\n };\n\n let rainbow = [\n width === this.width, height === this.height\n ]\n\n if ( ! Arr.has(rainbow, true) && Mix.isEqual(this.outer, outer) ) {\n return;\n }\n\n this.outer = outer;\n\n this.state = {\n width, height\n };\n\n [this.width, this.height] = [\n width, height\n ];\n\n if ( width === 0 || height === 0 ) {\n return;\n }\n\n let styles = {\n //\n };\n\n if ( this.width ) {\n styles.width = this.width + 'px';\n }\n\n if ( this.height ) {\n styles.height = this.height + 'px';\n }\n\n Dom.find(this.$refs.spacer).style(styles);\n\n this.adaptScrollHeight();\n this.adaptScrollWidth();\n\n let [frameWidth, frameHeight] = [\n Dom.find(this.$el).width(), Dom.find(this.$el).height()\n ];\n\n this.$emit('sizechange', frameWidth, frameHeight, this.$el);\n },\n\n scrollTo(x = 0, y = 0, delay = 0)\n {\n if ( Mix.isEmpty(delay) ) {\n return this.scrollTo(x, y);\n }\n\n Run.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 // if ( this.$refs.content.scrollTop != y || this.$refs.content.scrollLeft != x ) {\n // setTimeout(() => this.onScrollTo(x, y), 5);\n // }\n },\n\n scrollIntoView(selector, delay = 0, padding = 0)\n {\n Run.delay(() => this.onScrollIntoView(selector, padding), delay);\n },\n\n onScrollIntoView(selector, padding = 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.clientHeight;\n\n let offsetTop = $el.offsetTop(this.$el);\n\n if ( offsetTop < scrollTop ) {\n this.$refs.content.scrollTop = offsetTop - padding;\n }\n\n if ( offsetTop + $el.height() >= scrollTop + outerHeight ) {\n this.$refs.content.scrollTop = offsetTop - outerHeight + $el.height() + padding;\n }\n\n let scrollLeft = this.$refs.content\n .scrollLeft;\n\n let outerWidth = this.$refs.content.clientWidth;\n\n let offsetLeft = $el.offsetLeft(this.$el);\n\n if ( offsetLeft < scrollLeft ) {\n this.$refs.content.scrollLeft = offsetLeft - padding;\n }\n\n if ( offsetLeft + $el.width() >= scrollLeft + outerWidth ) {\n this.$refs.content.scrollLeft = offsetLeft - outerWidth + $el.width() + padding;\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 ) {\n return;\n }\n\n let [innerHeight, outerHeight] = [\n this.$refs.content.scrollHeight || 0, this.$el.clientHeight || 0\n ];\n\n let compare = [\n outerHeight === this.outerHeight,\n innerHeight === this.innerHeight\n ];\n\n if ( !Arr.has(compare, false) ) {\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).style({\n height: (this.barHeight = Math.ceil(barHeight)) + 'px'\n });\n\n this.hasVtrack = outerHeight && outerHeight < innerHeight;\n\n if ( this.hasVtrack ) {\n Dom.find(this.$el).addClass('has-vtrack');\n }\n\n if ( !this.hasVtrack ) {\n Dom.find(this.$el).remClass('has-vtrack');\n }\n\n this.adaptScrollPosition();\n },\n\n adaptScrollWidth()\n {\n if ( this.native ) {\n return;\n }\n\n let [innerWidth, outerWidth] = [\n this.$refs.content.scrollWidth || 0, this.$el.clientWidth || 0\n ];\n\n let compare = [\n outerWidth === this.outerWidth,\n innerWidth === this.innerWidth\n ];\n\n if ( !Arr.has(compare, false) ) {\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).style({\n width: (this.barWidth = Math.ceil(barWidth)) + 'px'\n });\n\n this.hasHtrack = outerWidth && outerWidth < innerWidth;\n\n if ( this.hasHtrack ) {\n Dom.find(this.$el).addClass('has-htrack');\n }\n\n if ( !this.hasHtrack ) {\n Dom.find(this.$el).remClass('has-htrack');\n }\n\n this.adaptScrollPosition();\n },\n\n adaptScrollPosition(scroll = {})\n {\n if ( this.native ) {\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).style({\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).style({\n transform: `translateX(${hbarLeft}px) translateZ(0)`\n });\n\n this.hbarLeft = hbarLeft;\n }\n },\n\n onScroll(e)\n {\n Event.fire('NScrollbar:scroll', e);\n\n let scroll = {\n top: this.$refs.content.scrollTop,\n left: this.$refs.content.scrollLeft\n };\n\n this.$nextTick().then(() => {\n this.$emit('scrollupdate', scroll.top, scroll.left);\n });\n\n this.adaptScrollPosition(scroll);\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 event.preventDefault();\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 Dom.find(this.$refs.vbar).addClass('is-active');\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 Dom.find(this.$refs.vbar).remClass('is-active');\n },\n\n onHbarMousedown(event)\n {\n if ( !Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\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 = this.getTouchEvent(event)\n .clientX;\n\n Dom.find(this.$refs.hbar).addClass('is-active');\n },\n\n onHbarMousemove(event)\n {\n let clientX = this.getTouchEvent(event)\n .clientX;\n\n let left = (this.outerWidth / this.innerWidth) *\n this.scrollLeft * this.widthRatio;\n\n let offset = (clientX - this.clientX) + left;\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 Dom.find(this.$refs.hbar).remClass('is-active');\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.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 if ( this.hasHtrack ) {\n classList.push('has-htrack');\n }\n\n if ( this.hasVtrack ) {\n classList.push('has-vtrack');\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 ref=\"wrapper\" class={this.wrapClass}>\n {this.$slots.default && this.$slots.default()}\n </div>\n </div>\n <div class=\"n-scrollbar-spacer\" ref=\"spacer\">\n { /* Adapt inner height */}\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, Num, Mix, Run } from \"@kizmann/pico-js\";\n\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 0;\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 uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\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, init: false\n };\n },\n\n watch: {\n\n 'items': function () {\n this.updateRender();\n }\n\n },\n\n beforeMount()\n {\n this.scrollTop = 0;\n this.ready = [];\n },\n\n mounted()\n {\n this.bindAdaptScroll()\n },\n\n beforeUnmount()\n {\n this.unbindAdaptScroll()\n },\n\n methods: {\n\n callWhenReady(cb)\n {\n if ( this.init ) {\n return cb.call(this);\n }\n\n this.ready.push(cb);\n },\n\n clearWhenReady()\n {\n Arr.each(this.ready, cb => {\n cb.call(this);\n });\n\n this.ready = [];\n },\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)\n {\n this.callWhenReady(() => this.onScrollToIndex(index))\n },\n\n onScrollToIndex(index)\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.onScrollTo(0, targetTop);\n }\n\n this.onScrollTo(0, targetTop - this.height + this.itemHeight);\n },\n\n scrollTo(x = 0, y = 0)\n {\n this.callWhenReady(() => this.onScrollTo(x, y));\n },\n\n onScrollTo(x = 0, y = 0)\n {\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.scrollTo(x, this.scrollTop = y);\n }\n\n this.refreshDriver(true);\n },\n\n clearState()\n {\n this.state = { start: 0, end: 0 };\n },\n\n updateRender()\n {\n if ( ! this.$refs.scrollbar ) {\n return Run.delay(this.updateRender);\n }\n\n this.scrollTop = this.$refs.scrollbar.\n $refs.content.scrollTop;\n\n this.refreshDriver(false);\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 this.refreshDriver(true);\n },\n\n onSizechange(width, height)\n {\n let init = [\n this.width === 0, this.height === 0\n ];\n\n [this.width, this.height] = [\n width, height\n ];\n\n this.init |= Arr.has(init, true);\n\n if ( this.init ) {\n this.clearWhenReady();\n }\n\n this.refreshDriver(false);\n },\n\n\n refreshDriver(queue = true, callback = null)\n {\n if ( Mix.isEmpty(this.timer) ) {\n this.timer = Date.now();\n }\n\n if ( Date.now() - this.timer > 5 ) {\n queue = false;\n }\n\n clearTimeout(this.to);\n\n this.to = setTimeout(() => {\n this.refreshDriver(false, callback);\n }, 10);\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 ( Mix.isEqual(this.state, state) ) {\n return;\n }\n\n this.state = state;\n\n if ( Mix.isFunction(callback) ) {\n callback.call(this);\n }\n },\n\n },\n\n renderItem(passed)\n {\n // passed.index = Num.int(passed.index);\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.uniqueProp && this.useKeys ) {\n props.key = passed.value[this.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.itemWidth ) {\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 if ( this.init ) {\n classList.push('n-state');\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 = totalHeight + '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 { Run, Num, Arr, Obj, Mix, Dom, Event, Locale, Hash } 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.style(Obj.map(style, (item) => item + 'px'));\n }\n\n hide()\n {\n this.$el.style(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 let key = this.rootNode._.uid + '-droot-';\n\n Dom.find(this.rootNode.$el).on('dragenter', Run.framebuffer((event) => {\n this.onDragenterRoot(event);\n }, key + 'dragenter', 140));\n\n Dom.find(this.rootNode.$el).on('dragover', Run.framebuffer((event) => {\n this.onDragoverRoot(event);\n }, key + 'dragover', 240));\n\n Dom.find(this.rootNode.$el).on('dragleave', Run.framebuffer((event) => {\n this.onDragleaveRoot(event);\n }, key + 'dragleave', 340));\n\n Dom.find(this.rootNode.$el).on('dragend', Run.framebuffer((event) => {\n this.onDragendRoot(event);\n }, key + 'dragend', 440));\n\n Dom.find(this.rootNode.$el).on('drop', Run.framebuffer((event) => {\n this.onDragdropRoot(event);\n }, key + 'drop', 540));\n\n Dom.find(this.rootNode.$el).on('dragdrop', Run.framebuffer((event) => {\n this.onDragdropRoot(event);\n }, key + 'dragdrop', 640));\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 Dom.find(this.rootNode.$el).find('.n-dragover')\n .remClass('n-dragover');\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 < 35 ) {\n // return;\n // }\n\n let allowDrop = this.rootNode.allowDrop;\n\n if ( !Mix.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).remClass('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).remClass('n-nodrop');\n }\n\n this.frames = Date.now();\n }\n\n onDragleaveRoot(event)\n {\n Dom.find(this.rootNode.$el)\n .remClass(['n-dragover', 'n-nodrop']);\n\n Dom.find(this.rootNode.$el).find('.n-dragover')\n .remClass('n-dragover');\n }\n\n onDragendRoot(event)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(this.rootNode.$el)\n .remClass(['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 .remClass(['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 ( !Mix.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 if ( this.rootNode.tempSelected.length ) {\n rainbow.push(!isInSelf);\n }\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).remClass('n-nodrop');\n }\n\n if ( this.strategy === 'nodrop' ) {\n Dom.find(node.$el).remClass('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).remClass(['n-dragover', 'n-nodrop']);\n\n this.DragIndicator.hide();\n }\n\n onDragendNode(event, node)\n {\n Dom.find(node.$el).remClass(['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).remClass(['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 let key = this.rootNode._.uid + '-dnode-';\n\n $el.on('dragenter', Run.framebuffer((event) => {\n this.onDragenterNode(event, node);\n }, key + 'dragenter', 150));\n\n $el.on('dragover', Run.framebuffer((event) => {\n this.onDragoverNode(event, node);\n }, key + 'dragover', 250));\n\n $el.on('dragleave', Run.framebuffer((event) => {\n this.onDragleaveNode(event, node);\n }, key + 'dragleave', 350));\n\n $el.on('dragend', Run.framebuffer((event) => {\n this.onDragendNode(event, node);\n }, key + 'dragend', 450));\n\n $el.on('drop', Run.framebuffer((event) => {\n this.onDragdropNode(event, node);\n }, key + 'drop', 550));\n\n $el.on('dragdrop', Run.framebuffer((event) => {\n this.onDragdropNode(event, node);\n }, key + 'dragdrop', 650));\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.remClass(['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]: Hash.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 return this.reduceItem(merge, item, Num.int(index), ...props);\n }, []);\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, Hash.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 ( Mix.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 { Hash, Run, Arr, Obj, Dom, Mix, 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 0;\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: Hash.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 Run.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 Run.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 ( ! Mix.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 ( !Mix.isEmpty(key) ) {\n val = Obj.get(val, key);\n }\n\n if ( ! Mix.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 ( ! Mix.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 ( Mix.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 ( ! Mix.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 ( ! Mix.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 {...props}>\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', 'itemHeight', 'overflowX', 'overflowY', 'offsetX', 'offsetY',\n 'useKeys', 'uniqueProp'\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 inheritAttrs: false,\n\n provide()\n {\n return {\n NDraggableItem: this\n };\n },\n\n props: {\n\n value: {\n required: true\n },\n\n index: {\n required: false\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, 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 { Hash, Num, Arr, Obj, Dom, Mix, 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 0;\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: Hash.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 ( ! Mix.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 ( ! Mix.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', 'overflowX', 'overflowY',\n 'offsetX', 'offsetY', 'useKeys', 'uniqueProp'\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 { Hash, Num, Arr, Obj, Dom, Mix, 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: Hash.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 ( Mix.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 ( ! Mix.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 ( Mix.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 { Run } 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 Run.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 { Run, Arr, Obj, Dom, Mix, 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', Run.debounce((...args) => {\n this.onResize(...args)\n }, 500), this._.uid);\n\n this.updateHandle();\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).style(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).style(style);\n },\n\n bindSizechange()\n {\n Dom.find(this.NScrollbar.$el).on('resized',\n Run.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 Mix.framerate(this.onLeftMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Mix.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).style(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).remClass('n-move');\n\n let style = {\n transform: `translateX(-${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).style(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 Mix.framerate(this.onRightMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Mix.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).style(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).remClass('n-move');\n\n let style = {\n transform: `translateX(${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).style(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.modelValue == this.tempValue ) {\n style['flex-basis'] = this.modelValue + '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 { Run, Arr, Obj, Dom, Mix, Str, Locale, Event, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NResizer',\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 '';\n },\n type: [Number, String]\n },\n\n flex: {\n default()\n {\n return '';\n },\n type: [String]\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 type: {\n default()\n {\n return 'primary';\n },\n type: [String]\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 {\n return !!('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown()\n {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove()\n {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup()\n {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n sizeFixed: 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 mounted()\n {\n this.observer = new ResizeObserver(() => {\n this.getWidthDebounced();\n });\n\n this.observer.observe(this.$el);\n\n if ( !this.modelValue ) {\n this.getWidthDebounced();\n }\n\n Event.bind('NScrollbar:paused', (...args) => {\n this.updateRemoteWidth(...args)\n }, this._.uid);\n\n Event.bind('NResizer:move', (...args) => {\n this.forceWidth(...args)\n }, this._.uid);\n\n this.updateHandle();\n },\n\n unmounted()\n {\n this.observer.disconnect();\n\n Event.unbind('NScrollbar:paused',\n this._.uid);\n\n Event.unbind('NResizer:move',\n this._.uid);\n },\n\n methods: {\n\n getWidthDebounced()\n {\n if ( Dom.find(this.$el).inside('.n-paused') ) {\n return;\n }\n\n let now = this.$el.getBoundingClientRect();\n\n if ( Mix.isEqual(this.last || {}, now) ) {\n return;\n }\n\n this.last = now;\n\n clearInterval(this.interval);\n\n this.interval = setTimeout(() => {\n this.updateWidth();\n }, 5);\n },\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).style(style);\n },\n\n updateRemoteWidth(el)\n {\n if ( Dom.find(el).contains(this.$el) ) {\n this.updateWidth();\n }\n },\n\n updateWidth()\n {\n let width = Dom.find(this.$el).width();\n\n if ( width === this.tempValue ) {\n return;\n }\n\n this.$emit('updateWidth', 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).style(style);\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 this.onLeftMouseup, this._.uid);\n\n Dom.find(document).on(this.mousemove,\n this.onLeftMousemove, 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 * 0.5);\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 console.log('aaaaa')\n\n let style = {\n transform: `translateX(-${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(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 (this.resizerWidth * 0.5);\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).remClass('n-move');\n\n let style = {\n transform: `translateX(-${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).style(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.sizeFixed = true;\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 this.onRightMouseup, this._.uid);\n\n Dom.find(document).on(this.mousemove,\n this.onRightMousemove, 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 * 0.5);\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 - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(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 (this.resizerWidth * 0.5);\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).remClass('n-move');\n\n let style = {\n transform: `translateX(${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).style(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.sizeFixed = true;\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.type,\n 'n-resizer--' + this.position,\n ];\n\n let style = {};\n\n if ( !Mix.isEmpty(this.flex) ) {\n style['flex'] = this.flex;\n }\n\n let width = this.width;\n\n if ( Mix.isNumber(width) ) {\n width = width + 'px';\n }\n\n if ( !Mix.isEmpty(this.width) ) {\n style['width'] = this.width;\n }\n\n if ( this.sizeFixed && this.tempValue ) {\n style['flex'] = `0 0 ${this.tempValue}px`;\n }\n\n if ( this.sizeFixed && this.tempValue ) {\n style['width'] = `${this.tempValue}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.$slots.default(), this.ctor('renderHandle')()]}\n </div>\n );\n }\n\n}\n","import { Arr, Mix, Dom, Event, Hash } 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 theme: {\n default()\n {\n return 'dark';\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 toggle: {\n default()\n {\n return false;\n },\n type: [Boolean]\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 alwaysRender: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n framerate: {\n default()\n {\n return 15;\n },\n type: [Number]\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid(),\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 },\n\n beforeMount()\n {\n this.tempValue = this.modelValue;\n },\n\n mounted()\n {\n this.target = Dom.find(this.$el).prev().get(0);\n\n if ( this.trigger === 'context' ) {\n this.target = Dom.find(this.$el).parent().get(0);\n }\n\n let options = {\n uid: this.uid,\n target: this.target,\n listen: this.listen,\n position: this.position,\n toggle: this.toggle,\n trigger: this.trigger,\n width: this.width,\n scrollClose: this.scrollClose,\n multiClose: this.multiClose,\n disabled: () => this.disabled,\n };\n\n if ( this.NPopover ) {\n options.parent = this.NPopover.popel;\n }\n\n this.popel = this.Popover.append(this.$el, options);\n\n this.popel.on('open', () => {\n if ( this.tempValue !== true ) {\n this.$emit('update:modelValue', this.tempValue = true);\n }\n });\n\n this.popel.on('close', () => {\n if ( this.tempValue !== false ) {\n this.$emit('update:modelValue', this.tempValue = false);\n }\n });\n\n this.$watch('tempValue', () => {\n this.tempValue ? this.popel.show() : this.popel.hide();\n });\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.Popover.remove({ uid: this.uid });\n\n this.$el.remove();\n },\n\n methods: {\n\n active()\n {\n return this.tempValue;\n },\n\n open()\n {\n this.popel.open();\n },\n\n close()\n {\n this.popel.hide();\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 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 ( Mix.isNull(this.modelValue) ) {\n viewBody = this.tempValue;\n }\n\n if ( this.alwaysRender ) {\n viewBody = true;\n }\n\n if ( viewBody ) {\n classList.push('n-ready');\n }\n\n if ( this.theme ) {\n classList.push('n-theme--' + this.theme);\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, Mix, 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","\nexport class PopoverHelper\n{\n static alias = 'PopoverHelper';\n\n static getTouchState() {\n return !! ('ontouchstart' in window || navigator.msMaxTouchPoints);\n }\n\n static getScrollEvent()\n {\n return 'scroll';\n }\n\n static getHoverEvent()\n {\n if ( this.getTouchState() ) {\n return 'touchstart';\n }\n\n return 'mousemove';\n }\n\n static getClickEvent()\n {\n if ( this.getTouchState() ) {\n return 'touchstart';\n }\n\n return 'mousedown';\n }\n\n static getContextEvent()\n {\n if ( this.getTouchState() ) {\n return 'contextmenu';\n }\n\n return 'contextmenu';\n }\n\n static getMouseDownEvent()\n {\n if ( this.getTouchState() ) {\n return 'touchstart';\n }\n\n return 'mousedown';\n }\n\n static getMouseMoveEvent()\n {\n if ( this.getTouchState() ) {\n return 'touchmove';\n }\n\n return 'mousemove';\n }\n\n static getMouseUpEvent()\n {\n if ( this.getTouchState() ) {\n return 'touchend';\n }\n\n return 'mouseup';\n }\n\n}\n\nif ( ! window[PopoverHelper.alias] ) {\n window[PopoverHelper.alias] = PopoverHelper;\n}\n\nexport default PopoverHelper;","import { Run, Str, Obj, Dom, Mix, Arr, Event } from \"@kizmann/pico-js\";\nimport PopoverElement from \"./popover-element.mjs\";\nimport PopoverHelper from \"./popover-helper.mjs\";\n\nwindow.PopoverBag = {};\n\nexport class PopoverHandler\n{\n static alias = 'Popover';\n\n static current = [];\n\n static mount()\n {\n Dom.find(window).on(PopoverHelper.getMouseDownEvent(), Run.throttle((e) => {\n this.detectFadeOnCurrent(e);\n }, 30));\n\n Dom.find(window).on(PopoverHelper.getScrollEvent(), Run.throttle((e) => {\n this.detectScrollOnCurrent(e);\n }, 30));\n\n Event.bind('NScrollbar:scroll', Run.throttle((e) => {\n this.detectScrollOnCurrent(e);\n }, 30));\n\n return this;\n }\n\n static append(el, item)\n {\n if ( ! window.PopoverBag[item.uid] ) {\n window.PopoverBag[item.uid] = new PopoverElement(el, item);\n }\n\n return window.PopoverBag[item.uid];\n }\n\n static remove(item)\n {\n if ( window.PopoverBag[item.uid] ) {\n window.PopoverBag[item.uid].unbind();\n }\n\n delete window.PopoverBag[item.uid];\n }\n\n static setCurrent(el)\n {\n if ( Arr.has(this.current, el) ) {\n return;\n }\n\n let cascade = el.parents();\n\n Arr.each(this.current, (current) => {\n current.currentChange(cascade);\n });\n\n Arr.add(this.current, el);\n }\n\n static getCurrent()\n {\n return Arr.last(this.current);\n }\n\n static unsetCurrent(el)\n {\n return Arr.remove(this.current, el);\n }\n\n static detectFadeOnCurrent(event)\n {\n let current = Arr.last(this.current);\n\n if ( Mix.isEmpty(current) ) {\n return;\n }\n\n let { el, target, trigger } = current.options;\n\n let tgt = Dom.find(event.target).closest(target),\n src = Dom.find(event.target).closest(el);\n\n let result = (!! tgt || !! src);\n\n if ( current.visible === result ) {\n return;\n }\n\n if ( trigger !== 'context' && !! tgt ) {\n return;\n }\n\n current.hide('exit');\n }\n\n static detectScrollOnCurrent(event)\n {\n let currents = Arr.filter(this.current, {\n scrollClose: true\n });\n\n Arr.each(currents, (current) => {\n if ( Dom.find(current.options.target).inside(event.target) ) {\n current.hide('scroll');\n }\n });\n }\n\n}\n\nif ( ! window[PopoverHandler.alias] ) {\n window[PopoverHandler.alias] = PopoverHandler;\n}\n\nDom.ready(() => {\n PopoverHandler.mount();\n});\n\nexport default PopoverHandler;\n","import { Mix, Dom, Arr, Obj, Run, Hash } from \"@kizmann/pico-js\";\nimport { PopoverHelper } from \"./popover-helper.mjs\";\nimport PopoverHandler from \"./popover-handler.mjs\";\n\n\nexport class PopoverElement\n{\n static alias = 'Popover';\n\n visible = false;\n\n options = {\n parent: null,\n target: null,\n listen: false,\n trigger: 'hover',\n toggle: false,\n position: 'bottom-center',\n width: -1,\n scrollClose: true,\n multiClose: true,\n };\n\n client = {\n x: 0, y: 0\n };\n\n events = {};\n\n constructor(el, options = {})\n {\n this.options = Obj.assign(this.options, options, {\n el\n });\n\n if ( ! options.uid ) {\n options.uid = Hash.uuid()\n }\n\n this.bind();\n }\n\n bind()\n {\n let { uid, trigger } = this.options;\n\n if ( trigger === 'hover' ) {\n Dom.find(document.body).on(PopoverHelper.getHoverEvent(),\n Run.framerate((e) => this.onHover(e), 15), { uid });\n }\n\n if ( trigger === 'click' ) {\n Dom.find(document.body).on(PopoverHelper.getClickEvent(),\n Run.throttle((e) => this.onClick(e), 30), { uid });\n }\n\n if ( trigger === 'context' ) {\n Dom.find(document.body).on(PopoverHelper.getContextEvent(),\n Run.throttle((e) => this.onContext(e), 30), { uid });\n }\n }\n\n unbind()\n {\n let { uid, trigger } = this.options;\n\n if ( trigger === 'hover' ) {\n Dom.find(document).off(PopoverHelper.getHoverEvent(),\n null, { uid });\n }\n\n if ( trigger === 'click' ) {\n Dom.find(document).off(PopoverHelper.getClickEvent(),\n null, { uid });\n }\n\n if ( trigger === 'context' ) {\n Dom.find(document).off(PopoverHelper.getContextEvent(),\n null, { uid });\n }\n }\n\n parents()\n {\n let { parent } = this.options;\n\n if ( Mix.isEmpty(parent) ) {\n return [];\n }\n\n return Arr.merge(parent.parents(), [\n parent.options.uid\n ]);\n }\n\n currentChange(parents)\n {\n let { uid, multiClose } = this.options;\n\n if ( ! multiClose || Arr.has(parents, uid) ) {\n return;\n }\n\n this.hide('multi')\n }\n\n on(event, cb)\n {\n this.events[event] = cb;\n }\n\n off(event)\n {\n delete this.events[event];\n }\n\n show(event = 'default')\n {\n if ( this.interval ) {\n clearInterval(this.interval);\n }\n\n this.interval = setTimeout(() => {\n this.showQueue(event);\n }, 100);\n }\n\n showQueue(event = 'default')\n {\n if ( this.visible ) {\n return this.updatePosition();\n }\n\n let { el } = this.options;\n\n Dom.find(el).attr('data-ready', 'true');\n\n if ( Mix.isFunction(this.events['open']) ) {\n this.events['open'].apply({}, [event]);\n }\n\n requestAnimationFrame(() => {\n this.updatePosition();\n });\n\n requestAnimationFrame(() => {\n this.bindResizeObserver();\n });\n\n this.visible = true;\n\n PopoverHandler.setCurrent(this);\n }\n\n hide(event = 'default')\n {\n if ( this.interval ) {\n clearInterval(this.interval);\n }\n\n this.interval = setTimeout(() => {\n this.hideQueue(event);\n }, 50);\n }\n\n hideQueue(event = 'default')\n {\n let { el } = this.options;\n\n Dom.find(el).attr('data-ready', null);\n\n if ( Mix.isFunction(this.events['close']) ) {\n this.events['close'].apply({}, [event]);\n }\n\n this.unbindResizeObserver();\n\n this.visible = false;\n\n PopoverHandler.unsetCurrent(this);\n }\n\n onHover(event)\n {\n let { el, target } = this.options;\n\n let tgt = Dom.find(event.target).closest(target),\n src = Dom.find(event.target).closest(el);\n\n let result = (!! tgt || !! src);\n\n if ( this.visible === result ) {\n return;\n }\n\n if ( ! result ) {\n return this.hideQueue('hover');\n }\n\n this.showQueue('hover');\n }\n\n onClick(event)\n {\n let { el, target } = this.options;\n\n let keyCode = event.which === 1 || event.which === 0;\n\n if ( ! keyCode ) {\n return;\n }\n\n let tgt = Dom.find(event.target).closest(target),\n src = Dom.find(event.target).closest(el);\n\n if ( this.visible ) {\n return this.options.toggle && tgt && this.hideQueue('click');\n }\n\n let result = (!! tgt || !! src);\n\n if ( this.visible === result ) {\n return;\n }\n\n this.showQueue('click');\n }\n\n onContext(event)\n {\n let { el, target } = this.options;\n\n let keyCode = event.which === 3;\n\n if ( !keyCode ) {\n return;\n }\n\n let tgt = Dom.find(event.target).closest(target),\n src = Dom.find(event.target).closest(el);\n\n this.client.x = event.clientX;\n this.client.y = event.clientY;\n\n let result = (!! tgt || !! src);\n\n if ( result ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if ( ! result ) {\n return;\n }\n\n this.showQueue('context');\n }\n\n bindResizeObserver()\n {\n let { el } = this.options;\n\n this.observer = new ResizeObserver(() => {\n this.updatePosition();\n });\n\n this.observer.observe(el);\n }\n\n unbindResizeObserver()\n {\n if ( this.observer ) {\n this.observer.disconnect();\n }\n }\n\n updatePosition()\n {\n let { el, target, width } = this.options;\n\n let [offset, scroll] = [\n this.getTargetOffset(), Dom.find(document.body).scroll()\n ];\n\n Dom.find(el).attr('data-position', offset.position);\n\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let style = Obj.assign(Dom.find(el).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 let rect = target.getBoundingClientRect();\n\n if ( width === -1 ) {\n style.width = Math.round(rect.width) + 'px';\n }\n\n Dom.find(el).style(style);\n\n if ( ! style['--n-parent-width'] ) {\n style['--n-parent-width'] = `${rect.width}px`;\n }\n\n if ( ! style['--n-node-width'] && Dom.find(el).innerWidth() ) {\n style['--n-node-width'] = `${el.clientWidth}px`;\n }\n\n if ( ! style['--n-parent-height'] ) {\n style['--n-parent-height'] = `${rect.height}px`;\n }\n\n if ( ! style['--n-node-height'] && Dom.find(el).innerHeight() ) {\n style['--n-node-height'] = `${el.clientHeight}px`;\n }\n\n Dom.find(el).style(style);\n }\n\n getTargetHorizontal(position, fallback = null)\n {\n let { el, target, trigger, width, scrollClose } = this.options;\n\n let targetRect = target.getBoundingClientRect();\n\n if ( trigger === 'context' ) {\n targetRect = {\n top: this.client.y, left: this.client.x, width: 2, height: 2\n };\n }\n\n let windowRect = el.getBoundingClientRect();\n\n if ( 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 = 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 ( 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 if ( broken ) {\n position = 'auto';\n }\n\n return Obj.assign(offset, { position });\n }\n\n getTargetVertical(position, fallback = null)\n {\n let { el, target, trigger, width, scrollClose } = this.options;\n\n let targetRect = target.getBoundingClientRect();\n\n if ( trigger === 'context' ) {\n targetRect = {\n top: this.client.y, left: this.client.x, width: 2, height: 2\n };\n }\n\n let windowRect = el.getBoundingClientRect();\n\n if ( 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 = 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 ( 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 if ( broken ) {\n position = 'auto';\n }\n\n return Obj.assign(offset, { position });\n }\n\n getTargetOffset()\n {\n let { el, width, position } = this.options;\n\n\n if ( width > 0 ) {\n Dom.find(el).style({ width: `${width}px`});\n }\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 console.error(`Popover position \"${position}\" does not exist`);\n }\n\n}\n\nif ( ! window[PopoverElement.alias] ) {\n window[PopoverElement.alias] = PopoverElement;\n}\n\nexport default PopoverElement;","import { Run, Arr, Obj, Mix, 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 theme: {\n default()\n {\n return 'auto';\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 .prev().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 Run.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).remClass('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).style({\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.position,\n ];\n\n if ( this.theme ) {\n classList.push('n-theme--' + this.theme);\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 glass: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n round: {\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.glass ) {\n classList.push('n-button--glass');\n }\n\n if ( this.link ) {\n classList.push('n-button--link');\n }\n\n if ( this.round ) {\n classList.push('n-button--round');\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: 'reset',\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 { Str, Obj, Num, Now, Mix, 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 {\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 = value;\n }\n }\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.modelValue,\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 ( Mix.isNull(value) ) {\n value = this.modelValue;\n }\n\n if ( Mix.isEmpty(value) ) {\n return this.min;\n }\n\n return Num.float(value);\n },\n\n getDisplayValue()\n {\n if ( Mix.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let value = Str.number(this.tempValue, 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 clearTimeout(this.prevTimeout);\n clearInterval(this.prevInterval);\n\n this.nextStep();\n\n this.nextTimeout = setTimeout(() => {\n this.nextInterval = setInterval(this.nextStep, 100);\n }, 400);\n\n Dom.find(window).on('mouseup', this.onNextUp, {\n uid: this._.uid + 'next'\n });\n },\n\n onNextUp(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n clearTimeout(this.nextTimeout);\n clearInterval(this.nextInterval);\n\n Dom.find(window).off('mouseup', null, {\n uid: this._.uid + 'next'\n });\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', this.tempValue = Num.float(value));\n },\n\n onPrevDown()\n {\n clearTimeout(this.nextTimeout);\n clearInterval(this.nextInterval);\n\n this.prevStep();\n\n this.prevTimeout = setTimeout(() => {\n this.prevInterval = setInterval(this.prevStep, 100);\n }, 400);\n\n Dom.find(window).on('mouseup', this.onPrevUp, {\n uid: this._.uid + 'prev'\n });\n },\n\n onPrevUp(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n clearTimeout(this.prevTimeout);\n clearInterval(this.prevInterval);\n\n Dom.find(window).off('mouseup', null, {\n uid: this._.uid + 'prev'\n });\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: 'reset',\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: 'reset',\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\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 || Mix.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 n-form-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 ( Mix.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, Mix, Hash} from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTextarea',\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 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, Mix, 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 theme: {\n default()\n {\n return 'dark';\n },\n type: [String]\n },\n\n lazy: {\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 position: {\n default()\n {\n return 'bottom-start';\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 Mix.isEmpty(this.tempValue);\n },\n\n custom()\n {\n let result = Arr.filter(this.elements, (element) => {\n\n if ( Mix.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 beforeMount()\n {\n if ( this.lazy || ! this.$slots.default ) {\n this.generateOptions();\n }\n\n if ( this.multiple && !Mix.isArray(this.tempValue) ) {\n this.tempValue = [];\n }\n\n if ( this.multiple && !Mix.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 && Mix.isArray(value) ) {\n value = null;\n }\n\n if ( this.multiple && !Mix.isArray(value) ) {\n value = [];\n }\n\n this.tempValue = value;\n },\n\n options()\n {\n this.generateOptions();\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.focus = true;\n },\n\n onFocusInput()\n {\n if ( !this.focus ) {\n this.focus = true;\n }\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 ( Mix.isEmpty(this.search) ) {\n return this.searched = this.elements;\n }\n\n let searchRegex = new RegExp(this.search, 'i');\n\n this.searched = Arr.filter(this.elements, (option) => {\n return Mix.string(option.label || '').match(searchRegex);\n });\n },\n\n toggleOption(value, event = null)\n {\n if ( Mix.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 && !Mix.isArray(this.modelValue) ) {\n denyUpdate = false;\n }\n\n if ( !this.multiple && Mix.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.virtualscroll ) {\n this.$refs.virtualscroll.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 ( Mix.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.virtualscroll ) {\n this.$refs.virtualscroll.scrollToIndex(index, 0);\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, 0);\n }\n }\n\n },\n\n renderLabelClear()\n {\n if ( !this.clearable || Mix.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 n-form-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-form-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 ( !Mix.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 = Mix.isEmpty(this.tempValue) &&\n !Mix.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 = Mix.isEmpty(this.tempValue) &&\n !Mix.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-popover-shadow 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 || ! this.$slots.default ) {\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 size: this.size\n };\n\n return (\n <NScrollbar ref=\"scrollbar\" class=\"n-popover-shadow n-select__body\" {...props}>\n {Mix.vals(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 === Mix.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, offsetY: 0, uniqueProp: 'tempValue'\n };\n\n props.renderNode = ({ value, index }) => {\n return this.ctor('renderLazyOption')(value, index);\n };\n\n return (\n <NVirtualscroller ref=\"virtualscroll\" class=\"n-popover-shadow n-select__body\" {...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 position: this.position,\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 ( Mix.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 Mix.vals(Obj.map(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 = Mix.isEmpty(this.tempValue) &&\n !Mix.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, Mix } 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 ( Mix.isEmpty(this.valueProp) ) {\n return this.value;\n }\n\n return Obj.get(this.value, this.valueProp);\n },\n\n tempLabel()\n {\n if ( Mix.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 === Mix.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, Mix, Hash } 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: Hash.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, Mix } 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, Mix } 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, Mix } 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, Mix, Num, Dom, Run } 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 Mix.isArray(this.steps) ? Arr.first(this.steps) : this.min;\n },\n\n fixmax()\n {\n return Mix.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 Run.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 ( Mix.isNull(value) ) {\n value = this.fixmax;\n }\n if ( ! Mix.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 ( Mix.isNumber(this.steps) ) {\n return Math.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 this.onMouseup, this._.uid);\n\n Dom.find(document).on(this.mousemove,\n this.onMousemove, 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).remClass('n-move');\n Dom.find(document.body).remClass('n-move');\n\n this.setModelValue();\n },\n\n },\n\n renderHandle(value, index)\n {\n let key = Arr.findIndex(this.steps, value);\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 handleProps = {\n ...handleProps, 'data-tooltip': Obj.get(this.labels, key, value)\n }\n\n return (\n <div class=\"n-slider__handle\" {...handleProps}>\n <span></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, Mix } 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, Dom, Arr, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NConfirm',\n\n props: {\n\n modelValue: {\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 listen: {\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 confirmText: {\n default()\n {\n return Locale.trans('Okay');\n },\n type: [String]\n },\n\n cancelText: {\n default()\n {\n return Locale.trans('Cancel');\n },\n type: [String]\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 data()\n {\n return {\n tempValue: this.modelValue, activeState: false,\n };\n },\n\n mounted()\n {\n this.$watch('tempValue', () => {\n this.changeVisible();\n });\n\n this.$nextTick(() => {\n this.changeVisible();\n });\n\n this.target = Dom.find(this.selector || this.$el)\n .prev().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).append(this.$el);\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n },\n\n methods: {\n\n extractText(fallback)\n {\n if ( !this.$slots.default ) {\n return fallback;\n }\n\n let nodes = this.$slots.default();\n\n if ( Mix.isEmpty(nodes) ) {\n return fallback;\n }\n\n let html = [];\n\n nodes.map((el) => {\n\n if ( !Mix.isString(el.children) ) {\n return;\n }\n\n html.push(el.children);\n });\n\n return html.join(' ');\n },\n\n changeVisible()\n {\n if ( !this.tempValue || this.activeState ) {\n return;\n }\n\n let text = this.trans('Are you sure?');\n\n if ( this.$slots.default ) {\n text = this.$el.innerHTML;\n }\n\n let options = Obj.only(this.$props, ['size', 'type', 'confirmText', 'cancelText'], {\n text\n });\n\n this.Confirm.make(options)\n .then(() => {\n this.activeState = false;\n this.confirm();\n })\n .catch(() => {\n this.activeState = false;\n this.abort();\n });\n\n this.activeState = true;\n },\n\n abort()\n {\n this.$emit('update:modelValue', this.tempValue = false);\n this.$emit('abort');\n },\n\n confirm()\n {\n this.$emit('update:modelValue', this.tempValue = false);\n this.$emit('confirm');\n },\n\n eventClick(event, el)\n {\n if ( !this.listen || 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 event.preventDefault();\n\n this.$emit('update:modelValue', this.tempValue = true);\n },\n\n },\n\n render()\n {\n return (\n <div data-confirm=\"text\" style=\"display: none !important;\">\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n }\n\n}\n","import { Run, Mix, Arr, Dom, Locale, Obj, Hash } from \"@kizmann/pico-js\";\n\nexport class ConfirmHandler\n{\n static alias = 'Confirm';\n\n modal = null;\n\n options = {\n text: '', size: 'md', type: 'primary', confirmText: '', cancelText: ''\n };\n\n static make(options = {}, cb = () => false)\n {\n return new ConfirmHandler(options).promise(cb);\n }\n\n constructor(options = {})\n {\n this.options = Obj.assign(this.options, options, {\n uid: Hash.uuid()\n });\n }\n\n close(next)\n {\n this.unbindEvents();\n this.modal.remove();\n\n Dom.find(document.body).style({\n 'overflow': 'undefined'\n });\n\n next();\n }\n\n promise(cb = () => false)\n {\n return new Promise((confirm, cancel) => {\n\n if ( cb.apply({}) ) {\n return confirm();\n }\n\n let args = [\n () => this.close(confirm),\n () => this.close(cancel),\n ];\n\n this.render(...args);\n });\n }\n\n renderIcon(el)\n {\n let icon = Obj.get(window.ConfirmIcons, this.options.type, 'fa fa-ghost');\n\n let child = Dom.make('div', {\n classList: 'n-confirm__icon', innerHTML: `<i class=\"n-icon ${icon}\"></i>`\n });\n\n child.appendTo(el);\n }\n\n renderText(el)\n {\n let child = Dom.make('div', {\n classList: 'n-confirm__text', innerHTML: `<p>${this.options.text}</p>`\n });\n\n child.appendTo(el);\n }\n\n renderConfirm(el, next)\n {\n let classList = [\n 'n-button',\n 'n-button--auto',\n 'n-button--' + this.options.size,\n ];\n\n let text = Obj.get(this.options, 'confirmText');\n\n if ( Mix.isEmpty(text) ) {\n text = Locale.trans('Okay');\n }\n\n let confirm = Dom.make('button', {\n classList: classList.join(' '), innerHTML: `<span>${text}</span>`\n });\n\n confirm.on('click', () => {\n next();\n });\n\n confirm.appendTo(el);\n }\n\n renderCancel(el, next)\n {\n let classList = [\n 'n-button',\n 'n-button--glass',\n 'n-button--neutral',\n 'n-button--' + this.options.size,\n ];\n\n let text = Obj.get(this.options, 'cancelText');\n\n if ( Mix.isEmpty(text) ) {\n text = Locale.trans('Cancel');\n }\n\n let confirm = Dom.make('button', {\n classList: classList.join(' '), innerHTML: `<span>${text}</span>`\n });\n\n confirm.on('click', () => {\n next();\n });\n\n confirm.appendTo(el);\n }\n\n bindEvents(confirm, cancel)\n {\n let { uid } = this.options;\n\n Dom.find(window).on('keydown', (e) => {\n if ( e.keyCode === 27 ) {\n e.stopPropagation(); cancel();\n }\n if ( e.keyCode === 13 ) {\n e.preventDefault(); confirm();\n }\n }, { uid });\n\n Dom.find(this.modal).on('click', (e) => {\n if ( ! Dom.find(e.target).inside('.n-confirm-frame') ) {\n cancel();\n }\n }, { uid });\n\n Run.delay(() => {\n Dom.find(this.modal).addClass('n-ready');\n });\n }\n\n unbindEvents()\n {\n let { uid } = this.options;\n\n Dom.find(window).off('keydown', null, {\n uid\n });\n\n Dom.find(this.modal).off('click', null, {\n uid\n });\n }\n\n render(confirm, cancel)\n {\n let cls = Obj.get(this.options, 'class', []);\n\n if ( Mix.isString(cls) ) {\n cls = cls.split(' ');\n }\n\n let classList = [\n 'n-confirm',\n 'n-confirm--' + this.options.size,\n 'n-confirm--' + this.options.type,\n ];\n\n classList.push('n-theme--dark');\n\n if ( window.WIN ) {\n classList.push('n-reverse');\n }\n\n let modal = Dom.make('div', {\n classList: Arr.merge(classList, cls).join(' ')\n });\n\n modal.attr('data-confirm', this.options.uid);\n\n let frame = Dom.make('div', {\n classList: ['n-confirm-frame']\n });\n\n frame.appendTo(modal);\n\n let body = Dom.make('div', {\n classList: ['n-confirm__body']\n });\n\n body.appendTo(frame);\n\n this.renderIcon(body);\n this.renderText(body);\n\n let action = Dom.make('div', {\n classList: ['n-confirm__action']\n });\n\n action.appendTo(frame);\n\n this.renderCancel(action, cancel);\n this.renderConfirm(action, confirm);\n\n Dom.find(document.body).style({\n 'overflow': 'hidden'\n });\n\n modal.appendTo(document.body);\n\n requestAnimationFrame(() => {\n this.bindEvents(confirm, cancel);\n });\n\n this.modal = modal.get(0);\n console.log(this.modal);\n }\n}\n\nexport default ConfirmHandler;","import { Arr, Obj, Mix, Str, Run } 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 = Run.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 && ! Mix.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 ( Mix.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, Mix } 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 emptyText: {\n default()\n {\n return 'No items';\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 || Mix.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 n-form-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-form-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 ( Mix.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 emptyHtml = (\n <div class=\"n-popover-shadow n-cascader__empty\">\n <NEmptyIcon inline={true}>{this.trans(this.emptyText)}</NEmptyIcon>\n </div>\n );\n\n if ( Mix.isEmpty(this.options) ) {\n return emptyHtml;\n }\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-popover-shadow\" {...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 ( Mix.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, Mix } 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.grid('years');\n },\n\n monthsGrid()\n {\n return this.tempCache.grid('months');\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 ( Mix.isString(now) ) {\n now = Now.make(now);\n }\n\n if ( Mix.isEmpty(this.modelValue) ) {\n now.reset({ time: true });\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 ( Mix.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 ( Mix.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 glass: true,\n square: 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 glass: true,\n square: 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() -1]\n ];\n\n let month = this.tempCache.clone()\n .add(this.monthPanels - 1, 'month');\n\n if ( month.month() !== this.tempCache.month() ) {\n monthsHtml.push(this.months[month.month() -1]);\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 .add(this.monthPanels - 1, 'month');\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.grid('days'), 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 .add(offset, 'month');\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() -1]) }</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 n-form-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-form-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 let classList = [\n 'n-popover-shadow',\n ];\n\n let excludes = [\n 'modelValue',\n 'placeholder',\n 'placeholderArrive',\n 'placeholderDepart',\n 'rangeSeparator',\n 'position',\n 'clearable',\n 'displayFormat'\n ];\n \n let props = Obj.except(this.$props, excludes, {\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={classList} {...props}></NDatepickerPanel>\n );\n },\n\n renderPopover()\n {\n let classList = [\n 'n-popover--datepicker',\n ];\n\n let props = {\n class: classList,\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, Mix } 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.getHoursGrid(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutesGrid(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSecondsGrid(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 ( Mix.isEmpty(this.modelValue) ) {\n modelValue = modelValue.reset({ time: true });\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 let scrollbarProps = {\n offsetY: 0, wrapClass: 'n-timepicker-panel__wrap'\n };\n\n return (\n <NScrollbar ref=\"hour\" class=\"n-timepicker-panel__panel\" {...scrollbarProps}>\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 let scrollbarProps = {\n offsetY: 0, wrapClass: 'n-timepicker-panel__wrap'\n };\n\n return (\n <NScrollbar ref=\"minute\" class=\"n-timepicker-panel__panel\" {...scrollbarProps}>\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 let scrollbarProps = {\n offsetY: 0, wrapClass: 'n-timepicker-panel__wrap'\n };\n\n return (\n <NScrollbar ref=\"second\" class=\"n-timepicker-panel__panel\" {...scrollbarProps}>\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, Mix, 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.getHoursGrid(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutesGrid(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSecondsGrid(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 n-form-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-form-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 let classList = [\n 'n-popover-shadow',\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={classList} {...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, Mix, 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 n-form-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-form-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-popover-shadow n-datetimepicker-panel\">\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 { Mix, 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 ( Mix.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 ( Mix.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 += Mix.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 += Mix.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 += Mix.float(mmatch[1].replace(',', '.')) * 60;\n }\n\n let smatch = this.findPattern(text, this.seconds);\n\n if ( smatch && smatch.length === 3 ) {\n value += Mix.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 n-form-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-form-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-popover-shadow n-durationpicker-panel\" {...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, Mix, Hash } 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 ( Mix.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 ( Mix.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: Hash.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 { this.ctor('renderSourceSearch')() }\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 { this.ctor('renderTargetSearch')() }\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('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('renderTargetBody')() }\n </div>\n </div>\n );\n }\n\n}","import { Mix, Arr, Locale, Obj } from \"@kizmann/pico-js\";\n\nexport const FormMessage = {\n\n required(field, value)\n {\n return Locale.trans('Field is required');\n },\n\n required_if(field, value, key = '')\n {\n\n let label = Arr.find(this.elements, (item) => {\n return item.prop === key;\n }) || key;\n\n return Locale.trans('Field is required if :label isset', {\n label: label.label || key\n });\n },\n\n required_unless(field, value, key = '')\n {\n let label = Arr.find(this.elements, (item) => {\n return item.prop === key;\n });\n\n return Locale.trans('Field is required unless :label isset', {\n label: label.label || key\n });\n },\n\n same(field, value, key = '')\n {\n let label = Arr.find(this.elements, (item) => {\n return item.prop === key;\n }) || key;\n\n return Locale.trans('Must be same as :label', {\n label: label.label || key\n });\n },\n\n diffrent(field, value, key = '')\n {\n let label = Arr.find(this.elements, (item) => {\n return item.prop === key;\n }) || key;\n\n return Locale.trans('Must be diffrent from :label', {\n label: label.label || key\n });\n },\n\n value(field, value, val = 'foobar')\n {\n return Locale.trans('Must be exact value :val', { val });\n },\n\n min(field, value, min = Number.MIN_VALUE)\n {\n return Locale.trans('Must be greather than :min', { min });\n },\n\n max(field, value, max = Number.MAX_VALUE)\n {\n return Locale.trans('Must be lesser than :max', { max });\n },\n\n minlength(field, value, min = Number.MIN_VALUE)\n {\n return Locale.trans('Length must be greater than :min', { min });\n },\n\n maxlength(field, value, max = Number.MAX_VALUE)\n {\n return Locale.trans('Length must be lesser than :max', { max });\n },\n\n email(field, value)\n {\n return Locale.trans('Must be a valid email');\n }\n\n};\n\nexport const FormRules = {\n\n required(field, value)\n {\n if ( Mix.isBool(value) ) {\n return value === true;\n }\n\n return !Mix.isEmpty(value);\n },\n\n required_if(field, value, key = '')\n {\n let target = Obj.get(this.form, key);\n\n if ( Mix.isEmpty(target) ) {\n return true;\n }\n\n if ( Mix.isBool(value) ) {\n return value === true;\n }\n\n return !Mix.isEmpty(value);\n },\n\n required_unless(field, value, key = '')\n {\n let target = Obj.get(this.form, key);\n\n if ( !Mix.isEmpty(target) ) {\n return true;\n }\n\n if ( Mix.isBool(value) ) {\n return value === true;\n }\n\n return !Mix.isEmpty(value);\n },\n\n same(field, value, key = '')\n {\n return value === Obj.get(this.form, key);\n },\n\n diffrent(field, value, key = '')\n {\n return value !== Obj.get(this.form, key);\n },\n\n value(field, value, val = 'foobar')\n {\n if ( Mix.isString(value) ) {\n return value === val;\n }\n\n return false;\n },\n\n min(field, value, min = Number.MIN_VALUE)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isNumber(value) ) {\n return value >= min;\n }\n\n return false;\n },\n\n max(field, value, max = Number.MAX_VALUE)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isNumber(value) ) {\n return value <= max;\n }\n\n return false;\n },\n\n minlength(field, value, min = Number.MIN_VALUE)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isString(value) || Mix.isArray(value) ) {\n return value.length > min;\n }\n\n return false;\n },\n\n maxlength(field, value, max = Number.MAX_VALUE)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isString(value) || Mix.isArray(value) ) {\n return value.length < max;\n }\n\n return false;\n },\n\n email(field, value)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isString(value) ) {\n return value.match(/^.*?@.*?\\.[a-z]{2,}$/);\n }\n\n return false;\n }\n\n};","import { Hash, Run, Arr, Obj, Mix, Dom, Locale } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\nimport {FormMessage, FormRules} from \"./form-rules.mjs\";\n\nexport default {\n\n name: 'NForm',\n\n inheritAttrs: false,\n\n model: {\n prop: 'form'\n },\n\n props: {\n\n ready: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\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 type: {\n default()\n {\n return 'primary';\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 Mix.isArray(this.$attrs) ? this.$attrs.class :\n [this.$attrs.class];\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid(), elements: [], rules: [], groups: {}, ruleErrors: {}, blocked: true,\n };\n },\n\n provide()\n {\n return {\n NForm: this\n };\n },\n\n mounted()\n {\n Run.delay(this.ctor('ready'), 500);\n },\n\n ready()\n {\n this.$watch('form', this.emitChange, {\n deep: true\n });\n\n this.resetChange();\n },\n\n methods: {\n\n getGroups()\n {\n return this.groups;\n },\n\n appendGroup(group)\n {\n this.groups[group.uid] = group;\n },\n\n removeGroup(group)\n {\n delete this.groups[group.uid];\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 appendItem(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.validate();\n\n this.prevState = nextState;\n\n this.$emit('change');\n },\n\n validateField(field)\n {\n let errors = [];\n\n Arr.each(field.rules, (rule) => {\n let [name, ...args] = rule.split(':');\n\n if ( ! FormRules[name] || !FormMessage[name] ) {\n return;\n }\n\n let value = Obj.get(this.form, field.prop);\n\n if ( FormRules[name].call(this, field, value, ...args) ) {\n return;\n }\n\n let message = FormMessage[name].call(this, field, value, ...args);\n\n if ( Mix.isEmpty(message) ) {\n return;\n }\n\n errors.push(message);\n });\n\n return errors;\n },\n\n validate()\n {\n let errors = {};\n\n Arr.each(this.elements, (field) => {\n errors[field.prop] = this.validateField(field);\n });\n\n this.ruleErrors = Obj.filter(errors, (err) => {\n return ! Mix.isEmpty(err);\n });\n\n return this.ruleErrors;\n },\n\n isValid(includeErrors = false)\n {\n this.validate();\n\n let count = Mix.keys(this.ruleErrors).length;\n\n if ( includeErrors ) {\n count += Mix.keys(this.errors).length;\n }\n\n return count === 0;\n },\n\n getErrors()\n {\n let errors = {};\n\n Obj.each(this.errors, (err, key) => {\n\n if ( ! Mix.isArray(err) ) {\n err = [err];\n }\n\n errors[key] = err;\n });\n\n Obj.each(this.ruleErrors, (err, key) => {\n\n if ( Obj.has(errors, key) ) {\n err = Arr.merge(errors[key], err);\n }\n\n errors[key] = err;\n });\n\n return errors;\n },\n\n },\n\n render()\n {\n let classList = [\n 'n-form',\n 'n-form--' + this.size,\n 'n-form--' + this.type,\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 { Mix, Arr, Obj, Hash } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormBag',\n\n inject: {\n\n NForm: {\n default: undefined\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid()\n };\n },\n\n\n methods: {\n\n gotoField(field)\n {\n //\n }\n\n },\n\n\n renderField(field)\n {\n let errors = Obj.get(this.NForm.getErrors(),\n field.prop, []);\n\n console.log('err', field.prop, errors)\n\n if ( Mix.isEmpty(errors) ) {\n return null;\n }\n\n let items = Arr.each(errors, (error) => {\n return (<li>{error}</li>);\n });\n\n let itemProps = {\n //\n };\n\n itemProps['onClick'] = () => {\n console.log('click');\n field.gotoInput();\n };\n\n return (\n <div class=\"n-form-bag-item\" {...itemProps}>\n <div class=\"n-form-bag-item__label\">\n <i class=\"n-icon fa fa-location-crosshairs\"></i> <span>{field.label}</span>\n </div>\n <div class=\"n-form-bag-item__errors\">\n <ul>{items}</ul>\n </div>\n </div>\n )\n },\n\n render()\n {\n if ( !this.NForm ) {\n return null;\n }\n\n let classList = [\n 'n-form-bag',\n 'n-form-bag--' + this.NForm.size,\n ];\n\n let items = Arr.each(this.NForm.elements, (field) => {\n return this.ctor('renderField')(field);\n });\n\n return (\n <div class={classList}>\n {items}\n </div>\n );\n }\n}\n","import { Arr, Hash } 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 name: {\n default()\n {\n return Hash.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 grid: {\n default()\n {\n return '';\n },\n type: [String, Number]\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 data()\n {\n return {\n uid: Hash.uuid(), tempValue: this.modelValue, items: []\n };\n },\n\n provide()\n {\n return { NFormGroup: this };\n },\n\n mounted()\n {\n if ( this.NForm ) {\n this.NForm.appendGroup(this);\n }\n },\n\n unmounted()\n {\n if ( this.NForm ) {\n this.NForm.removeGroup(this);\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 getItems()\n {\n return this.items;\n },\n\n appendItem(item)\n {\n this.items[item.uid] = item;\n },\n\n removeItem(item)\n {\n delete this.items[item.uid];\n },\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__header\" onClick={this.toggleGroup}>\n <div class=\"n-form-group__legend\">\n {this.ctor('renderCollapse')()}\n {this.ctor('renderText')()}\n {this.ctor('renderAction')()}\n </div>\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 let classList = [\n 'n-form-group__body'\n ];\n\n if ( this.grid ) {\n classList.push(`n-grid gap-${this.grid}`);\n }\n\n return (\n <div class={classList}>\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.name} class={classList} data-group-key={this.name}>\n { this.ctor('renderLabel')() }\n { this.ctor('renderTooltip')() }\n { this.ctor('renderBody')() }\n </fieldset>\n );\n }\n}\n","import { Arr, Obj, Mix, Dom, Hash, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormItem',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NFormGroup: {\n default: undefined\n },\n\n NTabs: {\n default: undefined\n },\n\n NTabsItem: {\n default: undefined\n },\n\n NCollapse: {\n default: undefined\n },\n\n NCollapseItem: {\n default: undefined\n },\n\n NScrollbar: {\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 rules: {\n default()\n {\n return [];\n },\n type: [Array]\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 data()\n {\n return {\n uid: Hash.uuid()\n };\n },\n\n beforeMount()\n {\n if ( this.NForm ) {\n this.NForm.appendItem(this);\n }\n\n if ( this.NFormGroup ) {\n this.NFormGroup.appendItem(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 if ( this.NFormGroup ) {\n this.NFormGroup.removeItem(this);\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 selector = `[data-form-field=\"${this.uid}\"]`;\n\n if ( this.NTabsItem ) {\n this.NTabsItem.changeTab();\n }\n\n if ( this.NCollapseItem ) {\n this.NCollapseItem.showTab();\n }\n\n if ( this.NScrollbar ) {\n this.NScrollbar.scrollIntoView(selector, 0, 50);\n }\n\n console.log(this.NScrollbar)\n }\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 return (\n <div class=\"n-form-item__label\">\n <label onClick={this.focusInput} data-tooltip-ltr={this.tooltip} data-required={Arr.has(this.rules, 'required')}>\n {this.$slots.label && this.$slots.label() || this.label}\n </label>\n </div>\n );\n },\n\n renderError()\n {\n if ( !this.NForm ) {\n return null;\n }\n\n let errors = Obj.get(this.NForm.getErrors(),\n this.prop, []);\n\n if ( Mix.isEmpty(errors) ) {\n return;\n }\n\n return (\n <div class=\"n-form-item__error\">\n {Arr.first(errors)}\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} data-form-field={this.uid}>\n {this.ctor('renderCondition')()}\n {this.ctor('renderLabel')()}\n {this.ctor('renderInput')()}\n {this.ctor('renderError')()}\n </div>;\n }\n}\n","import { Run, Arr, Mix, 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 multiple: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n data()\n {\n return {\n search: ''\n };\n },\n\n mounted()\n {\n this.$watch('search', () => {\n this.onSearchInput();\n });\n\n this.$nextTick(() => {\n this.onScrollEvent();\n });\n\n this.onMoveEvent();\n },\n\n methods: {\n\n applyStar(id, block = false)\n {\n if ( this.block ) {\n return;\n }\n\n if ( ! Mix.isEmpty(this.timeout) ) {\n clearTimeout(this.timeout);\n }\n\n if ( block ) {\n this.onApplyStar(id, block);\n }\n\n this.timeout = setTimeout(() => {\n this.onApplyStar(id, false);\n }, 500);\n },\n\n onApplyStar(id, block = false)\n {\n this.block = block;\n\n Dom.find(this.$el).find(`[data-menu-key]`).each((el) => {\n Dom.find(el).remClass('is-star');\n });\n\n Dom.find(this.$el).find(`[data-menu-key=\"${id}\"]`)\n .addClass('is-star');\n },\n\n onMoveEvent()\n {\n Dom.find(window).on('mousemove', Run.debounce(e => {\n\n let el = Dom.find(e.target).closest('[data-group-key]');\n\n if ( Mix.isEmpty(el) ) {\n return;\n }\n\n this.applyStar(Dom.find(el).attr('data-group-key'), true);\n\n }, 100));\n },\n\n onScrollEvent()\n {\n Dom.find(this.$el).find('[data-menu-key]').each((el) => {\n Dom.find(el).remClass(['is-visible', 'is-first']);\n });\n\n let options = {\n el: `[data-group-key]`, parent: this.$refs.body.$refs.content\n };\n\n let el = Dom.inviewMaxY(options, (el, index) => {\n\n let selector = `[data-menu-key=\"${el.attr}\"]`;\n\n let classList = [\n 'is-visible'\n ];\n\n if ( index === 0 ) {\n classList.push('is-first');\n }\n\n Dom.find(this.$el).find(selector)\n .addClass(classList);\n\n this.$refs.menu.scrollIntoView(selector)\n });\n\n this.applyStar(Dom.find(el).attr('data-group-key'), false);\n },\n\n onSearchInput()\n {\n let search = Str.lower(this.search);\n\n Dom.find(this.$el).find(`[data-menu-key]`)\n .remClass('on-search');\n\n if ( Mix.isEmpty(search) ) {\n return;\n }\n\n let groups = Arr.filter(this.NForm.groups, (group) => {\n\n let labels = Arr.extract(group.items, 'label')\n .join(\"\\n\");\n\n return Str.lower(group.label + \"\\n\" + labels)\n .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 ( ! Mix.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 ( this.star !== item.key ) {\n this.applyStar(item.key, true);\n }\n\n this.$refs.body.scrollIntoView(selector, 0, 100);\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 ( ! Mix.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'] = () => {\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 ( ! Mix.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, Run } 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 Run.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 lazy: {\n default()\n {\n return true;\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={'n-icon ' + 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.keep ) {\n renderBody |= this.init;\n }\n\n if ( ! this.lazy ) {\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 let props = {\n class: classList, style\n }\n\n if ( element !== 'div' ) {\n props.wrapClass = 'n-tabs__wrap';\n }\n\n return h(element, props, this.$slots);\n }\n}\n","import { Arr, Dom, Mix } 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-tags--' + this.size,\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { Arr, Mix, 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 null;\n },\n type: [String]\n },\n\n color: {\n default()\n {\n return null;\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 ( Mix.isEmpty(this.icon) ) {\n return null;\n }\n\n return (\n <i class={'n-icon ' + 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 if ( this.type !== null ) {\n classList.push('n-tags-item--' + this.type);\n }\n\n if ( this.color !== null ) {\n classList.push('n-tags-item--color-' + this.color);\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, Mix } 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 getIndex(tab)\n {\n if ( tab.sort !== -1 ) {\n return 1000 + tab.sort;\n }\n\n return Arr.findIndex(this.elements, {\n name: tab.name\n });\n },\n\n getSorted()\n {\n // Fix for vue constructor prop warning\n let indexies = Arr.each(Mix.keys(this.elements), (key) => {\n return { name: this.elements[key]['name'], index: this.getIndex(this.elements[key]) };\n });\n\n return Arr.sort(indexies, 'index');\n },\n\n addTab(tab)\n {\n Arr.add(this.elements, tab, {\n name: tab.name\n });\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\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, Mix, 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 - 1;\n },\n type: [Number]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n lazy: {\n default()\n {\n return true;\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 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={'n-icon ' + 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 renderHeaderAction()\n {\n if ( ! this.$slots.action ) {\n return null;\n }\n\n return (\n <div class=\"n-collapse__header-action\">\n {this.$slots.action && this.$slots.action()}\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 sorted = this.NCollapse.getSorted();\n\n let classList = [\n 'n-collapse__header'\n ];\n\n if ( Arr.first(sorted)['name'] === this.name ) {\n classList.push('is-first');\n }\n\n if ( Arr.last(sorted)['name'] === this.name ) {\n classList.push('is-last');\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: (Arr.find(sorted, { name: this.name })['index'] * 10) + 1\n };\n\n return (\n <div ref=\"header\" class={classList} {...props}>\n {this.ctor('renderHeaderIcon')()}\n {this.ctor('renderHeaderLabel')()}\n {this.ctor('renderHeaderAction')()}\n {this.ctor('renderHeaderAngle')()}\n </div>\n );\n },\n\n renderBody()\n {\n let sorted = this.NCollapse.getSorted();\n\n let classList = [\n 'n-collapse__body'\n ];\n\n if ( Arr.first(sorted)['name'] === this.name ) {\n classList.push('is-first');\n }\n\n if ( Arr.last(sorted)['name'] === this.name ) {\n classList.push('is-last');\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 ( this.keep ) {\n renderBody = this.init;\n }\n\n if ( ! this.lazy ) {\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: (Arr.find(sorted, { name: this.name })['index'] * 10) + 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 { Mix, Arr, Obj, Dom, Event, Hash } 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 true;\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: Hash.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 ( !Mix.isString(column) ) {\n column = column['prop'];\n }\n\n return Arr.findIndex(this.tempVisibleProps,\n column);\n },\n\n getColumnVisiblity(column)\n {\n if ( !Mix.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 ( !Mix.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Mix.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 ( !Mix.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Mix.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 ( !Mix.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Mix.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 let args = [\n Arr.extract(this.elements, 'prop'), this.tempVisible\n ];\n\n this.tempVisibleProps = Arr.isect(...args);\n\n this.$nextTick(this.$refs.scrollbar.onResize);\n },\n\n sortByColumn(column)\n {\n let prop = column;\n\n if ( !Mix.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Mix.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 Mix.vals(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 <NPopoverGroup>\n {this.trans('Toggle column visiblity')}\n </NPopoverGroup>\n <NCheckboxGroup vModel={this.tempVisible} size=\"sm\" align=\"vertical\">\n {Mix.vals(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.map(this.elements, (column) => {\n return column.disabled ? null : column.ctor('renderHead')();\n });\n\n return (\n <div class=\"n-table__header\">\n {defaultRender} {Mix.vals(columns)}\n </div>\n );\n },\n\n render()\n {\n let except = [\n 'visible', 'filter', 'sortProp', '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-table--md\">\n <NScrollbar ref=\"scrollbar\" wrapClass=\"n-table__wrap\" overflowY={false}>\n {[this.ctor('renderHead')(), draggableHtml]}\n </NScrollbar>\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n },\n\n}","import { Mix, Arr, Obj, Str, Dom, Hash, 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 Hash.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 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 ( Mix.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: Hash.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.fixedWidth ) {\n classList.push('n-fixed');\n }\n\n if ( this.NTable.getColumnFiltered(this) ) {\n classList.push('n-filtered');\n }\n\n let flex = '1 1 auto';\n\n if ( this.width != 0 ) {\n flex = `1 1 ${this.width}`;\n }\n\n if ( this.fixedWidth != 0 ) {\n flex = `0 0 ${this.fixedWidth}px`;\n }\n\n let props = {\n modelValue: this.tempWidth,\n flex: flex,\n minWidth: this.minWidth,\n maxWidth: this.maxWidth,\n disabled: !!this.fixedWidth,\n group: ['n-table', this.NTable.uid],\n };\n\n props['onUpdateWidth'] = (value) => {\n this.tempWidth = value;\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} {...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 ( Mix.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.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 { Str } 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>{ Str.string(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Str } 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>{ Str.boolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Str } 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>{ Str.datetime(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, Mix } 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 ( Mix.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 = ! Mix.isRef(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, Mix } 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 previewProps = {\n fit: 'contain',\n index: this.NDraggableItem.index,\n group: this.column.uid,\n };\n\n previewProps['onSlide'] = () => {\n this.NTable.$refs.draggable.setRawCurrent(this.NDraggableItem.index);\n };\n\n return (\n <div class={classList}>\n <NPreview file={this.preview || this.input} thumb={this.input} {...previewProps} />\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Num, Mix, Obj, Arr, Hash } 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 = Mix.int(item[this.column.matrixProp]);\n\n let matrix = Arr.toggle(Num.matrix(currentMatrix),\n Mix.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 = Mix.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 ( ! Mix.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, Mix, 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 ( Mix.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 ( ! Mix.isEmpty(this.column.modelValue) ) {\n return true;\n }\n\n if ( Mix.isFunction(this.column.matrixDisabled) ) {\n return this.column.matrixDisabled(this);\n }\n\n if ( ! Mix.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, Mix, Dom, Event, Hash} 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 ! Mix.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 ( Mix.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 closeMixway = event.which === 13 &&\n this.NTable.closeFilterOnEnter;\n\n if ( closeMixway || 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 glass: 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: 'neutral',\n glass: 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: 'md',\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, Mix, 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 { Mix } 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} />\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, Mix, 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 ( Mix.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, Mix } 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, (i) => i+1);\n }\n\n },\n\n data()\n {\n return {\n tempPage: this.page, tempLimit: this.limit,\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 lazy: true,\n options: this.pageOptions,\n optionsValue: '$value',\n optionsLabel: '$value',\n };\n\n props['onUpdate:modelValue'] = this.onPageInput;\n\n return (\n <div class=\"n-paginator__goto\" key={'paginate' + this.pageOptions.length}>\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 ( Mix.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, Mix, Obj, Event, Hash, Run } 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: Hash.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 Run.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 ( Mix.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 ( Mix.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 {Mix.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 { Hash, 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: Hash.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 { Str } 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>{ Str.string(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Str } 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>{ Str.boolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import { Str } 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>{ Str.datetime(this.input, this.column.datetimeFormat, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Mix } 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 ( Mix.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 = ! Mix.isRef(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 { Hash, Obj, Arr, Mix, Event, Locale } from \"@kizmann/pico-js\";\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 title: {\n default()\n {\n return null;\n },\n type: [String]\n },\n\n index: {\n default()\n {\n return 0;\n },\n type: [Number, String]\n },\n\n group: {\n default()\n {\n return Hash.uuid();\n },\n type: [String]\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 type: [String]\n },\n\n preview: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showSrc: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n buttonText: {\n default()\n {\n return Locale.trans('Download file');\n },\n type: [String]\n },\n\n renderButton: {\n default()\n {\n return true;\n },\n type: [Boolean]\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 },\n\n provide()\n {\n return { NPreview: this };\n },\n\n methods: {\n\n openBox()\n {\n this.$refs.modal.openBox();\n },\n\n closeBox()\n {\n this.$refs.modal.closeBox();\n },\n\n },\n\n renderTitle()\n {\n if ( Mix.isEmpty(this.title) ) {\n return null;\n }\n\n return (\n <div class=\"n-preview__title\">\n <span>{this.title}</span>\n </div>\n );\n },\n\n renderPreview()\n {\n if ( ! this.preview ) {\n return this.ctor('renderFull')();\n }\n\n let type = this.PreviewHelper.getType(this.tempThumb);\n\n if ( type === 'image' ) {\n return (<NPreviewImage src={this.tempThumb} />);\n }\n\n let props = {\n showSrc: false, renderButton: false,\n };\n\n return (<NPreviewPlain src={this.tempThumb} {...props} />);\n },\n\n renderFull()\n {\n let type = this.PreviewHelper.getType(this.tempFile);\n\n if ( type === 'image' ) {\n return (<NPreviewImage src={this.tempFile} />);\n }\n\n if ( type === 'video' ) {\n return (<NPreviewVideo src={this.tempFile} />);\n }\n\n let props = {\n showSrc: this.showSrc, buttonText: this.buttonText, renderButton: this.renderButton\n };\n\n return (<NPreviewPlain src={this.tempFile} {...props} />);\n },\n\n renderModal()\n {\n if ( ! this.preview ) {\n return null;\n }\n\n let modalProps = {\n index: this.index, group: this.group, file: this.tempFile\n };\n\n return (\n <NPreviewModal ref=\"modal\" {...modalProps} />\n );\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 let type = this.PreviewHelper.getType(this.tempFile);\n\n if ( type ) {\n classList.push('n-mime-' + type);\n }\n\n let thumb = this.PreviewHelper.getType(this.tempThumb);\n\n if ( thumb ) {\n classList.push('n-mime-preview-' + thumb);\n }\n\n let props = {};\n\n if ( this.preview ) {\n props.onClick = () => this.openBox();\n }\n\n let key = btoa(this.tempThumb);\n\n return (\n <div key={key} class={classList} {...props}>\n { [this.ctor('renderPreview')(), this.ctor('renderTitle')(), this.ctor('renderModal')()] }\n </div>\n );\n }\n\n}","import { Mix, 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 showSrc: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n buttonText: {\n default()\n {\n return Locale.trans('Download file');\n },\n type: [String]\n },\n\n renderButton: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n file() {\n return Obj.get(this.src, 'name', this.src);\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.PreviewHelper.getMime(this.file) }</li>\n );\n\n if ( this.showSrc ) {\n slots.push(<li class=\"np-file\">{ this.file }</li>);\n }\n\n let buttonProps = {\n nativeType: 'a', href: this.file, target: '_blank'\n };\n\n let buttonHtml = (\n <li class=\"np-button\">\n <NButton {...buttonProps}>{ this.buttonText }</NButton>\n </li>\n );\n\n if ( this.renderButton ) {\n slots.push(buttonHtml);\n }\n\n return (\n <div class={classList}>\n <ul>{ slots }</ul>\n </div>\n );\n }\n\n}","import { Obj, Arr, Run, Mix, 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 ( Mix.isRef(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 Run.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, Mix, Dom } from \"@kizmann/pico-js\";\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 ( Mix.isRef(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 = this.PreviewHelper.getYoutubeKey(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 = this.PreviewHelper.getVimeoKey(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 return (\n <video width=\"320\" height=\"240\" controls>\n <source src={this.tempSrc || this.src} type={this.PreviewHelper.getMime(src)} />\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 { Mix, Event, Obj, Hash } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewModal',\n\n inject: {\n\n NPreview: {\n default: undefined\n }\n\n },\n\n props: {\n\n file: {\n default()\n {\n return null;\n }\n },\n\n index: {\n default()\n {\n return 0;\n },\n type: [Number, String]\n },\n\n group: {\n default()\n {\n return Hash.uuid();\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return { uid: Hash.uuid(), visible: false };\n },\n\n computed: {\n\n tempFile() {\n return Obj.get(this.file, 'name', this.file);\n }\n\n },\n\n watch: {\n\n visible: function (value) {\n if ( value ) {\n this.NPreview.$emit('slide');\n }\n }\n\n },\n\n mounted()\n {\n this.PreviewHandler.create()\n .append(this.$el);\n\n this.PreviewHandler.append(this);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n\n this.PreviewHandler.remove(this);\n },\n\n methods: {\n\n openBox()\n {\n this.PreviewHandler.open(this);\n },\n\n closeBox()\n {\n this.PreviewHandler.close();\n }\n\n },\n\n renderFull()\n {\n let classList = [\n 'n-preview-frame'\n ];\n\n let mime = this.PreviewHelper.getType(this.tempFile);\n\n if ( mime === 'image' ) {\n return (<NPreviewImage class={classList} src={this.file} />);\n }\n\n if ( mime === 'video' ) {\n return (<NPreviewVideo class={classList} src={this.file} />);\n }\n\n let props = {\n showSrc: this.NPreview ? this.NPreview.showSrc : false,\n };\n\n return (<NPreviewPlain class={classList} src={this.file} {...props} />);\n },\n\n render()\n {\n if ( ! this.visible ) {\n return null;\n }\n\n return this.ctor('renderFull')();\n },\n\n}","import { Mix, Arr, Dom, Obj } from \"@kizmann/pico-js\";\n\nexport class PreviewHelper\n{\n static alias = 'PreviewHelper';\n\n static getExt(source, fallback = 'plain')\n {\n let match = source.match(/\\.([^.?]+)(\\?.*?)?$/);\n\n if ( ! match ) {\n return fallback;\n }\n\n if ( Mix.isEmpty(match[1]) ) {\n return fallback;\n }\n\n return match[1];\n }\n\n static getType(source, fallback = 'text')\n {\n let file = Obj.get(source, 'name', source);\n\n if ( Mix.isEmpty(file) ) {\n return fallback;\n }\n\n let extension = PreviewHelper.getExt(file);\n\n if ( PreviewHelper.getYoutubeKey(file) ) {\n return 'video';\n }\n\n if ( PreviewHelper.getVimeoKey(file) ) {\n return 'video';\n }\n\n Obj.each(window.PreviewMimes, (exts, key) => {\n if ( Arr.has(exts, extension) ) fallback = key;\n });\n\n return fallback;\n }\n\n static getMime(source, fallback = 'text/plain')\n {\n let file = Obj.get(source, 'name', source);\n\n if ( Mix.isEmpty(file) ) {\n return fallback;\n }\n\n if ( PreviewHelper.getYoutubeKey(source) ) {\n return 'video/youtube';\n }\n\n if ( PreviewHelper.getVimeoKey(source) ) {\n return 'video/vimeo';\n }\n\n return PreviewHelper.getType(file) + '/' + PreviewHelper.getExt(file);\n }\n\n static getVimeoKey(source, fallback = null)\n {\n if ( ! Mix.isString(source) ) {\n return fallback;\n }\n\n let host = source.match(/^https?:\\/\\/(www\\.|player\\.)?vimeo\\.com/);\n\n if ( ! host ) {\n return fallback;\n }\n\n let path = source.match(/(\\/[0-9]+)(&|$)/);\n\n if ( path && path.length === 3 ) {\n return path[0].replace(/(^\\/|&$)/, '');\n }\n\n return fallback;\n }\n\n static getYoutubeKey(source, fallback)\n {\n if ( ! Mix.isString(source) ) {\n return fallback;\n }\n\n let host = source.match(/^https?:\\/\\/(www\\.)?(youtube\\.com|youtu\\.be)/);\n\n if ( ! host ) {\n return fallback;\n }\n\n let id = source.match(/(\\?v=.*?)(?=&|$)/);\n\n if ( id && id.length === 2 ) {\n return id[0].replace(/^\\?v=/, '');\n }\n\n let path = source.match(/(\\.be\\/.*?)(?=\\?|$)/);\n\n if ( path && path.length === 2 ) {\n return path[0].replace(/^\\.be\\//, '');\n }\n\n let frame = source.match(/(\\/embed\\/)(.*?$)/);\n\n if ( frame && frame.length === 3 ) {\n return frame[0].replace(/^\\/embed\\//, '');\n }\n\n return fallback;\n }\n\n}\n\nif ( ! window[PreviewHelper.alias] ) {\n window[PreviewHelper.alias] = PreviewHelper;\n}\n\nexport default PreviewHelper;","import { Mix, Arr, Obj, Dom } from \"@kizmann/pico-js\";\n\nwindow.PreviewGroups = {};\n\nexport class PreviewHandler\n{\n static alias = 'PreviewHandler';\n\n static current = null;\n\n static append(item)\n {\n if ( !window.PreviewGroups[item.group] ) {\n window.PreviewGroups[item.group] = {};\n }\n\n window.PreviewGroups[item.group][item.uid] = item;\n }\n\n static remove(item)\n {\n delete window.PreviewGroups[item.group][item.uid];\n }\n\n static get(group)\n {\n if ( !window.PreviewGroups[group] ) {\n window.PreviewGroups[group] = {};\n }\n\n return Arr.sort(window.PreviewGroups[group], 'index');\n }\n\n static next()\n {\n if ( ! Mix.isRef(this.current) ) {\n return null;\n }\n\n let items = this.get(this.current.group);\n\n let index = Arr.findIndex(items, {\n uid: this.current.uid\n });\n\n let next = Arr.first(items);\n\n if ( items.length > index + 1 ) {\n next = Arr.get(items, index + 1);\n }\n\n return this.switch(next);\n }\n\n static prev()\n {\n if ( ! Mix.isRef(this.current) ) {\n return null;\n }\n\n let items = this.get(this.current.group);\n\n let index = Arr.findIndex(items, {\n uid: this.current.uid\n });\n\n let prev = Arr.last(items);\n\n if ( 0 <= index - 1 ) {\n prev = Arr.get(items, index - 1);\n }\n\n return this.switch(prev);\n }\n\n static create()\n {\n el = Dom.find('.n-preview-modal');\n\n if ( el.length() ) {\n return el;\n }\n\n let classList = [\n 'n-preview-modal',\n 'n-preview-modal--md',\n 'n-preview-modal--primary',\n 'n-theme--dark'\n ];\n\n let el = Dom.make('div', {\n classList: classList.join(' ')\n });\n\n el.attr('data-preview', 'nano');\n\n let close = Dom.make('div', {\n classList: 'n-preview-modal__close',\n innerHTML: `<i class=\"${nano.Icons.times}\"></i>`\n });\n\n close.on('click', () => {\n this.close()\n });\n\n close.appendTo(el);\n\n let prev = Dom.make('div', {\n classList: 'n-preview-modal__prev',\n innerHTML: `<i class=\"${nano.Icons.angleLeft}\"></i>`\n });\n\n prev.on('click', () => {\n this.prev()\n });\n\n prev.appendTo(el);\n\n let next = Dom.make('div', {\n classList: 'n-preview-modal__next',\n innerHTML: `<i class=\"${nano.Icons.angleRight}\"></i>`\n });\n\n next.on('click', () => {\n this.next()\n });\n\n next.appendTo(el);\n\n el.appendTo(document.body);\n\n return el;\n }\n\n static open(item)\n {\n let el = this.create();\n\n let keydownFn = (e) => {\n\n if ( e.keyCode === 27 ) {\n e.stopPropagation();\n return this.close();\n }\n\n if ( e.keyCode === 37 ) {\n e.stopPropagation();\n return this.prev();\n }\n\n if ( e.keyCode === 39 ) {\n e.stopPropagation();\n return this.next();\n }\n\n }\n\n Dom.find(window).on('keydown', keydownFn, {\n uid: 'n-preview-modal'\n });\n\n this.switch(item);\n\n if ( this.get(item.group).length > 1 ) {\n el.addClass('n-multi');\n }\n\n el.addClass('n-ready');\n }\n\n static close()\n {\n let el = this.create();\n\n Dom.find(window).off('keydown', null, {\n uid: 'n-preview-modal'\n });\n\n this.switch(null);\n\n el.remClass(['n-ready', 'n-multi']);\n }\n\n static switch(item)\n {\n if ( Mix.isRef(this.current) ) {\n Obj.set(this.current, 'visible', false);\n }\n\n this.current = item;\n\n if ( Mix.isRef(this.current) ) {\n Obj.set(this.current, 'visible', true);\n }\n\n return item;\n }\n\n}\n\nif ( ! window.PreviewHandler ) {\n window.PreviewHandler = PreviewHandler;\n}\n\nexport default PreviewHandler;","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\";\nimport PreviewModal from \"./src/preview-modal/preview-modal.jsx\";\n\nimport PreviewHelper from \"./src/preview/preview-helper.mjs\";\nimport PreviewHandler from \"./src/preview/preview-handler.mjs\";\n\nwindow.DefaultPreviewMimes = {\n image: [\n 'jpg', 'jpeg', 'gif', 'svg', 'png', 'bmp'\n ],\n video: [\n 'mp4', 'webm', 'mov'\n ],\n audio: [\n 'mp3', 'aac',\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 function (App) {\n\n if ( ! window.PreviewMimes ) {\n window.PreviewMimes = pi.Obj.assign(window.DefaultPreviewMimes, window.PreviewMimes);\n }\n\n let directives = [\n PreviewHelper, PreviewHandler\n ];\n\n pi.Arr.each(directives, (glob) => {\n App.config.globalProperties[glob.alias] = glob;\n });\n\n let components = [\n Preview, PreviewModal, PreviewPlain, PreviewImage, PreviewVideo\n ];\n\n pi.Arr.each(components, (comp) => {\n App.component(comp.name, comp);\n });\n\n}\n\n","import { Arr, Map, Run } 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 Run.delay(() => this.tempMap.focusMarkers(), 100);\n },\n\n lng()\n {\n Run.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 { Hash, Obj, Num, Mix, Run } 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: Hash.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 ( ! Mix.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 Run.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, Mix, 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 glass: {\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 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 ( Mix.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 && !Mix.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 glass: this.glass,\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 { Str, 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, String]\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: Str.number(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 { Run, Arr, Obj, Mix, Dom, Locale } from \"@kizmann/pico-js\";\n\nwindow.NDrawerStack = [];\n\nexport default {\n\n name: 'NDrawer',\n\n inject: {\n\n NDrawer: {\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 theme: {\n default()\n {\n return 'auto';\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 .prev().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 Run.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).remClass('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).style({\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 let classList = [\n 'n-drawer__backdrop',\n ];\n\n return (\n <div ref=\"backdrop\" class={classList}></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.position\n ];\n\n if ( this.theme ) {\n classList.push('n-theme--' + this.theme);\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, Mix, Hash, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NChartItem',\n\n inject: {\n NChart: {\n default: undefined\n }\n },\n\n props: {\n\n value: {\n default()\n {\n return 1;\n },\n type: [String, Number]\n },\n\n axis: {\n default()\n {\n return Locale.trans('Items');\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return Locale.trans('Items');\n },\n type: [String, Number]\n },\n\n type: {\n default()\n {\n return null;\n },\n type: [String]\n },\n\n color: {\n default()\n {\n return null;\n }\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid()\n };\n },\n\n beforeMount()\n {\n if ( this.NChart ) {\n this.NChart.appendElement(this);\n }\n },\n\n beforeUnmount()\n {\n if ( this.NChart ) {\n this.NChart.removeElement(this);\n }\n },\n\n methods: {\n\n getClass(index, className = 'n-chart-item')\n {\n if ( ! Mix.isEmpty(this.type) ) {\n return className + '--' + this.type;\n }\n\n return className + '--color-' + this.getColor(index);\n },\n\n getColor(index)\n {\n if ( this.color !== 'auto' ) {\n return this.color;\n }\n\n let color = this.NChart.color + index;\n\n let subdivide = Math.floor(color /\n this.NChart.colorLimit);\n\n return color - (this.NChart.colorLimit *\n subdivide);\n }\n\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Arr, Num, Mix, Dom, Hash, Locale, Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NChartDonut',\n\n provide()\n {\n return {\n NChart: this\n };\n },\n\n props: {\n\n sort: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n width: {\n default()\n {\n return 6;\n },\n type: [Number]\n },\n\n color: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n colorLimit: {\n default()\n {\n return 19;\n },\n type: [Number]\n },\n\n label: {\n default()\n {\n return Locale.trans('Total count');\n },\n type: [String]\n },\n\n otherLabel: {\n default()\n {\n return Locale.trans('Other count');\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n overlap: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n limit: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n renderLegend: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n total()\n {\n let count = Arr.each(this.elements, (item) => {\n return Num.float(item.value);\n });\n\n return Num.combine(count);\n },\n\n fixed()\n {\n let count = Arr.each(this.elements, (item) => {\n return Num.float(item.value);\n });\n\n return Num.combine(count);\n }\n\n },\n\n data()\n {\n let attrs = {\n 'cx': '65', 'cy': '65', 'r': '57.2958'\n };\n\n return {\n attrs, elements: []\n };\n },\n\n beforeMount()\n {\n this.vis = this.hid = [];\n },\n\n methods: {\n\n appendElement(element)\n {\n this.index = - 1;\n\n Arr.add(this.elements, element, {\n uid: element.uid\n });\n },\n\n removeElement(checkbox)\n {\n this.index = - 1;\n\n Arr.remove(this.elements, {\n uid: checkbox.uid\n });\n },\n\n onMouseenter(item)\n {\n Dom.find(this.$refs.text).style({\n '--n-chart-label': `'${item.label}'`,\n '--n-chart-value': Num.int(item.value)\n });\n },\n\n onMouseleave(item)\n {\n Dom.find(this.$refs.text).style(null);\n }\n\n },\n\n renderCircle(item, index)\n {\n let gaps = (this.vis.length) * (this.width * 2);\n\n if ( ! Mix.isEmpty(this.hid) ) {\n gaps = (this.vis.length + 1) * (this.width * 2);\n }\n\n let [distance] = [\n ((360 - gaps) * Num.float(item.value) / this.total) + (this.width * 2),\n ];\n\n\n let offset = (this.last * - 1);\n\n if ( !this.overlap ) {\n offset = Math.min(offset - (this.width * 0.5), 0);\n }\n\n let dashar = distance;\n\n if ( !this.overlap ) {\n dashar = Math.max(dashar - (this.width * 1.5), 0);\n }\n\n let classBlock = [\n 'n-chart-item', item.getClass(index),\n ];\n\n let classHover = [\n 'n-chart-hover'\n ];\n\n let propsBlock = {\n 'stroke-dashoffset': Num.fixed(offset, 4),\n 'stroke-dasharray': Num.fixed(dashar, 4) + ' 360'\n };\n\n let propsHover = propsBlock;\n\n propsHover['onmouseenter'] = () => {\n this.onMouseenter(item);\n };\n\n propsHover['onmouseleave'] = () => {\n this.onMouseleave(item);\n };\n\n this.last = distance + this.last;\n\n return (\n <g class=\"n-chart-group\">\n <circle class={classHover} {...propsHover} {...this.attrs}></circle>\n <circle class={classBlock} {...propsBlock} {...this.attrs}></circle>\n </g>\n );\n },\n\n renderOtherCircle(others, items)\n {\n if ( Mix.isEmpty(others) ) {\n return null;\n }\n\n let count = Arr.each(others, (item) => {\n return Num.float(item.value);\n });\n\n let item = {\n label: this.otherLabel, value: Num.combine(count)\n };\n\n item['getClass'] = () => {\n return 'n-chart-item--other';\n };\n\n return this.ctor('renderCircle')(item, items.length, items);\n },\n\n renderSvg()\n {\n this.last = 0;\n\n let [elements, sorted] = [\n Arr.clone(this.elements), Arr.sort(this.elements, 'value').reverse()\n ];\n\n if ( this.sort ) {\n elements = Arr.clone(sorted);\n }\n\n let temp = Arr.splice(sorted, 0, this.limit || elements.length);\n\n let visible = Arr.filter(elements, (el) => {\n return !! Arr.find(temp, { uid: el.uid});\n });\n\n let hidden = Arr.filter(elements, (el) => {\n return ! Arr.find(temp, { uid: el.uid});\n });\n\n [this.vis, this.hid] = [\n visible, hidden\n ];\n\n let items = Arr.each(visible, (item, index) => {\n return this.ctor('renderCircle')(item, index);\n });\n\n let baseHtml = (\n <circle class=\"n-chart-donut__base\" {...this.attrs}></circle>\n );\n\n let othersHtml = this.ctor('renderOtherCircle')(...[\n hidden, visible\n ]);\n\n return (\n <svg width=\"600\" height=\"600\" viewBox=\"0 0 130 130\">\n {[baseHtml, ...items, othersHtml]}\n </svg>\n );\n },\n\n renderText()\n {\n return (\n <div ref=\"text\" class=\"n-chart-donut__text\">\n <span></span><span></span>\n </div>\n );\n },\n\n renderDonut()\n {\n return (\n <div class=\"n-chart-donut__chart\">\n {[this.ctor('renderSvg')(), this.ctor('renderText')()]}\n </div>\n )\n },\n\n renderLegendOther(hidden, visible)\n {\n if ( Mix.isEmpty(hidden) ) {\n return null;\n }\n\n let count = Arr.each(hidden, (item) => {\n return Num.float(item.value);\n });\n\n let item = {\n label: this.otherLabel, value: Num.combine(count)\n };\n\n item['getClass'] = () => {\n return 'n-chart-legend--other';\n };\n\n return this.ctor('renderLegendItem')(item, visible.length);\n },\n\n renderLegendItem(item, index)\n {\n let classList = [\n 'n-chart-legend',\n item.getClass(index, 'n-chart-legend')\n ];\n\n return (\n <div class={classList}>\n <span>{item.label}</span>\n <span>{item.value}</span>\n </div>\n );\n },\n\n renderLegend()\n {\n if ( ! this.renderLegend ) {\n return null;\n }\n\n let items = Arr.each(this.vis, (item, index) => {\n return this.ctor('renderLegendItem')(item, index);\n });\n\n let othersHtml = this.ctor('renderLegendOther')(...[\n this.hid, this.vis\n ]);\n\n return (\n <div class=\"n-chart-donut__legend\">\n {[...items, othersHtml]}\n </div>\n )\n },\n\n render()\n {\n let classList = [\n 'n-chart-donut',\n 'n-chart-donut--' + this.size,\n ];\n\n if ( this.overlap ) {\n classList.push('n-chart-donut--overlap');\n }\n\n let style = {\n '--n-chart-label': `'${this.label}'`,\n '--n-chart-value': Num.int(this.total),\n '--n-stroke-width': Num.int(this.width),\n '--n-stroke-hover-width': Num.int(this.width * 1.2)\n };\n\n let bodyHtml = [\n this.ctor('renderDonut')(),\n this.ctor('renderLegend')(),\n ];\n\n if ( this.$slots.default ) {\n bodyHtml.push(this.$slots.default());\n }\n\n return (\n <div class={classList} style={style}>\n {bodyHtml}\n </div>\n );\n }\n\n}\n","import { Arr, Mix, Num, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NChartBar',\n\n provide()\n {\n return {\n NChart: this\n };\n },\n\n props: {\n\n sort: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n color: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n colorLimit: {\n default()\n {\n return 19;\n },\n type: [Number]\n },\n\n label: {\n default()\n {\n return Locale.trans('Total');\n },\n type: [String]\n },\n\n otherLabel: {\n default()\n {\n return Locale.trans('Other');\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n limit: {\n default()\n {\n return 4;\n },\n type: [Number]\n },\n\n minHeight: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n renderLegend: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n total()\n {\n let count = Arr.each(this.elements, (item) => {\n return Num.float(item.value);\n });\n\n return Num.combine(count);\n },\n\n min()\n {\n let min = Number.MAX_VALUE;\n\n Arr.each(this.elements, (item) => {\n min = Math.min(min, Num.float(item.value));\n });\n\n return Num.float(min);\n },\n\n max()\n {\n let max = Number.MIN_VALUE;\n\n Arr.each(this.elements, (item) => {\n max = Math.max(max, Num.float(item.value));\n });\n\n return Num.float(max);\n }\n\n },\n\n data()\n {\n return {\n elements: []\n };\n },\n\n methods: {\n\n appendElement(element)\n {\n this.index = -1;\n\n Arr.add(this.elements, element, {\n uid: element.uid\n });\n },\n\n removeElement(checkbox)\n {\n this.index = -1;\n\n Arr.remove(this.elements, {\n uid: checkbox.uid\n });\n },\n\n },\n\n renderBarItem(item, index)\n {\n let classList = [\n 'n-chart-item', item.getClass(index),\n ];\n\n let height = ((100 - this.minHeight) / this.max * item.value) + this.minHeight;\n\n let style = {\n '--n-chart-height': Num.int(height) + '%'\n };\n\n let html = [];\n\n html.push(\n <div class=\"n-chart-bar__bar\">\n {/* Chart bar */}\n </div>\n );\n\n html.push(\n <div class=\"n-chart-bar__dot\">\n {/* Chart dor */}\n </div>\n );\n\n html.push(\n <div class=\"n-chart-bar__value\">\n <span>{item.axis}</span>\n <span>{item.value}</span>\n </div>\n );\n\n return (\n <div class={classList} style={style}>\n {html}\n </div>\n );\n },\n\n renderBarOther(hidden, visible)\n {\n if ( Mix.isEmpty(hidden) ) {\n return null;\n }\n\n let count = Arr.each(hidden, (item) => {\n return Num.float(item.value);\n });\n\n let item = {\n axis: this.otherLabel, value: Num.combine(count)\n };\n\n item['getClass'] = () => {\n return 'n-chart-item--other';\n };\n\n return this.ctor('renderBarItem')(item, visible.length);\n },\n\n renderBars()\n {\n let [elements, sorted] = [\n Arr.clone(this.elements), Arr.sort(this.elements, 'value').reverse()\n ];\n\n if ( this.sort ) {\n elements = Arr.clone(sorted);\n }\n\n let temp = Arr.splice(sorted, 0, this.limit || elements.length);\n\n let visible = Arr.filter(elements, (el) => {\n return !! Arr.find(temp, { uid: el.uid});\n });\n\n let hidden = Arr.filter(elements, (el) => {\n return ! Arr.find(temp, { uid: el.uid});\n });\n\n [this.vis, this.hid] = [\n visible, hidden\n ];\n\n let items = Arr.each(visible, (item, index) => {\n return this.ctor('renderBarItem')(item, index);\n });\n\n let othersHtml = this.ctor('renderBarOther')(...[\n this.hid, this.vis\n ]);\n\n return (\n <div class=\"n-chart-bar__bars\">\n {[...items, othersHtml]}\n </div>\n );\n },\n\n renderAxis()\n {\n return (\n <div class=\"n-chart-bar__axis\">\n <span>{this.max}</span>\n <span>{this.min}</span>\n </div>\n );\n },\n\n renderLegendOther(hidden, visible)\n {\n if ( Mix.isEmpty(hidden) ) {\n return null;\n }\n\n let count = Arr.each(hidden, (item) => {\n return Num.float(item.value);\n });\n\n let item = {\n axis: this.otherLabel, value: Num.combine(count)\n };\n\n item['getClass'] = () => {\n return 'n-chart-legend--other';\n };\n\n return this.ctor('renderLegendItem')(item, visible.length);\n },\n\n renderLegendItem(item, index)\n {\n let classList = [\n 'n-chart-legend',\n item.getClass(index, 'n-chart-legend')\n ];\n\n return (\n <div class={classList}>\n <span>{item.axis}</span>\n <span>{item.value}</span>\n </div>\n );\n },\n\n renderLegend()\n {\n if ( ! this.renderLegend ) {\n return null;\n }\n\n let items = Arr.each(this.vis, (item, index) => {\n return this.ctor('renderLegendItem')(item, index);\n });\n\n let othersHtml = this.ctor('renderLegendOther')(...[\n this.hid, this.vis\n ]);\n\n return (\n <div class=\"n-chart-bar__legend\">\n {[...items, othersHtml]}\n </div>\n )\n },\n\n render()\n {\n let classList = [\n 'n-chart-bar',\n 'n-chart-bar--' + this.size,\n ];\n\n let bodyHtml = [\n this.ctor('renderBars')(),\n this.ctor('renderLegend')(),\n ];\n\n if ( this.$slots.default ) {\n bodyHtml.push(this.$slots.default());\n }\n\n return (\n <div class={classList}>\n {bodyHtml}\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\";\nimport Chart from \"./chart/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 Chart\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 secondary: '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","import AlertHandler from \"./src/alert/alert-handler.mjs\";\n\nexport default function (App) {\n\n window.AlertIcons = pi.Obj.assign(window.nano.Icons,\n window.AlertIcons || {});\n\n let directives = [\n AlertHandler\n ];\n\n pi.Arr.each(directives, (glob) => {\n App.config.globalProperties[glob.alias] = window[glob.alias] = glob;\n });\n\n}\n","import NotificationElement from \"./src/notification/notification-element.mjs\";\nimport NotificationHandler from \"./src/notification/notification-handler.mjs\";\n\nexport default function (App) {\n\n const NotifcationIcons = {\n primary: window.nano.Icons.info,\n secondary: window.nano.Icons.info,\n success: window.nano.Icons.success,\n warning: window.nano.Icons.warning,\n danger: window.nano.Icons.danger,\n info: window.nano.Icons.info\n };\n\n window.NotifcationIcons = pi.Obj.assign(NotifcationIcons,\n window.NotifcationIcons || {});\n\n let directives = [\n NotificationElement, NotificationHandler\n ];\n\n pi.Arr.each(directives, (glob) => {\n App.config.globalProperties[glob.alias] = window[glob.alias] = glob;\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\";\n// import NBuilder from \"./src/builder/builder.jsx\";\n// import NRefrencePanel from \"./src/reference-panel/reference-panel.jsx\";\n// import 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\";\nimport ResizerNext from \"./src/resizer/resizer-next.jsx\";\n\nexport default function (App) {\n // App.component(Resizer.name, Resizer);\n App.component(ResizerNext.name, ResizerNext);\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\nimport PopoverElement from \"./src/popover/popover-element.mjs\";\nimport PopoverHandler from \"./src/popover/popover-handler.mjs\";\nimport PopoverHelper from \"./src/popover/popover-helper.mjs\";\n\nexport default function (App) {\n\n let directives = [\n PopoverElement, PopoverHandler, PopoverHelper\n ];\n\n pi.Arr.each(directives, (glob) => {\n App.config.globalProperties[glob.alias] = window[glob.alias] = glob;\n });\n\n let components = [\n Popover, PopoverGroup, PopoverOption\n ];\n\n pi.Arr.each(components, (comp) => {\n App.component(comp.name, comp);\n });\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\";\nimport ConfirmHandler from \"./src/confirm/confirm-handler.mjs\";\n\nexport default function (App) {\n\n let ConfirmIcons = {\n primary: window.nano.Icons.info,\n secondary: window.nano.Icons.info,\n success: window.nano.Icons.success,\n warning: window.nano.Icons.warning,\n danger: window.nano.Icons.danger,\n info: window.nano.Icons.info\n };\n\n window.ConfirmIcons = pi.Obj.assign(ConfirmIcons,\n window.ConfirmIcons || {});\n\n let directives = [\n ConfirmHandler\n ];\n\n pi.Arr.each(directives, (glob) => {\n App.config.globalProperties[glob.alias] = window[glob.alias] = glob;\n });\n\n App.component(Confirm.name, Confirm);\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 FormBag from \"./src/form-bag/form-bag.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(FormBag.name, FormBag);\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 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","import ChartItem from \"./src/chart-item/chart-item.jsx\";\nimport ChartDonut from \"./src/chart-donut/chart-donut.jsx\";\nimport ChartBar from \"./src/chart-bar/chart-bar.jsx\";\n\nexport default function (App) {\n App.component(ChartItem.name, ChartItem);\n App.component(ChartDonut.name, ChartDonut);\n App.component(ChartBar.name, ChartBar);\n}"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__55__","__WEBPACK_EXTERNAL_MODULE__122__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","ctor","_this","fallback","arguments","length","Obj","this","$options","split","_len","args","Array","_key","apply","cmer","classList","attrsList","Mix","isString","isArray","Arr","each","isObj","assign","$attrs","cslo","slot","props","$slots","findIndex","type","Comment","AlertHandler","options","_classCallCheck","_defineProperty","text","size","uid","Hash","uuid","unbindEvents","modal","remove","Dom","find","document","body","style","el","icon","window","AlertIcons","make","innerHTML","concat","appendTo","on","e","keyCode","stopPropagation","close","target","inside","Run","delay","addClass","off","_this2","cls","push","merge","join","frame","renderIcon","renderText","requestAnimationFrame","bindEvents","render","NotificationElement","duration","setTimeout","iconClass","NotifcationIcons","alias","NotificationBag","NotificationHandler","_NotificationHandler$","create","wrapper","element","append","_len2","_key2","_construct","empty","nano","Settings","notifySize","notifyPosition","name","String","disabled","Boolean","inline","_createVNode","modelValue","config","scope","data","tempValue","methods","solveAwait","isEmpty","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","trans","propAwait","result","state","getState","propExists","exists","solveInput","sources","$scope","$model","$extra","$global","toPropKey","splits","Str","ucfirst","lcfirst","toEventKey","cb","solveContext","_this3","console","error","getProp","getInput","isNull","setInput","renderSetup","_this4","defaultsBind","binds","events","updateKey","default","renderSlot","callback","_this5","_this6","inject","NScrollbar","provide","overflowY","overflowX","offsetY","Number","offsetX","framerate","wrapClass","computed","touch","navigator","msMaxTouchPoints","mousedown","mousemove","mouseup","init","native","height","width","beforeMount","outer","hasHtrack","hasVtrack","adaptScrollBehavior","mounted","observer","ResizeObserver","getWrapperSizeDebounced","observe","$el","Event","bind","_","passive","onScroll","getWrapperSize","beforeUnmount","disconnect","unbind","rect","getBoundingClientRect","now","Math","round","isEqual","clearInterval","interval","spacer","actual","_ref","remClass","clientWidth","clientHeight","rainbow","_ref2","styles","adaptScrollHeight","adaptScrollWidth","_ref3","frameWidth","frameHeight","$emit","scrollTo","x","y","onScrollTo","scrollTop","scrollLeft","scrollIntoView","selector","padding","onScrollIntoView","outerHeight","offsetTop","outerWidth","offsetLeft","$dom","offsetWidth","offsetHeight","innerHeight","scrollHeight","compare","barHeight","max","maxHeight","ceil","heightRatio","vbar","adaptScrollPosition","innerWidth","scrollWidth","barWidth","maxWidth","widthRatio","hbar","scroll","top","left","vbarTop","transform","hbarLeft","fire","$nextTick","then","getTouchEvent","event","touches","changedTouches","onVbarMousedown","which","preventDefault","onVbarMousemove","onVbarMouseup","clientY","offset","onHbarMousedown","onHbarMousemove","onHbarMouseup","clientX","WIN","vbarProps","hbarProps","_mergeProps","except","DEBUG_NVSCROLL","NDraggable","items","itemHeight","itemWidth","renderNode","deathzone","threshold","useKeys","uniqueProp","start","end","grid","buffer","updateRender","ready","bindAdaptScroll","unbindAdaptScroll","callWhenReady","clearWhenReady","refreshScroll","setInterval","onScrollupdate","isIndexRendered","index","scrollbar","scrollToIndex","onScrollToIndex","total","floor","targetTop","refreshDriver","clearState","onSizechange","queue","timer","Date","clearTimeout","to","bufferItems","renderItem","passed","topOffset","renderFunction","renderRows","slice","renderGridRows","counter","chunk","renderGrid","_this7","chunks","renderItems","_this8","totalHeight","_resolveComponent","dragMods","NDragCounter","_createClass","count","update","html","Locale","choice","dataTransfer","setData","setDragImage","keyMods","attr","DragCounter","NDragIndicator","parent","safezone","strategy","hasClass","show","hide","item","NDraghandler","rootNode","_this$bindDragstart","DragIndicator","DragCache","bindDragstart","_toConsumableArray","framebuffer","onDragenterRoot","onDragoverRoot","onDragleaveRoot","onDragendRoot","onDragdropRoot","bindDragend","bindDragdrop","closest","cacheNodes","allowDrop","node","frames","moveNodes","group","cache","allowGroups","JSON","parse","stringify","dragcount","dropNodes","tempSelected","removeNode","clone","unlinkNodes","removeNodes","isSelected","id","virtuals","route","resolve","targetNode","isInSelf","cascade","childNodes","unbindNode","$handle","handle","onDragstartNode","onDragenterNode","onDragoverNode","onDragleaveNode","onDragendNode","onDragdropNode","moveNodesMany","moveNodesOne","insertNode","moveNodesRoot","first","transformDrop","moveNodesInto","moveNodesBefore","moveNodesAfter","eventName","_this9","filter","childProp","disableMove","targetRoute","children","splice","_this0","reduce","reduceItem","Num","depth","cascades","unique","tempCascade","virtual","last","DEBUG_NDLIST","draggable","current","selected","expanded","lazyload","showEmptyIcon","itemOffset","scrollTopOnChange","renderCurrent","renderHandle","renderSelect","renderExpand","allowSelect","allowDrag","keyEvents","highlightTimeout","modifier","visible","highlight","firstSelected","lastSelected","tempCurrent","tempExpanded","drag","watchModifierDown","watchModifierUp","virtualscroller","inner","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","expandItem","toggle","expandCurrent","isTotalSelected","isInterSelected","toggleSingleNode","toggleRangeNode","indexies","reversed","selectItem","selectAll","row","unselectAll","bindKeydown","onKeydown","unbindKeydown","renderEmpty","only","onMouseenter","onMouseleave","inheritAttrs","NDraggableItem","required","bindNode","copy","copyNode","onClick","onDblclick","renderElement","renderSpacer","Icons","angleRight","checked","NDropzone","NLoader","minimum","debounce","tempVisible","applyTimer","timing","startTimer","restartTimer","timeout","flex","minWidth","position","resizerWidth","sizeFixed","getWidthDebounced","updateRemoteWidth","forceWidth","updateHandle","unmounted","updateWidth","onLeftMousedown","onLeftMouseup","onLeftMousemove","scrollX","targetWidth","min","frameStyle","onRightMousedown","onRightMouseup","onRightMousemove","isNumber","NPopover","listen","trigger","theme","scrollClose","multiClose","alwaysRender","prevent","prev","popel","Popover","active","open","renderBody","raw","header","footer","viewBody","tempSize","focus","iconPosition","image","imagePosition","clickClose","renderImage","renderContent","PopoverHelper","getTouchState","PopoverBag","PopoverHandler","getMouseDownEvent","throttle","detectFadeOnCurrent","getScrollEvent","detectScrollOnCurrent","PopoverElement","parents","currentChange","_current$options","tgt","src","currents","mount","_this$options","getHoverEvent","onHover","getClickEvent","getContextEvent","onContext","_this$options2","_this$options3","showQueue","updatePosition","bindResizeObserver","hideQueue","unbindResizeObserver","unsetCurrent","_this$options4","_this$options5","_this$options6","client","_this$options7","getTargetOffset","zIndex","_this$options8","targetRect","windowRect","posY","posX","center","inverse","broken","getTargetHorizontal","_this$options9","getTargetVertical","_this$options0","title","closable","renderClose","startRefreshTimeout","NModal","eventClick","eventKeydown","openModal","force","closeModal","stopRefreshTimeout","queueRefreshTimeout","backdrop","indexes","sort","times","renderHeader","renderFooter","bodyHtml","renderFrame","innerHtml","renderBackdrop","link","glass","square","nativeType","NForm","NFormItem","iconDisabled","placeholder","deepDisabled","onIconClick","onInput","onSubmit","onFocus","onBlur","renderInput","clearValue","MAX_VALUE","clearable","stepSize","precision","format","decimals","clear","getValue","getDisplayValue","number","nextStep","isNaN","toFixed","onNextDown","prevTimeout","prevInterval","nextTimeout","nextInterval","onNextUp","prevStep","onPrevDown","onPrevUp","regex","RegExp","renderPrev","onMousedown","renderNext","renderClear","autoRows","maxRows","minRows","maxLength","eventInput","rows","currentRows","_isSlot","s","toString","_isVNode","lazy","multiple","collapse","emptyText","undefinedText","collapseText","allowCreate","optionsValue","optionsLabel","optionsDisabled","custom","elements","tempClear","search","searched","generateOptions","searchOptions","NSelect","scrollToClosest","focusInput","$value","$index","option","label","tempLabel","addOption","removeOption","resetInput","onFocusInput","onInputInput","onKeydownInput","createOrToggle","selectPrev","selectNext","searchRegex","string","toggleOption","popover","denyUpdate","getOptionLabel","newIndex","scrollToCurrent","createOption","virtualscroll","select","renderLabelClear","renderLabelAngle","angleDown","renderLabelItem","labelHtml","renderLabelCollapse","firstHtml","renderLabelItems","renderMultiple","isEmptyValue","inputHtml","renderSingle","modelLabel","renderDisplay","displayHtml","_slot","_slot2","emptyHtml","vals","renderLazyOption","isMultipleActive","isSingleActive","renderLazyItems","renderPopover","onClose","$event","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","onResize","setModelValue","getValPos","fixed","getValStyle","getBarPos","getBarWidth","getBarStyle","getClosestValue","diff","step","abs","onMouseup","onMousemove","relativeWidth","closestValue","stepMin","stepMax","handleProps","_objectSpread","renderHandles","values","renderBar","barProps","onValue","offValue","onType","offType","renderSwitch","confirmText","cancelText","activeState","changeVisible","extractText","nodes","Confirm","confirm","abort","ConfirmHandler","next","Promise","cancel","ConfirmIcons","action","renderCancel","renderConfirm","promise","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","monthsGrid","Now","tempArrive","tempDepart","tempView","tempRanger","cacheArrive","cacheDepart","gotoDate","gotoMonth","gotoYear","patchDate","time","applyTime","patchMonth","printRange","patchYear","patchRange","renderToolbarPrev","angleLeft","renderToolbarNext","renderToolbarMonth","monthsHtml","month","renderToolbarYear","yearsHtml","year","renderToolbar","renderDateItem","equalDate","valid","isNotBeforeMin","after","isNotAfterMax","before","renderRangeDateItem","viewMode","isTempValid","between","arriveFirst","renderDate","legendHtml","day","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","getHoursGrid","minutesGrid","getMinutesGrid","secondsGrid","getSecondsGrid","eventSelect","scrollbars","ref","renderHourItem","hour","renderHourPanel","renderMinuteItem","minute","renderMinutePanel","renderSecondItem","second","renderSecondPanel","_slot3","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","relative","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","FormMessage","field","required_if","required_unless","same","diffrent","MIN_VALUE","minlength","maxlength","email","FormRules","isBool","form","dom","errors","kind","ignore","forceChange","forceErrors","rules","groups","ruleErrors","blocked","emitChange","resetChange","getGroups","appendGroup","removeGroup","is","appendItem","removeItem","prevState","nextState","validate","validateField","rule","_FormRules$name","_FormMessage$name","_rule$split2","_toArray","_arrayLikeToArray","message","err","includeErrors","getErrors","attrs","gotoField","renderField","itemProps","gotoInput","_createTextVNode","NFormFrame","tooltip","tooltipPosition","NFormGroup","getItems","toggleGroup","openGroup","closeGroup","renderCollapse","textHtml","renderAction","renderTooltip","NTabs","NTabsItem","NCollapse","NCollapseItem","tooltipWindow","conditional","conditionOn","conditionOff","enabled","toggleCondition","$input","childs","click","changeTab","showTab","renderCondition","renderError","showSearch","searchPlaceholder","searchIcon","onSearchInput","onScrollEvent","onMoveEvent","applyStar","block","onApplyStar","inviewMaxY","menu","lower","extract","indexOf","onClickEvent","star","renderSearch","searchProps","renderMenu","iconHtml","buttonProps","href","renderMenus","bodyProps","float","addTab","tab","$forceUpdate","removeTab","getTab","updateEvent","currentTab","sorted","updated","renderHeaderIndicator","tabs","keep","renderHeaderIcon","renderHeaderLabel","NTags","tags","addTag","removeTag","color","getSorted","hideTab","toggleTab","dragger","renderHeaderAction","renderHeaderAngle","angle","showDelay","order","NTable","sortProp","sortDir","closeFilterOnEnter","tempVisibleProps","tempSortProp","tempSortDir","tempFilter","tempFilterProps","makeVisibleProps","detectVisible","addColumn","column","removeColumn","getColumnIndex","getColumnVisiblity","getColumnSorted","getColumnFilter","filterProp","property","getColumnFiltered","detectVisibity","isect","sortByColumn","dir","replaceFilter","filters","resetFilter","refreshCurrent","columns","renderContext","renderHead","defaultRender","draggableHtml","Function","matrixDisabled","breakpoint","previewProp","matrix","matrixProp","fixedWidth","trueText","falseText","datetimeFormat","matrixValues","NTableColumn","tempWidth","changedStates","sortDirection","renderHeadLabel","renderHeadSort","renderHeadFilter","angleHtml","setFirstState","firstState","extends","TableCell","datetime","isRef","preview","previewProps","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","i","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","file","thumb","mime","showSrc","buttonText","renderButton","tempFile","tempThumb","NPreview","openBox","closeBox","renderTitle","renderPreview","PreviewHelper","getType","renderFull","renderModal","modalProps","btoa","getMime","buttonHtml","load","tempSrc","ImageCache","resolveLoad","resolveData","loaded","laod","reader","FileReader","onload","readAsDataURL","provider","resolveType","resolveYoutube","resolveVimeo","youtube","getYoutubeKey","vimeo","getVimeoKey","renderYoutube","renderVimeo","renderPlain","PreviewHandler","extension","getExt","PreviewMimes","exts","PreviewGroups","DefaultPreviewMimes","video","audio","font","application","lat","lng","zoom","NMap","callbacks","tempMap","focusMarkers","Map","getMap","onMount","tempMarker","importMarkerPosition","marker","setPosition","updateMarkerPosition","getPosition","initializeMarker","createMarker","addListener","setMarkerByAddress","address","Notify","clearableIcon","openContext","updateFile","files","clearFile","renderHidden","virtualValue","renderStars","rate","renderValue","vars","NDrawerStack","NDrawer","closeDrawer","NChart","axis","appendElement","removeElement","getClass","getColor","subdivide","colorLimit","otherLabel","overlap","renderLegend","vis","hid","renderCircle","gaps","distance","dashar","classBlock","propsBlock","propsHover","renderOtherCircle","others","renderSvg","reverse","temp","hidden","baseHtml","othersHtml","renderDonut","renderLegendOther","renderLegendItem","minHeight","renderBarItem","renderBarOther","renderBars","renderAxis","NanoImports","App","pi","directives","glob","globalProperties","primary","info","secondary","success","warning","danger","EmptyIcon","NConfig","NConfigNext","Scrollbar","Virtualscroller","Draglist","DraglistItem","Draggrid","DraggridItem","Dropzone","Loader","ResizerNext","components","PopoverGroup","PopoverOption","comp","Modal","Button","ButtonGroup","Input","InputNumber","Textarea","Select","SelectOption","Checkbox","CheckboxGroup","NRadio","Slider","Switch","CascaderPanel","Cascader","DatepickerPanel","Datepicker","TimepickerPanel","Timepicker","Datetimepicker","Durationpicker","Transfer","Form","FormBag","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","PreviewModal","PreviewPlain","PreviewImage","PreviewVideo","MapMarker","File","Rating","ChartItem","ChartDonut","ChartBar","circle","clock","calendar","angleUp","Install","CtorMixin","CmerMixin","CsloMixin","NanoModule","Nano"],"sourceRoot":""}
1
+ {"version":3,"file":"nano-ui.esm.js","mappings":"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","sources":["webpack://Nano/webpack/universalModuleDefinition","webpack://Nano/external umd {\"root\":\"Vue\",\"commonjs2\":\"vue\",\"commonjs\":\"vue\",\"amd\":\"vue\"}","webpack://Nano/external umd {\"root\":\"pi\",\"commonjs2\":\"@kizmann/pico-js\",\"commonjs\":\"@kizmann/pico-js\",\"amd\":\"@kizmann/pico-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/alert/src/alert/alert-handler.mjs","webpack://Nano/./src/notification/src/notification/notification-element.mjs","webpack://Nano/./src/notification/src/notification/notification-handler.mjs","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/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/resizer/src/resizer/resizer-next.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/popover/src/popover/popover-helper.mjs","webpack://Nano/./src/popover/src/popover/popover-handler.mjs","webpack://Nano/./src/popover/src/popover/popover-element.mjs","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/confirm/src/confirm/confirm-handler.mjs","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-rules.mjs","webpack://Nano/./src/form/src/form/form.jsx","webpack://Nano/./src/form/src/form-bag/form-bag.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/preview/src/preview-modal/preview-modal.jsx","webpack://Nano/./src/preview/src/preview/preview-helper.mjs","webpack://Nano/./src/preview/src/preview/preview-handler.mjs","webpack://Nano/./src/preview/index.js","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/chart/src/chart-item/chart-item.jsx","webpack://Nano/./src/chart/src/chart-donut/chart-donut.jsx","webpack://Nano/./src/chart/src/chart-bar/chart-bar.jsx","webpack://Nano/./src/index.esm.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/map/index.js","webpack://Nano/./src/file/index.js","webpack://Nano/./src/rating/index.js","webpack://Nano/./src/drawer/index.js","webpack://Nano/./src/chart/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 ","module.exports = __WEBPACK_EXTERNAL_MODULE__122__;","module.exports = __WEBPACK_EXTERNAL_MODULE__55__;","// 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, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n cmer(classList)\n {\n let attrsList = {};\n\n if ( Mix.isString(classList) ) {\n attrsList[classList] = true;\n }\n\n if ( Mix.isArray(classList) ) {\n Arr.each(classList, (value) => attrsList[value] = true);\n }\n\n if ( Mix.isObj(classList) ) {\n Obj.assign(attrsList, classList);\n }\n\n if ( Mix.isString(this.$attrs.class) ) {\n attrsList[this.$attrs.class] = true;\n }\n\n if ( Mix.isArray(this.$attrs.class) ) {\n Arr.each(this.$attrs.class, (value) => attrsList[value] = true);\n }\n\n if ( Mix.isObj(this.$attrs.class) ) {\n Obj.assign(attrsList, this.$attrs.class);\n }\n\n return attrsList;\n }\n\n}\n","import { Arr, Obj, Mix } 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","import { Mix, Run, Obj, Dom, Locale, Arr, Hash } from \"@kizmann/pico-js\";\n\n\nexport class AlertHandler\n{\n static alias = 'Alert';\n\n modal = null;\n\n options = {\n text: '', size: 'md', type: 'primary',\n };\n\n static make(text, type = 'primary', options = {})\n {\n options = {\n text, type\n };\n\n return new AlertHandler(options).render();\n }\n\n constructor(options = {})\n {\n this.options = Obj.assign(this.options, options, {\n uid: Hash.uuid(),\n });\n }\n\n close()\n {\n this.unbindEvents();\n this.modal.remove();\n\n Dom.find(document.body).style({\n 'overflow': 'undefined'\n });\n }\n\n renderIcon(el)\n {\n let icon = Obj.get(window.AlertIcons, this.options.type, 'fa fa-ghost');\n\n let child = Dom.make('div', {\n classList: 'n-alert__icon', innerHTML: `<i class=\"n-icon ${icon}\"></i>`\n });\n\n child.appendTo(el);\n }\n\n renderText(el)\n {\n let child = Dom.make('div', {\n classList: 'n-alert__text', innerHTML: `<p>${this.options.text}</p>`\n });\n\n child.appendTo(el);\n }\n\n bindEvents()\n {\n let { uid } = this.options;\n\n Dom.find(window).on('keydown', (e) => {\n if ( e.keyCode === 27 ) {\n e.stopPropagation(); this.close();\n }\n }, { uid });\n\n Dom.find(this.modal).on('click', (e) => {\n if ( ! Dom.find(e.target).inside('.n-alert-frame') ) {\n this.close();\n }\n }, { uid });\n\n Run.delay(() => {\n Dom.find(this.modal).addClass('n-ready');\n });\n }\n\n unbindEvents()\n {\n let { uid } = this.options;\n\n Dom.find(window).off('keydown', null, {\n uid\n });\n\n Dom.find(this.modal).off('click', null, {\n uid\n });\n }\n\n render()\n {\n let cls = Obj.get(this.options, 'class', []);\n\n if ( Mix.isString(cls) ) {\n cls = cls.split(' ');\n }\n\n let classList = [\n 'n-alert',\n 'n-alert--' + this.options.size,\n 'n-alert--' + this.options.type,\n ];\n\n classList.push('n-theme--dark');\n\n let modal = Dom.make('div', {\n classList: Arr.merge(classList, cls).join(' ')\n });\n\n let frame = Dom.make('div', {\n classList: ['n-alert-frame']\n });\n\n frame.appendTo(modal);\n\n let body = Dom.make('div', {\n classList: ['n-alert__body']\n });\n\n body.appendTo(frame);\n\n this.renderIcon(body);\n this.renderText(body);\n\n Dom.find(document.body).style({\n 'overflow': 'hidden'\n });\n\n modal.appendTo(document.body);\n\n requestAnimationFrame(() => {\n this.bindEvents();\n });\n\n this.modal = modal.get(0);\n }\n}\n\nexport default AlertHandler;\n","import { Dom, Obj } from \"@kizmann/pico-js\";\n\nexport class NotificationElement\n{\n static alias = 'NotificationElement';\n\n el = null;\n\n options = {\n text: '', icon: '', type: 'primary', duration: 4500,\n };\n\n constructor(text, type = 'primary', options = {})\n {\n this.options = Obj.assign(this.options, options, {\n text, type\n });\n\n this.render();\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.options.type\n ];\n\n this.el = Dom.make('div', {\n classList: classList.join(' ')\n });\n\n this.el.on('click', () => {\n this.remove();\n });\n\n let iconClass = Obj.get(window.NotifcationIcons, this.options.type, 'fa fa-ghost');\n\n let icon = Dom.make('div', {\n classList: 'n-notification__icon', innerHTML: `<i class=\"n-icon ${iconClass}\"></i>`\n });\n\n icon.appendTo(this.el);\n\n let text = Dom.make('div', {\n classList: 'n-notification__text', innerHTML: `<p>${this.options.text}</p>`\n });\n\n text.appendTo(this.el);\n }\n\n}\n\nif ( ! window[NotificationElement.alias] ) {\n window[NotificationElement.alias] = NotificationElement;\n}\n\nexport default NotificationElement;","import { Hash, Str, Run, Dom, Mix } from \"@kizmann/pico-js\";\nimport NotificationElement from \"./notification-element.mjs\";\n\nwindow.NotificationBag = {};\n\nexport class NotificationHandler\n{\n\n static alias = 'Notification';\n\n static notifications = {};\n\n static make(...args)\n {\n let { uid, el } = NotificationHandler.create(undefined, ...args);\n\n let wrapper = NotificationHandler.element();\n\n // Append element to dom\n window.NotificationBag[uid].append(wrapper);\n\n // Queue remove\n Run.delay(() => {\n NotificationHandler.remove(uid);\n }, el.options.duration);\n\n return uid;\n }\n\n static create(uid = Hash.uuid(), ...args)\n {\n window.NotificationBag[uid] = new NotificationElement(...args);\n\n return { uid, el: window.NotificationBag[uid] };\n }\n\n static remove(uid)\n {\n if ( window.NotificationBag[uid] === undefined ) {\n return;\n }\n\n // Remove dom element\n window.NotificationBag[uid].remove();\n\n // Remove from list\n delete window.NotificationBag[uid];\n }\n\n static element()\n {\n let el = Dom.find('.n-notification-frame');\n\n if ( !el.empty() ) {\n return el;\n }\n\n let classList = [\n 'n-notification-frame',\n 'n-notification-frame--' + window.nano.Settings.notifySize,\n 'n-notification-frame--' + window.nano.Settings.notifyPosition,\n ];\n\n el = Dom.make('div', {\n classList: classList.join(' ')\n });\n\n el.appendTo(document.body);\n\n return el;\n }\n\n}\n\nexport default NotificationHandler;\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 true;\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, Mix } 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 ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isString(value) && value.match(/\\$\\$scope/) ) {\n return Obj.has({ $$scope: this.scope }, value);\n }\n\n if ( Mix.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 ( Mix.isFunction(value) ) {\n return value.apply(this.scope, [this.tempValue, ...args]);\n }\n\n if ( Mix.isString(value) && value.match(/^\\$\\$scope/) ) {\n return Obj.get({ $$scope: this.scope }, value);\n }\n\n if ( Mix.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 ( Mix.isFunction(value) ) {\n return (...args) => value.apply(scope, args);\n }\n\n return value;\n },\n\n solveContent(value, ...args)\n {\n if ( Mix.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 ( ! Mix.isObj(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, Mix } 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 if ( value.match(/^@/) ) {\n return this.trans(final);\n }\n\n return final;\n },\n\n propAwait(value)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Mix.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 ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Mix.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 ( Mix.isFunction(value) ) {\n return !! this.solveInput(value);\n }\n\n if ( ! Mix.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 ( ! Mix.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 ( Mix.isFunction(value) ) {\n return this.solveInput(value);\n }\n\n if ( ! Mix.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 = Mix.isEmpty(result);\n }\n\n if ( value.match(/^!\\$/) ) {\n result = Mix.isEmpty(result);\n }\n\n return result;\n },\n\n getInput(prop, fallback)\n {\n if ( Mix.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 ( ! Mix.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 ( Mix.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 ( ! Mix.isObj(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 ( Mix.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 ( Mix.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 ( Mix.isFunction(callback) ) {\n render = () => callback.apply(this.scope);\n }\n\n if ( Mix.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 { Run, Arr, Obj, Dom, Mix, Str, Event, Hash } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NScrollbar',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NScrollbar: this\n };\n },\n\n props: {\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 0;\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 {\n return !!('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown()\n {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove()\n {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup()\n {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid(), init: false, native: false, height: 0, width: 0\n };\n },\n\n beforeMount()\n {\n this.outer = {};\n this.state = {};\n\n this.hasHtrack = false;\n this.hasVtrack = false;\n\n this.adaptScrollBehavior();\n },\n\n mounted()\n {\n this.observer = new ResizeObserver(() => {\n this.getWrapperSizeDebounced();\n });\n\n this.observer.observe(this.$el);\n\n if ( this.$refs.wrapper ) {\n this.observer.observe(this.$refs.wrapper);\n }\n\n Event.bind('NResizer:moved',\n this.getWrapperSizeDebounced, this._.uid);\n\n let passive = {\n passive: true, uid: this._.uid\n };\n\n Dom.find(this.$refs.content).on('scroll',\n this.onScroll, passive);\n\n this.getWrapperSize();\n },\n\n beforeUnmount()\n {\n if ( this.observer ) {\n this.observer.disconnect();\n }\n\n Event.unbind('NResizer:moved',\n this._.uid);\n\n let passive = {\n passive: true, uid: this._.uid\n };\n\n Dom.find(this.$el).off('scroll',\n null, passive);\n },\n\n methods: {\n\n getWrapperSizeDebounced()\n {\n if ( Dom.find(this.$el).inside('is-paused') ) {\n return;\n }\n\n let rect = this.$refs.wrapper.getBoundingClientRect();\n\n let now = {\n width: Math.round(rect.width), height: Math.round(rect.height)\n };\n\n if ( Mix.isEqual(this.state, now) ) {\n return;\n }\n\n clearInterval(this.interval);\n\n this.interval = setTimeout(() => {\n this.getWrapperSize();\n }, 5);\n },\n\n getWrapperSize()\n {\n if ( ! this.$refs.wrapper ) {\n return;\n }\n\n let [width, height] = [0, 0];\n\n Dom.find(this.$refs.spacer).actual(() => {\n\n Dom.find(this.$el).addClass('is-paused');\n\n [width, height] = [\n Math.round(this.$refs.wrapper.getBoundingClientRect().width),\n Math.round(this.$refs.wrapper.getBoundingClientRect().height)\n ];\n\n Dom.find(this.$el).remClass('is-paused');\n });\n\n let outer = {\n width: Math.round(this.$refs.content.clientWidth),\n height: Math.round(this.$refs.content.clientHeight),\n };\n\n let rainbow = [\n width === this.width, height === this.height\n ]\n\n if ( ! Arr.has(rainbow, true) && Mix.isEqual(this.outer, outer) ) {\n return;\n }\n\n this.outer = outer;\n\n this.state = {\n width, height\n };\n\n [this.width, this.height] = [\n width, height\n ];\n\n if ( width === 0 || height === 0 ) {\n return;\n }\n\n let styles = {\n //\n };\n\n if ( this.width ) {\n styles.width = this.width + 'px';\n }\n\n if ( this.height ) {\n styles.height = this.height + 'px';\n }\n\n Dom.find(this.$refs.spacer).style(styles);\n\n this.adaptScrollHeight();\n this.adaptScrollWidth();\n\n let [frameWidth, frameHeight] = [\n Dom.find(this.$el).width(), Dom.find(this.$el).height()\n ];\n\n this.$emit('sizechange', frameWidth, frameHeight, this.$el);\n },\n\n scrollTo(x = 0, y = 0, delay = 0)\n {\n if ( Mix.isEmpty(delay) ) {\n return this.scrollTo(x, y);\n }\n\n Run.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 // if ( this.$refs.content.scrollTop != y || this.$refs.content.scrollLeft != x ) {\n // setTimeout(() => this.onScrollTo(x, y), 5);\n // }\n },\n\n scrollIntoView(selector, delay = 0, padding = 0)\n {\n Run.delay(() => this.onScrollIntoView(selector, padding), delay);\n },\n\n onScrollIntoView(selector, padding = 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.clientHeight;\n\n let offsetTop = $el.offsetTop(this.$el);\n\n if ( offsetTop < scrollTop ) {\n this.$refs.content.scrollTop = offsetTop - padding;\n }\n\n if ( offsetTop + $el.height() >= scrollTop + outerHeight ) {\n this.$refs.content.scrollTop = offsetTop - outerHeight + $el.height() + padding;\n }\n\n let scrollLeft = this.$refs.content\n .scrollLeft;\n\n let outerWidth = this.$refs.content.clientWidth;\n\n let offsetLeft = $el.offsetLeft(this.$el);\n\n if ( offsetLeft < scrollLeft ) {\n this.$refs.content.scrollLeft = offsetLeft - padding;\n }\n\n if ( offsetLeft + $el.width() >= scrollLeft + outerWidth ) {\n this.$refs.content.scrollLeft = offsetLeft - outerWidth + $el.width() + padding;\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 ) {\n return;\n }\n\n let [innerHeight, outerHeight] = [\n this.$refs.content.scrollHeight || 0, this.$el.clientHeight || 0\n ];\n\n let compare = [\n outerHeight === this.outerHeight,\n innerHeight === this.innerHeight\n ];\n\n if ( !Arr.has(compare, false) ) {\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).style({\n height: (this.barHeight = Math.ceil(barHeight)) + 'px'\n });\n\n this.hasVtrack = outerHeight && outerHeight < innerHeight;\n\n if ( this.hasVtrack ) {\n Dom.find(this.$el).addClass('has-vtrack');\n }\n\n if ( !this.hasVtrack ) {\n Dom.find(this.$el).remClass('has-vtrack');\n }\n\n this.adaptScrollPosition();\n },\n\n adaptScrollWidth()\n {\n if ( this.native ) {\n return;\n }\n\n let [innerWidth, outerWidth] = [\n this.$refs.content.scrollWidth || 0, this.$el.clientWidth || 0\n ];\n\n let compare = [\n outerWidth === this.outerWidth,\n innerWidth === this.innerWidth\n ];\n\n if ( !Arr.has(compare, false) ) {\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).style({\n width: (this.barWidth = Math.ceil(barWidth)) + 'px'\n });\n\n this.hasHtrack = outerWidth && outerWidth < innerWidth;\n\n if ( this.hasHtrack ) {\n Dom.find(this.$el).addClass('has-htrack');\n }\n\n if ( !this.hasHtrack ) {\n Dom.find(this.$el).remClass('has-htrack');\n }\n\n this.adaptScrollPosition();\n },\n\n adaptScrollPosition(scroll = {})\n {\n if ( this.native ) {\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).style({\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).style({\n transform: `translateX(${hbarLeft}px) translateZ(0)`\n });\n\n this.hbarLeft = hbarLeft;\n }\n },\n\n onScroll(e)\n {\n Event.fire('NScrollbar:scroll', e);\n\n let scroll = {\n top: this.$refs.content.scrollTop,\n left: this.$refs.content.scrollLeft\n };\n\n this.$nextTick().then(() => {\n this.$emit('scrollupdate', scroll.top, scroll.left);\n });\n\n this.adaptScrollPosition(scroll);\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 event.preventDefault();\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 Dom.find(this.$refs.vbar).addClass('is-active');\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 Dom.find(this.$refs.vbar).remClass('is-active');\n },\n\n onHbarMousedown(event)\n {\n if ( !Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\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 = this.getTouchEvent(event)\n .clientX;\n\n Dom.find(this.$refs.hbar).addClass('is-active');\n },\n\n onHbarMousemove(event)\n {\n let clientX = this.getTouchEvent(event)\n .clientX;\n\n let left = (this.outerWidth / this.innerWidth) *\n this.scrollLeft * this.widthRatio;\n\n let offset = (clientX - this.clientX) + left;\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 Dom.find(this.$refs.hbar).remClass('is-active');\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.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 if ( this.hasHtrack ) {\n classList.push('has-htrack');\n }\n\n if ( this.hasVtrack ) {\n classList.push('has-vtrack');\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 ref=\"wrapper\" class={this.wrapClass}>\n {this.$slots.default && this.$slots.default()}\n </div>\n </div>\n <div class=\"n-scrollbar-spacer\" ref=\"spacer\">\n { /* Adapt inner height */}\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, Num, Mix, Run } from \"@kizmann/pico-js\";\n\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 0;\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 uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\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, init: false\n };\n },\n\n watch: {\n\n 'items': function () {\n this.updateRender();\n }\n\n },\n\n beforeMount()\n {\n this.scrollTop = 0;\n this.ready = [];\n },\n\n mounted()\n {\n this.bindAdaptScroll()\n },\n\n beforeUnmount()\n {\n this.unbindAdaptScroll()\n },\n\n methods: {\n\n callWhenReady(cb)\n {\n if ( this.init ) {\n return cb.call(this);\n }\n\n this.ready.push(cb);\n },\n\n clearWhenReady()\n {\n Arr.each(this.ready, cb => {\n cb.call(this);\n });\n\n this.ready = [];\n },\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)\n {\n this.callWhenReady(() => this.onScrollToIndex(index))\n },\n\n onScrollToIndex(index)\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.onScrollTo(0, targetTop);\n }\n\n this.onScrollTo(0, targetTop - this.height + this.itemHeight);\n },\n\n scrollTo(x = 0, y = 0)\n {\n this.callWhenReady(() => this.onScrollTo(x, y));\n },\n\n onScrollTo(x = 0, y = 0)\n {\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.scrollTo(x, this.scrollTop = y);\n }\n\n this.refreshDriver(true);\n },\n\n clearState()\n {\n this.state = { start: 0, end: 0 };\n },\n\n updateRender()\n {\n if ( ! this.$refs.scrollbar ) {\n return Run.delay(this.updateRender);\n }\n\n this.scrollTop = this.$refs.scrollbar.\n $refs.content.scrollTop;\n\n this.refreshDriver(false);\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 this.refreshDriver(true);\n },\n\n onSizechange(width, height)\n {\n let init = [\n this.width === 0, this.height === 0\n ];\n\n [this.width, this.height] = [\n width, height\n ];\n\n this.init |= Arr.has(init, true);\n\n if ( this.init ) {\n this.clearWhenReady();\n }\n\n this.refreshDriver(false);\n },\n\n\n refreshDriver(queue = true, callback = null)\n {\n if ( Mix.isEmpty(this.timer) ) {\n this.timer = Date.now();\n }\n\n if ( Date.now() - this.timer > 5 ) {\n queue = false;\n }\n\n clearTimeout(this.to);\n\n this.to = setTimeout(() => {\n this.refreshDriver(false, callback);\n }, 10);\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 ( Mix.isEqual(this.state, state) ) {\n return;\n }\n\n this.state = state;\n\n if ( Mix.isFunction(callback) ) {\n callback.call(this);\n }\n },\n\n },\n\n renderItem(passed)\n {\n // passed.index = Num.int(passed.index);\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.uniqueProp && this.useKeys ) {\n props.key = passed.value[this.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.itemWidth ) {\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 if ( this.init ) {\n classList.push('n-state');\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 = totalHeight + '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 { Run, Num, Arr, Obj, Mix, Dom, Event, Locale, Hash } 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.style(Obj.map(style, (item) => item + 'px'));\n }\n\n hide()\n {\n this.$el.style(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 let key = this.rootNode._.uid + '-droot-';\n\n Dom.find(this.rootNode.$el).on('dragenter', Run.framebuffer((event) => {\n this.onDragenterRoot(event);\n }, key + 'dragenter', 100));\n\n Dom.find(this.rootNode.$el).on('dragover', Run.framebuffer((event) => {\n this.onDragoverRoot(event);\n }, key + 'dragover', 200));\n\n Dom.find(this.rootNode.$el).on('dragleave', Run.framebuffer((event) => {\n this.onDragleaveRoot(event);\n }, key + 'dragleave', 300));\n\n Dom.find(this.rootNode.$el).on('dragend', Run.framebuffer((event) => {\n this.onDragendRoot(event);\n }, key + 'dragend', 400));\n\n Dom.find(this.rootNode.$el).on('drop', Run.framebuffer((event) => {\n this.onDragdropRoot(event);\n }, key + 'drop', 500));\n\n Dom.find(this.rootNode.$el).on('dragdrop', Run.framebuffer((event) => {\n this.onDragdropRoot(event);\n }, key + 'dragdrop', 600));\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 Dom.find(this.rootNode.$el).find('.n-dragover')\n .remClass('n-dragover');\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 < 35 ) {\n // return;\n // }\n\n let allowDrop = this.rootNode.allowDrop;\n\n if ( !Mix.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).remClass('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).remClass('n-nodrop');\n }\n\n this.frames = Date.now();\n }\n\n onDragleaveRoot(event)\n {\n Dom.find(this.rootNode.$el)\n .remClass(['n-dragover', 'n-nodrop']);\n\n Dom.find(this.rootNode.$el).find('.n-dragover')\n .remClass('n-dragover');\n }\n\n onDragendRoot(event)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(this.rootNode.$el)\n .remClass(['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 .remClass(['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 ( !Mix.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 if ( this.rootNode.tempSelected.length ) {\n rainbow.push(!isInSelf);\n }\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).remClass('n-nodrop');\n }\n\n if ( this.strategy === 'nodrop' ) {\n Dom.find(node.$el).remClass('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).remClass(['n-dragover', 'n-nodrop']);\n\n this.DragIndicator.hide();\n }\n\n onDragendNode(event, node)\n {\n Dom.find(node.$el).remClass(['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).remClass(['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, id] = [\n Dom.find(node.$el), node.uid\n ];\n\n $handle.on('dragstart', (event) => {\n this.onDragstartNode(event, node);\n }, { id });\n\n $el.on('dragenter', Run.framebuffer((event) => {\n this.onDragenterNode(event, node);\n }, `${id}-dnode-dragenter`, 150), { id });\n\n $el.on('dragover', Run.framebuffer((event) => {\n this.onDragoverNode(event, node);\n }, `${id}-dnode-dragover`, 250), { id });\n\n $el.on('dragleave', Run.framebuffer((event) => {\n this.onDragleaveNode(event, node);\n }, `${id}-dnode-dragleave`, 350), { id });\n\n $el.on('dragend', Run.framebuffer((event) => {\n this.onDragendNode(event, node);\n }, `${id}-dnode-dragend`, 450), { id });\n\n $el.on('drop', Run.framebuffer((event) => {\n this.onDragdropNode(event, node);\n }, `${id}-dnode-drop`, 550), { id });\n\n $el.on('dragdrop', Run.framebuffer((event) => {\n this.onDragdropNode(event, node);\n }, `${id}-dnode-dragdrop`, 550), { id });\n\n this.childNodes[node.uid] = node;\n }\n\n unbindNode(node)\n {\n Dom.find().optoff({\n id: node.uid\n });\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]: Hash.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 return this.reduceItem(merge, item, Num.int(index), ...props);\n }, []);\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, Hash.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 ( Mix.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 { Hash, Run, Arr, Obj, Dom, Mix, 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 0;\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: Hash.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 Run.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 Run.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 ( ! Mix.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 ( !Mix.isEmpty(key) ) {\n val = Obj.get(val, key);\n }\n\n if ( ! Mix.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 ( ! Mix.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 ( Mix.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 ( ! Mix.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 ( ! Mix.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 {...props}>\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', 'itemHeight', 'overflowX', 'overflowY', 'offsetX', 'offsetY',\n 'useKeys', 'uniqueProp'\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, Run } 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 inheritAttrs: false,\n\n provide()\n {\n return {\n NDraggableItem: this\n };\n },\n\n props: {\n\n value: {\n required: true\n },\n\n index: {\n required: false\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 {\n return !!('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown()\n {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove()\n {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup()\n {\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 if ( this.NDraggable.lazyload ) {\n Run.frame(() => this.init = true);\n }\n\n if ( this.NDraggable.draggable ) {\n this.NDraggable.drag.bindNode(this);\n }\n },\n\n unmounted()\n {\n if ( this.NDraggable.draggable ) {\n this.NDraggable.drag.unbindNode(this);\n }\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, 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 { Hash, Num, Arr, Obj, Dom, Mix, 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 0;\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: Hash.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 ( ! Mix.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 ( ! Mix.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', 'overflowX', 'overflowY',\n 'offsetX', 'offsetY', 'useKeys', 'uniqueProp'\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 { Hash, Num, Arr, Obj, Dom, Mix, 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: Hash.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 ( Mix.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 ( ! Mix.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 ( Mix.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 { Run } 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 Run.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 { Run, Arr, Obj, Dom, Mix, 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', Run.debounce((...args) => {\n this.onResize(...args)\n }, 500), this._.uid);\n\n this.updateHandle();\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).style(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).style(style);\n },\n\n bindSizechange()\n {\n Dom.find(this.NScrollbar.$el).on('resized',\n Run.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 Mix.framerate(this.onLeftMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Mix.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).style(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).remClass('n-move');\n\n let style = {\n transform: `translateX(-${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).style(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 Mix.framerate(this.onRightMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Mix.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).style(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).remClass('n-move');\n\n let style = {\n transform: `translateX(${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).style(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.modelValue == this.tempValue ) {\n style['flex-basis'] = this.modelValue + '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 { Run, Arr, Obj, Dom, Mix, Str, Locale, Event, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NResizer',\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 '';\n },\n type: [Number, String]\n },\n\n flex: {\n default()\n {\n return '';\n },\n type: [String]\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 type: {\n default()\n {\n return 'primary';\n },\n type: [String]\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 {\n return !!('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown()\n {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove()\n {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup()\n {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n sizeFixed: 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 mounted()\n {\n this.observer = new ResizeObserver(() => {\n this.getWidthDebounced();\n });\n\n this.observer.observe(this.$el);\n\n if ( !this.modelValue ) {\n this.getWidthDebounced();\n }\n\n Event.bind('NScrollbar:paused', (...args) => {\n this.updateRemoteWidth(...args)\n }, this._.uid);\n\n Event.bind('NResizer:move', (...args) => {\n this.forceWidth(...args)\n }, this._.uid);\n\n this.updateHandle();\n },\n\n unmounted()\n {\n this.observer.disconnect();\n\n Event.unbind('NScrollbar:paused',\n this._.uid);\n\n Event.unbind('NResizer:move',\n this._.uid);\n },\n\n methods: {\n\n getWidthDebounced()\n {\n if ( Dom.find(this.$el).inside('.n-paused') ) {\n return;\n }\n\n let now = this.$el.getBoundingClientRect();\n\n if ( Mix.isEqual(this.last || {}, now) ) {\n return;\n }\n\n this.last = now;\n\n clearInterval(this.interval);\n\n this.interval = setTimeout(() => {\n this.updateWidth();\n }, 5);\n },\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).style(style);\n },\n\n updateRemoteWidth(el)\n {\n if ( Dom.find(el).contains(this.$el) ) {\n this.updateWidth();\n }\n },\n\n updateWidth()\n {\n let width = Dom.find(this.$el).width();\n\n if ( width === this.tempValue ) {\n return;\n }\n\n this.$emit('updateWidth', 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).style(style);\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 this.onLeftMouseup, this._.uid);\n\n Dom.find(document).on(this.mousemove,\n this.onLeftMousemove, 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 * 0.5);\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 console.log('aaaaa')\n\n let style = {\n transform: `translateX(-${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(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 (this.resizerWidth * 0.5);\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).remClass('n-move');\n\n let style = {\n transform: `translateX(-${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).style(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.sizeFixed = true;\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 this.onRightMouseup, this._.uid);\n\n Dom.find(document).on(this.mousemove,\n this.onRightMousemove, 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 * 0.5);\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 - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(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 (this.resizerWidth * 0.5);\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).remClass('n-move');\n\n let style = {\n transform: `translateX(${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).style(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.sizeFixed = true;\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.type,\n 'n-resizer--' + this.position,\n ];\n\n let style = {};\n\n if ( !Mix.isEmpty(this.flex) ) {\n style['flex'] = this.flex;\n }\n\n let width = this.width;\n\n if ( Mix.isNumber(width) ) {\n width = width + 'px';\n }\n\n if ( !Mix.isEmpty(this.width) ) {\n style['width'] = this.width;\n }\n\n if ( this.sizeFixed && this.tempValue ) {\n style['flex'] = `0 0 ${this.tempValue}px`;\n }\n\n if ( this.sizeFixed && this.tempValue ) {\n style['width'] = `${this.tempValue}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.$slots.default(), this.ctor('renderHandle')()]}\n </div>\n );\n }\n\n}\n","import { Arr, Mix, Dom, Event, Hash } 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 theme: {\n default()\n {\n return 'dark';\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 toggle: {\n default()\n {\n return false;\n },\n type: [Boolean]\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 alwaysRender: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n framerate: {\n default()\n {\n return 15;\n },\n type: [Number]\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid(),\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 },\n\n beforeMount()\n {\n this.tempValue = this.modelValue;\n },\n\n mounted()\n {\n this.target = Dom.find(this.$el).prev().get(0);\n\n if ( this.trigger === 'context' ) {\n this.target = Dom.find(this.$el).parent().get(0);\n }\n\n let options = {\n uid: this.uid,\n target: this.target,\n listen: this.listen,\n position: this.position,\n toggle: this.toggle,\n trigger: this.trigger,\n width: this.width,\n scrollClose: this.scrollClose,\n multiClose: this.multiClose,\n disabled: () => this.disabled,\n };\n\n if ( this.NPopover ) {\n options.parent = this.NPopover.popel;\n }\n\n this.popel = this.Popover.append(this.$el, options);\n\n this.popel.on('open', () => {\n if ( this.tempValue !== true ) {\n this.$emit('update:modelValue', this.tempValue = true);\n }\n });\n\n this.popel.on('close', () => {\n if ( this.tempValue !== false ) {\n this.$emit('update:modelValue', this.tempValue = false);\n }\n });\n\n this.$watch('tempValue', () => {\n this.tempValue ? this.popel.show() : this.popel.hide();\n });\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.Popover.remove({ uid: this.uid });\n\n this.$el.remove();\n },\n\n methods: {\n\n active()\n {\n return this.tempValue;\n },\n\n open()\n {\n this.popel.open();\n },\n\n close()\n {\n this.popel.hide();\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 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 ( Mix.isNull(this.modelValue) ) {\n viewBody = this.tempValue;\n }\n\n if ( this.alwaysRender ) {\n viewBody = true;\n }\n\n if ( viewBody ) {\n classList.push('n-ready');\n }\n\n if ( this.theme ) {\n classList.push('n-theme--' + this.theme);\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, Mix, 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","\nexport class PopoverHelper\n{\n static alias = 'PopoverHelper';\n\n static getTouchState() {\n return !! ('ontouchstart' in window || navigator.msMaxTouchPoints);\n }\n\n static getScrollEvent()\n {\n return 'scroll';\n }\n\n static getHoverEvent()\n {\n if ( this.getTouchState() ) {\n return 'touchstart';\n }\n\n return 'mousemove';\n }\n\n static getClickEvent()\n {\n if ( this.getTouchState() ) {\n return 'touchstart';\n }\n\n return 'mousedown';\n }\n\n static getContextEvent()\n {\n if ( this.getTouchState() ) {\n return 'contextmenu';\n }\n\n return 'contextmenu';\n }\n\n static getMouseDownEvent()\n {\n if ( this.getTouchState() ) {\n return 'touchstart';\n }\n\n return 'mousedown';\n }\n\n static getMouseMoveEvent()\n {\n if ( this.getTouchState() ) {\n return 'touchmove';\n }\n\n return 'mousemove';\n }\n\n static getMouseUpEvent()\n {\n if ( this.getTouchState() ) {\n return 'touchend';\n }\n\n return 'mouseup';\n }\n\n}\n\nif ( ! window[PopoverHelper.alias] ) {\n window[PopoverHelper.alias] = PopoverHelper;\n}\n\nexport default PopoverHelper;","import { Run, Str, Obj, Dom, Mix, Arr, Event } from \"@kizmann/pico-js\";\nimport PopoverElement from \"./popover-element.mjs\";\nimport PopoverHelper from \"./popover-helper.mjs\";\n\nwindow.PopoverBag = {};\n\nexport class PopoverHandler\n{\n static alias = 'Popover';\n\n static current = [];\n\n static mount()\n {\n Dom.find(window).on(PopoverHelper.getMouseDownEvent(), Run.throttle((e) => {\n this.detectFadeOnCurrent(e);\n }, 30));\n\n Dom.find(window).on(PopoverHelper.getScrollEvent(), Run.throttle((e) => {\n this.detectScrollOnCurrent(e);\n }, 30));\n\n Event.bind('NScrollbar:scroll', Run.throttle((e) => {\n this.detectScrollOnCurrent(e);\n }, 30));\n\n return this;\n }\n\n static append(el, item)\n {\n if ( ! window.PopoverBag[item.uid] ) {\n window.PopoverBag[item.uid] = new PopoverElement(el, item);\n }\n\n return window.PopoverBag[item.uid];\n }\n\n static remove(item)\n {\n if ( window.PopoverBag[item.uid] ) {\n window.PopoverBag[item.uid].unbind();\n }\n\n delete window.PopoverBag[item.uid];\n }\n\n static setCurrent(el)\n {\n if ( Arr.has(this.current, el) ) {\n return;\n }\n\n let cascade = el.parents();\n\n Arr.each(this.current, (current) => {\n current.currentChange(cascade);\n });\n\n Arr.add(this.current, el);\n }\n\n static getCurrent()\n {\n return Arr.last(this.current);\n }\n\n static unsetCurrent(el)\n {\n return Arr.remove(this.current, el);\n }\n\n static detectFadeOnCurrent(event)\n {\n let current = Arr.last(this.current);\n\n if ( Mix.isEmpty(current) ) {\n return;\n }\n\n let { el, target, trigger } = current.options;\n\n let tgt = Dom.find(event.target).closest(target),\n src = Dom.find(event.target).closest(el);\n\n let result = (!! tgt || !! src);\n\n if ( current.visible === result ) {\n return;\n }\n\n if ( trigger !== 'context' && !! tgt ) {\n return;\n }\n\n current.hide('exit');\n }\n\n static detectScrollOnCurrent(event)\n {\n let currents = Arr.filter(this.current, {\n scrollClose: true\n });\n\n Arr.each(currents, (current) => {\n if ( Dom.find(current.options.target).inside(event.target) ) {\n current.hide('scroll');\n }\n });\n }\n\n}\n\nif ( ! window[PopoverHandler.alias] ) {\n window[PopoverHandler.alias] = PopoverHandler;\n}\n\nDom.ready(() => {\n PopoverHandler.mount();\n});\n\nexport default PopoverHandler;\n","import { Mix, Dom, Arr, Obj, Run, Hash } from \"@kizmann/pico-js\";\nimport { PopoverHelper } from \"./popover-helper.mjs\";\nimport PopoverHandler from \"./popover-handler.mjs\";\n\n\nexport class PopoverElement\n{\n static alias = 'Popover';\n\n visible = false;\n\n options = {\n parent: null,\n target: null,\n listen: false,\n trigger: 'hover',\n toggle: false,\n position: 'bottom-center',\n width: -1,\n scrollClose: true,\n multiClose: true,\n };\n\n client = {\n x: 0, y: 0\n };\n\n events = {};\n\n constructor(el, options = {})\n {\n this.options = Obj.assign(this.options, options, {\n el\n });\n\n if ( ! options.uid ) {\n options.uid = Hash.uuid()\n }\n\n this.bind();\n }\n\n bind()\n {\n let { uid, trigger } = this.options;\n\n if ( trigger === 'hover' ) {\n Dom.find(document.body).on(PopoverHelper.getHoverEvent(),\n Run.framerate((e) => this.onHover(e), 15), { uid });\n }\n\n if ( trigger === 'click' ) {\n Dom.find(document.body).on(PopoverHelper.getClickEvent(),\n Run.throttle((e) => this.onClick(e), 30), { uid });\n }\n\n if ( trigger === 'context' ) {\n Dom.find(document.body).on(PopoverHelper.getContextEvent(),\n Run.throttle((e) => this.onContext(e), 30), { uid });\n }\n }\n\n unbind()\n {\n let { uid, trigger } = this.options;\n\n if ( trigger === 'hover' ) {\n Dom.find(document).off(PopoverHelper.getHoverEvent(),\n null, { uid });\n }\n\n if ( trigger === 'click' ) {\n Dom.find(document).off(PopoverHelper.getClickEvent(),\n null, { uid });\n }\n\n if ( trigger === 'context' ) {\n Dom.find(document).off(PopoverHelper.getContextEvent(),\n null, { uid });\n }\n }\n\n parents()\n {\n let { parent } = this.options;\n\n if ( Mix.isEmpty(parent) ) {\n return [];\n }\n\n return Arr.merge(parent.parents(), [\n parent.options.uid\n ]);\n }\n\n currentChange(parents)\n {\n let { uid, multiClose } = this.options;\n\n if ( ! multiClose || Arr.has(parents, uid) ) {\n return;\n }\n\n this.hide('multi')\n }\n\n on(event, cb)\n {\n this.events[event] = cb;\n }\n\n off(event)\n {\n delete this.events[event];\n }\n\n show(event = 'default')\n {\n if ( this.interval ) {\n clearInterval(this.interval);\n }\n\n this.interval = setTimeout(() => {\n this.showQueue(event);\n }, 100);\n }\n\n showQueue(event = 'default')\n {\n if ( this.visible ) {\n return this.updatePosition();\n }\n\n let { el } = this.options;\n\n Dom.find(el).attr('data-ready', 'true');\n\n if ( Mix.isFunction(this.events['open']) ) {\n this.events['open'].apply({}, [event]);\n }\n\n this.updatePosition();\n\n requestIdleCallback(() => {\n this.bindResizeObserver();\n });\n\n this.visible = true;\n\n PopoverHandler.setCurrent(this);\n }\n\n hide(event = 'default')\n {\n if ( this.interval ) {\n clearInterval(this.interval);\n }\n\n this.interval = setTimeout(() => {\n this.hideQueue(event);\n }, 50);\n }\n\n hideQueue(event = 'default')\n {\n let { el } = this.options;\n\n Dom.find(el).attr('data-ready', null);\n\n if ( Mix.isFunction(this.events['close']) ) {\n this.events['close'].apply({}, [event]);\n }\n\n this.unbindResizeObserver();\n\n this.visible = false;\n\n PopoverHandler.unsetCurrent(this);\n }\n\n onHover(event)\n {\n let { el, target } = this.options;\n\n let tgt = Dom.find(event.target).closest(target),\n src = Dom.find(event.target).closest(el);\n\n let result = (!! tgt || !! src);\n\n if ( this.visible === result ) {\n return;\n }\n\n if ( ! result ) {\n return this.hideQueue('hover');\n }\n\n this.showQueue('hover');\n }\n\n onClick(event)\n {\n let { el, target } = this.options;\n\n let keyCode = event.which === 1 || event.which === 0;\n\n if ( ! keyCode ) {\n return;\n }\n\n let tgt = Dom.find(event.target).closest(target),\n src = Dom.find(event.target).closest(el);\n\n if ( this.visible ) {\n return this.options.toggle && tgt && this.hideQueue('click');\n }\n\n let result = (!! tgt || !! src);\n\n if ( this.visible === result ) {\n return;\n }\n\n this.showQueue('click');\n }\n\n onContext(event)\n {\n let { el, target } = this.options;\n\n let keyCode = event.which === 3;\n\n if ( !keyCode ) {\n return;\n }\n\n let tgt = Dom.find(event.target).closest(target),\n src = Dom.find(event.target).closest(el);\n\n this.client.x = event.clientX;\n this.client.y = event.clientY;\n\n let result = (!! tgt || !! src);\n\n if ( result ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if ( ! result ) {\n return;\n }\n\n this.showQueue('context');\n }\n\n bindResizeObserver()\n {\n let { el } = this.options;\n\n this.observer = new ResizeObserver(() => {\n this.updatePosition();\n });\n\n this.observer.observe(el);\n }\n\n unbindResizeObserver()\n {\n if ( this.observer ) {\n this.observer.disconnect();\n }\n }\n\n updatePosition()\n {\n let { el, target, width } = this.options;\n\n let [offset, scroll] = [\n this.getTargetOffset(), Dom.find(document.body).scroll()\n ];\n\n Dom.find(el).attr('data-position', offset.position);\n\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let style = Obj.assign(Dom.find(el).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 let rect = target.getBoundingClientRect();\n\n if ( width === -1 ) {\n style.width = Math.round(rect.width) + 'px';\n }\n\n Dom.find(el).style(style);\n\n if ( ! style['--n-parent-width'] ) {\n style['--n-parent-width'] = `${rect.width}px`;\n }\n\n if ( ! style['--n-node-width'] && Dom.find(el).innerWidth() ) {\n style['--n-node-width'] = `${el.clientWidth}px`;\n }\n\n if ( ! style['--n-parent-height'] ) {\n style['--n-parent-height'] = `${rect.height}px`;\n }\n\n if ( ! style['--n-node-height'] && Dom.find(el).innerHeight() ) {\n style['--n-node-height'] = `${el.clientHeight}px`;\n }\n\n Dom.find(el).style(style);\n }\n\n getTargetHorizontal(position, fallback = null)\n {\n let { el, target, trigger, width, scrollClose } = this.options;\n\n let targetRect = target.getBoundingClientRect();\n\n if ( trigger === 'context' ) {\n targetRect = {\n top: this.client.y, left: this.client.x, width: 2, height: 2\n };\n }\n\n let windowRect = el.getBoundingClientRect();\n\n if ( 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 = 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 ( 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 if ( broken ) {\n position = 'auto';\n }\n\n return Obj.assign(offset, { position });\n }\n\n getTargetVertical(position, fallback = null)\n {\n let { el, target, trigger, width, scrollClose } = this.options;\n\n let targetRect = target.getBoundingClientRect();\n\n if ( trigger === 'context' ) {\n targetRect = {\n top: this.client.y, left: this.client.x, width: 2, height: 2\n };\n }\n\n let windowRect = el.getBoundingClientRect();\n\n if ( 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 = 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 ( 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 if ( broken ) {\n position = 'auto';\n }\n\n return Obj.assign(offset, { position });\n }\n\n getTargetOffset()\n {\n let { el, width, position } = this.options;\n\n\n if ( width > 0 ) {\n Dom.find(el).style({ width: `${width}px`});\n }\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 console.error(`Popover position \"${position}\" does not exist`);\n }\n\n}\n\nif ( ! window[PopoverElement.alias] ) {\n window[PopoverElement.alias] = PopoverElement;\n}\n\nexport default PopoverElement;","import { Run, Arr, Obj, Mix, 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 theme: {\n default()\n {\n return 'auto';\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 .prev().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 Run.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).remClass('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).style({\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.position,\n ];\n\n if ( this.theme ) {\n classList.push('n-theme--' + this.theme);\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 glass: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n round: {\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.glass ) {\n classList.push('n-button--glass');\n }\n\n if ( this.link ) {\n classList.push('n-button--link');\n }\n\n if ( this.round ) {\n classList.push('n-button--round');\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: 'reset',\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 { Str, Obj, Num, Now, Mix, 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 {\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 = value;\n }\n }\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.modelValue,\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 ( Mix.isNull(value) ) {\n value = this.modelValue;\n }\n\n if ( Mix.isEmpty(value) ) {\n return this.min;\n }\n\n return Num.float(value);\n },\n\n getDisplayValue()\n {\n if ( Mix.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let value = Str.number(this.tempValue, 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 clearTimeout(this.prevTimeout);\n clearInterval(this.prevInterval);\n\n this.nextStep();\n\n this.nextTimeout = setTimeout(() => {\n this.nextInterval = setInterval(this.nextStep, 100);\n }, 400);\n\n Dom.find(window).on('mouseup', this.onNextUp, {\n uid: this._.uid + 'next'\n });\n },\n\n onNextUp(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n clearTimeout(this.nextTimeout);\n clearInterval(this.nextInterval);\n\n Dom.find(window).off('mouseup', null, {\n uid: this._.uid + 'next'\n });\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', this.tempValue = Num.float(value));\n },\n\n onPrevDown()\n {\n clearTimeout(this.nextTimeout);\n clearInterval(this.nextInterval);\n\n this.prevStep();\n\n this.prevTimeout = setTimeout(() => {\n this.prevInterval = setInterval(this.prevStep, 100);\n }, 400);\n\n Dom.find(window).on('mouseup', this.onPrevUp, {\n uid: this._.uid + 'prev'\n });\n },\n\n onPrevUp(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n clearTimeout(this.prevTimeout);\n clearInterval(this.prevInterval);\n\n Dom.find(window).off('mouseup', null, {\n uid: this._.uid + 'prev'\n });\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: 'reset',\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: 'reset',\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\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 || Mix.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 n-form-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 ( Mix.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, Mix, Hash} from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTextarea',\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 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, Mix, 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 theme: {\n default()\n {\n return 'dark';\n },\n type: [String]\n },\n\n lazy: {\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 position: {\n default()\n {\n return 'bottom-start';\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 Mix.isEmpty(this.tempValue);\n },\n\n custom()\n {\n let result = Arr.filter(this.elements, (element) => {\n\n if ( Mix.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 beforeMount()\n {\n if ( this.lazy || ! this.$slots.default ) {\n this.generateOptions();\n }\n\n if ( this.multiple && !Mix.isArray(this.tempValue) ) {\n this.tempValue = [];\n }\n\n if ( this.multiple && !Mix.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 && Mix.isArray(value) ) {\n value = null;\n }\n\n if ( this.multiple && !Mix.isArray(value) ) {\n value = [];\n }\n\n this.tempValue = value;\n },\n\n options()\n {\n this.generateOptions();\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.focus = true;\n },\n\n onFocusInput()\n {\n if ( !this.focus ) {\n this.focus = true;\n }\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 ( Mix.isEmpty(this.search) ) {\n return this.searched = this.elements;\n }\n\n let searchRegex = new RegExp(this.search, 'i');\n\n this.searched = Arr.filter(this.elements, (option) => {\n return Mix.string(option.label || '').match(searchRegex);\n });\n },\n\n toggleOption(value, event = null)\n {\n if ( Mix.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 && !Mix.isArray(this.modelValue) ) {\n denyUpdate = false;\n }\n\n if ( !this.multiple && Mix.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.virtualscroll ) {\n this.$refs.virtualscroll.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 ( Mix.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.virtualscroll ) {\n this.$refs.virtualscroll.scrollToIndex(index, 0);\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, 0);\n }\n }\n\n },\n\n renderLabelClear()\n {\n if ( !this.clearable || Mix.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 n-form-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-form-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 ( !Mix.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 = Mix.isEmpty(this.tempValue) &&\n !Mix.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 = Mix.isEmpty(this.tempValue) &&\n !Mix.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-popover-shadow 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 || ! this.$slots.default ) {\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 size: this.size\n };\n\n return (\n <NScrollbar ref=\"scrollbar\" class=\"n-popover-shadow n-select__body\" {...props}>\n {Mix.vals(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 === Mix.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, offsetY: 0, uniqueProp: 'tempValue'\n };\n\n props.renderNode = ({ value, index }) => {\n return this.ctor('renderLazyOption')(value, index);\n };\n\n return (\n <NVirtualscroller ref=\"virtualscroll\" class=\"n-popover-shadow n-select__body\" {...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 position: this.position,\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 ( Mix.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 Arr.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 = Mix.isEmpty(this.tempValue) &&\n !Mix.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, Mix } 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 ( Mix.isEmpty(this.valueProp) ) {\n return this.value;\n }\n\n return Obj.get(this.value, this.valueProp);\n },\n\n tempLabel()\n {\n if ( Mix.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 === Mix.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, Mix, Hash } 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: Hash.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, Mix } 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, Mix } 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, Mix } 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, Mix, Num, Dom, Run } 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 Mix.isArray(this.steps) ? Arr.first(this.steps) : this.min;\n },\n\n fixmax()\n {\n return Mix.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 Run.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 ( Mix.isNull(value) ) {\n value = this.fixmax;\n }\n if ( ! Mix.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 ( Mix.isNumber(this.steps) ) {\n return Math.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 this.onMouseup, this._.uid);\n\n Dom.find(document).on(this.mousemove,\n this.onMousemove, 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).remClass('n-move');\n Dom.find(document.body).remClass('n-move');\n\n this.setModelValue();\n },\n\n },\n\n renderHandle(value, index)\n {\n if ( value == null ) {\n return null;\n }\n\n let key = Arr.findIndex(this.steps, value);\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 handleProps = {\n ...handleProps, 'data-tooltip': Obj.get(this.labels, key, value)\n }\n\n return (\n <div class=\"n-slider__handle\" {...handleProps}>\n <span></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, Mix } 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, Dom, Arr, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NConfirm',\n\n props: {\n\n modelValue: {\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 listen: {\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 confirmText: {\n default()\n {\n return Locale.trans('Okay');\n },\n type: [String]\n },\n\n cancelText: {\n default()\n {\n return Locale.trans('Cancel');\n },\n type: [String]\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 data()\n {\n return {\n tempValue: this.modelValue, activeState: false,\n };\n },\n\n mounted()\n {\n this.$watch('tempValue', () => {\n this.changeVisible();\n });\n\n this.$nextTick(() => {\n this.changeVisible();\n });\n\n this.target = Dom.find(this.selector || this.$el)\n .prev().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).append(this.$el);\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n },\n\n methods: {\n\n extractText(fallback)\n {\n if ( !this.$slots.default ) {\n return fallback;\n }\n\n let nodes = this.$slots.default();\n\n if ( Mix.isEmpty(nodes) ) {\n return fallback;\n }\n\n let html = [];\n\n nodes.map((el) => {\n\n if ( !Mix.isString(el.children) ) {\n return;\n }\n\n html.push(el.children);\n });\n\n return html.join(' ');\n },\n\n changeVisible()\n {\n if ( !this.tempValue || this.activeState ) {\n return;\n }\n\n let text = this.trans('Are you sure?');\n\n if ( this.$slots.default ) {\n text = this.$el.innerHTML;\n }\n\n let options = Obj.only(this.$props, ['size', 'type', 'confirmText', 'cancelText'], {\n text\n });\n\n this.Confirm.make(options)\n .then(() => {\n this.activeState = false;\n this.confirm();\n })\n .catch(() => {\n this.activeState = false;\n this.abort();\n });\n\n this.activeState = true;\n },\n\n abort()\n {\n this.$emit('update:modelValue', this.tempValue = false);\n this.$emit('abort');\n },\n\n confirm()\n {\n this.$emit('update:modelValue', this.tempValue = false);\n this.$emit('confirm');\n },\n\n eventClick(event, el)\n {\n if ( !this.listen || 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 event.preventDefault();\n\n this.$emit('update:modelValue', this.tempValue = true);\n },\n\n },\n\n render()\n {\n return (\n <div data-confirm=\"text\" style=\"display: none !important;\">\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n }\n\n}\n","import { Run, Mix, Arr, Dom, Locale, Obj, Hash } from \"@kizmann/pico-js\";\n\nexport class ConfirmHandler\n{\n static alias = 'Confirm';\n\n modal = null;\n\n options = {\n text: '', size: 'md', type: 'primary', confirmText: '', cancelText: ''\n };\n\n static make(options = {}, cb = () => false)\n {\n return new ConfirmHandler(options).promise(cb);\n }\n\n constructor(options = {})\n {\n this.options = Obj.assign(this.options, options, {\n uid: Hash.uuid()\n });\n }\n\n close(next)\n {\n this.unbindEvents();\n this.modal.remove();\n\n Dom.find(document.body).style({\n 'overflow': 'undefined'\n });\n\n next();\n }\n\n promise(cb = () => false)\n {\n return new Promise((confirm, cancel) => {\n\n if ( cb.apply({}) ) {\n return confirm();\n }\n\n let args = [\n () => this.close(confirm),\n () => this.close(cancel),\n ];\n\n this.render(...args);\n });\n }\n\n renderIcon(el)\n {\n let icon = Obj.get(window.ConfirmIcons, this.options.type, 'fa fa-ghost');\n\n let child = Dom.make('div', {\n classList: 'n-confirm__icon', innerHTML: `<i class=\"n-icon ${icon}\"></i>`\n });\n\n child.appendTo(el);\n }\n\n renderText(el)\n {\n let child = Dom.make('div', {\n classList: 'n-confirm__text', innerHTML: `<p>${this.options.text}</p>`\n });\n\n child.appendTo(el);\n }\n\n renderConfirm(el, next)\n {\n let classList = [\n 'n-button',\n 'n-button--auto',\n 'n-button--' + this.options.size,\n ];\n\n let text = Obj.get(this.options, 'confirmText');\n\n if ( Mix.isEmpty(text) ) {\n text = Locale.trans('Okay');\n }\n\n let confirm = Dom.make('button', {\n classList: classList.join(' '), innerHTML: `<span>${text}</span>`\n });\n\n confirm.on('click', () => {\n next();\n });\n\n confirm.appendTo(el);\n }\n\n renderCancel(el, next)\n {\n let classList = [\n 'n-button',\n 'n-button--glass',\n 'n-button--neutral',\n 'n-button--' + this.options.size,\n ];\n\n let text = Obj.get(this.options, 'cancelText');\n\n if ( Mix.isEmpty(text) ) {\n text = Locale.trans('Cancel');\n }\n\n let confirm = Dom.make('button', {\n classList: classList.join(' '), innerHTML: `<span>${text}</span>`\n });\n\n confirm.on('click', () => {\n next();\n });\n\n confirm.appendTo(el);\n }\n\n bindEvents(confirm, cancel)\n {\n let { uid } = this.options;\n\n Dom.find(window).on('keydown', (e) => {\n if ( e.keyCode === 27 ) {\n e.stopPropagation(); cancel();\n }\n if ( e.keyCode === 13 ) {\n e.preventDefault(); confirm();\n }\n }, { uid });\n\n Dom.find(this.modal).on('click', (e) => {\n if ( ! Dom.find(e.target).inside('.n-confirm-frame') ) {\n cancel();\n }\n }, { uid });\n\n Run.delay(() => {\n Dom.find(this.modal).addClass('n-ready');\n });\n }\n\n unbindEvents()\n {\n let { uid } = this.options;\n\n Dom.find(window).off('keydown', null, {\n uid\n });\n\n Dom.find(this.modal).off('click', null, {\n uid\n });\n }\n\n render(confirm, cancel)\n {\n let cls = Obj.get(this.options, 'class', []);\n\n if ( Mix.isString(cls) ) {\n cls = cls.split(' ');\n }\n\n let classList = [\n 'n-confirm',\n 'n-confirm--' + this.options.size,\n 'n-confirm--' + this.options.type,\n ];\n\n classList.push('n-theme--dark');\n\n if ( window.WIN ) {\n classList.push('n-reverse');\n }\n\n let modal = Dom.make('div', {\n classList: Arr.merge(classList, cls).join(' ')\n });\n\n modal.attr('data-confirm', this.options.uid);\n\n let frame = Dom.make('div', {\n classList: ['n-confirm-frame']\n });\n\n frame.appendTo(modal);\n\n let body = Dom.make('div', {\n classList: ['n-confirm__body']\n });\n\n body.appendTo(frame);\n\n this.renderIcon(body);\n this.renderText(body);\n\n let action = Dom.make('div', {\n classList: ['n-confirm__action']\n });\n\n action.appendTo(frame);\n\n this.renderCancel(action, cancel);\n this.renderConfirm(action, confirm);\n\n Dom.find(document.body).style({\n 'overflow': 'hidden'\n });\n\n modal.appendTo(document.body);\n\n requestAnimationFrame(() => {\n this.bindEvents(confirm, cancel);\n });\n\n this.modal = modal.get(0);\n console.log(this.modal);\n }\n}\n\nexport default ConfirmHandler;","import { Arr, Obj, Mix, Str, Run } 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 = Run.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 && ! Mix.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 ( Mix.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, Mix } 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 emptyText: {\n default()\n {\n return 'No items';\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 || Mix.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 n-form-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-form-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 ( Mix.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 emptyHtml = (\n <div class=\"n-popover-shadow n-cascader__empty\">\n <NEmptyIcon inline={true}>{this.trans(this.emptyText)}</NEmptyIcon>\n </div>\n );\n\n if ( Mix.isEmpty(this.options) ) {\n return emptyHtml;\n }\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-popover-shadow\" {...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 ( Mix.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, Mix } 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.grid('years');\n },\n\n monthsGrid()\n {\n return this.tempCache.grid('months');\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 ( Mix.isString(now) ) {\n now = Now.make(now);\n }\n\n if ( Mix.isEmpty(this.modelValue) ) {\n now.reset({ time: true });\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 ( Mix.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 ( Mix.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 glass: true,\n square: 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 glass: true,\n square: 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() -1]\n ];\n\n let month = this.tempCache.clone()\n .add(this.monthPanels - 1, 'month');\n\n if ( month.month() !== this.tempCache.month() ) {\n monthsHtml.push(this.months[month.month() -1]);\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 .add(this.monthPanels - 1, 'month');\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.grid('days'), 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 .add(offset, 'month');\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() -1]) }</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 n-form-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-form-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 let classList = [\n 'n-popover-shadow',\n ];\n\n let excludes = [\n 'modelValue',\n 'placeholder',\n 'placeholderArrive',\n 'placeholderDepart',\n 'rangeSeparator',\n 'position',\n 'clearable',\n 'displayFormat'\n ];\n \n let props = Obj.except(this.$props, excludes, {\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={classList} {...props}></NDatepickerPanel>\n );\n },\n\n renderPopover()\n {\n let classList = [\n 'n-popover--datepicker',\n ];\n\n let props = {\n class: classList,\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, Mix } 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.getHoursGrid(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutesGrid(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSecondsGrid(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 ( Mix.isEmpty(this.modelValue) ) {\n modelValue = modelValue.reset({ time: true });\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 let scrollbarProps = {\n offsetY: 0, wrapClass: 'n-timepicker-panel__wrap'\n };\n\n return (\n <NScrollbar ref=\"hour\" class=\"n-timepicker-panel__panel\" {...scrollbarProps}>\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 let scrollbarProps = {\n offsetY: 0, wrapClass: 'n-timepicker-panel__wrap'\n };\n\n return (\n <NScrollbar ref=\"minute\" class=\"n-timepicker-panel__panel\" {...scrollbarProps}>\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 let scrollbarProps = {\n offsetY: 0, wrapClass: 'n-timepicker-panel__wrap'\n };\n\n return (\n <NScrollbar ref=\"second\" class=\"n-timepicker-panel__panel\" {...scrollbarProps}>\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, Mix, 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.getHoursGrid(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutesGrid(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSecondsGrid(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 n-form-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-form-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 let classList = [\n 'n-popover-shadow',\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={classList} {...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, Mix, 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 n-form-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-form-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-popover-shadow n-datetimepicker-panel\">\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 { Mix, 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 ( Mix.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 ( Mix.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 += Mix.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 += Mix.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 += Mix.float(mmatch[1].replace(',', '.')) * 60;\n }\n\n let smatch = this.findPattern(text, this.seconds);\n\n if ( smatch && smatch.length === 3 ) {\n value += Mix.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 n-form-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-form-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-popover-shadow n-durationpicker-panel\" {...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, Mix, Hash } 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 ( Mix.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 ( Mix.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: Hash.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 { this.ctor('renderSourceSearch')() }\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 { this.ctor('renderTargetSearch')() }\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('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('renderTargetBody')() }\n </div>\n </div>\n );\n }\n\n}","import { Mix, Arr, Locale, Obj } from \"@kizmann/pico-js\";\n\nexport const FormMessage = {\n\n required(field, value)\n {\n return Locale.trans('Field is required');\n },\n\n required_if(field, value, key = '')\n {\n\n let label = Arr.find(this.elements, (item) => {\n return item.prop === key;\n }) || key;\n\n return Locale.trans('Field is required if :label isset', {\n label: label.label || key\n });\n },\n\n required_unless(field, value, key = '')\n {\n let label = Arr.find(this.elements, (item) => {\n return item.prop === key;\n });\n\n return Locale.trans('Field is required unless :label isset', {\n label: label.label || key\n });\n },\n\n same(field, value, key = '')\n {\n let label = Arr.find(this.elements, (item) => {\n return item.prop === key;\n }) || key;\n\n return Locale.trans('Must be same as :label', {\n label: label.label || key\n });\n },\n\n diffrent(field, value, key = '')\n {\n let label = Arr.find(this.elements, (item) => {\n return item.prop === key;\n }) || key;\n\n return Locale.trans('Must be diffrent from :label', {\n label: label.label || key\n });\n },\n\n value(field, value, val = 'foobar')\n {\n return Locale.trans('Must be exact value :val', { val });\n },\n\n min(field, value, min = Number.MIN_VALUE)\n {\n return Locale.trans('Must be greather than :min', { min });\n },\n\n max(field, value, max = Number.MAX_VALUE)\n {\n return Locale.trans('Must be lesser than :max', { max });\n },\n\n minlength(field, value, min = Number.MIN_VALUE)\n {\n return Locale.trans('Length must be greater than :min', { min });\n },\n\n maxlength(field, value, max = Number.MAX_VALUE)\n {\n return Locale.trans('Length must be lesser than :max', { max });\n },\n\n email(field, value)\n {\n return Locale.trans('Must be a valid email');\n }\n\n};\n\nexport const FormRules = {\n\n required(field, value)\n {\n if ( Mix.isBool(value) ) {\n return value === true;\n }\n\n return !Mix.isEmpty(value);\n },\n\n required_if(field, value, key = '')\n {\n let target = Obj.get(this.form, key);\n\n if ( Mix.isEmpty(target) ) {\n return true;\n }\n\n if ( Mix.isBool(value) ) {\n return value === true;\n }\n\n return !Mix.isEmpty(value);\n },\n\n required_unless(field, value, key = '')\n {\n let target = Obj.get(this.form, key);\n\n if ( !Mix.isEmpty(target) ) {\n return true;\n }\n\n if ( Mix.isBool(value) ) {\n return value === true;\n }\n\n return !Mix.isEmpty(value);\n },\n\n same(field, value, key = '')\n {\n return value === Obj.get(this.form, key);\n },\n\n diffrent(field, value, key = '')\n {\n return value !== Obj.get(this.form, key);\n },\n\n value(field, value, val = 'foobar')\n {\n if ( Mix.isString(value) ) {\n return value === val;\n }\n\n return false;\n },\n\n min(field, value, min = Number.MIN_VALUE)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isNumber(value) ) {\n return value >= min;\n }\n\n return false;\n },\n\n max(field, value, max = Number.MAX_VALUE)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isNumber(value) ) {\n return value <= max;\n }\n\n return false;\n },\n\n minlength(field, value, min = Number.MIN_VALUE)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isString(value) || Mix.isArray(value) ) {\n return value.length > min;\n }\n\n return false;\n },\n\n maxlength(field, value, max = Number.MAX_VALUE)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isString(value) || Mix.isArray(value) ) {\n return value.length < max;\n }\n\n return false;\n },\n\n email(field, value)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isString(value) ) {\n return value.match(/^.*?@.*?\\.[a-z]{2,}$/);\n }\n\n return false;\n }\n\n};","import { Hash, Run, Arr, Obj, Mix, Dom, Locale } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\nimport {FormMessage, FormRules} from \"./form-rules.mjs\";\n\nexport default {\n\n name: 'NForm',\n\n inheritAttrs: false,\n\n model: {\n prop: 'form'\n },\n\n props: {\n\n ready: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\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 type: {\n default()\n {\n return 'primary';\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 Mix.isArray(this.$attrs) ? this.$attrs.class :\n [this.$attrs.class];\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid(), elements: [], rules: [], groups: {}, ruleErrors: {}, blocked: true,\n };\n },\n\n provide()\n {\n return {\n NForm: this\n };\n },\n\n mounted()\n {\n Run.delay(this.ctor('ready'), 500);\n },\n\n ready()\n {\n this.$watch('form', this.emitChange, {\n deep: true\n });\n\n this.resetChange();\n },\n\n methods: {\n\n getGroups()\n {\n return this.groups;\n },\n\n appendGroup(group)\n {\n this.groups[group.uid] = group;\n },\n\n removeGroup(group)\n {\n delete this.groups[group.uid];\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 appendItem(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.validate();\n\n this.prevState = nextState;\n\n this.$emit('change');\n },\n\n validateField(field)\n {\n let errors = [];\n\n Arr.each(field.rules, (rule) => {\n let [name, ...args] = rule.split(':');\n\n if ( ! FormRules[name] || !FormMessage[name] ) {\n return;\n }\n\n let value = Obj.get(this.form, field.prop);\n\n if ( FormRules[name].call(this, field, value, ...args) ) {\n return;\n }\n\n let message = FormMessage[name].call(this, field, value, ...args);\n\n if ( Mix.isEmpty(message) ) {\n return;\n }\n\n errors.push(message);\n });\n\n return errors;\n },\n\n validate()\n {\n let errors = {};\n\n Arr.each(this.elements, (field) => {\n errors[field.prop] = this.validateField(field);\n });\n\n this.ruleErrors = Obj.filter(errors, (err) => {\n return ! Mix.isEmpty(err);\n });\n\n return this.ruleErrors;\n },\n\n isValid(includeErrors = false)\n {\n this.validate();\n\n let count = Mix.keys(this.ruleErrors).length;\n\n if ( includeErrors ) {\n count += Mix.keys(this.errors).length;\n }\n\n return count === 0;\n },\n\n getErrors()\n {\n let errors = {};\n\n Obj.each(this.errors, (err, key) => {\n\n if ( ! Mix.isArray(err) ) {\n err = [err];\n }\n\n errors[key] = err;\n });\n\n Obj.each(this.ruleErrors, (err, key) => {\n\n if ( Obj.has(errors, key) ) {\n err = Arr.merge(errors[key], err);\n }\n\n errors[key] = err;\n });\n\n return errors;\n },\n\n },\n\n render()\n {\n let classList = [\n 'n-form',\n 'n-form--' + this.size,\n 'n-form--' + this.type,\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 { Mix, Arr, Obj, Hash } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormBag',\n\n inject: {\n\n NForm: {\n default: undefined\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid()\n };\n },\n\n\n methods: {\n\n gotoField(field)\n {\n //\n }\n\n },\n\n\n renderField(field)\n {\n let errors = Obj.get(this.NForm.getErrors(),\n field.prop, []);\n\n console.log('err', field.prop, errors)\n\n if ( Mix.isEmpty(errors) ) {\n return null;\n }\n\n let items = Arr.each(errors, (error) => {\n return (<li>{error}</li>);\n });\n\n let itemProps = {\n //\n };\n\n itemProps['onClick'] = () => {\n console.log('click');\n field.gotoInput();\n };\n\n return (\n <div class=\"n-form-bag-item\" {...itemProps}>\n <div class=\"n-form-bag-item__label\">\n <i class=\"n-icon fa fa-location-crosshairs\"></i> <span>{field.label}</span>\n </div>\n <div class=\"n-form-bag-item__errors\">\n <ul>{items}</ul>\n </div>\n </div>\n )\n },\n\n render()\n {\n if ( !this.NForm ) {\n return null;\n }\n\n let classList = [\n 'n-form-bag',\n 'n-form-bag--' + this.NForm.size,\n ];\n\n let items = Arr.each(this.NForm.elements, (field) => {\n return this.ctor('renderField')(field);\n });\n\n return (\n <div class={classList}>\n {items}\n </div>\n );\n }\n}\n","import { Arr, Hash } 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 name: {\n default()\n {\n return Hash.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 grid: {\n default()\n {\n return '';\n },\n type: [String, Number]\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 data()\n {\n return {\n uid: Hash.uuid(), tempValue: this.modelValue, items: []\n };\n },\n\n provide()\n {\n return { NFormGroup: this };\n },\n\n mounted()\n {\n if ( this.NForm ) {\n this.NForm.appendGroup(this);\n }\n },\n\n unmounted()\n {\n if ( this.NForm ) {\n this.NForm.removeGroup(this);\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 getItems()\n {\n return this.items;\n },\n\n appendItem(item)\n {\n this.items[item.uid] = item;\n },\n\n removeItem(item)\n {\n delete this.items[item.uid];\n },\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__header\" onClick={this.toggleGroup}>\n <div class=\"n-form-group__legend\">\n {this.ctor('renderCollapse')()}\n {this.ctor('renderText')()}\n {this.ctor('renderAction')()}\n </div>\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 let classList = [\n 'n-form-group__body'\n ];\n\n if ( this.grid ) {\n classList.push(`n-grid gap-${this.grid}`);\n }\n\n return (\n <div class={classList}>\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.name} class={classList} data-group-key={this.name}>\n { this.ctor('renderLabel')() }\n { this.ctor('renderTooltip')() }\n { this.ctor('renderBody')() }\n </fieldset>\n );\n }\n}\n","import { Arr, Obj, Mix, Dom, Hash, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormItem',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NFormGroup: {\n default: undefined\n },\n\n NTabs: {\n default: undefined\n },\n\n NTabsItem: {\n default: undefined\n },\n\n NCollapse: {\n default: undefined\n },\n\n NCollapseItem: {\n default: undefined\n },\n\n NScrollbar: {\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 rules: {\n default()\n {\n return [];\n },\n type: [Array]\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 data()\n {\n return {\n uid: Hash.uuid()\n };\n },\n\n beforeMount()\n {\n if ( this.NForm ) {\n this.NForm.appendItem(this);\n }\n\n if ( this.NFormGroup ) {\n this.NFormGroup.appendItem(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 if ( this.NFormGroup ) {\n this.NFormGroup.removeItem(this);\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 selector = `[data-form-field=\"${this.uid}\"]`;\n\n if ( this.NTabsItem ) {\n this.NTabsItem.changeTab();\n }\n\n if ( this.NCollapseItem ) {\n this.NCollapseItem.showTab();\n }\n\n if ( this.NScrollbar ) {\n this.NScrollbar.scrollIntoView(selector, 0, 50);\n }\n\n console.log(this.NScrollbar)\n }\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 return (\n <div class=\"n-form-item__label\">\n <label onClick={this.focusInput} data-tooltip-ltr={this.tooltip} data-required={Arr.has(this.rules, 'required')}>\n {this.$slots.label && this.$slots.label() || this.label}\n </label>\n </div>\n );\n },\n\n renderError()\n {\n if ( !this.NForm ) {\n return null;\n }\n\n let errors = Obj.get(this.NForm.getErrors(),\n this.prop, []);\n\n if ( Mix.isEmpty(errors) ) {\n return;\n }\n\n return (\n <div class=\"n-form-item__error\">\n {Arr.first(errors)}\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} data-form-field={this.uid}>\n {this.ctor('renderCondition')()}\n {this.ctor('renderLabel')()}\n {this.ctor('renderInput')()}\n {this.ctor('renderError')()}\n </div>;\n }\n}\n","import { Run, Arr, Mix, 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 multiple: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n data()\n {\n return {\n search: ''\n };\n },\n\n mounted()\n {\n this.$watch('search', () => {\n this.onSearchInput();\n });\n\n this.$nextTick(() => {\n this.onScrollEvent();\n });\n\n this.onMoveEvent();\n },\n\n methods: {\n\n applyStar(id, block = false)\n {\n if ( this.block ) {\n return;\n }\n\n if ( ! Mix.isEmpty(this.timeout) ) {\n clearTimeout(this.timeout);\n }\n\n if ( block ) {\n this.onApplyStar(id, block);\n }\n\n this.timeout = setTimeout(() => {\n this.onApplyStar(id, false);\n }, 500);\n },\n\n onApplyStar(id, block = false)\n {\n this.block = block;\n\n Dom.find(this.$el).find(`[data-menu-key]`).each((el) => {\n Dom.find(el).remClass('is-star');\n });\n\n Dom.find(this.$el).find(`[data-menu-key=\"${id}\"]`)\n .addClass('is-star');\n },\n\n onMoveEvent()\n {\n Dom.find(window).on('mousemove', Run.debounce(e => {\n\n let el = Dom.find(e.target).closest('[data-group-key]');\n\n if ( Mix.isEmpty(el) ) {\n return;\n }\n\n this.applyStar(Dom.find(el).attr('data-group-key'), true);\n\n }, 100));\n },\n\n onScrollEvent()\n {\n Dom.find(this.$el).find('[data-menu-key]').each((el) => {\n Dom.find(el).remClass(['is-visible', 'is-first']);\n });\n\n let options = {\n el: `[data-group-key]`, parent: this.$refs.body.$refs.content\n };\n\n let el = Dom.inviewMaxY(options, (el, index) => {\n\n let selector = `[data-menu-key=\"${el.attr}\"]`;\n\n let classList = [\n 'is-visible'\n ];\n\n if ( index === 0 ) {\n classList.push('is-first');\n }\n\n Dom.find(this.$el).find(selector)\n .addClass(classList);\n\n this.$refs.menu.scrollIntoView(selector)\n });\n\n this.applyStar(Dom.find(el).attr('data-group-key'), false);\n },\n\n onSearchInput()\n {\n let search = Str.lower(this.search);\n\n Dom.find(this.$el).find(`[data-menu-key]`)\n .remClass('on-search');\n\n if ( Mix.isEmpty(search) ) {\n return;\n }\n\n let groups = Arr.filter(this.NForm.groups, (group) => {\n\n let labels = Arr.extract(group.items, 'label')\n .join(\"\\n\");\n\n return Str.lower(group.label + \"\\n\" + labels)\n .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 ( ! Mix.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 ( this.star !== item.key ) {\n this.applyStar(item.key, true);\n }\n\n this.$refs.body.scrollIntoView(selector, 0, 100);\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 ( ! Mix.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'] = () => {\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 ( ! Mix.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, Run } 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 Run.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 lazy: {\n default()\n {\n return true;\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 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={'n-icon ' + 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.keep ) {\n renderBody |= this.init;\n }\n\n if ( ! this.lazy ) {\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 let props = {\n class: classList, style\n }\n\n if ( element !== 'div' ) {\n props.wrapClass = 'n-tabs__wrap';\n }\n\n return h(element, props, this.$slots);\n }\n}\n","import { Arr, Dom, Mix } 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-tags--' + this.size,\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { Arr, Mix, 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 null;\n },\n type: [String]\n },\n\n color: {\n default()\n {\n return null;\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 ( Mix.isEmpty(this.icon) ) {\n return null;\n }\n\n return (\n <i class={'n-icon ' + 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 if ( this.type !== null ) {\n classList.push('n-tags-item--' + this.type);\n }\n\n if ( this.color !== null ) {\n classList.push('n-tags-item--color-' + this.color);\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, Mix } 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 getIndex(tab)\n {\n if ( tab.sort !== -1 ) {\n return 1000 + tab.sort;\n }\n\n return Arr.findIndex(this.elements, {\n name: tab.name\n });\n },\n\n getSorted()\n {\n // Fix for vue constructor prop warning\n let indexies = Arr.each(Mix.keys(this.elements), (key) => {\n return { name: this.elements[key]['name'], index: this.getIndex(this.elements[key]) };\n });\n\n return Arr.sort(indexies, 'index');\n },\n\n addTab(tab)\n {\n Arr.add(this.elements, tab, {\n name: tab.name\n });\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\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, Mix, 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 - 1;\n },\n type: [Number]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n lazy: {\n default()\n {\n return true;\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 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={'n-icon ' + 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 renderHeaderAction()\n {\n if ( ! this.$slots.action ) {\n return null;\n }\n\n return (\n <div class=\"n-collapse__header-action\">\n {this.$slots.action && this.$slots.action()}\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 sorted = this.NCollapse.getSorted();\n\n let classList = [\n 'n-collapse__header'\n ];\n\n if ( Arr.first(sorted)['name'] === this.name ) {\n classList.push('is-first');\n }\n\n if ( Arr.last(sorted)['name'] === this.name ) {\n classList.push('is-last');\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: (Arr.find(sorted, { name: this.name })['index'] * 10) + 1\n };\n\n return (\n <div ref=\"header\" class={classList} {...props}>\n {this.ctor('renderHeaderIcon')()}\n {this.ctor('renderHeaderLabel')()}\n {this.ctor('renderHeaderAction')()}\n {this.ctor('renderHeaderAngle')()}\n </div>\n );\n },\n\n renderBody()\n {\n let sorted = this.NCollapse.getSorted();\n\n let classList = [\n 'n-collapse__body'\n ];\n\n if ( Arr.first(sorted)['name'] === this.name ) {\n classList.push('is-first');\n }\n\n if ( Arr.last(sorted)['name'] === this.name ) {\n classList.push('is-last');\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 ( this.keep ) {\n renderBody = this.init;\n }\n\n if ( ! this.lazy ) {\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: (Arr.find(sorted, { name: this.name })['index'] * 10) + 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 { Mix, Arr, Obj, Dom, Event, Hash } 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 true;\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: Hash.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 ( !Mix.isString(column) ) {\n column = column['prop'];\n }\n\n return Arr.findIndex(this.tempVisibleProps,\n column);\n },\n\n getColumnVisiblity(column)\n {\n if ( !Mix.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 ( !Mix.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Mix.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 ( !Mix.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Mix.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 ( !Mix.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Mix.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 let args = [\n Arr.extract(this.elements, 'prop'), this.tempVisible\n ];\n\n this.tempVisibleProps = Arr.isect(...args);\n\n this.$nextTick(this.$refs.scrollbar.onResize);\n },\n\n sortByColumn(column)\n {\n let prop = column;\n\n if ( !Mix.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Mix.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 Mix.vals(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 <NPopoverGroup>\n {this.trans('Toggle column visiblity')}\n </NPopoverGroup>\n <NCheckboxGroup vModel={this.tempVisible} size=\"sm\" align=\"vertical\">\n {Mix.vals(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 = Arr.each(this.elements, (column) => {\n return column.disabled ? null : column.ctor('renderHead')();\n });\n\n return (\n <div class=\"n-table__header\">\n {defaultRender} {columns}\n </div>\n );\n },\n\n render()\n {\n let except = [\n 'visible', 'filter', 'sortProp', '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-table--md\">\n <NScrollbar ref=\"scrollbar\" wrapClass=\"n-table__wrap\" overflowY={false}>\n {[this.ctor('renderHead')(), draggableHtml]}\n </NScrollbar>\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n },\n\n}","import { Mix, Arr, Obj, Str, Dom, Hash, 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 Hash.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 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 ( Mix.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: Hash.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.fixedWidth ) {\n classList.push('n-fixed');\n }\n\n if ( this.NTable.getColumnFiltered(this) ) {\n classList.push('n-filtered');\n }\n\n let flex = '1 1 auto';\n\n if ( this.width != 0 ) {\n flex = `1 1 ${this.width}`;\n }\n\n if ( this.fixedWidth != 0 ) {\n flex = `0 0 ${this.fixedWidth}px`;\n }\n\n let props = {\n modelValue: this.tempWidth,\n flex: flex,\n minWidth: this.minWidth,\n maxWidth: this.maxWidth,\n disabled: !!this.fixedWidth,\n group: ['n-table', this.NTable.uid],\n };\n\n props['onUpdateWidth'] = (value) => {\n this.tempWidth = value;\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} {...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 ( Mix.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.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 { Str } 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>{ Str.string(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Str } 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>{ Str.boolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Str } 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>{ Str.datetime(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, Mix } 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 ( Mix.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 = ! Mix.isRef(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, Mix } 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 previewProps = {\n fit: 'contain',\n index: this.NDraggableItem.index,\n group: this.column.uid,\n };\n\n previewProps['onSlide'] = () => {\n this.NTable.$refs.draggable.setRawCurrent(this.NDraggableItem.index);\n };\n\n return (\n <div class={classList}>\n <NPreview file={this.preview || this.input} thumb={this.input} {...previewProps} />\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Num, Mix, Obj, Arr, Hash } 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 = Mix.int(item[this.column.matrixProp]);\n\n let matrix = Arr.toggle(Num.matrix(currentMatrix),\n Mix.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 = Mix.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 ( ! Mix.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, Mix, 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 ( Mix.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 ( ! Mix.isEmpty(this.column.modelValue) ) {\n return true;\n }\n\n if ( Mix.isFunction(this.column.matrixDisabled) ) {\n return this.column.matrixDisabled(this);\n }\n\n if ( ! Mix.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, Mix, Dom, Event, Hash} 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 ! Mix.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 ( Mix.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 closeMixway = event.which === 13 &&\n this.NTable.closeFilterOnEnter;\n\n if ( closeMixway || 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 glass: 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: 'neutral',\n glass: 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: 'md',\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, Mix, 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 { Mix } 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} />\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, Mix, 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 ( Mix.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, Mix } 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, (i) => i+1);\n }\n\n },\n\n data()\n {\n return {\n tempPage: this.page, tempLimit: this.limit,\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 lazy: true,\n options: this.pageOptions,\n optionsValue: '$value',\n optionsLabel: '$value',\n };\n\n props['onUpdate:modelValue'] = this.onPageInput;\n\n return (\n <div class=\"n-paginator__goto\" key={'paginate' + this.pageOptions.length}>\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 ( Mix.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, Mix, Obj, Event, Hash, Run } 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: Hash.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 Run.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 ( Mix.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 ( Mix.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 {Mix.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 { Hash, 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: Hash.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 { Str } 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>{ Str.string(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Str } 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>{ Str.boolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import { Str } 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>{ Str.datetime(this.input, this.column.datetimeFormat, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Mix } 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 ( Mix.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 = ! Mix.isRef(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 { Hash, Obj, Arr, Mix, Event, Locale } from \"@kizmann/pico-js\";\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 title: {\n default()\n {\n return null;\n },\n type: [String]\n },\n\n index: {\n default()\n {\n return 0;\n },\n type: [Number, String]\n },\n\n group: {\n default()\n {\n return Hash.uuid();\n },\n type: [String]\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 type: [String]\n },\n\n preview: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showSrc: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n buttonText: {\n default()\n {\n return Locale.trans('Download file');\n },\n type: [String]\n },\n\n renderButton: {\n default()\n {\n return true;\n },\n type: [Boolean]\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 },\n\n provide()\n {\n return { NPreview: this };\n },\n\n methods: {\n\n openBox()\n {\n this.$refs.modal.openBox();\n },\n\n closeBox()\n {\n this.$refs.modal.closeBox();\n },\n\n },\n\n renderTitle()\n {\n if ( Mix.isEmpty(this.title) ) {\n return null;\n }\n\n return (\n <div class=\"n-preview__title\">\n <span>{this.title}</span>\n </div>\n );\n },\n\n renderPreview()\n {\n if ( ! this.preview ) {\n return this.ctor('renderFull')();\n }\n\n let type = this.PreviewHelper.getType(this.tempThumb);\n\n if ( type === 'image' ) {\n return (<NPreviewImage src={this.tempThumb} />);\n }\n\n let props = {\n showSrc: false, renderButton: false,\n };\n\n return (<NPreviewPlain src={this.tempThumb} {...props} />);\n },\n\n renderFull()\n {\n let type = this.PreviewHelper.getType(this.tempFile);\n\n if ( type === 'image' ) {\n return (<NPreviewImage src={this.tempFile} />);\n }\n\n if ( type === 'video' ) {\n return (<NPreviewVideo src={this.tempFile} />);\n }\n\n let props = {\n showSrc: this.showSrc, buttonText: this.buttonText, renderButton: this.renderButton\n };\n\n return (<NPreviewPlain src={this.tempFile} {...props} />);\n },\n\n renderModal()\n {\n if ( ! this.preview ) {\n return null;\n }\n\n let modalProps = {\n index: this.index, group: this.group, file: this.tempFile\n };\n\n return (\n <NPreviewModal ref=\"modal\" {...modalProps} />\n );\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 let type = this.PreviewHelper.getType(this.tempFile);\n\n if ( type ) {\n classList.push('n-mime-' + type);\n }\n\n let thumb = this.PreviewHelper.getType(this.tempThumb);\n\n if ( thumb ) {\n classList.push('n-mime-preview-' + thumb);\n }\n\n let props = {};\n\n if ( this.preview ) {\n props.onClick = () => this.openBox();\n }\n\n let key = btoa(this.tempThumb);\n\n return (\n <div key={key} class={classList} {...props}>\n { [this.ctor('renderPreview')(), this.ctor('renderTitle')(), this.ctor('renderModal')()] }\n </div>\n );\n }\n\n}","import { Mix, 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 showSrc: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n buttonText: {\n default()\n {\n return Locale.trans('Download file');\n },\n type: [String]\n },\n\n renderButton: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n file() {\n return Obj.get(this.src, 'name', this.src);\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.PreviewHelper.getMime(this.file) }</li>\n );\n\n if ( this.showSrc ) {\n slots.push(<li class=\"np-file\">{ this.file }</li>);\n }\n\n let buttonProps = {\n nativeType: 'a', href: this.file, target: '_blank'\n };\n\n let buttonHtml = (\n <li class=\"np-button\">\n <NButton {...buttonProps}>{ this.buttonText }</NButton>\n </li>\n );\n\n if ( this.renderButton ) {\n slots.push(buttonHtml);\n }\n\n return (\n <div class={classList}>\n <ul>{ slots }</ul>\n </div>\n );\n }\n\n}","import { Obj, Arr, Run, Mix, 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 ( Mix.isRef(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 Run.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, Mix, Dom } from \"@kizmann/pico-js\";\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 ( Mix.isRef(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 = this.PreviewHelper.getYoutubeKey(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 = this.PreviewHelper.getVimeoKey(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 return (\n <video width=\"320\" height=\"240\" controls>\n <source src={this.tempSrc || this.src} type={this.PreviewHelper.getMime(src)} />\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 { Mix, Event, Obj, Hash } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewModal',\n\n inject: {\n\n NPreview: {\n default: undefined\n }\n\n },\n\n props: {\n\n file: {\n default()\n {\n return null;\n }\n },\n\n index: {\n default()\n {\n return 0;\n },\n type: [Number, String]\n },\n\n group: {\n default()\n {\n return Hash.uuid();\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return { uid: Hash.uuid(), visible: false };\n },\n\n computed: {\n\n tempFile() {\n return Obj.get(this.file, 'name', this.file);\n }\n\n },\n\n watch: {\n\n visible: function (value) {\n if ( value ) {\n this.NPreview.$emit('slide');\n }\n }\n\n },\n\n mounted()\n {\n this.PreviewHandler.create()\n .append(this.$el);\n\n this.PreviewHandler.append(this);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n\n this.PreviewHandler.remove(this);\n },\n\n methods: {\n\n openBox()\n {\n this.PreviewHandler.open(this);\n },\n\n closeBox()\n {\n this.PreviewHandler.close();\n }\n\n },\n\n renderFull()\n {\n let classList = [\n 'n-preview-frame'\n ];\n\n let mime = this.PreviewHelper.getType(this.tempFile);\n\n if ( mime === 'image' ) {\n return (<NPreviewImage class={classList} src={this.file} />);\n }\n\n if ( mime === 'video' ) {\n return (<NPreviewVideo class={classList} src={this.file} />);\n }\n\n let props = {\n showSrc: this.NPreview ? this.NPreview.showSrc : false,\n };\n\n return (<NPreviewPlain class={classList} src={this.file} {...props} />);\n },\n\n render()\n {\n if ( ! this.visible ) {\n return null;\n }\n\n return this.ctor('renderFull')();\n },\n\n}","import { Mix, Arr, Dom, Obj } from \"@kizmann/pico-js\";\n\nexport class PreviewHelper\n{\n static alias = 'PreviewHelper';\n\n static getExt(source, fallback = 'plain')\n {\n let match = source.match(/\\.([^.?]+)(\\?.*?)?$/);\n\n if ( ! match ) {\n return fallback;\n }\n\n if ( Mix.isEmpty(match[1]) ) {\n return fallback;\n }\n\n return match[1];\n }\n\n static getType(source, fallback = 'text')\n {\n let file = Obj.get(source, 'name', source);\n\n if ( Mix.isEmpty(file) ) {\n return fallback;\n }\n\n let extension = PreviewHelper.getExt(file);\n\n if ( PreviewHelper.getYoutubeKey(file) ) {\n return 'video';\n }\n\n if ( PreviewHelper.getVimeoKey(file) ) {\n return 'video';\n }\n\n Obj.each(window.PreviewMimes, (exts, key) => {\n if ( Arr.has(exts, extension) ) fallback = key;\n });\n\n return fallback;\n }\n\n static getMime(source, fallback = 'text/plain')\n {\n let file = Obj.get(source, 'name', source);\n\n if ( Mix.isEmpty(file) ) {\n return fallback;\n }\n\n if ( PreviewHelper.getYoutubeKey(source) ) {\n return 'video/youtube';\n }\n\n if ( PreviewHelper.getVimeoKey(source) ) {\n return 'video/vimeo';\n }\n\n return PreviewHelper.getType(file) + '/' + PreviewHelper.getExt(file);\n }\n\n static getVimeoKey(source, fallback = null)\n {\n if ( ! Mix.isString(source) ) {\n return fallback;\n }\n\n let host = source.match(/^https?:\\/\\/(www\\.|player\\.)?vimeo\\.com/);\n\n if ( ! host ) {\n return fallback;\n }\n\n let path = source.match(/(\\/[0-9]+)(&|$)/);\n\n if ( path && path.length === 3 ) {\n return path[0].replace(/(^\\/|&$)/, '');\n }\n\n return fallback;\n }\n\n static getYoutubeKey(source, fallback)\n {\n if ( ! Mix.isString(source) ) {\n return fallback;\n }\n\n let host = source.match(/^https?:\\/\\/(www\\.)?(youtube\\.com|youtu\\.be)/);\n\n if ( ! host ) {\n return fallback;\n }\n\n let id = source.match(/(\\?v=.*?)(?=&|$)/);\n\n if ( id && id.length === 2 ) {\n return id[0].replace(/^\\?v=/, '');\n }\n\n let path = source.match(/(\\.be\\/.*?)(?=\\?|$)/);\n\n if ( path && path.length === 2 ) {\n return path[0].replace(/^\\.be\\//, '');\n }\n\n let frame = source.match(/(\\/embed\\/)(.*?$)/);\n\n if ( frame && frame.length === 3 ) {\n return frame[0].replace(/^\\/embed\\//, '');\n }\n\n return fallback;\n }\n\n}\n\nif ( ! window[PreviewHelper.alias] ) {\n window[PreviewHelper.alias] = PreviewHelper;\n}\n\nexport default PreviewHelper;","import { Mix, Arr, Obj, Dom } from \"@kizmann/pico-js\";\n\nwindow.PreviewGroups = {};\n\nexport class PreviewHandler\n{\n static alias = 'PreviewHandler';\n\n static current = null;\n\n static append(item)\n {\n if ( !window.PreviewGroups[item.group] ) {\n window.PreviewGroups[item.group] = {};\n }\n\n window.PreviewGroups[item.group][item.uid] = item;\n }\n\n static remove(item)\n {\n delete window.PreviewGroups[item.group][item.uid];\n }\n\n static get(group)\n {\n if ( !window.PreviewGroups[group] ) {\n window.PreviewGroups[group] = {};\n }\n\n return Arr.sort(window.PreviewGroups[group], 'index');\n }\n\n static next()\n {\n if ( ! Mix.isRef(this.current) ) {\n return null;\n }\n\n let items = this.get(this.current.group);\n\n let index = Arr.findIndex(items, {\n uid: this.current.uid\n });\n\n let next = Arr.first(items);\n\n if ( items.length > index + 1 ) {\n next = Arr.get(items, index + 1);\n }\n\n return this.switch(next);\n }\n\n static prev()\n {\n if ( ! Mix.isRef(this.current) ) {\n return null;\n }\n\n let items = this.get(this.current.group);\n\n let index = Arr.findIndex(items, {\n uid: this.current.uid\n });\n\n let prev = Arr.last(items);\n\n if ( 0 <= index - 1 ) {\n prev = Arr.get(items, index - 1);\n }\n\n return this.switch(prev);\n }\n\n static create()\n {\n let el = Dom.find('.n-preview-modal');\n\n if ( el.length() ) {\n return el;\n }\n\n let classList = [\n 'n-preview-modal',\n 'n-preview-modal--md',\n 'n-preview-modal--primary',\n 'n-theme--dark'\n ];\n\n el = Dom.make('div', {\n classList: classList.join(' ')\n });\n\n el.attr('data-preview', 'nano');\n\n let close = Dom.make('div', {\n classList: 'n-preview-modal__close',\n innerHTML: `<i class=\"${nano.Icons.times}\"></i>`\n });\n\n close.on('click', () => {\n this.close()\n });\n\n close.appendTo(el);\n\n let prev = Dom.make('div', {\n classList: 'n-preview-modal__prev',\n innerHTML: `<i class=\"${nano.Icons.angleLeft}\"></i>`\n });\n\n prev.on('click', () => {\n this.prev()\n });\n\n prev.appendTo(el);\n\n let next = Dom.make('div', {\n classList: 'n-preview-modal__next',\n innerHTML: `<i class=\"${nano.Icons.angleRight}\"></i>`\n });\n\n next.on('click', () => {\n this.next()\n });\n\n next.appendTo(el);\n\n el.appendTo(document.body);\n\n return el;\n }\n\n static open(item)\n {\n let el = this.create();\n\n let keydownFn = (e) => {\n\n if ( e.keyCode === 27 ) {\n e.stopPropagation();\n return this.close();\n }\n\n if ( e.keyCode === 37 ) {\n e.stopPropagation();\n return this.prev();\n }\n\n if ( e.keyCode === 39 ) {\n e.stopPropagation();\n return this.next();\n }\n\n }\n\n Dom.find(window).on('keydown', keydownFn, {\n uid: 'n-preview-modal'\n });\n\n this.switch(item);\n\n if ( this.get(item.group).length > 1 ) {\n el.addClass('n-multi');\n }\n\n el.addClass('n-ready');\n }\n\n static close()\n {\n let el = this.create();\n\n Dom.find(window).off('keydown', null, {\n uid: 'n-preview-modal'\n });\n\n this.switch(null);\n\n el.remClass(['n-ready', 'n-multi']);\n }\n\n static switch(item)\n {\n if ( Mix.isRef(this.current) ) {\n Obj.set(this.current, 'visible', false);\n }\n\n this.current = item;\n\n if ( Mix.isRef(this.current) ) {\n Obj.set(this.current, 'visible', true);\n }\n\n return item;\n }\n\n}\n\nif ( ! window.PreviewHandler ) {\n window.PreviewHandler = PreviewHandler;\n}\n\nexport default PreviewHandler;","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\";\nimport PreviewModal from \"./src/preview-modal/preview-modal.jsx\";\n\nimport PreviewHelper from \"./src/preview/preview-helper.mjs\";\nimport PreviewHandler from \"./src/preview/preview-handler.mjs\";\n\nwindow.DefaultPreviewMimes = {\n image: [\n 'jpg', 'jpeg', 'gif', 'svg', 'png', 'bmp'\n ],\n video: [\n 'mp4', 'webm', 'mov'\n ],\n audio: [\n 'mp3', 'aac',\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 function (App) {\n\n if ( ! window.PreviewMimes ) {\n window.PreviewMimes = pi.Obj.assign(window.DefaultPreviewMimes, window.PreviewMimes);\n }\n\n let directives = [\n PreviewHelper, PreviewHandler\n ];\n\n pi.Arr.each(directives, (glob) => {\n App.config.globalProperties[glob.alias] = glob;\n });\n\n let components = [\n Preview, PreviewModal, PreviewPlain, PreviewImage, PreviewVideo\n ];\n\n pi.Arr.each(components, (comp) => {\n App.component(comp.name, comp);\n });\n\n}\n\n","import { Arr, Map, Run } 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 Run.delay(() => this.tempMap.focusMarkers(), 100);\n },\n\n lng()\n {\n Run.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 { Hash, Obj, Num, Mix, Run } 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: Hash.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 ( ! Mix.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 Run.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, Mix, 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 glass: {\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 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 ( Mix.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 && !Mix.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 glass: this.glass,\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 { Str, 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, String]\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: Str.number(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 { Run, Arr, Obj, Mix, Dom, Locale } from \"@kizmann/pico-js\";\n\nwindow.NDrawerStack = [];\n\nexport default {\n\n name: 'NDrawer',\n\n inject: {\n\n NDrawer: {\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 theme: {\n default()\n {\n return 'auto';\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 .prev().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 Run.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).remClass('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).style({\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 let classList = [\n 'n-drawer__backdrop',\n ];\n\n return (\n <div ref=\"backdrop\" class={classList}></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.position\n ];\n\n if ( this.theme ) {\n classList.push('n-theme--' + this.theme);\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, Mix, Hash, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NChartItem',\n\n inject: {\n NChart: {\n default: undefined\n }\n },\n\n props: {\n\n value: {\n default()\n {\n return 1;\n },\n type: [String, Number]\n },\n\n axis: {\n default()\n {\n return Locale.trans('Items');\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return Locale.trans('Items');\n },\n type: [String, Number]\n },\n\n type: {\n default()\n {\n return null;\n },\n type: [String]\n },\n\n color: {\n default()\n {\n return null;\n }\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid()\n };\n },\n\n beforeMount()\n {\n if ( this.NChart ) {\n this.NChart.appendElement(this);\n }\n },\n\n beforeUnmount()\n {\n if ( this.NChart ) {\n this.NChart.removeElement(this);\n }\n },\n\n methods: {\n\n getClass(index, className = 'n-chart-item')\n {\n if ( ! Mix.isEmpty(this.type) ) {\n return className + '--' + this.type;\n }\n\n return className + '--color-' + this.getColor(index);\n },\n\n getColor(index)\n {\n if ( this.color !== 'auto' ) {\n return this.color;\n }\n\n let color = this.NChart.color + index;\n\n let subdivide = Math.floor(color /\n this.NChart.colorLimit);\n\n return color - (this.NChart.colorLimit *\n subdivide);\n }\n\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Arr, Num, Mix, Dom, Hash, Locale, Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NChartDonut',\n\n provide()\n {\n return {\n NChart: this\n };\n },\n\n props: {\n\n sort: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n width: {\n default()\n {\n return 6;\n },\n type: [Number]\n },\n\n color: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n colorLimit: {\n default()\n {\n return 19;\n },\n type: [Number]\n },\n\n label: {\n default()\n {\n return Locale.trans('Total count');\n },\n type: [String]\n },\n\n otherLabel: {\n default()\n {\n return Locale.trans('Other count');\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n overlap: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n limit: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n renderLegend: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n total()\n {\n let count = Arr.each(this.elements, (item) => {\n return Num.float(item.value);\n });\n\n return Num.combine(count);\n },\n\n fixed()\n {\n let count = Arr.each(this.elements, (item) => {\n return Num.float(item.value);\n });\n\n return Num.combine(count);\n }\n\n },\n\n data()\n {\n let attrs = {\n 'cx': '65', 'cy': '65', 'r': '57.2958'\n };\n\n return {\n attrs, elements: []\n };\n },\n\n beforeMount()\n {\n this.vis = this.hid = [];\n },\n\n methods: {\n\n appendElement(element)\n {\n this.index = - 1;\n\n Arr.add(this.elements, element, {\n uid: element.uid\n });\n },\n\n removeElement(checkbox)\n {\n this.index = - 1;\n\n Arr.remove(this.elements, {\n uid: checkbox.uid\n });\n },\n\n onMouseenter(item)\n {\n Dom.find(this.$refs.text).style({\n '--n-chart-label': `'${item.label}'`,\n '--n-chart-value': Num.int(item.value)\n });\n },\n\n onMouseleave(item)\n {\n Dom.find(this.$refs.text).style(null);\n }\n\n },\n\n renderCircle(item, index)\n {\n let gaps = (this.vis.length) * (this.width * 2);\n\n if ( ! Mix.isEmpty(this.hid) ) {\n gaps = (this.vis.length + 1) * (this.width * 2);\n }\n\n let [distance] = [\n ((360 - gaps) * Num.float(item.value) / this.total) + (this.width * 2),\n ];\n\n\n let offset = (this.last * - 1);\n\n if ( !this.overlap ) {\n offset = Math.min(offset - (this.width * 0.5), 0);\n }\n\n let dashar = distance;\n\n if ( !this.overlap ) {\n dashar = Math.max(dashar - (this.width * 1.5), 0);\n }\n\n let classBlock = [\n 'n-chart-item', item.getClass(index),\n ];\n\n let classHover = [\n 'n-chart-hover'\n ];\n\n let propsBlock = {\n 'stroke-dashoffset': Num.fixed(offset, 4),\n 'stroke-dasharray': Num.fixed(dashar, 4) + ' 360'\n };\n\n let propsHover = propsBlock;\n\n propsHover['onmouseenter'] = () => {\n this.onMouseenter(item);\n };\n\n propsHover['onmouseleave'] = () => {\n this.onMouseleave(item);\n };\n\n this.last = distance + this.last;\n\n return (\n <g class=\"n-chart-group\">\n <circle class={classHover} {...propsHover} {...this.attrs}></circle>\n <circle class={classBlock} {...propsBlock} {...this.attrs}></circle>\n </g>\n );\n },\n\n renderOtherCircle(others, items)\n {\n if ( Mix.isEmpty(others) ) {\n return null;\n }\n\n let count = Arr.each(others, (item) => {\n return Num.float(item.value);\n });\n\n let item = {\n label: this.otherLabel, value: Num.combine(count)\n };\n\n item['getClass'] = () => {\n return 'n-chart-item--other';\n };\n\n return this.ctor('renderCircle')(item, items.length, items);\n },\n\n renderSvg()\n {\n this.last = 0;\n\n let [elements, sorted] = [\n Arr.clone(this.elements), Arr.sort(this.elements, 'value').reverse()\n ];\n\n if ( this.sort ) {\n elements = Arr.clone(sorted);\n }\n\n let temp = Arr.splice(sorted, 0, this.limit || elements.length);\n\n let visible = Arr.filter(elements, (el) => {\n return !! Arr.find(temp, { uid: el.uid});\n });\n\n let hidden = Arr.filter(elements, (el) => {\n return ! Arr.find(temp, { uid: el.uid});\n });\n\n [this.vis, this.hid] = [\n visible, hidden\n ];\n\n let items = Arr.each(visible, (item, index) => {\n return this.ctor('renderCircle')(item, index);\n });\n\n let baseHtml = (\n <circle class=\"n-chart-donut__base\" {...this.attrs}></circle>\n );\n\n let othersHtml = this.ctor('renderOtherCircle')(...[\n hidden, visible\n ]);\n\n return (\n <svg width=\"600\" height=\"600\" viewBox=\"0 0 130 130\">\n {[baseHtml, ...items, othersHtml]}\n </svg>\n );\n },\n\n renderText()\n {\n return (\n <div ref=\"text\" class=\"n-chart-donut__text\">\n <span></span><span></span>\n </div>\n );\n },\n\n renderDonut()\n {\n return (\n <div class=\"n-chart-donut__chart\">\n {[this.ctor('renderSvg')(), this.ctor('renderText')()]}\n </div>\n )\n },\n\n renderLegendOther(hidden, visible)\n {\n if ( Mix.isEmpty(hidden) ) {\n return null;\n }\n\n let count = Arr.each(hidden, (item) => {\n return Num.float(item.value);\n });\n\n let item = {\n label: this.otherLabel, value: Num.combine(count)\n };\n\n item['getClass'] = () => {\n return 'n-chart-legend--other';\n };\n\n return this.ctor('renderLegendItem')(item, visible.length);\n },\n\n renderLegendItem(item, index)\n {\n let classList = [\n 'n-chart-legend',\n item.getClass(index, 'n-chart-legend')\n ];\n\n return (\n <div class={classList}>\n <span>{item.label}</span>\n <span>{item.value}</span>\n </div>\n );\n },\n\n renderLegend()\n {\n if ( ! this.renderLegend ) {\n return null;\n }\n\n let items = Arr.each(this.vis, (item, index) => {\n return this.ctor('renderLegendItem')(item, index);\n });\n\n let othersHtml = this.ctor('renderLegendOther')(...[\n this.hid, this.vis\n ]);\n\n return (\n <div class=\"n-chart-donut__legend\">\n {[...items, othersHtml]}\n </div>\n )\n },\n\n render()\n {\n let classList = [\n 'n-chart-donut',\n 'n-chart-donut--' + this.size,\n ];\n\n if ( this.overlap ) {\n classList.push('n-chart-donut--overlap');\n }\n\n let style = {\n '--n-chart-label': `'${this.label}'`,\n '--n-chart-value': Num.int(this.total),\n '--n-stroke-width': Num.int(this.width),\n '--n-stroke-hover-width': Num.int(this.width * 1.2)\n };\n\n let bodyHtml = [\n this.ctor('renderDonut')(),\n this.ctor('renderLegend')(),\n ];\n\n if ( this.$slots.default ) {\n bodyHtml.push(this.$slots.default());\n }\n\n return (\n <div class={classList} style={style}>\n {bodyHtml}\n </div>\n );\n }\n\n}\n","import { Arr, Mix, Num, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NChartBar',\n\n provide()\n {\n return {\n NChart: this\n };\n },\n\n props: {\n\n sort: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n color: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n colorLimit: {\n default()\n {\n return 19;\n },\n type: [Number]\n },\n\n label: {\n default()\n {\n return Locale.trans('Total');\n },\n type: [String]\n },\n\n otherLabel: {\n default()\n {\n return Locale.trans('Other');\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n limit: {\n default()\n {\n return 4;\n },\n type: [Number]\n },\n\n minHeight: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n renderLegend: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n total()\n {\n let count = Arr.each(this.elements, (item) => {\n return Num.float(item.value);\n });\n\n return Num.combine(count);\n },\n\n min()\n {\n let min = Number.MAX_VALUE;\n\n Arr.each(this.elements, (item) => {\n min = Math.min(min, Num.float(item.value));\n });\n\n return Num.float(min);\n },\n\n max()\n {\n let max = Number.MIN_VALUE;\n\n Arr.each(this.elements, (item) => {\n max = Math.max(max, Num.float(item.value));\n });\n\n return Num.float(max);\n }\n\n },\n\n data()\n {\n return {\n elements: []\n };\n },\n\n methods: {\n\n appendElement(element)\n {\n this.index = -1;\n\n Arr.add(this.elements, element, {\n uid: element.uid\n });\n },\n\n removeElement(checkbox)\n {\n this.index = -1;\n\n Arr.remove(this.elements, {\n uid: checkbox.uid\n });\n },\n\n },\n\n renderBarItem(item, index)\n {\n let classList = [\n 'n-chart-item', item.getClass(index),\n ];\n\n let height = ((100 - this.minHeight) / this.max * item.value) + this.minHeight;\n\n let style = {\n '--n-chart-height': Num.int(height) + '%'\n };\n\n let html = [];\n\n html.push(\n <div class=\"n-chart-bar__bar\">\n {/* Chart bar */}\n </div>\n );\n\n html.push(\n <div class=\"n-chart-bar__dot\">\n {/* Chart dor */}\n </div>\n );\n\n html.push(\n <div class=\"n-chart-bar__value\">\n <span>{item.axis}</span>\n <span>{item.value}</span>\n </div>\n );\n\n return (\n <div class={classList} style={style}>\n {html}\n </div>\n );\n },\n\n renderBarOther(hidden, visible)\n {\n if ( Mix.isEmpty(hidden) ) {\n return null;\n }\n\n let count = Arr.each(hidden, (item) => {\n return Num.float(item.value);\n });\n\n let item = {\n axis: this.otherLabel, value: Num.combine(count)\n };\n\n item['getClass'] = () => {\n return 'n-chart-item--other';\n };\n\n return this.ctor('renderBarItem')(item, visible.length);\n },\n\n renderBars()\n {\n let [elements, sorted] = [\n Arr.clone(this.elements), Arr.sort(this.elements, 'value').reverse()\n ];\n\n if ( this.sort ) {\n elements = Arr.clone(sorted);\n }\n\n let temp = Arr.splice(sorted, 0, this.limit || elements.length);\n\n let visible = Arr.filter(elements, (el) => {\n return !! Arr.find(temp, { uid: el.uid});\n });\n\n let hidden = Arr.filter(elements, (el) => {\n return ! Arr.find(temp, { uid: el.uid});\n });\n\n [this.vis, this.hid] = [\n visible, hidden\n ];\n\n let items = Arr.each(visible, (item, index) => {\n return this.ctor('renderBarItem')(item, index);\n });\n\n let othersHtml = this.ctor('renderBarOther')(...[\n this.hid, this.vis\n ]);\n\n return (\n <div class=\"n-chart-bar__bars\">\n {[...items, othersHtml]}\n </div>\n );\n },\n\n renderAxis()\n {\n return (\n <div class=\"n-chart-bar__axis\">\n <span>{this.max}</span>\n <span>{this.min}</span>\n </div>\n );\n },\n\n renderLegendOther(hidden, visible)\n {\n if ( Mix.isEmpty(hidden) ) {\n return null;\n }\n\n let count = Arr.each(hidden, (item) => {\n return Num.float(item.value);\n });\n\n let item = {\n axis: this.otherLabel, value: Num.combine(count)\n };\n\n item['getClass'] = () => {\n return 'n-chart-legend--other';\n };\n\n return this.ctor('renderLegendItem')(item, visible.length);\n },\n\n renderLegendItem(item, index)\n {\n let classList = [\n 'n-chart-legend',\n item.getClass(index, 'n-chart-legend')\n ];\n\n return (\n <div class={classList}>\n <span>{item.axis}</span>\n <span>{item.value}</span>\n </div>\n );\n },\n\n renderLegend()\n {\n if ( ! this.renderLegend ) {\n return null;\n }\n\n let items = Arr.each(this.vis, (item, index) => {\n return this.ctor('renderLegendItem')(item, index);\n });\n\n let othersHtml = this.ctor('renderLegendOther')(...[\n this.hid, this.vis\n ]);\n\n return (\n <div class=\"n-chart-bar__legend\">\n {[...items, othersHtml]}\n </div>\n )\n },\n\n render()\n {\n let classList = [\n 'n-chart-bar',\n 'n-chart-bar--' + this.size,\n ];\n\n let bodyHtml = [\n this.ctor('renderBars')(),\n this.ctor('renderLegend')(),\n ];\n\n if ( this.$slots.default ) {\n bodyHtml.push(this.$slots.default());\n }\n\n return (\n <div class={classList}>\n {bodyHtml}\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\";\nimport Chart from \"./chart/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 Chart\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 secondary: '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","import AlertHandler from \"./src/alert/alert-handler.mjs\";\n\nexport default function (App) {\n\n window.AlertIcons = pi.Obj.assign(window.nano.Icons,\n window.AlertIcons || {});\n\n let directives = [\n AlertHandler\n ];\n\n pi.Arr.each(directives, (glob) => {\n App.config.globalProperties[glob.alias] = window[glob.alias] = glob;\n });\n\n}\n","import NotificationElement from \"./src/notification/notification-element.mjs\";\nimport NotificationHandler from \"./src/notification/notification-handler.mjs\";\n\nexport default function (App) {\n\n const NotifcationIcons = {\n primary: window.nano.Icons.info,\n secondary: window.nano.Icons.info,\n success: window.nano.Icons.success,\n warning: window.nano.Icons.warning,\n danger: window.nano.Icons.danger,\n info: window.nano.Icons.info\n };\n\n window.NotifcationIcons = pi.Obj.assign(NotifcationIcons,\n window.NotifcationIcons || {});\n\n let directives = [\n NotificationElement, NotificationHandler\n ];\n\n pi.Arr.each(directives, (glob) => {\n App.config.globalProperties[glob.alias] = window[glob.alias] = glob;\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\";\n// import NBuilder from \"./src/builder/builder.jsx\";\n// import NRefrencePanel from \"./src/reference-panel/reference-panel.jsx\";\n// import 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\";\nimport ResizerNext from \"./src/resizer/resizer-next.jsx\";\n\nexport default function (App) {\n // App.component(Resizer.name, Resizer);\n App.component(ResizerNext.name, ResizerNext);\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\nimport PopoverElement from \"./src/popover/popover-element.mjs\";\nimport PopoverHandler from \"./src/popover/popover-handler.mjs\";\nimport PopoverHelper from \"./src/popover/popover-helper.mjs\";\n\nexport default function (App) {\n\n let directives = [\n PopoverElement, PopoverHandler, PopoverHelper\n ];\n\n pi.Arr.each(directives, (glob) => {\n App.config.globalProperties[glob.alias] = window[glob.alias] = glob;\n });\n\n let components = [\n Popover, PopoverGroup, PopoverOption\n ];\n\n pi.Arr.each(components, (comp) => {\n App.component(comp.name, comp);\n });\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\";\nimport ConfirmHandler from \"./src/confirm/confirm-handler.mjs\";\n\nexport default function (App) {\n\n let ConfirmIcons = {\n primary: window.nano.Icons.info,\n secondary: window.nano.Icons.info,\n success: window.nano.Icons.success,\n warning: window.nano.Icons.warning,\n danger: window.nano.Icons.danger,\n info: window.nano.Icons.info\n };\n\n window.ConfirmIcons = pi.Obj.assign(ConfirmIcons,\n window.ConfirmIcons || {});\n\n let directives = [\n ConfirmHandler\n ];\n\n pi.Arr.each(directives, (glob) => {\n App.config.globalProperties[glob.alias] = window[glob.alias] = glob;\n });\n\n App.component(Confirm.name, Confirm);\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 FormBag from \"./src/form-bag/form-bag.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(FormBag.name, FormBag);\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 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","import ChartItem from \"./src/chart-item/chart-item.jsx\";\nimport ChartDonut from \"./src/chart-donut/chart-donut.jsx\";\nimport ChartBar from \"./src/chart-bar/chart-bar.jsx\";\n\nexport default function (App) {\n App.component(ChartItem.name, ChartItem);\n App.component(ChartDonut.name, ChartDonut);\n App.component(ChartBar.name, ChartBar);\n}"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__55__","__WEBPACK_EXTERNAL_MODULE__122__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","ctor","_this","fallback","arguments","length","Obj","this","$options","split","_len","args","Array","_key","apply","cmer","classList","attrsList","Mix","isString","isArray","Arr","each","isObj","assign","$attrs","cslo","slot","props","$slots","findIndex","type","Comment","AlertHandler","options","_classCallCheck","_defineProperty","text","size","uid","Hash","uuid","unbindEvents","modal","remove","Dom","find","document","body","style","el","icon","window","AlertIcons","make","innerHTML","concat","appendTo","on","e","keyCode","stopPropagation","close","target","inside","Run","delay","addClass","off","_this2","cls","push","merge","join","frame","renderIcon","renderText","requestAnimationFrame","bindEvents","render","NotificationElement","duration","setTimeout","iconClass","NotifcationIcons","alias","NotificationBag","NotificationHandler","_NotificationHandler$","create","wrapper","element","append","_len2","_key2","_construct","empty","nano","Settings","notifySize","notifyPosition","name","String","disabled","Boolean","inline","_createVNode","modelValue","config","scope","data","tempValue","methods","solveAwait","isEmpty","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","trans","propAwait","result","state","getState","propExists","exists","solveInput","sources","$scope","$model","$extra","$global","toPropKey","splits","Str","ucfirst","lcfirst","toEventKey","cb","solveContext","_this3","console","error","getProp","getInput","isNull","setInput","renderSetup","_this4","defaultsBind","binds","events","updateKey","default","renderSlot","callback","_this5","_this6","inject","NScrollbar","provide","overflowY","overflowX","offsetY","Number","offsetX","framerate","wrapClass","computed","touch","navigator","msMaxTouchPoints","mousedown","mousemove","mouseup","init","native","height","width","beforeMount","outer","hasHtrack","hasVtrack","adaptScrollBehavior","mounted","observer","ResizeObserver","getWrapperSizeDebounced","observe","$el","Event","bind","_","passive","onScroll","getWrapperSize","beforeUnmount","disconnect","unbind","rect","getBoundingClientRect","now","Math","round","isEqual","clearInterval","interval","spacer","actual","_ref","remClass","clientWidth","clientHeight","rainbow","_ref2","styles","adaptScrollHeight","adaptScrollWidth","_ref3","frameWidth","frameHeight","$emit","scrollTo","x","y","onScrollTo","scrollTop","scrollLeft","scrollIntoView","selector","padding","onScrollIntoView","outerHeight","offsetTop","outerWidth","offsetLeft","$dom","offsetWidth","offsetHeight","innerHeight","scrollHeight","compare","barHeight","max","maxHeight","ceil","heightRatio","vbar","adaptScrollPosition","innerWidth","scrollWidth","barWidth","maxWidth","widthRatio","hbar","scroll","top","left","vbarTop","transform","hbarLeft","fire","$nextTick","then","getTouchEvent","event","touches","changedTouches","onVbarMousedown","which","preventDefault","onVbarMousemove","onVbarMouseup","clientY","offset","onHbarMousedown","onHbarMousemove","onHbarMouseup","clientX","WIN","vbarProps","hbarProps","_mergeProps","except","DEBUG_NVSCROLL","NDraggable","items","itemHeight","itemWidth","renderNode","deathzone","threshold","useKeys","uniqueProp","start","end","grid","buffer","updateRender","ready","bindAdaptScroll","unbindAdaptScroll","callWhenReady","clearWhenReady","refreshScroll","setInterval","onScrollupdate","isIndexRendered","index","scrollbar","scrollToIndex","onScrollToIndex","total","floor","targetTop","refreshDriver","clearState","onSizechange","queue","timer","Date","clearTimeout","to","bufferItems","renderItem","passed","topOffset","renderFunction","renderRows","slice","renderGridRows","counter","chunk","renderGrid","_this7","chunks","renderItems","_this8","totalHeight","_resolveComponent","dragMods","NDragCounter","_createClass","count","update","html","Locale","choice","dataTransfer","setData","setDragImage","keyMods","attr","DragCounter","NDragIndicator","parent","safezone","strategy","hasClass","show","hide","item","NDraghandler","rootNode","_this$bindDragstart","DragIndicator","DragCache","bindDragstart","_toConsumableArray","framebuffer","onDragenterRoot","onDragoverRoot","onDragleaveRoot","onDragendRoot","onDragdropRoot","bindDragend","bindDragdrop","closest","cacheNodes","allowDrop","node","frames","moveNodes","group","cache","allowGroups","JSON","parse","stringify","dragcount","dropNodes","tempSelected","removeNode","clone","unlinkNodes","removeNodes","isSelected","id","virtuals","route","resolve","targetNode","isInSelf","cascade","childNodes","unbindNode","$handle","handle","onDragstartNode","onDragenterNode","onDragoverNode","onDragleaveNode","onDragendNode","onDragdropNode","optoff","moveNodesMany","moveNodesOne","insertNode","moveNodesRoot","first","transformDrop","moveNodesInto","moveNodesBefore","moveNodesAfter","eventName","_this9","filter","childProp","disableMove","targetRoute","children","splice","_this0","reduce","reduceItem","Num","depth","cascades","unique","tempCascade","virtual","last","DEBUG_NDLIST","draggable","current","selected","expanded","lazyload","showEmptyIcon","itemOffset","scrollTopOnChange","renderCurrent","renderHandle","renderSelect","renderExpand","allowSelect","allowDrag","keyEvents","highlightTimeout","modifier","visible","highlight","firstSelected","lastSelected","tempCurrent","tempExpanded","drag","watchModifierDown","watchModifierUp","virtualscroller","inner","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","expandItem","toggle","expandCurrent","isTotalSelected","isInterSelected","toggleSingleNode","toggleRangeNode","indexies","reversed","selectItem","selectAll","row","unselectAll","bindKeydown","onKeydown","unbindKeydown","renderEmpty","only","onMouseenter","onMouseleave","inheritAttrs","NDraggableItem","required","bindNode","unmounted","copy","copyNode","onClick","onDblclick","renderElement","renderSpacer","Icons","angleRight","checked","NDropzone","NLoader","minimum","debounce","tempVisible","applyTimer","timing","startTimer","restartTimer","timeout","flex","minWidth","position","resizerWidth","sizeFixed","getWidthDebounced","updateRemoteWidth","forceWidth","updateHandle","updateWidth","onLeftMousedown","onLeftMouseup","onLeftMousemove","scrollX","targetWidth","min","frameStyle","onRightMousedown","onRightMouseup","onRightMousemove","isNumber","NPopover","listen","trigger","theme","scrollClose","multiClose","alwaysRender","prevent","prev","popel","Popover","active","open","renderBody","raw","header","footer","viewBody","tempSize","focus","iconPosition","image","imagePosition","clickClose","renderImage","renderContent","PopoverHelper","getTouchState","PopoverBag","PopoverHandler","getMouseDownEvent","throttle","detectFadeOnCurrent","getScrollEvent","detectScrollOnCurrent","PopoverElement","parents","currentChange","_current$options","tgt","src","currents","mount","_this$options","getHoverEvent","onHover","getClickEvent","getContextEvent","onContext","_this$options2","_this$options3","showQueue","updatePosition","requestIdleCallback","bindResizeObserver","hideQueue","unbindResizeObserver","unsetCurrent","_this$options4","_this$options5","_this$options6","client","_this$options7","getTargetOffset","zIndex","_this$options8","targetRect","windowRect","posY","posX","center","inverse","broken","getTargetHorizontal","_this$options9","getTargetVertical","_this$options0","title","closable","renderClose","startRefreshTimeout","NModal","eventClick","eventKeydown","openModal","force","closeModal","stopRefreshTimeout","queueRefreshTimeout","backdrop","indexes","sort","times","renderHeader","renderFooter","bodyHtml","renderFrame","innerHtml","renderBackdrop","link","glass","square","nativeType","NForm","NFormItem","iconDisabled","placeholder","deepDisabled","onIconClick","onInput","onSubmit","onFocus","onBlur","renderInput","clearValue","MAX_VALUE","clearable","stepSize","precision","format","decimals","clear","getValue","getDisplayValue","number","nextStep","isNaN","toFixed","onNextDown","prevTimeout","prevInterval","nextTimeout","nextInterval","onNextUp","prevStep","onPrevDown","onPrevUp","regex","RegExp","renderPrev","onMousedown","renderNext","renderClear","autoRows","maxRows","minRows","maxLength","eventInput","rows","currentRows","_isSlot","s","toString","_isVNode","lazy","multiple","collapse","emptyText","undefinedText","collapseText","allowCreate","optionsValue","optionsLabel","optionsDisabled","custom","elements","tempClear","search","searched","generateOptions","searchOptions","NSelect","scrollToClosest","focusInput","$value","$index","option","label","tempLabel","addOption","removeOption","resetInput","onFocusInput","onInputInput","onKeydownInput","createOrToggle","selectPrev","selectNext","searchRegex","string","toggleOption","popover","denyUpdate","getOptionLabel","newIndex","scrollToCurrent","createOption","virtualscroll","select","renderLabelClear","renderLabelAngle","angleDown","renderLabelItem","labelHtml","renderLabelCollapse","firstHtml","renderLabelItems","renderMultiple","isEmptyValue","inputHtml","renderSingle","modelLabel","renderDisplay","displayHtml","_slot","_slot2","emptyHtml","vals","renderLazyOption","isMultipleActive","isSingleActive","renderLazyItems","renderPopover","onClose","$event","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","onResize","setModelValue","getValPos","fixed","getValStyle","getBarPos","getBarWidth","getBarStyle","getClosestValue","diff","step","abs","onMouseup","onMousemove","relativeWidth","closestValue","stepMin","stepMax","handleProps","_objectSpread","renderHandles","values","renderBar","barProps","onValue","offValue","onType","offType","renderSwitch","confirmText","cancelText","activeState","changeVisible","extractText","nodes","Confirm","confirm","abort","ConfirmHandler","next","Promise","cancel","ConfirmIcons","action","renderCancel","renderConfirm","promise","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","monthsGrid","Now","tempArrive","tempDepart","tempView","tempRanger","cacheArrive","cacheDepart","gotoDate","gotoMonth","gotoYear","patchDate","time","applyTime","patchMonth","printRange","patchYear","patchRange","renderToolbarPrev","angleLeft","renderToolbarNext","renderToolbarMonth","monthsHtml","month","renderToolbarYear","yearsHtml","year","renderToolbar","renderDateItem","equalDate","valid","isNotBeforeMin","after","isNotAfterMax","before","renderRangeDateItem","viewMode","isTempValid","between","arriveFirst","renderDate","legendHtml","day","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","getHoursGrid","minutesGrid","getMinutesGrid","secondsGrid","getSecondsGrid","eventSelect","scrollbars","ref","renderHourItem","hour","renderHourPanel","renderMinuteItem","minute","renderMinutePanel","renderSecondItem","second","renderSecondPanel","_slot3","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","relative","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","FormMessage","field","required_if","required_unless","same","diffrent","MIN_VALUE","minlength","maxlength","email","FormRules","isBool","form","dom","errors","kind","ignore","forceChange","forceErrors","rules","groups","ruleErrors","blocked","emitChange","resetChange","getGroups","appendGroup","removeGroup","is","appendItem","removeItem","prevState","nextState","validate","validateField","rule","_FormRules$name","_FormMessage$name","_rule$split2","_toArray","_arrayLikeToArray","message","err","includeErrors","getErrors","attrs","gotoField","renderField","itemProps","gotoInput","_createTextVNode","NFormFrame","tooltip","tooltipPosition","NFormGroup","getItems","toggleGroup","openGroup","closeGroup","renderCollapse","textHtml","renderAction","renderTooltip","NTabs","NTabsItem","NCollapse","NCollapseItem","tooltipWindow","conditional","conditionOn","conditionOff","enabled","toggleCondition","$input","childs","click","changeTab","showTab","renderCondition","renderError","showSearch","searchPlaceholder","searchIcon","onSearchInput","onScrollEvent","onMoveEvent","applyStar","block","onApplyStar","inviewMaxY","menu","lower","extract","indexOf","onClickEvent","star","renderSearch","searchProps","renderMenu","iconHtml","buttonProps","href","renderMenus","bodyProps","float","addTab","tab","$forceUpdate","removeTab","getTab","updateEvent","currentTab","sorted","updated","renderHeaderIndicator","tabs","keep","renderHeaderIcon","renderHeaderLabel","NTags","tags","addTag","removeTag","color","getSorted","hideTab","toggleTab","dragger","renderHeaderAction","renderHeaderAngle","angle","showDelay","order","NTable","sortProp","sortDir","closeFilterOnEnter","tempVisibleProps","tempSortProp","tempSortDir","tempFilter","tempFilterProps","makeVisibleProps","detectVisible","addColumn","column","removeColumn","getColumnIndex","getColumnVisiblity","getColumnSorted","getColumnFilter","filterProp","property","getColumnFiltered","detectVisibity","isect","sortByColumn","dir","replaceFilter","filters","resetFilter","refreshCurrent","columns","renderContext","renderHead","defaultRender","draggableHtml","Function","matrixDisabled","breakpoint","previewProp","matrix","matrixProp","fixedWidth","trueText","falseText","datetimeFormat","matrixValues","NTableColumn","tempWidth","changedStates","sortDirection","renderHeadLabel","renderHeadSort","renderHeadFilter","angleHtml","setFirstState","firstState","extends","TableCell","datetime","isRef","preview","previewProps","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","i","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","file","thumb","mime","showSrc","buttonText","renderButton","tempFile","tempThumb","NPreview","openBox","closeBox","renderTitle","renderPreview","PreviewHelper","getType","renderFull","renderModal","modalProps","btoa","getMime","buttonHtml","load","tempSrc","ImageCache","resolveLoad","resolveData","loaded","laod","reader","FileReader","onload","readAsDataURL","provider","resolveType","resolveYoutube","resolveVimeo","youtube","getYoutubeKey","vimeo","getVimeoKey","renderYoutube","renderVimeo","renderPlain","PreviewHandler","extension","getExt","PreviewMimes","exts","PreviewGroups","DefaultPreviewMimes","video","audio","font","application","lat","lng","zoom","NMap","callbacks","tempMap","focusMarkers","Map","getMap","onMount","tempMarker","importMarkerPosition","marker","setPosition","updateMarkerPosition","getPosition","initializeMarker","createMarker","addListener","setMarkerByAddress","address","Notify","clearableIcon","openContext","updateFile","files","clearFile","renderHidden","virtualValue","renderStars","rate","renderValue","vars","NDrawerStack","NDrawer","closeDrawer","NChart","axis","appendElement","removeElement","getClass","getColor","subdivide","colorLimit","otherLabel","overlap","renderLegend","vis","hid","renderCircle","gaps","distance","dashar","classBlock","propsBlock","propsHover","renderOtherCircle","others","renderSvg","reverse","temp","hidden","baseHtml","othersHtml","renderDonut","renderLegendOther","renderLegendItem","minHeight","renderBarItem","renderBarOther","renderBars","renderAxis","NanoImports","App","pi","directives","glob","globalProperties","primary","info","secondary","success","warning","danger","EmptyIcon","NConfig","NConfigNext","Scrollbar","Virtualscroller","Draglist","DraglistItem","Draggrid","DraggridItem","Dropzone","Loader","ResizerNext","components","PopoverGroup","PopoverOption","comp","Modal","Button","ButtonGroup","Input","InputNumber","Textarea","Select","SelectOption","Checkbox","CheckboxGroup","NRadio","Slider","Switch","CascaderPanel","Cascader","DatepickerPanel","Datepicker","TimepickerPanel","Timepicker","Datetimepicker","Durationpicker","Transfer","Form","FormBag","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","PreviewModal","PreviewPlain","PreviewImage","PreviewVideo","MapMarker","File","Rating","ChartItem","ChartDonut","ChartBar","circle","clock","calendar","angleUp","Install","CtorMixin","CmerMixin","CsloMixin","NanoModule","Nano"],"sourceRoot":""}