@kizmann/nano-ui 1.0.5 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/nano-ui.js +1 -1
- package/dist/nano-ui.js.map +1 -1
- package/package.json +1 -1
- package/src/index.js +3 -3
- package/types/index.d.ts +20 -3
package/dist/nano-ui.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nano-ui.js","mappings":"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","sources":["webpack://Nano/webpack/universalModuleDefinition","webpack://Nano/webpack/runtime/load script","webpack://Nano/./src/config/src/builder/prototypes/durationpicker/n-durationpicker.js","webpack://Nano/./src/config/src/builder/prototypes/switch/n-switch.js","webpack://Nano/external umd {\"root\":\"pi\",\"commonjs2\":\"@kizmann/pico-js\",\"commonjs\":\"@kizmann/pico-js\",\"amd\":\"@kizmann/pico-js\"}","webpack://Nano/./src/config/src/builder/prototypes/rating/n-rating.js","webpack://Nano/./src/config/src/builder/prototypes/input-number/n-input-number.js","webpack://Nano/external umd {\"root\":\"Vue\",\"commonjs2\":\"vue\",\"commonjs\":\"vue\",\"amd\":\"vue\"}","webpack://Nano/./src/config/src/builder/prototypes/html/span.js","webpack://Nano/./src/config/src/builder/prototypes/html/div.js","webpack://Nano/./src/config/src/builder/prototypes/tabs/n-tabs.js","webpack://Nano/./src/config/src/builder/prototypes/button/n-button.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form-group.js","webpack://Nano/./src/config/src/builder/prototypes/slider/n-slider.js","webpack://Nano/./src/config/src/builder/prototypes/datepicker/n-datepicker.js","webpack://Nano/./src/config/src/builder/prototypes/button/n-button-group.js","webpack://Nano/./src/config/src/builder/prototypes/datetimepicker/n-datetimepicker.js","webpack://Nano/./src/config/src/builder/prototypes/select/n-select.js","webpack://Nano/./src/config/src/builder/prototypes/table/n-table-column.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form.js","webpack://Nano/./src/config/src/builder/prototypes/radio/n-radio-group.js","webpack://Nano/./src/config/src/builder/prototypes/input/n-input.js","webpack://Nano/./src/config/src/builder/prototypes/table/n-table.js","webpack://Nano/./src/config/src/builder/prototypes/tags/n-tags.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form-item.js","webpack://Nano/./src/config/src/builder/prototypes/html/nano.js","webpack://Nano/./src/config/src/builder/prototypes/checkbox/n-checkbox.js","webpack://Nano/./src/config/src/builder/prototypes/tabs/n-tabs-item.js","webpack://Nano/./src/config/src/builder/prototypes/empty/n-empty.js","webpack://Nano/./src/config/src/builder/prototypes/tags/n-tags-item.js","webpack://Nano/./src/config/src/builder/prototypes/checkbox/n-checkbox-group.js","webpack://Nano/./src/config/src/builder/prototypes/cascader/n-cascader.js","webpack://Nano/./src/config/src/builder/prototypes/loader/n-loader.js","webpack://Nano/./src/config/src/builder/prototypes/timepicker/n-timepicker.js","webpack://Nano/./src/config/src/builder/prototypes/modal/n-modal.js","webpack://Nano/./src/config/src/builder/prototypes/confirm/n-confirm.js","webpack://Nano/./src/config/src/builder/prototypes/radio/n-radio.js","webpack://Nano/./src/config/src/builder/prototypes/transfer/n-transfer.js","webpack://Nano/webpack/bootstrap","webpack://Nano/webpack/runtime/define property getters","webpack://Nano/webpack/runtime/ensure chunk","webpack://Nano/webpack/runtime/get javascript chunk filename","webpack://Nano/webpack/runtime/global","webpack://Nano/webpack/runtime/hasOwnProperty shorthand","webpack://Nano/webpack/runtime/make namespace object","webpack://Nano/webpack/runtime/publicPath","webpack://Nano/webpack/runtime/jsonp chunk loading","webpack://Nano/./src/mixins/src/ctor.js","webpack://Nano/./src/mixins/src/cmer.js","webpack://Nano/./src/mixins/src/cslo.js","webpack://Nano/./src/empty/src/empty-icon/empty-icon.jsx","webpack://Nano/./src/config/src/config/config.jsx","webpack://Nano/./src/config/src/config/config-next.jsx","webpack://Nano/./src/config/src/builder/builder.jsx","webpack://Nano/./src/config/src/reference-panel/reference-panel.jsx","webpack://Nano/./src/config/src/reference-picker/reference-picker.jsx","webpack://Nano/./src/scrollbar/src/scrollbar/scrollbar.jsx","webpack://Nano/./src/virtualscroller/src/virtualscroller/virtualscroller.jsx","webpack://Nano/./src/draggable/src/draghandler/draghandler.js","webpack://Nano/./src/draggable/src/draglist/draglist.jsx","webpack://Nano/./src/draggable/src/draglist-item/draglist-item.jsx","webpack://Nano/./src/draggable/src/draggrid/draggrid.jsx","webpack://Nano/./src/draggable/src/draggrid-item/draggrid-item.jsx","webpack://Nano/./src/draggable/src/dropzone/dropzone.jsx","webpack://Nano/./src/loader/src/loader/loader.jsx","webpack://Nano/./src/resizer/src/resizer/resizer.jsx","webpack://Nano/./src/popover/src/popover/popover.jsx","webpack://Nano/./src/popover/src/popover-group/popover-group.jsx","webpack://Nano/./src/popover/src/popover-option/popover-option.jsx","webpack://Nano/./src/modal/src/modal/modal.jsx","webpack://Nano/./src/button/src/button/button.jsx","webpack://Nano/./src/button/src/button-group/button-group.jsx","webpack://Nano/./src/input/src/input/input.jsx","webpack://Nano/./src/input-number/src/input-number/input-number.jsx","webpack://Nano/./src/textarea/src/textarea/textarea.jsx","webpack://Nano/./src/select/src/select/select.jsx","webpack://Nano/./src/select/src/select-option/select-option.jsx","webpack://Nano/./src/checkbox/src/checkbox/checkbox.jsx","webpack://Nano/./src/checkbox/src/checkbox-group/checkbox-group.jsx","webpack://Nano/./src/radio/src/radio/radio.jsx","webpack://Nano/./src/radio/src/radio-group/radio-group.jsx","webpack://Nano/./src/slider/src/slider/slider.jsx","webpack://Nano/./src/switch/src/switch/switch.jsx","webpack://Nano/./src/confirm/src/confirm/confirm.jsx","webpack://Nano/./src/cascader/src/cascader-panel/cascader-panel.jsx","webpack://Nano/./src/cascader/src/cascader/cascader.jsx","webpack://Nano/./src/datepicker/src/datepicker-panel/datepicker-panel.jsx","webpack://Nano/./src/datepicker/src/datepicker/datepicker.jsx","webpack://Nano/./src/timepicker/src/timepicker-panel/timepicker-panel.jsx","webpack://Nano/./src/timepicker/src/timepicker/timepicker.jsx","webpack://Nano/./src/datetimepicker/src/datetimepicker/datetimepicker.jsx","webpack://Nano/./src/durationpicker/src/durationpicker/durationpicker.jsx","webpack://Nano/./src/transfer/src/transfer/transfer.jsx","webpack://Nano/./src/form/src/form/form.jsx","webpack://Nano/./src/form/src/form-group/form-group.jsx","webpack://Nano/./src/form/src/form-item/form-item.jsx","webpack://Nano/./src/form/src/form-menu/form-menu.jsx","webpack://Nano/./src/form/src/form-frame/form-frame.jsx","webpack://Nano/./src/form/src/form-frame-item/form-frame-item.jsx","webpack://Nano/./src/tabs/src/tabs/tabs.jsx","webpack://Nano/./src/tabs/src/tabs-item/tabs-item.jsx","webpack://Nano/./src/tags/src/tags/tags.jsx","webpack://Nano/./src/tags/src/tags-item/tags-item.jsx","webpack://Nano/./src/collapse/src/collapse/collapse.jsx","webpack://Nano/./src/collapse/src/collapse-item/collapse-item.jsx","webpack://Nano/./src/table/src/table/table.jsx","webpack://Nano/./src/table/src/table-column/table-column.jsx","webpack://Nano/./src/table/src/table-cell/table-cell.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-string.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-boolean.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-datetime.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-option.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-image.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-matrix.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-select.jsx","webpack://Nano/./src/table/src/table-filter/table-filter.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-string.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-boolean.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-datetime.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-option.jsx","webpack://Nano/./src/paginator/src/paginator/paginator.jsx","webpack://Nano/./src/info/src/info/info.jsx","webpack://Nano/./src/info/src/info-column/info-column.jsx","webpack://Nano/./src/info/src/info-field/info-field.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-string.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-boolean.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-datetime.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-option.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-image.jsx","webpack://Nano/./src/preview/src/preview/preview.jsx","webpack://Nano/./src/preview/src/preview-plain/preview-plain.jsx","webpack://Nano/./src/preview/src/preview-image/preview-image.jsx","webpack://Nano/./src/preview/src/preview-video/preview-video.jsx","webpack://Nano/./src/map/src/map/map.jsx","webpack://Nano/./src/map/src/map-marker/map-marker.jsx","webpack://Nano/./src/file/src/file/file.jsx","webpack://Nano/./src/rating/src/rating/rating.jsx","webpack://Nano/./src/drawer/src/drawer/drawer.jsx","webpack://Nano/./src/index.js","webpack://Nano/./src/alert/index.js","webpack://Nano/./src/notification/index.js","webpack://Nano/./src/empty/index.js","webpack://Nano/./src/config/index.js","webpack://Nano/./src/scrollbar/index.js","webpack://Nano/./src/virtualscroller/index.js","webpack://Nano/./src/draggable/index.js","webpack://Nano/./src/loader/index.js","webpack://Nano/./src/resizer/index.js","webpack://Nano/./src/popover/index.js","webpack://Nano/./src/modal/index.js","webpack://Nano/./src/button/index.js","webpack://Nano/./src/input/index.js","webpack://Nano/./src/input-number/index.js","webpack://Nano/./src/textarea/index.js","webpack://Nano/./src/select/index.js","webpack://Nano/./src/checkbox/index.js","webpack://Nano/./src/radio/index.js","webpack://Nano/./src/slider/index.js","webpack://Nano/./src/switch/index.js","webpack://Nano/./src/confirm/index.js","webpack://Nano/./src/cascader/index.js","webpack://Nano/./src/datepicker/index.js","webpack://Nano/./src/timepicker/index.js","webpack://Nano/./src/datetimepicker/index.js","webpack://Nano/./src/durationpicker/index.js","webpack://Nano/./src/transfer/index.js","webpack://Nano/./src/form/index.js","webpack://Nano/./src/tabs/index.js","webpack://Nano/./src/tags/index.js","webpack://Nano/./src/collapse/index.js","webpack://Nano/./src/table/index.js","webpack://Nano/./src/paginator/index.js","webpack://Nano/./src/info/index.js","webpack://Nano/./src/preview/index.js","webpack://Nano/./src/map/index.js","webpack://Nano/./src/file/index.js","webpack://Nano/./src/rating/index.js","webpack://Nano/./src/drawer/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@kizmann/pico-js\"), require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@kizmann/pico-js\", \"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Nano\"] = factory(require(\"@kizmann/pico-js\"), require(\"vue\"));\n\telse\n\t\troot[\"Nano\"] = factory(root[\"pi\"], root[\"Vue\"]);\n})(self, (__WEBPACK_EXTERNAL_MODULE__55__, __WEBPACK_EXTERNAL_MODULE__122__) => {\nreturn ","var inProgress = {};\nvar dataWebpackPrefix = \"Nano:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDurationpicker'] = Locale.trans('NDurationpicker');\n\nwindow.NanoBuilderIndexies['NDurationpicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDurationpicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSwitch'] = Locale.trans('NSwitch');\n\nwindow.NanoBuilderIndexies['NSwitch'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSwitch']['props'] = {\n modelValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n onValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n offValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n onType: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n offType: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n size: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeSizes\n },\n disabled: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n};","module.exports = __WEBPACK_EXTERNAL_MODULE__55__;","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRating'] = Locale.trans('NRating');\n\nwindow.NanoBuilderIndexies['NRating'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRating']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NInputNumber'] = Locale.trans('NInputNumber');\n\nwindow.NanoBuilderIndexies['NInputNumber'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NInputNumber']['props'] = {\n modelValue: {\n for: ['binds', 'props'], default: null, type: 'Number'\n },\n clearValue: {\n for: ['binds', 'props'], default: null, type: 'Number'\n },\n clearable: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n min: {\n for: ['binds', 'props'], default: 0, type: 'Number'\n },\n max: {\n for: ['binds', 'props'], default: Number.MAX_VALUE, type: 'Number'\n },\n stepSize: {\n for: ['binds', 'props'], default: 1, type: 'Number'\n },\n precision: {\n for: ['binds', 'props'], default: 0, type: 'Number'\n },\n size: {\n for: ['binds', 'props'], default: 'md', type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], default: 'primary', type: 'String', options: window.NanoPrototypeTypes\n },\n disabled: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n placeholder: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n format: {\n for: ['binds', 'props'], default: ':count', type: 'String'\n },\n decimals: {\n for: ['binds', 'props'], default: '.', type: 'String'\n },\n};","module.exports = __WEBPACK_EXTERNAL_MODULE__122__;","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['span'] = Locale.trans('span');\n\nwindow.NanoBuilderIndexies['span'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['span']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['div'] = Locale.trans('div');\n\nwindow.NanoBuilderIndexies['div'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['div']['props'] = {\n classList: {\n type: 'String'\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTabs'] = Locale.trans('NTabs');\n\nwindow.NanoBuilderIndexies['NTabs'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTabs']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NButton'] = Locale.trans('NButton');\n\nwindow.NanoBuilderIndexies['NButton'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NButton']['props'] = {\n size: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n link: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n square: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n disabled: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n icon: {\n for: ['binds', 'props'], type: 'String'\n },\n iconPosition: {\n for: ['binds', 'props'], type: 'String', options: ['before', 'after']\n },\n nativeType: {\n for: ['binds', 'props'], type: 'String', options: ['button', 'a', 'div']\n },\n click: {\n for: ['on'], type: 'String'\n }\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NFormGroup'] = Locale.trans('NFormGroup');\n\nwindow.NanoBuilderIndexies['NFormGroup'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NFormGroup']['props'] = {\n label: {\n for: ['binds', 'props'], type: 'String'\n }\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSlider'] = Locale.trans('NSlider');\n\nwindow.NanoBuilderIndexies['NSlider'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSlider']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDatepicker'] = Locale.trans('NDatepicker');\n\nwindow.NanoBuilderIndexies['NDatepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDatepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NButtonGroup'] = Locale.trans('n-button-group');\n\nwindow.NanoBuilderIndexies['NButtonGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NButtonGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDatetimepicker'] = Locale.trans('NDatetimepicker');\n\nwindow.NanoBuilderIndexies['NDatetimepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDatetimepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSelect'] = Locale.trans('NSelect');\n\nwindow.NanoBuilderIndexies['NSelect'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSelect']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTableColumn'] = Locale.trans('NTableColumn');\n\nwindow.NanoBuilderIndexies['NTableColumn'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTableColumn']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NForm'] = Locale.trans('NForm');\n\nwindow.NanoBuilderIndexies['NForm'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NForm']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRadioGroup'] = Locale.trans('NRadioGroup');\n\nwindow.NanoBuilderIndexies['NRadioGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRadioGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NInput'] = Locale.trans('NInput');\n\nwindow.NanoBuilderIndexies['NInput'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NInput']['props'] = {\n modelValue: {\n for: ['binds', 'props'], default: null, type: 'String'\n },\n size: {\n for: ['binds', 'props'], default: 'md', type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], default: 'primary', type: 'String', options: window.NanoPrototypeTypes\n },\n disabled: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n placeholder: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n nativeType: {\n for: ['binds', 'props'], default: 'text', type: 'String', options: ['text', 'password', 'email']\n },\n icon: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n iconPosition: {\n for: ['binds', 'props'], default: 'before', type: 'String', options: ['before', 'after']\n },\n iconDisabled: {\n for: ['binds', 'props'], default: null, type: 'Boolean', options: window.NanoPrototypeBools\n },\n iconClick: {\n for: ['on'], type: 'String'\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTable'] = Locale.trans('NTable');\n\nwindow.NanoBuilderIndexies['NTable'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTable']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTags'] = Locale.trans('NTags');\n\nwindow.NanoBuilderIndexies['NTags'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTags']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NFormItem'] = Locale.trans('NFormItem');\n\nwindow.NanoBuilderIndexies['NFormItem'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NFormItem']['props'] = {\n label: {\n for: ['binds', 'props'], type: 'String'\n }\n};","window.NanoPrototypeSizes = [\n 'xs', 'sm', 'md', 'lg'\n];\n\nwindow.NanoPrototypeTypes = [\n 'primary', 'secondary', 'success', 'warning', 'danger', 'info'\n];\n\nwindow.NanoPrototypeBools = [\n 'true', 'false'\n];","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCheckbox'] = Locale.trans('n-checkbox');\n\nwindow.NanoBuilderIndexies['NCheckbox'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCheckbox']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTabsItem'] = Locale.trans('NTabsItem');\n\nwindow.NanoBuilderIndexies['NTabsItem'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTabsItem']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NEmpty'] = Locale.trans('NEmpty');\n\nwindow.NanoBuilderIndexies['NEmpty'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NEmpty']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTagsItem'] = Locale.trans('NTagsItem');\n\nwindow.NanoBuilderIndexies['NTagsItem'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTagsItem']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCheckboxGroup'] = Locale.trans('NCheckboxGroup');\n\nwindow.NanoBuilderIndexies['NCheckboxGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCheckboxGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCascader'] = Locale.trans('n-cascader');\n\nwindow.NanoBuilderIndexies['NCascader'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCascader']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NLoader'] = Locale.trans('NLoader');\n\nwindow.NanoBuilderIndexies['NLoader'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NLoader']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTimepicker'] = Locale.trans('NTimepicker');\n\nwindow.NanoBuilderIndexies['NTimepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTimepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NModal'] = Locale.trans('NModal');\n\nwindow.NanoBuilderIndexies['NModal'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NModal']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NConfirm'] = Locale.trans('n-confirm');\n\nwindow.NanoBuilderIndexies['NConfirm'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NConfirm']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRadio'] = Locale.trans('NRadio');\n\nwindow.NanoBuilderIndexies['NRadio'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRadio']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTransfer'] = Locale.trans('NTransfer');\n\nwindow.NanoBuilderIndexies['NTransfer'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTransfer']['props'] = {\n //\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".nano-ui.js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\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};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkNano\"] = self[\"webpackChunkNano\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import { Arr, Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n ctor(key, fallback = null)\n {\n let ctor = Obj.get(this.$options, key.split('.'), -1);\n\n // if ( ctor === -1 ) {\n // ctor = Obj.get(this.$vnode.componentOptions.Ctor,\n // Arr.merge(['options'], key.split('.')), -1);\n // }\n\n if ( ctor === -1 ) {\n ctor = fallback;\n }\n\n if ( typeof ctor !== 'function' ) {\n return ctor;\n }\n\n return (...args) => ctor.apply(this, args);\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n cmer(classList)\n {\n let attrsList = {};\n\n if ( Any.isString(classList) ) {\n attrsList[classList] = true;\n }\n\n if ( Any.isArray(classList) ) {\n Arr.each(classList, (value) => attrsList[value] = true);\n }\n\n if ( Any.isPlain(classList) ) {\n Obj.assign(attrsList, classList);\n }\n\n if ( Any.isString(this.$attrs.class) ) {\n attrsList[this.$attrs.class] = true;\n }\n\n if ( Any.isArray(this.$attrs.class) ) {\n Arr.each(this.$attrs.class, (value) => attrsList[value] = true);\n }\n\n if ( Any.isPlain(this.$attrs.class) ) {\n Obj.assign(attrsList, this.$attrs.class);\n }\n\n return attrsList;\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport { Comment } from \"vue\";\n\nexport default {\n\n cslo(slot = 'default', props = {})\n {\n if ( ! this.$slots[slot] ) {\n return false;\n }\n\n return this.$slots[slot](props).findIndex((o) => {\n return o.type !== Comment;\n }) !== -1;\n }\n\n}\n","export default {\n\n name: 'NEmptyIcon',\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n inline: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-empty-icon',\n 'n-empty-icon--' + this.size,\n 'n-empty-icon--' + this.type\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.inline ) {\n classList.push('n-inline');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-empty-icon__frame\">\n { /* Icon */ }\n </div>\n <div class=\"n-empty-icon__text\">\n { this.$slots.default && this.$slots.default() }\n </div>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NConfig',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n config: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return this;\n },\n type: [Object]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n solveAwait(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( Any.isString(value) && value.match(/\\$\\$scope/) ) {\n return Obj.has({ $$scope: this.scope }, value);\n }\n\n if ( Any.isString(value) && value.match(/\\$\\$value/) ) {\n return Obj.has({ $$value: this.tempValue }, value);\n }\n\n return false;\n },\n\n solveValue(value, ...args)\n {\n if ( Any.isFunction(value) ) {\n return value.apply(this.scope, [this.tempValue, ...args]);\n }\n\n if ( Any.isString(value) && value.match(/^\\$\\$scope/) ) {\n return Obj.get({ $$scope: this.scope }, value);\n }\n\n if ( Any.isString(value) && value.match(/^\\$\\$value/) ) {\n return Obj.get({ $$value: this.tempValue }, value);\n }\n\n return value;\n },\n\n solveEvent(value)\n {\n let scope = Obj.assign(this.scope, {\n $configRefs: this.$refs\n });\n\n if ( Any.isFunction(value) ) {\n return (...args) => value.apply(scope, args);\n }\n\n return value;\n },\n\n solveContent(value, ...args)\n {\n if ( Any.isFunction(value) ) {\n return value.apply(this.scope, [this.$render, this.tempValue, ...args]);\n }\n\n return value;\n },\n\n prepareValue(veModel)\n {\n if ( ! veModel.path ) {\n return veModel.fallback;\n }\n\n if ( ! Obj.has(this.tempValue, veModel.path) ) {\n this.deepSet(this.tempValue, veModel.path, veModel.fallback);\n }\n\n return Obj.get(this.tempValue, veModel.path);\n },\n\n inputClosure(veModel, closure = null)\n {\n if ( ! veModel.path ) {\n return () => null;\n }\n\n return (value) => {\n\n if ( closure ) {\n closure(value, this.tempValue);\n }\n\n this.deepSet(this.tempValue, veModel.path, value);\n };\n },\n\n deepSet(obj, keys, val)\n {\n keys = (typeof keys === 'string') ?\n keys.split('.') : keys;\n\n let key = keys.shift();\n\n if ( obj[key] === undefined || obj[key] === null ) {\n Obj.set(obj, key, {});\n }\n\n if ( keys.length === 0 ) {\n return Obj.set(obj, key, val);\n }\n\n return this.deepSet(obj[key], keys, val);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n renderLayer(source)\n {\n if ( ! Any.isPlain(source) ) {\n return source;\n }\n\n return Arr.each(source, (setup, component) => {\n\n component = component.replace(/:.*?$/, '');\n\n // Set setup defaults\n setup = Obj.assign({\n vIf: true, vShow: true, vAwait: null, class: null, $on: {}, $props: {}, $attrs: {}\n }, setup);\n\n if ( ! this.solveAwait(setup.vAwait) ) {\n return null;\n }\n\n if ( ! this.solveValue(setup.vIf) ) {\n return null;\n }\n\n if ( ! this.solveValue(setup.vShow) ) {\n setup.style = { display: 'none' };\n }\n\n // Build default model\n let veModel = Obj.assign({\n prop: 'modelValue', fallback: null\n }, setup.model);\n\n // Delete model from setup\n delete setup.model;\n\n // Normalize props\n setup.$props = this.solveValue(setup.$props);\n\n // Normalize class\n setup.class = this.solveValue(setup.class);\n\n // Solve props\n Obj.map(setup.$props, (value) => this.solveValue(value));\n\n // Normalize attrs\n setup.$attrs = this.solveValue(setup.$attrs);\n\n // Solve attrs\n Obj.map(setup.$attrs, (value) => this.solveValue(value));\n\n // Solve events\n Obj.map(setup.$on, (value) => this.solveEvent(value));\n\n if ( veModel.path ) {\n\n // Override input event\n setup['onUpdate:modelValue'] = this.inputClosure(veModel, setup.$on.input);\n\n // Set prop in value or get fallback\n setup.$props[veModel.prop] = this.prepareValue(veModel);\n }\n\n Obj.assign(setup, setup.$props);\n delete setup.$props;\n\n Obj.assign(setup, setup.$attrs);\n delete setup.$attrs;\n\n Obj.assign(setup, setup.$on);\n delete setup.$on;\n\n let content = setup.content;\n delete setup.content;\n\n delete setup.vIf;\n delete setup.vShow;\n delete setup.vAwait;\n\n // Solve content if is functional\n let slots = this.solveContent(content, setup);\n\n let domtypes = [\n 'div', 'span', 'a'\n ];\n\n let resolved = component;\n\n if ( ! Arr.has(domtypes, resolved) ) {\n resolved = resolveComponent(component);\n }\n\n return h(resolved, setup, this.ctor('renderLayer')(slots));\n });\n },\n\n render()\n {\n return this.ctor('renderLayer')(this.config)[0];\n }\n\n}","import { Arr, Obj, Str, Any } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NConfigNext',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n extraValue: {\n default()\n {\n return null;\n },\n type: [Object]\n },\n\n config: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue, sempValue: this.extraValue || this.modelValue\n };\n },\n\n watch: {\n\n modelValue: function (value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n extraValue: function (value) {\n if ( value !== this.sempValue ) {\n this.sempValue = value;\n }\n }\n\n },\n\n methods: {\n\n getString(value)\n {\n let final = value.replace(/^@/, '')\n .replace(/^\\\\@/, '@');\n\n\n\n if ( value.match(/^@/) ) {\n return this.trans(final);\n }\n\n return final;\n },\n\n propAwait(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Any.isArray(value) ) {\n value = [value];\n }\n\n let result = Arr.each(value, (state) => {\n return this.getState(state, true);\n });\n\n return ! Arr.has(result, false);\n },\n\n propExists(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Any.isArray(value) ) {\n value = [value];\n }\n\n let result = Arr.each(value, (state) => {\n return this.getState(state, false);\n });\n\n return ! Arr.has(result, false);\n },\n\n getState(value, exists = true)\n {\n if ( Any.isFunction(value) ) {\n return !! this.solveInput(value);\n }\n\n if ( ! Any.isString(value) ) {\n return !! value;\n }\n\n if ( ! value.match(/(\\$scope|\\$model|\\$global)/) ) {\n return !! value;\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n if ( exists ) {\n return Obj.get(sources, value, undefined) === undefined;\n }\n\n return !! Obj.get(sources, value);\n },\n\n toPropKey(value)\n {\n let splits = value.replace(/^!/, '').split('-');\n\n value = Arr.each(splits, (split) => {\n return Str.ucfirst(split);\n });\n\n return Str.lcfirst(value.join(''));\n },\n\n toEventKey(value)\n {\n if ( ! value.match(/^on/) ) {\n value = 'on-' + value;\n }\n\n let splits = value.split('-');\n\n value = Arr.each(splits, (split) => {\n return Str.ucfirst(split);\n });\n\n return Str.lcfirst(value.join(''));\n },\n\n solveInput(cb, fallback)\n {\n return cb.call(this.scope, this.tempValue, fallback);\n },\n\n solveContext(cb)\n {\n if ( ! Any.isFunction(cb) ) {\n return () => console.error('Raw suffix (!) only allowed on functions');\n }\n\n return (...args) => cb.call(this.scope, ...args);\n },\n\n getProp(key, value)\n {\n if ( key.match(/^!/) ) {\n return this.solveContext(value);\n }\n\n if ( Any.isFunction(value) ) {\n return this.solveInput(value);\n }\n\n if ( ! Any.isString(value) ) {\n return value;\n }\n\n if ( ! value.match(/(\\$scope|\\$model|\\$global)/) ) {\n return this.getString(value);\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n let result = Obj.get(sources, value.replace(/^!+/, ''));\n\n if ( value.match(/^!!\\$/) ) {\n result = Any.isEmpty(result);\n }\n\n if ( value.match(/^!\\$/) ) {\n result = Any.isEmpty(result);\n }\n\n return result;\n },\n\n getInput(prop, fallback)\n {\n if ( Any.isFunction(prop) ) {\n return this.solveInput(prop, fallback);\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n if ( ! Any.isNull(fallback) && Obj.get(sources, prop, -1337) === -1337 ) {\n Obj.set(sources, prop, fallback);\n }\n\n return Obj.get(sources, prop);\n },\n\n setInput(prop, value)\n {\n if ( Any.isFunction(prop) ) {\n return console.error('NConfigNew: Bind with function is not allowed!');\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n Obj.set(sources, prop, value);\n }\n\n },\n\n renderSetup(setup, alias)\n {\n if ( ! Any.isPlain(setup) ) {\n return setup;\n }\n\n if ( ! this.propExists(setup['vIf']) ) {\n return null;\n }\n\n if ( ! this.propAwait(setup['vAwait']) ) {\n return null;\n }\n\n let defaults = {\n binds: {}, props: {}, events: {}, content: {}\n };\n\n let defaultsBind = {\n value: '', fallback: null\n };\n\n setup = Obj.assign(defaults, setup);\n\n let binds = {};\n\n Obj.each(setup['binds'], (value, key) => {\n\n if ( Any.isString(value) ) {\n value = { value: value };\n }\n\n binds[key] = Obj.assign(defaultsBind, value);\n });\n\n let events = {};\n\n Obj.each(setup['events'], (value, key) => {\n events[this.toEventKey(key)] = this.solveContext(value);\n });\n\n let props = {};\n\n Obj.each(setup['props'], (value, key) => {\n props[this.toPropKey(key)] = this.getProp(key, value);\n });\n\n props = Obj.assign(props, events);\n\n Obj.each(binds, (value, key) => {\n\n let updateKey = 'onUpdate:' + key;\n\n props[this.toEventKey(updateKey)] = (input) => {\n this.setInput(value.value, input);\n };\n\n props[this.toPropKey(key)] = this.getInput(value.value,\n value.fallback);\n });\n\n let component = alias.replace(/:.*?$/, '');\n\n if ( !Arr.has(['div', 'p'], component) ) {\n component = resolveComponent(component);\n }\n\n if ( Any.isEmpty(component) ) {\n return null;\n }\n\n if ( !this.propExists(setup['vShow']) ) {\n props.style = \"display: none;\";\n }\n\n let render = () => Arr.each(setup.content, (value, key) => {\n return this.ctor('renderSetup')(value, key);\n });\n\n if ( Any.isFunction(setup.content) ) {\n render = () => setup.content.apply(this.scope);\n }\n\n if ( Any.isString(setup.content) ) {\n render = () => this.getString(setup.content);\n }\n\n return h(component, props, { default: render });\n },\n\n render()\n {\n return Arr.each(this.config, (value, key) => this.ctor('renderSetup')(value, key));\n }\n\n}","import { Arr, Dom, Any, Locale, Obj, UUID, Num } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderPropType = {\n 'root': Locale.trans('Root'),\n 'binds': Locale.trans('Bind'),\n 'props': Locale.trans('Property'),\n 'attrs': Locale.trans('Attribute'),\n 'on': Locale.trans('Event'),\n};\n\nwindow.NanoBuilderPropCode = {\n 'string': Locale.trans('String'),\n 'number': Locale.trans('Number'),\n 'boolean': Locale.trans('Boolean'),\n 'object': Locale.trans('Object'),\n 'function': Locale.trans('Function'),\n};\n\nwindow.NanoBuilderProps = {\n classList: {\n for: ['root', 'attrs', 'props'], type: 'String'\n },\n vIf: {\n for: ['root'], type: 'String'\n },\n vShow: {\n for: ['root'], type: 'String'\n },\n};\n\nwindow.NanoBuilderTypes = {\n //\n};\n\nwindow.NanoBuilderIndexies = {\n //\n};\n\n// DOM elements\nrequire('./prototypes/html/nano');\nrequire('./prototypes/html/div');\nrequire('./prototypes/html/span');\n\n// Nano elements\nrequire('./prototypes/button/n-button');\nrequire('./prototypes/button/n-button-group');\nrequire('./prototypes/cascader/n-cascader');\nrequire('./prototypes/checkbox/n-checkbox');\nrequire('./prototypes/checkbox/n-checkbox-group');\nrequire('./prototypes/confirm/n-confirm');\nrequire('./prototypes/datepicker/n-datepicker');\nrequire('./prototypes/datetimepicker/n-datetimepicker');\nrequire('./prototypes/durationpicker/n-durationpicker');\nrequire('./prototypes/empty/n-empty');\nrequire('./prototypes/form/n-form');\nrequire('./prototypes/form/n-form-group');\nrequire('./prototypes/form/n-form-item');\nrequire('./prototypes/input/n-input');\nrequire('./prototypes/input-number/n-input-number');\nrequire('./prototypes/loader/n-loader');\nrequire('./prototypes/modal/n-modal');\nrequire('./prototypes/radio/n-radio');\nrequire('./prototypes/radio/n-radio-group');\nrequire('./prototypes/rating/n-rating');\nrequire('./prototypes/select/n-select');\nrequire('./prototypes/slider/n-slider');\nrequire('./prototypes/switch/n-switch');\nrequire('./prototypes/table/n-table');\nrequire('./prototypes/table/n-table-column');\nrequire('./prototypes/tabs/n-tabs');\nrequire('./prototypes/tabs/n-tabs-item');\nrequire('./prototypes/tags/n-tags');\nrequire('./prototypes/tags/n-tags-item');\nrequire('./prototypes/timepicker/n-timepicker');\nrequire('./prototypes/transfer/n-transfer');\n\nexport default {\n\n name: 'NBuilder',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n renderDemo: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderExport: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n init: false, demo: false, collapse: [], safevar: this.normalizeModel(this.modelValue)\n };\n },\n\n watch: {\n modelValue: function () {\n this.safevar = this.normalizeModel(this.modelValue)\n }\n },\n\n mounted()\n {\n this.init = true;\n },\n\n methods: {\n\n exportJson(value)\n {\n return JSON.stringify(Obj.clone(value), null, 4).replace(/\"!FUNC:(.*?):FUNC!\"/g, (matches) => {\n return matches.replace(/^\"!FUNC:/, '').replace(/:FUNC!\"$/, '').replace(/\\\\\"/, '\"').replace(/\\\\n/g, \"\\n\");\n });\n },\n\n exportExecutable(value)\n {\n return new Function(`return ${this.exportJson(value)};`)();\n },\n\n normalizeModel(model)\n {\n let result = {};\n\n Obj.each(model, (value, key) => {\n result[key] = Obj.assign(this.normalizeChild(value), {\n order: (Any.vals(result).length + 1) * 100\n });\n });\n\n return result;\n },\n\n normalizeChild(child)\n {\n let result = this.applyProps(null, {\n ...Obj.except(child, ['content']), content: {}, builder: this.buildProps(child),\n });\n\n if ( Any.isArray(child.content) ) {\n child.content = Arr.first(child.content);\n }\n\n if ( ! Any.isPlain(child.content) && ! Any.isString(child.content) ) {\n child.content = {};\n }\n\n result.builder[\"null\"] = {\n type: typeof child.content\n }\n\n if (Any.isPlain(child.content)) {\n Obj.each(child.content || {}, (value, key) => {\n\n if ( ! key.match(':') ) {\n key += ':' + UUID();\n }\n\n result['content'][key] = Obj.assign(this.normalizeChild(value), {\n order: (Any.vals(result['content']).length + 1) * 100\n });\n });\n } else {\n result.content = child.content;\n }\n\n return result;\n },\n\n getOriginalValue(prop)\n {\n let safevalue = prop.value;\n\n if ( typeof prop.value === 'function' ) {\n safevalue = btoa(\"!FUNC:\" + prop.value.toString() + \":FUNC!\");\n }\n\n return safevalue;\n },\n\n getSafeValue(prop)\n {\n let safevalue = '';\n\n if ( typeof prop.value === 'string' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'boolean' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'number' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'object' ) {\n safevalue = JSON.stringify(prop.value);\n }\n\n if ( typeof prop.value === 'function' ) {\n safevalue = btoa(\"!FUNC:\" + prop.value.toString() + \":FUNC!\");\n }\n\n return safevalue;\n },\n\n getRealValue(prop)\n {\n let realvalue = '';\n\n if ( prop.code === 'string' ) {\n realvalue = Any.string(prop.value);\n }\n\n if ( prop.code === 'boolean' ) {\n realvalue = Any.boolean(prop.value);\n }\n\n if ( prop.code === 'number' ) {\n realvalue = Any.number(prop.value, 0);\n }\n\n if ( prop.code === 'object' ) {\n realvalue = JSON.parse(prop.value);\n }\n\n if ( prop.code === 'function' ) {\n realvalue = atob(prop.original);\n }\n\n return realvalue;\n },\n\n changeElement(key, update)\n {\n if ( Any.isEmpty(update) ) {\n return;\n }\n\n let newKey = key.replace(/^(.*?)([^\\.]+):([^\\.]+)$/, `$1${update}:$3`);\n\n let value = Obj.get(this, key, {});\n\n Obj.unset(this, key);\n Obj.set(this, newKey, value);\n\n this.collapse = Arr.each(this.collapse, (k) => {\n return k.replace(key, newKey);\n });\n },\n\n changeAlias(key, update)\n {\n if ( Any.isEmpty(update) ) {\n return;\n }\n\n let newKey = key.replace(/^(.*?)([^\\.]+):([^\\.]+)$/, `$1$2:${update}`);\n\n let value = Obj.get(this, key, {});\n\n Obj.unset(this, key);\n Obj.set(this, newKey, value);\n\n this.collapse = Arr.each(this.collapse, (k) => {\n return k.replace(key, newKey);\n });\n },\n\n changeType(key, type)\n {\n let value = Obj.get(this, key, {});\n\n let original = Obj.get(value, 'builder.null.type');\n\n if ( type === 'object' ) {\n value.content = {};\n }\n\n if ( type === 'string' ) {\n value.content = '';\n }\n\n Obj.set(value, 'builder.null.type', typeof value.content);\n },\n\n applyProps(key = null, value = {})\n {\n if ( ! Any.isEmpty(key) ) {\n value = Obj.get(this, key, {});\n }\n\n let reset = [\n 'vIf', 'vShow', 'classList', 'vLocale', 'binds', 'attrs', 'props', 'on',\n ];\n\n Obj.each(reset, (prop) => {\n Obj.unset(value, prop);\n });\n\n Obj.each(value.builder || {}, (val) => {\n\n if ( Any.isEmpty(val.key) ) {\n return;\n }\n\n let bindValue = {\n value: val.value, fallback: null\n };\n\n if ( val.code === 'string' ) {\n bindValue.fallback = Any.string(val.fallback || '');\n }\n\n if ( val.code === 'boolean' ) {\n bindValue.fallback = Any.boolean(val.fallback || 'false');\n }\n\n if ( val.code === 'object' ) {\n bindValue.fallback = JSON.parse(val.fallback || '{}');\n }\n\n if ( val.type === 'binds' ) {\n return Obj.set(value, [val.type, val.key], bindValue);\n }\n\n let realvalue = '';\n\n try {\n realvalue = this.getRealValue(val);\n } catch (e) {\n if ( ! Any.isEmpty(val.value) ) {\n console.error('Invalid JSON: ' + val.value);\n }\n }\n\n if ( val.type === 'root' ) {\n return Obj.set(value, val.key, realvalue);\n }\n\n if ( val.type === 'attrs' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n if ( val.type === 'props' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n if ( val.type === 'on' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n });\n\n if ( Any.isEmpty(key) ) {\n return value;\n }\n\n return Obj.set(this, key, value);\n },\n\n buildProps(el, key = null)\n {\n let builder = {};\n\n Obj.each(Obj.only(el, ['vIf', 'vShow', 'classList']), (value, sey) => {\n builder[UUID()] = {\n type: 'root', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value })\n };\n });\n\n Obj.each(Obj.get(el, `binds`, {}), (value, sey) => {\n\n let result = {\n type: 'binds', code: typeof value, key: sey, fallback: null, original: this.getOriginalValue({ value })\n }\n\n if ( Any.isString(value) ) {\n result.value = this.getSafeValue({ value });\n }\n\n if ( Any.isObject(value) ) {\n Obj.assign(result, { value: this.getSafeValue(value), fallback: Obj.get(value, 'fallback', null) })\n }\n\n builder[UUID()] = result;\n });\n\n Obj.each(Obj.get(el, `props`, {}), (value, sey) => {\n builder[UUID()] = { type: 'props', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n Obj.each(Obj.get(el, `attrs`, {}), (value, sey) => {\n builder[UUID()] = { type: 'attrs', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n Obj.each(Obj.get(el, `on`, {}), (value, sey) => {\n builder[UUID()] = { type: 'on', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n if ( Any.isEmpty(key) ) {\n return builder;\n }\n\n this.$nextTick(() => {\n Obj.set(this, `${key}.builder`, builder);\n });\n\n return builder;\n },\n\n addProp(key)\n {\n let value = Obj.get(this, `${key}.builder`, {});\n\n Obj.set(value, UUID(), {\n type: 'props', code: 'string', key: '', value: '', fallback: null\n });\n\n Obj.set(this, `${key}.builder`, value);\n },\n\n removeProp(key, prop)\n {\n Obj.unset(this, `${key}.builder.${prop}`);\n\n this.applyProps(key);\n },\n\n collapseElement(key)\n {\n Arr.toggle(this.collapse, key);\n },\n\n addElement(key)\n {\n let value = Obj.get(this, key, {});\n\n Obj.set(value, 'div:' + UUID(), {\n order: (Any.vals(value).length + 1) * 100, props: { modelValue: '$scope.list' }, content: {}\n });\n\n Obj.assign(this, key, value);\n },\n\n removeElement(key)\n {\n Obj.unset(this, key);\n },\n\n moveupElement(key)\n {\n let [el, childs] = [\n Obj.get(this, key), Obj.get(this, key.replace(/\\.[^.]+$/, ''))\n ];\n\n let close = Number.MIN_VALUE;\n\n Arr.each(childs, (sub) => {\n if ( sub.order < el.order ) close = Math.max(close, sub.order);\n });\n\n if ( close === Number.MIN_VALUE ) {\n return;\n }\n\n let replacement = Arr.find(childs, {\n order: close\n });\n\n Obj.assign(replacement, {\n order: el.order\n });\n\n Obj.assign(el, { order: close });\n },\n\n movedownElement(key)\n {\n let [el, childs] = [\n Obj.get(this, key), Obj.get(this, key.replace(/\\.[^.]+$/, ''))\n ];\n\n let close = Number.MAX_VALUE;\n\n Arr.each(childs, (sub) => {\n if ( sub.order > el.order ) close = Math.min(close, sub.order);\n });\n\n if ( close === Number.MAX_VALUE ) {\n return;\n }\n\n let replacement = Arr.find(childs, {\n order: close\n });\n\n Obj.assign(replacement, {\n order: el.order\n });\n\n Obj.assign(el, { order: close });\n },\n\n },\n\n renderTools(el, value, key)\n {\n let rootProps = {\n //\n };\n\n rootProps['onDblclick'] = () => {\n this.collapseElement(key);\n };\n\n let collapseProps = {\n href: 'javascript:void(0)',\n };\n\n collapseProps['onClick'] = () => {\n this.collapseElement(key);\n };\n\n let addProps = {\n href: 'javascript:void(0)',\n };\n\n addProps['onClick'] = () => {\n this.addElement(`${key}.content`);\n };\n\n let removeProps = {\n href: 'javascript:void(0)',\n };\n\n removeProps['onClick'] = () => {\n this.removeElement(key);\n };\n\n let moveupProps = {\n href: 'javascript:void(0)',\n };\n\n moveupProps['onClick'] = () => {\n this.moveupElement(key);\n };\n\n let movedownProps = {\n href: 'javascript:void(0)',\n };\n\n movedownProps['onClick'] = () => {\n this.movedownElement(key);\n };\n\n\n return (\n <div class=\"n-builder__tools\" {...rootProps}>\n <div class=\"n-builder__collapse\">\n <a {...collapseProps}><i class=\"fa fa-bars\"></i></a>\n </div>\n <div class=\"n-builder__name\">\n {key.replace(/^.*?([^\\.:]+):([^\\.:]+)$/, '$1')}<span>{key.replace(/^.*?([^\\.:]+):([^\\.:]+)$/, '$2')}</span>\n </div>\n <div class=\"n-builder__move\">\n <a {...moveupProps}><i class=\"fa fa-angle-up\"></i></a>\n <a {...movedownProps}><i class=\"fa fa-angle-down\"></i></a>\n </div>\n <div class=\"n-builder__add\">\n <a {...addProps}><i class=\"fa fa-plus\"></i></a>\n </div>\n <div class=\"n-builder__remove\">\n <a {...removeProps}><i class=\"fa fa-trash\"></i></a>\n </div>\n </div>\n );\n },\n\n renderProp(el, sub, key)\n {\n if ( sub === \"null\" ) {\n return null;\n }\n\n let group = key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$1')\n let value = Obj.get(this.$data, `${key}.builder.${sub}`, {});\n\n let props = Obj.clone(Obj.get(window.NanoBuilderIndexies, `${group}.props`, {}));\n\n props = Obj.assign({}, window.NanoBuilderProps, props);\n\n Obj.each(props, (prop, index) => {\n if ( ! Any.isEmpty(prop.for) && ! Arr.has(prop.for, value.type) ) {\n props = Obj.unset(props, index);\n }\n });\n\n let typeProps = {\n size: 'sm', options: window.NanoBuilderPropType\n };\n\n typeProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let keyProps = {\n size: 'sm', allowCreate: true, options: props, optionsLabel: '$index'\n };\n\n keyProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let codeProps = {\n size: 'sm', options: window.NanoBuilderPropCode\n };\n\n codeProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let values = Obj.get(props, `${value.key}.options`, []);\n\n let valueInputProps = {\n size: 'sm', model: this.model, scope: this.scope\n };\n\n valueInputProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let valueHtml = (\n <NReferencePicker vModel={value.value} {...valueInputProps} />\n );\n\n let fallbackProps = {\n size: 'sm', minRows: 1, autoRows: true\n };\n\n fallbackProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let tooltipHtml = (\n <div class=\"n-builder_prop-text\">\n <p>{Obj.get(props, `${value.key}.desc`, '')}</p>\n </div>\n );\n\n return (\n <div class=\"n-builder_prop\">\n <div class=\"n-builder_prop-type\">\n <NSelect vModel={value.type} {...typeProps} />\n </div>\n <div class=\"n-builder_prop-key\">\n <NSelect vModel={value.key} {...keyProps} />\n </div>\n <div class=\"n-builder_prop-func\">\n <NSelect vModel={value.code} {...codeProps} />\n </div>\n <div class=\"n-builder_prop-value\">\n {valueHtml}\n </div>\n <div class=\"n-builder_prop-fallback\">\n <NInput vModel={value.fallback} {...fallbackProps} />\n </div>\n <div class=\"n-builder_prop-button\">\n <NButton size=\"sm\" type=\"danger\" onClick={() => this.removeProp(key, sub)}>Remove</NButton>\n </div>\n </div>\n );\n },\n\n renderProps(el, value, key)\n {\n if ( !Arr.has(this.collapse, key) ) {\n return null;\n }\n\n let elementProps = {\n options: window.NanoBuilderTypes, allowCreate: true, modelValue: key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$1'),\n };\n\n elementProps['onUpdate:modelValue'] = (value) => {\n this.changeElement(key, value);\n };\n\n let aliasProps = {\n modelValue: key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$2'),\n };\n\n aliasProps['onUpdate:modelValue'] = (value) => {\n this.changeAlias(key, value);\n };\n\n let plainProps = {\n modelValue: Obj.get(value, 'builder.null.type'),\n options: {\n 'object': this.trans('Object'),\n 'string': this.trans('String'),\n }\n };\n\n plainProps['onUpdate:modelValue'] = (value) => {\n this.changeType(key, value);\n };\n\n let addProps = {\n type: 'primary', size: 'sm', link: true\n };\n\n addProps['onClick'] = () => {\n this.addProp(key, value);\n };\n\n let props = Obj.get(value, `builder`);\n\n if ( ! Obj.has(value, 'builder') ) {\n props = this.buildProps(el, key, value);\n }\n\n return (\n <NForm class=\"n-builder__props\">\n <NFormItem class=\"n-builder__element-type\" label={this.trans('Type')}>\n <NSelect {...elementProps} />\n </NFormItem>\n <NFormItem class=\"n-builder__element-alias\" label={this.trans('Alias')}>\n <NInput {...aliasProps} />\n </NFormItem>\n <NFormItem class=\"n-builder__element-plain\" label={this.trans('Content')}>\n <NSelect {...plainProps}>{this.trans('Enable plain')}</NSelect>\n </NFormItem>\n <div class=\"n-builder__element-prop\">\n <NButton {...addProps}>Add property</NButton>\n </div>\n <div class=\"n-builder__element-list\">\n {Arr.each(props, (prop, sub) => this.ctor('renderProp')(el, sub, key))}\n </div>\n </NForm>\n );\n },\n\n renderElement(el, value, key)\n {\n let classList = [\n 'n-builder__element'\n ];\n\n if ( Arr.has(this.collapse, key) ) {\n classList.push('is-open');\n }\n\n let builderHtml = () => {\n return this.ctor('renderBuilder')(value.content || {}, `${key}.content`);\n };\n\n if ( value.builder[\"null\"][\"type\"] === 'string' ) {\n builderHtml = () => {\n return (<div><NInput vModel={value.content} /></div>);\n };\n }\n\n return (\n <div class={classList}>\n {this.ctor('renderTools')(el, value, key)}\n {this.ctor('renderProps')(el, value, key)}\n {builderHtml()}\n </div>\n );\n },\n\n renderBuilder(el, key)\n {\n if ( Any.isEmpty(el) ) {\n return null;\n }\n\n let items = Arr.each(Obj.sort(Obj.clone(el), 'order'), (v) => {\n\n let args = [\n Obj.get(this.$data, key, {}),\n Obj.get(this.$data, [key, v._key], {}),\n `${key}.${v._key}`\n ];\n\n return this.ctor('renderElement')(...args);\n });\n\n return (\n <div class=\"n-builder__frame\">\n {items}\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-builder__body\">\n {this.ctor('renderBuilder')(this.safevar, 'safevar')}\n </div>\n );\n },\n\n renderHead()\n {\n let addProps = {\n type: 'primary'\n };\n\n addProps['onClick'] = () => {\n this.addElement('safevar');\n };\n\n let addHtml = (\n <div class=\"n-builder__head-add\">\n <NButton {...addProps}>{this.trans('Add root element')}</NButton>\n </div>\n );\n\n let demoProps = {\n type: 'primary'\n };\n\n demoProps['onClick'] = () => {\n this.demo = true;\n };\n\n let demoHtml = (\n <div class=\"n-builder__head-demo\">\n <NButton {...demoProps}>{this.trans('Render demo')}</NButton>\n </div>\n );\n\n return (\n <div class=\"n-builder__head\">\n {[addHtml, demoHtml]}\n </div>\n );\n },\n\n renderOutput()\n {\n return (\n <div class=\"n-builder__output\">\n <pre>{this.exportJson(this.safevar)}</pre>\n </div>\n );\n },\n\n renderDemo()\n {\n if ( ! this.renderDemo || ! this.demo ) {\n return null;\n }\n\n let renderFunction = this.$slots.default;\n\n if ( Any.isEmpty(renderFunction) ) {\n renderFunction = ({ render }) => render();\n }\n\n let modalProps = {\n width: '100%',\n height: '100%'\n };\n\n let configProps = {\n modelValue: this.model, scope: this.scope, config: this.exportExecutable(this.safevar)\n };\n\n let renderContent = () => {\n return ( <NConfigNext {...configProps} />);\n };\n\n return (\n <NModal vModel={this.demo} {...modalProps}>\n {renderFunction({ render: renderContent })}\n </NModal>\n );\n },\n\n render()\n {\n let classList = [\n 'n-builder',\n ];\n\n return (\n <div class={classList}>\n {[\n this.ctor('renderBody')(), this.ctor('renderHead')(), this.ctor('renderOutput')(), this.ctor('renderDemo')(),\n ]}\n </div>\n );\n }\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NReferencePanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return \"\";\n },\n type: [String]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n },\n\n data()\n {\n return {\n expanded: [], selected: null, modelTree: this.buildTree(this.model, '$model'), scopeTree: this.buildTree(this.scope, '$scope')\n };\n },\n\n methods: {\n\n buildTree(value, path = '')\n {\n let result = {};\n\n if ( ! Any.isPlain(value) && ! Obj.get(value, '__v_skip') ) {\n return result;\n }\n\n for(var key in value) {\n\n let [ref, val] = [\n `${path}.${key}`, value[key]\n ];\n\n if ( Any.isPlain(val) ) {\n val = this.buildTree(val, ref);\n }\n\n let type = typeof val;\n\n if ( Any.isArray(val) ) {\n type = 'array';\n }\n\n result[key] = {\n path: ref, value: val, type: type\n };\n\n }\n\n return result;\n },\n\n submitItem(value)\n {\n this.$emit('update:modelValue', value.path);\n },\n\n selectItem(value)\n {\n this.selected = value;\n },\n\n expandItem(value)\n {\n if ( value.type === 'object' ) {\n Arr.toggle(this.expanded, value.path);\n }\n }\n\n },\n\n renderLeaf(value, key)\n {\n let classList = [\n 'n-reference-panel__item',\n 'n-reference-panel__item--' + value.type,\n ];\n\n if ( Obj.get(this.selected, 'path') === value.path) {\n classList.push('is-selected');\n }\n\n if ( value.type === 'object' ) {\n classList.push('has-childs');\n }\n\n if ( Arr.has(this.expanded, value.path) ) {\n classList.push('is-expanded');\n }\n\n return (\n <div class={classList} onDblclick={() => this.submitItem(value)}>\n <div class=\"n-reference-panel__expand\" onClick={() => this.expandItem(value)}>\n <i class=\"fa fa-angle-right\"></i>\n </div>\n <div class=\"n-reference-panel__name\" onClick={() => this.selectItem(value)}>\n {key}\n </div>\n <div class=\"n-reference-panel__type\" onClick={() => this.selectItem(value)}>\n {value.type}\n </div>\n <div class=\"n-reference-panel__pick\" onClick={() => this.submitItem(value)}>\n <i class=\"fa fa-expand\"></i>\n </div>\n </div>\n );\n },\n\n renderTree(value, key)\n {\n let childItems = Arr.each(value.value, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n let childHtml = (\n <div class=\"n-reference-panel__childs\">\n {childItems}\n </div>\n );\n\n if ( ! Arr.has(this.expanded, value.path) ) {\n childHtml = null;\n }\n\n return [this.ctor('renderLeaf')(value, key), childHtml];\n },\n\n renderItem(value, key)\n {\n if ( value.type === 'object' ) {\n return this.ctor('renderTree')(value, key);\n }\n\n return this.ctor('renderLeaf')(value, key);\n },\n\n renderModel()\n {\n let modelHtml = Arr.each(this.modelTree, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n return (\n <div class=\"n-reference-panel__model\">\n {modelHtml}\n </div>\n );\n },\n\n renderScope()\n {\n let scopeHtml = Arr.each(this.scopeTree, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n return (\n <div class=\"n-reference-panel__scope\">\n {scopeHtml}\n </div>\n );\n },\n\n render()\n {\n return (\n <div class=\"n-reference-panel\">\n {[this.ctor('renderModel')(), this.ctor('renderScope')()]}\n </div>\n );\n }\n\n}","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NReferencePicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n width: {\n default()\n {\n return '100%';\n },\n type: [String]\n },\n\n height: {\n default()\n {\n return '100%';\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return {\n modal: false, tempValue: this.modelValue\n };\n },\n\n methods: {\n\n updateValue(value)\n {\n this.$emit('update:modelValue', this.tempValue = value);\n }\n\n },\n\n renderModal()\n {\n if ( ! this.modal ) {\n return null;\n }\n\n let modalProps = {\n modelValue: true,\n width: this.width,\n height: this.height,\n };\n\n modalProps['onClose'] = () => {\n this.modal = false;\n };\n\n let panelProps = {\n model: this.model, scope: this.scope,\n };\n\n panelProps['onUpdate:modelValue'] = (value) => {\n this.updateValue(value); this.modal = false;\n };\n\n let slots = {\n //\n };\n\n slots['body'] = () => (\n <NReferencePanel class=\"in-modal\" {...panelProps} />\n );\n\n return (\n <NModal {...modalProps} v-slots={slots} />\n );\n },\n\n renderInput()\n {\n let inputProps = {\n modelValue: this.tempValue,\n icon: 'fa fa-expand',\n size: this.size,\n };\n\n inputProps['onUpdate:modelValue'] = (value) => {\n this.updateValue(value);\n };\n\n inputProps['onBlur'] = (e) => {\n this.$emit('onBlur', e);\n };\n\n inputProps['onIconClick'] = () => {\n this.modal = true;\n };\n\n return (\n <NInput {...inputProps} />\n );\n },\n\n render()\n {\n return (\n <div class=\"n-reference-picker\">\n {[this.ctor('renderInput')(), this.ctor('renderModal')()]}\n </div>\n );\n }\n\n}","import { Arr, Obj, Dom, Any, Str, Event } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NScrollbar',\n\n provide()\n {\n return {\n NScrollbar: this\n };\n },\n\n props: {\n\n options: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n fixture: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n allowNative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n framerate: {\n default()\n {\n return 24;\n },\n type: [Number]\n },\n\n wrapClass: {\n default()\n {\n return 'n-scrollbar__wrap';\n }\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n native: false\n };\n },\n\n beforeMount()\n {\n this.adaptScrollBehavior();\n },\n\n mounted()\n {\n this.bindAdaptHeight();\n this.bindAdaptWidth();\n\n let passive = {\n passive: true, uid: this._.uid\n };\n\n Event.bind('NScrollbar:resize',\n this.onResize, this._.uid);\n\n Event.bind('NResizer:moved',\n this.onUpdate, this._.uid);\n\n Dom.find(window).on('resize',\n this.onResize, passive);\n\n Dom.find(this.$refs.content).on('scroll',\n this.onScroll, passive);\n },\n\n updated()\n {\n if ( this.passedHeight || this.passedWidth ) {\n Dom.find(this.$el).addClass('n-ready');\n }\n },\n\n beforeUnmount()\n {\n this.unbindAdaptHeight();\n this.unbindAdaptWidth();\n\n let passive = {\n passive: true, uid: this._.uid\n };\n\n Event.unbind('NScrollbar:resize',\n this._.uid);\n\n Event.unbind('NResizer:moved',\n this._.uid);\n\n Dom.find(window).off('resize',\n null, passive);\n\n Dom.find(this.$el).off('scroll',\n null, passive);\n },\n\n methods: {\n\n scrollTo(x = 0, y = 0, delay = 0)\n {\n Any.delay(() => this.onScrollTo(x, y), delay);\n },\n\n onScrollTo(x = 0, y = 0)\n {\n if ( this.$refs.content ) {\n this.$refs.content.scrollTop = y;\n this.$refs.content.scrollLeft = x;\n }\n },\n\n scrollIntoView(selector, delay = 0)\n {\n Any.delay(() => this.onScrollIntoView(selector), delay);\n },\n\n onScrollIntoView(selector)\n {\n let $el = Dom.find(this.$el).find(selector);\n\n let scrollTop = this.$refs.content\n .scrollTop;\n\n let outerHeight = this.$refs.content.\n clientHeight;\n\n let offsetTop = $el.offsetTop(this.$el);\n\n if ( offsetTop < scrollTop ) {\n this.$refs.content.scrollTop = offsetTop;\n }\n\n if ( offsetTop + $el.height() >= scrollTop + outerHeight ) {\n this.$refs.content.scrollTop = offsetTop - outerHeight + $el.height();\n }\n\n let scrollLeft = this.$refs.content\n .scrollLeft;\n\n let outerWidth = this.$refs.content.\n clientWidth;\n\n let offsetLeft = $el.offsetLeft(this.$el);\n\n if ( offsetLeft < scrollLeft ) {\n this.$refs.content.scrollLeft = offsetLeft;\n }\n\n if ( offsetLeft + $el.width() >= scrollLeft + outerWidth ) {\n this.$refs.content.scrollLeft = offsetLeft - outerWidth + $el.width();\n }\n },\n\n adaptScrollBehavior()\n {\n let $dom = Dom.make('div', { classList: ['n-scrollbar-test'] })\n .appendTo(document.body).get(0);\n\n Dom.make('div').appendTo($dom);\n\n this.native = $dom.clientWidth === $dom.offsetWidth ||\n $dom.clientHeight === $dom.offsetHeight;\n\n $dom.remove();\n },\n\n adaptScrollHeight()\n {\n if ( this.native && this.allowNative ) {\n return;\n }\n\n // let offsetHeight = this.$refs.content.clientHeight -\n // this.$refs.content.offsetHeight;\n //\n // let offsetWidth = this.$refs.content.clientWidth -\n // this.$refs.content.offsetWidth;\n\n let outerHeight = this.$refs.content.\n clientHeight || 0;\n\n if ( this.native && ! this.allowNative ) {\n outerHeight -= 16;\n }\n\n // if ( offsetHeight === 0 && this.overflowX ) {\n // outerHeight -= 15;\n // }\n\n let innerHeight = this.$refs.content\n .scrollHeight || 0;\n\n let virtualHeight = 0;\n\n Dom.find(this.$refs.content).childs().each((el) => {\n virtualHeight += Dom.find(el).height() || 0;\n });\n\n if ( this.native && ! this.allowNative ) {\n innerHeight -= 16;\n }\n\n if ( virtualHeight > innerHeight ) {\n innerHeight = virtualHeight;\n }\n\n // if ( offsetHeight === 0 && this.overflowX ) {\n // innerHeight -= 15;\n // }\n\n let isSameOld = outerHeight === this.outerHeight &&\n innerHeight === this.innerHeight;\n\n if ( isSameOld ) {\n return;\n }\n\n this.outerHeight = outerHeight;\n this.innerHeight = innerHeight;\n\n let height = (outerHeight / innerHeight)\n * outerHeight;\n\n let barHeight = Math.max(height, 50);\n\n let maxHeight = Math.ceil((outerHeight / innerHeight) *\n (innerHeight - outerHeight));\n\n this.heightRatio = (maxHeight - (barHeight - height)\n - this.offsetY) / maxHeight;\n\n Dom.find(this.$refs.vbar).css({\n height: (this.barHeight = Math.ceil(barHeight)) + 'px'\n });\n\n // let hasNativeBar = offsetWidth !== 0 && this.overflowY;\n //\n // if ( hasNativeBar ) {\n // Dom.find(this.$el).addClass('has-native-vbar');\n // }\n //\n // if ( hasNativeBar && this.overflowX ) {\n // Dom.find(this.$el).addClass('has-native-hbar');\n // }\n\n let hasVtrack = outerHeight && outerHeight < innerHeight;\n\n if ( hasVtrack ) {\n Dom.find(this.$el).addClass('has-vtrack');\n }\n\n if ( ! hasVtrack ) {\n Dom.find(this.$el).removeClass('has-vtrack');\n }\n\n // if ( hasVtrack && ! hasNativeBar ) {\n // Event.fire('NScrollbar:native');\n // }\n\n this.adaptScrollPosition();\n },\n\n adaptScrollWidth()\n {\n if ( this.native && this.allowNative ) {\n return;\n }\n\n // let offsetWidth = this.$refs.content.clientWidth -\n // this.$refs.content.offsetWidth;\n //\n // let offsetHeight = this.$refs.content.clientHeight -\n // this.$refs.content.offsetHeight;\n\n let outerWidth = this.$refs.content.\n clientWidth || 0;\n\n if ( this.native && ! this.allowNative ) {\n outerWidth -= 16;\n }\n\n // if ( offsetWidth === 0 && this.overflowY ) {\n // outerWidth -= 15;\n // }\n\n let innerWidth = this.$refs.content\n .scrollWidth || 0;\n\n let virtualWidth = 0;\n\n Dom.find(this.$refs.content).childs().each((el) => {\n virtualWidth += Dom.find(el).width() || 0;\n });\n\n if ( this.native && ! this.allowNative ) {\n innerWidth -= 16;\n }\n\n if ( virtualWidth > innerWidth ) {\n innerWidth = virtualWidth;\n }\n\n // if ( offsetWidth === 0 && this.overflowY ) {\n // innerWidth -= 15;\n // }\n\n let isSameOld = outerWidth === this.outerWidth &&\n innerWidth === this.innerWidth;\n\n if ( isSameOld ) {\n return;\n }\n\n this.outerWidth = outerWidth;\n this.innerWidth = innerWidth;\n\n let width = (outerWidth / innerWidth)\n * outerWidth;\n\n let barWidth = Math.max(width, 50);\n\n let maxWidth = Math.ceil((outerWidth / innerWidth) *\n (innerWidth - outerWidth));\n\n this.widthRatio = (maxWidth - (barWidth - width)\n - this.offsetX) / maxWidth;\n\n Dom.find(this.$refs.hbar).css({\n width: (this.barWidth = Math.ceil(barWidth)) + 'px'\n });\n\n // let hasNativeBar = offsetHeight && this.overflowX;\n\n // if ( hasNativeBar ) {\n // Dom.find(this.$el).addClass('has-native-hbar');\n // }\n //\n // if ( hasNativeBar && this.overflowY ) {\n // Dom.find(this.$el).addClass('has-native-vbar');\n // }\n\n let hasHtrack = outerWidth && outerWidth < innerWidth;\n\n if ( hasHtrack ) {\n Dom.find(this.$el).addClass('has-htrack');\n }\n\n if ( ! hasHtrack ) {\n Dom.find(this.$el).removeClass('has-htrack');\n }\n\n // if ( hasHtrack && ! hasNativeBar ) {\n // Event.fire('NScrollbar:native');\n // }\n\n this.adaptScrollPosition();\n },\n\n adaptScrollPosition(scroll = {})\n {\n if ( this.native && this.allowNative ) {\n return;\n }\n\n if ( ! scroll.top ) {\n scroll.top = this.$refs.content.scrollTop;\n }\n\n if ( ! scroll.left ) {\n scroll.left = this.$refs.content.scrollLeft;\n }\n\n let vbarTop = Math.ceil((this.outerHeight / this.innerHeight) *\n scroll.top * this.heightRatio) || 0;\n\n if ( ! this.vbarTop || vbarTop !== this.vbarTop ) {\n\n Dom.find(this.$refs.vbar).css({\n transform: `translateY(${vbarTop}px) translateZ(0)`\n });\n\n this.vbarTop = vbarTop;\n }\n\n let hbarLeft = Math.ceil((this.outerWidth / this.innerWidth) *\n scroll.left * this.widthRatio) || 0;\n\n if ( ! this.hbarLeft || hbarLeft !== this.hbarLeft ) {\n\n Dom.find(this.$refs.hbar).css({\n transform: `translateX(${hbarLeft}px) translateZ(0)`\n });\n\n this.hbarLeft = hbarLeft;\n }\n },\n\n adaptHeight()\n {\n if ( ! this.cacheChildEl ) {\n this.cacheChildEl = Dom.find(this.$refs.content).child();\n }\n\n let height = this.cacheChildEl\n .height();\n\n if ( ! this.cacheWindwoEl ) {\n this.cacheWindwoEl = Dom.find(this.$el);\n }\n\n let window = this.cacheWindwoEl\n .innerHeight();\n\n if ( height === this.passedHeight && window === this.windowCache ) {\n return;\n }\n\n this.windowCache = window;\n\n if ( this.overflowY ) {\n this.adaptScrollHeight();\n }\n\n if ( window ) {\n this.passedHeight = height;\n }\n\n let style = {\n height: (height + 1) + 'px'\n };\n\n if ( ! this.relative ) {\n return Any.delay(this.onSizechange, 100);\n }\n\n Dom.find(this.$refs.spacer).child().css(style);\n },\n\n bindAdaptHeight()\n {\n this.refreshHeight = setInterval(this.adaptHeight,\n 1000 / this.framerate);\n },\n\n unbindAdaptHeight()\n {\n clearInterval(this.refreshHeight);\n },\n\n adaptWidth()\n {\n if ( this.resizeTimer ) {\n return;\n }\n\n let width = Dom.find(this.$refs.content)\n .child().width();\n\n let window = Dom.find(this.$el)\n .innerWidth();\n\n if ( width === this.passedWidth ) {\n return;\n }\n\n if ( this.overflowX ) {\n this.adaptScrollWidth();\n }\n\n if ( window ) {\n this.passedWidth = width;\n }\n\n let style = {\n width: width + 'px'\n };\n\n if ( this.fixture ) {\n this.onUpdate();\n }\n\n if ( ! this.relative ) {\n return Any.delay(this.onSizechange, 100);\n }\n\n Dom.find(this.$refs.spacer).child().css(style);\n },\n\n bindAdaptWidth()\n {\n this.refreshWidth = setInterval(this.adaptWidth,\n 1000 / this.framerate);\n },\n\n unbindAdaptWidth()\n {\n clearInterval(this.refreshWidth);\n },\n\n onScroll(event)\n {\n let scroll = {\n top: this.$refs.content.scrollTop,\n left: this.$refs.content.scrollLeft\n };\n\n let scrollUpdate = () => {\n this.$emit('scrollupdate', scroll.top, scroll.left);\n }\n\n this.$nextTick(scrollUpdate);\n this.adaptScrollPosition(scroll);\n },\n\n onSizechange(event)\n {\n let height = Dom.find(this.$el).height();\n let width = Dom.find(this.$el).width();\n\n if ( ! height || ! width ) {\n return;\n }\n\n if ( this.passedHeight || this.passedWidth ) {\n Dom.find(this.$el).addClass('is-ready');\n }\n\n this.$emit('sizechange', height, width, this.$el);\n },\n\n onResize()\n {\n if ( ! this.fixture ) {\n return;\n }\n\n Dom.find(this.$refs.content)\n .child().css(null);\n\n clearTimeout(this.resizeTimer);\n\n this.resizeTimer = setTimeout(\n this.onUpdate, 500);\n\n Dom.find(this.$el).fire('resized');\n },\n\n onUpdate()\n {\n if ( ! this.fixture || ! this.$refs.content ) {\n return;\n }\n\n let $inner = Dom.find(this.$refs.content)\n .child();\n\n let height = $inner.actual(() => {\n return $inner.scrollHeight();\n });\n\n if ( height !== this.passedHeight ) {\n $inner.css({ height: height + 'px' });\n }\n\n let width = $inner.actual(() => {\n return $inner.scrollWidth() - 1;\n });\n\n if ( width !== this.passedWidth ) {\n $inner.css({ width: width + 'px' });\n }\n\n delete this.resizeTimer;\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onVbarMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.stopPropagation();\n\n Dom.find(document).on(this.mousemove,\n this.onVbarMousemove, this._.uid);\n\n Dom.find(document).on(this.mouseup,\n this.onVbarMouseup, this._.uid);\n\n this.scrollTop = this.$refs.content\n .scrollTop;\n\n this.clientY = this.getTouchEvent(event)\n .clientY;\n },\n\n onVbarMousemove(event)\n {\n let clientY = this.getTouchEvent(event)\n .clientY;\n\n let top = (this.outerHeight / this.innerHeight) *\n this.scrollTop * this.heightRatio;\n\n let offset = (clientY - this.clientY) + top;\n\n let height = (this.outerHeight -\n this.barHeight - this.offsetY);\n\n this.$refs.content.scrollTop = offset / height *\n (this.innerHeight - this.outerHeight);\n },\n\n onVbarMouseup(event)\n {\n Dom.find(document).off(this.mousemove,\n null, this._.uid);\n\n Dom.find(document).off(this.mouseup,\n null, this._.uid);\n },\n\n onHbarMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.stopPropagation();\n\n Dom.find(document).on(this.mousemove,\n this.onHbarMousemove, this._.uid);\n\n Dom.find(document).on(this.mouseup,\n this.onHbarMouseup, this._.uid);\n\n this.scrollLeft = this.$refs.content\n .scrollLeft;\n\n this.clientX = event.clientX;\n },\n\n onHbarMousemove(event)\n {\n let top = (this.outerWidth / this.innerWidth) *\n this.scrollLeft * this.widthRatio;\n\n let offset = (event.clientX - this.clientX) + top;\n\n let width = (this.outerWidth -\n this.barWidth - this.offsetX);\n\n this.$refs.content.scrollLeft = offset / width *\n (this.innerWidth - this.outerWidth);\n },\n\n onHbarMouseup(event)\n {\n Dom.find(document).off(this.mousemove,\n null, this._.uid);\n\n Dom.find(document).off(this.mouseup,\n null, this._.uid);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-scrollbar'\n ];\n\n if ( this.native ) {\n classList.push('n-scrollbar--native');\n }\n\n if ( ! this.allowNative ) {\n classList.push('n-scrollbar--forced');\n }\n\n if ( this.touch ) {\n classList.push('n-scrollbar--touch');\n }\n\n if ( window.WIN ) {\n classList.push('n-windows');\n }\n\n if ( this.overflowY ) {\n classList.push('n-overflow-y');\n }\n\n if ( this.overflowX ) {\n classList.push('n-overflow-x');\n }\n\n let vbarProps = {\n ['on' + Str.ucfirst(this.mousedown)]: this.onVbarMousedown\n };\n\n let hbarProps = {\n ['on' + Str.ucfirst(this.mousedown)]: this.onHbarMousedown\n };\n\n return (\n <div class={classList} {...Obj.except(this.$attrs, ['class'])}>\n <div class=\"n-scrollbar-content\" ref=\"content\">\n <div class={this.wrapClass}>\n { this.$slots.default && this.$slots.default() }\n </div>\n </div>\n <div class=\"n-scrollbar-spacer\" ref=\"spacer\">\n <div class={this.wrapClass}>\n { /* Adapt inner height */ }\n </div>\n </div>\n <div ref=\"hbar\" class=\"n-scrollbar-h\" {...hbarProps}></div>\n <div ref=\"vbar\" class=\"n-scrollbar-v\" {...vbarProps}></div>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any, Dom } from \"@kizmann/pico-js\";\n\nwindow.DEBUG_NVSCROLL = false;\n\nexport default {\n\n name: 'NVirtualscroller',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n\n },\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n itemHeight: {\n default()\n {\n return 34;\n }\n },\n\n itemWidth: {\n default()\n {\n return 0;\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n deathzone: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n framerate: {\n default()\n {\n return 65;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n let state = {\n start: 0, end: 0, grid: 1\n };\n\n return {\n state, buffer: [], width: 0, height: 0, load: true\n };\n },\n\n watch: {\n\n 'items': function () {\n this.updateRender();\n }\n\n },\n\n beforeMount()\n {\n this.scrollTop = 0;\n },\n\n mounted()\n {\n\n this.bindAdaptScroll()\n },\n\n\n beforeUnmount()\n {\n this.unbindAdaptScroll()\n },\n\n methods: {\n\n bindAdaptScroll()\n {\n this.refreshScroll = setInterval(this.onScrollupdate,\n 1000 / this.framerate);\n },\n\n unbindAdaptScroll()\n {\n clearInterval(this.refreshScroll);\n },\n\n isIndexRendered(index)\n {\n if ( ! this.itemHeight ) {\n return true;\n }\n\n return this.state.start < index &&\n this.state.end > index;\n },\n\n scrollIntoView(index)\n {\n if ( ! this.$refs.scrollbar ) {\n return;\n }\n\n if ( index === -1 || index >= this.items.length ) {\n index = this.items.length;\n }\n\n if ( ! this.isIndexRendered(index) ) {\n return this.scrollToIndex(index);\n }\n\n let selector = `[data-index=\"${index}\"]`;\n\n this.$refs.scrollbar.scrollIntoView(selector);\n },\n\n scrollToIndex(index, delay = 0)\n {\n Any.delay(() => this.onScrollToIndex(index), delay);\n },\n\n onScrollToIndex(index)\n {\n if ( ! this.$refs.scrollbar ) {\n return;\n }\n\n let total = Math.ceil(this.items.length /\n this.state.grid);\n\n index = Math.floor(index / this.state.grid);\n\n if ( index === -1 || index >= total ) {\n index = total;\n }\n\n let targetTop = index * this.itemHeight;\n\n if ( this.scrollTop > targetTop ) {\n return this.scrollTo(0, targetTop);\n }\n\n targetTop = targetTop - this.height +\n this.itemHeight;\n\n this.scrollTo(0, targetTop);\n },\n\n scrollTo(x = 0, y = 0, delay = 0)\n {\n Any.delay(() => this.onScrollTo(x, y), delay);\n },\n\n onScrollTo(x = 0, y = 0)\n {\n if ( ! this.$refs.scrollbar ) {\n return;\n }\n\n this.$refs.scrollbar.scrollTo(x, y);\n },\n\n clearState()\n {\n this.state = { start: 0, end: 0 };\n },\n\n updateRender()\n {\n if ( ! this.$refs.scrollbar ) {\n return Any.delay(this.updateRender);\n }\n\n this.scrollTop = this.$refs.scrollbar.\n $refs.content.scrollTop;\n\n Any.async(this.refreshDriver);\n },\n\n onScrollupdate()\n {\n if ( ! this.threshold ) {\n return;\n }\n\n let scrollTop = this.$refs.scrollbar.\n $refs.content.scrollTop;\n\n if ( scrollTop === this.scrollTop ) {\n return;\n }\n\n this.scrollTop = scrollTop;\n\n let offset = this.$refs.scrollbar.$el.offsetHeight -\n this.$refs.scrollbar.$el.clientHeight;\n\n let isOutOfRange = scrollTop < 0 || scrollTop + this.height\n > this.$refs.inner.scrollHeight + offset;\n\n if ( isOutOfRange ) {\n return;\n }\n\n Any.async(this.refreshDriver);\n },\n\n onSizechange(height, width, el)\n {\n this.width = width;\n this.height = height;\n\n Any.async(this.refreshDriver);\n },\n\n\n refreshDriver(queue = true)\n {\n if ( Any.isEmpty(this.timer) ) {\n this.timer = Date.now();\n }\n\n if ( Date.now() - this.timer > 20 ) {\n queue = false;\n }\n\n clearTimeout(this.to);\n\n this.to = setTimeout(() => {\n this.refreshDriver(false);\n }, 25);\n\n if ( queue ) {\n return;\n }\n\n clearTimeout(this.to);\n\n let grid = 1;\n\n if ( this.itemWidth ) {\n grid = Math.floor((this.width - this.deathzone) /\n this.itemWidth) || 1;\n }\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n return this.state = { start: 0, end: 0, grid };\n }\n\n let total = Math.ceil(this.items.length\n / grid);\n\n let bufferItems = Math.round((this.height /\n this.itemHeight) * 0.6);\n\n let startItem = Math.round(this.scrollTop /\n this.itemHeight);\n\n let endItem = Math.round((this.scrollTop +\n this.height) / this.itemHeight);\n\n let start = (startItem - bufferItems);\n\n if ( start < 0 ) {\n start = 0;\n }\n\n let end = endItem + bufferItems;\n\n if ( end > total ) {\n end = total;\n }\n\n let state = { start, end, grid };\n\n if ( Any.isEqual(this.state, state) ) {\n return;\n }\n\n this.state = state;\n },\n\n },\n\n renderItem(passed)\n {\n passed.index = (passed.index +\n this.state.start);\n\n let topOffset = Math.round(this.itemHeight *\n passed.index);\n\n let renderFunction = this.$slots.default;\n\n if ( this.renderNode ) {\n renderFunction = this.renderNode;\n }\n\n let props = {\n 'data-index': passed.index\n };\n\n if ( this.NDraggable && this.useKeys ) {\n props.key = passed.value[this.NDraggable.uniqueProp];\n }\n\n let style = {};\n\n let isLazy = this.threshold && this.threshold <=\n this.items.length;\n\n if ( isLazy && this.state.grid === 1 ) {\n style.top = topOffset + 'px';\n }\n\n if ( this.itemHeight ) {\n style.height = this.itemHeight + 'px';\n }\n\n if ( this.state.grid !== 1 ) {\n style.width = this.itemWidth + 'px';\n }\n\n return (\n <div class=\"n-virtualscroller__item\" style={style} {...props}>\n { renderFunction(passed) }\n </div>\n );\n },\n\n renderRows()\n {\n let items = Arr.slice(this.items, this.state.start,\n this.state.end);\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n items = this.items;\n }\n\n return Arr.each(items, (value, index) => {\n return this.ctor('renderItem')({ value, index });\n });\n },\n\n renderGridRows(passed)\n {\n let topOffset = Math.round(this.itemHeight *\n (passed.index + this.state.start));\n\n let style = {};\n\n if ( this.threshold && this.threshold <= this.items.length ) {\n style.top = topOffset + 'px';\n }\n\n let counter = passed.index * this.state.start;\n\n return (\n <div data-row={passed.index} class=\"n-virtualscroller__row\" style={style}>\n {\n Arr.each(passed.chunk, (value, index) => {\n return this.ctor('renderItem')({\n value, index: index + counter\n });\n })\n }\n </div>\n );\n },\n\n renderGrid()\n {\n let chunks = Arr.chunk(this.items,\n this.state.grid);\n\n let items = Arr.slice(chunks, this.state.start,\n this.state.end);\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n items = chunks;\n }\n\n return Arr.each(items, (chunk, index) => {\n return this.ctor('renderGridRows')({ chunk, index });\n });\n },\n\n renderItems()\n {\n if ( ! this.items.length ) {\n return this.$slots.empty && this.$slots.empty() || null;\n }\n\n if ( this.state.grid === 1 ) {\n return this.ctor('renderRows')();\n }\n\n return this.ctor('renderGrid')();\n },\n\n render()\n {\n let classList = [\n 'n-virtualscroller'\n ];\n\n if ( this.threshold && this.threshold <= this.items.length ) {\n classList.push('n-virtualscroller--absolute');\n }\n\n let props = {\n overflowY: this.overflowY,\n overflowX: this.overflowX,\n offsetY: this.offsetY,\n offsetX: this.offsetX,\n onSizechange: this.onSizechange,\n };\n\n let style = {\n 'overflow-y': 'hidden'\n };\n\n let totalHeight = Math.ceil(this.items.length / this.state.grid) *\n this.itemHeight;\n\n if ( this.threshold && this.items.length ) {\n style.height = Math.ceil(totalHeight + this.offsetY) + 'px';\n }\n\n return (\n <NScrollbar class={classList} ref=\"scrollbar\" {...props}>\n <div ref=\"inner\" class=\"n-virtualscroller__inner\" style={style}>\n { this.ctor('renderItems')() }\n </div>\n </NScrollbar>\n );\n }\n\n}\n","import { Arr, Obj, Num, Any, Dom, Event, Locale, UUID } from \"@kizmann/pico-js\";\n\nwindow.dragMods = [];\n\nclass NDragCounter\n{\n\n $el = null;\n\n constructor()\n {\n this.$el = Dom.make('div', {\n classList: ['n-draggable__counter']\n });\n\n this.$el.appendTo(document.body);\n }\n\n get(event, count)\n {\n // Update dragover color/type\n this.update();\n\n this.$el.html(\n `<span>${Locale.choice(':count Item|:count Items', count)}</span>`\n );\n\n // Fix data transfer\n event.dataTransfer.setData('text/plain', '');\n\n if ( typeof event.dataTransfer.setDragImage !== 'function' ) {\n return;\n }\n\n // Set finally the drop image\n event.dataTransfer.setDragImage(this.$el.get(0), 0, 0);\n }\n\n update()\n {\n window.dragMods = window.keyMods;\n\n let classList = [\n 'n-draggable__counter'\n ];\n\n if ( Arr.has(window.dragMods, 18) ) {\n classList.push('n-modify--alt');\n }\n\n if ( Arr.has(window.dragMods, 17) ) {\n classList.push('n-modify--ctrl');\n }\n\n if ( Arr.has(window.dragMods, 91) ) {\n classList.push('n-modify--meta');\n }\n\n this.$el.attr('class', classList.join(' '));\n }\n\n}\n\nwindow.DragCounter = new NDragCounter;\n\nclass NDragIndicator\n{\n\n $el = null;\n\n parent = null;\n\n constructor(parent)\n {\n this.$el = Dom.make('div', {\n classList: ['n-draggable__indicator']\n });\n\n this.$el.appendTo(this.parent = parent);\n }\n\n resolve(event, safezone, el, strategy = 'inner')\n {\n let rect = el.getBoundingClientRect();\n\n if ( event.clientY < rect.y + safezone ) {\n strategy = 'before';\n }\n\n if ( event.clientY > rect.y + rect.height - safezone ) {\n strategy = 'after';\n }\n\n if ( Dom.find(el).hasClass('n-expanded') ) {\n strategy = strategy === 'after' ? 'inner' : strategy;\n }\n\n Arr.has(['before', 'after'], strategy) ?\n this.show(el, strategy) : this.hide();\n\n\n return strategy;\n }\n\n show(el, strategy)\n {\n let offsetTop = Dom.find(el).offsetTop(this.parent);\n\n let style = {\n top: offsetTop || 1\n };\n\n if ( strategy === 'after' ) {\n style.top = offsetTop + Dom.find(el).height();\n }\n\n this.$el.css(Obj.map(style, (item) => item + 'px'));\n }\n\n hide()\n {\n this.$el.css(null);\n }\n\n destroy()\n {\n this.$el.get(0).remove();\n }\n\n}\n\nclass NDraghandler\n{\n\n uid = null;\n\n rootNode = null;\n childNodes = {};\n\n dropNodes = [];\n cacheNodes = [];\n\n strategy = 'nodrop';\n frames = 0;\n timeout = 0;\n dragcount = {};\n\n constructor(rootNode)\n {\n this.rootNode = rootNode;\n }\n\n bindRoot(frame = null)\n {\n this.DragIndicator = new NDragIndicator(frame || this.rootNode.$el);\n\n if ( window.DragCache ) {\n this.bindDragstart.call(this, ...window.DragCache);\n }\n\n Dom.find(this.rootNode.$el).on('dragenter', (event) => {\n this.onDragenterRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragover', (event) => {\n this.onDragoverRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragleave', (event) => {\n this.onDragleaveRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragend', (event) => {\n this.onDragendRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('drop', (event) => {\n this.onDragdropRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragdrop', (event) => {\n this.onDragdropRoot(event);\n });\n\n Event.bind('NDrag:start', this.bindDragstart.bind(this),\n this.rootNode.uid);\n\n Event.bind('NDrag:end', this.bindDragend.bind(this),\n this.rootNode.uid);\n\n Event.bind('NDrag:drop', this.bindDragdrop.bind(this),\n this.rootNode.uid);\n }\n\n unbindRoot()\n {\n let events = [\n 'dragstart',\n 'dragenter',\n 'dragover',\n 'dragleave',\n 'dragend',\n 'drop',\n 'dragdrop',\n ];\n\n Dom.find(this.rootNode.$el).off(events);\n\n Event.unbind('NDrag:start', this.rootNode.uid);\n Event.unbind('NDrag:end', this.rootNode.uid);\n Event.unbind('NDrag:drop', this.rootNode.uid);\n }\n\n onDragenterRoot(event)\n {\n event.preventDefault();\n }\n\n onDragoverRoot(event)\n {\n let isNode = Dom.find(event.target)\n .closest('.n-draglist-item');\n\n if ( isNode || !this.cacheNodes.length ) {\n return;\n }\n\n event.preventDefault();\n\n if ( this.frames && Date.now() - this.frames < 135 ) {\n return;\n }\n\n let allowDrop = this.rootNode.allowDrop;\n\n if ( !Any.isFunction(allowDrop) ) {\n allowDrop = () => this.rootNode.allowDrop;\n }\n\n let rainbow = Arr.each(this.cacheNodes, (node) => {\n return !!allowDrop(node, null, this.strategy);\n });\n\n this.strategy = 'root';\n\n if ( Arr.has(rainbow, false) ) {\n this.strategy = 'nodrop';\n }\n\n this.DragIndicator.hide();\n\n if ( this.strategy !== 'nodrop' ) {\n Dom.find(this.rootNode.$el).addClass('n-dragover');\n } else {\n Dom.find(this.rootNode.$el).removeClass('n-dragover');\n }\n\n if ( this.strategy === 'nodrop' ) {\n Dom.find(this.rootNode.$el).addClass('n-nodrop');\n } else {\n Dom.find(this.rootNode.$el).removeClass('n-nodrop');\n }\n\n this.frames = Date.now();\n }\n\n onDragleaveRoot(event)\n {\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n }\n\n onDragendRoot(event)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n\n if ( this.strategy !== 'root' ) {\n return;\n }\n\n Event.fire('NDrag:end');\n }\n\n onDragdropRoot(event)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n\n if ( this.strategy !== 'root' ) {\n return;\n }\n\n event.preventDefault();\n\n this.moveNodes(null, this.strategy);\n\n Event.fire('NDrag:drop');\n }\n\n bindDragstart(group, cache)\n {\n if ( Arr.has(this.rootNode.allowGroups, group) ) {\n this.cacheNodes = JSON.parse(JSON.stringify(cache));\n }\n }\n\n bindDragend()\n {\n this.dragcount = {};\n\n this.cacheNodes = this.dropNodes = [];\n }\n\n bindDragdrop(...args)\n {\n if ( !this.dropNodes.length ) {\n return;\n }\n\n this.rootNode.tempSelected = [];\n\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected);\n\n if ( !this.rootNode.removeNode ) {\n return;\n }\n\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n this.unlinkNodes(clone);\n this.removeNodes(clone);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n onDragstartNode(event, node)\n {\n if ( !this.rootNode.isSelected(node) ) {\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected = [node.uid]);\n }\n\n let cache = Arr.each(this.rootNode.tempSelected, (id) => {\n return Arr.find(this.rootNode.virtuals, { [this.rootNode.uniqueProp]: id });\n });\n\n window.DragCounter.get(event, cache.length);\n\n Arr.map(cache, (value) => {\n return { value, item: Obj.get(this.rootNode, value.route) };\n });\n\n Event.fire('NDrag:start', this.rootNode.group,\n this.dropNodes = cache);\n\n window.DragCache = [\n this.rootNode.group, this.dropNodes\n ];\n\n this.dragcount[node.uid] = 0;\n }\n\n onDragenterNode(event, node)\n {\n event.preventDefault();\n\n if ( !this.dragcount[node.uid] ) {\n this.dragcount[node.uid] = 0;\n }\n\n this.dragcount[node.uid] ++;\n }\n\n onDragoverNode(event, node)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n event.preventDefault();\n\n if ( this.frames && Date.now() - this.frames < 45 ) {\n return;\n }\n\n let safezone = this.rootNode\n .safezone(node.$el.clientHeight);\n\n this.strategy = this.DragIndicator\n .resolve(event, safezone, node.$el);\n\n let targetNode = {\n value: node.value, item: node.item\n };\n\n let allowDrop = this.rootNode.allowDrop;\n\n if ( !Any.isFunction(allowDrop) ) {\n allowDrop = () => this.rootNode.allowDrop;\n }\n\n let rainbow = Arr.each(this.cacheNodes, (node) => {\n return !!allowDrop(node, targetNode, this.strategy);\n });\n\n let isInSelf = Arr.has(node.value.cascade,\n this.rootNode.tempSelected);\n\n rainbow.push(!isInSelf);\n\n if ( Arr.has(rainbow, false) ) {\n this.strategy = 'nodrop';\n }\n\n if ( this.strategy === 'nodrop' ) {\n this.DragIndicator.hide();\n }\n\n if ( this.strategy !== 'nodrop' ) {\n Dom.find(node.$el).addClass('n-dragover');\n Dom.find(node.$el).removeClass('n-nodrop');\n }\n\n if ( this.strategy === 'nodrop' ) {\n Dom.find(node.$el).removeClass('n-dragover');\n Dom.find(node.$el).addClass('n-nodrop');\n }\n\n this.frames = Date.now();\n }\n\n onDragleaveNode(event, node)\n {\n this.dragcount[node.uid] --;\n\n if ( this.dragcount[node.uid] !== 0 ) {\n return;\n }\n\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n }\n\n onDragendNode(event, node)\n {\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n Event.fire('NDrag:end');\n\n window.DragCache = null;\n }\n\n onDragdropNode(event, node)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n if ( this.strategy === 'nodrop' ) {\n return;\n }\n\n event.preventDefault();\n\n this.moveNodes(node, this.strategy);\n\n Event.fire('NDrag:drop');\n }\n\n bindNode(node)\n {\n if ( this.childNodes[node.uid] ) {\n this.unbindNode(node);\n }\n\n let $handle = Dom.find(node.$el);\n\n if ( this.rootNode.handle ) {\n $handle = $handle.find('[draggable]');\n }\n\n let $el = Dom.find(node.$el);\n\n $handle.on('dragstart', (event) => {\n this.onDragstartNode(event, node);\n });\n\n $el.on('dragenter', (event) => {\n this.onDragenterNode(event, node);\n });\n\n $el.on('dragover', (event) => {\n this.onDragoverNode(event, node);\n });\n\n $el.on('dragleave', (event) => {\n this.onDragleaveNode(event, node);\n });\n\n $el.on('dragend', (event) => {\n this.onDragendNode(event, node);\n });\n\n $el.on('drop', (event) => {\n this.onDragdropNode(event, node);\n });\n\n $el.on('dragdrop', (event) => {\n this.onDragdropNode(event, node);\n });\n\n this.childNodes[node.uid] = node;\n }\n\n unbindNode(node)\n {\n let $handle = Dom.find(node.$el);\n\n if ( this.rootNode.handle ) {\n $handle = $handle.find('[draggable]');\n }\n\n $handle.off('dragstart');\n\n let $el = Dom.find(node.$el);\n\n $el.off([\n 'dragenter',\n 'dragover',\n 'dragleave',\n 'dragend',\n 'drop',\n 'dragdrop',\n ]);\n\n $el.removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n delete this.childNodes[node.uid];\n }\n\n moveNodes(target, strategy) {\n\n if ( this.rootNode.items !== undefined ) {\n return this.moveNodesMany(target, strategy);\n }\n\n if ( this.rootNode.item !== undefined ) {\n return this.moveNodesOne(target, strategy);\n }\n\n return null;\n }\n\n moveNodesOne(target, strategy)\n {\n let clone = {\n items: [Obj.clone(this.rootNode.item)]\n };\n\n if ( this.rootNode.insertNode ) {\n clone = this.moveNodesRoot(clone, target);\n }\n\n if ( this.rootNode.removeNode ) {\n clone = this.removeNodes(clone);\n }\n\n let sources = Arr.each(this.cacheNodes, (node) => {\n return node.item[this.rootNode.uniqueProp];\n });\n\n let source = Arr.first(this.cacheNodes);\n\n this.rootNode.$emit('move', Obj.get(source, 'value.id'),\n Obj.get(target, 'uid'), strategy);\n\n this.rootNode.$emit('moveRaw',\n source, target, strategy);\n\n this.rootNode.$emit('update:item',\n Obj.get(source, 'item'));\n }\n\n moveNodesMany(target, strategy)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n if ( this.rootNode.removeNode ) {\n this.unlinkNodes(clone);\n }\n\n if ( !this.dropNodes.length ) {\n Arr.each(this.cacheNodes, (value, key) => {\n this.cacheNodes[key]['item'] = this.rootNode.transformDrop(value.item);\n });\n }\n\n if ( this.rootNode.insertNode && strategy === 'root' ) {\n clone = this.moveNodesRoot(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'inner' ) {\n clone = this.moveNodesInto(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'before' ) {\n clone = this.moveNodesBefore(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'after' ) {\n clone = this.moveNodesAfter(clone, target);\n }\n\n if ( this.rootNode.removeNode ) {\n clone = this.removeNodes(clone);\n }\n\n let sources = Arr.each(this.cacheNodes, (node) => {\n return node.item[this.rootNode.uniqueProp];\n });\n\n this.dropNodes = this.rootNode.tempSelected = [];\n\n let eventName = 'move';\n\n if ( Arr.has(window.dragMods, 18) ) {\n eventName = 'moveAlt';\n }\n\n if ( Arr.has(window.dragMods, 17) ) {\n eventName = 'moveCtrl';\n }\n\n if ( Arr.has(window.dragMods, 91) ) {\n eventName = 'moveMeta';\n }\n\n this.rootNode.$emit(eventName, sources,\n Obj.get(target, 'uid'), strategy);\n\n this.rootNode.$emit(eventName + 'Raw',\n this.cacheNodes, target, strategy);\n\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n unlinkNodes(clone)\n {\n Arr.each(this.dropNodes, (node) => {\n Obj.set(clone, node.value.route, null);\n });\n }\n\n removeNodes(clone, prop = 'items')\n {\n clone[prop] = Arr.filter(clone[prop], (node) => {\n return !!node;\n });\n\n Arr.map(clone[prop], (node) => {\n\n if ( !node[this.rootNode.childProp] ) {\n return node;\n }\n\n return this.removeNodes(node,\n this.rootNode.childProp);\n });\n\n return clone;\n }\n\n moveNodesRoot(clone)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n Arr.each(this.cacheNodes, (node) => {\n clone.items.push(node.item);\n });\n\n return clone;\n }\n\n moveNodesInto(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = [\n target.value.route,\n this.rootNode.childProp\n ].join('.');\n\n let children = Obj.get(clone,\n targetRoute, []);\n\n Arr.each(this.cacheNodes, (node) => {\n children.push(node.item);\n });\n\n Obj.set(clone, targetRoute, children);\n\n return clone;\n }\n\n moveNodesBefore(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = target.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n Arr.each(this.cacheNodes, (node, index) => {\n items.splice(target.value.index + index, 0, node.item);\n });\n\n Obj.set(clone, targetRoute, items);\n\n return clone;\n }\n\n moveNodesAfter(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = target.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n Arr.each(this.cacheNodes, (node, index) => {\n items.splice(target.value.index + index + 1, 0, node.item);\n });\n\n Obj.set(clone, targetRoute, items);\n\n return clone;\n }\n\n copyNode(node)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n let targetRoute = node.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n let target = Obj.except(node.item, [], {\n [this.rootNode.uniqueProp]: UUID()\n });\n\n items.splice(node.value.index + 1,\n 0, target);\n\n Obj.set(clone, targetRoute, items);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n removeNode(node)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n let targetRoute = node.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n items.splice(node.value.index, 1);\n\n Obj.set(clone, targetRoute, items);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n reduce(items, ...props)\n {\n return Arr.reduce(items, (merge, item, index) =>\n this.reduceItem(merge, item, Num.int(index), ...props), []);\n }\n\n reduceItem(merge, item, index, depth = 0, route = 'items', cascades = [])\n {\n // Get a unique id\n let unique = Obj.get(item,\n this.rootNode.uniqueProp, UUID());\n\n // Add unique to cascader\n let tempCascade = Arr.merge(cascades,\n [unique]);\n\n let virtual = {\n index: index,\n depth: depth,\n route: [route, index].join('.'),\n parent: Arr.last(cascades),\n cascade: tempCascade,\n };\n\n virtual[this.rootNode.uniqueProp] = unique;\n\n let children = Obj.get(item,\n this.rootNode.childProp, []);\n\n if ( Any.isEmpty(children) ) {\n return Arr.merge(merge, [virtual]);\n }\n\n let childRoute = [\n route, index,\n this.rootNode.childProp\n ].join('.');\n\n let props = [\n depth + 1, childRoute, tempCascade\n ]\n\n return Arr.merge(merge, [virtual],\n this.reduce(children, ...props));\n }\n\n}\n\nexport default NDraghandler;","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDraglist',\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n }\n },\n\n expanded: {\n default()\n {\n return [];\n }\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n safezone: {\n default()\n {\n return (height) => height * 0.265;\n }\n },\n\n lazyload: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 34;\n },\n type: [Number]\n },\n\n itemOffset: {\n default()\n {\n return 30;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderSelect: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderExpand: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NDraggable: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(),\n modifier: [],\n virtuals: [], \n visible: [], \n childNodes: {}, \n highlight: [],\n firstSelected: null,\n lastSelected: null,\n tempCurrent: this.current, \n tempExpanded: this.expanded, \n tempSelected: this.selected\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n\n Dom.find(window).on('keydown',\n this.watchModifierDown, this._.uid);\n\n Dom.find(window).on('keyup',\n this.watchModifierUp, this._.uid);\n },\n\n mounted()\n {\n let frame = this.$refs.virtualscroller.\n $refs.inner;\n\n this.drag.bindRoot(frame);\n\n this.$watch('tempSelected', this.watchSelected, \n { deep: true });\n\n this.refreshVirtuals();\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n\n Dom.find(document).off('keydown', null, this.uid);\n Dom.find(document).off('keyup', null, this.uid);\n },\n\n watch: {\n \n items()\n {\n if ( this.scrollTopOnChange ) {\n this.scrollTo();\n }\n\n this.refreshVirtuals();\n },\n\n virtuals()\n {\n this.filterVirtuals();\n },\n\n expanded(value)\n {\n this.tempExpanded = value;\n\n this.filterVirtuals();\n },\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n current(value)\n {\n this.tempCurrent = value;\n }\n\n },\n\n methods: {\n\n watchModifierDown(e)\n {\n Arr.add(this.modifier, e.which);\n },\n\n watchModifierUp(e)\n {\n Arr.remove(this.modifier, e.which);\n },\n\n watchSelected()\n {\n if ( ! this.tempSelected.length ) {\n return this.firstSelected = null;\n }\n\n this.firstSelected = Arr.find(this.virtuals, {\n [this.uniqueProp]: this.tempSelected[0]\n });\n },\n\n updateNode(node)\n {\n Obj.set(this, node.value.route, node.item);\n\n this.$emit('update:items', this.items);\n },\n\n findVirtual(unique)\n {\n let value = Arr.find(this.virtuals, (item) => {\n return item[this.uniqueProp] === unique;\n });\n\n if ( ! value ) {\n return null;\n }\n\n return {\n value, item: Obj.get(this, value.route, null)\n };\n },\n\n refreshVirtuals()\n {\n this.virtuals = this.drag.reduce(this.items);\n\n if ( window.DEBUG_NDLIST ) {\n console.log('Total virtual items mounted: ' + this.virtuals.length);\n }\n },\n\n filterVirtuals()\n {\n this.visible = Arr.filter(this.virtuals, (node) => {\n return Arr.contains(this.tempExpanded, node.cascade.slice(0, -1));\n });\n },\n\n getIndex(unique)\n {\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: unique\n });\n },\n\n getCurrentIndex()\n {\n if ( ! this.tempCurrent ) {\n return -1;\n }\n\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n },\n\n scrollTo(x = 0, y = 0)\n {\n if ( ! this.$refs.virtualscroller ) {\n return Any.delay(() => this.scrollTo(x, y));\n }\n\n this.$refs.virtualscroller.scrollTo(x, y);\n },\n\n scrollToIndex(index)\n {\n if ( ! this.$refs.virtualscroller ) {\n return Any.delay(() => this.scrollToIndex(index));\n }\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isDraggable(node)\n {\n let canDrag = this.allowDrag;\n\n if ( ! Any.isFunction(canDrag) ) {\n canDrag = () => this.allowDrag;\n }\n\n return canDrag(node);\n },\n\n isHighlight(node)\n {\n return Arr.has(this.highlight, node.value[this.uniqueProp]);\n },\n\n highlightNode(value, key = null)\n {\n clearTimeout(this.refresh);\n\n // Clear highlight items\n this.highlight = [];\n\n Arr.recursive(this.items, this.childProp, (node, cascade) => {\n\n let val = node;\n\n if ( !Any.isEmpty(key) ) {\n val = Obj.get(val, key);\n }\n\n if ( ! Any.isFunction(value) ) {\n value = (val) => val === value;\n }\n\n if ( ! value(val) ) {\n return;\n }\n\n Arr.each(cascade, (item) => {\n Arr.add(this.tempExpanded, item[this.uniqueProp]);\n });\n\n Arr.add(this.highlight, node[this.uniqueProp]);\n });\n\n if ( ! this.highlight.length ) {\n return;\n }\n\n this.$nextTick(this.scrollToHighlight);\n \n this.refresh = setTimeout(() =>\n this.highlight = [], this.highlightTimeout);\n \n this.filterVirtuals();\n },\n\n scrollToHighlight()\n {\n if ( ! this.highlight.length ) {\n return;\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: Arr.first(this.highlight)\n });\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isCurrent(node)\n {\n return this.renderCurrent && this.tempCurrent && \n node.value[this.uniqueProp] === this.tempCurrent[this.uniqueProp] ;\n },\n\n setCurrent(node)\n {\n let isSameNode = this.tempCurrent && \n this.tempCurrent[this.uniqueProp] === node.value[this.uniqueProp];\n\n if ( isSameNode ) {\n return;\n }\n\n this.$emit('update:current', \n this.tempCurrent = node.item);\n \n Event.fire('NDraglist:syncCurrent', node.item, this.uid);\n },\n\n setRawCurrent(index)\n {\n let route = Obj.get(this.visible, \n [index, 'route']);\n\n if ( ! route ) {\n return this.setRawCurrent(0);\n }\n\n let item = Obj.get(this, route);\n\n this.$refs.virtualscroller\n .scrollIntoView(index);\n\n this.$emit('update:current', \n this.tempCurrent = item);\n \n Event.fire('NDraglist:syncCurrent', item, this.uid);\n },\n\n setNextCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = 0;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index++;\n }\n\n if ( index >= this.visible.length ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n setPrevCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = this.visible.length - 1;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index--;\n }\n\n if ( index < 0 ) {\n index = reset;\n }\n \n this.setRawCurrent(index);\n },\n\n syncCurrent()\n {\n return ['NDraglist:syncCurrent', this.uid];\n },\n\n isDisabled(node)\n {\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n return ! canSelect(node) || (this.firstSelected &&\n node.value.depth !== this.firstSelected.depth);\n },\n\n hasChildren(node)\n {\n return !! this.getChildren(node).length;\n },\n\n getChildren(node)\n {\n return Obj.get(node.item, this.childProp, []);\n },\n\n isExpanded(node)\n {\n return Arr.has(this.tempExpanded, node.value[this.uniqueProp]);\n },\n\n expandItem(node)\n {\n if ( ! this.hasChildren(node) ) {\n return;\n }\n\n Arr.toggle(this.tempExpanded, node.value[this.uniqueProp]);\n\n this.filterVirtuals();\n },\n\n expandCurrent()\n {\n if ( ! this.tempCurrent ) {\n return;\n }\n\n let children = Obj.get(this.tempCurrent, \n this.childProp);\n\n if ( Any.isEmpty(children) ) {\n return;\n }\n\n Arr.toggle(this.tempExpanded, \n this.tempCurrent[this.uniqueProp]);\n\n this.filterVirtuals();\n },\n\n isSelected(node)\n {\n return Arr.has(this.tempSelected, node.value[this.uniqueProp]);\n },\n\n isTotalSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length === this.tempSelected;\n },\n\n isInterSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length !== this.tempSelected &&\n this.tempSelected;\n },\n\n toggleSingleNode(node)\n {\n Arr.toggle(this.tempSelected, this.lastSelected =\n node.value[this.uniqueProp]);\n },\n\n toggleRangeNode(node)\n {\n let indexies = [0, -1], reversed = false;\n\n if ( ! Any.isEmpty(this.lastSelected) ) {\n indexies[1] = this.getIndex(this.lastSelected);\n }\n\n indexies[0] = this.getIndex(node.value[this.uniqueProp]);\n\n if ( indexies[1] > indexies[0] ) {\n reversed = true;\n }\n\n if ( ! reversed ) {\n indexies = [indexies[1]+1, indexies[0]+1];\n }\n\n Arr.each(this.items.slice(indexies[0], indexies[1]), (item, index) => {\n Arr.toggle(this.tempSelected, item[this.uniqueProp]);\n });\n\n this.lastSelected = node.value[this.uniqueProp];\n },\n\n selectItem(node)\n {\n if ( this.isDisabled(node) ) {\n return;\n }\n\n ! Arr.has(this.modifier, 16) || this.renderExpand ?\n this.toggleSingleNode(node) : this.toggleRangeNode(node);\n\n this.$emit('update:selected', this.tempSelected);\n },\n\n selectAll()\n {\n let result = Arr.filter(this.visible, (item) => {\n\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n let row = {\n value: item, item: Obj.get(this, item.route)\n };\n\n return ! item.depth && canSelect(row);\n });\n\n let indexies = Arr.each(result, (item) => {\n return item[this.uniqueProp];\n });\n\n if ( indexies.length === this.tempSelected.length ) {\n return this.$emit('update:selected', this.tempSelected = []);\n }\n\n this.lastSelected = null;\n\n this.$emit('update:selected', this.tempSelected = indexies);\n },\n\n unselectAll()\n {\n if ( this.tempSelected.length ) {\n this.$emit('update:selected', this.tempSelected = []);\n }\n },\n\n bindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).on('keydown', \n this.onKeydown, this.uid)\n },\n\n unbindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).off('keydown', \n null, this.uid)\n },\n\n onKeydown(event, el)\n {\n if ( Dom.find(el).closest('input') ) {\n return;\n }\n\n if ( event.which === 32 ) {\n event.preventDefault();\n event.stopPropagation();\n this.expandCurrent();\n }\n\n if ( event.which === 38 ) {\n event.preventDefault();\n event.stopPropagation();\n this.setPrevCurrent();\n }\n\n if ( event.which === 40 ) {\n event.preventDefault();\n event.stopPropagation();\n this.setNextCurrent();\n }\n }\n\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-draglist__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entries') }\n </NEmptyIcon>\n );\n },\n\n renderItem(props)\n {\n return (\n <NDraglistItem {...Obj.except(props, ['index'])}>\n { { default: this.$slots.default } }\n </NDraglistItem>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draglist',\n 'n-draglist--' + this.size,\n 'n-draglist--' + this.type\n ];\n\n if ( ! this.items.length ) {\n classList.push('n-empty');\n }\n\n let passed = [\n 'threshold', 'bufferItems', 'itemHeight', \n 'overflowX', 'overflowY', 'offsetX', 'offsetY', 'useKeys'\n ];\n\n let props = Obj.only(this.$props, passed, {\n items: this.visible,\n onMouseenter: this.bindKeydown,\n onMouseleave: this.unbindKeydown\n });\n\n return (\n <NVirtualscroller ref=\"virtualscroller\" class={classList} {...props}>\n { { default: this.ctor('renderItem'), empty: this.ctor('renderEmpty') } }\n </NVirtualscroller>\n );\n }\n\n}\n","import { Str, Obj, Arr, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDraglistItem',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n \n },\n\n provide()\n {\n return {\n NDraggableItem: this\n };\n },\n\n props: {\n\n value: {\n required: true\n },\n\n },\n\n computed: {\n\n uid()\n {\n return Obj.get(this.value, this.NDraggable.uniqueProp);\n },\n\n item()\n {\n return Obj.get(this.NDraggable, this.value.route);\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n init: ! this.NDraggable.lazyload\n };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => {\n\n if ( this.NDraggable.draggable ) {\n this.timer = setTimeout(() => {\n this.NDraggable.drag.bindNode(this);\n }, 10);\n }\n\n this.init = true;\n }, 5);\n },\n\n beforeUnmount()\n {\n clearTimeout(this.timer);\n\n this.NDraggable.drag.unbindNode(this);\n },\n\n methods: {\n\n copy()\n {\n return this.NDraggable.drag.copyNode(this);\n },\n\n remove()\n {\n return this.NDraggable.drag.removeNode(this);\n },\n\n hasChildren()\n {\n return this.NDraggable.hasChildren(this);\n },\n\n isDisabled()\n {\n return this.NDraggable.isDisabled(this);\n },\n\n isHighlight()\n {\n return this.NDraggable.isHighlight(this);\n },\n\n isCurrent()\n {\n return this.NDraggable.isCurrent(this);\n },\n\n isDraggable()\n {\n return this.NDraggable.isDraggable(this);\n },\n\n isExpanded()\n {\n return this.NDraggable.isExpanded(this);\n },\n\n expandItem()\n {\n this.NDraggable.expandItem(this);\n },\n\n isSelected()\n {\n return this.NDraggable.isSelected(this);\n },\n\n selectItem()\n {\n this.NDraggable.selectItem(this);\n },\n\n onClick(event)\n {\n let isExpand = Dom.find(event.target)\n .closest('.n-draglist-item__expand');\n\n if ( isExpand ) {\n return;\n }\n\n this.NDraggable.setCurrent(this);\n\n if ( Arr.has(window.keyMods, 91) ) {\n this.NDraggable.selectItem(this);\n }\n\n this.NDraggable.$emit('row-click', this);\n },\n\n onDblclick()\n {\n this.NDraggable.setCurrent(this);\n\n this.NDraggable.$emit('row-dblclick', this);\n }\n\n },\n\n renderElement()\n {\n let classList = [\n 'n-draglist-item__element'\n ];\n\n if ( ! this.init ) {\n return (<div class={classList} />);\n }\n\n let props = {\n value: this.value,\n item: this.item,\n copy: this.copy,\n remove: this.remove,\n };\n\n let renderFunction = this.$slots.default;\n\n if ( this.NDraggable.renderNode ) {\n renderFunction = this.NDraggable.renderNode;\n }\n\n return (\n <div class={classList}>\n { renderFunction(props) }\n </div>\n );\n },\n\n renderSpacer()\n {\n let width = this.value.depth * \n this.NDraggable.itemOffset;\n\n if ( ! width ) {\n return null;\n }\n\n let style = {\n width: width + 'px'\n };\n\n return (\n <div class=\"n-draglist-item__spacer\" style={style}>\n { /* SPACER */ }\n </div>\n );\n },\n\n renderHandle()\n {\n if ( ! this.NDraggable.renderHandle ) {\n return null;\n }\n\n let props = {};\n\n if ( this.NDraggable.draggable && this.isDraggable() ) {\n props.draggable = true;\n }\n\n return (\n <div class=\"n-draglist-item__handle\" {...props}>\n <div class=\"n-draglist-item__ellipsis\">\n <i class={ nano.Icons.handle }></i>\n </div>\n </div>\n );\n },\n\n renderExpand()\n {\n if ( ! this.NDraggable.renderExpand ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.expandItem\n };\n\n return (\n <div class=\"n-draglist-item__expand\" {...props}>\n <div class=\"n-draglist-item__angle\">\n <i class={ nano.Icons.angleRight }></i>\n </div>\n </div>\n );\n },\n\n renderSelect()\n {\n if ( ! this.NDraggable.renderSelect ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.selectItem\n };\n\n return (\n <div class=\"n-draglist-item__select\" {...props}>\n <div class=\"n-draglist-item__checkbox\">\n <i class={ nano.Icons.checked }></i>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draglist-item'\n ];\n\n if ( this.hasChildren() ) {\n classList.push('n-children');\n }\n\n if ( this.isDisabled() ) {\n classList.push('n-disabled');\n }\n\n if ( this.isSelected() ) {\n classList.push('n-selected');\n }\n\n if ( this.isExpanded() ) {\n classList.push('n-expanded');\n }\n\n if ( this.isCurrent() ) {\n classList.push('n-current');\n }\n\n if ( this.isHighlight() ) {\n classList.push('n-highlight');\n }\n\n let props = {\n onClick: this.onClick,\n onDblclick: this.onDblclick,\n };\n\n if ( this.NDraggable.draggable && ! this.NDraggable.handle && this.isDraggable() ) {\n props.draggable = true;\n }\n\n props['data-unique'] = this.value[this.NDraggable.uniqueProp];\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHandle')() }\n { this.ctor('renderSpacer')() }\n { this.ctor('renderExpand')() }\n { this.ctor('renderSelect')() }\n { this.ctor('renderElement')() }\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDraggrid',\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n }\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n safezone: {\n default()\n {\n return (height) => -1;\n }\n },\n\n lazyload: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 200;\n },\n type: [Number]\n },\n\n itemWidth: {\n default()\n {\n return 150;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n deathzone: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderSelect: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NDraggable: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(),\n virtuals: [],\n visible: [],\n childNodes: {},\n highlight: [],\n firstSelected: null,\n tempCurrent: this.current,\n tempExpanded: this.expanded,\n tempSelected: this.selected\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n },\n\n mounted()\n {\n let frame = this.$refs.virtualscroller.\n $refs.inner;\n\n this.drag.bindRoot(frame);\n\n this.$watch('tempSelected', this.watchSelected,\n { deep: true });\n\n this.refreshVirtuals();\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n\n Dom.find(document).off('keydown', null, this.uid);\n },\n\n watch: {\n\n items()\n {\n if ( this.scrollTopOnChange ) {\n this.scrollTo();\n }\n\n this.refreshVirtuals();\n },\n\n virtuals()\n {\n this.filterVirtuals();\n },\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n current(value)\n {\n this.tempCurrent = value;\n }\n\n },\n\n methods: {\n\n watchSelected()\n {\n if ( ! this.tempSelected.length ) {\n return this.firstSelected = null;\n }\n\n this.firstSelected = Arr.find(this.virtuals, {\n [this.uniqueProp]: this.tempSelected[0]\n });\n },\n\n refreshVirtuals()\n {\n this.virtuals = this.drag.reduce(this.items);\n\n if ( window.DEBUG_NDLIST ) {\n console.log('Total virtual items mounted: ' + this.virtuals.length);\n }\n },\n\n filterVirtuals()\n {\n this.visible = Arr.filter(this.virtuals, (node) => {\n return node.depth === 0;\n });\n },\n\n getIndex(unique)\n {\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: unique\n });\n },\n\n getCurrentIndex()\n {\n if ( ! this.tempCurrent ) {\n return -1;\n }\n\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n },\n\n scrollTo(x = 0, y = 0)\n {\n this.$refs.virtualscroller.scrollTo(x, y);\n },\n\n scrollToIndex(index)\n {\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isDraggable(node)\n {\n let canDrag = this.allowDrag;\n\n if ( ! Any.isFunction(canDrag) ) {\n canDrag = () => this.allowDrag;\n }\n\n return canDrag(node);\n },\n\n isHighlight(node)\n {\n return Arr.has(this.highlight, node.value[this.uniqueProp]);\n },\n\n highlightNode(value, key = null)\n {\n clearTimeout(this.refresh);\n\n // Clear highlight items\n this.highlight = [];\n\n Arr.recursive(this.items, this.childProp, (node, cascade) => {\n\n if ( Obj.get(node, key || this.uniqueProp) !== value ) {\n return;\n }\n\n Arr.each(cascade, (item) => {\n Arr.add(this.tempExpanded, item[this.uniqueProp]);\n });\n\n Arr.add(this.highlight, node[this.uniqueProp]);\n });\n\n if ( ! this.highlight.length ) {\n return;\n }\n\n this.$nextTick(this.scrollToHighlight);\n\n this.refresh = setTimeout(() =>\n this.highlight = [], this.highlightTimeout);\n\n this.filterVirtuals();\n },\n\n scrollToHighlight()\n {\n if ( ! this.highlight.length ) {\n return;\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: Arr.first(this.highlight)\n });\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isCurrent(node)\n {\n return this.renderCurrent && this.tempCurrent &&\n node.value[this.uniqueProp] === this.tempCurrent[this.uniqueProp] ;\n },\n\n setCurrent(node)\n {\n let isSameNode = this.tempCurrent &&\n this.tempCurrent[this.uniqueProp] === node.value[this.uniqueProp];\n\n if ( isSameNode ) {\n return;\n }\n\n this.$emit('update:current',\n this.tempCurrent = node.item);\n\n Event.fire('NDraggrid:syncCurrent', node.item, this.uid);\n },\n\n setRawCurrent(index)\n {\n let route = Obj.get(this.visible,\n [index, 'route']);\n\n if ( ! route ) {\n return this.setRawCurrent(0);\n }\n\n let item = Obj.get(this, route);\n\n this.$refs.virtualscroller\n .scrollIntoView(index);\n\n this.$emit('update:current',\n this.tempCurrent = item);\n\n Event.fire('NDraggrid:syncCurrent', item, this.uid);\n },\n\n setNextCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = 0;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index++;\n }\n\n if ( index >= this.visible.length ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n setPrevCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = this.visible.length - 1;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index--;\n }\n\n if ( index < 0 ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n syncCurrent()\n {\n return ['NDraggrid:syncCurrent', this.uid];\n },\n\n isDisabled(node)\n {\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n return ! canSelect(node) || (this.firstSelected &&\n node.value.depth !== this.firstSelected.depth);\n },\n\n isSelected(node)\n {\n return Arr.has(this.tempSelected, node.value[this.uniqueProp]);\n },\n\n isTotalSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length === this.tempSelected;\n },\n\n isInterSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length !== this.tempSelected &&\n this.tempSelected;\n },\n\n selectItem(node)\n {\n if ( this.isDisabled(node) ) {\n return;\n }\n\n Arr.toggle(this.tempSelected, node.value[this.uniqueProp]);\n\n this.$emit('update:selected', this.tempSelected);\n },\n\n selectAll()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n let indexies = Arr.each(visible, (item) => {\n return item[this.uniqueProp];\n });\n\n if ( indexies.length === this.tempSelected.length ) {\n return this.$emit('update:selected', this.tempSelected = []);\n }\n\n this.$emit('update:selected', this.tempSelected = indexies);\n },\n\n unselectAll()\n {\n if ( this.tempSelected.length ) {\n this.$emit('update:selected', this.tempSelected = []);\n }\n },\n\n bindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).on('keydown',\n this.onKeydown, this.uid)\n },\n\n unbindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).off('keydown',\n null, this.uid)\n },\n\n onKeydown(event, el)\n {\n if ( Dom.find(el).closest('input') ) {\n return;\n }\n\n if ( event.which === 38 ) {\n event.preventDefault();\n event.stopPropagation();\n // this.setPrevCurrent();\n }\n\n if ( event.which === 40 ) {\n event.preventDefault();\n event.stopPropagation();\n // this.setNextCurrent();\n }\n }\n\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-draggrid__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entries') }\n </NEmptyIcon>\n );\n },\n\n renderItem(props)\n {\n return (\n <NDraggridItem {...Obj.except(props, ['index'])}>\n { { default: this.$slots.default } }\n </NDraggridItem>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draggrid',\n 'n-draggrid--' + this.size,\n 'n-draggrid--' + this.type\n ];\n\n if ( ! this.items.length ) {\n classList.push('n-empty');\n }\n\n let passed = [\n 'threshold', 'deathzone', 'itemHeight', 'itemWidth',\n 'overflowX', 'overflowY', 'offsetX', 'offsetY', 'useKeys'\n ];\n\n let props = Obj.only(this.$props, passed, {\n items: this.visible,\n onMouseenter: this.bindKeydown,\n onMouseleave: this.unbindKeydown\n });\n\n return (\n <NVirtualscroller ref=\"virtualscroller\" class={classList} {...props}>\n { { default: this.ctor('renderItem'), empty: this.ctor('renderEmpty') } }\n </NVirtualscroller>\n );\n }\n\n}\n","import { Str, Arr, Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDraggridItem',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NDraggableItem: this\n };\n },\n\n props: {\n\n value: {\n required: true\n }\n\n },\n\n computed: {\n\n uid()\n {\n return Obj.get(this.value, this.NDraggable.uniqueProp);\n },\n\n item()\n {\n return Obj.get(this.NDraggable, this.value.route);\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n init: ! this.NDraggable.lazyload\n };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => {\n\n if ( this.NDraggable.draggable ) {\n this.timer = setTimeout(() => {\n this.NDraggable.drag.bindNode(this);\n }, 50);\n }\n\n this.init = true;\n }, 40);\n },\n\n beforeUnmount()\n {\n if ( ! this.init ) {\n clearTimeout(this.timer);\n }\n\n this.NDraggable.drag.unbindNode(this);\n },\n\n methods: {\n\n copy()\n {\n return this.NDraggable.drag.copyNode(this);\n },\n\n remove()\n {\n return this.NDraggable.drag.removeNode(this);\n },\n\n isDisabled()\n {\n return this.NDraggable.isDisabled(this);\n },\n\n isHighlight()\n {\n return this.NDraggable.isHighlight(this);\n },\n\n isCurrent()\n {\n return this.NDraggable.isCurrent(this);\n },\n\n isDraggable()\n {\n return this.NDraggable.isDraggable(this);\n },\n\n isSelected()\n {\n return this.NDraggable.isSelected(this);\n },\n\n selectItem()\n {\n this.NDraggable.selectItem(this);\n },\n\n onClick()\n {\n this.NDraggable.setCurrent(this);\n\n if ( Arr.has(window.keyMods, 91) ) {\n this.NDraggable.selectItem(this);\n }\n\n this.NDraggable.$emit('row-click', this);\n },\n\n onDblclick()\n {\n this.NDraggable.setCurrent(this);\n\n this.NDraggable.$emit('row-dblclick', this);\n }\n\n },\n\n renderElement()\n {\n let classList = [\n 'n-draglist-item__element'\n ];\n\n if ( ! this.init ) {\n return (<div class={classList} />);\n }\n\n let props = {\n value: this.value,\n item: this.item,\n copy: this.copy,\n remove: this.remove,\n };\n\n let renderFunction = this.$slots.default;\n\n if ( this.NDraggable.renderNode ) {\n renderFunction = this.NDraggable.renderNode;\n }\n\n return (\n <div class={classList}>\n {renderFunction(props)}\n </div>\n );\n },\n\n renderHandle()\n {\n if ( ! this.NDraggable.renderHandle ) {\n return null;\n }\n\n let props = {};\n\n if ( this.NDraggable.draggable && this.isDraggable() ) {\n props.draggable = true;\n }\n\n return (\n <div class=\"n-draggrid-item__handle\" {...props}>\n <div class=\"n-draggrid-item__ellipsis\">\n <i class={ nano.Icons.handle }></i>\n </div>\n </div>\n );\n },\n\n renderSelect()\n {\n if ( ! this.NDraggable.renderSelect ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.selectItem\n };\n\n return (\n <div class=\"n-draggrid-item__select\" {...props}>\n <div class=\"n-draggrid-item__checkbox\">\n <i class={ nano.Icons.checked }></i>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draggrid-item'\n ];\n\n if ( this.isDisabled() ) {\n classList.push('n-disabled');\n }\n\n if ( this.isSelected() ) {\n classList.push('n-selected');\n }\n\n if ( this.isCurrent() ) {\n classList.push('n-current');\n }\n\n if ( this.isHighlight() ) {\n classList.push('n-highlight');\n }\n\n let props = {\n onClick: this.onClick,\n onDblclick: this.onDblclick,\n };\n\n if ( this.NDraggable.draggable && ! this.NDraggable.handle && this.isDraggable() ) {\n props.draggable = true;\n }\n\n props['data-unique'] = this.value[this.NDraggable.uniqueProp];\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHandle')() }\n { this.ctor('renderSelect')() }\n { this.ctor('renderElement')() }\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDropzone',\n\n model: {\n prop: 'item'\n },\n\n props: {\n\n item: {\n default()\n {\n return null;\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n },\n\n provide()\n {\n return {\n NDropzone: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(),\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n },\n\n mounted()\n {\n this.drag.bindRoot(this.$el);\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n },\n\n renderItem()\n {\n if ( Any.isEmpty(this.item) ) {\n return null;\n }\n\n return this.$slots.default && this.$slots.default(this.item)\n },\n\n renderEmpty()\n {\n if ( ! Any.isEmpty(this.item) ) {\n return null;\n }\n\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-dropzone__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entry') }\n </NEmptyIcon>\n );\n },\n\n render()\n {\n let classList = [\n 'n-dropzone',\n 'n-dropzone--' + this.size,\n 'n-dropzone--' + this.type\n ];\n\n if ( Any.isEmpty(this.item) ) {\n classList.push('n-empty');\n }\n\n return (\n <div class={classList}>\n {[this.ctor('renderItem')(), this.ctor('renderEmpty')()]}\n </div>\n );\n }\n\n}\n","import { UUID, Num, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NLoader',\n\n inject: {\n\n NLoader: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NLoader: this\n };\n },\n\n props: {\n\n visible: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n minimum: {\n default()\n {\n return 120;\n },\n type: [Number]\n },\n\n debounce: {\n default()\n {\n return 120;\n },\n type: [Number]\n }\n\n },\n\n data()\n {\n return {\n tempVisible: this.visible\n };\n },\n\n methods: {\n\n applyTimer()\n {\n this.timing = Date.now();\n\n if ( this.visible) {\n return this.tempVisible = this.visible;\n }\n\n this.startTimer();\n },\n\n startTimer()\n {\n let timing = Date.now() - this.timing;\n\n if ( timing < this.minimum ) {\n return this.restartTimer(timing);\n }\n\n this.timeout = setTimeout(() => this.tempVisible = false, \n this.debounce);\n },\n\n restartTimer(timing = 0) {\n Any.delay(this.startTimer, this.minimum - timing + 10);\n }\n\n },\n\n watch: {\n\n visible()\n {\n this.applyTimer();\n }\n\n },\n\n mounted()\n {\n this.applyTimer();\n },\n\n render()\n {\n let classList = [\n 'n-loader', \n 'n-loader--' + this.size, \n 'n-loader--' + this.type\n ];\n\n if ( this.tempVisible ) {\n classList.push('n-load');\n }\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { UUID, Arr, Obj, Dom, Any, Str, Locale, Event, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NResizer',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n width: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n minWidth: {\n default()\n {\n return 60;\n },\n type: [Number]\n },\n\n maxWidth: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n group: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n position: {\n default()\n {\n return 'right';\n },\n type: [String]\n },\n\n resizerWidth: {\n default()\n {\n return 6;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window || \n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n sizeFixed: false,\n tempValue: this.modelValue,\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n },\n\n mounted()\n {\n if ( ! this.modelValue ) {\n this.updateWidth();\n }\n\n if ( this.NScrollbar ) {\n this.bindSizechange();\n }\n\n Event.bind('NResizer:move', (...args) => {\n this.forceWidth(...args)\n }, this._.uid);\n\n Dom.find(window).on('resize', Any.debounce((...args) => {\n this.onResize(...args)\n }, 500), this._.uid);\n },\n\n updated()\n {\n this.updateWidth();\n },\n\n unmounted()\n {\n if ( this.NScrollbar ) {\n this.unbindSizechange();\n }\n\n Event.unbind('NResizer:move', \n this._.uid);\n \n Dom.find(window).off('resize', \n null, this._.uid);\n },\n\n methods: {\n\n forceWidth(group)\n {\n if ( ! Arr.has(group, this.group) ) {\n return;\n }\n \n if ( ! this.tempValue || ! this.group.length ) {\n return;\n }\n\n this.sizeFixed = true;\n\n let style = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(style);\n },\n\n updateWidth()\n {\n let width = Dom.find(this.$el)\n .width();\n\n if ( width === this.tempValue ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = width);\n \n this.updateHandle();\n },\n\n updateHandle()\n {\n let style = {};\n\n if ( this.position === 'left' ) {\n style.transform =`translateX(-${this.tempValue - this.resizerWidth}px)`\n }\n \n if ( this.position === 'right' ) {\n style.transform = `translateX(${this.tempValue - this.resizerWidth}px)`\n }\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n bindSizechange()\n {\n Dom.find(this.NScrollbar.$el).on('resized', \n Any.debounce(this.updateWidth, 50), this._.uid);\n },\n\n unbindSizechange()\n {\n Dom.find(this.NScrollbar.$el)\n .off('resized', null, this._.uid);\n },\n\n\n onResize()\n {\n if ( this.NScrollbar ) {\n return;\n }\n\n this.updateWidth();\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onLeftMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if ( this.group.length ) {\n Event.fire('NResizer:move', this.group);\n }\n\n Dom.find(this.$el).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onLeftMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onLeftMousemove, 60), this._.uid);\n },\n\n onLeftMousemove(event)\n {\n this.clientX = (window.innerWidth - \n this.getTouchEvent(event).clientX);\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = (this.clientX + scrollX - offsetX) -\n (this.resizerWidth / 2);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth,\n this.minWidth - this.resizerWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth,\n this.maxWidth - this.resizerWidth);\n }\n\n let style = {\n transform: `translateX(-${targetWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n onLeftMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mouseup, null, this._.uid);\n Dom.find(document).off(this.mousemove, null, this._.uid);\n\n if ( ! this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = this.clientX + scrollX - offsetX;\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth, this.minWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth, this.maxWidth);\n }\n\n this.tempValue = Math.round(targetWidth);\n\n Dom.find(this.$el).removeClass('n-move');\n\n let style = {\n transform: `translateX(-${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n onRightMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if ( this.group.length ) {\n Event.fire('NResizer:move', this.group);\n }\n\n Dom.find(this.$el).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onRightMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onRightMousemove, 60), this._.uid);\n },\n\n onRightMousemove(event)\n {\n this.clientX = this.getTouchEvent(event).clientX;\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = (this.clientX + scrollX - offsetX) -\n (this.resizerWidth / 2);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth,\n this.minWidth - this.resizerWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth,\n this.maxWidth - this.resizerWidth);\n }\n\n let style = {\n transform: `translateX(${targetWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n onRightMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mousemove, null, this._.uid);\n Dom.find(document).off(this.mouseup, null, this._.uid);\n\n if ( ! this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = this.clientX + scrollX - offsetX;\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth, this.minWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth, this.maxWidth);\n }\n\n this.tempValue = Math.round(targetWidth);\n\n Dom.find(this.$el).removeClass('n-move');\n\n let style = {\n transform: `translateX(${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.$emit('update:modelValue', this.tempValue);\n }\n\n },\n\n renderHandle()\n {\n if ( this.disabled ) {\n return null;\n }\n \n let classList = [\n 'n-resizer__handle',\n ];\n\n let props = {};\n\n if ( this.position === 'right' ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onRightMousedown;\n }\n\n if ( this.position === 'left' ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onLeftMousedown;\n }\n\n if ( this.resizerWidth ) {\n props.width = this.resizerWidth + 'px';\n }\n\n return (\n <div ref=\"handle\" class={classList} {...props}/>\n );\n },\n\n render()\n {\n let classList = [\n 'n-resizer',\n 'n-resizer--' + this.position,\n ];\n\n let style = {};\n\n if ( this.width && ! this.tempValue ) {\n style['width'] = this.width + 'px';\n }\n\n if ( this.width ) {\n style['flex-basis'] = this.width + 'px';\n }\n\n if ( this.minWidth ) {\n style['min-width'] = this.minWidth + 'px';\n }\n\n if ( this.maxWidth ) {\n style['max-width'] = this.maxWidth + 'px';\n }\n\n return (\n <div class={classList} style={style}>\n { [this.$slots.default(), this.ctor('renderHandle')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Any, Dom, Event, UUID } from \"@kizmann/pico-js\";\n\n\nexport default {\n\n name: 'NPopover',\n\n provide()\n {\n return {\n NPopover: this\n };\n },\n\n inject: {\n\n NPopover: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n width: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n window: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-center';\n },\n type: [String]\n },\n\n scrollClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n multiClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n framerate: {\n default()\n {\n return 15;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window || \n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n tempValue: false,\n clientX: 0,\n clientY: 0,\n target: null,\n prevent: false,\n };\n },\n\n watch: {\n\n modelValue()\n {\n this.tempValue = this.modelValue;\n },\n\n tempValue()\n {\n Any.delay(this.refreshVisible, 50);\n }\n\n },\n\n beforeMount()\n {\n this.tempValue = this.modelValue;\n },\n\n mounted()\n {\n this.target = Dom.find(this.$el).previous().get(0);\n\n if ( this.trigger === 'context' ) {\n this.target = Dom.find(this.$el).parent().get(0);\n }\n\n if ( this.window ) {\n Dom.find(document.body).append(this.$el);\n }\n\n if ( this.listen && this.trigger === 'hover' ) {\n Dom.find(document.body).on('mousemove', \n Any.framerate(this.onHover, 30), this._.uid);\n }\n\n if ( this.listen && this.trigger === 'click' ) {\n Dom.find(document.body).on(this.mousedown, \n Any.framerate(this.onClick, 30), this._.uid);\n }\n\n if ( this.listen && this.trigger === 'context' ) {\n Dom.find(document.body).on('contextmenu', \n Any.framerate(this.onContext, 30), this._.uid);\n }\n\n Dom.find(document.body).on(this.mousedown, \n Any.framerate(this.onExit, 30), this._.uid);\n\n Event.bind('NPopover:close', this.onCloseEvent, this._.uid);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n\n Dom.find(document).off('mousemove', null, this._.uid);\n Dom.find(document).off('mousedown', null, this._.uid);\n Dom.find(document).off('contextmenu', null, this._.uid);\n\n Event.unbind('NPopover:close', this._.uid);\n \n },\n\n methods: {\n\n active()\n {\n return this.tempValue;\n },\n\n open()\n {\n this.$emit('update:modelValue', \n this.tempValue = true);\n },\n\n close(type = null)\n {\n if ( this.prevent ) {\n return;\n }\n\n delete this.timer;\n\n if ( ! type ) {\n this.$emit('close');\n }\n\n if ( type === 'scroll' ) {\n this.$emit('scrollClose');\n }\n\n if ( type === 'multi' ) {\n this.$emit('multiClose');\n }\n\n this.$emit('update:modelValue', \n this.tempValue = false);\n },\n\n pause()\n {\n this.prevent = true;\n },\n\n unpause()\n {\n this.prevent = false;\n },\n\n onCloseEvent(uid)\n {\n if ( this.multiClose && this.tempValue && this._.uid !== uid ) {\n this.close('multi');\n }\n },\n\n refreshVisible()\n {\n Dom.find(this.$el).css(null);\n\n if ( ! this.tempValue ) {\n return this.stopRefreshInterval();\n }\n\n this.startRefreshInterval();\n\n delete this.passedOffset;\n },\n\n startRefreshInterval()\n {\n this.refresh = setInterval(this.updatePosition, \n 1000 / this.framerate);\n\n let onReady = () => {\n\n if ( this.listen ) {\n Dom.find(this.target).addClass('n-open');\n }\n\n Dom.find(this.$el).addClass('n-ready');\n\n if ( this.NPopover ) {\n this.NPopover.pause();\n }\n\n Event.fire('NPopover:close', this._.uid);\n }\n\n Any.delay(onReady, 100);\n },\n\n stopRefreshInterval()\n {\n clearInterval(this.refresh);\n\n if ( this.NPopover ) {\n this.NPopover.unpause();\n }\n\n if ( this.listen ) {\n Dom.find(this.target).removeClass('n-open');\n }\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n isSameOffset(offset)\n {\n if ( ! this.passedOffset ) {\n return false;\n }\n\n let rainbow = Arr.each(['x', 'y'], (key) => {\n return offset[key] === this.passedOffset[key];\n });\n\n return ! Arr.has(rainbow, false);\n },\n\n isSameSize(size)\n {\n if ( ! this.passedSize ) {\n return false;\n }\n\n let rainbow = Arr.each(['width', 'height'], (key) => {\n return size[key] === this.passedSize[key];\n });\n\n return ! Arr.has(rainbow, false);\n },\n\n getTargetHorizontal(position, fallback = null)\n {\n let targetRect = this.target.getBoundingClientRect();\n\n if ( this.trigger === 'context' ) {\n targetRect = {\n top: this.clientY, left: this.clientX, width: 2, height: 2\n };\n }\n\n let windowRect = this.$el.getBoundingClientRect();\n\n if ( this.width === -1 ) {\n windowRect.width = targetRect.width;\n }\n\n let posY = {\n\n // Set above the tagret element\n start: targetRect.top - windowRect.height,\n \n // Set at bottom of target element\n end: targetRect.top + targetRect.height,\n\n };\n\n let posX = {\n\n // Set on the left of target element\n start: targetRect.left,\n\n // Set into the center of the target element\n center: targetRect.left + (targetRect.width * 0.5) - \n (windowRect.width * 0.5),\n\n // Set on the right of the target element\n end: targetRect.left + targetRect.width - \n windowRect.width,\n\n };\n\n let offset = { x: 0, y: 0 };\n\n if ( position === 'top-start' ) {\n offset = { x: posX.start, y: posY.start };\n }\n\n if ( position === 'top-center' ) {\n offset = { x: posX.center, y: posY.start };\n }\n\n if ( position === 'top-end' ) {\n offset = { x: posX.end, y: posY.start };\n }\n\n if ( position === 'bottom-start' ) {\n offset = { x: posX.start, y: posY.end };\n }\n\n if ( position === 'bottom-center' ) {\n offset = { x: posX.center, y: posY.end };\n }\n\n if ( position === 'bottom-end' ) {\n offset = { x: posX.end, y: posY.end };\n }\n\n let inverse = this.position;\n\n if ( position.match(/^(top)\\-/) ) {\n inverse = inverse.replace(/^(top)\\-/, 'bottom-');\n }\n\n if ( position.match(/^(bottom)\\-/) ) {\n inverse = inverse.replace(/^(bottom)\\-/, 'top-');\n }\n\n let broken = offset.y + windowRect.height > \n window.innerHeight || offset.y < 0;\n\n if ( this.scrollClose && broken && ! fallback ) {\n return this.getTargetHorizontal(inverse, offset);\n }\n\n if ( fallback && broken ) {\n offset = fallback;\n }\n\n if ( offset.y < 0 ) {\n offset.y = 0;\n }\n \n if ( offset.y + windowRect.height > window.innerHeight ) {\n offset.y = window.innerHeight - windowRect.height;\n }\n\n if ( offset.x < 0 ) {\n offset.x = 0;\n }\n \n if ( offset.x + windowRect.width > window.innerWidth ) {\n offset.x = window.innerWidth - windowRect.width -\n (window.innerWidth - document.body.clientWidth);\n }\n\n return offset;\n },\n\n getTargetVertical(position, fallback = null)\n {\n let targetRect = this.target.getBoundingClientRect();\n\n if ( this.trigger === 'context' ) {\n targetRect = {\n top: this.clientY, left: this.clientX, width: 2, height: 2\n };\n }\n\n let windowRect = this.$el.getBoundingClientRect();\n\n if ( this.width === -1 ) {\n windowRect.width = targetRect.width;\n }\n \n let posY = {\n\n // Set at top edge of the target element\n start: targetRect.top,\n\n // Set at the middle of the target element\n center: targetRect.top + (targetRect.height * 0.5) - \n (windowRect.height * 0.5),\n\n // Ste at the bottom of the target elemnent\n end: targetRect.top + targetRect.height - \n windowRect.height,\n\n };\n\n let posX = {\n\n // Set to the left of the target element\n start: targetRect.left - windowRect.width,\n\n // Set to the right of the target element\n end: targetRect.left + targetRect.width,\n\n };\n\n let offset = { x: 0, y: 0 };\n\n if ( position === 'left-start' ) {\n offset = { x: posX.start, y: posY.start };\n }\n\n if ( position === 'left-center' ) {\n offset = { x: posX.start, y: posY.center };\n }\n\n if ( position === 'left-end' ) {\n offset = { x: posX.start, y: posY.end };\n }\n\n if ( position === 'right-start' ) {\n offset = { x: posX.end, y: posY.start };\n }\n\n if ( position === 'right-center' ) {\n offset = { x: posX.end, y: posY.center };\n }\n\n if ( position === 'right-end' ) {\n offset = { x: posX.end, y: posY.end };\n }\n\n let inverse = this.position;\n\n if ( position.match(/^(left)\\-/) ) {\n inverse = inverse.replace(/^(left)\\-/, 'right-');\n }\n\n if ( position.match(/^(right)\\-/) ) {\n inverse = inverse.replace(/^(right)\\-/, 'left-');\n }\n\n let broken = offset.x + windowRect.width > \n window.innerWidth || offset.x < 0;\n\n if ( this.scrollClose && broken && ! fallback ) {\n return this.getTargetVertical(inverse, offset);\n }\n\n if ( fallback && broken ) {\n offset = fallback;\n }\n\n if ( offset.y < 0 ) {\n offset.y = 0;\n }\n \n if ( offset.y + windowRect.height > window.innerHeight ) {\n offset.y = window.innerHeight - windowRect.height;\n }\n\n if ( offset.x < 0 ) {\n offset.x = 0;\n }\n \n if ( offset.x + windowRect.width > window.innerWidth ) {\n offset.x = window.innerWidth - windowRect.width -\n (window.innerWidth - document.body.clientWidth);\n }\n\n return offset;\n },\n\n getTargetOffset()\n {\n let position = this.position;\n\n if ( position.match(/^(top|bottom)\\-/) ) {\n return this.getTargetHorizontal(position);\n }\n\n if ( position.match(/^(left|right)\\-/) ) {\n return this.getTargetVertical(position);\n }\n\n return targetRect;\n },\n\n updatePosition()\n {\n let size = this.$el.getBoundingClientRect(),\n rect = this.target.getBoundingClientRect();\n\n let isSameSize = this.isSameSize(size);\n\n if ( isSameSize && this.isSameOffset(rect) ) {\n return;\n }\n\n if ( ! this.timer ) {\n this.timer = Date.now();\n }\n\n this.passedSize = size;\n\n if ( this.width ) {\n Dom.find(this.$el).css({ width: this.width + 'px' });\n }\n\n let offset = this.getTargetOffset();\n\n let scroll = Dom.find(document.body)\n .scroll();\n\n let style = {\n 'z-index': window.zIndex++,\n 'top': Math.round(offset.y + scroll.top) + 'px', \n 'left': Math.round(offset.x + scroll.left) + 'px', \n };\n\n if ( this.width === -1 ) {\n style.width = rect.width + 'px';\n }\n\n Dom.find(this.$el).css(style);\n\n let isScrollClose = this.passedOffset && isSameSize &&\n (Date.now() - this.timer) > 500;\n\n if ( this.scrollClose && isScrollClose ) {\n this.close('scroll');\n }\n\n this.passedOffset = rect;\n },\n\n onHover(event, el)\n {\n if ( this.disabled ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target),\n source = Dom.find(el).closest(this.$el);\n\n let result = (!! target || !! source);\n\n if ( this.tempValue === result ) {\n return;\n }\n\n if ( ! result ) {\n return this.$nextTick(this.close);\n }\n\n this.$emit('update:modelValue', this.tempValue = result);\n },\n\n onClick(event, el)\n {\n let keyCode = event.which === 1 ||\n event.which === 0;\n\n if ( this.disabled || this.tempValue || ! keyCode ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target),\n source = Dom.find(el).closest(this.$el);\n\n let result = (!! target || !! source);\n\n if ( this.tempValue === result ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = result);\n },\n\n onContext(event, el)\n {\n let keyCode = event.which === 3;\n\n if ( this.disabled || this.tempValue || ! keyCode ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target),\n source = Dom.find(el).closest(this.$el);\n\n this.clientX = event.clientX;\n this.clientY = event.clientY;\n\n let result = (!! target || !! source);\n\n if ( result ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if ( this.tempValue === result ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = result);\n },\n\n onExit(event, el)\n {\n if ( this.disabled || ! this.tempValue ) {\n return;\n }\n\n if ( !! Dom.find(el).closest(this.$el) ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target);\n\n if ( this.trigger !== 'context' && !! target ) {\n return;\n }\n\n this.close();\n }\n\n },\n\n renderBody()\n {\n if ( this.$slots.raw ) {\n return this.$slots.raw();\n }\n\n return (\n <div class=\"n-popover__frame\">\n { this.$slots.header &&\n <div class=\"n-popover__header\">\n { this.$slots.header() }\n </div>\n }\n <div class=\"n-popover__body\">\n { this.$slots.default() }\n </div>\n { this.$slots.footer &&\n <div class=\"n-popover__footer\">\n { this.$slots.footer() }\n </div>\n }\n </div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-popover',\n 'n-popover--' + this.type,\n 'n-popover--' + this.size,\n 'n-popover--' + this.position,\n ];\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let viewBody = this.modelValue;\n\n if ( Any.isNull(this.modelValue) ) {\n viewBody = this.tempValue;\n }\n\n return (\n <div class={classList}>\n { viewBody && this.ctor('renderBody')() }\n </div>\n );\n }\n\n}\n","export default {\n\n name: 'NPopoverGroup',\n\n inject: {\n NPopover: {\n default: undefined\n }\n },\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n\n },\n\n computed: {\n\n tempSize()\n {\n if ( this.NPopover ) {\n return this.NPopover.size;\n }\n\n return this.size;\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-popover-group',\n 'n-popover-group--' + this.tempSize,\n ];\n\n return (\n <label class={classList}>\n <span>{ this.$slots.default() }</span>\n </label>\n );\n }\n\n}\n","import { Obj, Arr, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPopoverOption',\n\n inject: {\n NPopover: {\n default: undefined\n }\n },\n\n props: {\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n focus: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n active: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n iconPosition: {\n default()\n {\n return 'after';\n },\n type: [String]\n },\n\n image: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n imagePosition: {\n default()\n {\n return 'before';\n },\n type: [String]\n },\n\n clickClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n\n },\n\n computed: {\n\n tempSize()\n {\n if ( this.NPopover ) {\n return this.NPopover.size;\n }\n\n return this.size;\n }\n\n },\n\n methods: {\n\n onClick(event)\n {\n if ( this.NPopover && this.clickClose ) {\n this.NPopover.close();\n }\n\n this.$emit('fakeclick', event);\n }\n\n },\n\n renderImage()\n {\n if ( ! this.image ) {\n return null;\n }\n\n let classList = [\n 'n-image',\n 'n-image--' + this.imagePosition,\n ];\n\n return (<img class={classList} src={this.image} />);\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n let classList = [\n 'n-icon', \n 'n-icon--' + this.iconPosition,\n ];\n\n classList.push(this.icon);\n\n return (<i class={classList}></i>);\n },\n\n renderContent()\n {\n if ( this.$slots.raw ) {\n return this.$slots.raw();\n }\n\n return (\n <span>{ this.$slots.default() }</span>\n );\n },\n\n render()\n {\n let classList = [\n 'n-popover-option',\n 'n-popover-option--' + this.type,\n 'n-popover-option--' + this.tempSize,\n ];\n\n if ( this.active ) {\n classList.push('n-active');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( ! this.disabled ) {\n props.onClick = this.onClick;\n }\n\n if ( this.disabled ) {\n props.disabled = true;\n }\n\n return (\n <a class={classList} href=\"javascript:void(0)\" {...props}>\n { this.ctor('renderImage')() }\n { this.ctor('renderContent')() }\n { this.ctor('renderIcon')() }\n </a>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NModal',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n width: {\n default()\n {\n return '50%';\n },\n type: [String]\n },\n\n height: {\n default()\n {\n return 'auto';\n },\n type: [String]\n },\n\n title: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'center-center';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n tempValue()\n {\n this.startRefreshTimeout();\n }\n\n },\n\n provide()\n {\n return {\n NModal: this\n };\n },\n\n data()\n {\n return {\n target: null, tempValue: false\n };\n },\n\n mounted()\n {\n this.target = Dom.find(this.selector || this.$el)\n .previous().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).on('keydown',\n this.eventKeydown, this._.uid);\n\n let showModal = () => {\n this.tempValue = true;\n };\n\n if ( this.modelValue ) {\n Any.delay(showModal, 100);\n }\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n\n Dom.find(document.body).off('keydown',\n null, this._.uid);\n },\n\n methods: {\n\n openModal(force = false, source = null)\n {\n if ( this.tempValue ) {\n return;\n }\n\n if ( this.closable || force ) {\n this.tempValue = true;\n }\n\n this.$emit('update:modelValue', true, source);\n },\n\n closeModal(force = false, source = null)\n {\n if ( ! this.tempValue ) {\n return;\n }\n\n if ( ! this.update ) {\n return this.$emit('close', source);\n }\n\n if ( this.closable || force ) {\n this.tempValue = false;\n }\n\n this.$emit('update:modelValue', false, source);\n },\n\n stopRefreshTimeout()\n {\n clearTimeout(this.refresh);\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n startRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n window.zIndex += 1;\n\n Dom.find(this.$el).attr('data-modal',\n window.zIndex);\n\n Dom.find(this.$el).css({\n 'z-index': window.zIndex\n });\n\n this.queueRefreshTimeout();\n },\n\n queueRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n this.refresh = setTimeout(() => {\n Dom.find(this.$el).addClass('n-ready');\n }, 100);\n },\n\n eventClick(event, el)\n {\n if ( this.disabled || event.which !== 1 ) {\n return;\n }\n\n let result = !! Dom.find(el).closest(this.target);\n\n if ( ! result && ! this.tempValue ) {\n return;\n }\n\n if ( this.tempValue && this.closable ) {\n result = ! Dom.find(el).closest(this.$refs.backdrop);\n }\n\n if ( result === this.tempValue ) {\n return;\n }\n\n if ( ! result ) {\n return this.closeModal(false, 'escape');\n }\n\n if ( this.listen ) {\n this.openModal(true, 'selector');\n }\n },\n\n eventKeydown(event, el)\n {\n if ( ! this.tempValue || event.which !== 27 ) {\n return;\n }\n\n let extractIndex = (modal) => {\n return Dom.find(modal).attr('data-modal');\n };\n\n let indexes = Dom.find('.n-modal:not(.n-hidden)')\n .each(extractIndex);\n\n let index = Dom.find(this.$el).attr('data-modal');\n\n if ( Arr.last(indexes.sort()) !== index ) {\n return;\n }\n\n this.closeModal(false, 'escape');\n },\n\n },\n\n renderClose()\n {\n if ( ! this.renderClose || ! this.closable ) {\n return null;\n }\n\n let props = {\n onClick: () => this.closeModal(false, 'escape')\n };\n\n return (\n <div class=\"n-modal__close\" {...props}>\n <span class={nano.Icons.times}></span>\n </div>\n );\n },\n\n renderHeader()\n {\n if ( ! this.$slots.header && ! this.title ) {\n return null;\n }\n\n return (\n <div class=\"n-modal__header\">\n { [this.$slots.header && this.$slots.header({ closeModal: this.closeModal }) || this.title, this.ctor('renderClose')()] }\n </div>\n );\n },\n\n renderFooter()\n {\n if ( ! this.$slots.footer ) {\n return null;\n }\n\n return (\n <div class=\"n-modal__footer\">\n { this.$slots.footer({ closeModal: this.closeModal }) }\n </div>\n );\n },\n\n renderBody()\n {\n let bodyHtml = (\n <NScrollbar ref=\"scrollbar\" relative={true} wrapClass=\"n-modal__wrap\">\n { this.$slots.default && this.$slots.default({ closeModal: this.closeModal }) }\n </NScrollbar>\n );\n\n if ( this.$slots.body ) {\n bodyHtml = this.$slots.body({ closeModal: this.closeModal });\n }\n\n return (\n <div class=\"n-modal__body\">\n { bodyHtml }\n </div>\n );\n },\n\n renderFrame()\n {\n if ( ! this.tempValue ) {\n return null;\n }\n\n let style = {\n width: this.width, height: this.height\n };\n\n let innerHtml = [\n this.ctor('renderHeader')(),\n this.ctor('renderBody')(),\n this.ctor('renderFooter')(),\n ]\n\n return (\n <div class=\"n-modal__frame\" style={style}>\n { this.$slots.raw ? this.$slots.raw() : innerHtml }\n </div>\n );\n },\n\n renderBackdrop()\n {\n return (\n <div ref=\"backdrop\" class=\"n-modal__backdrop\"></div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-modal',\n 'n-modal--' + this.size,\n 'n-modal--' + this.type,\n 'n-modal--' + this.position\n ];\n\n if ( this.tempValue ) {\n this.queueRefreshTimeout();\n }\n\n if ( this.renderClose ) {\n classList.push('n-closable');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let innerHtml = null;\n\n if ( this.tempValue ) {\n innerHtml = this.ctor('renderFrame')();\n }\n\n return (\n <div class={classList}>\n { [innerHtml, this.ctor('renderBackdrop')()] }\n </div>\n );\n }\n\n}\n","import { Obj } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NButton',\n\n props: {\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n link: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n square: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return null;\n }\n },\n\n iconPosition: {\n default()\n {\n return 'before';\n },\n type: [String]\n },\n\n nativeType: {\n default()\n {\n return 'button';\n },\n type: [String]\n }\n\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n let classList = [\n 'n-icon', \n 'n-icon--' + this.iconPosition,\n ];\n\n classList.push(this.icon);\n\n return (<i class={classList}></i>);\n },\n\n render()\n {\n let classList = [\n 'n-button',\n 'n-button--' + this.size,\n 'n-button--' + this.type,\n ];\n\n if ( this.icon ) {\n classList.push('n-button--icon');\n }\n\n if ( this.link ) {\n classList.push('n-button--link');\n }\n\n if ( this.square ) {\n classList.push('n-button--square');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = {\n class: classList\n };\n\n if ( this.disabled ) {\n props.disabled = true;\n }\n\n let innerHtml = [];\n\n if ( this.iconPosition === 'before' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n if ( this.$slots.default && ! this.square ) {\n innerHtml.push(<span>{ this.$slots.default && this.$slots.default() }</span>);\n }\n\n if ( this.iconPosition === 'after' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n return h(this.nativeType, props, innerHtml);\n }\n\n}\n","export default {\n\n name: 'NButtonGroup',\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-button-group',\n 'n-button-group--' + this.size\n ]\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { h } from \"vue\";\nimport { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInput',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n inheritAttrs: false,\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n iconPosition: {\n default()\n {\n return 'after';\n },\n type: [String]\n },\n\n iconDisabled: {\n default()\n {\n return null;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n nativeType: {\n default()\n {\n return 'text';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.modelValue || ''\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n onIconClick(event)\n {\n if ( event.clientX || event.clientY ) {\n this.$emit('icon-click', event);\n }\n },\n\n onInput(event)\n {\n this.$emit('update:modelValue',\n this.tempValue = event.target.value);\n },\n\n onKeydown(event)\n {\n this.$emit('keydown', event);\n\n if ( event.which !== 13 ) {\n return;\n }\n\n event.preventDefault();\n\n if ( ! this.NForm ) {\n return;\n }\n\n this.NForm.onSubmit(event);\n },\n\n onFocus(event)\n {\n this.focus = true;\n this.$emit('focus', event);\n },\n\n onBlur(event)\n {\n this.focus = false;\n this.$emit('blur', event);\n }\n\n },\n\n renderIcon()\n {\n if ( !this.icon ) {\n return null;\n }\n\n let disabled = this.deepDisabled;\n\n if ( this.iconDisabled !== null ) {\n disabled = this.iconDisabled;\n }\n\n let props = {\n type: 'input',\n icon: this.icon,\n size: this.size,\n square: true,\n disabled: disabled,\n };\n\n if ( !disabled ) {\n props.onClick = this.onIconClick;\n }\n\n return (<NButton {...props} />);\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs, [\n 'class', 'style'\n ]);\n\n Obj.assign(props, {\n value: this.tempValue,\n type: this.nativeType,\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onInput: this.onInput,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeydown: this.onKeydown\n });\n\n return h('input', props);\n },\n\n render()\n {\n let classList = [\n 'n-input',\n 'n-input--' + this.size,\n 'n-input--' + this.type,\n ];\n\n if ( this.icon ) {\n classList.push('n-input--icon');\n classList.push('n-input--icon-' + this.iconPosition);\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n let props = Obj.only(this.$attrs, ['style'], {\n class: this.cmer(classList)\n });\n\n let innerHtml = [];\n\n if ( this.iconPosition === 'before' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n innerHtml.push(this.ctor('renderInput')());\n\n if ( this.iconPosition === 'after' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n return h('div', props, innerHtml);\n }\n\n}\n","import { Arr, Obj, Num, Now, Any, Dom, Locale } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NInputNumber',\n\n inheritAttrs: false,\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n \n },\n\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n min: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return Number.MAX_VALUE;\n },\n type: [Number]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n stepSize: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n precision: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n format: {\n default()\n {\n return ':count';\n },\n type: [String]\n },\n\n decimals: {\n default()\n {\n return Locale.trans('.');\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = this.getValue(value);\n }\n }\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.getValue(),\n }\n },\n\n methods: {\n\n clear()\n {\n this.$emit('update:modelValue', this.tempValue = this.clearValue);\n },\n\n getValue(value = null)\n {\n if ( Any.isNull(value) ) {\n value = this.modelValue;\n }\n\n if ( Any.isEmpty(value) ) {\n return this.min;\n }\n\n return Num.float(value);\n },\n\n getDisplayValue()\n {\n\n if ( Any.isEmpty(this.modelValue) ) {\n return null;\n }\n\n let value = Num.format(this.tempValue,\n this.decimals, ' ', this.precision);\n\n return Locale.trans(this.format, { count: value });\n },\n\n nextStep()\n {\n if ( isNaN(this.tempValue) ) {\n this.tempValue = 0;\n }\n\n let value = this.tempValue + this.stepSize;\n\n if ( this.max < value ) {\n return;\n }\n\n value = Num.float(value).toFixed(this.precision);\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n },\n\n onNextDown()\n {\n this.nextStep();\n\n this.nextTimeout = setTimeout(() => {\n this.nextInterval = setInterval(this.nextStep, 100);\n }, 400);\n\n Dom.find(document).on('mouseup', this.onNextUp,\n this._.uid);\n },\n\n onNextUp()\n {\n clearTimeout(this.nextTimeout);\n clearInterval(this.nextInterval);\n\n Dom.find(document).off('mouseup', null,\n this._.uid);\n },\n\n prevStep()\n {\n if ( isNaN(this.tempValue) ) {\n this.tempValue = 0;\n }\n\n let value = this.tempValue - this.stepSize;\n\n if ( this.min > value ) {\n return;\n }\n\n value = Num.float(value).toFixed(this.precision);\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n },\n\n onPrevDown()\n {\n this.prevStep();\n\n this.prevTimeout = setTimeout(() => {\n this.prevInterval = setInterval(this.prevStep, 100);\n }, 400);\n\n Dom.find(document).on('mouseup', this.onPrevUp,\n this._.uid);\n },\n\n onPrevUp()\n {\n clearTimeout(this.prevTimeout);\n clearInterval(this.prevInterval);\n\n Dom.find(document).off('mouseup', null,\n this._.uid);\n },\n\n onKeydown(event)\n {\n if ( event.which === 13 ) {\n this.onInput(event);\n }\n },\n\n onFocus(event)\n {\n this.focus = true;\n },\n\n onBlur(event)\n {\n this.onInput(event);\n\n this.focus = false;\n },\n\n onInput(event)\n {\n let value = event.target.value;\n\n if ( value.match(/^[0-9]+((.|,)[0-9]+)?$/) ) {\n value = this.format.replace(':count', value);\n }\n\n let format = this.format.replace(':count',\n `([0-9\\\\,\\\\.\\\\-\\\\s]+)`);\n\n let regex = new RegExp(`^${format}$`);\n\n let match = value.match(regex);\n\n if ( !match ) {\n return event.target.value = this.getDisplayValue();\n }\n\n value = match[1].replace(',', '.')\n .replace(/\\s/, '');\n\n value = Num.float(value).toFixed(this.precision);\n\n if ( value < this.min ) {\n value = this.min;\n }\n\n if ( value > this.max ) {\n value = this.max;\n }\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n\n event.target.value = this.getDisplayValue();\n }\n\n },\n\n renderPrev()\n {\n let disabled = this.deepDisabled ||\n this.tempValue <= this.min;\n\n let props = {\n type: 'input-number',\n size: this.size,\n icon: 'fa fa-minus',\n square: true,\n disabled: disabled,\n onMousedown: this.onPrevDown,\n };\n\n return (<NButton {...props} />);\n },\n\n renderNext()\n {\n let disabled = this.deepDisabled ||\n this.tempValue >= this.max;\n\n let props = {\n type: 'input-number',\n size: this.size,\n icon: 'fa fa-plus',\n square: true,\n disabled: disabled,\n onMousedown: this.onNextDown,\n };\n\n return (<NButton {...props} />);\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs,\n ['class', 'style']);\n\n Obj.assign(props, {\n value: this.getDisplayValue(),\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onKeydown: this.onKeydown,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n });\n\n return h('input', props);\n },\n\n renderClear()\n {\n if ( !this.clearable || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( !this.deepDisabled ) {\n props.onMousedown = this.clear;\n }\n\n return (\n <div class=\"n-input-number__clear\" {...props}>\n <i class={nano.Icons.times}></i>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-input-number',\n 'n-input-number--' + this.type,\n 'n-input-number--' + this.size,\n ];\n\n if ( Any.isEmpty(this.modelValue) ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n {this.ctor('renderPrev')()}\n {this.ctor('renderInput')()}\n {this.ctor('renderClear')()}\n {this.ctor('renderNext')()}\n </div>\n );\n }\n\n}","import { h } from \"vue\";\nimport {Obj, Any, UUID} from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTextarea',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n autoRows: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n maxRows: {\n default()\n {\n return 12;\n },\n type: [Number]\n },\n\n minRows: {\n default()\n {\n return 4;\n },\n type: [Number]\n },\n\n maxLength: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n eventInput(event)\n {\n this.$emit('update:modelValue', \n this.tempValue = event.target.value);\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue || ''\n };\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs, ['class', 'style']);\n\n Obj.assign(props, {\n value: this.tempValue,\n rows: this.minRows,\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.eventInput,\n });\n\n if ( this.maxLength !== 0 ) {\n props.maxLength = this.maxLength;\n }\n\n let currentRows = (this.tempValue.match(/\\n/g) || []).length + 1;\n\n if ( this.autoRows && props.rows < currentRows ) {\n props.rows = currentRows <= this.maxRows ? currentRows : this.maxRows;\n }\n\n return h('textarea', props);\n },\n\n render()\n {\n let classList = [\n 'n-textarea',\n 'n-textarea--' + this.size,\n 'n-textarea--' + this.type,\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.only(this.$attrs, ['style'], {\n class: this.cmer(classList)\n });\n\n return h('div', props, [this.ctor('renderInput')()]);\n }\n\n}\n","import { Str, Arr, Obj, Any, Locale, Dom, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSelect',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n },\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n lazy: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-center';\n },\n type: [String]\n },\n\n multiple: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n collapse: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Please select');\n },\n type: [String]\n },\n\n emptyText: {\n default()\n {\n return 'No items';\n },\n type: [String]\n },\n\n undefinedText: {\n default()\n {\n return 'Undefined item';\n },\n type: [String]\n },\n\n collapseText: {\n default()\n {\n return '+:count item|+:count items';\n },\n type: [String]\n },\n\n allowCreate: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array, Object]\n },\n\n optionsValue: {\n default()\n {\n return '$index';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsDisabled: {\n default()\n {\n return 'null';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n deepDisabled()\n {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n },\n\n empty()\n {\n return Any.isEmpty(this.tempValue);\n },\n\n custom()\n {\n let result = Arr.filter(this.elements, (element) => {\n\n if ( Any.isArray(this.tempValue) ) {\n return Arr.has(this.tempValue, element.value);\n }\n\n return element.value === this.tempValue;\n });\n\n return result.length === 0;\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempClear: this.clearValue,\n focus: false,\n search: '',\n index: - 1,\n elements: [],\n searched: []\n };\n },\n\n\n beforeMount()\n {\n if ( this.lazy ) {\n this.generateOptions();\n }\n\n if ( this.multiple && !Any.isArray(this.tempValue) ) {\n this.tempValue = [];\n }\n\n if ( this.multiple && !Any.isArray(this.clearValue) ) {\n this.tempClear = [];\n }\n\n this.searchOptions();\n },\n\n provide()\n {\n return {\n NSelect: this\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( !this.multiple && Any.isArray(value) ) {\n value = null;\n }\n\n if ( this.multiple && !Any.isArray(value) ) {\n value = [];\n }\n\n this.tempValue = value;\n },\n\n search()\n {\n this.searchOptions();\n },\n\n focus()\n {\n this.$nextTick(this.scrollToClosest);\n },\n\n },\n\n methods: {\n\n clear(event = null)\n {\n if ( event ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.focusInput();\n\n this.$emit('update:modelValue',\n this.tempValue = Arr.clone(this.tempClear));\n },\n\n generateOptions()\n {\n this.elements = Arr.each(this.options, (value, index) => {\n\n let data = {\n $value: value, $index: index\n };\n\n let option = {\n label: Obj.get(data, this.optionsLabel),\n value: Obj.get(data, this.optionsValue)\n };\n\n return Obj.assign(option, {\n tempLabel: option.label, tempValue: option.value\n });\n });\n },\n\n addOption(option)\n {\n Arr.add(this.elements, option,\n { tempValue: option.tempValue });\n },\n\n removeOption(option)\n {\n Arr.remove(this.elements,\n { tempValue: option.tempValue });\n },\n\n resetInput()\n {\n this.index = - 1;\n this.search = '';\n },\n\n focusInput(event = null)\n {\n if ( event ) {\n event.preventDefault();\n }\n\n this.$refs.input.focus();\n },\n\n onFocusInput()\n {\n if ( !this.focus ) {\n this.$refs.popover.open();\n }\n\n clearInterval(this.refresh);\n },\n\n onInputInput(event)\n {\n this.search = event.target.value;\n },\n\n onKeydownInput(event)\n {\n if ( !this.focus ) {\n return this.onFocusInput();\n }\n\n if ( event.which === 13 ) {\n this.createOrToggle();\n }\n\n if ( event.which === 38 ) {\n this.selectPrev();\n }\n\n if ( event.which === 40 ) {\n this.selectNext();\n }\n },\n\n searchOptions()\n {\n this.index = - 1;\n\n if ( Any.isEmpty(this.search) ) {\n return this.searched = this.elements;\n }\n\n let searchRegex = new RegExp(this.search, 'i');\n\n let searched = Arr.filter(this.elements, (option) => {\n return Any.isString(option.label) && option.label.match(searchRegex);\n });\n\n this.searched = searched;\n },\n\n toggleOption(value, event = null)\n {\n if ( Any.isEmpty(value) ) {\n return;\n }\n\n if ( event && event.which !== 1 ) {\n return;\n }\n\n if ( event ) {\n event.preventDefault();\n }\n\n let tempValue = this.tempValue;\n\n if ( this.multiple ) {\n this.focusInput();\n }\n\n if ( !this.multiple ) {\n tempValue = value;\n }\n\n if ( this.multiple ) {\n Arr.toggle(tempValue, value);\n }\n\n this.$refs.popover.close();\n\n let denyUpdate = this.tempValue === tempValue;\n\n if ( this.multiple && !Any.isArray(this.modelValue) ) {\n denyUpdate = false;\n }\n\n if ( !this.multiple && Any.isArray(this.modelValue) ) {\n denyUpdate = false;\n }\n\n if ( denyUpdate ) {\n return;\n }\n\n this.$emit('update:modelValue',\n this.tempValue = tempValue);\n },\n\n getOptionLabel(value)\n {\n let option = Arr.find(this.elements,\n { tempValue: value });\n\n if ( !option && this.allowCreate ) {\n return value;\n }\n\n if ( !option && !this.allowCreate ) {\n return this.trans(this.undefinedText);\n }\n\n return option.tempLabel;\n },\n\n selectPrev()\n {\n let newIndex = this.index - 1;\n\n if ( newIndex < 0 ) {\n newIndex = this.searched.length - 1;\n }\n\n this.index = newIndex;\n\n this.scrollToCurrent();\n },\n\n selectNext()\n {\n let newIndex = this.index + 1;\n\n if ( newIndex > this.searched.length - 1 ) {\n newIndex = 0;\n }\n\n this.index = newIndex;\n\n this.scrollToCurrent();\n },\n\n createOrToggle()\n {\n if ( this.allowCreate && this.search ) {\n return this.createOption();\n }\n\n let selected = Arr.get(this.searched,\n this.index);\n\n if ( this.searched.length === 1 ) {\n selected = Arr.first(this.searched);\n }\n\n if ( !selected || selected.disabled ) {\n return;\n }\n\n this.toggleOption(selected.tempValue);\n },\n\n createOption()\n {\n this.toggleOption(this.search);\n\n this.search = '';\n },\n\n scrollToCurrent()\n {\n if ( !this.focus ) {\n return;\n }\n\n let selected = Arr.get(this.searched,\n this.index);\n\n if ( !selected ) {\n return;\n }\n\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.scrollIntoView(`[data-option=\"${selected._.uid}\"]`);\n }\n\n if ( this.$refs.virtualbar ) {\n this.$refs.virtualbar.scrollToIndex(this.index);\n }\n },\n\n scrollToClosest()\n {\n if ( !this.focus ) {\n return;\n }\n\n let value = this.tempValue;\n\n if ( Any.isArray(this.tempValue) ) {\n value = Arr.first(this.tempValue);\n }\n\n if ( !value ) {\n return;\n }\n\n let index = Arr.findIndex(this.elements, {\n tempValue: value\n });\n\n if ( !index ) {\n return;\n }\n\n if ( this.$refs.virtualbar ) {\n this.$refs.virtualbar.scrollToIndex(index, 250);\n }\n\n let select = `[data-option=\"${Obj.get(this.elements[index], '_.uid', 0)}\"]`;\n\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.scrollIntoView(select, 250);\n }\n }\n\n },\n\n renderLabelClear()\n {\n if ( !this.clearable || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( !this.deepDisabled ) {\n props.onMousedown = this.clear;\n }\n\n return (\n <div class=\"n-select__clear\" {...props}>\n <i class={nano.Icons.times}></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-select__angle\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n },\n\n renderLabelItem(value)\n {\n let classList = [\n 'n-select__item'\n ];\n\n let props = {\n class: nano.Icons.times,\n };\n\n if ( !this.deepDisabled ) {\n props.onMousedown = (event) => this.toggleOption(value, event);\n }\n\n let labelHtml = (\n <span>{this.getOptionLabel(value)}</span>\n );\n\n return (\n <div class={classList}>\n {[labelHtml, <i {...props}></i>]}\n </div>\n );\n },\n\n renderLabelCollapse()\n {\n let first = Arr.first(this.tempValue);\n\n if ( !first ) {\n return null;\n }\n\n let firstHtml = this.ctor('renderLabelItem')(first);\n\n if ( this.tempValue.length === 1 ) {\n return firstHtml;\n }\n\n let count = this.tempValue.length - 1;\n\n let collapseHtml = (\n <div class=\"n-select__item\">\n <span>{this.choice(this.collapseText, count)}</span>\n </div>\n );\n\n return [\n firstHtml, collapseHtml\n ];\n },\n\n renderLabelItems()\n {\n if ( !Any.isArray(this.tempValue) ) {\n return null;\n }\n\n if ( this.collapse ) {\n return this.ctor('renderLabelCollapse')();\n }\n\n return Arr.each(this.tempValue, (value) => {\n return this.ctor('renderLabelItem')(value);\n });\n },\n\n renderMultiple()\n {\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n let props = {\n value: this.search,\n placeholder: this.placeholder,\n disabled: this.deepDisabled,\n onFocus: this.onFocusInput,\n onInput: this.onInputInput,\n onKeydown: this.onKeydownInput\n };\n\n if ( !this.focus ) {\n props.value = null;\n }\n\n if ( !isEmptyValue ) {\n props.placeholder = null;\n }\n\n let inputHtml = (\n <div class=\"n-select__input\">\n <input ref=\"input\" {...props} />\n </div>\n );\n\n return [\n this.ctor('renderLabelClear')(),\n (\n <div class=\"n-select__items\">\n {[this.ctor('renderLabelItems')(), inputHtml]}\n </div>\n ),\n this.ctor('renderLabelAngle')()\n ];\n },\n\n renderSingle()\n {\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n let modelLabel = this.getOptionLabel(\n this.tempValue);\n\n if ( isEmptyValue ) {\n modelLabel = null;\n }\n\n let props = {\n value: this.search,\n placeholder: this.placeholder,\n disabled: this.deepDisabled,\n onFocus: this.onFocusInput,\n onInput: this.onInputInput,\n onKeydown: this.onKeydownInput\n };\n\n if ( !this.search && this.custom ) {\n props.value = this.tempValue;\n }\n\n if ( !this.focus ) {\n props.value = modelLabel;\n }\n\n if ( !isEmptyValue ) {\n props.placeholder = modelLabel;\n }\n\n return [\n this.ctor('renderLabelClear')(),\n (\n <div class=\"n-select__input\">\n <input ref=\"input\" {...props} />\n </div>\n ),\n this.ctor('renderLabelAngle')()\n ];\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-select__display'\n ];\n\n if ( this.multiple ) {\n classList.push('n-multiple');\n }\n\n let displayHtml = this.ctor('renderSingle');\n\n if ( this.multiple ) {\n displayHtml = this.ctor('renderMultiple');\n }\n\n return (\n <div class={classList}>{displayHtml()}</div>\n );\n },\n\n renderItems()\n {\n let emptyHtml = (\n <div class=\"n-select__empty\">\n <NEmptyIcon inline={true}>{this.trans(this.emptyText)}</NEmptyIcon>\n </div>\n );\n\n if ( !this.searched.length ) {\n return emptyHtml;\n }\n\n if ( this.lazy ) {\n return this.ctor('renderLazyItems')();\n }\n\n let options = Obj.each(this.searched, (option, index) => {\n return option.ctor('renderOption')(index);\n });\n\n let props = {\n relative: true, size: this.size\n }\n\n return (\n <NScrollbar ref=\"scrollbar\" class=\"n-select__body\" {...props}>\n {Obj.values(options)}\n </NScrollbar>\n );\n },\n\n renderLazyOption(value, index)\n {\n let classList = [];\n\n let isMultipleActive = this.multiple &&\n Arr.has(this.tempValue, value.value);\n\n if ( isMultipleActive ) {\n classList.push('n-active');\n }\n\n let isSingleActive = ! this.multiple &&\n this.tempValue === value.value;\n\n if ( isSingleActive ) {\n classList.push('n-active');\n }\n\n if ( this.index === Num.int(index) ) {\n classList.push('n-focus');\n }\n\n let props = {\n 'type': this.type,\n 'clickClose': ! this.multiple,\n };\n\n props['onMousedown'] = (e) => {\n this.toggleOption(value.value, e);\n };\n\n if ( isSingleActive || isMultipleActive ) {\n props.icon = nano.Icons.checked;\n }\n\n return (\n <NPopoverOption class={classList} {...props}>\n {value.label}\n </NPopoverOption>\n );\n },\n\n renderLazyItems()\n {\n let props = {\n items: this.searched\n };\n\n props.renderNode = ({ value, index }) => {\n return this.ctor('renderLazyOption')(value, index);\n };\n\n return (\n <NVirtualscroller ref=\"virtualbar\" class=\"n-select__body n-virtual\" {...props} />\n );\n },\n\n renderPopover()\n {\n let classList = [\n 'n-popover--select'\n ];\n\n if ( this.lazy ) {\n classList.push('n-virtual');\n }\n\n let props = {\n class: classList,\n trigger: 'click',\n width: - 1,\n listen: true,\n size: this.size,\n scrollClose: true,\n disabled: this.deepDisabled,\n onClose: this.resetInput\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n {{ raw: this.ctor('renderItems') }}\n </NPopover>\n );\n },\n\n renderOptions()\n {\n if ( this.lazy ) {\n return null;\n }\n\n if ( Any.isEmpty(this.options) ) {\n return this.$slots.default && this.$slots.default();\n }\n\n let optionRender = ($value, $index) => {\n\n let props = {\n label: Obj.get({ $value, $index }, this.optionsLabel, null),\n value: Obj.get({ $value, $index }, this.optionsValue, null),\n };\n\n return (<NSelectOption {...props}></NSelectOption>);\n };\n\n return Obj.values(Obj.each(this.options, optionRender));\n },\n\n render()\n {\n let classList = [\n 'n-select',\n 'n-select--' + this.type,\n 'n-select--' + this.size,\n ];\n\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n if ( isEmptyValue ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList} onClick={this.focusInput}>\n {this.ctor('renderDisplay')()}\n {this.ctor('renderPopover')()}\n {this.ctor('renderOptions')()}\n </div>\n );\n }\n\n}\n","import { Num, Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSelectOption',\n\n inheritAttrs: false,\n\n inject: {\n\n NSelect: {\n default: undefined\n }\n\n },\n\n props: {\n\n value: {\n default()\n {\n return '';\n }\n },\n\n label: {\n default()\n {\n return null;\n }\n },\n\n valueProp: {\n default()\n {\n return null;\n }\n },\n\n labelProp: {\n default()\n {\n return null;\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n tempValue()\n {\n if ( Any.isEmpty(this.valueProp) ) {\n return this.value;\n }\n\n return Obj.get(this.value, this.valueProp);\n },\n\n tempLabel()\n {\n if ( Any.isEmpty(this.labelProp) ) {\n return this.label;\n }\n\n return Obj.get(this.value, this.labelProp);\n }\n\n },\n\n mounted()\n {\n if ( ! this.NSelect.lazy ) {\n this.NSelect.addOption(this);\n }\n },\n\n beforeUnmount()\n {\n if ( ! this.NSelect.lazy ) {\n this.NSelect.removeOption(this);\n }\n },\n\n methods: {\n\n toggleItem(event) \n {\n event.preventDefault();\n\n if ( event.which !== 1 ) {\n return;\n }\n\n if ( this.disabled ) {\n return;\n }\n\n this.NSelect.toggleOption(this.tempValue, \n event);\n },\n\n },\n\n renderOption(index)\n {\n\n let classList = [];\n\n let isMultipleActive = this.NSelect.multiple && \n Arr.has(this.NSelect.tempValue, this.tempValue);\n\n if ( isMultipleActive ) {\n classList.push('n-active');\n }\n\n let isSingleActive = ! this.NSelect.multiple && \n this.NSelect.tempValue === this.tempValue;\n\n if ( isSingleActive ) {\n classList.push('n-active');\n }\n\n if ( this.NSelect.index === Num.int(index) ) {\n classList.push('n-focus');\n }\n\n let props = {\n 'disabled': this.disabled,\n 'onMousedown': this.toggleItem,\n 'type': this.NSelect.type,\n 'clickClose': ! this.NSelect.multiple,\n };\n\n if ( isSingleActive || isMultipleActive ) {\n props.icon = nano.Icons.checked;\n }\n\n // Required for scrolldown\n props['data-option'] = this._.uid;\n\n return (\n <NPopoverOption class={classList} {...props}>\n { this.$slots.default && this.$slots.default() || this.tempLabel }\n </NPopoverOption>\n );\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Arr, Obj, Any, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCheckbox',\n\n inject: {\n\n NCheckboxGroup: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n value: {\n default()\n {\n return null;\n }\n },\n\n allowUncheck: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n intermediate: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n global: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n tempComputed()\n {\n return ! this.global ? this.tempChecked :\n this.NCheckboxGroup.globalChecked;\n },\n\n tempIntermediate()\n {\n return ! this.global ? this.intermediate :\n this.NCheckboxGroup.globalIntermediate;\n },\n\n tempDisabled()\n {\n return ! this.global ? this.disabled :\n this.NCheckboxGroup.globalDisabled;\n }\n\n },\n\n data()\n {\n return {\n uid: UUID(), tempChecked: this.modelValue\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempChecked ) {\n this.tempChecked = value;\n }\n }\n\n },\n\n beforeMount()\n {\n if ( this.NCheckboxGroup ) {\n this.tempChecked = this.NCheckboxGroup.isChecked(this.value);\n }\n },\n\n mounted()\n {\n if ( ! this.NCheckboxGroup || this.global ) {\n return;\n }\n\n this.$watch('NCheckboxGroup.tempValue', () => {\n this.tempChecked = this.NCheckboxGroup.isChecked(this.value);\n });\n\n this.NCheckboxGroup.addCheckbox(this);\n },\n\n beforeUnmount()\n {\n if ( this.NCheckboxGroup && ! this.global ) {\n this.NCheckboxGroup.removeCheckbox(this);\n }\n },\n\n methods: {\n\n toggle()\n {\n this.$emit('update:modelValue', this.tempChecked = ! this.tempChecked);\n },\n\n check()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.checkCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n uncheck()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.uncheckCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = false);\n },\n\n eventShiftClick()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.shiftCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n eventLocalClick(event)\n {\n let canClick = ! this.tempDisabled || (this.allowUncheck &&\n this.tempChecked);\n\n if ( ! canClick ) {\n return;\n }\n\n event.preventDefault();\n\n if ( event.shiftKey ) {\n return this.eventShiftClick();\n }\n \n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.toggleCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = ! this.tempChecked);\n },\n\n eventGlobalClick()\n {\n let canClick = ! this.tempDisabled || (this.allowUncheck &&\n this.tempChecked);\n\n if ( ! canClick ) {\n return;\n }\n\n this.NCheckboxGroup.toggleAll();\n },\n\n updateFromGroup()\n {\n let checked = this.NCheckboxGroup.isChecked(this.value);\n\n if ( this.tempChecked === checked ) {\n return;\n }\n \n this.$emit('update:modelValue', this.tempChecked = checked);\n }\n\n },\n\n renderCheckbox()\n {\n let interHtml = this.$slots.intermediate &&\n this.$slots.intermediate();\n\n if ( ! interHtml ) {\n interHtml = (<i class={nano.Icons.intermediate}></i>);\n }\n\n let checkHtml = this.$slots.checked &&\n this.$slots.checked();\n\n if ( ! checkHtml ) {\n checkHtml = (<i class={nano.Icons.checked}></i>);\n }\n\n return (\n <div class=\"n-checkbox__checkbox\">\n { this.tempIntermediate ? interHtml : checkHtml }\n </div>\n );\n },\n\n renderLabel()\n {\n if ( ! this.cslo('default') && ! this.cslo('label') ) {\n return null;\n }\n\n return (\n <div class=\"n-checkbox__label\">\n { this.$slots.default() || this.$slots.label() }\n </div>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NCheckboxGroup ) {\n size = this.NCheckboxGroup.size;\n }\n\n let classList = [\n 'n-checkbox',\n 'n-checkbox--' + size,\n 'n-checkbox--' + this.type,\n ];\n\n if ( this.allowUncheck ) {\n classList.push('n-uncheck');\n }\n\n if ( this.tempComputed ) {\n classList.push('n-checked');\n }\n\n if ( this.tempIntermediate ) {\n classList.push('n-intermediate');\n }\n\n if ( this.tempDisabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.tempComputed && this.allowUncheck ) {\n Arr.remove(classList, 'n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( this.global ) {\n props.onMousedown = this.eventGlobalClick;\n }\n\n if ( ! this.global ) {\n props.onMousedown = this.eventLocalClick;\n }\n\n return (\n <div class={classList} {...props}>\n { [this.ctor('renderCheckbox')(), this.ctor('renderLabel')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCheckboxGroup',\n\n provide()\n {\n return {\n NCheckboxGroup: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'horizontal';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n globalChecked()\n {\n let checked = Arr.filter(this.elements, (checkbox) => {\n return checkbox.tempChecked;\n });\n\n return checked.length === this.elements.length &&\n this.elements.length !== 0;\n },\n\n globalIntermediate()\n {\n let checked = this.elements.filter((checkbox) => {\n return checkbox.tempChecked;\n });\n\n return checked.length !== this.elements.length &&\n checked.length !== 0 ;\n },\n\n globalDisabled()\n {\n return this.elements.length === 0;\n },\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n index: -1,\n elements: []\n }\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.tempValue = this.modelValue ) {\n this.tempValue = this.modelValue;\n }\n \n },\n\n },\n\n methods: {\n\n addCheckbox(checkbox)\n {\n this.index = -1;\n\n Arr.add(this.elements, checkbox, {\n uid: checkbox.uid\n });\n\n this.elements = Arr.sort(this.elements, 'sort');\n },\n\n removeCheckbox(checkbox)\n {\n this.index = -1;\n \n Arr.remove(this.elements, {\n uid: checkbox.uid\n });\n },\n\n toggleCheckbox(checkbox, emit = true)\n {\n let index = Arr.findIndex(this.elements, {\n uid: checkbox.uid\n });\n\n if ( ! checkbox.tempChecked ) {\n this.index = index;\n }\n\n Arr.toggle(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n checkCheckbox(checkbox, emit = true)\n {\n Arr.add(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n uncheckCheckbox(checkbox, emit = true)\n {\n Arr.remove(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n shiftCheckbox(checkbox)\n {\n if ( this.index === -1 ) {\n return this.toggleCheckbox(checkbox, false);\n }\n\n let index = Arr.findIndex(this.elements, {\n uid: checkbox.uid\n });\n\n let checkboxes = this.elements.slice(this.index, index + 1);\n\n if ( index < this.index ) {\n checkboxes = this.elements.slice(index, this.index + 1);\n }\n\n this.index = -1;\n\n Arr.each(checkboxes, (checkbox) => {\n this.checkCheckbox(checkbox, false);\n });\n\n Arr.each(checkboxes, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n toggleAll()\n {\n this.globalChecked ? this.uncheckAll() : this.checkAll();\n },\n\n checkAll()\n {\n Arr.each(this.elements, (checkbox) => {\n this.checkCheckbox(checkbox, false);\n });\n\n Arr.each(this.elements, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n uncheckAll()\n {\n Arr.each(this.elements, (checkbox) => {\n this.uncheckCheckbox(checkbox, false);\n });\n\n Arr.each(this.elements, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n isChecked(value)\n {\n return Arr.has(this.tempValue, value);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-checkbox-group',\n 'n-checkbox-group--' + this.size,\n 'n-checkbox-group--' + this.align,\n ];\n\n return (\n <div class={classList}>\n {this.$slots.default()}\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRadio',\n\n model: {\n prop: 'checked'\n },\n\n inject: {\n\n NRadioGroup: {\n default: undefined\n }\n\n },\n\n props: {\n\n value: {\n default()\n {\n return null;\n }\n },\n\n checked: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n uid()\n {\n return this._.uid;\n }\n\n },\n\n data()\n {\n return {\n tempChecked: this.checked\n };\n },\n\n watch: {\n\n checked()\n {\n if ( this.checked !== this.tempChecked ) {\n this.tempChecked = this.checked;\n }\n }\n\n },\n\n beforeMount()\n {\n if ( this.NRadioGroup ) {\n this.tempChecked = this.NRadioGroup.isChecked(this.value);\n }\n },\n\n mounted()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.addRadio(this);\n }\n },\n\n beforeUnmount()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.removeRadio(this);\n }\n },\n\n methods: {\n\n check()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.checkRadio(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n updateFromGroup()\n {\n let checked = this.NRadioGroup.isChecked(this.value);\n\n if ( this.tempChecked === checked ) {\n return;\n }\n \n this.$emit('update:modelValue', this.tempChecked = checked);\n }\n\n },\n\n renderRadio()\n {\n return (\n <div class=\"n-radio__radio\">\n <span></span>\n </div>\n );\n },\n\n renderLabel()\n {\n if ( ! this.$slots.default && ! this.$slots.label ) {\n return null;\n }\n\n return (\n <div class=\"n-radio__label\">\n { this.$slots.default() || this.$slots.label() }\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-radio',\n 'n-radio--' + this.size,\n 'n-radio--' + this.type,\n ];\n\n if ( this.tempChecked ) {\n classList.push('n-checked');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( ! this.disabled ) {\n props.onMousedown = this.check;\n }\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderRadio')() }\n { this.ctor('renderLabel')() }\n </div>\n );\n }\n\n}\n","import { Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRadioGroup',\n\n provide()\n {\n return {\n NRadioGroup: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'horizontal';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n elements: []\n }\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n },\n\n },\n\n methods: {\n\n addRadio(radio)\n {\n Arr.add(this.elements, radio, {\n uid: radio.uid\n });\n },\n\n removeRadio(radio)\n {\n Arr.remove(this.elements, {\n uid: radio.uid\n });\n },\n\n checkRadio(radio)\n {\n this.tempValue = radio.value;\n \n Arr.each(this.elements, (radio) => {\n radio.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n isChecked(value)\n {\n return this.tempValue === value;\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-radio-group',\n 'n-radio-group--' + this.size,\n 'n-radio-group--' + this.align,\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { Obj, Arr, Any, Num, Dom, Event } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSlider',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n steps: {\n default()\n {\n return 1;\n }\n },\n\n labels: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n min: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return 100;\n },\n type: [Number]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n index: 0, width: null, tempValue: [null, null]\n };\n },\n\n computed: {\n\n selector()\n {\n return `[data-index=\"${this.index}\"]`;\n },\n\n fixmin()\n {\n return Any.isArray(this.steps) ? Arr.first(this.steps) : this.min;\n },\n\n fixmax()\n {\n return Any.isArray(this.steps) ? Arr.last(this.steps) : this.max;\n },\n\n minmax()\n {\n return this.fixmax - this.fixmin;\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n },\n\n watch: {\n\n modelValue()\n {\n this.getPseudoValue();\n }\n\n },\n\n mounted()\n {\n Dom.find(window).on('resize',\n Any.debounce(this.onResize, 500), this._.uid);\n\n this.onResize();\n this.getPseudoValue();\n },\n\n unmounted()\n {\n Dom.find(window).off('resize',\n null, this._.uid);\n },\n\n methods: {\n\n onResize()\n {\n this.width = Dom.find(this.$el).width();\n },\n\n getPseudoValue()\n {\n let value = this.modelValue;\n\n if ( Any.isNull(value) ) {\n value = this.fixmax;\n }\n if ( ! Any.isArray(value) ) {\n value = [this.fixmin, value];\n }\n\n return this.tempValue = value;\n },\n\n setModelValue()\n {\n let value = this.tempValue;\n\n if ( ! this.range ) {\n value = this.tempValue[1];\n }\n\n this.$emit('update:modelValue', value);\n },\n\n getValPos(value)\n {\n return Num.fixed(this.width / this.minmax * (value - this.fixmin), 2) + 'px';\n },\n\n getValStyle(value)\n {\n return 'transform: translateX(' + this.getValPos(value) + ');';\n },\n\n getBarPos()\n {\n return Num.fixed(this.width / this.minmax * (this.tempValue[0] - this.fixmin), 2) + 'px';\n },\n\n getBarWidth()\n {\n return Num.fixed(this.width / this.minmax * (this.tempValue[1] - this.tempValue[0]), 2) + 'px';\n },\n\n getBarStyle()\n {\n return 'max-width: ' + this.getBarWidth() + '; ' +\n 'transform: translateX(' + this.getBarPos() + ');';\n },\n\n getClosestValue(width)\n {\n if ( Any.isNumber(this.steps) ) {\n return Num.round(width / this.steps) * this.steps;\n }\n\n let range = Arr.last(this.steps) -\n Arr.first(this.steps);\n\n let diff = Arr.each(this.steps, (step) => {\n return Math.abs((range / 100 * width) - step + this.fixmin);\n });\n\n let index = Arr.findIndex(diff, Math.min(...diff));\n\n return this.steps[index];\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onMousedown(event)\n {\n if ( this.disabled ) {\n return;\n }\n\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(this.$el).find(this.selector).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onMousemove, 60), this._.uid);\n },\n\n onMousemove(event)\n {\n this.clientX = this.getTouchEvent(event).clientX;\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let relativeWidth = (this.clientX - offsetX) / this.width * 100;\n\n let closestValue = this.getClosestValue(relativeWidth);\n\n if ( closestValue < this.fixmin ) {\n closestValue = this.fixmin;\n }\n\n if ( closestValue > this.fixmax ) {\n closestValue = this.fixmax;\n }\n\n let stepMin = this.tempValue[0] + this.steps;\n\n if ( this.index === 1 && closestValue < stepMin ) {\n closestValue = stepMin;\n }\n\n let stepMax = this.tempValue[1] - this.steps;\n\n if ( this.index === 0 && closestValue > stepMax ) {\n closestValue = stepMax;\n }\n\n this.tempValue[this.index] = closestValue;\n },\n\n onMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mouseup, null, this._.uid);\n Dom.find(document).off(this.mousemove, null, this._.uid);\n\n Dom.find(this.$el).find(this.selector).removeClass('n-move');\n Dom.find(document.body).removeClass('n-move');\n\n this.setModelValue();\n },\n\n },\n\n renderHandle(value, index)\n {\n let handleProps = {\n 'data-value': value,\n 'data-index': index,\n style: this.getValStyle(value)\n };\n\n handleProps['onMousedown'] = (event) => {\n this.onMousedown(event, this.index = index);\n };\n\n let key = Arr.findIndex(this.steps, value);\n\n return (\n <div class=\"n-slider__handle\" {...handleProps}>\n <span>{ Obj.get(this.labels, key, value) }</span>\n </div>\n );\n },\n\n renderHandles()\n {\n let values = Arr.clone(this.tempValue);\n\n if ( ! this.range ) {\n delete values[0];\n }\n\n return Arr.each(values, (value, index) => {\n return this.ctor('renderHandle')(value, index);\n });\n },\n\n renderBar()\n {\n let barProps = {\n style: this.getBarStyle()\n };\n\n return (\n <div class=\"n-slider__bar\">\n <div class=\"n-slider__range\" {...barProps}></div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-slider',\n 'n-slider--' + this.type,\n 'n-slider--' + this.size\n ];\n\n if ( this.range ) {\n classList.push('n-range');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderBar')() }\n { this.ctor('renderHandles')() }\n </div>\n );\n }\n\n}\n","import { Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSwitch',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n }\n },\n\n onValue: {\n default()\n {\n return true;\n }\n },\n\n offValue: {\n default()\n {\n return false;\n }\n },\n\n onType: {\n default()\n {\n return 'primary';\n }\n },\n\n offType: {\n default()\n {\n return 'default';\n }\n },\n\n size: {\n default()\n {\n return 'md';\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n eventClick()\n {\n let tempValue = this.onValue;\n\n if ( this.tempValue === this.onValue ) {\n tempValue = this.offValue;\n }\n\n this.$emit('update:modelValue', this.tempValue = tempValue);\n }\n\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n }\n\n },\n\n renderSwitch()\n {\n let classList = [\n 'n-switch__switch'\n ];\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.eventClick;\n }\n\n return (\n <div class={classList} {...props}>\n <span></span>\n </div>\n )\n },\n\n renderLabel()\n {\n if ( ! this.$slots.default ) {\n return null;\n }\n\n let classList = [\n 'n-switch__label',\n ];\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.eventClick;\n }\n\n return (\n <div class={classList} {...props}>\n { this.$slots.default() }\n </div>\n )\n },\n\n render()\n {\n let classList = [\n 'n-switch',\n 'n-switch--' + this.size\n ];\n\n if ( this.tempValue === this.onValue ) {\n classList.push('n-switch--' + this.onType);\n }\n\n if ( this.tempValue === this.offValue) {\n classList.push('n-switch--' + this.offType);\n }\n\n if ( this.tempValue === this.onValue ) {\n classList.push('n-on');\n }\n\n if ( this.tempValue === this.offValue ) {\n classList.push('n-off');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderSwitch')() }\n { this.ctor('renderLabel')() }\n </div>\n );\n }\n\n}\n","import { Obj, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NConfirm',\n\n props: {\n\n visible: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n width: {\n default()\n {\n return 'auto';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'center-center';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n confirmText: {\n default()\n {\n return Locale.trans('Confirm');\n },\n type: [String]\n },\n\n abortText: {\n default()\n {\n return Locale.trans('Abort');\n },\n type: [String]\n },\n\n buttonSize: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n },\n\n watch: {\n\n visible()\n {\n if ( this.visible !== this.tempVisible ) {\n this.tempVisible = this.visible;\n }\n }\n\n },\n\n data()\n {\n return {\n tempVisible: this.visible\n };\n },\n\n methods: {\n\n abort(event)\n {\n this.$refs.modal.closeModal(true, 'self');\n this.$emit('abort');\n },\n\n confirm(event)\n {\n this.$refs.modal.closeModal(true, 'self');\n this.$emit('confirm');\n },\n\n eventInput(value, source)\n {\n if ( ! value && source !== 'self' ) {\n this.$emit('abort');\n }\n\n this.$emit('update:visible', this.tempVisible = value);\n }\n\n },\n\n renderIcon()\n {\n return (\n <div class=\"n-confirm__icon\">\n <span class={nano.Icons[this.type]}></span>\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-confirm__body\">\n { this.$slots.default && this.$slots.default() || this.trans('Are you sure?') }\n </div>\n );\n },\n\n renderAction()\n {\n let classList = [\n 'n-confirm__action'\n ];\n\n if ( window.WIN ) {\n classList.push('n-reverse');\n }\n\n return (\n <div class={classList}>\n <NButton size={this.buttonSize} type={this.type} link={true} onClick={this.abort}>\n { this.abortText }\n </NButton>\n <NButton size={this.buttonSize} type={this.type} link={false} onClick={this.confirm}>\n { this.confirmText }\n </NButton>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-confirm',\n 'n-confirm--' + this.type,\n 'n-confirm--' + this.size\n ];\n\n let props = {\n type: 'default',\n selector: this.selector,\n listen: this.listen,\n update: this.update,\n width: this.width,\n position: this.position,\n closable: this.closable,\n modelValue: this.tempVisible,\n };\n\n // Override input listener\n props['onUpdate:modelValue'] = this.eventInput;\n\n let innerHtml = {\n raw: () => (\n <div class={classList}>\n { this.ctor('renderIcon')() }\n { this.ctor('renderBody')() }\n { this.ctor('renderAction')() }\n </div>\n )\n };\n\n return (\n <NModal ref=\"modal\" {...props}>\n { innerHtml }\n </NModal>\n );\n }\n\n}\n","import { Arr, Obj, Any, Str } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCascaderPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n clearValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n hover: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n valueProp: {\n default()\n {\n return 'value';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n disabledProp: {\n default()\n {\n return 'disabled';\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window || \n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempHover: this.hover,\n };\n },\n\n watch: {\n\n modelValue(value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n hover(value) {\n if ( value !== this.tempHover ) {\n this.tempHover = value;\n }\n }\n\n },\n\n methods: {\n\n clearCascader()\n {\n this.$emit('update:modelValue', this.tempHover = \n this.tempValue = this.clearValue);\n },\n\n onHover(cascade)\n {\n return (event) => this.hoverItem(cascade, event)\n },\n\n onSelect(cascade)\n {\n return (event) => this.selectItem(cascade, event)\n },\n\n hoverItem(cascade, event = null)\n {\n // Hover intend emulation\n clearTimeout(this.delay);\n\n let updateHover = () => {\n this.$emit('update:hover', \n this.tempHover = cascade);\n };\n\n this.delay = setTimeout(updateHover, 130);\n },\n\n selectItem(cascade, event = null)\n {\n clearTimeout(this.clickTimer);\n\n if ( ! this.lastclick ) {\n this.lastclick = 0;\n }\n\n this.lastclick++;\n\n let trigger = this.touch ? 'click' : \n this.trigger ;\n \n this.clickTimer = setTimeout(() => \n this.lastclick = 0, 240);\n\n this.hoverTimer = setTimeout(() => \n this.hoverItem(cascade), 240);\n\n if ( this.lastclick === 1 && trigger === 'click' ) {\n return this.hoverItem(cascade, event);\n }\n\n if ( event ) {\n event.preventDefault();\n }\n\n this.clickTimer = setTimeout(() => \n this.fireSelectItem(cascade), 50);\n },\n\n fireSelectItem(cascade)\n {\n clearTimeout(this.hoverTimer);\n\n this.lastclick = 0;\n\n this.$emit('update:modelValue', \n this.tempValue = cascade);\n }\n\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-cascader-panel',\n 'n-cascader-panel--' + this.size\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderLabel')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n )\n },\n\n renderOption(item, cascade = [])\n {\n let value = Obj.get(item, this.valueProp);\n\n let classList = [\n 'n-popover-option'\n ];\n\n if ( Arr.has(this.tempValue, item[this.valueProp]) ) {\n classList.push('n-active');\n }\n\n let disabled = Obj.get(item, this.disabledProp, false);\n\n if ( disabled ) {\n classList.push('n-disabled');\n }\n\n let props = {\n size: this.size,\n type: this.type,\n clickClose: false\n };\n\n if ( Arr.last(this.tempValue) === value ) {\n props.icon = nano.Icons.checked;\n }\n\n let tempCascade = Arr.merge(Arr.clone(cascade), [value]);\n\n if ( this.trigger === 'hover' ) {\n props.onMousemove = Any.framerate(this.onHover(tempCascade), 30);\n }\n\n if ( ! disabled ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onSelect(tempCascade);\n }\n\n let children = Obj.get(item, this.childProp);\n\n if ( ! props.icon && ! Any.isEmpty(children) ) {\n props.icon = nano.Icons.angleRight;\n }\n\n return (\n <NPopoverOption class={classList} {...props}>\n { Obj.get(item, this.labelProp) }\n </NPopoverOption>\n );\n },\n\n renderOptions(items, cascade = [])\n {\n if ( Any.isEmpty(items) ) {\n return null;\n }\n\n return (\n <div class=\"n-cascader-panel__items\">\n <NScrollbar relative={true}>\n {\n Arr.each(items, (item) => {\n return this.ctor('renderOption')(item, cascade);\n })\n }\n </NScrollbar>\n </div>\n )\n },\n\n renderCascade()\n {\n let renderList = [\n this.ctor('renderOptions')(this.options)\n ];\n\n let items = this.options, cascade = [];\n\n Arr.each(this.tempHover, (value) => {\n\n if ( ! items ) {\n return;\n }\n\n cascade.push(value);\n\n let item = Arr.find(items, {\n [this.valueProp]: value\n });\n\n items = Obj.get(item, this.childProp);\n\n let options = this.ctor('renderOptions')\n (items, cascade);\n\n renderList.push(options);\n });\n\n return renderList;\n },\n\n render()\n {\n let classList = [\n 'n-cascader-panel',\n 'n-cascader-panel--' + this.size\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>{ this.ctor('renderCascade')() }</div>\n );\n }\n\n}","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCascader',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n clearValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Please select';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n valueProp: {\n default()\n {\n return 'value';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n disabledProp: {\n default()\n {\n return 'disabled';\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempHover: this.modelValue,\n focus: false,\n };\n },\n\n methods: {\n\n clearCascader()\n {\n this.focus = true;\n\n this.$emit('update:modelValue', \n this.tempValue = this.tempHover = this.clearValue);\n },\n\n onCascaderInput(value)\n {\n this.focus = false;\n\n this.$emit('update:modelValue', \n this.tempValue = value);\n },\n\n onCascaderHover(value)\n {\n this.$emit('update:hover', \n this.tempHover = value);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n },\n\n watch: {\n\n modelValue(value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearCascader;\n }\n\n return (\n <div class=\"n-cascader__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-cascader__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderLabelItems()\n {\n let items = this.options, renderList = [];\n\n if ( Any.isEmpty(this.tempValue) ) {\n return (\n <div class=\"n-cascader__placeholder\">\n { this.trans(this.placeholder) }\n </div>\n );\n }\n\n Arr.each(this.tempValue, (value) => {\n\n if ( ! items ) {\n return;\n }\n\n let item = Arr.find(items, {\n [this.valueProp]: value\n });\n\n items = Obj.get(item, this.childProp);\n\n let itemLabel = (\n <div class=\"n-cascader__item\">\n <span>{ Obj.get(item, this.labelProp) }</span>\n </div>\n );\n\n renderList.push(itemLabel);\n });\n\n return (\n <div class=\"n-cascader__items\">\n { renderList }\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-cascader__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderLabelItems')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n let props = Obj.except(this.$props, ['modelValue'], {\n hover: this.tempHover,\n modelValue: this.tempValue,\n });\n\n props['onUpdate:hover'] = this.onCascaderHover;\n props['onUpdate:modelValue'] = this.onCascaderInput;\n\n return (\n <NCascaderPanel class=\"n-cascader__body\" {...props}></NCascaderPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled,\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderItems') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-cascader',\n 'n-cascader--' + this.type,\n 'n-cascader--' + this.size,\n ];\n\n if ( Any.isEmpty(this.tempValue) ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Arr, Str, Now, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatepickerPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n arrive: {\n default()\n {\n return null;\n }\n },\n\n clearArrive: {\n default()\n {\n return null;\n }\n },\n\n depart: {\n default()\n {\n return null;\n }\n },\n\n clearDepart: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su',\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', \n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',\n ]\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n yearsGrid()\n {\n return this.tempCache.getYears();\n },\n\n monthsGrid()\n {\n return this.tempCache.getMonths();\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n arrive(value)\n {\n if ( value !== this.tempArrive.format(this.format) ) {\n this.tempArrive = Now.make(value);\n }\n },\n\n depart(value)\n {\n if ( value !== this.tempDepart.format(this.format) ) {\n this.tempDepart = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n tempView: 'date',\n tempRanger: null,\n cacheArrive: null,\n cacheDepart: null,\n tempValue: Now.make(this.modelValue, this.format),\n tempCache: Now.make(this.modelValue, this.format),\n tempArrive: Now.make(this.arrive),\n tempDepart: Now.make(this.depart),\n }\n },\n\n methods: {\n\n gotoDate()\n {\n this.tempView = 'date';\n },\n\n gotoMonth()\n {\n this.tempView = 'month';\n },\n\n gotoYear()\n {\n this.tempView = 'year';\n },\n\n patchDate(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n if ( Any.isEmpty(this.modelValue) ) {\n now.resetTime();\n } else {\n now.applyTime(this.tempValue);\n }\n\n // Copy now to cache\n this.tempCache = now.clone();\n\n // Copy now to value\n this.tempValue = now.clone();\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n patchMonth(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n this.tempCache = now.clone();\n\n this.gotoDate();\n },\n\n printRange(now)\n {\n this.tempRanger = now.clone();\n },\n\n patchYear(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n this.tempCache = now.clone();\n\n this.gotoMonth();\n },\n\n patchRange(now)\n {\n if ( this.cacheArrive && ! this.cacheDepart ) {\n this.cacheDepart = now.clone();\n }\n\n if ( ! this.cacheArrive && ! this.cacheDepart ) {\n this.cacheArrive = now.clone();\n }\n\n if ( ! this.cacheArrive || ! this.cacheDepart ) {\n return;\n }\n\n this.tempArrive = this.cacheArrive.clone();\n this.tempDepart = this.cacheDepart.clone();\n\n this.$emit('update:arrive', \n this.tempArrive.format(this.format));\n\n this.$emit('update:depart', \n this.tempDepart.format(this.format));\n\n this.cacheArrive = null;\n this.cacheDepart = null;\n\n this.$emit('rangeSelected', [\n this.tempArrive.format(this.format),\n this.tempDepart.format(this.format)\n ]);\n },\n\n },\n\n renderToolbarPrev(closure)\n {\n let props = {\n type: this.type,\n link: true,\n icon: nano.Icons.angleLeft,\n onClick: closure\n };\n\n return (<NButton {...props}></NButton>);\n },\n\n renderToolbarNext(closure)\n {\n let props = {\n type: this.type,\n link: true,\n icon: nano.Icons.angleRight,\n onClick: closure\n };\n\n return (<NButton {...props}></NButton>);\n },\n\n renderToolbarMonth()\n {\n let props = {\n onClick: this.gotoMonth\n };\n\n let monthsHtml = [\n this.months[this.tempCache.month()]\n ];\n\n let month = this.tempCache.clone()\n .addMonths(this.monthPanels - 1);\n\n if ( month.month() !== this.tempCache.month() ) {\n monthsHtml.push(this.months[month.month()]);\n }\n\n return (\n <span class=\"n-datepicker-panel__month\" {...props}>\n { monthsHtml.join(' - ') }\n </span>\n );\n },\n\n renderToolbarYear()\n {\n let props = {\n onClick: this.gotoYear\n };\n\n let yearsHtml = [\n this.tempCache.year()\n ];\n\n let month = this.tempCache.clone()\n .addMonths(this.monthPanels - 1);\n\n if ( month.year() !== this.tempCache.year() ) {\n yearsHtml.push(month.year());\n }\n\n return (\n <span class=\"n-datepicker-panel__year\" {...props}>\n { yearsHtml.join(' - ') }\n </span>\n );\n },\n\n renderToolbar({ prev, next })\n {\n return (\n <div class=\"n-datepicker-panel__toolbar\">\n <div class=\"n-datepicker-panel__display\">\n { this.ctor('renderToolbarMonth')() }\n { this.ctor('renderToolbarYear')() }\n </div>\n <div class=\"n-datepicker-panel__prev\">\n { this.ctor('renderToolbarPrev')(prev) }\n </div>\n <div class=\"n-datepicker-panel__next\">\n { this.ctor('renderToolbarNext')(next) }\n </div>\n </div>\n );\n },\n\n renderDateItem(now, month)\n {\n let classList = [\n 'n-datepicker-panel__day'\n ];\n\n if ( now.equalDate() ) {\n classList.push('n-today');\n }\n\n let isSelected = this.tempValue.valid() && \n now.equalDate(this.tempValue);\n\n if ( isSelected ) {\n classList.push('n-selected');\n }\n\n if ( now.month() === month.month() ) {\n classList.push('n-current');\n }\n\n let isNotBeforeMin = ! this.minDate || \n now.after(this.minDate) || now.equalDate(this.minDate);\n\n let isNotAfterMax = ! this.maxDate || \n now.before(this.maxDate) || now.equalDate(this.maxDate);\n\n if ( ! isNotBeforeMin || ! isNotAfterMax ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( isNotBeforeMin && isNotAfterMax ) {\n props.onClick = () => this.patchDate(now);\n }\n\n return (\n <div class={classList} {...props}>\n <span>{ now.format('DD') }</span>\n </div>\n );\n },\n\n renderRangeDateItem(now, month)\n {\n let classList = [\n 'n-datepicker-panel__day'\n ];\n\n if ( now.equalDate('now') ) {\n classList.push('n-today');\n }\n\n if ( now.month() === month.month() ) {\n classList.push('n-current');\n }\n\n let viewMode = 0;\n\n if ( !! this.cacheArrive ) {\n viewMode++;\n }\n\n if ( !! this.cacheDepart ) {\n viewMode++;\n }\n\n let isTempValid = this.tempArrive.valid() && \n this.tempDepart.valid();\n\n if ( viewMode === 0 && isTempValid ) {\n\n if ( now.between(this.tempArrive, this.tempDepart) ) {\n classList.push('n-between');\n classList.push('n-selected');\n }\n\n let arriveFirst = this.tempArrive.before(this.tempDepart);\n\n if ( now.equalDate(this.tempArrive) ) {\n classList.push(arriveFirst ? 'n-arrive' : 'n-depart');\n classList.push('n-selected');\n }\n\n if ( now.equalDate(this.tempDepart) ) {\n classList.push(arriveFirst ? 'n-depart' : 'n-arrive');\n classList.push('n-selected');\n }\n\n }\n\n if ( viewMode === 1 && this.cacheArrive ) {\n\n if ( now.between(this.cacheArrive, this.tempRanger) ) {\n classList.push('n-between');\n }\n\n let arriveFirst = this.cacheArrive.before(this.tempRanger);\n\n if ( now.equalDate(this.cacheArrive) ) {\n classList.push(arriveFirst ? 'n-arrive' : 'n-depart');\n }\n\n if ( now.equalDate(this.tempRanger) ) {\n classList.push(arriveFirst ? 'n-depart' : 'n-arrive');\n }\n\n }\n\n let isNotBeforeMin = ! this.minDate || \n now.after(this.minDate) || now.equalDate(this.minDate);\n\n let isNotAfterMax = ! this.maxDate || \n now.before(this.maxDate) || now.equalDate(this.maxDate);\n\n if ( ! isNotBeforeMin || ! isNotAfterMax ) {\n classList.push('n-disabled');\n }\n\n let props = {\n onMouseenter: () => this.printRange(now)\n };\n\n if ( isNotBeforeMin && isNotAfterMax ) {\n props.onClick = () => this.patchRange(now);\n }\n\n return (\n <div class={classList} {...props}>\n <span>{ now.format('DD') }</span>\n </div>\n );\n },\n\n renderDate()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevMonth();\n };\n let next = () => {\n this.tempCache = this.tempCache.nextMonth();\n };\n\n let legendHtml = (\n Arr.each(this.weekdays, (day) => {\n return (\n <div class=\"n-datepicker-panel__day\">\n <span>{ this.trans(day) }</span>\n </div>\n );\n })\n );\n\n let renderItem = this.ctor('renderDateItem');\n\n if ( this.range ) {\n renderItem = this.ctor('renderRangeDateItem');\n }\n\n let bodyHtml = (month) => (\n Arr.each(Arr.chunk(month.getDatesGrid(), 7), (chunks) => {\n return (\n <div class=\"n-datepicker-panel__week\">\n { Arr.each(chunks, (chunk) => renderItem(chunk, month)) }\n </div>\n );\n })\n );\n\n let panelHtml = (\n Arr.each(Arr.make(this.monthPanels), (offset) => {\n\n let month = this.tempCache.clone()\n .addMonths(offset - 1);\n\n return (\n <div class=\"n-datepicker-panel__panel\">\n <div class=\"n-datepicker-panel__legend\">\n { legendHtml }\n </div>\n <div class=\"n-datepicker-panel__body\">\n { bodyHtml(month) }\n </div>\n </div>\n );\n })\n );\n\n return (\n <div class=\"n-datepicker-panel__dateview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__panels\">\n { panelHtml }\n </div>\n </div>\n );\n },\n\n renderMonthItem(now)\n {\n let classList = [\n 'n-datepicker-panel__month'\n ];\n\n if ( now.equal(this.tempCache, 'YYYYMM') ) {\n classList.push('n-selected');\n }\n\n if ( now.month() === Now.make('now').month() ) {\n classList.push('n-current');\n }\n\n let props = {\n onClick: () => this.patchMonth(now)\n };\n\n return (\n <div class={classList} {...props}>\n <span>{ this.trans(this.months[now.month()]) }</span>\n </div>\n )\n },\n\n renderMonth()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevYear();\n };\n\n let next = () => {\n this.tempCache = this.tempCache.nextYear();\n };\n\n return (\n <div class=\"n-datepicker-panel__monthview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__body\">\n <div class=\"n-datepicker-panel__year\">\n { Arr.each(this.monthsGrid, this.ctor('renderMonthItem')) }\n </div>\n </div>\n <div class=\"n-datepicker-panel__footer\">\n <NButton size={this.type} size={this.size} link={true} onClick={this.gotoDate}>\n { this.trans('Go back') }\n </NButton>\n </div>\n </div>\n );\n },\n\n renderYearItem(now)\n {\n let classList = [\n 'n-datepicker-panel__year'\n ];\n\n if ( now.equal(this.tempCache, 'YYYY') ) {\n classList.push('n-selected');\n }\n\n if ( now.year() === Now.make('now').year() ) {\n classList.push('n-current');\n }\n\n let props = {\n onClick: () => this.patchYear(now)\n };\n\n return (\n <div class={classList} {...props}>\n <span>{ now.year() }</span>\n </div>\n )\n },\n\n renderYear()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevDecade();\n };\n\n let next = () => {\n this.tempCache = this.tempCache.nextDecade();\n };\n\n return (\n <div class=\"n-datepicker-panel__yearview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__body\">\n <div class=\"n-datepicker-panel__decade\">\n { Arr.each(this.yearsGrid, this.ctor('renderYearItem')) }\n </div>\n </div>\n <div class=\"n-datepicker-panel__footer\">\n <NButton size={this.type} size={this.size} link={true} onClick={this.gotoDate}>\n { this.trans('Go back') }\n </NButton>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-datepicker-panel',\n 'n-datepicker-panel--' + this.size,\n 'n-datepicker-panel--' + this.type\n ]\n\n return (\n <div class={classList}>\n { this.ctor('render' + Str.ucfirst(this.tempView))() }\n </div>\n );\n }\n\n}","import { Obj, Now, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatepicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n arrive: {\n default()\n {\n return null;\n }\n },\n\n clearArrive: {\n default()\n {\n return null;\n }\n },\n\n depart: {\n default()\n {\n return null;\n }\n },\n\n clearDepart: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select date');\n },\n type: [String]\n },\n\n placeholderArrive: {\n default()\n {\n return Locale.trans('Start date');\n },\n type: [String]\n },\n\n placeholderDepart: {\n default()\n {\n return Locale.trans('End date');\n },\n type: [String]\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n rangeSeparator: {\n default()\n {\n return '-';\n },\n type: [String]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD');\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n Locale.trans('Mo'),\n Locale.trans('Tu'),\n Locale.trans('We'),\n Locale.trans('Th'),\n Locale.trans('Fr'),\n Locale.trans('Sa'),\n Locale.trans('Su'),\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n Locale.trans('Jan'),\n Locale.trans('Feb'),\n Locale.trans('Mar'),\n Locale.trans('Apr'),\n Locale.trans('May'),\n Locale.trans('Jun'),\n Locale.trans('Jul'),\n Locale.trans('Aug'),\n Locale.trans('Sep'),\n Locale.trans('Oct'),\n Locale.trans('Nov'),\n Locale.trans('Dec'),\n ];\n },\n type: [Array]\n }\n\n },\n\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n arrive(value)\n {\n if ( value !== this.tempArrive.format(this.format) ) {\n this.tempArrive = Now.make(value);\n }\n },\n\n depart(value)\n {\n if ( value !== this.tempDepart.format(this.format) ) {\n this.tempDepart = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false,\n tempValue: Now.make(this.modelValue, this.format),\n tempArrive: Now.make(this.arrive, this.format),\n tempDepart: Now.make(this.depart, this.format),\n };\n },\n\n methods: {\n\n clearDatepicker()\n {\n this.range ? this.clearRangeDatepicker() :\n this.clearSingleDatepicker();\n },\n\n clearSingleDatepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n\n clearRangeDatepicker()\n {\n this.tempArrive = Now.make(this.clearArrive, \n this.format);\n\n this.$emit('update:arrive', this.clearValue);\n\n this.tempDepart = Now.make(this.clearDepart, \n this.format);\n\n this.$emit('update:depart', this.clearDepart);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onArriveInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempArrive = Now.make(moment);\n\n this.$emit('update:arrive', \n this.tempArrive.format(this.format));\n },\n\n onDepartInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempDepart = Now.make(moment);\n\n this.$emit('update:depart', \n this.tempDepart.format(this.format));\n },\n\n onDatepickerInput(value)\n {\n this.focus = false;\n\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n onDatepickerDepart(value)\n {\n this.focus = false;\n\n this.tempDepart = Now.make(value, \n this.format);\n\n this.$emit('update:depart', value);\n },\n\n onDatepickerArrive(value)\n {\n this.focus = false;\n\n this.tempArrive = Now.make(value, \n this.format);\n\n this.$emit('update:arrive', value);\n },\n\n },\n\n\n renderLabelClear()\n {\n let isEmpty = ! this.tempArrive.initialDate &&\n ! this.tempDepart.initialDate;\n\n if ( ! this.range ) {\n isEmpty = ! this.tempValue.initialDate;\n }\n\n if ( ! this.clearable || isEmpty ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearDatepicker;\n }\n\n return (\n <div class=\"n-datepicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-datepicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderRange()\n {\n let arriveProps = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholderArrive,\n onInput: this.onArriveInput,\n };\n\n if ( this.tempArrive.valid() ) {\n arriveProps.value = this.tempArrive.format(\n this.displayFormat, true);\n }\n\n let departProps = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholderDepart,\n onInput: this.onDepartInput,\n };\n\n if ( this.tempDepart.valid() ) {\n departProps.value = this.tempDepart.format(\n this.displayFormat, true);\n }\n\n return [\n (\n <div class=\"n-datepicker__input\">\n <input {...arriveProps}/>\n </div>\n ),\n (\n <div class=\"n-datepicker__seperator\">\n <span>{ this.rangeSeparator }</span>\n </div>\n ),\n (\n <div class=\"n-datepicker__input\">\n <input {...departProps}/>\n </div>\n )\n ];\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-datepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-datepicker__display'\n ];\n\n if ( this.range ) {\n classList.push('n-range');\n }\n\n let displayHtml = this.ctor('renderSingle');\n\n if ( this.range ) {\n displayHtml = this.ctor('renderRange');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { displayHtml() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n \n let props = Obj.except(this.$props, ['modelValue'], {\n arrive: this.tempArrive.format(this.format) || null,\n depart: this.tempDepart.format(this.format) || null,\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:arrive'] = this.onDatepickerArrive;\n props['onUpdate:depart'] = this.onDatepickerDepart;\n props['onUpdate:modelValue'] = this.onDatepickerInput;\n\n return (\n <NDatepickerPanel class=\"n-datepicker__body\" {...props}></NDatepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderItems') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-datepicker',\n 'n-datepicker--' + this.type,\n 'n-datepicker--' + this.size,\n ];\n\n let isEmpty = ! this.tempArrive.initialDate &&\n ! this.tempDepart.initialDate;\n\n if ( ! this.range ) {\n isEmpty = ! this.tempValue.initialDate;\n }\n\n if ( isEmpty ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Arr, Obj, Now, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTimepickerPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Select time';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return 'HH:mm:ss';\n },\n type: [String]\n },\n\n hoursInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n minutesInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n secondsInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n hoursGrid()\n {\n return this.tempValue.getHours(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutes(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSeconds(this.secondsInterval);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n }\n\n },\n\n data()\n {\n let modelValue = Now.make(this.modelValue);\n\n if ( Any.isEmpty(this.modelValue) ) {\n modelValue = modelValue.resetTime();\n }\n\n return {\n tempValue: modelValue,\n }\n },\n\n mounted()\n {\n this.scrollTo();\n },\n\n methods: {\n\n eventSelect(now)\n {\n this.$emit('update:modelValue',\n (this.tempValue = now.clone()).format(this.format));\n },\n\n scrollTo()\n {\n let scrollbars = Obj.only(this.$refs, [\n 'hour', 'minute', 'second'\n ]);\n\n Arr.each(scrollbars, (ref, key) => {\n ref.scrollIntoView(`[data-index=\"${this.tempValue[key]()}\"]`);\n });\n }\n\n },\n\n renderToolbar()\n {\n return (\n <div class=\"n-timepicker-panel__toolbar\">\n <div class=\"n-timepicker-panel__display\">\n <span class=\"n-timepicker-panel__time\">\n {this.tempValue.format(this.displayFormat) || this.placeholder}\n </span>\n </div>\n </div>\n )\n },\n\n renderHourItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.hour() === this.tempValue.hour() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.hour()}>\n <span>{now.format('HH')}</span>\n </div>\n );\n },\n\n renderHourPanel()\n {\n if ( !this.displayFormat.match('HH') ) {\n return null;\n }\n\n return (\n <NScrollbar ref=\"hour\" class=\"n-timepicker-panel__panel\" wrapClass=\"n-timepicker-panel__wrap\">\n {Arr.each(this.hoursGrid, this.ctor('renderHourItem'))}\n </NScrollbar>\n );\n },\n\n renderMinuteItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.minute() === this.tempValue.minute() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.minute()}>\n <span>{now.format('mm')}</span>\n </div>\n );\n },\n\n renderMinutePanel()\n {\n if ( !this.displayFormat.match('mm') ) {\n return null;\n }\n\n return (\n <NScrollbar ref=\"minute\" class=\"n-timepicker-panel__panel\" wrapClass=\"n-timepicker-panel__wrap\">\n {Arr.each(this.minutesGrid, this.ctor('renderMinuteItem'))}\n </NScrollbar>\n );\n },\n\n renderSecondItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.second() === this.tempValue.second() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.second()}>\n <span>{now.format('ss')}</span>\n </div>\n );\n },\n\n renderSecondPanel()\n {\n if ( !this.displayFormat.match('ss') ) {\n return null;\n }\n\n return (\n <NScrollbar ref=\"second\" class=\"n-timepicker-panel__panel\" wrapClass=\"n-timepicker-panel__wrap\">\n {Arr.each(this.secondsGrid, this.ctor('renderSecondItem'))}\n </NScrollbar>\n );\n },\n\n render()\n {\n let classList = [\n 'n-timepicker-panel',\n 'n-timepicker-panel--' + this.size,\n 'n-timepicker-panel--' + this.type,\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-timepicker-panel__header\">\n {this.ctor('renderToolbar')()}\n </div>\n <div class=\"n-timepicker-panel__body\">\n {this.ctor('renderHourPanel')()}\n {this.ctor('renderMinutePanel')()}\n {this.ctor('renderSecondPanel')()}\n </div>\n </div>\n );\n }\n\n}","import { Arr, Obj, Now, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTimepicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Select time';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('HH:mm:ss');\n },\n type: [String]\n },\n\n hoursInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n minutesInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n secondsInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n hoursGrid()\n {\n return this.tempValue.getHours(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutes(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSeconds(this.secondsInterval);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n }\n\n },\n\n data()\n {\n return {\n focus: false,\n tempValue: Now.make(this.modelValue),\n }\n },\n\n methods: {\n\n clearTimepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n hour: value.moment.hour(), \n minute: value.moment.minute(), \n second: value.moment.second(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onTimepickerInput(value)\n {\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || ! this.tempValue.valid() ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearTimepicker;\n }\n\n return (\n <div class=\"n-timepicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-timepicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.disabled,\n placeholder: this.trans(this.placeholder),\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-timepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-timepicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderSingle')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderPanel()\n {\n \n let props = Obj.except(this.$props, ['modelValue'], {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onTimepickerInput;\n\n return (\n <NTimepickerPanel class=\"n-timepicker__body\" {...props}></NTimepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderPanel') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-timepicker',\n 'n-timepicker--' + this.type,\n 'n-timepicker--' + this.size,\n ];\n\n if ( ! this.tempValue.valid() ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Obj, Now, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatetimepicker',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select datetime');\n },\n type: [String]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm:ss');\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n Locale.trans('Mo'),\n Locale.trans('Tu'),\n Locale.trans('We'),\n Locale.trans('Th'),\n Locale.trans('Fr'),\n Locale.trans('Sa'),\n Locale.trans('Su'),\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n Locale.trans('Jan'),\n Locale.trans('Feb'),\n Locale.trans('Mar'),\n Locale.trans('Apr'),\n Locale.trans('May'),\n Locale.trans('Jun'),\n Locale.trans('Jul'),\n Locale.trans('Aug'),\n Locale.trans('Sep'),\n Locale.trans('Oct'),\n Locale.trans('Nov'),\n Locale.trans('Dec'),\n ];\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: Now.make(this.modelValue, this.format),\n };\n },\n\n methods: {\n\n clearDatetimepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n hour: value.moment.hour(),\n minute: value.moment.minute(),\n second: value.moment.second(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onDatepickerInput(value)\n {\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n onTimepickerInput(value)\n {\n this.tempValue = Now.make(value,\n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n },\n\n\n renderLabelClear()\n {\n let isEmpty = ! this.tempValue.initialDate;\n\n if ( ! this.clearable || isEmpty ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.clearDatetimepicker;\n }\n\n return (\n <div class=\"n-datetimepicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-datetimepicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-datetimepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-datetimepicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderSingle')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderPanels()\n {\n return (\n <div class=\"n-datetimepicker__body\">\n {[this.ctor('renderDatePanel')(), this.ctor('renderTimePanel')()]}\n </div>\n );\n },\n\n renderDatePanel()\n {\n let props = Obj.only(this.$props, [\n 'minDate', 'maxDate', 'size', 'type', 'format', 'monthPanels', 'disabled', 'weekdays', 'months'\n ]);\n\n props = Obj.assign(props, {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onDatepickerInput;\n\n return (\n <NDatepickerPanel class=\"n-datetimepicker__date-panel\" {...props}></NDatepickerPanel>\n );\n },\n\n renderTimePanel()\n {\n let props = Obj.only(this.$props, [\n 'size', 'type', 'format', 'disabled', 'hoursInterval', 'minutesInterval', 'secondsInterval'\n ]);\n\n props = Obj.assign(props, {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onTimepickerInput;\n\n return (\n <NTimepickerPanel class=\"n-datetimepicker__time-panel\" {...props}></NTimepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.deepDisabled\n };\n\n let slots = {\n raw: this.ctor('renderPanels')\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props} v-slots={slots} />\n );\n },\n\n render()\n {\n let classList = [\n 'n-datetimepicker',\n 'n-datetimepicker--' + this.type,\n 'n-datetimepicker--' + this.size,\n ];\n\n let isEmpty = ! this.tempValue.initialDate;\n\n if ( isEmpty ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Any, Obj, Arr, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDurationpicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n options: {\n default()\n {\n return [\n 60 * 5,\n 60 * 10,\n 60 * 15,\n 60 * 30,\n 60 * 45,\n 60 * 60,\n 60 * 90,\n 60 * 120,\n 60 * 150,\n 60 * 60 * 3,\n 60 * 60 * 4,\n 60 * 60 * 5,\n 60 * 60 * 6,\n 60 * 60 * 12,\n 60 * 60 * 24,\n 60 * 60 * 24 * 2,\n 60 * 60 * 24 * 3,\n 60 * 60 * 24 * 4,\n 60 * 60 * 24 * 5,\n 60 * 60 * 24 * 6,\n 60 * 60 * 24 * 7,\n ];\n },\n type: [Array]\n },\n\n minDuration: {\n default()\n {\n return null;\n }\n },\n\n maxDuration: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select duration');\n },\n type: [String]\n },\n\n negativeText: {\n default()\n {\n return Locale.trans('Negative duration');\n },\n type: [String]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n days: {\n default()\n {\n return Locale.trans(':count Day|:count Days');\n },\n type: [String]\n },\n\n hours: {\n default()\n {\n return Locale.trans(':count Hour|:count Hours');\n },\n type: [String]\n },\n\n minutes: {\n default()\n {\n return Locale.trans(':count Minute|:count Minutes');\n },\n type: [String]\n },\n\n seconds: {\n default()\n {\n return Locale.trans(':count Second|:count Seconds');\n },\n type: [String]\n }\n\n },\n\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.modelValue, editValue: null\n };\n },\n\n methods: {\n\n findPattern(text, pattern)\n {\n pattern = pattern.replaceAll(':count', '([0-9\\.\\,]+)')\n .replaceAll(' ', '\\\\s*');\n\n return text.match(new RegExp(pattern, 'i'));\n },\n\n humanizeValue(value)\n {\n if ( Any.isEmpty(value) ) {\n return '';\n }\n\n if ( value < 0 ) {\n return this.negativeText;\n }\n\n let seconds = value;\n\n // Extract minutes\n let minutes = Math.floor(seconds/60);\n seconds -= minutes * 60;\n\n // Extract hours\n let hours = Math.floor(minutes/60);\n minutes -= hours * 60;\n\n\n // Extract days\n let days = Math.floor(hours/24);\n hours -= days * 24;\n\n let text = [];\n\n if ( days ) {\n text.push(Locale.choice(this.days, days));\n }\n\n if ( hours ) {\n text.push(Locale.choice(this.hours, hours));\n }\n\n if ( minutes ) {\n text.push(Locale.choice(this.minutes, minutes));\n }\n\n if ( seconds ) {\n text.push(Locale.choice(this.seconds, seconds));\n }\n\n return text.join(' ');\n },\n\n digitizeValue(text)\n {\n if ( Any.isEmpty(text) ) {\n return this.clearValue;\n }\n\n let value = 0;\n\n let dmatch = this.findPattern(text, this.days);\n\n if ( dmatch && dmatch.length === 3 ) {\n value += Any.float(dmatch[1].replace(',', '.')) * 24 * 60 * 60;\n }\n\n let hmatch = this.findPattern(text, this.hours);\n\n if ( hmatch && hmatch.length === 3 ) {\n value += Any.float(hmatch[1].replace(',', '.')) * 60 * 60;\n }\n\n let mmatch = this.findPattern(text, this.minutes);\n\n if ( mmatch && mmatch.length === 3 ) {\n value += Any.float(mmatch[1].replace(',', '.')) * 60;\n }\n\n let smatch = this.findPattern(text, this.seconds);\n\n if ( smatch && smatch.length === 3 ) {\n value += Any.float(smatch[1].replace(',', '.'));\n }\n\n return value;\n },\n\n clearDurationpicker()\n {\n this.$emit('update:modelValue', this.tempValue = this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(e)\n {\n let value = this.digitizeValue(e.target.value);\n\n if ( value === this.tempValue ) {\n return;\n }\n\n this.editValue = value;\n },\n\n onValueChange(e)\n {\n let value = this.editValue;\n\n // Clear edit value\n this.editValue = null;\n\n if ( ! value || value === this.tempValue ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = value);\n },\n\n onDurationpickerInput(value)\n {\n this.focus = false;\n\n // Clear edit value\n this.editValue = null;\n\n this.$emit('update:modelValue', this.tempValue = value);\n },\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || ! this.tempValue ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearDurationpicker;\n }\n\n return (\n <div class=\"n-durationpicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-durationpicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderInput()\n {\n let props = {\n value: this.humanizeValue(this.tempValue),\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n onBlur: this.onValueChange,\n onChange: this.onValueChange,\n };\n\n return (\n <div class=\"n-durationpicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-durationpicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderInput')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n return Arr.each(this.options, (value) => {\n\n let text = this.humanizeValue(value);\n\n let optionProps = {\n //\n };\n\n optionProps['onClick'] = () => {\n this.onDurationpickerInput(value);\n }\n\n return (<NPopoverOption {...optionProps}>{text}</NPopoverOption>)\n });\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: -1,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n let slots = {};\n\n slots.raw = () => {\n\n let scrollProps = {\n relative: true, size: this.size\n }\n\n return (\n <NScrollbar ref=\"scrollbar\" class=\"n-durationpicker__body\" {...scrollProps}>\n {this.ctor('renderItems')()}\n </NScrollbar>\n )\n }\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props} v-slots={slots} />\n );\n },\n\n render()\n {\n let classList = [\n 'n-durationpicker',\n 'n-durationpicker--' + this.type,\n 'n-durationpicker--' + this.size,\n ];\n\n if ( ! this.tempValue ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Str, Arr, Obj, Any, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTransfer',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n sourceLabel: {\n default()\n {\n return 'Source';\n },\n type: [String]\n },\n\n targetLabel: {\n default()\n {\n return 'Target';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n sourceChecked()\n {\n return !! this.selectedSource.length && \n this.selectedSource.length === this.tempSource.length;\n },\n\n sourceIntermediate()\n {\n return !! this.selectedSource.length && \n this.selectedSource.length !== this.tempSource.length;\n },\n\n targetChecked()\n {\n return !! this.selectedTarget.length && \n this.selectedTarget.length === this.tempTarget.length;\n },\n\n targetIntermediate()\n {\n return !! this.selectedTarget.length && \n this.selectedTarget.length !== this.tempTarget.length;\n },\n\n tempSource()\n {\n let source = Arr.filter(this.options, (item) => {\n return ! Arr.find(this.tempValue, { [this.uniqueProp]: item[this.uniqueProp] });\n });\n\n if ( Any.isEmpty(this.sourceSearch) ) {\n return Arr.clone(source);\n }\n\n let searchPattern = new RegExp(this.sourceSearch, 'i');\n\n source = Arr.filter(source, (item) => {\n return item[this.labelProp].match(searchPattern);\n });\n\n return Arr.clone(source);\n },\n\n tempTarget()\n {\n let target = Arr.filter(this.options, (item) => {\n return !! Arr.find(this.tempValue, { [this.uniqueProp]: item[this.uniqueProp] });\n });\n\n if ( Any.isEmpty(this.targetSearch) ) {\n return Arr.clone(target);\n }\n\n let searchPattern = new RegExp(this.targetSearch, 'i');\n\n target = Arr.filter(target, (item) => {\n return item[this.labelProp].match(searchPattern);\n });\n\n return Arr.clone(target);\n }\n\n },\n data()\n {\n return {\n uid: UUID(),\n tempValue: this.modelValue,\n sourceSearch: '',\n targetSearch: '',\n selectedSource: [],\n selectedTarget: []\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n moveItemsTarget(options)\n {\n Arr.each(options, (source) => {\n\n let item = Arr.find(this.options, {\n [this.uniqueProp]: source\n });\n\n Arr.add(this.tempValue, item, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.$emit('input', this.tempValue);\n },\n\n moveItemsSource(options)\n {\n Arr.each(options, (source) => {\n\n Arr.remove(this.tempValue, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.$emit('input', this.tempValue);\n },\n\n moveRowTarget(node)\n {\n // Get node unique\n let target = node.value[this.uniqueProp];\n\n // Remove item from selected list\n Arr.remove(this.selectedTarget, target);\n\n this.tempValue = Arr.remove(this.tempValue, {\n [this.uniqueProp]: target\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveRowSource(node)\n {\n // Get node unique\n let source = node.value[this.uniqueProp];\n\n // Remove item from selected list\n Arr.remove(this.selectedSource, source);\n\n Arr.add(this.tempValue, node.item, source, {\n [this.uniqueProp]: source\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveToSource()\n {\n Arr.each(this.selectedTarget, (target) => {\n\n Arr.remove(this.tempValue, {\n [this.uniqueProp]: target\n });\n\n });\n\n this.selectedTarget = [];\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveToTarget()\n {\n Arr.each(this.selectedSource, (source) => {\n\n let item = Arr.find(this.options, {\n [this.uniqueProp]: source\n });\n\n Arr.add(this.tempValue, item, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.selectedSource = [];\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n updateSelectedSource(selected)\n {\n this.selectedSource = selected;\n },\n\n updateSelectedTarget(selected)\n {\n this.selectedTarget = selected;\n }\n\n },\n\n renderSourceSelect()\n {\n let props = {\n modelValue: this.sourceChecked,\n size: this.size,\n type: this.type,\n intermediate: this.sourceIntermediate,\n disabled: ! this.tempSource.length\n };\n\n props['onUpdate:modelValue'] = () => {\n this.$refs.source.selectAll();\n };\n\n return (\n <div class=\"n-transfer__select\">\n <NCheckbox {...props} />\n </div>\n );\n },\n\n renderSourceTitle()\n {\n let labelHtml = (\n <span class=\"n-transfer__item-title\">\n { this.sourceLabel }\n </span>\n );\n\n let counterHtml = (\n <span class=\"n-transfer__item-count\">\n { this.tempSource.length }\n </span>\n );\n\n return (\n <div class=\"n-transfer__title\">\n { [labelHtml, counterHtml] }\n </div>\n );\n },\n\n renderSourceHeader()\n {\n return (\n <div class=\"n-transfer__header\">\n { this.ctor('renderSourceSelect')() }\n { this.ctor('renderSourceTitle')() }\n </div>\n );\n },\n\n renderSourceSearch()\n {\n let props = {\n placeholder: this.trans('Search item'),\n size: this.size,\n type: this.type,\n icon: nano.Icons.times,\n iconDisabled: ! this.sourceSearch\n };\n\n props['onIconClick'] = () => {\n this.sourceSearch = '';\n };\n\n props['onUpdate:modelValue'] = () => {\n this.selectedSource = [];\n };\n\n return (\n <div class=\"n-transfer__search\">\n <NInput vModel={this.sourceSearch} {...props} />\n </div>\n )\n },\n\n renderSourceBody()\n {\n let props = {\n group: [this.uid + 'source'],\n allowGroups: [this.uid + 'target'],\n items: this.tempSource,\n size: this.size,\n type: this.type,\n renderSelect: true,\n selected: this.selectedSource,\n safezone: () => -10,\n disableMove: true,\n renderNode: this.ctor('renderNode'),\n onMove: this.moveItemsSource,\n 'onRowDblclick': this.moveRowSource,\n 'onUpdate:selected': this.updateSelectedSource\n };\n\n return (\n <NDraglist ref=\"source\" class=\"n-transfer__body\" {...props} />\n );\n },\n\n renderTargetSelect()\n {\n let props = {\n modelValue: this.targetChecked,\n size: this.size,\n type: this.type,\n intermediate: this.targetIntermediate,\n disabled: ! this.tempTarget.length\n };\n\n props['onUpdate:modelValue'] = () => {\n this.$refs.target.selectAll();\n };\n\n return (\n <div class=\"n-transfer__select\">\n <NCheckbox {...props} />\n </div>\n );\n },\n\n renderTargetTitle()\n {\n let labelHtml = (\n <span class=\"n-transfer__item-title\">\n { this.targetLabel }\n </span>\n );\n\n let counterHtml = (\n <span class=\"n-transfer__item-count\">\n { this.tempTarget.length }\n </span>\n );\n\n return (\n <div class=\"n-transfer__title\">\n { [labelHtml, counterHtml] }\n </div>\n );\n },\n\n renderTargetHeader()\n {\n return (\n <div class=\"n-transfer__header\">\n { this.ctor('renderTargetSelect')() }\n { this.ctor('renderTargetTitle')() }\n </div>\n );\n },\n\n renderTargetSearch()\n {\n let props = {\n placeholder: this.trans('Search item'),\n size: this.size,\n type: this.type,\n icon: nano.Icons.times,\n iconDisabled: ! this.targetSearch\n };\n\n props['onIconClick'] = () => {\n this.targetSearch = '';\n };\n\n props['onUpdate:modelValue'] = () => {\n this.selectedTarget = [];\n };\n\n return (\n <div class=\"n-transfer__search\">\n <NInput vModel={this.targetSearch} {...props} />\n </div>\n )\n },\n\n renderTargetBody()\n {\n let props = {\n group: [this.uid + 'target'],\n allowGroups: [this.uid + 'source'],\n items: this.tempTarget,\n size: this.size,\n type: this.type,\n renderSelect: true,\n selected: this.selectedTarget,\n safezone: () => -1,\n disableMove: true,\n renderNode: this.ctor('renderNode'),\n onMove: this.moveItemsTarget,\n 'onRowDblclick': this.moveRowTarget,\n 'onUpdate:selected': this.updateSelectedTarget\n };\n\n return (\n <NDraglist ref=\"target\" class=\"n-transfer__body\" {...props} />\n );\n },\n\n renderNode(props)\n {\n if ( this.$slots.default ) {\n return this.$slots.default(props);\n }\n\n return (\n <div class=\"n-transfer__item\">\n { Obj.get(props.item, this.labelProp) }\n </div>\n );\n },\n\n renderMoveSource()\n {\n let props = {\n disabled: ! this.selectedSource.length,\n size: this.size,\n type: this.type,\n square: true, \n icon: nano.Icons.angleRight,\n onClick: this.moveToTarget\n };\n\n return (\n <NButton {...props} />\n );\n },\n\n renderMoveTarget()\n {\n let props = {\n disabled: ! this.selectedTarget.length,\n size: this.size,\n type: this.type,\n square: true, \n icon: nano.Icons.angleLeft,\n onClick: this.moveToSource\n };\n return (\n <NButton {...props} />\n );\n },\n\n render($render)\n {\n let classList = [\n 'n-transfer',\n 'n-transfer--' + this.size,\n 'n-transfer--' + this.type,\n ]\n\n return (\n <div class={classList}>\n <div class=\"n-transfer__panel\">\n { this.ctor('renderSourceHeader')() }\n { this.ctor('renderSourceSearch')() }\n { this.ctor('renderSourceBody')() }\n </div>\n <div class=\"n-transfer__controls\">\n { this.ctor('renderMoveSource')() }\n { this.ctor('renderMoveTarget')() }\n </div>\n <div class=\"n-transfer__panel\">\n { this.ctor('renderTargetHeader')() }\n { this.ctor('renderTargetSearch')() }\n { this.ctor('renderTargetBody')() }\n </div>\n </div>\n );\n }\n\n}","import { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NForm',\n\n inheritAttrs: false,\n\n model: {\n prop: 'form'\n },\n\n props: {\n\n dom: {\n default()\n {\n return 'div';\n },\n type: [String]\n },\n\n form: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n errors: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'vertical';\n },\n type: [String]\n },\n\n prevent: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n ignore: {\n default()\n {\n return ['modified', 'dragid'];\n },\n type: [Array]\n },\n\n forceChange: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n forceErrors: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n classList()\n {\n if ( ! this.$attrs.class ) {\n return [];\n }\n\n return Any.isArray(this.$attrs) ? this.$attrs.class :\n [this.$attrs.class];\n }\n\n },\n\n data()\n {\n return {\n uid: UUID(), elements: [], groups: {}, blocked: true,\n };\n },\n\n provide()\n {\n return {\n NForm: this\n };\n },\n\n mounted()\n {\n Any.delay(this.ctor('ready'), 500);\n },\n\n ready()\n {\n this.$watch('form', this.emitChange,\n { deep: true });\n\n this.resetChange();\n },\n\n methods: {\n\n registerGroup(group)\n {\n this.groups[group.key] = group;\n },\n\n unregisterGroup(group)\n {\n delete this.groups[group.key];\n },\n\n onSubmit(event)\n {\n if ( this.prevent ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if ( Dom.find(event.target).is('input') ) {\n this.$emit('submit', event);\n }\n\n return this.prevent;\n },\n\n addItem(item)\n {\n Arr.add(this.elements, item, {\n uid: item.uid\n });\n },\n\n removeItem(item)\n {\n Arr.remove(this.elements,{\n uid: item.uid\n });\n },\n\n resetChange(timeout = 500)\n {\n clearTimeout(this.timeout);\n\n this.timeout = setTimeout(() => {\n this.blocked = false;\n }, timeout);\n\n this.blocked = true;\n\n let value = Obj.except(this.form,\n this.ignore);\n\n this.prevState = JSON.stringify(value);\n },\n\n emitChange()\n {\n if ( this.blocked ) {\n return;\n }\n\n let value = Obj.except(this.form,\n this.ignore);\n\n let nextState = JSON.stringify(value);\n\n if ( this.prevState == nextState ) {\n return;\n }\n\n this.prevState = nextState;\n\n this.$emit('change');\n },\n\n },\n\n render()\n {\n let classList = [\n 'n-form',\n 'n-form--' + this.align,\n ];\n\n let attrs = Obj.except(this.$attrs, ['class', 'onChange', 'onSubmit'], {\n class: this.cmer(classList)\n });\n\n attrs['onSubmit'] = (e) => {\n return false;\n }\n\n return h(this.dom, { ...attrs }, [\n this.$slots.default && this.$slots.default()\n ]);\n }\n\n}\n","import { UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormGroup',\n\n inject: {\n\n NForm: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n key: {\n default()\n {\n return UUID();\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n }\n },\n\n size: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n kind: {\n default()\n {\n return 'classic';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'vertical';\n },\n type: [String]\n },\n\n collapse: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltipPosition: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n }\n\n },\n\n mounted()\n {\n if ( this.NForm ) {\n this.NForm.registerGroup(this);\n }\n },\n\n unmounted()\n {\n if ( this.NForm ) {\n this.NForm.unregisterGroup(this);\n }\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n collapseGroup()\n {\n this.$emit('update:modelValue', this.tempValue = ! this.tempValue);\n }\n\n },\n\n renderCollapse()\n {\n if ( ! this.collapse ) {\n return null;\n }\n\n return (\n <div class=\"n-form-group__collapse\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-form-group__icon\">\n <i class={['n-icon', this.icon]}></i>\n </div>\n );\n },\n\n renderText()\n {\n let textHtml = (\n <div class=\"n-form-group__text\">\n <span>{ this.label }</span>\n </div>\n );\n\n return (\n <div class=\"n-form-group__label\">\n { [this.ctor('renderIcon')(), textHtml] } \n </div>\n );\n },\n\n renderAction()\n {\n if ( ! this.$slots.action ) {\n return null;\n }\n\n return (\n <div class=\"n-form-group__action\">\n { this.$slots.action() }\n </div>\n );\n },\n\n renderLabel()\n {\n return (\n <div class=\"n-form-group__legend\" onClick={this.collapseGroup}>\n { this.ctor('renderCollapse')() }\n { this.ctor('renderText')() }\n { this.ctor('renderAction')() }\n </div>\n );\n },\n\n renderTooltip()\n {\n if ( ! this.tooltip ) {\n return null;\n }\n\n return (\n <NPopover type=\"tooltip\" size=\"sm\" position={this.tooltipPosition}>\n {this.tooltip}\n </NPopover>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-form-group__body\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n },\n\n render()\n {\n let size = this.size ;\n\n if ( this.NForm ) {\n size = size || this.NForm.size;\n }\n\n let classList = [\n 'n-form-group', \n 'n-form-group--' + size,\n 'n-form-group--' + this.type,\n 'n-form-group--' + this.align, \n ];\n\n if ( this.collapse ) {\n classList.push('n-form-group--collapse');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n if ( this.$slots.action ) {\n classList.push('n-action');\n }\n\n return (\n <fieldset id={this.key} class={classList} data-group-key={this.key}>\n { this.ctor('renderLabel')() }\n { this.ctor('renderTooltip')() }\n { this.ctor('renderBody')() }\n </fieldset>\n );\n }\n}\n","import { Arr, Obj, Any, Dom, UUID, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormItem',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NTabs: {\n default: undefined\n },\n\n NTabsItem: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return { NFormItem: this };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n prop: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltipPosition: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n tooltipWindow: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n conditional: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n conditionOn: {\n default()\n {\n return Locale.trans('Enable field');\n },\n type: [String]\n },\n\n conditionOff: {\n default()\n {\n return Locale.trans('Disable field');\n },\n type: [String]\n }\n\n },\n\n methods: {\n\n enabled(component = false)\n {\n return (! this.conditional || this.modelValue) && ! component;\n },\n\n disabled(component)\n {\n return (this.conditional && ! this.modelValue) || component;\n },\n\n toggleCondition()\n {\n this.$emit('update:modelValue', !this.modelValue);\n },\n\n focusInput()\n {\n let $input = Dom.find(this.$el).find('input');\n\n if ( !$input.empty() ) {\n return $input.get(0).focus();\n }\n\n $input = Dom.find(this.$refs.input).childs();\n\n if ( !$input.empty() ) {\n return $input.get(0).click();\n }\n\n console.log('I dont belong here :o');\n },\n\n gotoInput()\n {\n let errors = this.NForm.errors;\n\n if ( Any.isEmpty(errors) ) {\n return;\n }\n\n if ( !this.NTabs || !this.NTabsItem ) {\n return;\n }\n\n let keys = Any.keys(errors);\n\n if ( Arr.first(keys) !== this.prop ) {\n return;\n }\n\n this.NTabs.changeTab(this.NTabsItem.name);\n }\n\n },\n\n data()\n {\n return {\n uid: UUID()\n };\n },\n\n beforeMount()\n {\n if ( this.NForm ) {\n this.NForm.addItem(this);\n }\n },\n\n mounted()\n {\n if ( this.NForm ) {\n this.NForm.$watch('errors', this.gotoInput, { deep: true });\n }\n },\n\n beforeUnmount()\n {\n if ( this.NForm ) {\n this.NForm.removeItem(this);\n }\n },\n\n renderTooltip()\n {\n if ( !this.tooltip && !this.$slots.tooltip ) {\n return null;\n }\n\n let props = {\n size: 'sm',\n position: this.tooltipPosition,\n };\n\n return (\n <NPopover type=\"tooltip\" {...props}>\n {this.$slots.tooltip && this.$slots.tooltip() || this.tooltip}\n </NPopover>\n );\n },\n\n renderCondition()\n {\n if ( ! this.conditional ) {\n return null;\n }\n\n return (\n <div class=\"n-form-item__condition\" onClick={this.toggleCondition}>\n <span>{ this.modelValue ? this.conditionOff : this.conditionOn }</span>\n </div>\n );\n },\n\n renderLabel()\n {\n if ( !this.label && !this.$slots.label ) {\n return null;\n }\n\n let labelHtml = (\n <div class=\"n-form-item__label\">\n <label onClick={this.focusInput}>\n {this.$slots.label && this.$slots.label() || this.label}\n </label>\n </div>\n );\n\n return [\n labelHtml, this.ctor('renderTooltip')()\n ]\n },\n\n renderError()\n {\n if ( !this.NForm || !Obj.has(this.NForm.errors, this.prop) ) {\n return null;\n }\n\n return (\n <div class=\"n-form-item__error\">\n {Obj.get(this.NForm.errors, this.prop)}\n </div>\n );\n },\n\n renderInput()\n {\n return (\n <div ref=\"input\" class=\"n-form-item__input\">\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n },\n\n render()\n {\n let size = this.size || Obj.get(this.NForm, 'size', 'md');\n\n\n let classList = [\n 'n-form-item',\n 'n-form-item--' + size,\n ];\n\n if ( this.disabled() ) {\n classList.push('is-disabled');\n }\n\n return <div class={classList}>\n {this.ctor('renderCondition')()}\n {this.ctor('renderLabel')()}\n {this.ctor('renderInput')()}\n {this.ctor('renderError')()}\n </div>;\n }\n}\n","import { Arr, Obj, Any, Dom, UUID, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormMenu',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n },\n\n props: {\n\n size: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n },\n\n mounted()\n {\n\n Dom.find(document).on('scroll', Any.debounce(() => {\n\n let loop = true;\n\n Arr.each(this.NForm.groups, (item) => {\n loop = loop && ! this.bindInviewEvent(item);\n })\n }));\n },\n\n methods: {\n\n bindInviewEvent(item)\n {\n let [menu, group] = [\n `[data-menu-key=\"${item.key}\"]`,\n `[data-group-key=\"${item.key}\"]`\n ];\n\n let inview = Dom.find(group).inviewY(0.1);\n\n Dom.find('[data-menu-key]')\n .removeClass('is-visible');\n\n if ( inview ) {\n Dom.find(menu).addClass('is-visible');\n }\n\n return inview;\n }\n\n },\n\n renderMenu(item)\n {\n return (\n <div data-menu-key={item.key}>\n <a href={'#' + item.key}>{item.label}</a>\n </div>\n );\n },\n\n renderMenus()\n {\n return Arr.each(this.NForm.groups, (item) => {\n return this.ctor('renderMenu')(item);\n })\n },\n\n render()\n {\n let classList = [\n 'n-form-menu'\n ];\n\n return <div class={classList}>\n {this.ctor('renderMenus')()}\n </div>;\n }\n}\n","import { Arr, Obj, Any, Dom, UUID, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFrame',\n\n provide()\n {\n return { NFrame: this };\n },\n\n props: {\n\n resize: {\n default() {\n return false;\n },\n type: [Boolean]\n },\n\n scrollbar: {\n default() {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-frame'\n ];\n\n return (\n <div class={classList}>\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n }\n}\n","import { Arr, Obj, Any, Dom, UUID, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFrameItem',\n\n inject: {\n\n NFrame: {\n default: undefined\n },\n\n },\n\n props: {\n\n width: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n resize: {\n default() {\n return null;\n },\n type: [Boolean]\n },\n\n scrollbar: {\n default() {\n return null;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n itemResize() {\n return Any.isNull(this.resize) ? this.NFrame.resize : this.resize;\n },\n\n itemScrollbar() {\n return Any.isNull(this.scrollbar) ? this.NFrame.scrollbar : this.scrollbar;\n }\n\n },\n\n renderContent()\n {\n if ( ! this.itemScrollbar ) {\n return this.$slots.default && this.$slots.default();\n }\n\n return (\n <NScrollbar>{this.$slots.default && this.$slots.default()}</NScrollbar>\n );\n },\n\n renderDiv(classList)\n {\n let style = {\n //\n };\n\n if ( this.width ) {\n style.width = this.width + 'px';\n }\n\n return (\n <div class={classList} style={style}>\n {this.ctor('renderContent')()}\n </div>\n );\n },\n\n renderResizer(classList, style)\n {\n let props = {\n width: this.width\n };\n\n return (\n <NResizer class={classList} {...props}>\n {this.ctor('renderContent')()}\n </NResizer>\n );\n },\n\n render()\n {\n let classList = [\n 'n-frame-item'\n ];\n\n if ( this.itemResize ) {\n classList.push('is-resize');\n }\n\n if ( this.itemScrollbar ) {\n classList.push('is-scrollbar');\n }\n\n if ( this.itemResize ) {\n return this.ctor('renderResizer')(classList);\n }\n\n return this.ctor('renderDiv')(classList);\n }\n}\n","import { Arr, Dom, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTabs',\n\n provide()\n {\n return {\n NTabs: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n float: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n data()\n {\n return {\n init: false,\n elements: [], \n width: 0, \n offset: 0, \n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTab(tab)\n {\n Arr.add(this.elements, tab, \n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTab(tab)\n {\n Arr.remove(this.elements, \n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n getTab(updateEvent = true)\n {\n let currentTab = Arr.find(this.elements, {\n name: this.modelValue\n });\n\n let sorted = Arr.sort(this.elements, 'sort');\n\n if ( ! currentTab ) {\n currentTab = Arr.first(sorted);\n }\n\n let repeatNext = () => this.getTab(updateEvent);\n\n if ( ! currentTab ) {\n return Any.delay(repeatNext, 250);\n }\n\n if ( currentTab.name === this.tempValue || ! updateEvent ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = currentTab.name);\n },\n\n changeTab(value)\n {\n if ( this.tempValue === value ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = value);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n this.getTab(false);\n },\n\n updated()\n {\n let width = Dom.find(this.$el).find('.n-active')\n .width();\n\n this.width = width < 0 ? 0 : width;\n\n let offset = Dom.find(this.$el).find('.n-active')\n .offset('left', this.$el);\n\n this.offset = offset < 0 ? 0 : offset;\n },\n\n renderHeaderIndicator()\n {\n let transform = `scaleX(${this.width / 100}) ` + \n `translateX(${this.offset / (this.width / 100)}px)`;\n\n return (\n <div class=\"n-tabs__indicator\" style={{ transform }}>\n { /* Indicator bar */ }\n </div>\n );\n },\n\n renderHeader()\n {\n if ( this.elements.length <= 1 ) {\n return null;\n }\n\n // FIXME: As soon vue doesnt bug\n let sorted = Arr.sort(this.elements, 'sort');\n \n let tabs = Arr.each(Arr.make(sorted.length), (tab, index) => {\n return sorted[index].ctor('renderHeader')();\n });\n\n return (\n <div class=\"n-tabs__header\">\n {[tabs, this.ctor('renderHeaderIndicator')()]}\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-tabs__body\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-tabs', \n 'n-tabs--' + this.size, \n 'n-tabs--' + this.type\n ];\n\n if ( this.float ) {\n classList.push('n-float');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderHeader')() }\n { this.ctor('renderBody')() }\n </div>\n );\n }\n}\n","import { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NTabsItem',\n\n inject: {\n\n NTabs: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NTabsItem: this\n };\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n name: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n preload: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n keep: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n\n },\n\n methods: {\n\n changeTab()\n {\n this.NTabs.changeTab(this.name);\n }\n\n },\n\n data()\n {\n return {\n _key: null, init: false\n }\n },\n\n beforeMount()\n {\n this.NTabs.addTab(this);\n },\n\n beforeUnmount()\n {\n this.NTabs.removeTab(this);\n },\n\n renderHeaderIcon()\n {\n if ( ! this.$slots.icon && ! this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-tabs__tab-icon\">\n { this.$slots.icon && this.$slots.icon() || <i class={this.icon}></i> }\n </div>\n );\n },\n\n renderHeaderLabel()\n {\n return (\n <div class=\"n-tabs__tab-label\">\n { this.$slots.label && this.$slots.label () || <span>{this.label}</span> }\n </div>\n );\n },\n\n renderHeader()\n {\n let classList = [\n 'n-tabs__tab'\n ];\n\n if ( this.NTabs.tempValue === this.name ) {\n classList.push('n-active');\n }\n\n let props = {\n onClick: () => this.changeTab(this.name)\n };\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHeaderIcon')() }\n { this.ctor('renderHeaderLabel')() }\n </div>\n );\n },\n\n render()\n {\n let renderBody = this.NTabs.tempValue === this.name;\n\n if ( this.NTabs.tempValue !== this.name && this.keep ) {\n renderBody = this.init;\n }\n\n if ( this.NTabs.tempValue !== this.name && this.preload ) {\n renderBody = true;\n }\n\n if ( ! renderBody ) {\n return null;\n }\n\n this.init = true;\n\n let classList = [\n 'n-tabs-item'\n ];\n\n let style = {};\n\n if ( this.NTabs.tempValue !== this.name ) {\n style.display = 'none';\n }\n\n if ( this.$slots.raw ) {\n return this.$slots.raw({ style });\n }\n\n let element = 'div';\n\n if ( ! this.relative && ! this.NTabs.relative ) {\n element = resolveComponent('NScrollbar');\n }\n\n return h(element, { class: classList, style }, this.$slots);\n }\n}\n","import { Arr, Dom, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTags',\n\n provide()\n {\n return {\n NTags: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n tags: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n init: false, elements: [], tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTag(tab)\n {\n Arr.add(this.elements, tab,\n { label: tab.label });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTag(tab)\n {\n Arr.remove(this.elements,\n { label: tab.label });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n },\n\n render()\n {\n let classList = [\n 'n-tags',\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { Arr, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTagsItem',\n\n inject: {\n\n NTags: {\n default: undefined\n }\n\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return -1;\n },\n type: [String, Number]\n },\n\n color: {\n default()\n {\n return 0;\n },\n type: [String, Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n },\n\n beforeMount()\n {\n if ( this.NTags ) {\n this.NTags.addTag(this);\n }\n },\n\n beforeUnmount()\n {\n if ( this.NTags ) {\n this.NTags.removeTag(this);\n }\n },\n\n renderIcon()\n {\n if ( Any.isEmpty(this.icon) ) {\n return null;\n }\n\n return (\n <i class={this.icon}></i>\n );\n },\n\n renderLabel()\n {\n return (\n <span>{this.$slots.default ? this.$slots.default() : this.label}</span>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NTags ) {\n size = this.NTags.size;\n }\n\n let classList = [\n 'n-tags-item',\n 'n-tags-item--' + size,\n ,\n ];\n\n if ( this.type === -1 ) {\n classList.push('n-tags-item--color-' + this.color);\n }\n\n if ( this.type !== -1 ) {\n classList.push('n-tags-item--color-' + this.type);\n }\n\n return (\n <div class={classList}>\n {[this.ctor('renderIcon')(), this.ctor('renderLabel')()]}\n </div>\n );\n }\n\n}\n","import { Arr, Dom, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCollapse',\n\n provide()\n {\n return {\n NCollapse: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n init: false, elements: [], tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTab(tab)\n {\n Arr.add(this.elements, tab,\n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTab(tab)\n {\n Arr.remove(this.elements,\n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n showTab(value)\n {\n if ( Arr.has(this.tempValue, value) ) {\n return;\n }\n\n Arr.add(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n hideTab(value)\n {\n if ( ! Arr.has(this.tempValue, value) ) {\n return;\n }\n\n Arr.remove(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n toggleTab(value)\n {\n Arr.toggle(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n },\n\n render()\n {\n let classList = [\n 'n-collapse',\n 'n-collapse--' + this.size,\n 'n-collapse--' + this.type\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { Arr, Any, Dom } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NCollapseItem',\n\n inject: {\n\n NCollapse: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NCollapseItem: this\n };\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n name: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n preload: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n keep: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n methods: {\n\n showTab()\n {\n this.NCollapse.showTab(this.name);\n },\n\n hideTab()\n {\n this.NCollapse.hideTab(this.name);\n },\n\n toggleTab()\n {\n this.NCollapse.toggleTab(this.name);\n }\n\n },\n\n data()\n {\n return {\n _key: null, init: false, dragger: 0\n }\n },\n\n beforeMount()\n {\n this.NCollapse.addTab(this);\n },\n\n beforeUnmount()\n {\n this.NCollapse.removeTab(this);\n },\n\n renderHeaderIcon()\n {\n if ( !this.$slots.icon && !this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-collapse__header-icon\">\n {this.$slots.icon && this.$slots.icon() || <i class={this.icon}></i>}\n </div>\n );\n },\n\n renderHeaderLabel()\n {\n return (\n <div class=\"n-collapse__header-label\">\n {this.$slots.label && this.$slots.label() || <span>{this.label}</span>}\n </div>\n );\n },\n\n renderHeaderAngle()\n {\n return (\n <div class=\"n-collapse__header-angle\">\n {this.$slots.angle && this.$slots.angle() || <i class={nano.Icons.angleRight}></i>}\n </div>\n );\n },\n\n renderHeader()\n {\n if ( !this.label && !this.$slots.label ) {\n return null;\n }\n\n let classList = [\n 'n-collapse__header'\n ];\n\n if ( Arr.has(this.NCollapse.tempValue, this.name) ) {\n classList.push('n-active');\n }\n\n let props = {\n onClick: () => this.toggleTab(this.name)\n };\n\n props['onDragenter'] = (event) => {\n\n this.dragger ++;\n\n if ( this.dragger !== 1 ) {\n return;\n }\n\n this.showDelay = setTimeout(() => {\n this.showTab(this.name);\n }, 350);\n };\n\n props['onDragleave'] = (event) => {\n\n this.dragger --;\n\n if ( this.dragger !== 0 ) {\n return;\n }\n\n clearTimeout(this.showDelay);\n };\n\n props.style = {\n order: this.sort + 1,\n };\n\n return (\n <div ref=\"header\" class={classList} {...props}>\n {this.ctor('renderHeaderIcon')()}\n {this.ctor('renderHeaderLabel')()}\n {this.ctor('renderHeaderAngle')()}\n </div>\n );\n },\n\n renderBody()\n {\n let classList = [\n 'n-collapse__body'\n ];\n\n let tempValue = Arr.clone(this.NCollapse.tempValue);\n\n if ( !this.label && !this.$slots.label ) {\n tempValue.push(this.name);\n }\n\n let renderBody = Arr.has(tempValue, this.name);\n\n if ( !Arr.has(tempValue, this.name) && this.keep ) {\n renderBody = this.init;\n }\n\n if ( !Arr.has(tempValue, this.name) && this.preload ) {\n renderBody = true;\n }\n\n if ( !renderBody && this.label ) {\n return null;\n }\n\n this.init = true;\n\n let style = {\n order: this.sort + 2\n };\n\n if ( !Arr.has(tempValue, this.name) ) {\n style.display = 'none';\n }\n\n let element = 'div';\n\n if ( !this.relative && !this.NCollapse.relative ) {\n element = resolveComponent('NScrollbar');\n }\n\n return h(element, { class: classList, style, }, this.$slots);\n },\n\n render()\n {\n return [\n this.ctor('renderHeader')(), this.ctor('renderBody')()\n ];\n }\n}\n","import { Any, Arr, Obj, Dom, Event, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTable',\n\n provide()\n {\n return {\n NTable: this\n };\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n visible: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n expanded: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n filter: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n sortProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n sortDir: {\n default()\n {\n return 'desc';\n },\n type: [String]\n },\n\n closeFilterOnEnter: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n safezone: {\n default()\n {\n return (height) => height * 0.51;\n }\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 38;\n },\n type: [Number]\n },\n\n itemOffset: {\n default()\n {\n return 30;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderSelect: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderExpand: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return () => true;\n }\n },\n\n removeNode: {\n default()\n {\n return () => true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n },\n\n },\n\n computed: {\n\n checked()\n {\n return !!this.tempSelected.length &&\n this.tempSelected.length === this.items.length;\n },\n\n intermediate()\n {\n return !!this.tempSelected.length &&\n this.tempSelected.length !== this.items.length\n }\n\n },\n\n data()\n {\n return {\n uid: UUID(),\n elements: [],\n tempVisible: this.visible,\n tempVisibleProps: [],\n tempSelected: this.selected,\n tempSortProp: this.sortProp,\n tempSortDir: this.sortDir,\n tempFilter: this.filter,\n tempFilterProps: [],\n }\n },\n\n mounted()\n {\n this.$watch('tempVisible',\n this.makeVisibleProps, { deep: true });\n\n if ( !this.tempVisible.length ) {\n Arr.each(this.elements, this.detectVisible);\n }\n },\n\n watch: {\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n },\n\n methods: {\n\n addColumn(column)\n {\n Arr.add(this.elements, column,\n { uid: column.uid });\n },\n\n removeColumn(column)\n {\n Arr.remove(this.elements,\n { uid: column.uid });\n },\n\n getColumnIndex(column)\n {\n if ( !Any.isString(column) ) {\n column = column['prop'];\n }\n\n return Arr.findIndex(this.tempVisibleProps,\n column);\n },\n\n getColumnVisiblity(column)\n {\n if ( !Any.isString(column) ) {\n column = column.prop;\n }\n\n return Arr.has(this.tempVisible, column);\n },\n\n getColumnSorted(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n if ( this.tempSortProp !== prop ) {\n return null;\n }\n\n return this.tempSortDir;\n },\n\n getColumnFilter(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n return Arr.find(this.tempFilter, {\n property: prop\n });\n },\n\n getColumnFiltered(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n return Arr.has(this.tempFilterProps, prop);\n },\n\n detectVisible(column)\n {\n if ( column.detectVisibity() ) {\n Arr.add(this.tempVisible, column.prop);\n }\n },\n\n makeVisibleProps()\n {\n this.tempVisibleProps = Arr.intersect(\n Arr.extract(this.elements, 'prop'), this.tempVisible);\n\n this.$nextTick(this.$refs.scrollbar.onResize);\n },\n\n sortByColumn(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n\n let dir = this.tempSortDir;\n\n if ( prop === this.tempSortProp && this.tempSortDir === 'desc' ) {\n dir = 'asc';\n }\n\n if ( prop === this.tempSortProp && this.tempSortDir === 'asc' ) {\n dir = 'desc';\n }\n\n if ( this.tempSortDir !== dir ) {\n this.$emit('update:sortDir', this.tempSortDir = dir);\n }\n\n if ( this.tempSortProp !== prop ) {\n this.$emit('update:sortProp', this.tempSortProp = prop);\n }\n\n this.$emit('sort', this.tempSortProp, this.tempSortDir);\n },\n\n replaceFilter(filter, search)\n {\n Arr.replace(this.tempFilter, filter, search);\n\n let filters = Arr.filter(this.tempFilter, (filter) => {\n return Arr.has(this.tempFilterProps, filter.property);\n });\n\n this.$emit('update:filter', filters);\n\n this.$emit('filter', filters, this.tempFilterProps);\n },\n\n resetFilter()\n {\n this.tempFilter = this.tempFilterProps = [];\n\n Event.fire('NTable:reset', this.uid);\n\n this.$emit('update:filter', this.tempFilter);\n\n this.$emit('filter', this.tempFilter, this.tempFilterProps);\n },\n\n selectAll()\n {\n this.$refs.draggable.selectAll();\n },\n\n highlightNode(value, key = null)\n {\n this.$refs.draggable.highlightNode(value, key);\n },\n\n syncCurrent()\n {\n return this.$refs.draggable.syncCurrent();\n },\n\n refreshCurrent()\n {\n this.$refs.draggable.refreshCurrent();\n },\n\n },\n\n renderHandle()\n {\n if ( !this.renderHandle ) {\n return null;\n }\n\n return (\n <div class=\"n-draglist-item__handle\">\n { /* Only used in row */}\n </div>\n )\n },\n\n renderExpand()\n {\n if ( !this.renderExpand ) {\n return null;\n }\n\n return (\n <div class=\"n-draglist-item__expand\">\n { /* Only used in row */}\n </div>\n )\n },\n\n renderSelect()\n {\n if ( !this.renderSelect ) {\n return null;\n }\n\n let props = {\n modelValue: this.checked,\n intermediate: this.intermediate,\n disabled: !this.items.length,\n onClick: this.selectAll\n };\n\n return (\n <div class=\"n-draglist-item__select\">\n <NCheckbox {...props}></NCheckbox>\n </div>\n );\n },\n\n renderBody(props)\n {\n let columns = Obj.each(this.elements, (column) => {\n return column.disabled ? null : column.ctor('renderBody')(props);\n });\n\n return Obj.values(columns);\n },\n\n renderContext()\n {\n let columns = Obj.each(this.elements, (column) => {\n\n if ( column.disabled ) {\n return null;\n }\n\n return (\n <NCheckbox class=\"n-table__checkbox\" value={column.prop}>\n {column.label}\n </NCheckbox>\n );\n });\n\n return (\n <NPopover trigger=\"context\" width={220}>\n <NCheckboxGroup vModel={this.tempVisible} align=\"vertical\">\n {Obj.values(columns)}\n </NCheckboxGroup>\n </NPopover>\n );\n },\n\n renderHead()\n {\n let defaultRender = [\n this.ctor('renderHandle')(),\n this.ctor('renderExpand')(),\n this.ctor('renderSelect')(),\n this.ctor('renderContext')()\n ];\n\n let columns = Obj.each(this.elements, (column) => {\n return column.disabled ? null : column.ctor('renderHead')();\n });\n\n return (\n <div class=\"n-table__header\">\n {defaultRender} {Obj.values(columns)}\n </div>\n );\n },\n\n render()\n {\n let except = [\n 'visible', 'filter', 'sortProp',\n 'sortDir', 'closeFilterOnEnter'\n ];\n\n let props = Obj.except(this.$props, except, {\n items: this.items,\n selected: this.tempSelected,\n overflowX: false,\n useKeys: this.useKeys,\n // renderNode: this.ctor('renderBody')\n });\n\n props['onRowClick'] = (...args) => {\n this.$emit('row-click', ...args);\n }\n\n props['onRowDblclick'] = (...args) => {\n this.$emit('row-dblclick', ...args);\n }\n\n props['onUpdate:items'] = (value) => {\n this.$emit('update:items', value);\n }\n\n props['onUpdate:current'] = (value) => {\n this.$emit('update:current', value);\n }\n\n props['onUpdate:expanded'] = (value) => {\n this.$emit('update:expanded', value);\n }\n\n props['onUpdate:selected'] = (value) => {\n this.$emit('update:selected', this.tempSelected = value);\n }\n\n let draggableHtml = (\n <div class=\"n-table__body\">\n <NDraglist ref=\"draggable\" {...props} offsetX={25}>\n {{ default: this.ctor('renderBody') }}\n </NDraglist>\n </div>\n );\n\n return (\n <div class=\"n-table\">\n <NScrollbar ref=\"scrollbar\" class=\"n-table__wrap\" fixture={true} overflowY={false}>\n <div class=\"n-table__inner\">\n {[this.ctor('renderHead')(), draggableHtml]}\n </div>\n </NScrollbar>\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n },\n\n}","import { Any, Arr, Obj, Str, Dom, UUID, Num, Locale } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NTableColumn',\n\n inject: {\n\n NTable: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n prop: {\n default()\n {\n return UUID();\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'string';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'left';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n filter: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n visible: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean, Function]\n },\n\n matrixDisabled: {\n default()\n {\n return false;\n },\n type: [Boolean, Function]\n },\n\n breakpoint: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n previewProp: {\n default()\n {\n return 'preview';\n },\n type: [String]\n },\n\n matrix: {\n default()\n {\n return - 1;\n },\n type: [Number, String]\n },\n\n matrixProp: {\n default()\n {\n return 'matrix';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Object, Array, Function]\n },\n\n optionsValue: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n sortProp: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n filterProp: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n fluid: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n fixedWidth: {\n default()\n {\n return 0;\n }\n },\n\n width: {\n default()\n {\n return 0;\n }\n },\n\n minWidth: {\n default()\n {\n return 120;\n }\n },\n\n maxWidth: {\n default()\n {\n return 0;\n }\n },\n\n emptyText: {\n default()\n {\n return '-';\n },\n type: [String]\n },\n\n undefinedText: {\n default()\n {\n return Locale.trans('-');\n },\n type: [String]\n },\n\n trueText: {\n default()\n {\n return Locale.trans('Yes');\n },\n type: [String]\n },\n\n falseText: {\n default()\n {\n return Locale.trans('No');\n },\n type: [String]\n },\n\n datetimeFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm');\n },\n type: [String]\n },\n\n allowUncheck: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n matrixValues()\n {\n if ( this.type !== 'matrix' ) {\n return;\n }\n\n let values = {};\n\n if ( Any.isEmpty(this.modelValue) ) {\n return values;\n }\n\n Arr.each(this.modelValue, (item) => {\n Obj.set(values, item[this.NTable.uniqueProp],\n Num.matrix(item[this.matrixProp]));\n });\n\n return values;\n }\n\n },\n\n provide()\n {\n return {\n NTableColumn: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(), tempWidth: 0\n };\n },\n\n methods: {\n\n detectVisibity()\n {\n let visible = this.visible;\n\n if ( this.breakpoint ) {\n visible &= Dom.find(this.NTable.$el).width() > this.breakpoint;\n }\n\n return visible;\n },\n\n sortByColumn(event)\n {\n if ( !Arr.has([0, 1], event.which) ) {\n return;\n }\n\n if ( !Dom.find(event.target).closest('.n-table-column__filter') ) {\n this.NTable.sortByColumn(this);\n }\n },\n\n },\n\n beforeMount()\n {\n this.changedStates = {};\n this.NTable.addColumn(this);\n },\n\n beforeUnmount()\n {\n this.NTable.removeColumn(this);\n },\n\n renderHead()\n {\n if ( !this.NTable.getColumnVisiblity(this) ) {\n return null;\n }\n\n let classList = [\n 'n-table-column',\n 'n-table-column--' + this.align,\n 'n-table-column--' + this.type,\n ];\n\n let sortDirection = this.NTable.getColumnSorted(this);\n\n if ( sortDirection ) {\n classList.push('n-sorted', 'n-' + sortDirection);\n }\n\n if ( this.fluid || !this.width ) {\n classList.push('n-fluid');\n }\n\n if ( this.fixedWidth ) {\n classList.push('n-fixed');\n }\n\n if ( this.NTable.getColumnFiltered(this) ) {\n classList.push('n-filtered');\n }\n\n let style = {};\n\n if ( this.fixedWidth ) {\n style.width = this.fixedWidth + 'px';\n }\n\n if ( this.width ) {\n style.flexBasis = this.width + 'px';\n }\n\n let props = {\n modelValue: this.tempWidth,\n width: this.width,\n minWidth: this.minWidth,\n maxWidth: this.maxWidth,\n disabled: !!this.fixedWidth,\n group: [this.NTable.uid],\n };\n\n props['onUpdate:modelValue'] = (value) => {\n this.tempWidth = value;\n }\n\n if ( this.sort ) {\n props.onMousedown = this.sortByColumn;\n }\n\n return (\n <NResizer ref=\"column\" class={classList} style={style} {...props}>\n {this.ctor('renderHeadSort')()}\n {this.ctor('renderHeadLabel')()}\n {this.ctor('renderHeadFilter')()}\n </NResizer>\n );\n },\n\n renderHeadLabel()\n {\n let classList = [\n 'n-table-column__label'\n ];\n\n let labelHtml = (\n <div class={classList}>\n <span>{this.label}</span>\n </div>\n );\n\n if ( Any.isEmpty(this.tooltip) ) {\n return labelHtml;\n }\n\n let tooltipHtml = (\n <NPopover type=\"tooltip\">{this.tooltip}</NPopover>\n );\n\n return [labelHtml, tooltipHtml];\n },\n\n renderHeadSort()\n {\n if ( !this.sort ) {\n return null;\n }\n\n return (\n <div class=\"n-table-column__sort\">\n <i>{ /* Sorting angles */}</i>\n </div>\n )\n },\n\n renderHeadFilter()\n {\n if ( !this.filter ) {\n return null;\n }\n\n let angleHtml = (\n <div class=\"n-table-column__filter\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n\n let component = resolveComponent('NTableFilter' +\n Str.ucfirst(this.type));\n\n return [\n angleHtml, h(component, { column: this })\n ];\n },\n\n renderBody(props)\n {\n if ( !this.NTable.getColumnVisiblity(this) ) {\n return null;\n }\n\n let uid = props.value[this.NTable.uniqueProp]\n + this.uid;\n\n let classList = [\n 'n-table-cell',\n 'n-table-cell--' + this.align,\n 'n-table-cell--' + this.type,\n ];\n\n if ( this.fluid ) {\n classList.push('n-fluid');\n }\n\n if ( this.tempWidth ) {\n classList.push('n-fixed');\n }\n\n let index = this.NTable.getColumnIndex(this);\n\n let offset = 0;\n\n if ( index === 0 ) {\n offset = props.value.depth * this.NTable.itemOffset;\n }\n\n let style = {\n width: (this.tempWidth - offset) + 'px'\n };\n\n if ( this.minWidth ) {\n style.minWidth = (this.minWidth - offset) + 'px';\n }\n\n if ( this.maxWidth ) {\n style.maxWidth = (this.maxWidth - offset) + 'px';\n }\n\n let passed = Obj.except(this.$attrs, [], {\n ...props, uid: uid, class: classList, style: style, column: this\n });\n\n let component = resolveComponent('NTableCell' +\n Str.ucfirst(this.type));\n\n return h(component, passed);\n },\n\n render()\n {\n return null;\n }\n\n}","import { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NTable: {\n default: undefined\n },\n\n NDraggableItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n uid: {\n required: true\n },\n\n column: {\n required: true\n },\n\n item: {\n required: true\n },\n\n value: {\n required: true\n },\n\n copy: {\n required: true\n },\n\n remove: {\n required: true\n },\n\n\n },\n\n computed: {\n\n input()\n {\n return Obj.get(this.item, this.column.prop);\n }\n\n },\n\n data()\n {\n return { init: false };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => this.init = true, 20);\n },\n\n beforeUnmount()\n {\n clearTimeout(this.timer);\n },\n\n methods: {\n\n setFirstState(state)\n {\n Obj.set(this.column.changedStates,\n this.uid, this.firstState = state);\n }\n\n },\n\n render()\n {\n if ( this.column.$slots.default ) {\n return this.column.$slots.default(this);\n }\n \n return (\n <div>{ this.input }</div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellString',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertString(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellBoolean',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n return (\n <div>\n <span>{ Any.convertBoolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellDatetime',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n return (\n <div>\n <span>{ Any.convertDatetime(this.input, this.column.datetimeFormat, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellOption',\n\n extends: TableCell,\n\n renderOption(value)\n {\n let options = this.column.options;\n\n if ( Any.isFunction(options) ) {\n options = this.column.options(this);\n }\n\n options = Arr.each(options, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let prop = this.column.optionsValue;\n\n let option = Arr.find(options, (item) => {\n return Obj.get(item, prop) == value;\n });\n\n if ( ! option ) {\n return [this.column.emptyText];\n }\n\n return Obj.get(option, this.column.optionsLabel,\n this.column.undefinedText);\n },\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n let input = ! Any.isObject(this.input) ?\n [this.input] : this.input;\n\n return (\n <div>\n <span>{ Arr.each(input, this.ctor('renderOption')) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellImage',\n\n extends: TableCell,\n\n computed: {\n\n preview()\n {\n return Obj.get(this.item, this.column.previewProp);\n }\n\n },\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n let classList = [\n 'n-table-cell',\n 'n-table-cell--' + this.column.type\n ];\n\n let props = {\n fit: 'contain',\n }\n\n return (\n <div class={classList}>\n <NPreview file={this.preview || this.input} thumb={this.input} {...props} />\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Num, Any, Obj, Arr, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellMatrix',\n\n extends: TableCell,\n\n beforeMount()\n {\n this.firstState = Obj.get(this.column.changedStates,\n this.uid);\n },\n\n methods: {\n\n toggleMatrix()\n {\n if ( this.column.matrix === -1 ) {\n return this.toggleSelect();\n }\n\n let itemList = this.column.modelValue;\n\n if ( itemList === null ) {\n itemList = [];\n }\n\n let item = Arr.find(itemList, {\n [this.NTable.uniqueProp]: this.value[this.NTable.uniqueProp]\n });\n\n if ( ! item ) {\n item = Obj.assign({}, this.item, { [this.column.matrixProp]: 0 });\n }\n\n let currentMatrix = Num.int(item[this.column.matrixProp]);\n\n let matrix = Arr.toggle(Num.matrix(currentMatrix),\n Num.int(this.column.matrix));\n\n item[this.column.matrixProp] = Num.combine(matrix);\n\n Arr.replace(itemList, item, {\n [this.NTable.uniqueProp]: item[this.NTable.uniqueProp]\n });\n\n this.column.$emit('update:modelValue', itemList);\n },\n\n toggleSelect()\n {\n let itemList = this.column.modelValue;\n\n if ( itemList === null ) {\n itemList = [];\n }\n\n let fallback = Obj.assign({}, this.item, {\n [this.column.matrixProp]: this.column.matrix\n });\n\n let finder = {\n [this.NTable.uniqueProp]: this.value[this.NTable.uniqueProp],\n };\n\n let item = Arr.find(itemList, finder);\n\n if ( ! item ) {\n Arr.add(itemList, fallback);\n } else {\n Arr.remove(itemList, finder);\n }\n\n this.column.$emit('update:modelValue', itemList);\n },\n\n isChecked()\n {\n let matrix = Obj.get(this.column.matrixValues,\n this.item[this.NTable.uniqueProp]);\n\n if ( ! matrix ) {\n return false;\n }\n\n let value = Num.int(this.column.matrix);\n\n if ( value === -1 ) {\n return true;\n }\n\n return Arr.has(matrix, value);\n },\n\n isDisabled()\n {\n if ( ! Any.isFunction(this.column.matrixDisabled) ) {\n return this.column.matrixDisabled;\n }\n\n return this.column.matrixDisabled(this);\n }\n\n },\n\n render()\n {\n let checked = this.isChecked();\n\n if ( this.firstState === null ) {\n this.setFirstState(checked);\n }\n\n if ( ! this.init ) {\n return null;\n }\n\n let classList = [\n 'n-table-cell--checkbox'\n ];\n\n if ( this.firstState !== checked ) {\n classList.push('n-changed');\n }\n\n if ( checked ) {\n classList.push('n-checked');\n }\n\n let isDisabled = this.isDisabled();\n\n if ( this.column.allowUncheck ) {\n isDisabled = isDisabled && ! checked;\n }\n\n if ( isDisabled ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( ! isDisabled ) {\n props.onClick = this.toggleMatrix;\n }\n\n return (\n <div class={classList} {...props}>\n <i class={nano.Icons.checked}></i>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Num, Any, Obj, Arr } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellSelect',\n\n extends: TableCell,\n\n beforeMount()\n {\n this.firstState = Obj.get(this.column.changedStates,\n this.uid);\n },\n\n methods: {\n\n toggleSelect()\n {\n let item = null;\n\n if ( ! this.isChecked() ) {\n item = Obj.assign({}, this.item);\n }\n\n this.column.$emit('update:modelValue', item);\n },\n\n isChecked()\n {\n if ( Any.isEmpty(this.column.modelValue) ) {\n return false;\n }\n\n return Obj.get(this.column.modelValue, this.NTable.uniqueProp) ===\n this.value[this.NTable.uniqueProp];\n },\n\n isDisabled()\n {\n if ( ! Any.isEmpty(this.column.modelValue) ) {\n return true;\n }\n\n if ( ! Any.isFunction(this.column.disabled) ) {\n return this.column.disabled;\n }\n\n return this.column.disabled(this);\n },\n\n },\n\n render()\n {\n let checked = this.isChecked();\n\n if ( this.firstState === null ) {\n this.setFirstState(checked);\n }\n\n if ( ! this.init ) {\n return null;\n }\n\n let classList = [\n 'n-table-cell--checkbox'\n ];\n\n if ( this.firstState !== checked ) {\n classList.push('n-changed');\n }\n\n if ( checked ) {\n classList.push('n-checked');\n }\n\n let isDisabled = this.isDisabled();\n\n if ( this.column.allowUncheck ) {\n isDisabled = isDisabled && ! checked;\n }\n\n if ( isDisabled ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( ! isDisabled ) {\n props.onClick = this.toggleSelect;\n }\n\n return (\n <div class={classList} {...props}>\n <i class={nano.Icons.checked}></i>\n </div>\n );\n }\n\n}\n","import {Arr, Obj, Any, Dom, Event, UUID} from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NTable: {\n default: undefined\n }\n\n },\n\n props: {\n\n column: {\n required: true\n }\n\n },\n\n computed: {\n\n tempFilter()\n {\n return this.NTable.getColumnFilter(this.column);\n },\n\n canReset()\n {\n return ! this.NTable.getColumnFiltered(this.column);\n },\n\n canApply()\n {\n return ! Any.isEmpty(this.filter.value);\n }\n\n },\n\n data()\n {\n return {\n filter: this.getFilterClone(), visible: false\n };\n },\n\n beforeMount()\n {\n this.mountFilter();\n },\n\n mounted()\n {\n Event.bind('NTable:reset', \n this.resetFilter, this._.uid);\n\n Dom.find(document).on('keydown', \n this.onKeydown, this._.uid);\n },\n\n beforeUnmount()\n {\n Event.unbind('NTable:reset', \n this._.uid);\n\n Dom.find(document).off('keydown', \n null, this._.uid);\n },\n\n methods: {\n\n getFilterClone()\n {\n let tempFilter = this.NTable.getColumnFilter(this.column);\n\n if ( Any.isEmpty(tempFilter) ) {\n return null;\n }\n\n return Obj.clone(tempFilter);\n },\n\n getFilterProp()\n {\n return this.column.filterProp || \n this.column.prop;\n },\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null,\n property: this.getFilterProp(), \n };\n },\n\n mountFilter()\n {\n if ( this.filter ) {\n return this.applyFilter();\n }\n\n this.filter = this.getDefaultFilter();\n\n if ( ! this.canApply ) {\n return;\n }\n\n Arr.add(this.NTable.tempFilter, this.filter, {\n property: this.getFilterProp()\n });\n },\n\n resetFilter(uid)\n {\n if ( this.NTable.uid !== uid ) {\n return;\n }\n\n this.filter = this.getDefaultFilter();\n\n Arr.add(this.NTable.tempFilter, this.filter, {\n property: this.getFilterProp()\n });\n },\n\n onKeydown(event)\n {\n if ( ! this.visible ) {\n return;\n }\n\n if ( event.which === 13 && this.canApply ) {\n this.applyFilter();\n }\n\n if ( event.which === 13 && ! this.canApply ) {\n this.clearFilter();\n }\n\n let closeAnyway = event.which === 13 &&\n this.NTable.closeFilterOnEnter;\n\n if ( closeAnyway || event.which === 27 ) {\n this.$refs.popover.close();\n }\n },\n\n applyFilter()\n {\n let filter = Obj.clone(this.filter);\n\n Arr.add(this.NTable.tempFilterProps, \n this.getFilterProp());\n\n this.NTable.replaceFilter(filter, {\n property: this.getFilterProp()\n });\n },\n\n clearFilter()\n {\n let filter = this.getDefaultFilter();\n\n Arr.remove(this.NTable.tempFilterProps, \n this.getFilterProp());\n\n this.NTable.replaceFilter(filter, {\n property: this.getFilterProp()\n });\n\n this.filter = filter;\n }\n\n },\n\n renderForm()\n {\n return null;\n },\n\n renderApply()\n {\n let props = {\n type: 'primary',\n link: true,\n size: 'xs',\n disabled: ! this.canApply\n };\n\n return (\n <NButton {...props} onClick={this.applyFilter}>\n { this.trans('Apply') }\n </NButton>\n );\n },\n\n renderReset()\n {\n let props = {\n type: 'danger',\n link: true,\n size: 'xs',\n disabled: this.canReset,\n };\n\n return (\n <NButton {...props} onClick={this.clearFilter}>\n { this.trans('Reset') }\n </NButton>\n );\n },\n\n renderFooter()\n {\n return (\n <div class=\"n-table-filter__footer\">\n { this.ctor('renderReset')() }\n { this.ctor('renderApply')() }\n </div>\n )\n },\n\n render()\n {\n let props = {\n class: 'n-table-filter__popover',\n trigger: 'click',\n size: 'sm',\n width: 220,\n }\n\n return (\n <NPopover ref=\"popover\" vModel={this.visible} {...props}>\n {\n { default: this.ctor('renderForm'), footer: this.ctor('renderFooter') }\n }\n </NPopover>\n );\n }\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Dom, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterString',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'li',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n li: this.trans('Includes value'),\n nl: this.trans('Excludes value'),\n eq: this.trans('Equal value'),\n ne: this.trans('Except value'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NInput size=\"sm\" vModel={this.filter.value} />\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterBoolean',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'in',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n 1: this.trans(this.column.trueText),\n 0: this.trans(this.column.falseText),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.value} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\n\nexport default {\n\n name: 'NTableFilterDatetime',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'eq',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n eq: this.trans('Exact date'),\n lt: this.trans('Before date'),\n gt: this.trans('After date'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NDatepicker size=\"sm\" vModel={this.filter.value} format={this.column.datetimeFormat} />\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Arr, Obj, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterOption',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type,\n value: [],\n operator: 'in',\n property: this.getFilterProp(),\n };\n }\n\n },\n\n renderOption(value)\n {\n let props = {\n value: Obj.get(value, this.column.optionsValue)\n };\n\n return (\n <NCheckbox {...props}>{ Obj.get(value, this.column.optionsLabel) }</NCheckbox>\n );\n },\n\n renderForm()\n {\n let items = this.column.options;\n\n if ( Any.isFunction(items) ) {\n items = this.column.options(this);\n }\n\n items = Arr.each(items, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let options = {\n in: this.trans('Includes value'),\n ni: this.trans('Excludes value'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NCheckboxGroup size=\"sm\" align=\"vertical\" vModel={this.filter.value}>\n { Arr.each(items, this.ctor('renderOption')) }\n </NCheckboxGroup>\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import { Str, Num, Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPaginator',\n\n props: {\n\n page: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n limit: {\n default()\n {\n return 100;\n },\n type: [Number]\n },\n\n limitOptions: {\n default()\n {\n return [25, 50, 100, 500, 1000, 2500];\n },\n },\n\n total: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n maxPages: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n layout: {\n default()\n {\n return [\n 'limit', 'count', 'spacer', 'goto', 'pages'\n ]\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n pages()\n {\n return Num.ceil(this.total / this.tempLimit);\n },\n\n pageOptions()\n {\n return Arr.make(this.pages || 1);\n }\n\n },\n\n data()\n {\n return {\n tempPage: this.page, tempLimit: this.limit,\n };\n },\n\n\n\n methods: {\n\n forcePage(page)\n {\n if ( page !== this.tempPage ) {\n this.tempPage = page;\n }\n },\n\n updatePaginate()\n {\n let paginate = {\n page: this.tempPage, limit: this.tempLimit\n };\n\n this.$emit('paginate', paginate);\n },\n\n onPrevPage()\n {\n this.onPageInput(this.tempPage - 1);\n },\n\n onNextPage()\n {\n this.onPageInput(this.tempPage + 1);\n },\n\n onFirstPage()\n {\n this.onPageInput(1);\n },\n\n onLastPage()\n {\n this.onPageInput(this.pages);\n },\n\n onPageInput(value)\n {\n this.$emit('update:page', this.tempPage = value);\n\n this.updatePaginate();\n },\n\n onLimitInput(value)\n {\n if ( this.tempLimit !== value ) {\n this.$emit('update:page', this.tempPage = 1);\n }\n\n this.$emit('update:limit', this.tempLimit = value);\n\n this.updatePaginate();\n },\n\n },\n\n watch: {\n\n page(value)\n {\n if ( value !== this.tempPage ) {\n this.tempPage = value;\n }\n },\n\n limit(value)\n {\n if ( value !== this.tempLimit ) {\n this.tempLimit = value;\n }\n }\n\n },\n\n renderLimit()\n {\n let props = {\n modelValue: this.tempLimit,\n size: this.size,\n type: this.type,\n optionsValue: '$value.value',\n optionsLabel: '$value.label',\n };\n\n props.options = Arr.each(this.limitOptions, (limit) => {\n return {\n value: limit, label: this.choice(':count items', limit)\n };\n });\n\n props['onUpdate:modelValue'] = this.onLimitInput;\n\n return (\n <div class=\"n-paginator__limit\">\n <NSelect {...props} />\n </div>\n );\n },\n\n renderCount()\n {\n return (\n <div class=\"n-paginator__count\">\n { this.choice('No items|Total :count item|Total :count items', this.total) }\n </div>\n );\n },\n\n renderSpacer()\n {\n return (\n <div class=\"n-paginator__spacer\">\n { /* Nothing :( */ }\n </div>\n );\n },\n\n renderGoto()\n {\n if ( this.pageOptions.length > 500 ) {\n return null;\n }\n\n let props = {\n modelValue: this.tempPage,\n size: this.size,\n type: this.type,\n undefinedText: '?',\n optionsValue: '$value.value',\n optionsLabel: '$value.label',\n };\n\n props.options = Arr.reduce(this.pageOptions, (merge, index) => {\n return Arr.push(merge, {\n value: index, label: index\n });\n }, []);\n\n props['onUpdate:modelValue'] = this.onPageInput;\n\n return (\n <div class=\"n-paginator__goto\">\n <NSelect {...props} />\n </div>\n );\n },\n\n renderPrev()\n {\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleLeft,\n onClick: this.onPrevPage\n };\n\n if ( this.tempPage - 1 < 1 ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderNext()\n {\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleRight,\n onClick: this.onNextPage\n };\n\n if ( this.tempPage + 1 > this.pages ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderFirst()\n {\n if ( this.pages < this.maxPages ) {\n return null;\n }\n\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleDoubleLeft,\n onClick: this.onFirstPage\n };\n\n if ( this.tempPage - 1 < 1 ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderLast()\n {\n if ( this.pages < this.maxPages ) {\n return null;\n }\n\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleDoubleRight,\n onClick: this.onLastPage\n };\n\n if ( this.tempPage + 1 > this.pages ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderPage(index)\n {\n let page = this.tempPage;\n\n let pages = Math.abs(this.maxPages / 2);\n\n if ( page < pages ) {\n page = pages;\n }\n\n let global = Array(this.pages).length;\n\n if ( page > global - pages ) {\n page = global - pages;\n }\n\n let current = Num.int(index);\n\n if ( current < page - pages ) {\n return null;\n }\n\n if ( current > Math.max(1, page + pages) ) {\n return null;\n }\n\n let props = {\n type: this.type,\n size: this.size,\n };\n\n if ( current === this.tempPage ) {\n props.disabled = true;\n }\n\n props.onClick = () => {\n this.onPageInput(current);\n };\n\n return (\n <NButton {...props}>{ current }</NButton>\n );\n },\n\n renderPages()\n {\n let pages = Arr.each(this.pageOptions, (index) => {\n return this.ctor('renderPage')(index);\n });\n\n return (\n <div class=\"n-paginator__pages\">\n { this.ctor('renderFirst')() }\n { this.ctor('renderPrev')() }\n { ...pages }\n { this.ctor('renderNext')() }\n { this.ctor('renderLast')() }\n </div>\n );\n },\n\n renderSlot(view)\n {\n let renderFunction = this.ctor('render' + \n Str.ucfirst(view));\n\n if ( Any.isFunction(renderFunction) ) {\n return renderFunction();\n }\n\n return this.$slots[view] && this.$slots[view]();\n },\n\n render()\n {\n let className = [\n 'n-paginator',\n 'n-paginator--' + this.size,\n 'n-paginator--' + this.type\n ];\n\n return <div class={className}>\n {\n Arr.each(this.layout, (view) => {\n return this.ctor('renderSlot')(view);\n })\n }\n </div>;\n }\n}\n","import { Arr, Any, Obj, Event, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInfo',\n\n model: {\n prop: 'item'\n },\n\n props: {\n\n item: {\n default()\n {\n return null;\n }\n },\n\n syncEvent: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n uid: UUID(),\n elements: [],\n options: [],\n tempValue: this.item,\n };\n },\n\n watch: {\n\n item(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.bindSyncEvent();\n },\n\n beforeUnmount()\n {\n this.unbindSyncEvent();\n },\n\n updated()\n {\n Any.delay(() => {\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.adaptHeight();\n }\n }, 500);\n },\n\n methods: {\n\n bindSyncEvent()\n {\n if ( !this.syncEvent ) {\n return;\n }\n\n this.options = this.syncEvent;\n\n if ( Any.isFunction(this.options) ) {\n this.options = this.options(this);\n }\n\n let syncFunction = (value, uid = null) => {\n if ( uid === this.options[1] ) {\n this.setValue(value);\n }\n };\n\n Event.bind(this.options[0], syncFunction,\n this.uid);\n },\n\n unbindSyncEvent()\n {\n Event.unbind(this.options[0], this.uid);\n },\n\n setValue(value)\n {\n this.$emit('update:modelValue',\n this.tempValue = value);\n },\n\n addColumn(column)\n {\n Arr.add(this.elements,\n column, { uid: column.uid });\n },\n\n removeColumn(column)\n {\n Arr.remove(this.elements,\n { uid: column.uid });\n },\n\n },\n\n provide()\n {\n return {\n NInfo: this\n };\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={!this.showEmptyIcon} class=\"n-info__empty\">\n {this.$slots.empty && this.$slots.empty() || this.trans('No entry')}\n </NEmptyIcon>\n );\n },\n\n renderBody()\n {\n if ( Any.isEmpty(this.tempValue) ) {\n return this.ctor('renderEmpty')();\n }\n\n let elements = Obj.each(this.elements, (column) => {\n return (\n <div class=\"n-info__column\">\n {column.ctor('renderLabel')({ item: this.tempValue })}\n {column.ctor('renderBody')({ item: this.tempValue })}\n </div>\n );\n });\n\n return (\n <div class=\"n-info__body\">\n {Any.vals(elements)}\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-info',\n 'n-info--' + this.type,\n 'n-info--' + this.size,\n ];\n\n let infoHtml = (\n <NScrollbar ref=\"scrollbar\" relative={this.relative}>\n {this.ctor('renderBody')()}\n </NScrollbar>\n );\n\n return (\n <div class={classList}>\n {[infoHtml, this.$slots.default()]}\n </div>\n );\n }\n}\n","import { UUID, Obj, Locale, Str } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NInfoColumn',\n\n inject: {\n\n NInfo: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n prop: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'string';\n },\n type: [String]\n },\n\n previewProp: {\n default()\n {\n return 'preview';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Object, Array, Function]\n },\n\n optionsValue: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n emptyText: {\n default()\n {\n return Locale.trans('-');\n },\n type: [String]\n },\n\n trueText: {\n default()\n {\n return Locale.trans('Yes');\n },\n type: [String]\n },\n\n falseText: {\n default()\n {\n return Locale.trans('No');\n },\n type: [String]\n },\n\n datetimeFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm');\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n uid: UUID()\n };\n },\n\n beforeMount()\n {\n this.NInfo.addColumn(this);\n },\n\n beforeUnmount()\n {\n this.NInfo.removeColumn(this);\n },\n\n renderLabel()\n {\n if ( this.$slots.label ) {\n return this.$slots.label();\n }\n \n return (\n <div class=\"n-info-column\">\n <span>{this.label}</span>\n </div>\n );\n },\n\n renderBody(props)\n {\n let passed = Obj.except(props, [], {\n column: this\n });\n\n let component = resolveComponent('NInfoField' + \n Str.ucfirst(this.type));\n\n if ( ! component ) {\n return null;\n }\n\n passed.class = [\n 'n-info-field',\n 'n-info-field--' + this.type\n ];\n\n return h(component, passed);\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NInfo: {\n default: undefined\n }\n\n },\n\n props: {\n\n column: {\n required: true\n },\n\n item: {\n required: true\n },\n\n },\n\n computed: {\n\n input()\n {\n return Obj.get(this.item, this.column.prop);\n }\n\n },\n\n render()\n {\n return (\n <div>\n <span>{ this.input }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldString',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertString(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldBoolean',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertBoolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldDatetime',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertDatetime(this.input, this.column.datetimeFormat, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldOption',\n\n extends: InfoField,\n\n renderOption(value)\n {\n let options = this.column.options;\n\n if ( Any.isFunction(options) ) {\n options = this.column.options(this);\n }\n\n let prop = this.column.optionsValue;\n\n options = Arr.each(options, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let option = Arr.find(options, (item) => {\n return Obj.get(item, prop) == value;\n });\n\n if ( ! option ) {\n return [this.column.emptyText];\n }\n\n return Obj.get(option, this.column.optionsLabel,\n this.column.undefinedText);\n },\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n let input = ! Any.isObject(this.input) ?\n [this.input] : this.input;\n\n return (\n <div>\n <span>{ Arr.each(input, this.ctor('renderOption')) }</span>\n </div>\n );\n }\n\n}\n","import InfoField from \"../info-field.jsx\";\nimport { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInfoFieldImage',\n\n extends: InfoField,\n\n computed: {\n\n preview()\n {\n return Obj.get(this.item, this.column.previewProp);\n }\n\n },\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n let props = {\n fit: 'contain',\n };\n\n return (\n <div>\n <NPreview file={this.preview || this.input} thumb={this.input} {...props} />\n </div>\n );\n }\n\n}\n","import { Obj, Arr, Any, Dom } from \"@kizmann/pico-js\";\n\nconst fileMap = {\n image: [\n 'jpg', 'jpeg', 'gif', 'svg', 'png'\n ],\n video: [\n 'mp4', 'webm', 'mov'\n ],\n font: [\n 'woff', 'ttf', 'otf'\n ],\n text: [\n 'csv', 'txt', 'html'\n ],\n application: [\n 'pdf', 'doc', 'xls'\n ]\n}\n\nexport default {\n\n name: 'NPreview',\n\n props: {\n\n file: {\n default()\n {\n return null;\n }\n },\n\n thumb: {\n default()\n {\n return null;\n }\n },\n\n fit: {\n default()\n {\n return 'cover';\n },\n type: [String]\n },\n\n mime: {\n default()\n {\n return null;\n },\n typre: [String]\n },\n\n preview: {\n default()\n {\n return true;\n },\n typre: [Boolean]\n },\n\n showSrc: {\n default()\n {\n return true;\n },\n typre: [Boolean]\n },\n\n map: {\n default()\n {\n return fileMap;\n },\n type: [Object]\n }\n\n },\n\n computed: {\n\n tempFile()\n {\n return this.file || this.thumb;\n },\n\n tempThumb()\n {\n return this.thumb || this.file;\n },\n\n fileMime()\n {\n return this.getFileMime();\n },\n\n thumbMime()\n {\n return this.getThumbMime();\n },\n\n },\n\n data()\n {\n return {\n lightbox: false, load: false\n };\n },\n\n methods: {\n\n getFileMime(fallback = null)\n {\n let file = Obj.get(this.tempFile, 'name',\n this.tempFile);\n\n if ( Any.isEmpty(file) ) {\n return fallback;\n }\n\n let extension = file.replace(/^.*?\\.([^.?]+)(\\?.*?)?$/,\n '$1');\n\n Obj.each(this.map, (exts, key) => {\n if ( Arr.has(exts, extension) ) fallback = key;\n });\n\n if ( window.resolveVimeo(file) ) {\n fallback = 'video';\n }\n\n if ( window.resolveYoutube(file) ) {\n fallback = 'video';\n }\n\n if ( Any.isString(this.mime) ) {\n fallback = this.mime;\n }\n\n return fallback;\n },\n\n getThumbMime(fallback = null)\n {\n if ( Any.isString(this.mime) ) {\n return this.mime;\n }\n\n let file = Obj.get(this.tempThumb, 'name',\n this.tempThumb);\n\n if ( Any.isEmpty(file) ) {\n return fallback;\n }\n\n let extension = file.replace(/^.*?\\.([^.?]+)(\\?.*?)?$/,\n '$1');\n\n Obj.each(this.map, (exts, key) => {\n if ( Arr.has(exts, extension) ) fallback = key;\n });\n\n return fallback;\n },\n\n showLightbox()\n {\n this.lightbox = true;\n },\n\n },\n\n renderPreview()\n {\n if ( ! this.preview ) {\n return this.ctor('renderFull')();\n }\n\n if ( this.thumbMime === 'image' ) {\n return (<NPreviewImage src={this.tempThumb} />);\n }\n\n let props = {\n type: this.thumbMime,\n showSrc: false,\n }\n\n return (<NPreviewPlain src={this.tempThumb} {...props} />);\n },\n\n renderFull()\n {\n let isObject = Any.isObject(this.tempFile);\n\n if ( this.fileMime === 'image' ) {\n return (<NPreviewImage src={this.tempFile} />);\n }\n\n if ( this.fileMime === 'video' && ! isObject ) {\n return (<NPreviewVideo src={this.tempFile} />);\n }\n\n let props = {\n type: this.thumbMime,\n showSrc: this.showSrc,\n }\n\n return (<NPreviewPlain src={this.tempFile} {...props} />);\n },\n\n renderLightbox()\n {\n if ( ! this.lightbox || ! this.preview ) {\n return null;\n }\n\n let slots = {\n raw: this.ctor('renderFull')\n }\n\n let props = {\n type: 'preview',\n width: '80%',\n height: '90%',\n }\n\n return (<NModal vModel={this.lightbox} {...props} v-slots={slots} />);\n },\n\n render()\n {\n let classList = [\n 'n-preview',\n 'n-preview--' + this.fit\n ];\n\n if ( this.preview ) {\n classList.push('n-clickable');\n }\n\n if ( this.fileMime ) {\n classList.push('n-mime-' + this.fileMime);\n }\n\n let props = {};\n\n if ( this.preview ) {\n props.onClick = this.showLightbox;\n }\n\n let key = btoa(this.tempThumb);\n\n return (\n <div key={key} class={classList} {...props}>\n { [this.ctor('renderPreview')(), this.ctor('renderLightbox')()] }\n </div>\n );\n }\n\n}","import { Any, Obj, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewPlain',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return null;\n }\n },\n\n showSrc: {\n default()\n {\n return true;\n }\n }\n\n },\n\n computed: {\n\n tempSrc()\n {\n return Obj.get(this.src, 'name', this.src);\n },\n\n tempExt()\n {\n let regex = /^.*?\\.([^.?]+)(\\?.*?)?$/;\n\n if ( Any.isEmpty(this.tempSrc) ) {\n return null;\n }\n\n return this.tempSrc.replace(regex, '$1');\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-preview-plain'\n ];\n\n let slots = [];\n\n slots[0] = (\n <li>{ this.type || Locale.trans('plain') }/{ this.tempExt || Locale.trans('none') }</li>\n );\n\n if ( this.showSrc ) {\n slots[1] = (<li>{ this.tempSrc }</li>);\n }\n\n return (\n <div class={classList}>\n <ul>{ slots }</ul>\n </div>\n );\n }\n\n}","import { Obj, Arr, Str, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewImage',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n },\n\n data()\n {\n return {\n load: false, tempSrc: null\n };\n },\n\n beforeMount()\n {\n if ( ! window.ImageCache ) {\n window.ImageCache = [];\n }\n\n\n if ( ! Arr.has(window.ImageCache, this.src) ) {\n this.tempSrc = this.src;\n }\n\n },\n\n mounted()\n {\n this.resolveLoad();\n },\n\n watch: {\n\n 'src': function () {\n this.resolveLoad();\n }\n\n },\n\n methods: {\n\n resolveLoad()\n {\n if ( Arr.has(window.ImageCache, this.src) ) {\n return;\n }\n\n this.tempSrc = null;\n\n if ( Any.isObject(this.src) ) {\n return this.resolveData();\n }\n\n Dom.find(this.$refs.image).loaded(() => {\n\n /**\n * Add image to cache\n */\n Arr.add(window.ImageCache, this.src);\n\n /**\n * Mark image as loaded\n */\n Any.delay(() => this.load = false, 200);\n });\n\n this.laod = true;\n },\n\n resolveData()\n {\n let reader = new FileReader();\n\n reader.onload = () => {\n this.tempSrc = reader.result;\n };\n\n reader.readAsDataURL(this.src);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-preview-image'\n ];\n\n if ( Arr.has(window.ImageCache, this.src) ) {\n classList.push('n-cached');\n }\n\n if ( ! this.load ) {\n classList.push('n-ready');\n }\n\n return (\n <div class={classList}>\n <img ref=\"image\" src={this.tempSrc || this.src} />\n </div>\n );\n }\n\n}","import { Obj, Arr, Str, Any, Dom } from \"@kizmann/pico-js\";\n\nwindow.resolveYoutube = function(url, fallback = null) {\n\n if ( ! Any.isString(url) ) {\n return fallback;\n }\n\n let host = url.match(/^https?:\\/\\/(www\\.)?(youtube\\.com|youtu\\.be)/);\n\n if ( ! host ) {\n return fallback;\n }\n\n let id = url.match(/(\\?v=.*?)(?=&|$)/);\n\n if ( id && id.length === 2 ) {\n return id[0].replace(/^\\?v=/, '');\n }\n\n let path = url.match(/(\\.be\\/.*?)(?=\\?|$)/);\n\n if ( path && path.length === 2 ) {\n return path[0].replace(/^\\.be\\//, '');\n }\n\n let frame = url.match(/(\\/embed\\/)(.*?$)/);\n\n if ( frame && frame.length === 3 ) {\n return frame[0].replace(/^\\/embed\\//, '');\n }\n\n return fallback;\n}\n\nwindow.resolveVimeo = function(url, fallback = null) {\n\n if ( ! Any.isString(url) ) {\n return fallback;\n }\n\n let host = url.match(/^https?:\\/\\/(www\\.|player\\.)?vimeo\\.com/);\n\n if ( ! host ) {\n return fallback;\n }\n\n let path = url.match(/(\\/[0-9]+)(&|$)/);\n\n if ( path && path.length === 3 ) {\n return path[0].replace(/(^\\/|&$)/, '');\n }\n\n return fallback;\n}\n\nexport default {\n\n name: 'NPreviewVideo',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n },\n\n data()\n {\n return {\n provider: 'plain', unique: null, tempSrc: null\n };\n },\n\n mounted()\n {\n this.resolveType();\n },\n\n watch: {\n\n 'src': function () {\n this.resolveType();\n }\n\n },\n\n methods: {\n\n resolveType()\n {\n this.tempSrc = null;\n\n if ( this.resolveYoutube() ) {\n return;\n }\n\n if ( this.resolveVimeo() ) {\n return;\n }\n\n if ( Any.isObject(this.src) ) {\n this.resolveData();\n }\n\n this.provider = 'plain';\n },\n\n resolveData()\n {\n console.log('Coming at some point (blob stream)....');\n },\n\n resolveYoutube()\n {\n let youtube = window.resolveYoutube(this.src);\n\n if ( ! youtube ) {\n return false;\n }\n\n this.provider = 'youtube';\n\n this.$emit('resolve:youtube', this.unique = youtube);\n\n return true;\n },\n\n resolveVimeo()\n {\n let vimeo = window.resolveVimeo(this.src);\n\n if ( ! vimeo ) {\n return false;\n }\n\n this.provider = 'vimeo';\n\n this.$emit('resolve:vimeo', this.unique = vimeo);\n\n return true;\n }\n\n },\n\n renderYoutube()\n {\n let props = {\n src: `https://www.youtube.com/embed/${this.unique}`\n };\n\n return (\n <iframe {...props}></iframe>\n );\n },\n\n renderVimeo()\n {\n let props = {\n src: `https://player.vimeo.com/video/${this.unique}`\n };\n\n return (\n <iframe {...props}></iframe>\n );\n },\n\n renderPlain()\n {\n let src = Obj.get(this.src, 'name', this.src);\n\n let extension = src.replace(/^.*?\\.([^.?]+)(\\?.*?)?$/,\n '$1');\n\n return (\n <video width=\"320\" height=\"240\" controls>\n <source src={this.tempSrc || this.src} type={`video/${extension}`} />\n </video>\n );\n },\n\n render()\n {\n let classList = [\n 'n-preview-video'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('render' + Str.ucfirst(this.provider))() }\n </div>\n );\n }\n\n}","import { Arr, Map, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NMap',\n\n props: {\n\n lat: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n lng: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n zoom: {\n default()\n {\n return 15;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NMap: this\n };\n },\n\n data()\n {\n return { init: false, callbacks: [], tempMap: null };\n },\n\n watch: {\n\n lat()\n {\n Any.delay(() => this.tempMap.focusMarkers(), 100);\n },\n\n lng()\n {\n Any.delay(() => this.tempMap.focusMarkers(), 100);\n }\n\n },\n\n mounted()\n {\n this.tempMap = new Map(this.$el, {\n lat: this.lat, lng: this.lng, zoom: this.zoom\n });\n\n this.init = true;\n\n Arr.each(this.callbacks, (callback) => callback())\n },\n\n methods: {\n\n getMap()\n {\n return this.tempMap;\n },\n\n onMount(callback)\n {\n this.init ? callback() : this.callbacks.push(callback);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-map'\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { UUID, Obj, Num, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NMapMarker',\n\n inject: {\n\n NMap: {\n default: undefined\n }\n\n },\n\n props: {\n\n lat: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n lng: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n drag: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n options: {\n default()\n {\n return { style: 'default' };\n },\n type: [Object]\n },\n\n },\n\n data()\n {\n return {\n id: UUID(), tempMarker: null\n };\n },\n\n methods: {\n\n importMarkerPosition()\n {\n this.tempMarker.marker.setPosition({\n lat: this.lat, lng: this.lng\n });\n },\n\n updateMarkerPosition()\n {\n this.$emit('update:lat', this.tempMarker.marker.getPosition().lat());\n this.$emit('update:lng', this.tempMarker.marker.getPosition().lng());\n },\n\n initializeMarker()\n {\n let options = Obj.assign({\n lat: Num.float(this.lat), lng: Num.float(this.lng), draggable: this.drag\n }, this.options);\n\n if ( ! Any.isEmpty(this.$slots.default) ) {\n options.html = this.$el.innerHTML;\n }\n\n this.tempMarker = this.NMap.getMap().createMarker(this.id, options);\n\n this.tempMarker.marker.addListener('position_changed',\n Any.debounce(this.updateMarkerPosition));\n\n this.tempMarker.marker.addListener('dragstart',\n () => this.$emit('dragstart', this.tempMarker));\n\n this.tempMarker.marker.addListener('dragend',\n () => this.$emit('dragend', this.tempMarker));\n\n this.tempMarker.marker.addListener('mouseover',\n () => this.$emit('mouseenter', this.tempMarker));\n\n this.tempMarker.marker.addListener('mouseout',\n () => this.$emit('mouseleave', this.tempMarker));\n },\n\n setMarkerByAddress(address)\n {\n let successClosure = () => {\n this.NMap.getMap().focusMarkers(null, this.NMap.zoom);\n };\n\n let errorClosure = () => {\n this.Notify(this.trans('Address not found.'), 'danger');\n };\n\n this.NMap.getMap().setMarkerByAddress(this.id, address)\n .then(successClosure, errorClosure);\n }\n\n },\n\n watch: {\n\n lat()\n {\n this.importMarkerPosition();\n },\n\n lng()\n {\n this.importMarkerPosition();\n }\n\n },\n\n beforeMount()\n {\n this.NMap.onMount(this.initializeMarker);\n },\n\n render()\n {\n return (\n <div style=\"display: none;\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFile',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n multiple: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n clearable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n clearableIcon: {\n default()\n {\n return nano.Icons.times;\n },\n type: [String]\n },\n\n buttonText: {\n default()\n {\n return Locale.trans('Select file');\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n },\n\n tempValue()\n {\n if ( Any.isEmpty(this.tempValue) ) {\n this.$refs.input.value = null;\n }\n }\n\n },\n\n methods: {\n\n openContext()\n {\n this.$refs.input.click();\n },\n\n updateFile()\n {\n let tempValue = [\n ...this.$refs.input.files\n ];\n\n if ( ! this.multiple ) {\n tempValue = tempValue[0];\n }\n\n this.$emit('update:modelValue', this.tempValue = tempValue);\n },\n\n clearFile()\n {\n this.$emit('update:modelValue', null);\n }\n\n },\n\n renderInput()\n {\n let props = {\n size: this.size,\n disabled: true,\n iconDisabled: false,\n };\n\n props['onIconClick'] = this.clearFile;\n\n if ( ! this.multiple ) {\n props.modelValue = Obj.get(this.tempValue, 'name');\n }\n\n if ( this.multiple ) {\n props.modelValue = Locale.choice(':count File|:count Files',\n this.tempValue.length);\n }\n\n if ( this.clearable && !Any.isEmpty(this.tempValue) ) {\n props.icon = this.clearableIcon;\n }\n\n return (\n <NInput {...props}>\n { /* Input field for text */ }\n </NInput>\n );\n },\n\n renderButton()\n {\n let props = {\n size: this.size,\n disabled: this.disabled,\n icon: this.icon,\n onClick: this.openContext\n };\n\n return (\n <NButton {...props}>{this.buttonText}</NButton>\n );\n },\n\n renderHidden()\n {\n let props = {\n 'onInput': this.updateFile\n };\n\n return (\n <div class=\"n-file__input\">\n <input ref=\"input\" type=\"file\" multiple={this.multiple} {...props}></input>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-file'\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderInput')() }\n { this.ctor('renderButton')() }\n { this.ctor('renderHidden')() }\n </div>\n )\n }\n\n}\n","import { Num, Arr, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRating',\n\n props: {\n\n modelValue: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n steps: {\n default()\n {\n return 0.5;\n },\n type: [Number]\n },\n\n fixed: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n choice: {\n default()\n {\n return ':count';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n virtualValue()\n {\n return Num.fixed(1 / this.max * this.modelValue * 5, this.fixed);\n },\n\n },\n\n renderStars()\n {\n let stars = [\n 1, 2, 3, 4, 5\n ];\n\n return Arr.each (stars, (rate) => {\n\n let className = 'is-null';\n\n if ( this.virtualValue >= rate - 0.5 ) {\n className = 'is-half';\n }\n\n if ( this.virtualValue >= rate ) {\n className = 'is-full';\n }\n\n return (\n <span class={className}></span>\n );\n });\n },\n\n renderValue()\n {\n let vars = {\n value: Num.format(this.modelValue, '.', '', this.fixed)\n };\n\n if ( this.$slots.default ) {\n return this.$slots.default(vars);\n }\n\n return Locale.choice(this.choice, this.modelValue, vars);\n },\n\n render()\n {\n let classList = [\n 'n-rating',\n 'n-rating--' + this.size,\n 'n-rating--' + this.type\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-rating__stars\">\n {this.ctor('renderStars')()}\n </div>\n <div class=\"n-rating__value\">\n {this.ctor('renderValue')()}\n </div>\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDrawer',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n width: {\n default()\n {\n return '30%';\n },\n type: [String]\n },\n\n title: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'right';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n tempValue()\n {\n this.startRefreshTimeout();\n }\n\n },\n\n provide()\n {\n return {\n NDrawer: this\n };\n },\n\n data()\n {\n return {\n target: null, tempValue: false\n };\n },\n\n mounted()\n {\n this.target = Dom.find(this.selector || this.$el)\n .previous().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).on('keydown',\n this.eventKeydown, this._.uid);\n\n let showDrawer = () => {\n this.tempValue = true;\n };\n\n if ( this.modelValue ) {\n Any.delay(showDrawer, 100);\n }\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n\n Dom.find(document.body).off('keydown',\n null, this._.uid);\n },\n\n methods: {\n\n openModal(force = false, source = null)\n {\n if ( this.tempValue ) {\n return;\n }\n\n if ( this.closable || force ) {\n this.tempValue = true;\n }\n\n this.$emit('update:modelValue', true, source);\n },\n\n closeDrawer(force = false, source = null)\n {\n if ( ! this.tempValue ) {\n return;\n }\n\n if ( ! this.update ) {\n return this.$emit('close', source);\n }\n\n if ( this.closable || force ) {\n this.tempValue = false;\n }\n\n this.$emit('update:modelValue', false, source);\n },\n\n stopRefreshTimeout()\n {\n clearTimeout(this.refresh);\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n startRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n window.zIndex += 1;\n\n Dom.find(this.$el).attr('data-drawer',\n window.zIndex);\n\n Dom.find(this.$el).css({\n 'z-index': window.zIndex\n });\n\n this.queueRefreshTimeout();\n },\n\n queueRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n this.refresh = setTimeout(() => {\n Dom.find(this.$el).addClass('n-ready');\n }, 100);\n },\n\n eventClick(event, el)\n {\n if ( this.disabled || event.which !== 1 ) {\n return;\n }\n\n let result = !! Dom.find(el).closest(this.target);\n\n if ( ! result && ! this.tempValue ) {\n return;\n }\n\n if ( this.tempValue && this.closable ) {\n result = ! Dom.find(el).closest(this.$refs.backdrop);\n }\n\n if ( result === this.tempValue ) {\n return;\n }\n\n if ( ! result ) {\n return this.closeDrawer(false, 'escape');\n }\n\n if ( this.listen ) {\n this.openModal(true, 'selector');\n }\n },\n\n eventKeydown(event, el)\n {\n if ( ! this.tempValue || event.which !== 27 ) {\n return;\n }\n\n let extractIndex = (modal) => {\n return Dom.find(modal).attr('data-drawer');\n };\n\n let indexes = Dom.find('.n-drawer:not(.n-hidden)')\n .each(extractIndex);\n\n let index = Dom.find(this.$el).attr('data-drawer');\n\n if ( Arr.last(indexes.sort()) !== index ) {\n return;\n }\n\n this.closeDrawer(false, 'escape');\n },\n\n },\n\n renderClose()\n {\n if ( ! this.renderClose || ! this.closable ) {\n return null;\n }\n\n let props = {\n onClick: () => this.closeDrawer(false, 'escape')\n };\n\n return (\n <div class=\"n-drawer__close\" {...props}>\n <span class={nano.Icons.times}></span>\n </div>\n );\n },\n\n renderHeader()\n {\n if ( ! this.$slots.header && ! this.title ) {\n return null;\n }\n\n return (\n <div class=\"n-drawer__header\">\n { [this.$slots.header && this.$slots.header({ closeDrawer: this.closeDrawer }) || this.title, this.ctor('renderClose')()] }\n </div>\n );\n },\n\n renderFooter()\n {\n if ( ! this.$slots.footer ) {\n return null;\n }\n\n return (\n <div class=\"n-drawer__footer\">\n { this.$slots.footer({ closeDrawer: this.closeDrawer }) }\n </div>\n );\n },\n\n renderBody()\n {\n let bodyHtml = (\n <NScrollbar ref=\"scrollbar\" relative={true} wrapClass=\"n-drawer__wrap\">\n { this.$slots.default && this.$slots.default({ closeDrawer: this.closeDrawer }) }\n </NScrollbar>\n );\n\n if ( this.$slots.body ) {\n bodyHtml = this.$slots.body({ closeDrawer: this.closeDrawer });\n }\n\n return (\n <div class=\"n-drawer__body\">\n { bodyHtml }\n </div>\n );\n },\n\n renderFrame()\n {\n if ( ! this.tempValue ) {\n return null;\n }\n\n let style = {\n width: this.width\n };\n\n let innerHtml = [\n this.ctor('renderHeader')(),\n this.ctor('renderBody')(),\n this.ctor('renderFooter')(),\n ]\n\n return (\n <div class=\"n-drawer__frame\" style={style}>\n { this.$slots.raw ? this.$slots.raw() : innerHtml }\n </div>\n );\n },\n\n renderBackdrop()\n {\n return (\n <div ref=\"backdrop\" class=\"n-drawer__backdrop\"></div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-drawer',\n 'n-drawer--' + this.size,\n 'n-drawer--' + this.type,\n 'n-drawer--' + this.position\n ];\n\n if ( this.tempValue ) {\n this.queueRefreshTimeout();\n }\n\n if ( this.renderClose ) {\n classList.push('n-closable');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let innerHtml = null;\n\n if ( this.tempValue ) {\n innerHtml = this.ctor('renderFrame')();\n }\n\n return (\n <div class={classList}>\n { [innerHtml, this.ctor('renderBackdrop')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Dom, Locale } from \"@kizmann/pico-js\";\n\nimport CtorMixin from \"./mixins/src/ctor.js\";\nimport CmerMixin from \"./mixins/src/cmer.js\";\nimport CsloMixin from \"./mixins/src/cslo.js\";\n\nimport Alert from \"./alert/index.js\";\nimport Notification from \"./notification/index.js\";\nimport Empty from \"./empty/index.js\";\nimport Config from \"./config/index.js\";\nimport Scrollbar from \"./scrollbar/index.js\";\nimport Virtualscroller from \"./virtualscroller/index.js\";\nimport Draggable from \"./draggable/index.js\";\nimport Loader from \"./loader/index.js\";\nimport Resizer from \"./resizer/index.js\";\nimport Popover from \"./popover/index.js\";\nimport Modal from \"./modal/index.js\";\nimport Button from \"./button/index.js\";\nimport Input from \"./input/index.js\";\nimport InputNumber from \"./input-number/index.js\";\nimport Textarea from \"./textarea/index.js\";\nimport Select from \"./select/index.js\";\nimport Checkbox from \"./checkbox/index.js\";\nimport Radio from \"./radio/index.js\";\nimport Slider from \"./slider/index.js\";\nimport Switch from \"./switch/index.js\";\nimport Confirm from \"./confirm/index.js\";\nimport Cascader from \"./cascader/index.js\";\nimport Datepicker from \"./datepicker/index.js\";\nimport Timepicker from \"./timepicker/index.js\";\nimport Datetimepicker from \"./datetimepicker/index.js\";\nimport Durationpicker from \"./durationpicker/index.js\";\nimport Transfer from \"./transfer/index.js\";\nimport Form from \"./form/index.js\";\nimport Tabs from \"./tabs/index.js\";\nimport Tags from \"./tags/index.js\";\nimport Collapse from \"./collapse/index.js\";\nimport Table from \"./table/index.js\";\nimport Paginator from \"./paginator/index.js\";\nimport Info from \"./info/index.js\";\nimport Preview from \"./preview/index.js\";\nimport Map from \"./map/index.js\";\nimport File from \"./file/index.js\";\nimport Rating from \"./rating/index.js\";\nimport Drawer from \"./drawer/index.js\";\n\nconst NanoImports = [\n Alert,\n Notification,\n Empty,\n Config,\n Scrollbar,\n Virtualscroller,\n Draggable,\n Loader,\n Resizer,\n Popover,\n Modal,\n Button,\n Input,\n InputNumber,\n Textarea,\n Select,\n Checkbox,\n Radio,\n Slider,\n Switch,\n Confirm,\n Cascader,\n Datepicker,\n Timepicker,\n Datetimepicker,\n Durationpicker,\n Transfer,\n Form,\n Tabs,\n Tags,\n Collapse,\n Table,\n Paginator,\n Info,\n Preview,\n Map,\n File,\n Rating,\n Drawer\n];\n\nexport const Icons = {\n handle: 'fa fa-ellipsis-v',\n checked: 'fa fa-check',\n circle: 'fa fa-circle',\n intermediate: 'fa fa-minus',\n clock: 'fa fa-clock',\n calendar: 'fa fa-calendar',\n times: 'fa fa-times',\n primary: 'fa fa-info-circle',\n success: 'fa fa-check-circle',\n warning: 'fa fa-exclamation-circle',\n danger: 'fa fa-times-circle',\n info: 'fa fa-info-circle',\n angleUp: 'fa fa-angle-up',\n angleRight: 'fa fa-angle-right',\n angleDown: 'fa fa-angle-down',\n angleLeft: 'fa fa-angle-left',\n angleDoubleLeft: 'fa fa-angle-double-left',\n angleDoubleRight: 'fa fa-angle-double-right'\n};\n\nexport const Settings = {\n iconPosition: 'before',\n notifySize: 'md',\n notifyPosition: 'bottom-start'\n};\n\nexport function Install(App, Icons = {})\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(Icons, window.nano.Icons);\n window.nano.Settings = Obj.assign(Settings, window.nano.Settings);\n\n Arr.each(NanoImports, (NanoModule) => {\n NanoModule(App);\n });\n\n // require('./chart/index.js'); // Ignore\n // require('./wysiwyg/index.js'); // Ignore\n}\n\nexport const Nano = {\n Icons: Icons, Settings: Settings, Install: Install\n};\n\nwindow.keyMods = [];\n\nDom.find(document).on('keydown', (event) => {\n Arr.add(window.keyMods, event.which);\n});\n\nDom.find(document).on('keyup', (event) => {\n Arr.remove(window.keyMods, event.which);\n});\n\nDom.find(document).on('dragstart', (event) => {\n Arr.add(window.keyMods, event.which);\n});\n\nDom.find(document).on('dragend', (event) => {\n window.keyMods = [];\n});\n\nif ( typeof window.nano === 'undefined' ) {\n window.nano = Nano;\n}\n\nexport default Nano;\n","export default function (App) {\n import(\"./src/alert/alert.js\").then(({ Alert }) => {\n App.config.globalProperties[Alert.alias] = window[Alert.alias] = Alert.handle;\n });\n}\n","export default function (App) {\n import(\"./src/notification/notification.js\").then(({ Notify }) => {\n App.config.globalProperties[Notify.alias] = window[Notify.alias] = Notify.handle;\n });\n}\n","import EmptyIcon from \"./src/empty-icon/empty-icon.jsx\";\n\nexport default function (App) {\n App.component(EmptyIcon.name, EmptyIcon);\n}\n","import NConfig from \"./src/config/config.jsx\";\nimport NConfigNext from \"./src/config/config-next.jsx\";\nimport NBuilder from \"./src/builder/builder.jsx\";\nimport NRefrencePanel from \"./src/reference-panel/reference-panel.jsx\";\nimport NRefrencePicker from \"./src/reference-picker/reference-picker.jsx\";\n\nexport default function(App) {\n App.component(NConfig.name, NConfig);\n App.component(NConfigNext.name, NConfigNext);\n App.component(NBuilder.name, NBuilder);\n App.component(NRefrencePanel.name, NRefrencePanel);\n App.component(NRefrencePicker.name, NRefrencePicker);\n}\n","import Scrollbar from \"./src/scrollbar/scrollbar.jsx\";\n\nexport default function (App) {\n App.component(Scrollbar.name, Scrollbar);\n}","import Virtualscroller from \"./src/virtualscroller/virtualscroller.jsx\";\n\nexport default function (App) {\n App.component(Virtualscroller.name, Virtualscroller);\n}","import Draglist from \"./src/draglist/draglist.jsx\";\nimport DraglistItem from \"./src/draglist-item/draglist-item.jsx\";\nimport Draggrid from \"./src/draggrid/draggrid.jsx\";\nimport DraggridItem from \"./src/draggrid-item/draggrid-item.jsx\";\nimport Dropzone from \"./src/dropzone/dropzone.jsx\";\n\nexport default function (App) {\n App.component(Draglist.name, Draglist);\n App.component(DraglistItem.name, DraglistItem);\n App.component(Draggrid.name, Draggrid);\n App.component(DraggridItem.name, DraggridItem);\n App.component(Dropzone.name, Dropzone);\n}","import Loader from \"./src/loader/loader.jsx\";\n\nexport default function (App) {\n App.component(Loader.name, Loader);\n}\n","import Resizer from \"./src/resizer/resizer.jsx\";\n\nexport default function (App) {\n App.component(Resizer.name, Resizer);\n}\n","import Popover from \"./src/popover/popover.jsx\";\nimport PopoverGroup from \"./src/popover-group/popover-group.jsx\";\nimport PopoverOption from \"./src/popover-option/popover-option.jsx\";\n\nexport default function (App) {\n App.component(Popover.name, Popover);\n App.component(PopoverGroup.name, PopoverGroup);\n App.component(PopoverOption.name, PopoverOption);\n}","import Modal from \"./src/modal/modal.jsx\";\n\nexport default function (App) {\n App.component(Modal.name, Modal);\n}\n","import Button from \"./src/button/button.jsx\";\nimport ButtonGroup from \"./src/button-group/button-group.jsx\";\n\nexport default function (App) {\n App.component(Button.name, Button);\n App.component(ButtonGroup.name, ButtonGroup);\n}\n","import Input from \"./src/input/input.jsx\";\n\nexport default function (App) {\n App.component(Input.name, Input);\n}\n","import InputNumber from \"./src/input-number/input-number.jsx\";\n\nexport default function (App) {\n App.component(InputNumber.name, InputNumber);\n}","import Textarea from \"./src/textarea/textarea.jsx\";\n\nexport default function (App) {\n App.component(Textarea.name, Textarea);\n}","import Select from \"./src/select/select.jsx\";\nimport SelectOption from \"./src/select-option/select-option.jsx\";\n\nexport default function (App) {\n App.component(Select.name, Select);\n App.component(SelectOption.name, SelectOption);\n}\n","import Checkbox from \"./src/checkbox/checkbox.jsx\";\nimport CheckboxGroup from \"./src/checkbox-group/checkbox-group.jsx\";\n\nexport default function (App) {\n App.component(Checkbox.name, Checkbox);\n App.component(CheckboxGroup.name, CheckboxGroup);\n}","import NRadio from \"./src/radio/radio.jsx\";\nimport NRadioGroup from \"./src/radio-group/radio-group.jsx\";\n\nexport default function (App) {\n App.component(NRadio.name, NRadio);\n App.component(NRadioGroup.name, NRadioGroup);\n}\n","import Slider from \"./src/slider/slider.jsx\";\n\nexport default function (App) {\n App.component(Slider.name, Slider);\n}","import Switch from \"./src/switch/switch.jsx\";\n\nexport default function (App) {\n App.component(Switch.name, Switch);\n}","import Confirm from \"./src/confirm/confirm.jsx\";\n\nexport default function (App) {\n App.component(Confirm.name, Confirm);\n}\n","import CascaderPanel from \"./src/cascader-panel/cascader-panel.jsx\";\nimport Cascader from \"./src/cascader/cascader.jsx\";\n\nexport default function (App) {\n App.component(CascaderPanel.name, CascaderPanel);\n App.component(Cascader.name, Cascader);\n}","import DatepickerPanel from \"./src/datepicker-panel/datepicker-panel.jsx\";\nimport Datepicker from \"./src/datepicker/datepicker.jsx\";\n\nexport default function (App) {\n App.component(DatepickerPanel.name, DatepickerPanel);\n App.component(Datepicker.name, Datepicker);\n}","import TimepickerPanel from \"./src/timepicker-panel/timepicker-panel.jsx\";\nimport Timepicker from \"./src/timepicker/timepicker.jsx\";\n\nexport default function (App) {\n App.component(TimepickerPanel.name, TimepickerPanel);\n App.component(Timepicker.name, Timepicker);\n}","import Datetimepicker from \"./src/datetimepicker/datetimepicker.jsx\";\n\nexport default function (App) {\n App.component(Datetimepicker.name, Datetimepicker);\n}","import Durationpicker from \"./src/durationpicker/durationpicker.jsx\";\n\nexport default function (App) {\n App.component(Durationpicker.name, Durationpicker);\n}","import Transfer from \"./src/transfer/transfer.jsx\";\n\nexport default function (App) {\n App.component(Transfer.name, Transfer);\n}","import Form from \"./src/form/form.jsx\";\nimport FormGroup from \"./src/form-group/form-group.jsx\";\nimport FormItem from \"./src/form-item/form-item.jsx\";\nimport FormMenu from \"./src/form-menu/form-menu.jsx\";\nimport FormFrame from \"./src/form-frame/form-frame.jsx\";\nimport FormFrameItem from \"./src/form-frame-item/form-frame-item.jsx\";\n\nexport default function (App) {\n App.component(Form.name, Form);\n App.component(FormGroup.name, FormGroup);\n App.component(FormItem.name, FormItem);\n App.component(FormFrame.name, FormFrame);\n App.component(FormFrameItem.name, FormFrameItem);\n App.component(FormMenu.name, FormMenu);\n}","import Tabs from \"./src/tabs/tabs.jsx\";\nimport TabsItem from \"./src/tabs-item/tabs-item.jsx\";\n\nexport default function (App) {\n App.component(Tabs.name, Tabs);\n App.component(TabsItem.name, TabsItem);\n}","import Tags from \"./src/tags/tags.jsx\";\nimport TagsItem from \"./src/tags-item/tags-item.jsx\";\n\nexport default function (App) {\n App.component(Tags.name, Tags);\n App.component(TagsItem.name, TagsItem);\n}","import Collapse from \"./src/collapse/collapse.jsx\";\nimport CollapseItem from \"./src/collapse-item/collapse-item.jsx\";\n\nexport default function (App) {\n App.component(Collapse.name, Collapse);\n App.component(CollapseItem.name, CollapseItem);\n}","import Table from \"./src/table/table.jsx\";\nimport TableColumn from \"./src/table-column/table-column.jsx\";\nimport TableCellString from \"./src/table-cell/types/table-cell-string.jsx\";\nimport TableCellBoolean from \"./src/table-cell/types/table-cell-boolean.jsx\";\nimport TableCellDatetime from \"./src/table-cell/types/table-cell-datetime.jsx\";\nimport TableCellOption from \"./src/table-cell/types/table-cell-option.jsx\";\nimport TableCellImage from \"./src/table-cell/types/table-cell-image.jsx\";\nimport TableCellMatrix from \"./src/table-cell/types/table-cell-matrix.jsx\";\nimport TableCellSelect from \"./src/table-cell/types/table-cell-select.jsx\";\nimport TableFilterString from \"./src/table-filter/types/table-filter-string.jsx\";\nimport TableFilterBoolean from \"./src/table-filter/types/table-filter-boolean.jsx\";\nimport TableFilterDatetime from \"./src/table-filter/types/table-filter-datetime.jsx\";\nimport TableFilterOption from \"./src/table-filter/types/table-filter-option.jsx\";\n\n\nexport default function (App) {\n App.component(Table.name, Table);\n App.component(TableColumn.name, TableColumn);\n App.component(TableCellString.name, TableCellString);\n App.component(TableCellBoolean.name, TableCellBoolean);\n App.component(TableCellDatetime.name, TableCellDatetime);\n App.component(TableCellOption.name, TableCellOption);\n App.component(TableCellImage.name, TableCellImage);\n App.component(TableCellMatrix.name, TableCellMatrix);\n App.component(TableCellSelect.name, TableCellSelect);\n App.component(TableFilterString.name, TableFilterString);\n App.component(TableFilterBoolean.name, TableFilterBoolean);\n App.component(TableFilterDatetime.name, TableFilterDatetime);\n App.component(TableFilterOption.name, TableFilterOption);\n}","import Paginator from \"./src/paginator/paginator.jsx\";\n\nexport default function (App) {\n App.component(Paginator.name, Paginator);\n}","import Info from \"./src/info/info.jsx\";\nimport InfoColumn from \"./src/info-column/info-column.jsx\";\nimport InfoFieldString from \"./src/info-field/types/info-field-string.jsx\";\nimport InfoFieldBoolean from \"./src/info-field/types/info-field-boolean.jsx\";\nimport InfoFieldDatetime from \"./src/info-field/types/info-field-datetime.jsx\";\nimport InfoFieldOption from \"./src/info-field/types/info-field-option.jsx\";\nimport InfoFieldImage from \"./src/info-field/types/info-field-image.jsx\";\n\nexport default function (App) {\n App.component(Info.name, Info);\n App.component(InfoColumn.name, InfoColumn);\n App.component(InfoFieldString.name, InfoFieldString);\n App.component(InfoFieldBoolean.name, InfoFieldBoolean);\n App.component(InfoFieldDatetime.name, InfoFieldDatetime);\n App.component(InfoFieldOption.name, InfoFieldOption);\n App.component(InfoFieldImage.name, InfoFieldImage);\n}","import Preview from \"./src/preview/preview.jsx\";\nimport PreviewPlain from \"./src/preview-plain/preview-plain.jsx\";\nimport PreviewImage from \"./src/preview-image/preview-image.jsx\";\nimport PreviewVideo from \"./src/preview-video/preview-video.jsx\";\n\nexport default function (App) {\n App.component(Preview.name, Preview);\n App.component(PreviewPlain.name, PreviewPlain);\n App.component(PreviewImage.name, PreviewImage);\n App.component(PreviewVideo.name, PreviewVideo);\n}\n\n","import Map from \"./src/map/map.jsx\";\nimport MapMarker from \"./src/map-marker/map-marker.jsx\";\n\nexport default function (App) {\n App.component(Map.name, Map);\n App.component(MapMarker.name, MapMarker);\n}\n\n","import File from \"./src/file/file.jsx\";\n\nexport default function (App) {\n App.component(File.name, File);\n}\n\n","import Rating from \"./src/rating/rating.jsx\";\n\nexport default function (App) {\n App.component(Rating.name, Rating);\n}\n","import Modal from \"./src/drawer/drawer.jsx\";\n\nexport default function (App) {\n App.component(Modal.name, Modal);\n}\n"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__55__","__WEBPACK_EXTERNAL_MODULE__122__","inProgress","dataWebpackPrefix","window","NanoBuilderTypes","Locale","trans","NanoBuilderIndexies","childs","props","modelValue","for","type","onValue","offValue","onType","options","NanoPrototypeTypes","offType","size","NanoPrototypeSizes","disabled","NanoPrototypeBools","default","clearValue","clearable","min","max","Number","MAX_VALUE","stepSize","precision","placeholder","format","decimals","classList","link","square","icon","iconPosition","nativeType","click","label","iconDisabled","iconClick","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","m","d","definition","key","o","Object","defineProperty","enumerable","get","f","e","chunkId","Promise","all","keys","reduce","promises","u","g","globalThis","this","Function","obj","prop","prototype","hasOwnProperty","call","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","i","length","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","fn","setTimeout","bind","target","head","appendChild","r","Symbol","toStringTag","value","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","installedChunks","j","installedChunkData","promise","resolve","reject","error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","some","id","chunkLoadingGlobal","ctor","_this","fallback","arguments","Obj","$options","split","_len","args","Array","_key","apply","cmer","attrsList","Any","isString","isArray","Arr","each","isPlain","assign","$attrs","cslo","slot","$slots","findIndex","Comment","String","Boolean","inline","render","_createVNode","config","scope","tempValue","methods","solveAwait","isEmpty","match","has","$$scope","$$value","solveValue","isFunction","concat","solveEvent","$configRefs","$refs","_len2","_key2","solveContent","_len3","_key3","$render","prepareValue","veModel","path","deepSet","inputClosure","closure","val","shift","set","watch","renderLayer","source","_this2","setup","component","vIf","vShow","vAwait","class","$on","$props","style","display","model","map","input","content","slots","resolved","resolveComponent","h","extraValue","sempValue","getString","final","propAwait","result","state","getState","propExists","exists","solveInput","sources","$scope","$model","$extra","$global","toPropKey","splits","Str","ucfirst","lcfirst","join","toEventKey","cb","solveContext","_this3","console","getProp","getInput","isNull","setInput","renderSetup","alias","_this4","defaultsBind","binds","events","updateKey","_this5","_isSlot","toString","_isVNode","NanoBuilderPropType","NanoBuilderPropCode","NanoBuilderProps","renderDemo","renderExport","init","demo","collapse","safevar","normalizeModel","mounted","exportJson","JSON","stringify","clone","matches","exportExecutable","normalizeChild","order","vals","child","applyProps","_objectSpread","except","builder","buildProps","first","_typeof","UUID","getOriginalValue","safevalue","btoa","getSafeValue","string","getRealValue","realvalue","code","number","parse","atob","original","changeElement","update","newKey","unset","k","changeAlias","changeType","bindValue","el","only","sey","isObject","$nextTick","addProp","removeProp","collapseElement","toggle","addElement","removeElement","moveupElement","_ref","close","MIN_VALUE","sub","Math","replacement","find","movedownElement","_ref2","renderTools","rootProps","collapseProps","href","addProps","removeProps","moveupProps","movedownProps","_mergeProps","renderProp","_this6","group","$data","index","typeProps","keyProps","allowCreate","optionsLabel","codeProps","valueInputProps","valueHtml","_resolveComponent","$event","fallbackProps","minRows","autoRows","_createTextVNode","renderProps","_slot","_this7","elementProps","aliasProps","plainProps","renderElement","_this8","builderHtml","renderBuilder","_this9","items","sort","v","renderBody","renderHead","_slot2","_slot3","_this0","addHtml","demoProps","demoHtml","renderOutput","_slot4","_this1","renderFunction","_ref3","configProps","width","height","expanded","selected","modelTree","buildTree","scopeTree","ref","submitItem","$emit","selectItem","expandItem","renderLeaf","renderTree","childItems","childHtml","renderItem","renderModel","modelHtml","renderScope","scopeHtml","modal","updateValue","renderModal","modalProps","panelProps","renderInput","inputProps","provide","NScrollbar","relative","fixture","allowNative","overflowY","overflowX","offsetY","offsetX","framerate","wrapClass","computed","touch","navigator","msMaxTouchPoints","mousedown","mousemove","mouseup","native","beforeMount","adaptScrollBehavior","bindAdaptHeight","bindAdaptWidth","passive","uid","_","Event","onResize","onUpdate","Dom","on","onScroll","updated","passedHeight","passedWidth","$el","addClass","beforeUnmount","unbindAdaptHeight","unbindAdaptWidth","unbind","off","scrollTo","x","y","delay","onScrollTo","scrollTop","scrollLeft","scrollIntoView","selector","onScrollIntoView","outerHeight","clientHeight","offsetTop","outerWidth","clientWidth","offsetLeft","$dom","make","appendTo","body","offsetWidth","offsetHeight","remove","adaptScrollHeight","innerHeight","scrollHeight","virtualHeight","barHeight","maxHeight","ceil","heightRatio","vbar","css","hasVtrack","removeClass","adaptScrollPosition","adaptScrollWidth","innerWidth","scrollWidth","virtualWidth","barWidth","maxWidth","widthRatio","hbar","hasHtrack","scroll","top","left","vbarTop","transform","hbarLeft","adaptHeight","cacheChildEl","cacheWindwoEl","windowCache","onSizechange","spacer","refreshHeight","setInterval","clearInterval","adaptWidth","resizeTimer","refreshWidth","fire","$inner","actual","getTouchEvent","touches","changedTouches","onVbarMousedown","which","stopPropagation","onVbarMousemove","onVbarMouseup","clientY","offset","onHbarMousedown","onHbarMousemove","onHbarMouseup","clientX","WIN","vbarProps","_defineProperty","hbarProps","DEBUG_NVSCROLL","inject","NDraggable","itemHeight","itemWidth","renderNode","deathzone","threshold","useKeys","start","end","grid","buffer","load","updateRender","bindAdaptScroll","unbindAdaptScroll","refreshScroll","onScrollupdate","isIndexRendered","scrollbar","scrollToIndex","onScrollToIndex","total","floor","targetTop","clearState","async","refreshDriver","inner","queue","timer","Date","now","to","bufferItems","round","isEqual","passed","topOffset","uniqueProp","renderRows","slice","renderGridRows","counter","chunk","renderGrid","chunks","renderItems","empty","totalHeight","dragMods","NDragCounter","_createClass","_classCallCheck","count","html","choice","dataTransfer","setData","setDragImage","keyMods","attr","DragCounter","NDragIndicator","parent","safezone","strategy","rect","getBoundingClientRect","hasClass","show","hide","item","NDraghandler","rootNode","_this$bindDragstart","frame","DragIndicator","DragCache","bindDragstart","_toConsumableArray","onDragenterRoot","onDragoverRoot","onDragleaveRoot","onDragendRoot","onDragdropRoot","bindDragend","bindDragdrop","preventDefault","closest","cacheNodes","frames","allowDrop","rainbow","node","moveNodes","cache","allowGroups","dragcount","dropNodes","tempSelected","removeNode","unlinkNodes","removeNodes","isSelected","virtuals","route","targetNode","isInSelf","cascade","childNodes","unbindNode","$handle","handle","onDragstartNode","onDragenterNode","onDragoverNode","onDragleaveNode","onDragendNode","onDragdropNode","moveNodesMany","moveNodesOne","insertNode","moveNodesRoot","transformDrop","moveNodesInto","moveNodesBefore","moveNodesAfter","eventName","filter","childProp","disableMove","targetRoute","children","splice","merge","reduceItem","Num","depth","cascades","unique","tempCascade","virtual","last","DEBUG_NDLIST","draggable","current","lazyload","showEmptyIcon","itemOffset","scrollTopOnChange","renderCurrent","renderHandle","renderSelect","renderExpand","allowSelect","allowDrag","keyEvents","highlightTimeout","modifier","visible","highlight","firstSelected","lastSelected","tempCurrent","tempExpanded","drag","watchModifierDown","watchModifierUp","virtualscroller","bindRoot","$watch","watchSelected","deep","refreshVirtuals","unbindRoot","filterVirtuals","add","updateNode","findVirtual","log","contains","getIndex","getCurrentIndex","isDraggable","canDrag","isHighlight","highlightNode","refresh","recursive","scrollToHighlight","isCurrent","setCurrent","setRawCurrent","setNextCurrent","setPrevCurrent","reset","syncCurrent","isDisabled","canSelect","hasChildren","getChildren","isExpanded","expandCurrent","isTotalSelected","isInterSelected","toggleSingleNode","toggleRangeNode","indexies","reversed","selectAll","row","unselectAll","bindKeydown","onKeydown","unbindKeydown","renderEmpty","onMouseenter","onMouseleave","NDraggableItem","required","bindNode","copy","copyNode","onClick","onDblclick","renderSpacer","nano","Icons","angleRight","checked","NDropzone","NLoader","minimum","debounce","tempVisible","applyTimer","timing","startTimer","restartTimer","minWidth","position","resizerWidth","sizeFixed","updateWidth","bindSizechange","forceWidth","unmounted","unbindSizechange","flex","updateHandle","onLeftMousedown","onLeftMouseup","onLeftMousemove","scrollX","targetWidth","frameStyle","onRightMousedown","onRightMouseup","onRightMousemove","NPopover","listen","trigger","scrollClose","multiClose","prevent","refreshVisible","previous","append","onHover","onContext","onExit","onCloseEvent","active","open","pause","unpause","stopRefreshInterval","startRefreshInterval","passedOffset","updatePosition","isSameOffset","isSameSize","passedSize","getTargetHorizontal","targetRect","windowRect","posY","posX","center","inverse","broken","getTargetVertical","getTargetOffset","zIndex","isScrollClose","keyCode","raw","header","footer","viewBody","tempSize","focus","image","imagePosition","clickClose","renderImage","renderIcon","renderContent","title","closable","renderClose","startRefreshTimeout","NModal","eventClick","eventKeydown","openModal","force","closeModal","stopRefreshTimeout","queueRefreshTimeout","backdrop","indexes","times","renderHeader","renderFooter","bodyHtml","renderFrame","innerHtml","renderBackdrop","NForm","NFormItem","inheritAttrs","deepDisabled","onIconClick","onInput","onSubmit","onFocus","onBlur","getValue","clear","getDisplayValue","nextStep","isNaN","toFixed","onNextDown","nextTimeout","nextInterval","onNextUp","prevStep","onPrevDown","prevTimeout","prevInterval","onPrevUp","regex","RegExp","renderPrev","onMousedown","renderNext","renderClear","maxRows","maxLength","eventInput","rows","currentRows","lazy","multiple","emptyText","undefinedText","collapseText","optionsValue","optionsDisabled","custom","elements","element","tempClear","search","searched","generateOptions","searchOptions","NSelect","scrollToClosest","focusInput","$value","$index","option","tempLabel","addOption","removeOption","resetInput","onFocusInput","popover","onInputInput","onKeydownInput","createOrToggle","selectPrev","selectNext","searchRegex","toggleOption","denyUpdate","getOptionLabel","newIndex","scrollToCurrent","createOption","virtualbar","select","renderLabelClear","renderLabelAngle","angleDown","renderLabelItem","labelHtml","renderLabelCollapse","firstHtml","renderLabelItems","renderMultiple","isEmptyValue","isNumber","inputHtml","renderSingle","modelLabel","renderDisplay","displayHtml","emptyHtml","values","renderLazyOption","isMultipleActive","isSingleActive","renderLazyItems","renderPopover","onClose","renderOptions","valueProp","labelProp","toggleItem","renderOption","NCheckboxGroup","allowUncheck","intermediate","global","tempComputed","globalChecked","tempChecked","tempIntermediate","globalIntermediate","tempDisabled","globalDisabled","isChecked","addCheckbox","removeCheckbox","check","checkCheckbox","uncheck","uncheckCheckbox","eventShiftClick","shiftCheckbox","eventLocalClick","shiftKey","toggleCheckbox","eventGlobalClick","toggleAll","updateFromGroup","renderCheckbox","interHtml","checkHtml","renderLabel","align","checkbox","emit","checkboxes","uncheckAll","checkAll","NRadioGroup","addRadio","removeRadio","checkRadio","renderRadio","radio","range","steps","labels","fixmin","fixmax","minmax","getPseudoValue","setModelValue","getValPos","fixed","getValStyle","getBarPos","getBarWidth","getBarStyle","getClosestValue","diff","step","abs","onMouseup","onMousemove","relativeWidth","closestValue","stepMin","stepMax","handleProps","renderHandles","renderBar","barProps","renderSwitch","confirmText","abortText","buttonSize","abort","confirm","renderAction","hover","disabledProp","tempHover","clearCascader","hoverItem","onSelect","clickTimer","lastclick","hoverTimer","fireSelectItem","renderCascade","renderList","onCascaderInput","onCascaderHover","onPopoverInput","itemLabel","arrive","clearArrive","depart","clearDepart","minDate","maxDate","monthPanels","weekdays","months","yearsGrid","tempCache","getYears","monthsGrid","getMonths","Now","tempArrive","tempDepart","tempView","tempRanger","cacheArrive","cacheDepart","gotoDate","gotoMonth","gotoYear","patchDate","resetTime","applyTime","patchMonth","printRange","patchYear","patchRange","renderToolbarPrev","angleLeft","renderToolbarNext","renderToolbarMonth","monthsHtml","month","addMonths","renderToolbarYear","yearsHtml","year","renderToolbar","next","renderDateItem","equalDate","valid","isNotBeforeMin","after","isNotAfterMax","before","renderRangeDateItem","viewMode","isTempValid","between","arriveFirst","renderDate","legendHtml","day","getDatesGrid","panelHtml","prevMonth","nextMonth","renderMonthItem","equal","renderMonth","prevYear","nextYear","renderYearItem","renderYear","prevDecade","nextDecade","placeholderArrive","placeholderDepart","rangeSeparator","boundary","displayFormat","clearDatepicker","clearRangeDatepicker","clearSingleDatepicker","onValueInput","moment","isValid","date","onArriveInput","onDepartInput","onDatepickerInput","onDatepickerDepart","onDatepickerArrive","initialDate","renderRange","arriveProps","departProps","hoursInterval","minutesInterval","secondsInterval","hoursGrid","getHours","minutesGrid","getMinutes","secondsGrid","getSeconds","eventSelect","scrollbars","renderHourItem","hour","renderHourPanel","renderMinuteItem","minute","renderMinutePanel","renderSecondItem","second","renderSecondPanel","clearTimepicker","onTimepickerInput","renderPanel","clearDatetimepicker","renderPanels","renderDatePanel","renderTimePanel","minDuration","maxDuration","negativeText","days","hours","minutes","seconds","editValue","findPattern","text","pattern","replaceAll","humanizeValue","digitizeValue","dmatch","hmatch","mmatch","smatch","clearDurationpicker","onValueChange","onDurationpickerInput","onChange","optionProps","scrollProps","sourceLabel","targetLabel","sourceChecked","selectedSource","tempSource","sourceIntermediate","targetChecked","selectedTarget","tempTarget","targetIntermediate","sourceSearch","searchPattern","targetSearch","moveItemsTarget","moveItemsSource","moveRowTarget","moveRowSource","moveToSource","moveToTarget","updateSelectedSource","updateSelectedTarget","renderSourceSelect","renderSourceTitle","counterHtml","renderSourceHeader","renderSourceSearch","renderSourceBody","onMove","renderTargetSelect","renderTargetTitle","renderTargetHeader","renderTargetSearch","renderTargetBody","renderMoveSource","renderMoveTarget","dom","form","errors","ignore","forceChange","forceErrors","groups","blocked","ready","emitChange","resetChange","registerGroup","unregisterGroup","is","addItem","removeItem","prevState","nextState","attrs","kind","tooltip","tooltipPosition","collapseGroup","renderCollapse","renderText","textHtml","action","renderTooltip","NTabs","NTabsItem","tooltipWindow","conditional","conditionOn","conditionOff","enabled","toggleCondition","$input","gotoInput","changeTab","renderCondition","renderError","loop","bindInviewEvent","menu","inview","inviewY","renderMenu","renderMenus","NFrame","resize","itemResize","itemScrollbar","renderDiv","renderResizer","float","addTab","tab","$forceUpdate","removeTab","getTab","updateEvent","currentTab","sorted","renderHeaderIndicator","tabs","preload","keep","renderHeaderIcon","renderHeaderLabel","NTags","tags","addTag","removeTag","color","NCollapse","showTab","hideTab","toggleTab","NCollapseItem","dragger","renderHeaderAngle","angle","showDelay","NTable","sortProp","sortDir","closeFilterOnEnter","tempVisibleProps","tempSortProp","tempSortDir","tempFilter","tempFilterProps","makeVisibleProps","detectVisible","addColumn","column","removeColumn","getColumnIndex","getColumnVisiblity","getColumnSorted","getColumnFilter","filterProp","property","getColumnFiltered","detectVisibity","intersect","extract","sortByColumn","dir","replaceFilter","filters","resetFilter","refreshCurrent","columns","renderContext","defaultRender","draggableHtml","matrixDisabled","breakpoint","previewProp","matrix","matrixProp","fluid","fixedWidth","trueText","falseText","datetimeFormat","matrixValues","NTableColumn","tempWidth","changedStates","sortDirection","flexBasis","renderHeadLabel","renderHeadSort","renderHeadFilter","angleHtml","setFirstState","firstState","extends","TableCell","convertString","convertBoolean","convertDatetime","preview","fit","toggleMatrix","toggleSelect","itemList","currentMatrix","combine","finder","canReset","canApply","getFilterClone","mountFilter","getFilterProp","getDefaultFilter","applyFilter","clearFilter","renderForm","renderApply","renderReset","TableFilter","operator","li","nl","eq","ne","lt","gt","in","ni","page","limit","limitOptions","maxPages","layout","pages","tempLimit","pageOptions","tempPage","forcePage","updatePaginate","paginate","onPrevPage","onPageInput","onNextPage","onFirstPage","onLastPage","onLimitInput","renderLimit","renderCount","renderGoto","renderFirst","angleDoubleLeft","renderLast","angleDoubleRight","renderPage","renderPages","renderSlot","view","className","syncEvent","bindSyncEvent","unbindSyncEvent","setValue","NInfo","infoHtml","InfoField","fileMap","video","font","application","file","thumb","mime","typre","showSrc","tempFile","tempThumb","fileMime","getFileMime","thumbMime","getThumbMime","lightbox","extension","exts","resolveVimeo","resolveYoutube","showLightbox","renderPreview","renderFull","renderLightbox","tempSrc","tempExt","ImageCache","resolveLoad","resolveData","loaded","laod","reader","FileReader","readAsDataURL","provider","resolveType","youtube","vimeo","renderYoutube","renderVimeo","renderPlain","lat","lng","zoom","NMap","callbacks","tempMap","focusMarkers","Map","callback","getMap","onMount","tempMarker","importMarkerPosition","marker","setPosition","updateMarkerPosition","getPosition","initializeMarker","innerHTML","createMarker","addListener","setMarkerByAddress","address","then","Notify","clearableIcon","buttonText","openContext","updateFile","files","clearFile","renderButton","renderHidden","virtualValue","renderStars","rate","renderValue","vars","NDrawer","closeDrawer","NanoImports","App","Alert","globalProperties","EmptyIcon","NConfig","NConfigNext","NBuilder","NRefrencePanel","NRefrencePicker","Scrollbar","Virtualscroller","Draglist","DraglistItem","Draggrid","DraggridItem","Dropzone","Loader","Resizer","Popover","PopoverGroup","PopoverOption","Modal","Button","ButtonGroup","Input","InputNumber","Textarea","Select","SelectOption","Checkbox","CheckboxGroup","NRadio","Slider","Switch","Confirm","CascaderPanel","Cascader","DatepickerPanel","Datepicker","TimepickerPanel","Timepicker","Datetimepicker","Durationpicker","Transfer","Form","FormGroup","FormItem","FormFrame","FormFrameItem","FormMenu","Tabs","TabsItem","Tags","TagsItem","Collapse","CollapseItem","Table","TableColumn","TableCellString","TableCellBoolean","TableCellDatetime","TableCellOption","TableCellImage","TableCellMatrix","TableCellSelect","TableFilterString","TableFilterBoolean","TableFilterDatetime","TableFilterOption","Paginator","Info","InfoColumn","InfoFieldString","InfoFieldBoolean","InfoFieldDatetime","InfoFieldOption","InfoFieldImage","Preview","PreviewPlain","PreviewImage","PreviewVideo","MapMarker","File","Rating","circle","clock","calendar","primary","success","warning","danger","info","angleUp","Settings","notifySize","notifyPosition","Install","pi","CtorMixin","CmerMixin","CsloMixin","NanoModule","Nano"],"sourceRoot":""}
|
1
|
+
{"version":3,"file":"nano-ui.js","mappings":"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","sources":["webpack://Nano/webpack/universalModuleDefinition","webpack://Nano/webpack/runtime/load script","webpack://Nano/./src/config/src/builder/prototypes/durationpicker/n-durationpicker.js","webpack://Nano/./src/config/src/builder/prototypes/switch/n-switch.js","webpack://Nano/external umd {\"root\":\"pi\",\"commonjs2\":\"@kizmann/pico-js\",\"commonjs\":\"@kizmann/pico-js\",\"amd\":\"@kizmann/pico-js\"}","webpack://Nano/./src/config/src/builder/prototypes/rating/n-rating.js","webpack://Nano/./src/config/src/builder/prototypes/input-number/n-input-number.js","webpack://Nano/external umd {\"root\":\"Vue\",\"commonjs2\":\"vue\",\"commonjs\":\"vue\",\"amd\":\"vue\"}","webpack://Nano/./src/config/src/builder/prototypes/html/span.js","webpack://Nano/./src/config/src/builder/prototypes/html/div.js","webpack://Nano/./src/config/src/builder/prototypes/tabs/n-tabs.js","webpack://Nano/./src/config/src/builder/prototypes/button/n-button.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form-group.js","webpack://Nano/./src/config/src/builder/prototypes/slider/n-slider.js","webpack://Nano/./src/config/src/builder/prototypes/datepicker/n-datepicker.js","webpack://Nano/./src/config/src/builder/prototypes/button/n-button-group.js","webpack://Nano/./src/config/src/builder/prototypes/datetimepicker/n-datetimepicker.js","webpack://Nano/./src/config/src/builder/prototypes/select/n-select.js","webpack://Nano/./src/config/src/builder/prototypes/table/n-table-column.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form.js","webpack://Nano/./src/config/src/builder/prototypes/radio/n-radio-group.js","webpack://Nano/./src/config/src/builder/prototypes/input/n-input.js","webpack://Nano/./src/config/src/builder/prototypes/table/n-table.js","webpack://Nano/./src/config/src/builder/prototypes/tags/n-tags.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form-item.js","webpack://Nano/./src/config/src/builder/prototypes/html/nano.js","webpack://Nano/./src/config/src/builder/prototypes/checkbox/n-checkbox.js","webpack://Nano/./src/config/src/builder/prototypes/tabs/n-tabs-item.js","webpack://Nano/./src/config/src/builder/prototypes/empty/n-empty.js","webpack://Nano/./src/config/src/builder/prototypes/tags/n-tags-item.js","webpack://Nano/./src/config/src/builder/prototypes/checkbox/n-checkbox-group.js","webpack://Nano/./src/config/src/builder/prototypes/cascader/n-cascader.js","webpack://Nano/./src/config/src/builder/prototypes/loader/n-loader.js","webpack://Nano/./src/config/src/builder/prototypes/timepicker/n-timepicker.js","webpack://Nano/./src/config/src/builder/prototypes/modal/n-modal.js","webpack://Nano/./src/config/src/builder/prototypes/confirm/n-confirm.js","webpack://Nano/./src/config/src/builder/prototypes/radio/n-radio.js","webpack://Nano/./src/config/src/builder/prototypes/transfer/n-transfer.js","webpack://Nano/webpack/bootstrap","webpack://Nano/webpack/runtime/define property getters","webpack://Nano/webpack/runtime/ensure chunk","webpack://Nano/webpack/runtime/get javascript chunk filename","webpack://Nano/webpack/runtime/global","webpack://Nano/webpack/runtime/hasOwnProperty shorthand","webpack://Nano/webpack/runtime/make namespace object","webpack://Nano/webpack/runtime/publicPath","webpack://Nano/webpack/runtime/jsonp chunk loading","webpack://Nano/./src/mixins/src/ctor.js","webpack://Nano/./src/mixins/src/cmer.js","webpack://Nano/./src/mixins/src/cslo.js","webpack://Nano/./src/empty/src/empty-icon/empty-icon.jsx","webpack://Nano/./src/config/src/config/config.jsx","webpack://Nano/./src/config/src/config/config-next.jsx","webpack://Nano/./src/config/src/builder/builder.jsx","webpack://Nano/./src/config/src/reference-panel/reference-panel.jsx","webpack://Nano/./src/config/src/reference-picker/reference-picker.jsx","webpack://Nano/./src/scrollbar/src/scrollbar/scrollbar.jsx","webpack://Nano/./src/virtualscroller/src/virtualscroller/virtualscroller.jsx","webpack://Nano/./src/draggable/src/draghandler/draghandler.js","webpack://Nano/./src/draggable/src/draglist/draglist.jsx","webpack://Nano/./src/draggable/src/draglist-item/draglist-item.jsx","webpack://Nano/./src/draggable/src/draggrid/draggrid.jsx","webpack://Nano/./src/draggable/src/draggrid-item/draggrid-item.jsx","webpack://Nano/./src/draggable/src/dropzone/dropzone.jsx","webpack://Nano/./src/loader/src/loader/loader.jsx","webpack://Nano/./src/resizer/src/resizer/resizer.jsx","webpack://Nano/./src/popover/src/popover/popover.jsx","webpack://Nano/./src/popover/src/popover-group/popover-group.jsx","webpack://Nano/./src/popover/src/popover-option/popover-option.jsx","webpack://Nano/./src/modal/src/modal/modal.jsx","webpack://Nano/./src/button/src/button/button.jsx","webpack://Nano/./src/button/src/button-group/button-group.jsx","webpack://Nano/./src/input/src/input/input.jsx","webpack://Nano/./src/input-number/src/input-number/input-number.jsx","webpack://Nano/./src/textarea/src/textarea/textarea.jsx","webpack://Nano/./src/select/src/select/select.jsx","webpack://Nano/./src/select/src/select-option/select-option.jsx","webpack://Nano/./src/checkbox/src/checkbox/checkbox.jsx","webpack://Nano/./src/checkbox/src/checkbox-group/checkbox-group.jsx","webpack://Nano/./src/radio/src/radio/radio.jsx","webpack://Nano/./src/radio/src/radio-group/radio-group.jsx","webpack://Nano/./src/slider/src/slider/slider.jsx","webpack://Nano/./src/switch/src/switch/switch.jsx","webpack://Nano/./src/confirm/src/confirm/confirm.jsx","webpack://Nano/./src/cascader/src/cascader-panel/cascader-panel.jsx","webpack://Nano/./src/cascader/src/cascader/cascader.jsx","webpack://Nano/./src/datepicker/src/datepicker-panel/datepicker-panel.jsx","webpack://Nano/./src/datepicker/src/datepicker/datepicker.jsx","webpack://Nano/./src/timepicker/src/timepicker-panel/timepicker-panel.jsx","webpack://Nano/./src/timepicker/src/timepicker/timepicker.jsx","webpack://Nano/./src/datetimepicker/src/datetimepicker/datetimepicker.jsx","webpack://Nano/./src/durationpicker/src/durationpicker/durationpicker.jsx","webpack://Nano/./src/transfer/src/transfer/transfer.jsx","webpack://Nano/./src/form/src/form/form.jsx","webpack://Nano/./src/form/src/form-group/form-group.jsx","webpack://Nano/./src/form/src/form-item/form-item.jsx","webpack://Nano/./src/form/src/form-menu/form-menu.jsx","webpack://Nano/./src/form/src/form-frame/form-frame.jsx","webpack://Nano/./src/form/src/form-frame-item/form-frame-item.jsx","webpack://Nano/./src/tabs/src/tabs/tabs.jsx","webpack://Nano/./src/tabs/src/tabs-item/tabs-item.jsx","webpack://Nano/./src/tags/src/tags/tags.jsx","webpack://Nano/./src/tags/src/tags-item/tags-item.jsx","webpack://Nano/./src/collapse/src/collapse/collapse.jsx","webpack://Nano/./src/collapse/src/collapse-item/collapse-item.jsx","webpack://Nano/./src/table/src/table/table.jsx","webpack://Nano/./src/table/src/table-column/table-column.jsx","webpack://Nano/./src/table/src/table-cell/table-cell.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-string.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-boolean.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-datetime.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-option.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-image.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-matrix.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-select.jsx","webpack://Nano/./src/table/src/table-filter/table-filter.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-string.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-boolean.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-datetime.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-option.jsx","webpack://Nano/./src/paginator/src/paginator/paginator.jsx","webpack://Nano/./src/info/src/info/info.jsx","webpack://Nano/./src/info/src/info-column/info-column.jsx","webpack://Nano/./src/info/src/info-field/info-field.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-string.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-boolean.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-datetime.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-option.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-image.jsx","webpack://Nano/./src/preview/src/preview/preview.jsx","webpack://Nano/./src/preview/src/preview-plain/preview-plain.jsx","webpack://Nano/./src/preview/src/preview-image/preview-image.jsx","webpack://Nano/./src/preview/src/preview-video/preview-video.jsx","webpack://Nano/./src/map/src/map/map.jsx","webpack://Nano/./src/map/src/map-marker/map-marker.jsx","webpack://Nano/./src/file/src/file/file.jsx","webpack://Nano/./src/rating/src/rating/rating.jsx","webpack://Nano/./src/drawer/src/drawer/drawer.jsx","webpack://Nano/./src/index.js","webpack://Nano/./src/alert/index.js","webpack://Nano/./src/notification/index.js","webpack://Nano/./src/empty/index.js","webpack://Nano/./src/config/index.js","webpack://Nano/./src/scrollbar/index.js","webpack://Nano/./src/virtualscroller/index.js","webpack://Nano/./src/draggable/index.js","webpack://Nano/./src/loader/index.js","webpack://Nano/./src/resizer/index.js","webpack://Nano/./src/popover/index.js","webpack://Nano/./src/modal/index.js","webpack://Nano/./src/button/index.js","webpack://Nano/./src/input/index.js","webpack://Nano/./src/input-number/index.js","webpack://Nano/./src/textarea/index.js","webpack://Nano/./src/select/index.js","webpack://Nano/./src/checkbox/index.js","webpack://Nano/./src/radio/index.js","webpack://Nano/./src/slider/index.js","webpack://Nano/./src/switch/index.js","webpack://Nano/./src/confirm/index.js","webpack://Nano/./src/cascader/index.js","webpack://Nano/./src/datepicker/index.js","webpack://Nano/./src/timepicker/index.js","webpack://Nano/./src/datetimepicker/index.js","webpack://Nano/./src/durationpicker/index.js","webpack://Nano/./src/transfer/index.js","webpack://Nano/./src/form/index.js","webpack://Nano/./src/tabs/index.js","webpack://Nano/./src/tags/index.js","webpack://Nano/./src/collapse/index.js","webpack://Nano/./src/table/index.js","webpack://Nano/./src/paginator/index.js","webpack://Nano/./src/info/index.js","webpack://Nano/./src/preview/index.js","webpack://Nano/./src/map/index.js","webpack://Nano/./src/file/index.js","webpack://Nano/./src/rating/index.js","webpack://Nano/./src/drawer/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@kizmann/pico-js\"), require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@kizmann/pico-js\", \"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Nano\"] = factory(require(\"@kizmann/pico-js\"), require(\"vue\"));\n\telse\n\t\troot[\"Nano\"] = factory(root[\"pi\"], root[\"Vue\"]);\n})(self, (__WEBPACK_EXTERNAL_MODULE__55__, __WEBPACK_EXTERNAL_MODULE__122__) => {\nreturn ","var inProgress = {};\nvar dataWebpackPrefix = \"Nano:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDurationpicker'] = Locale.trans('NDurationpicker');\n\nwindow.NanoBuilderIndexies['NDurationpicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDurationpicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSwitch'] = Locale.trans('NSwitch');\n\nwindow.NanoBuilderIndexies['NSwitch'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSwitch']['props'] = {\n modelValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n onValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n offValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n onType: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n offType: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n size: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeSizes\n },\n disabled: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n};","module.exports = __WEBPACK_EXTERNAL_MODULE__55__;","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRating'] = Locale.trans('NRating');\n\nwindow.NanoBuilderIndexies['NRating'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRating']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NInputNumber'] = Locale.trans('NInputNumber');\n\nwindow.NanoBuilderIndexies['NInputNumber'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NInputNumber']['props'] = {\n modelValue: {\n for: ['binds', 'props'], default: null, type: 'Number'\n },\n clearValue: {\n for: ['binds', 'props'], default: null, type: 'Number'\n },\n clearable: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n min: {\n for: ['binds', 'props'], default: 0, type: 'Number'\n },\n max: {\n for: ['binds', 'props'], default: Number.MAX_VALUE, type: 'Number'\n },\n stepSize: {\n for: ['binds', 'props'], default: 1, type: 'Number'\n },\n precision: {\n for: ['binds', 'props'], default: 0, type: 'Number'\n },\n size: {\n for: ['binds', 'props'], default: 'md', type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], default: 'primary', type: 'String', options: window.NanoPrototypeTypes\n },\n disabled: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n placeholder: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n format: {\n for: ['binds', 'props'], default: ':count', type: 'String'\n },\n decimals: {\n for: ['binds', 'props'], default: '.', type: 'String'\n },\n};","module.exports = __WEBPACK_EXTERNAL_MODULE__122__;","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['span'] = Locale.trans('span');\n\nwindow.NanoBuilderIndexies['span'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['span']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['div'] = Locale.trans('div');\n\nwindow.NanoBuilderIndexies['div'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['div']['props'] = {\n classList: {\n type: 'String'\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTabs'] = Locale.trans('NTabs');\n\nwindow.NanoBuilderIndexies['NTabs'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTabs']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NButton'] = Locale.trans('NButton');\n\nwindow.NanoBuilderIndexies['NButton'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NButton']['props'] = {\n size: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n link: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n square: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n disabled: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n icon: {\n for: ['binds', 'props'], type: 'String'\n },\n iconPosition: {\n for: ['binds', 'props'], type: 'String', options: ['before', 'after']\n },\n nativeType: {\n for: ['binds', 'props'], type: 'String', options: ['button', 'a', 'div']\n },\n click: {\n for: ['on'], type: 'String'\n }\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NFormGroup'] = Locale.trans('NFormGroup');\n\nwindow.NanoBuilderIndexies['NFormGroup'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NFormGroup']['props'] = {\n label: {\n for: ['binds', 'props'], type: 'String'\n }\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSlider'] = Locale.trans('NSlider');\n\nwindow.NanoBuilderIndexies['NSlider'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSlider']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDatepicker'] = Locale.trans('NDatepicker');\n\nwindow.NanoBuilderIndexies['NDatepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDatepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NButtonGroup'] = Locale.trans('n-button-group');\n\nwindow.NanoBuilderIndexies['NButtonGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NButtonGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDatetimepicker'] = Locale.trans('NDatetimepicker');\n\nwindow.NanoBuilderIndexies['NDatetimepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDatetimepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSelect'] = Locale.trans('NSelect');\n\nwindow.NanoBuilderIndexies['NSelect'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSelect']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTableColumn'] = Locale.trans('NTableColumn');\n\nwindow.NanoBuilderIndexies['NTableColumn'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTableColumn']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NForm'] = Locale.trans('NForm');\n\nwindow.NanoBuilderIndexies['NForm'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NForm']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRadioGroup'] = Locale.trans('NRadioGroup');\n\nwindow.NanoBuilderIndexies['NRadioGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRadioGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NInput'] = Locale.trans('NInput');\n\nwindow.NanoBuilderIndexies['NInput'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NInput']['props'] = {\n modelValue: {\n for: ['binds', 'props'], default: null, type: 'String'\n },\n size: {\n for: ['binds', 'props'], default: 'md', type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], default: 'primary', type: 'String', options: window.NanoPrototypeTypes\n },\n disabled: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n placeholder: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n nativeType: {\n for: ['binds', 'props'], default: 'text', type: 'String', options: ['text', 'password', 'email']\n },\n icon: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n iconPosition: {\n for: ['binds', 'props'], default: 'before', type: 'String', options: ['before', 'after']\n },\n iconDisabled: {\n for: ['binds', 'props'], default: null, type: 'Boolean', options: window.NanoPrototypeBools\n },\n iconClick: {\n for: ['on'], type: 'String'\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTable'] = Locale.trans('NTable');\n\nwindow.NanoBuilderIndexies['NTable'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTable']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTags'] = Locale.trans('NTags');\n\nwindow.NanoBuilderIndexies['NTags'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTags']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NFormItem'] = Locale.trans('NFormItem');\n\nwindow.NanoBuilderIndexies['NFormItem'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NFormItem']['props'] = {\n label: {\n for: ['binds', 'props'], type: 'String'\n }\n};","window.NanoPrototypeSizes = [\n 'xs', 'sm', 'md', 'lg'\n];\n\nwindow.NanoPrototypeTypes = [\n 'primary', 'secondary', 'success', 'warning', 'danger', 'info'\n];\n\nwindow.NanoPrototypeBools = [\n 'true', 'false'\n];","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCheckbox'] = Locale.trans('n-checkbox');\n\nwindow.NanoBuilderIndexies['NCheckbox'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCheckbox']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTabsItem'] = Locale.trans('NTabsItem');\n\nwindow.NanoBuilderIndexies['NTabsItem'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTabsItem']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NEmpty'] = Locale.trans('NEmpty');\n\nwindow.NanoBuilderIndexies['NEmpty'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NEmpty']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTagsItem'] = Locale.trans('NTagsItem');\n\nwindow.NanoBuilderIndexies['NTagsItem'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTagsItem']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCheckboxGroup'] = Locale.trans('NCheckboxGroup');\n\nwindow.NanoBuilderIndexies['NCheckboxGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCheckboxGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCascader'] = Locale.trans('n-cascader');\n\nwindow.NanoBuilderIndexies['NCascader'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCascader']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NLoader'] = Locale.trans('NLoader');\n\nwindow.NanoBuilderIndexies['NLoader'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NLoader']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTimepicker'] = Locale.trans('NTimepicker');\n\nwindow.NanoBuilderIndexies['NTimepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTimepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NModal'] = Locale.trans('NModal');\n\nwindow.NanoBuilderIndexies['NModal'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NModal']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NConfirm'] = Locale.trans('n-confirm');\n\nwindow.NanoBuilderIndexies['NConfirm'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NConfirm']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRadio'] = Locale.trans('NRadio');\n\nwindow.NanoBuilderIndexies['NRadio'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRadio']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTransfer'] = Locale.trans('NTransfer');\n\nwindow.NanoBuilderIndexies['NTransfer'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTransfer']['props'] = {\n //\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".nano-ui.js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\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};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkNano\"] = self[\"webpackChunkNano\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import { Arr, Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n ctor(key, fallback = null)\n {\n let ctor = Obj.get(this.$options, key.split('.'), -1);\n\n // if ( ctor === -1 ) {\n // ctor = Obj.get(this.$vnode.componentOptions.Ctor,\n // Arr.merge(['options'], key.split('.')), -1);\n // }\n\n if ( ctor === -1 ) {\n ctor = fallback;\n }\n\n if ( typeof ctor !== 'function' ) {\n return ctor;\n }\n\n return (...args) => ctor.apply(this, args);\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n cmer(classList)\n {\n let attrsList = {};\n\n if ( Any.isString(classList) ) {\n attrsList[classList] = true;\n }\n\n if ( Any.isArray(classList) ) {\n Arr.each(classList, (value) => attrsList[value] = true);\n }\n\n if ( Any.isPlain(classList) ) {\n Obj.assign(attrsList, classList);\n }\n\n if ( Any.isString(this.$attrs.class) ) {\n attrsList[this.$attrs.class] = true;\n }\n\n if ( Any.isArray(this.$attrs.class) ) {\n Arr.each(this.$attrs.class, (value) => attrsList[value] = true);\n }\n\n if ( Any.isPlain(this.$attrs.class) ) {\n Obj.assign(attrsList, this.$attrs.class);\n }\n\n return attrsList;\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport { Comment } from \"vue\";\n\nexport default {\n\n cslo(slot = 'default', props = {})\n {\n if ( ! this.$slots[slot] ) {\n return false;\n }\n\n return this.$slots[slot](props).findIndex((o) => {\n return o.type !== Comment;\n }) !== -1;\n }\n\n}\n","export default {\n\n name: 'NEmptyIcon',\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n inline: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-empty-icon',\n 'n-empty-icon--' + this.size,\n 'n-empty-icon--' + this.type\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.inline ) {\n classList.push('n-inline');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-empty-icon__frame\">\n { /* Icon */ }\n </div>\n <div class=\"n-empty-icon__text\">\n { this.$slots.default && this.$slots.default() }\n </div>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NConfig',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n config: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return this;\n },\n type: [Object]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n solveAwait(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( Any.isString(value) && value.match(/\\$\\$scope/) ) {\n return Obj.has({ $$scope: this.scope }, value);\n }\n\n if ( Any.isString(value) && value.match(/\\$\\$value/) ) {\n return Obj.has({ $$value: this.tempValue }, value);\n }\n\n return false;\n },\n\n solveValue(value, ...args)\n {\n if ( Any.isFunction(value) ) {\n return value.apply(this.scope, [this.tempValue, ...args]);\n }\n\n if ( Any.isString(value) && value.match(/^\\$\\$scope/) ) {\n return Obj.get({ $$scope: this.scope }, value);\n }\n\n if ( Any.isString(value) && value.match(/^\\$\\$value/) ) {\n return Obj.get({ $$value: this.tempValue }, value);\n }\n\n return value;\n },\n\n solveEvent(value)\n {\n let scope = Obj.assign(this.scope, {\n $configRefs: this.$refs\n });\n\n if ( Any.isFunction(value) ) {\n return (...args) => value.apply(scope, args);\n }\n\n return value;\n },\n\n solveContent(value, ...args)\n {\n if ( Any.isFunction(value) ) {\n return value.apply(this.scope, [this.$render, this.tempValue, ...args]);\n }\n\n return value;\n },\n\n prepareValue(veModel)\n {\n if ( ! veModel.path ) {\n return veModel.fallback;\n }\n\n if ( ! Obj.has(this.tempValue, veModel.path) ) {\n this.deepSet(this.tempValue, veModel.path, veModel.fallback);\n }\n\n return Obj.get(this.tempValue, veModel.path);\n },\n\n inputClosure(veModel, closure = null)\n {\n if ( ! veModel.path ) {\n return () => null;\n }\n\n return (value) => {\n\n if ( closure ) {\n closure(value, this.tempValue);\n }\n\n this.deepSet(this.tempValue, veModel.path, value);\n };\n },\n\n deepSet(obj, keys, val)\n {\n keys = (typeof keys === 'string') ?\n keys.split('.') : keys;\n\n let key = keys.shift();\n\n if ( obj[key] === undefined || obj[key] === null ) {\n Obj.set(obj, key, {});\n }\n\n if ( keys.length === 0 ) {\n return Obj.set(obj, key, val);\n }\n\n return this.deepSet(obj[key], keys, val);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n renderLayer(source)\n {\n if ( ! Any.isPlain(source) ) {\n return source;\n }\n\n return Arr.each(source, (setup, component) => {\n\n component = component.replace(/:.*?$/, '');\n\n // Set setup defaults\n setup = Obj.assign({\n vIf: true, vShow: true, vAwait: null, class: null, $on: {}, $props: {}, $attrs: {}\n }, setup);\n\n if ( ! this.solveAwait(setup.vAwait) ) {\n return null;\n }\n\n if ( ! this.solveValue(setup.vIf) ) {\n return null;\n }\n\n if ( ! this.solveValue(setup.vShow) ) {\n setup.style = { display: 'none' };\n }\n\n // Build default model\n let veModel = Obj.assign({\n prop: 'modelValue', fallback: null\n }, setup.model);\n\n // Delete model from setup\n delete setup.model;\n\n // Normalize props\n setup.$props = this.solveValue(setup.$props);\n\n // Normalize class\n setup.class = this.solveValue(setup.class);\n\n // Solve props\n Obj.map(setup.$props, (value) => this.solveValue(value));\n\n // Normalize attrs\n setup.$attrs = this.solveValue(setup.$attrs);\n\n // Solve attrs\n Obj.map(setup.$attrs, (value) => this.solveValue(value));\n\n // Solve events\n Obj.map(setup.$on, (value) => this.solveEvent(value));\n\n if ( veModel.path ) {\n\n // Override input event\n setup['onUpdate:modelValue'] = this.inputClosure(veModel, setup.$on.input);\n\n // Set prop in value or get fallback\n setup.$props[veModel.prop] = this.prepareValue(veModel);\n }\n\n Obj.assign(setup, setup.$props);\n delete setup.$props;\n\n Obj.assign(setup, setup.$attrs);\n delete setup.$attrs;\n\n Obj.assign(setup, setup.$on);\n delete setup.$on;\n\n let content = setup.content;\n delete setup.content;\n\n delete setup.vIf;\n delete setup.vShow;\n delete setup.vAwait;\n\n // Solve content if is functional\n let slots = this.solveContent(content, setup);\n\n let domtypes = [\n 'div', 'span', 'a'\n ];\n\n let resolved = component;\n\n if ( ! Arr.has(domtypes, resolved) ) {\n resolved = resolveComponent(component);\n }\n\n return h(resolved, setup, this.ctor('renderLayer')(slots));\n });\n },\n\n render()\n {\n return this.ctor('renderLayer')(this.config)[0];\n }\n\n}","import { Arr, Obj, Str, Any } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NConfigNext',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n extraValue: {\n default()\n {\n return null;\n },\n type: [Object]\n },\n\n config: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue, sempValue: this.extraValue || this.modelValue\n };\n },\n\n watch: {\n\n modelValue: function (value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n extraValue: function (value) {\n if ( value !== this.sempValue ) {\n this.sempValue = value;\n }\n }\n\n },\n\n methods: {\n\n getString(value)\n {\n let final = value.replace(/^@/, '')\n .replace(/^\\\\@/, '@');\n\n\n\n if ( value.match(/^@/) ) {\n return this.trans(final);\n }\n\n return final;\n },\n\n propAwait(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Any.isArray(value) ) {\n value = [value];\n }\n\n let result = Arr.each(value, (state) => {\n return this.getState(state, true);\n });\n\n return ! Arr.has(result, false);\n },\n\n propExists(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Any.isArray(value) ) {\n value = [value];\n }\n\n let result = Arr.each(value, (state) => {\n return this.getState(state, false);\n });\n\n return ! Arr.has(result, false);\n },\n\n getState(value, exists = true)\n {\n if ( Any.isFunction(value) ) {\n return !! this.solveInput(value);\n }\n\n if ( ! Any.isString(value) ) {\n return !! value;\n }\n\n if ( ! value.match(/(\\$scope|\\$model|\\$global)/) ) {\n return !! value;\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n if ( exists ) {\n return Obj.get(sources, value, undefined) === undefined;\n }\n\n return !! Obj.get(sources, value);\n },\n\n toPropKey(value)\n {\n let splits = value.replace(/^!/, '').split('-');\n\n value = Arr.each(splits, (split) => {\n return Str.ucfirst(split);\n });\n\n return Str.lcfirst(value.join(''));\n },\n\n toEventKey(value)\n {\n if ( ! value.match(/^on/) ) {\n value = 'on-' + value;\n }\n\n let splits = value.split('-');\n\n value = Arr.each(splits, (split) => {\n return Str.ucfirst(split);\n });\n\n return Str.lcfirst(value.join(''));\n },\n\n solveInput(cb, fallback)\n {\n return cb.call(this.scope, this.tempValue, fallback);\n },\n\n solveContext(cb)\n {\n if ( ! Any.isFunction(cb) ) {\n return () => console.error('Raw suffix (!) only allowed on functions');\n }\n\n return (...args) => cb.call(this.scope, ...args);\n },\n\n getProp(key, value)\n {\n if ( key.match(/^!/) ) {\n return this.solveContext(value);\n }\n\n if ( Any.isFunction(value) ) {\n return this.solveInput(value);\n }\n\n if ( ! Any.isString(value) ) {\n return value;\n }\n\n if ( ! value.match(/(\\$scope|\\$model|\\$global)/) ) {\n return this.getString(value);\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n let result = Obj.get(sources, value.replace(/^!+/, ''));\n\n if ( value.match(/^!!\\$/) ) {\n result = Any.isEmpty(result);\n }\n\n if ( value.match(/^!\\$/) ) {\n result = Any.isEmpty(result);\n }\n\n return result;\n },\n\n getInput(prop, fallback)\n {\n if ( Any.isFunction(prop) ) {\n return this.solveInput(prop, fallback);\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n if ( ! Any.isNull(fallback) && Obj.get(sources, prop, -1337) === -1337 ) {\n Obj.set(sources, prop, fallback);\n }\n\n return Obj.get(sources, prop);\n },\n\n setInput(prop, value)\n {\n if ( Any.isFunction(prop) ) {\n return console.error('NConfigNew: Bind with function is not allowed!');\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n Obj.set(sources, prop, value);\n }\n\n },\n\n renderSetup(setup, alias)\n {\n if ( ! Any.isPlain(setup) ) {\n return setup;\n }\n\n if ( ! this.propExists(setup['vIf']) ) {\n return null;\n }\n\n if ( ! this.propAwait(setup['vAwait']) ) {\n return null;\n }\n\n let defaults = {\n binds: {}, props: {}, events: {}, content: {}\n };\n\n let defaultsBind = {\n value: '', fallback: null\n };\n\n setup = Obj.assign(defaults, setup);\n\n let binds = {};\n\n Obj.each(setup['binds'], (value, key) => {\n\n if ( Any.isString(value) ) {\n value = { value: value };\n }\n\n binds[key] = Obj.assign(defaultsBind, value);\n });\n\n let events = {};\n\n Obj.each(setup['events'], (value, key) => {\n events[this.toEventKey(key)] = this.solveContext(value);\n });\n\n let props = {};\n\n Obj.each(setup['props'], (value, key) => {\n props[this.toPropKey(key)] = this.getProp(key, value);\n });\n\n props = Obj.assign(props, events);\n\n Obj.each(binds, (value, key) => {\n\n let updateKey = 'onUpdate:' + key;\n\n props[this.toEventKey(updateKey)] = (input) => {\n this.setInput(value.value, input);\n };\n\n props[this.toPropKey(key)] = this.getInput(value.value,\n value.fallback);\n });\n\n let component = alias.replace(/:.*?$/, '');\n\n if ( !Arr.has(['div', 'p'], component) ) {\n component = resolveComponent(component);\n }\n\n if ( Any.isEmpty(component) ) {\n return null;\n }\n\n if ( !this.propExists(setup['vShow']) ) {\n props.style = \"display: none;\";\n }\n\n let render = () => Arr.each(setup.content, (value, key) => {\n return this.ctor('renderSetup')(value, key);\n });\n\n if ( Any.isFunction(setup.content) ) {\n render = () => setup.content.apply(this.scope);\n }\n\n if ( Any.isString(setup.content) ) {\n render = () => this.getString(setup.content);\n }\n\n return h(component, props, { default: render });\n },\n\n render()\n {\n return Arr.each(this.config, (value, key) => this.ctor('renderSetup')(value, key));\n }\n\n}","import { Arr, Dom, Any, Locale, Obj, UUID, Num } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderPropType = {\n 'root': Locale.trans('Root'),\n 'binds': Locale.trans('Bind'),\n 'props': Locale.trans('Property'),\n 'attrs': Locale.trans('Attribute'),\n 'on': Locale.trans('Event'),\n};\n\nwindow.NanoBuilderPropCode = {\n 'string': Locale.trans('String'),\n 'number': Locale.trans('Number'),\n 'boolean': Locale.trans('Boolean'),\n 'object': Locale.trans('Object'),\n 'function': Locale.trans('Function'),\n};\n\nwindow.NanoBuilderProps = {\n classList: {\n for: ['root', 'attrs', 'props'], type: 'String'\n },\n vIf: {\n for: ['root'], type: 'String'\n },\n vShow: {\n for: ['root'], type: 'String'\n },\n};\n\nwindow.NanoBuilderTypes = {\n //\n};\n\nwindow.NanoBuilderIndexies = {\n //\n};\n\n// DOM elements\nrequire('./prototypes/html/nano');\nrequire('./prototypes/html/div');\nrequire('./prototypes/html/span');\n\n// Nano elements\nrequire('./prototypes/button/n-button');\nrequire('./prototypes/button/n-button-group');\nrequire('./prototypes/cascader/n-cascader');\nrequire('./prototypes/checkbox/n-checkbox');\nrequire('./prototypes/checkbox/n-checkbox-group');\nrequire('./prototypes/confirm/n-confirm');\nrequire('./prototypes/datepicker/n-datepicker');\nrequire('./prototypes/datetimepicker/n-datetimepicker');\nrequire('./prototypes/durationpicker/n-durationpicker');\nrequire('./prototypes/empty/n-empty');\nrequire('./prototypes/form/n-form');\nrequire('./prototypes/form/n-form-group');\nrequire('./prototypes/form/n-form-item');\nrequire('./prototypes/input/n-input');\nrequire('./prototypes/input-number/n-input-number');\nrequire('./prototypes/loader/n-loader');\nrequire('./prototypes/modal/n-modal');\nrequire('./prototypes/radio/n-radio');\nrequire('./prototypes/radio/n-radio-group');\nrequire('./prototypes/rating/n-rating');\nrequire('./prototypes/select/n-select');\nrequire('./prototypes/slider/n-slider');\nrequire('./prototypes/switch/n-switch');\nrequire('./prototypes/table/n-table');\nrequire('./prototypes/table/n-table-column');\nrequire('./prototypes/tabs/n-tabs');\nrequire('./prototypes/tabs/n-tabs-item');\nrequire('./prototypes/tags/n-tags');\nrequire('./prototypes/tags/n-tags-item');\nrequire('./prototypes/timepicker/n-timepicker');\nrequire('./prototypes/transfer/n-transfer');\n\nexport default {\n\n name: 'NBuilder',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n renderDemo: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderExport: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n init: false, demo: false, collapse: [], safevar: this.normalizeModel(this.modelValue)\n };\n },\n\n watch: {\n modelValue: function () {\n this.safevar = this.normalizeModel(this.modelValue)\n }\n },\n\n mounted()\n {\n this.init = true;\n },\n\n methods: {\n\n exportJson(value)\n {\n return JSON.stringify(Obj.clone(value), null, 4).replace(/\"!FUNC:(.*?):FUNC!\"/g, (matches) => {\n return matches.replace(/^\"!FUNC:/, '').replace(/:FUNC!\"$/, '').replace(/\\\\\"/, '\"').replace(/\\\\n/g, \"\\n\");\n });\n },\n\n exportExecutable(value)\n {\n return new Function(`return ${this.exportJson(value)};`)();\n },\n\n normalizeModel(model)\n {\n let result = {};\n\n Obj.each(model, (value, key) => {\n result[key] = Obj.assign(this.normalizeChild(value), {\n order: (Any.vals(result).length + 1) * 100\n });\n });\n\n return result;\n },\n\n normalizeChild(child)\n {\n let result = this.applyProps(null, {\n ...Obj.except(child, ['content']), content: {}, builder: this.buildProps(child),\n });\n\n if ( Any.isArray(child.content) ) {\n child.content = Arr.first(child.content);\n }\n\n if ( ! Any.isPlain(child.content) && ! Any.isString(child.content) ) {\n child.content = {};\n }\n\n result.builder[\"null\"] = {\n type: typeof child.content\n }\n\n if (Any.isPlain(child.content)) {\n Obj.each(child.content || {}, (value, key) => {\n\n if ( ! key.match(':') ) {\n key += ':' + UUID();\n }\n\n result['content'][key] = Obj.assign(this.normalizeChild(value), {\n order: (Any.vals(result['content']).length + 1) * 100\n });\n });\n } else {\n result.content = child.content;\n }\n\n return result;\n },\n\n getOriginalValue(prop)\n {\n let safevalue = prop.value;\n\n if ( typeof prop.value === 'function' ) {\n safevalue = btoa(\"!FUNC:\" + prop.value.toString() + \":FUNC!\");\n }\n\n return safevalue;\n },\n\n getSafeValue(prop)\n {\n let safevalue = '';\n\n if ( typeof prop.value === 'string' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'boolean' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'number' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'object' ) {\n safevalue = JSON.stringify(prop.value);\n }\n\n if ( typeof prop.value === 'function' ) {\n safevalue = btoa(\"!FUNC:\" + prop.value.toString() + \":FUNC!\");\n }\n\n return safevalue;\n },\n\n getRealValue(prop)\n {\n let realvalue = '';\n\n if ( prop.code === 'string' ) {\n realvalue = Any.string(prop.value);\n }\n\n if ( prop.code === 'boolean' ) {\n realvalue = Any.boolean(prop.value);\n }\n\n if ( prop.code === 'number' ) {\n realvalue = Any.number(prop.value, 0);\n }\n\n if ( prop.code === 'object' ) {\n realvalue = JSON.parse(prop.value);\n }\n\n if ( prop.code === 'function' ) {\n realvalue = atob(prop.original);\n }\n\n return realvalue;\n },\n\n changeElement(key, update)\n {\n if ( Any.isEmpty(update) ) {\n return;\n }\n\n let newKey = key.replace(/^(.*?)([^\\.]+):([^\\.]+)$/, `$1${update}:$3`);\n\n let value = Obj.get(this, key, {});\n\n Obj.unset(this, key);\n Obj.set(this, newKey, value);\n\n this.collapse = Arr.each(this.collapse, (k) => {\n return k.replace(key, newKey);\n });\n },\n\n changeAlias(key, update)\n {\n if ( Any.isEmpty(update) ) {\n return;\n }\n\n let newKey = key.replace(/^(.*?)([^\\.]+):([^\\.]+)$/, `$1$2:${update}`);\n\n let value = Obj.get(this, key, {});\n\n Obj.unset(this, key);\n Obj.set(this, newKey, value);\n\n this.collapse = Arr.each(this.collapse, (k) => {\n return k.replace(key, newKey);\n });\n },\n\n changeType(key, type)\n {\n let value = Obj.get(this, key, {});\n\n let original = Obj.get(value, 'builder.null.type');\n\n if ( type === 'object' ) {\n value.content = {};\n }\n\n if ( type === 'string' ) {\n value.content = '';\n }\n\n Obj.set(value, 'builder.null.type', typeof value.content);\n },\n\n applyProps(key = null, value = {})\n {\n if ( ! Any.isEmpty(key) ) {\n value = Obj.get(this, key, {});\n }\n\n let reset = [\n 'vIf', 'vShow', 'classList', 'vLocale', 'binds', 'attrs', 'props', 'on',\n ];\n\n Obj.each(reset, (prop) => {\n Obj.unset(value, prop);\n });\n\n Obj.each(value.builder || {}, (val) => {\n\n if ( Any.isEmpty(val.key) ) {\n return;\n }\n\n let bindValue = {\n value: val.value, fallback: null\n };\n\n if ( val.code === 'string' ) {\n bindValue.fallback = Any.string(val.fallback || '');\n }\n\n if ( val.code === 'boolean' ) {\n bindValue.fallback = Any.boolean(val.fallback || 'false');\n }\n\n if ( val.code === 'object' ) {\n bindValue.fallback = JSON.parse(val.fallback || '{}');\n }\n\n if ( val.type === 'binds' ) {\n return Obj.set(value, [val.type, val.key], bindValue);\n }\n\n let realvalue = '';\n\n try {\n realvalue = this.getRealValue(val);\n } catch (e) {\n if ( ! Any.isEmpty(val.value) ) {\n console.error('Invalid JSON: ' + val.value);\n }\n }\n\n if ( val.type === 'root' ) {\n return Obj.set(value, val.key, realvalue);\n }\n\n if ( val.type === 'attrs' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n if ( val.type === 'props' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n if ( val.type === 'on' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n });\n\n if ( Any.isEmpty(key) ) {\n return value;\n }\n\n return Obj.set(this, key, value);\n },\n\n buildProps(el, key = null)\n {\n let builder = {};\n\n Obj.each(Obj.only(el, ['vIf', 'vShow', 'classList']), (value, sey) => {\n builder[UUID()] = {\n type: 'root', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value })\n };\n });\n\n Obj.each(Obj.get(el, `binds`, {}), (value, sey) => {\n\n let result = {\n type: 'binds', code: typeof value, key: sey, fallback: null, original: this.getOriginalValue({ value })\n }\n\n if ( Any.isString(value) ) {\n result.value = this.getSafeValue({ value });\n }\n\n if ( Any.isObject(value) ) {\n Obj.assign(result, { value: this.getSafeValue(value), fallback: Obj.get(value, 'fallback', null) })\n }\n\n builder[UUID()] = result;\n });\n\n Obj.each(Obj.get(el, `props`, {}), (value, sey) => {\n builder[UUID()] = { type: 'props', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n Obj.each(Obj.get(el, `attrs`, {}), (value, sey) => {\n builder[UUID()] = { type: 'attrs', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n Obj.each(Obj.get(el, `on`, {}), (value, sey) => {\n builder[UUID()] = { type: 'on', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n if ( Any.isEmpty(key) ) {\n return builder;\n }\n\n this.$nextTick(() => {\n Obj.set(this, `${key}.builder`, builder);\n });\n\n return builder;\n },\n\n addProp(key)\n {\n let value = Obj.get(this, `${key}.builder`, {});\n\n Obj.set(value, UUID(), {\n type: 'props', code: 'string', key: '', value: '', fallback: null\n });\n\n Obj.set(this, `${key}.builder`, value);\n },\n\n removeProp(key, prop)\n {\n Obj.unset(this, `${key}.builder.${prop}`);\n\n this.applyProps(key);\n },\n\n collapseElement(key)\n {\n Arr.toggle(this.collapse, key);\n },\n\n addElement(key)\n {\n let value = Obj.get(this, key, {});\n\n Obj.set(value, 'div:' + UUID(), {\n order: (Any.vals(value).length + 1) * 100, props: { modelValue: '$scope.list' }, content: {}\n });\n\n Obj.assign(this, key, value);\n },\n\n removeElement(key)\n {\n Obj.unset(this, key);\n },\n\n moveupElement(key)\n {\n let [el, childs] = [\n Obj.get(this, key), Obj.get(this, key.replace(/\\.[^.]+$/, ''))\n ];\n\n let close = Number.MIN_VALUE;\n\n Arr.each(childs, (sub) => {\n if ( sub.order < el.order ) close = Math.max(close, sub.order);\n });\n\n if ( close === Number.MIN_VALUE ) {\n return;\n }\n\n let replacement = Arr.find(childs, {\n order: close\n });\n\n Obj.assign(replacement, {\n order: el.order\n });\n\n Obj.assign(el, { order: close });\n },\n\n movedownElement(key)\n {\n let [el, childs] = [\n Obj.get(this, key), Obj.get(this, key.replace(/\\.[^.]+$/, ''))\n ];\n\n let close = Number.MAX_VALUE;\n\n Arr.each(childs, (sub) => {\n if ( sub.order > el.order ) close = Math.min(close, sub.order);\n });\n\n if ( close === Number.MAX_VALUE ) {\n return;\n }\n\n let replacement = Arr.find(childs, {\n order: close\n });\n\n Obj.assign(replacement, {\n order: el.order\n });\n\n Obj.assign(el, { order: close });\n },\n\n },\n\n renderTools(el, value, key)\n {\n let rootProps = {\n //\n };\n\n rootProps['onDblclick'] = () => {\n this.collapseElement(key);\n };\n\n let collapseProps = {\n href: 'javascript:void(0)',\n };\n\n collapseProps['onClick'] = () => {\n this.collapseElement(key);\n };\n\n let addProps = {\n href: 'javascript:void(0)',\n };\n\n addProps['onClick'] = () => {\n this.addElement(`${key}.content`);\n };\n\n let removeProps = {\n href: 'javascript:void(0)',\n };\n\n removeProps['onClick'] = () => {\n this.removeElement(key);\n };\n\n let moveupProps = {\n href: 'javascript:void(0)',\n };\n\n moveupProps['onClick'] = () => {\n this.moveupElement(key);\n };\n\n let movedownProps = {\n href: 'javascript:void(0)',\n };\n\n movedownProps['onClick'] = () => {\n this.movedownElement(key);\n };\n\n\n return (\n <div class=\"n-builder__tools\" {...rootProps}>\n <div class=\"n-builder__collapse\">\n <a {...collapseProps}><i class=\"fa fa-bars\"></i></a>\n </div>\n <div class=\"n-builder__name\">\n {key.replace(/^.*?([^\\.:]+):([^\\.:]+)$/, '$1')}<span>{key.replace(/^.*?([^\\.:]+):([^\\.:]+)$/, '$2')}</span>\n </div>\n <div class=\"n-builder__move\">\n <a {...moveupProps}><i class=\"fa fa-angle-up\"></i></a>\n <a {...movedownProps}><i class=\"fa fa-angle-down\"></i></a>\n </div>\n <div class=\"n-builder__add\">\n <a {...addProps}><i class=\"fa fa-plus\"></i></a>\n </div>\n <div class=\"n-builder__remove\">\n <a {...removeProps}><i class=\"fa fa-trash\"></i></a>\n </div>\n </div>\n );\n },\n\n renderProp(el, sub, key)\n {\n if ( sub === \"null\" ) {\n return null;\n }\n\n let group = key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$1')\n let value = Obj.get(this.$data, `${key}.builder.${sub}`, {});\n\n let props = Obj.clone(Obj.get(window.NanoBuilderIndexies, `${group}.props`, {}));\n\n props = Obj.assign({}, window.NanoBuilderProps, props);\n\n Obj.each(props, (prop, index) => {\n if ( ! Any.isEmpty(prop.for) && ! Arr.has(prop.for, value.type) ) {\n props = Obj.unset(props, index);\n }\n });\n\n let typeProps = {\n size: 'sm', options: window.NanoBuilderPropType\n };\n\n typeProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let keyProps = {\n size: 'sm', allowCreate: true, options: props, optionsLabel: '$index'\n };\n\n keyProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let codeProps = {\n size: 'sm', options: window.NanoBuilderPropCode\n };\n\n codeProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let values = Obj.get(props, `${value.key}.options`, []);\n\n let valueInputProps = {\n size: 'sm', model: this.model, scope: this.scope\n };\n\n valueInputProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let valueHtml = (\n <NReferencePicker vModel={value.value} {...valueInputProps} />\n );\n\n let fallbackProps = {\n size: 'sm', minRows: 1, autoRows: true\n };\n\n fallbackProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let tooltipHtml = (\n <div class=\"n-builder_prop-text\">\n <p>{Obj.get(props, `${value.key}.desc`, '')}</p>\n </div>\n );\n\n return (\n <div class=\"n-builder_prop\">\n <div class=\"n-builder_prop-type\">\n <NSelect vModel={value.type} {...typeProps} />\n </div>\n <div class=\"n-builder_prop-key\">\n <NSelect vModel={value.key} {...keyProps} />\n </div>\n <div class=\"n-builder_prop-func\">\n <NSelect vModel={value.code} {...codeProps} />\n </div>\n <div class=\"n-builder_prop-value\">\n {valueHtml}\n </div>\n <div class=\"n-builder_prop-fallback\">\n <NInput vModel={value.fallback} {...fallbackProps} />\n </div>\n <div class=\"n-builder_prop-button\">\n <NButton size=\"sm\" type=\"danger\" onClick={() => this.removeProp(key, sub)}>Remove</NButton>\n </div>\n </div>\n );\n },\n\n renderProps(el, value, key)\n {\n if ( !Arr.has(this.collapse, key) ) {\n return null;\n }\n\n let elementProps = {\n options: window.NanoBuilderTypes, allowCreate: true, modelValue: key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$1'),\n };\n\n elementProps['onUpdate:modelValue'] = (value) => {\n this.changeElement(key, value);\n };\n\n let aliasProps = {\n modelValue: key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$2'),\n };\n\n aliasProps['onUpdate:modelValue'] = (value) => {\n this.changeAlias(key, value);\n };\n\n let plainProps = {\n modelValue: Obj.get(value, 'builder.null.type'),\n options: {\n 'object': this.trans('Object'),\n 'string': this.trans('String'),\n }\n };\n\n plainProps['onUpdate:modelValue'] = (value) => {\n this.changeType(key, value);\n };\n\n let addProps = {\n type: 'primary', size: 'sm', link: true\n };\n\n addProps['onClick'] = () => {\n this.addProp(key, value);\n };\n\n let props = Obj.get(value, `builder`);\n\n if ( ! Obj.has(value, 'builder') ) {\n props = this.buildProps(el, key, value);\n }\n\n return (\n <NForm class=\"n-builder__props\">\n <NFormItem class=\"n-builder__element-type\" label={this.trans('Type')}>\n <NSelect {...elementProps} />\n </NFormItem>\n <NFormItem class=\"n-builder__element-alias\" label={this.trans('Alias')}>\n <NInput {...aliasProps} />\n </NFormItem>\n <NFormItem class=\"n-builder__element-plain\" label={this.trans('Content')}>\n <NSelect {...plainProps}>{this.trans('Enable plain')}</NSelect>\n </NFormItem>\n <div class=\"n-builder__element-prop\">\n <NButton {...addProps}>Add property</NButton>\n </div>\n <div class=\"n-builder__element-list\">\n {Arr.each(props, (prop, sub) => this.ctor('renderProp')(el, sub, key))}\n </div>\n </NForm>\n );\n },\n\n renderElement(el, value, key)\n {\n let classList = [\n 'n-builder__element'\n ];\n\n if ( Arr.has(this.collapse, key) ) {\n classList.push('is-open');\n }\n\n let builderHtml = () => {\n return this.ctor('renderBuilder')(value.content || {}, `${key}.content`);\n };\n\n if ( value.builder[\"null\"][\"type\"] === 'string' ) {\n builderHtml = () => {\n return (<div><NInput vModel={value.content} /></div>);\n };\n }\n\n return (\n <div class={classList}>\n {this.ctor('renderTools')(el, value, key)}\n {this.ctor('renderProps')(el, value, key)}\n {builderHtml()}\n </div>\n );\n },\n\n renderBuilder(el, key)\n {\n if ( Any.isEmpty(el) ) {\n return null;\n }\n\n let items = Arr.each(Obj.sort(Obj.clone(el), 'order'), (v) => {\n\n let args = [\n Obj.get(this.$data, key, {}),\n Obj.get(this.$data, [key, v._key], {}),\n `${key}.${v._key}`\n ];\n\n return this.ctor('renderElement')(...args);\n });\n\n return (\n <div class=\"n-builder__frame\">\n {items}\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-builder__body\">\n {this.ctor('renderBuilder')(this.safevar, 'safevar')}\n </div>\n );\n },\n\n renderHead()\n {\n let addProps = {\n type: 'primary'\n };\n\n addProps['onClick'] = () => {\n this.addElement('safevar');\n };\n\n let addHtml = (\n <div class=\"n-builder__head-add\">\n <NButton {...addProps}>{this.trans('Add root element')}</NButton>\n </div>\n );\n\n let demoProps = {\n type: 'primary'\n };\n\n demoProps['onClick'] = () => {\n this.demo = true;\n };\n\n let demoHtml = (\n <div class=\"n-builder__head-demo\">\n <NButton {...demoProps}>{this.trans('Render demo')}</NButton>\n </div>\n );\n\n return (\n <div class=\"n-builder__head\">\n {[addHtml, demoHtml]}\n </div>\n );\n },\n\n renderOutput()\n {\n return (\n <div class=\"n-builder__output\">\n <pre>{this.exportJson(this.safevar)}</pre>\n </div>\n );\n },\n\n renderDemo()\n {\n if ( ! this.renderDemo || ! this.demo ) {\n return null;\n }\n\n let renderFunction = this.$slots.default;\n\n if ( Any.isEmpty(renderFunction) ) {\n renderFunction = ({ render }) => render();\n }\n\n let modalProps = {\n width: '100%',\n height: '100%'\n };\n\n let configProps = {\n modelValue: this.model, scope: this.scope, config: this.exportExecutable(this.safevar)\n };\n\n let renderContent = () => {\n return ( <NConfigNext {...configProps} />);\n };\n\n return (\n <NModal vModel={this.demo} {...modalProps}>\n {renderFunction({ render: renderContent })}\n </NModal>\n );\n },\n\n render()\n {\n let classList = [\n 'n-builder',\n ];\n\n return (\n <div class={classList}>\n {[\n this.ctor('renderBody')(), this.ctor('renderHead')(), this.ctor('renderOutput')(), this.ctor('renderDemo')(),\n ]}\n </div>\n );\n }\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NReferencePanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return \"\";\n },\n type: [String]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n },\n\n data()\n {\n return {\n expanded: [], selected: null, modelTree: this.buildTree(this.model, '$model'), scopeTree: this.buildTree(this.scope, '$scope')\n };\n },\n\n methods: {\n\n buildTree(value, path = '')\n {\n let result = {};\n\n if ( ! Any.isPlain(value) && ! Obj.get(value, '__v_skip') ) {\n return result;\n }\n\n for(var key in value) {\n\n let [ref, val] = [\n `${path}.${key}`, value[key]\n ];\n\n if ( Any.isPlain(val) ) {\n val = this.buildTree(val, ref);\n }\n\n let type = typeof val;\n\n if ( Any.isArray(val) ) {\n type = 'array';\n }\n\n result[key] = {\n path: ref, value: val, type: type\n };\n\n }\n\n return result;\n },\n\n submitItem(value)\n {\n this.$emit('update:modelValue', value.path);\n },\n\n selectItem(value)\n {\n this.selected = value;\n },\n\n expandItem(value)\n {\n if ( value.type === 'object' ) {\n Arr.toggle(this.expanded, value.path);\n }\n }\n\n },\n\n renderLeaf(value, key)\n {\n let classList = [\n 'n-reference-panel__item',\n 'n-reference-panel__item--' + value.type,\n ];\n\n if ( Obj.get(this.selected, 'path') === value.path) {\n classList.push('is-selected');\n }\n\n if ( value.type === 'object' ) {\n classList.push('has-childs');\n }\n\n if ( Arr.has(this.expanded, value.path) ) {\n classList.push('is-expanded');\n }\n\n return (\n <div class={classList} onDblclick={() => this.submitItem(value)}>\n <div class=\"n-reference-panel__expand\" onClick={() => this.expandItem(value)}>\n <i class=\"fa fa-angle-right\"></i>\n </div>\n <div class=\"n-reference-panel__name\" onClick={() => this.selectItem(value)}>\n {key}\n </div>\n <div class=\"n-reference-panel__type\" onClick={() => this.selectItem(value)}>\n {value.type}\n </div>\n <div class=\"n-reference-panel__pick\" onClick={() => this.submitItem(value)}>\n <i class=\"fa fa-expand\"></i>\n </div>\n </div>\n );\n },\n\n renderTree(value, key)\n {\n let childItems = Arr.each(value.value, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n let childHtml = (\n <div class=\"n-reference-panel__childs\">\n {childItems}\n </div>\n );\n\n if ( ! Arr.has(this.expanded, value.path) ) {\n childHtml = null;\n }\n\n return [this.ctor('renderLeaf')(value, key), childHtml];\n },\n\n renderItem(value, key)\n {\n if ( value.type === 'object' ) {\n return this.ctor('renderTree')(value, key);\n }\n\n return this.ctor('renderLeaf')(value, key);\n },\n\n renderModel()\n {\n let modelHtml = Arr.each(this.modelTree, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n return (\n <div class=\"n-reference-panel__model\">\n {modelHtml}\n </div>\n );\n },\n\n renderScope()\n {\n let scopeHtml = Arr.each(this.scopeTree, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n return (\n <div class=\"n-reference-panel__scope\">\n {scopeHtml}\n </div>\n );\n },\n\n render()\n {\n return (\n <div class=\"n-reference-panel\">\n {[this.ctor('renderModel')(), this.ctor('renderScope')()]}\n </div>\n );\n }\n\n}","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NReferencePicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n width: {\n default()\n {\n return '100%';\n },\n type: [String]\n },\n\n height: {\n default()\n {\n return '100%';\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return {\n modal: false, tempValue: this.modelValue\n };\n },\n\n methods: {\n\n updateValue(value)\n {\n this.$emit('update:modelValue', this.tempValue = value);\n }\n\n },\n\n renderModal()\n {\n if ( ! this.modal ) {\n return null;\n }\n\n let modalProps = {\n modelValue: true,\n width: this.width,\n height: this.height,\n };\n\n modalProps['onClose'] = () => {\n this.modal = false;\n };\n\n let panelProps = {\n model: this.model, scope: this.scope,\n };\n\n panelProps['onUpdate:modelValue'] = (value) => {\n this.updateValue(value); this.modal = false;\n };\n\n let slots = {\n //\n };\n\n slots['body'] = () => (\n <NReferencePanel class=\"in-modal\" {...panelProps} />\n );\n\n return (\n <NModal {...modalProps} v-slots={slots} />\n );\n },\n\n renderInput()\n {\n let inputProps = {\n modelValue: this.tempValue,\n icon: 'fa fa-expand',\n size: this.size,\n };\n\n inputProps['onUpdate:modelValue'] = (value) => {\n this.updateValue(value);\n };\n\n inputProps['onBlur'] = (e) => {\n this.$emit('onBlur', e);\n };\n\n inputProps['onIconClick'] = () => {\n this.modal = true;\n };\n\n return (\n <NInput {...inputProps} />\n );\n },\n\n render()\n {\n return (\n <div class=\"n-reference-picker\">\n {[this.ctor('renderInput')(), this.ctor('renderModal')()]}\n </div>\n );\n }\n\n}","import { Arr, Obj, Dom, Any, Str, Event } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NScrollbar',\n\n provide()\n {\n return {\n NScrollbar: this\n };\n },\n\n props: {\n\n options: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n fixture: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n allowNative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n framerate: {\n default()\n {\n return 24;\n },\n type: [Number]\n },\n\n wrapClass: {\n default()\n {\n return 'n-scrollbar__wrap';\n }\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n native: false\n };\n },\n\n beforeMount()\n {\n this.adaptScrollBehavior();\n },\n\n mounted()\n {\n this.bindAdaptHeight();\n this.bindAdaptWidth();\n\n let passive = {\n passive: true, uid: this._.uid\n };\n\n Event.bind('NScrollbar:resize',\n this.onResize, this._.uid);\n\n Event.bind('NResizer:moved',\n this.onUpdate, this._.uid);\n\n Dom.find(window).on('resize',\n this.onResize, passive);\n\n Dom.find(this.$refs.content).on('scroll',\n this.onScroll, passive);\n },\n\n updated()\n {\n if ( this.passedHeight || this.passedWidth ) {\n Dom.find(this.$el).addClass('n-ready');\n }\n },\n\n beforeUnmount()\n {\n this.unbindAdaptHeight();\n this.unbindAdaptWidth();\n\n let passive = {\n passive: true, uid: this._.uid\n };\n\n Event.unbind('NScrollbar:resize',\n this._.uid);\n\n Event.unbind('NResizer:moved',\n this._.uid);\n\n Dom.find(window).off('resize',\n null, passive);\n\n Dom.find(this.$el).off('scroll',\n null, passive);\n },\n\n methods: {\n\n scrollTo(x = 0, y = 0, delay = 0)\n {\n Any.delay(() => this.onScrollTo(x, y), delay);\n },\n\n onScrollTo(x = 0, y = 0)\n {\n if ( this.$refs.content ) {\n this.$refs.content.scrollTop = y;\n this.$refs.content.scrollLeft = x;\n }\n },\n\n scrollIntoView(selector, delay = 0)\n {\n Any.delay(() => this.onScrollIntoView(selector), delay);\n },\n\n onScrollIntoView(selector)\n {\n let $el = Dom.find(this.$el).find(selector);\n\n let scrollTop = this.$refs.content\n .scrollTop;\n\n let outerHeight = this.$refs.content.\n clientHeight;\n\n let offsetTop = $el.offsetTop(this.$el);\n\n if ( offsetTop < scrollTop ) {\n this.$refs.content.scrollTop = offsetTop;\n }\n\n if ( offsetTop + $el.height() >= scrollTop + outerHeight ) {\n this.$refs.content.scrollTop = offsetTop - outerHeight + $el.height();\n }\n\n let scrollLeft = this.$refs.content\n .scrollLeft;\n\n let outerWidth = this.$refs.content.\n clientWidth;\n\n let offsetLeft = $el.offsetLeft(this.$el);\n\n if ( offsetLeft < scrollLeft ) {\n this.$refs.content.scrollLeft = offsetLeft;\n }\n\n if ( offsetLeft + $el.width() >= scrollLeft + outerWidth ) {\n this.$refs.content.scrollLeft = offsetLeft - outerWidth + $el.width();\n }\n },\n\n adaptScrollBehavior()\n {\n let $dom = Dom.make('div', { classList: ['n-scrollbar-test'] })\n .appendTo(document.body).get(0);\n\n Dom.make('div').appendTo($dom);\n\n this.native = $dom.clientWidth === $dom.offsetWidth ||\n $dom.clientHeight === $dom.offsetHeight;\n\n $dom.remove();\n },\n\n adaptScrollHeight()\n {\n if ( this.native && this.allowNative ) {\n return;\n }\n\n // let offsetHeight = this.$refs.content.clientHeight -\n // this.$refs.content.offsetHeight;\n //\n // let offsetWidth = this.$refs.content.clientWidth -\n // this.$refs.content.offsetWidth;\n\n let outerHeight = this.$refs.content.\n clientHeight || 0;\n\n if ( this.native && ! this.allowNative ) {\n outerHeight -= 16;\n }\n\n // if ( offsetHeight === 0 && this.overflowX ) {\n // outerHeight -= 15;\n // }\n\n let innerHeight = this.$refs.content\n .scrollHeight || 0;\n\n let virtualHeight = 0;\n\n Dom.find(this.$refs.content).childs().each((el) => {\n virtualHeight += Dom.find(el).height() || 0;\n });\n\n if ( this.native && ! this.allowNative ) {\n innerHeight -= 16;\n }\n\n if ( virtualHeight > innerHeight ) {\n innerHeight = virtualHeight;\n }\n\n // if ( offsetHeight === 0 && this.overflowX ) {\n // innerHeight -= 15;\n // }\n\n let isSameOld = outerHeight === this.outerHeight &&\n innerHeight === this.innerHeight;\n\n if ( isSameOld ) {\n return;\n }\n\n this.outerHeight = outerHeight;\n this.innerHeight = innerHeight;\n\n let height = (outerHeight / innerHeight)\n * outerHeight;\n\n let barHeight = Math.max(height, 50);\n\n let maxHeight = Math.ceil((outerHeight / innerHeight) *\n (innerHeight - outerHeight));\n\n this.heightRatio = (maxHeight - (barHeight - height)\n - this.offsetY) / maxHeight;\n\n Dom.find(this.$refs.vbar).css({\n height: (this.barHeight = Math.ceil(barHeight)) + 'px'\n });\n\n // let hasNativeBar = offsetWidth !== 0 && this.overflowY;\n //\n // if ( hasNativeBar ) {\n // Dom.find(this.$el).addClass('has-native-vbar');\n // }\n //\n // if ( hasNativeBar && this.overflowX ) {\n // Dom.find(this.$el).addClass('has-native-hbar');\n // }\n\n let hasVtrack = outerHeight && outerHeight < innerHeight;\n\n if ( hasVtrack ) {\n Dom.find(this.$el).addClass('has-vtrack');\n }\n\n if ( ! hasVtrack ) {\n Dom.find(this.$el).removeClass('has-vtrack');\n }\n\n // if ( hasVtrack && ! hasNativeBar ) {\n // Event.fire('NScrollbar:native');\n // }\n\n this.adaptScrollPosition();\n },\n\n adaptScrollWidth()\n {\n if ( this.native && this.allowNative ) {\n return;\n }\n\n // let offsetWidth = this.$refs.content.clientWidth -\n // this.$refs.content.offsetWidth;\n //\n // let offsetHeight = this.$refs.content.clientHeight -\n // this.$refs.content.offsetHeight;\n\n let outerWidth = this.$refs.content.\n clientWidth || 0;\n\n if ( this.native && ! this.allowNative ) {\n outerWidth -= 16;\n }\n\n // if ( offsetWidth === 0 && this.overflowY ) {\n // outerWidth -= 15;\n // }\n\n let innerWidth = this.$refs.content\n .scrollWidth || 0;\n\n let virtualWidth = 0;\n\n Dom.find(this.$refs.content).childs().each((el) => {\n virtualWidth += Dom.find(el).width() || 0;\n });\n\n if ( this.native && ! this.allowNative ) {\n innerWidth -= 16;\n }\n\n if ( virtualWidth > innerWidth ) {\n innerWidth = virtualWidth;\n }\n\n // if ( offsetWidth === 0 && this.overflowY ) {\n // innerWidth -= 15;\n // }\n\n let isSameOld = outerWidth === this.outerWidth &&\n innerWidth === this.innerWidth;\n\n if ( isSameOld ) {\n return;\n }\n\n this.outerWidth = outerWidth;\n this.innerWidth = innerWidth;\n\n let width = (outerWidth / innerWidth)\n * outerWidth;\n\n let barWidth = Math.max(width, 50);\n\n let maxWidth = Math.ceil((outerWidth / innerWidth) *\n (innerWidth - outerWidth));\n\n this.widthRatio = (maxWidth - (barWidth - width)\n - this.offsetX) / maxWidth;\n\n Dom.find(this.$refs.hbar).css({\n width: (this.barWidth = Math.ceil(barWidth)) + 'px'\n });\n\n // let hasNativeBar = offsetHeight && this.overflowX;\n\n // if ( hasNativeBar ) {\n // Dom.find(this.$el).addClass('has-native-hbar');\n // }\n //\n // if ( hasNativeBar && this.overflowY ) {\n // Dom.find(this.$el).addClass('has-native-vbar');\n // }\n\n let hasHtrack = outerWidth && outerWidth < innerWidth;\n\n if ( hasHtrack ) {\n Dom.find(this.$el).addClass('has-htrack');\n }\n\n if ( ! hasHtrack ) {\n Dom.find(this.$el).removeClass('has-htrack');\n }\n\n // if ( hasHtrack && ! hasNativeBar ) {\n // Event.fire('NScrollbar:native');\n // }\n\n this.adaptScrollPosition();\n },\n\n adaptScrollPosition(scroll = {})\n {\n if ( this.native && this.allowNative ) {\n return;\n }\n\n if ( ! scroll.top ) {\n scroll.top = this.$refs.content.scrollTop;\n }\n\n if ( ! scroll.left ) {\n scroll.left = this.$refs.content.scrollLeft;\n }\n\n let vbarTop = Math.ceil((this.outerHeight / this.innerHeight) *\n scroll.top * this.heightRatio) || 0;\n\n if ( ! this.vbarTop || vbarTop !== this.vbarTop ) {\n\n Dom.find(this.$refs.vbar).css({\n transform: `translateY(${vbarTop}px) translateZ(0)`\n });\n\n this.vbarTop = vbarTop;\n }\n\n let hbarLeft = Math.ceil((this.outerWidth / this.innerWidth) *\n scroll.left * this.widthRatio) || 0;\n\n if ( ! this.hbarLeft || hbarLeft !== this.hbarLeft ) {\n\n Dom.find(this.$refs.hbar).css({\n transform: `translateX(${hbarLeft}px) translateZ(0)`\n });\n\n this.hbarLeft = hbarLeft;\n }\n },\n\n adaptHeight()\n {\n if ( ! this.cacheChildEl ) {\n this.cacheChildEl = Dom.find(this.$refs.content).child();\n }\n\n let height = this.cacheChildEl\n .height();\n\n if ( ! this.cacheWindwoEl ) {\n this.cacheWindwoEl = Dom.find(this.$el);\n }\n\n let window = this.cacheWindwoEl\n .innerHeight();\n\n if ( height === this.passedHeight && window === this.windowCache ) {\n return;\n }\n\n this.windowCache = window;\n\n if ( this.overflowY ) {\n this.adaptScrollHeight();\n }\n\n if ( window ) {\n this.passedHeight = height;\n }\n\n let style = {\n height: (height + 1) + 'px'\n };\n\n if ( ! this.relative ) {\n return Any.delay(this.onSizechange, 100);\n }\n\n Dom.find(this.$refs.spacer).child().css(style);\n },\n\n bindAdaptHeight()\n {\n this.refreshHeight = setInterval(this.adaptHeight,\n 1000 / this.framerate);\n },\n\n unbindAdaptHeight()\n {\n clearInterval(this.refreshHeight);\n },\n\n adaptWidth()\n {\n if ( this.resizeTimer ) {\n return;\n }\n\n let width = Dom.find(this.$refs.content)\n .child().width();\n\n let window = Dom.find(this.$el)\n .innerWidth();\n\n if ( width === this.passedWidth ) {\n return;\n }\n\n if ( this.overflowX ) {\n this.adaptScrollWidth();\n }\n\n if ( window ) {\n this.passedWidth = width;\n }\n\n let style = {\n width: width + 'px'\n };\n\n if ( this.fixture ) {\n this.onUpdate();\n }\n\n if ( ! this.relative ) {\n return Any.delay(this.onSizechange, 100);\n }\n\n Dom.find(this.$refs.spacer).child().css(style);\n },\n\n bindAdaptWidth()\n {\n this.refreshWidth = setInterval(this.adaptWidth,\n 1000 / this.framerate);\n },\n\n unbindAdaptWidth()\n {\n clearInterval(this.refreshWidth);\n },\n\n onScroll(event)\n {\n let scroll = {\n top: this.$refs.content.scrollTop,\n left: this.$refs.content.scrollLeft\n };\n\n let scrollUpdate = () => {\n this.$emit('scrollupdate', scroll.top, scroll.left);\n }\n\n this.$nextTick(scrollUpdate);\n this.adaptScrollPosition(scroll);\n },\n\n onSizechange(event)\n {\n let height = Dom.find(this.$el).height();\n let width = Dom.find(this.$el).width();\n\n if ( ! height || ! width ) {\n return;\n }\n\n if ( this.passedHeight || this.passedWidth ) {\n Dom.find(this.$el).addClass('is-ready');\n }\n\n this.$emit('sizechange', height, width, this.$el);\n },\n\n onResize()\n {\n if ( ! this.fixture ) {\n return;\n }\n\n Dom.find(this.$refs.content)\n .child().css(null);\n\n clearTimeout(this.resizeTimer);\n\n this.resizeTimer = setTimeout(\n this.onUpdate, 500);\n\n Dom.find(this.$el).fire('resized');\n },\n\n onUpdate()\n {\n if ( ! this.fixture || ! this.$refs.content ) {\n return;\n }\n\n let $inner = Dom.find(this.$refs.content)\n .child();\n\n let height = $inner.actual(() => {\n return $inner.scrollHeight();\n });\n\n if ( height !== this.passedHeight ) {\n $inner.css({ height: height + 'px' });\n }\n\n let width = $inner.actual(() => {\n return $inner.scrollWidth() - 1;\n });\n\n if ( width !== this.passedWidth ) {\n $inner.css({ width: width + 'px' });\n }\n\n delete this.resizeTimer;\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onVbarMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.stopPropagation();\n\n Dom.find(document).on(this.mousemove,\n this.onVbarMousemove, this._.uid);\n\n Dom.find(document).on(this.mouseup,\n this.onVbarMouseup, this._.uid);\n\n this.scrollTop = this.$refs.content\n .scrollTop;\n\n this.clientY = this.getTouchEvent(event)\n .clientY;\n },\n\n onVbarMousemove(event)\n {\n let clientY = this.getTouchEvent(event)\n .clientY;\n\n let top = (this.outerHeight / this.innerHeight) *\n this.scrollTop * this.heightRatio;\n\n let offset = (clientY - this.clientY) + top;\n\n let height = (this.outerHeight -\n this.barHeight - this.offsetY);\n\n this.$refs.content.scrollTop = offset / height *\n (this.innerHeight - this.outerHeight);\n },\n\n onVbarMouseup(event)\n {\n Dom.find(document).off(this.mousemove,\n null, this._.uid);\n\n Dom.find(document).off(this.mouseup,\n null, this._.uid);\n },\n\n onHbarMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.stopPropagation();\n\n Dom.find(document).on(this.mousemove,\n this.onHbarMousemove, this._.uid);\n\n Dom.find(document).on(this.mouseup,\n this.onHbarMouseup, this._.uid);\n\n this.scrollLeft = this.$refs.content\n .scrollLeft;\n\n this.clientX = event.clientX;\n },\n\n onHbarMousemove(event)\n {\n let top = (this.outerWidth / this.innerWidth) *\n this.scrollLeft * this.widthRatio;\n\n let offset = (event.clientX - this.clientX) + top;\n\n let width = (this.outerWidth -\n this.barWidth - this.offsetX);\n\n this.$refs.content.scrollLeft = offset / width *\n (this.innerWidth - this.outerWidth);\n },\n\n onHbarMouseup(event)\n {\n Dom.find(document).off(this.mousemove,\n null, this._.uid);\n\n Dom.find(document).off(this.mouseup,\n null, this._.uid);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-scrollbar'\n ];\n\n if ( this.native ) {\n classList.push('n-scrollbar--native');\n }\n\n if ( ! this.allowNative ) {\n classList.push('n-scrollbar--forced');\n }\n\n if ( this.touch ) {\n classList.push('n-scrollbar--touch');\n }\n\n if ( window.WIN ) {\n classList.push('n-windows');\n }\n\n if ( this.overflowY ) {\n classList.push('n-overflow-y');\n }\n\n if ( this.overflowX ) {\n classList.push('n-overflow-x');\n }\n\n let vbarProps = {\n ['on' + Str.ucfirst(this.mousedown)]: this.onVbarMousedown\n };\n\n let hbarProps = {\n ['on' + Str.ucfirst(this.mousedown)]: this.onHbarMousedown\n };\n\n return (\n <div class={classList} {...Obj.except(this.$attrs, ['class'])}>\n <div class=\"n-scrollbar-content\" ref=\"content\">\n <div class={this.wrapClass}>\n { this.$slots.default && this.$slots.default() }\n </div>\n </div>\n <div class=\"n-scrollbar-spacer\" ref=\"spacer\">\n <div class={this.wrapClass}>\n { /* Adapt inner height */ }\n </div>\n </div>\n <div ref=\"hbar\" class=\"n-scrollbar-h\" {...hbarProps}></div>\n <div ref=\"vbar\" class=\"n-scrollbar-v\" {...vbarProps}></div>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any, Dom } from \"@kizmann/pico-js\";\n\nwindow.DEBUG_NVSCROLL = false;\n\nexport default {\n\n name: 'NVirtualscroller',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n\n },\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n itemHeight: {\n default()\n {\n return 34;\n }\n },\n\n itemWidth: {\n default()\n {\n return 0;\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n deathzone: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n framerate: {\n default()\n {\n return 65;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n let state = {\n start: 0, end: 0, grid: 1\n };\n\n return {\n state, buffer: [], width: 0, height: 0, load: true\n };\n },\n\n watch: {\n\n 'items': function () {\n this.updateRender();\n }\n\n },\n\n beforeMount()\n {\n this.scrollTop = 0;\n },\n\n mounted()\n {\n\n this.bindAdaptScroll()\n },\n\n\n beforeUnmount()\n {\n this.unbindAdaptScroll()\n },\n\n methods: {\n\n bindAdaptScroll()\n {\n this.refreshScroll = setInterval(this.onScrollupdate,\n 1000 / this.framerate);\n },\n\n unbindAdaptScroll()\n {\n clearInterval(this.refreshScroll);\n },\n\n isIndexRendered(index)\n {\n if ( ! this.itemHeight ) {\n return true;\n }\n\n return this.state.start < index &&\n this.state.end > index;\n },\n\n scrollIntoView(index)\n {\n if ( ! this.$refs.scrollbar ) {\n return;\n }\n\n if ( index === -1 || index >= this.items.length ) {\n index = this.items.length;\n }\n\n if ( ! this.isIndexRendered(index) ) {\n return this.scrollToIndex(index);\n }\n\n let selector = `[data-index=\"${index}\"]`;\n\n this.$refs.scrollbar.scrollIntoView(selector);\n },\n\n scrollToIndex(index, delay = 0)\n {\n Any.delay(() => this.onScrollToIndex(index), delay);\n },\n\n onScrollToIndex(index)\n {\n if ( ! this.$refs.scrollbar ) {\n return;\n }\n\n let total = Math.ceil(this.items.length /\n this.state.grid);\n\n index = Math.floor(index / this.state.grid);\n\n if ( index === -1 || index >= total ) {\n index = total;\n }\n\n let targetTop = index * this.itemHeight;\n\n if ( this.scrollTop > targetTop ) {\n return this.scrollTo(0, targetTop);\n }\n\n targetTop = targetTop - this.height +\n this.itemHeight;\n\n this.scrollTo(0, targetTop);\n },\n\n scrollTo(x = 0, y = 0, delay = 0)\n {\n Any.delay(() => this.onScrollTo(x, y), delay);\n },\n\n onScrollTo(x = 0, y = 0)\n {\n if ( ! this.$refs.scrollbar ) {\n return;\n }\n\n this.$refs.scrollbar.scrollTo(x, y);\n },\n\n clearState()\n {\n this.state = { start: 0, end: 0 };\n },\n\n updateRender()\n {\n if ( ! this.$refs.scrollbar ) {\n return Any.delay(this.updateRender);\n }\n\n this.scrollTop = this.$refs.scrollbar.\n $refs.content.scrollTop;\n\n Any.async(this.refreshDriver);\n },\n\n onScrollupdate()\n {\n if ( ! this.threshold ) {\n return;\n }\n\n let scrollTop = this.$refs.scrollbar.\n $refs.content.scrollTop;\n\n if ( scrollTop === this.scrollTop ) {\n return;\n }\n\n this.scrollTop = scrollTop;\n\n let offset = this.$refs.scrollbar.$el.offsetHeight -\n this.$refs.scrollbar.$el.clientHeight;\n\n let isOutOfRange = scrollTop < 0 || scrollTop + this.height\n > this.$refs.inner.scrollHeight + offset;\n\n if ( isOutOfRange ) {\n return;\n }\n\n Any.async(this.refreshDriver);\n },\n\n onSizechange(height, width, el)\n {\n this.width = width;\n this.height = height;\n\n Any.async(this.refreshDriver);\n },\n\n\n refreshDriver(queue = true)\n {\n if ( Any.isEmpty(this.timer) ) {\n this.timer = Date.now();\n }\n\n if ( Date.now() - this.timer > 20 ) {\n queue = false;\n }\n\n clearTimeout(this.to);\n\n this.to = setTimeout(() => {\n this.refreshDriver(false);\n }, 25);\n\n if ( queue ) {\n return;\n }\n\n clearTimeout(this.to);\n\n let grid = 1;\n\n if ( this.itemWidth ) {\n grid = Math.floor((this.width - this.deathzone) /\n this.itemWidth) || 1;\n }\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n return this.state = { start: 0, end: 0, grid };\n }\n\n let total = Math.ceil(this.items.length\n / grid);\n\n let bufferItems = Math.round((this.height /\n this.itemHeight) * 0.6);\n\n let startItem = Math.round(this.scrollTop /\n this.itemHeight);\n\n let endItem = Math.round((this.scrollTop +\n this.height) / this.itemHeight);\n\n let start = (startItem - bufferItems);\n\n if ( start < 0 ) {\n start = 0;\n }\n\n let end = endItem + bufferItems;\n\n if ( end > total ) {\n end = total;\n }\n\n let state = { start, end, grid };\n\n if ( Any.isEqual(this.state, state) ) {\n return;\n }\n\n this.state = state;\n },\n\n },\n\n renderItem(passed)\n {\n passed.index = (passed.index +\n this.state.start);\n\n let topOffset = Math.round(this.itemHeight *\n passed.index);\n\n let renderFunction = this.$slots.default;\n\n if ( this.renderNode ) {\n renderFunction = this.renderNode;\n }\n\n let props = {\n 'data-index': passed.index\n };\n\n if ( this.NDraggable && this.useKeys ) {\n props.key = passed.value[this.NDraggable.uniqueProp];\n }\n\n let style = {};\n\n let isLazy = this.threshold && this.threshold <=\n this.items.length;\n\n if ( isLazy && this.state.grid === 1 ) {\n style.top = topOffset + 'px';\n }\n\n if ( this.itemHeight ) {\n style.height = this.itemHeight + 'px';\n }\n\n if ( this.state.grid !== 1 ) {\n style.width = this.itemWidth + 'px';\n }\n\n return (\n <div class=\"n-virtualscroller__item\" style={style} {...props}>\n { renderFunction(passed) }\n </div>\n );\n },\n\n renderRows()\n {\n let items = Arr.slice(this.items, this.state.start,\n this.state.end);\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n items = this.items;\n }\n\n return Arr.each(items, (value, index) => {\n return this.ctor('renderItem')({ value, index });\n });\n },\n\n renderGridRows(passed)\n {\n let topOffset = Math.round(this.itemHeight *\n (passed.index + this.state.start));\n\n let style = {};\n\n if ( this.threshold && this.threshold <= this.items.length ) {\n style.top = topOffset + 'px';\n }\n\n let counter = passed.index * this.state.start;\n\n return (\n <div data-row={passed.index} class=\"n-virtualscroller__row\" style={style}>\n {\n Arr.each(passed.chunk, (value, index) => {\n return this.ctor('renderItem')({\n value, index: index + counter\n });\n })\n }\n </div>\n );\n },\n\n renderGrid()\n {\n let chunks = Arr.chunk(this.items,\n this.state.grid);\n\n let items = Arr.slice(chunks, this.state.start,\n this.state.end);\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n items = chunks;\n }\n\n return Arr.each(items, (chunk, index) => {\n return this.ctor('renderGridRows')({ chunk, index });\n });\n },\n\n renderItems()\n {\n if ( ! this.items.length ) {\n return this.$slots.empty && this.$slots.empty() || null;\n }\n\n if ( this.state.grid === 1 ) {\n return this.ctor('renderRows')();\n }\n\n return this.ctor('renderGrid')();\n },\n\n render()\n {\n let classList = [\n 'n-virtualscroller'\n ];\n\n if ( this.threshold && this.threshold <= this.items.length ) {\n classList.push('n-virtualscroller--absolute');\n }\n\n let props = {\n overflowY: this.overflowY,\n overflowX: this.overflowX,\n offsetY: this.offsetY,\n offsetX: this.offsetX,\n onSizechange: this.onSizechange,\n };\n\n let style = {\n 'overflow-y': 'hidden'\n };\n\n let totalHeight = Math.ceil(this.items.length / this.state.grid) *\n this.itemHeight;\n\n if ( this.threshold && this.items.length ) {\n style.height = Math.ceil(totalHeight + this.offsetY) + 'px';\n }\n\n return (\n <NScrollbar class={classList} ref=\"scrollbar\" {...props}>\n <div ref=\"inner\" class=\"n-virtualscroller__inner\" style={style}>\n { this.ctor('renderItems')() }\n </div>\n </NScrollbar>\n );\n }\n\n}\n","import { Arr, Obj, Num, Any, Dom, Event, Locale, UUID } from \"@kizmann/pico-js\";\n\nwindow.dragMods = [];\n\nclass NDragCounter\n{\n\n $el = null;\n\n constructor()\n {\n this.$el = Dom.make('div', {\n classList: ['n-draggable__counter']\n });\n\n this.$el.appendTo(document.body);\n }\n\n get(event, count)\n {\n // Update dragover color/type\n this.update();\n\n this.$el.html(\n `<span>${Locale.choice(':count Item|:count Items', count)}</span>`\n );\n\n // Fix data transfer\n event.dataTransfer.setData('text/plain', '');\n\n if ( typeof event.dataTransfer.setDragImage !== 'function' ) {\n return;\n }\n\n // Set finally the drop image\n event.dataTransfer.setDragImage(this.$el.get(0), 0, 0);\n }\n\n update()\n {\n window.dragMods = window.keyMods;\n\n let classList = [\n 'n-draggable__counter'\n ];\n\n if ( Arr.has(window.dragMods, 18) ) {\n classList.push('n-modify--alt');\n }\n\n if ( Arr.has(window.dragMods, 17) ) {\n classList.push('n-modify--ctrl');\n }\n\n if ( Arr.has(window.dragMods, 91) ) {\n classList.push('n-modify--meta');\n }\n\n this.$el.attr('class', classList.join(' '));\n }\n\n}\n\nwindow.DragCounter = new NDragCounter;\n\nclass NDragIndicator\n{\n\n $el = null;\n\n parent = null;\n\n constructor(parent)\n {\n this.$el = Dom.make('div', {\n classList: ['n-draggable__indicator']\n });\n\n this.$el.appendTo(this.parent = parent);\n }\n\n resolve(event, safezone, el, strategy = 'inner')\n {\n let rect = el.getBoundingClientRect();\n\n if ( event.clientY < rect.y + safezone ) {\n strategy = 'before';\n }\n\n if ( event.clientY > rect.y + rect.height - safezone ) {\n strategy = 'after';\n }\n\n if ( Dom.find(el).hasClass('n-expanded') ) {\n strategy = strategy === 'after' ? 'inner' : strategy;\n }\n\n Arr.has(['before', 'after'], strategy) ?\n this.show(el, strategy) : this.hide();\n\n\n return strategy;\n }\n\n show(el, strategy)\n {\n let offsetTop = Dom.find(el).offsetTop(this.parent);\n\n let style = {\n top: offsetTop || 1\n };\n\n if ( strategy === 'after' ) {\n style.top = offsetTop + Dom.find(el).height();\n }\n\n this.$el.css(Obj.map(style, (item) => item + 'px'));\n }\n\n hide()\n {\n this.$el.css(null);\n }\n\n destroy()\n {\n this.$el.get(0).remove();\n }\n\n}\n\nclass NDraghandler\n{\n\n uid = null;\n\n rootNode = null;\n childNodes = {};\n\n dropNodes = [];\n cacheNodes = [];\n\n strategy = 'nodrop';\n frames = 0;\n timeout = 0;\n dragcount = {};\n\n constructor(rootNode)\n {\n this.rootNode = rootNode;\n }\n\n bindRoot(frame = null)\n {\n this.DragIndicator = new NDragIndicator(frame || this.rootNode.$el);\n\n if ( window.DragCache ) {\n this.bindDragstart.call(this, ...window.DragCache);\n }\n\n Dom.find(this.rootNode.$el).on('dragenter', (event) => {\n this.onDragenterRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragover', (event) => {\n this.onDragoverRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragleave', (event) => {\n this.onDragleaveRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragend', (event) => {\n this.onDragendRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('drop', (event) => {\n this.onDragdropRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragdrop', (event) => {\n this.onDragdropRoot(event);\n });\n\n Event.bind('NDrag:start', this.bindDragstart.bind(this),\n this.rootNode.uid);\n\n Event.bind('NDrag:end', this.bindDragend.bind(this),\n this.rootNode.uid);\n\n Event.bind('NDrag:drop', this.bindDragdrop.bind(this),\n this.rootNode.uid);\n }\n\n unbindRoot()\n {\n let events = [\n 'dragstart',\n 'dragenter',\n 'dragover',\n 'dragleave',\n 'dragend',\n 'drop',\n 'dragdrop',\n ];\n\n Dom.find(this.rootNode.$el).off(events);\n\n Event.unbind('NDrag:start', this.rootNode.uid);\n Event.unbind('NDrag:end', this.rootNode.uid);\n Event.unbind('NDrag:drop', this.rootNode.uid);\n }\n\n onDragenterRoot(event)\n {\n event.preventDefault();\n }\n\n onDragoverRoot(event)\n {\n let isNode = Dom.find(event.target)\n .closest('.n-draglist-item');\n\n if ( isNode || !this.cacheNodes.length ) {\n return;\n }\n\n event.preventDefault();\n\n if ( this.frames && Date.now() - this.frames < 135 ) {\n return;\n }\n\n let allowDrop = this.rootNode.allowDrop;\n\n if ( !Any.isFunction(allowDrop) ) {\n allowDrop = () => this.rootNode.allowDrop;\n }\n\n let rainbow = Arr.each(this.cacheNodes, (node) => {\n return !!allowDrop(node, null, this.strategy);\n });\n\n this.strategy = 'root';\n\n if ( Arr.has(rainbow, false) ) {\n this.strategy = 'nodrop';\n }\n\n this.DragIndicator.hide();\n\n if ( this.strategy !== 'nodrop' ) {\n Dom.find(this.rootNode.$el).addClass('n-dragover');\n } else {\n Dom.find(this.rootNode.$el).removeClass('n-dragover');\n }\n\n if ( this.strategy === 'nodrop' ) {\n Dom.find(this.rootNode.$el).addClass('n-nodrop');\n } else {\n Dom.find(this.rootNode.$el).removeClass('n-nodrop');\n }\n\n this.frames = Date.now();\n }\n\n onDragleaveRoot(event)\n {\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n }\n\n onDragendRoot(event)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n\n if ( this.strategy !== 'root' ) {\n return;\n }\n\n Event.fire('NDrag:end');\n }\n\n onDragdropRoot(event)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n\n if ( this.strategy !== 'root' ) {\n return;\n }\n\n event.preventDefault();\n\n this.moveNodes(null, this.strategy);\n\n Event.fire('NDrag:drop');\n }\n\n bindDragstart(group, cache)\n {\n if ( Arr.has(this.rootNode.allowGroups, group) ) {\n this.cacheNodes = JSON.parse(JSON.stringify(cache));\n }\n }\n\n bindDragend()\n {\n this.dragcount = {};\n\n this.cacheNodes = this.dropNodes = [];\n }\n\n bindDragdrop(...args)\n {\n if ( !this.dropNodes.length ) {\n return;\n }\n\n this.rootNode.tempSelected = [];\n\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected);\n\n if ( !this.rootNode.removeNode ) {\n return;\n }\n\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n this.unlinkNodes(clone);\n this.removeNodes(clone);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n onDragstartNode(event, node)\n {\n if ( !this.rootNode.isSelected(node) ) {\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected = [node.uid]);\n }\n\n let cache = Arr.each(this.rootNode.tempSelected, (id) => {\n return Arr.find(this.rootNode.virtuals, { [this.rootNode.uniqueProp]: id });\n });\n\n window.DragCounter.get(event, cache.length);\n\n Arr.map(cache, (value) => {\n return { value, item: Obj.get(this.rootNode, value.route) };\n });\n\n Event.fire('NDrag:start', this.rootNode.group,\n this.dropNodes = cache);\n\n window.DragCache = [\n this.rootNode.group, this.dropNodes\n ];\n\n this.dragcount[node.uid] = 0;\n }\n\n onDragenterNode(event, node)\n {\n event.preventDefault();\n\n if ( !this.dragcount[node.uid] ) {\n this.dragcount[node.uid] = 0;\n }\n\n this.dragcount[node.uid] ++;\n }\n\n onDragoverNode(event, node)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n event.preventDefault();\n\n if ( this.frames && Date.now() - this.frames < 45 ) {\n return;\n }\n\n let safezone = this.rootNode\n .safezone(node.$el.clientHeight);\n\n this.strategy = this.DragIndicator\n .resolve(event, safezone, node.$el);\n\n let targetNode = {\n value: node.value, item: node.item\n };\n\n let allowDrop = this.rootNode.allowDrop;\n\n if ( !Any.isFunction(allowDrop) ) {\n allowDrop = () => this.rootNode.allowDrop;\n }\n\n let rainbow = Arr.each(this.cacheNodes, (node) => {\n return !!allowDrop(node, targetNode, this.strategy);\n });\n\n let isInSelf = Arr.has(node.value.cascade,\n this.rootNode.tempSelected);\n\n rainbow.push(!isInSelf);\n\n if ( Arr.has(rainbow, false) ) {\n this.strategy = 'nodrop';\n }\n\n if ( this.strategy === 'nodrop' ) {\n this.DragIndicator.hide();\n }\n\n if ( this.strategy !== 'nodrop' ) {\n Dom.find(node.$el).addClass('n-dragover');\n Dom.find(node.$el).removeClass('n-nodrop');\n }\n\n if ( this.strategy === 'nodrop' ) {\n Dom.find(node.$el).removeClass('n-dragover');\n Dom.find(node.$el).addClass('n-nodrop');\n }\n\n this.frames = Date.now();\n }\n\n onDragleaveNode(event, node)\n {\n this.dragcount[node.uid] --;\n\n if ( this.dragcount[node.uid] !== 0 ) {\n return;\n }\n\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n }\n\n onDragendNode(event, node)\n {\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n Event.fire('NDrag:end');\n\n window.DragCache = null;\n }\n\n onDragdropNode(event, node)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n if ( this.strategy === 'nodrop' ) {\n return;\n }\n\n event.preventDefault();\n\n this.moveNodes(node, this.strategy);\n\n Event.fire('NDrag:drop');\n }\n\n bindNode(node)\n {\n if ( this.childNodes[node.uid] ) {\n this.unbindNode(node);\n }\n\n let $handle = Dom.find(node.$el);\n\n if ( this.rootNode.handle ) {\n $handle = $handle.find('[draggable]');\n }\n\n let $el = Dom.find(node.$el);\n\n $handle.on('dragstart', (event) => {\n this.onDragstartNode(event, node);\n });\n\n $el.on('dragenter', (event) => {\n this.onDragenterNode(event, node);\n });\n\n $el.on('dragover', (event) => {\n this.onDragoverNode(event, node);\n });\n\n $el.on('dragleave', (event) => {\n this.onDragleaveNode(event, node);\n });\n\n $el.on('dragend', (event) => {\n this.onDragendNode(event, node);\n });\n\n $el.on('drop', (event) => {\n this.onDragdropNode(event, node);\n });\n\n $el.on('dragdrop', (event) => {\n this.onDragdropNode(event, node);\n });\n\n this.childNodes[node.uid] = node;\n }\n\n unbindNode(node)\n {\n let $handle = Dom.find(node.$el);\n\n if ( this.rootNode.handle ) {\n $handle = $handle.find('[draggable]');\n }\n\n $handle.off('dragstart');\n\n let $el = Dom.find(node.$el);\n\n $el.off([\n 'dragenter',\n 'dragover',\n 'dragleave',\n 'dragend',\n 'drop',\n 'dragdrop',\n ]);\n\n $el.removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n delete this.childNodes[node.uid];\n }\n\n moveNodes(target, strategy) {\n\n if ( this.rootNode.items !== undefined ) {\n return this.moveNodesMany(target, strategy);\n }\n\n if ( this.rootNode.item !== undefined ) {\n return this.moveNodesOne(target, strategy);\n }\n\n return null;\n }\n\n moveNodesOne(target, strategy)\n {\n let clone = {\n items: [Obj.clone(this.rootNode.item)]\n };\n\n if ( this.rootNode.insertNode ) {\n clone = this.moveNodesRoot(clone, target);\n }\n\n if ( this.rootNode.removeNode ) {\n clone = this.removeNodes(clone);\n }\n\n let sources = Arr.each(this.cacheNodes, (node) => {\n return node.item[this.rootNode.uniqueProp];\n });\n\n let source = Arr.first(this.cacheNodes);\n\n this.rootNode.$emit('move', Obj.get(source, 'value.id'),\n Obj.get(target, 'uid'), strategy);\n\n this.rootNode.$emit('moveRaw',\n source, target, strategy);\n\n this.rootNode.$emit('update:item',\n Obj.get(source, 'item'));\n }\n\n moveNodesMany(target, strategy)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n if ( this.rootNode.removeNode ) {\n this.unlinkNodes(clone);\n }\n\n if ( !this.dropNodes.length ) {\n Arr.each(this.cacheNodes, (value, key) => {\n this.cacheNodes[key]['item'] = this.rootNode.transformDrop(value.item);\n });\n }\n\n if ( this.rootNode.insertNode && strategy === 'root' ) {\n clone = this.moveNodesRoot(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'inner' ) {\n clone = this.moveNodesInto(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'before' ) {\n clone = this.moveNodesBefore(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'after' ) {\n clone = this.moveNodesAfter(clone, target);\n }\n\n if ( this.rootNode.removeNode ) {\n clone = this.removeNodes(clone);\n }\n\n let sources = Arr.each(this.cacheNodes, (node) => {\n return node.item[this.rootNode.uniqueProp];\n });\n\n this.dropNodes = this.rootNode.tempSelected = [];\n\n let eventName = 'move';\n\n if ( Arr.has(window.dragMods, 18) ) {\n eventName = 'moveAlt';\n }\n\n if ( Arr.has(window.dragMods, 17) ) {\n eventName = 'moveCtrl';\n }\n\n if ( Arr.has(window.dragMods, 91) ) {\n eventName = 'moveMeta';\n }\n\n this.rootNode.$emit(eventName, sources,\n Obj.get(target, 'uid'), strategy);\n\n this.rootNode.$emit(eventName + 'Raw',\n this.cacheNodes, target, strategy);\n\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n unlinkNodes(clone)\n {\n Arr.each(this.dropNodes, (node) => {\n Obj.set(clone, node.value.route, null);\n });\n }\n\n removeNodes(clone, prop = 'items')\n {\n clone[prop] = Arr.filter(clone[prop], (node) => {\n return !!node;\n });\n\n Arr.map(clone[prop], (node) => {\n\n if ( !node[this.rootNode.childProp] ) {\n return node;\n }\n\n return this.removeNodes(node,\n this.rootNode.childProp);\n });\n\n return clone;\n }\n\n moveNodesRoot(clone)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n Arr.each(this.cacheNodes, (node) => {\n clone.items.push(node.item);\n });\n\n return clone;\n }\n\n moveNodesInto(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = [\n target.value.route,\n this.rootNode.childProp\n ].join('.');\n\n let children = Obj.get(clone,\n targetRoute, []);\n\n Arr.each(this.cacheNodes, (node) => {\n children.push(node.item);\n });\n\n Obj.set(clone, targetRoute, children);\n\n return clone;\n }\n\n moveNodesBefore(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = target.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n Arr.each(this.cacheNodes, (node, index) => {\n items.splice(target.value.index + index, 0, node.item);\n });\n\n Obj.set(clone, targetRoute, items);\n\n return clone;\n }\n\n moveNodesAfter(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = target.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n Arr.each(this.cacheNodes, (node, index) => {\n items.splice(target.value.index + index + 1, 0, node.item);\n });\n\n Obj.set(clone, targetRoute, items);\n\n return clone;\n }\n\n copyNode(node)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n let targetRoute = node.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n let target = Obj.except(node.item, [], {\n [this.rootNode.uniqueProp]: UUID()\n });\n\n items.splice(node.value.index + 1,\n 0, target);\n\n Obj.set(clone, targetRoute, items);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n removeNode(node)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n let targetRoute = node.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n items.splice(node.value.index, 1);\n\n Obj.set(clone, targetRoute, items);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n reduce(items, ...props)\n {\n return Arr.reduce(items, (merge, item, index) =>\n this.reduceItem(merge, item, Num.int(index), ...props), []);\n }\n\n reduceItem(merge, item, index, depth = 0, route = 'items', cascades = [])\n {\n // Get a unique id\n let unique = Obj.get(item,\n this.rootNode.uniqueProp, UUID());\n\n // Add unique to cascader\n let tempCascade = Arr.merge(cascades,\n [unique]);\n\n let virtual = {\n index: index,\n depth: depth,\n route: [route, index].join('.'),\n parent: Arr.last(cascades),\n cascade: tempCascade,\n };\n\n virtual[this.rootNode.uniqueProp] = unique;\n\n let children = Obj.get(item,\n this.rootNode.childProp, []);\n\n if ( Any.isEmpty(children) ) {\n return Arr.merge(merge, [virtual]);\n }\n\n let childRoute = [\n route, index,\n this.rootNode.childProp\n ].join('.');\n\n let props = [\n depth + 1, childRoute, tempCascade\n ]\n\n return Arr.merge(merge, [virtual],\n this.reduce(children, ...props));\n }\n\n}\n\nexport default NDraghandler;","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDraglist',\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n }\n },\n\n expanded: {\n default()\n {\n return [];\n }\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n safezone: {\n default()\n {\n return (height) => height * 0.265;\n }\n },\n\n lazyload: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 34;\n },\n type: [Number]\n },\n\n itemOffset: {\n default()\n {\n return 30;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderSelect: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderExpand: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NDraggable: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(),\n modifier: [],\n virtuals: [], \n visible: [], \n childNodes: {}, \n highlight: [],\n firstSelected: null,\n lastSelected: null,\n tempCurrent: this.current, \n tempExpanded: this.expanded, \n tempSelected: this.selected\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n\n Dom.find(window).on('keydown',\n this.watchModifierDown, this._.uid);\n\n Dom.find(window).on('keyup',\n this.watchModifierUp, this._.uid);\n },\n\n mounted()\n {\n let frame = this.$refs.virtualscroller.\n $refs.inner;\n\n this.drag.bindRoot(frame);\n\n this.$watch('tempSelected', this.watchSelected, \n { deep: true });\n\n this.refreshVirtuals();\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n\n Dom.find(document).off('keydown', null, this.uid);\n Dom.find(document).off('keyup', null, this.uid);\n },\n\n watch: {\n \n items()\n {\n if ( this.scrollTopOnChange ) {\n this.scrollTo();\n }\n\n this.refreshVirtuals();\n },\n\n virtuals()\n {\n this.filterVirtuals();\n },\n\n expanded(value)\n {\n this.tempExpanded = value;\n\n this.filterVirtuals();\n },\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n current(value)\n {\n this.tempCurrent = value;\n }\n\n },\n\n methods: {\n\n watchModifierDown(e)\n {\n Arr.add(this.modifier, e.which);\n },\n\n watchModifierUp(e)\n {\n Arr.remove(this.modifier, e.which);\n },\n\n watchSelected()\n {\n if ( ! this.tempSelected.length ) {\n return this.firstSelected = null;\n }\n\n this.firstSelected = Arr.find(this.virtuals, {\n [this.uniqueProp]: this.tempSelected[0]\n });\n },\n\n updateNode(node)\n {\n Obj.set(this, node.value.route, node.item);\n\n this.$emit('update:items', this.items);\n },\n\n findVirtual(unique)\n {\n let value = Arr.find(this.virtuals, (item) => {\n return item[this.uniqueProp] === unique;\n });\n\n if ( ! value ) {\n return null;\n }\n\n return {\n value, item: Obj.get(this, value.route, null)\n };\n },\n\n refreshVirtuals()\n {\n this.virtuals = this.drag.reduce(this.items);\n\n if ( window.DEBUG_NDLIST ) {\n console.log('Total virtual items mounted: ' + this.virtuals.length);\n }\n },\n\n filterVirtuals()\n {\n this.visible = Arr.filter(this.virtuals, (node) => {\n return Arr.contains(this.tempExpanded, node.cascade.slice(0, -1));\n });\n },\n\n getIndex(unique)\n {\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: unique\n });\n },\n\n getCurrentIndex()\n {\n if ( ! this.tempCurrent ) {\n return -1;\n }\n\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n },\n\n scrollTo(x = 0, y = 0)\n {\n if ( ! this.$refs.virtualscroller ) {\n return Any.delay(() => this.scrollTo(x, y));\n }\n\n this.$refs.virtualscroller.scrollTo(x, y);\n },\n\n scrollToIndex(index)\n {\n if ( ! this.$refs.virtualscroller ) {\n return Any.delay(() => this.scrollToIndex(index));\n }\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isDraggable(node)\n {\n let canDrag = this.allowDrag;\n\n if ( ! Any.isFunction(canDrag) ) {\n canDrag = () => this.allowDrag;\n }\n\n return canDrag(node);\n },\n\n isHighlight(node)\n {\n return Arr.has(this.highlight, node.value[this.uniqueProp]);\n },\n\n highlightNode(value, key = null)\n {\n clearTimeout(this.refresh);\n\n // Clear highlight items\n this.highlight = [];\n\n Arr.recursive(this.items, this.childProp, (node, cascade) => {\n\n let val = node;\n\n if ( !Any.isEmpty(key) ) {\n val = Obj.get(val, key);\n }\n\n if ( ! Any.isFunction(value) ) {\n value = (val) => val === value;\n }\n\n if ( ! value(val) ) {\n return;\n }\n\n Arr.each(cascade, (item) => {\n Arr.add(this.tempExpanded, item[this.uniqueProp]);\n });\n\n Arr.add(this.highlight, node[this.uniqueProp]);\n });\n\n if ( ! this.highlight.length ) {\n return;\n }\n\n this.$nextTick(this.scrollToHighlight);\n \n this.refresh = setTimeout(() =>\n this.highlight = [], this.highlightTimeout);\n \n this.filterVirtuals();\n },\n\n scrollToHighlight()\n {\n if ( ! this.highlight.length ) {\n return;\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: Arr.first(this.highlight)\n });\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isCurrent(node)\n {\n return this.renderCurrent && this.tempCurrent && \n node.value[this.uniqueProp] === this.tempCurrent[this.uniqueProp] ;\n },\n\n setCurrent(node)\n {\n let isSameNode = this.tempCurrent && \n this.tempCurrent[this.uniqueProp] === node.value[this.uniqueProp];\n\n if ( isSameNode ) {\n return;\n }\n\n this.$emit('update:current', \n this.tempCurrent = node.item);\n \n Event.fire('NDraglist:syncCurrent', node.item, this.uid);\n },\n\n setRawCurrent(index)\n {\n let route = Obj.get(this.visible, \n [index, 'route']);\n\n if ( ! route ) {\n return this.setRawCurrent(0);\n }\n\n let item = Obj.get(this, route);\n\n this.$refs.virtualscroller\n .scrollIntoView(index);\n\n this.$emit('update:current', \n this.tempCurrent = item);\n \n Event.fire('NDraglist:syncCurrent', item, this.uid);\n },\n\n setNextCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = 0;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index++;\n }\n\n if ( index >= this.visible.length ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n setPrevCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = this.visible.length - 1;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index--;\n }\n\n if ( index < 0 ) {\n index = reset;\n }\n \n this.setRawCurrent(index);\n },\n\n syncCurrent()\n {\n return ['NDraglist:syncCurrent', this.uid];\n },\n\n isDisabled(node)\n {\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n return ! canSelect(node) || (this.firstSelected &&\n node.value.depth !== this.firstSelected.depth);\n },\n\n hasChildren(node)\n {\n return !! this.getChildren(node).length;\n },\n\n getChildren(node)\n {\n return Obj.get(node.item, this.childProp, []);\n },\n\n isExpanded(node)\n {\n return Arr.has(this.tempExpanded, node.value[this.uniqueProp]);\n },\n\n expandItem(node)\n {\n if ( ! this.hasChildren(node) ) {\n return;\n }\n\n Arr.toggle(this.tempExpanded, node.value[this.uniqueProp]);\n\n this.filterVirtuals();\n },\n\n expandCurrent()\n {\n if ( ! this.tempCurrent ) {\n return;\n }\n\n let children = Obj.get(this.tempCurrent, \n this.childProp);\n\n if ( Any.isEmpty(children) ) {\n return;\n }\n\n Arr.toggle(this.tempExpanded, \n this.tempCurrent[this.uniqueProp]);\n\n this.filterVirtuals();\n },\n\n isSelected(node)\n {\n return Arr.has(this.tempSelected, node.value[this.uniqueProp]);\n },\n\n isTotalSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length === this.tempSelected;\n },\n\n isInterSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length !== this.tempSelected &&\n this.tempSelected;\n },\n\n toggleSingleNode(node)\n {\n Arr.toggle(this.tempSelected, this.lastSelected =\n node.value[this.uniqueProp]);\n },\n\n toggleRangeNode(node)\n {\n let indexies = [0, -1], reversed = false;\n\n if ( ! Any.isEmpty(this.lastSelected) ) {\n indexies[1] = this.getIndex(this.lastSelected);\n }\n\n indexies[0] = this.getIndex(node.value[this.uniqueProp]);\n\n if ( indexies[1] > indexies[0] ) {\n reversed = true;\n }\n\n if ( ! reversed ) {\n indexies = [indexies[1]+1, indexies[0]+1];\n }\n\n Arr.each(this.items.slice(indexies[0], indexies[1]), (item, index) => {\n Arr.toggle(this.tempSelected, item[this.uniqueProp]);\n });\n\n this.lastSelected = node.value[this.uniqueProp];\n },\n\n selectItem(node)\n {\n if ( this.isDisabled(node) ) {\n return;\n }\n\n ! Arr.has(this.modifier, 16) || this.renderExpand ?\n this.toggleSingleNode(node) : this.toggleRangeNode(node);\n\n this.$emit('update:selected', this.tempSelected);\n },\n\n selectAll()\n {\n let result = Arr.filter(this.visible, (item) => {\n\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n let row = {\n value: item, item: Obj.get(this, item.route)\n };\n\n return ! item.depth && canSelect(row);\n });\n\n let indexies = Arr.each(result, (item) => {\n return item[this.uniqueProp];\n });\n\n if ( indexies.length === this.tempSelected.length ) {\n return this.$emit('update:selected', this.tempSelected = []);\n }\n\n this.lastSelected = null;\n\n this.$emit('update:selected', this.tempSelected = indexies);\n },\n\n unselectAll()\n {\n if ( this.tempSelected.length ) {\n this.$emit('update:selected', this.tempSelected = []);\n }\n },\n\n bindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).on('keydown', \n this.onKeydown, this.uid)\n },\n\n unbindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).off('keydown', \n null, this.uid)\n },\n\n onKeydown(event, el)\n {\n if ( Dom.find(el).closest('input') ) {\n return;\n }\n\n if ( event.which === 32 ) {\n event.preventDefault();\n event.stopPropagation();\n this.expandCurrent();\n }\n\n if ( event.which === 38 ) {\n event.preventDefault();\n event.stopPropagation();\n this.setPrevCurrent();\n }\n\n if ( event.which === 40 ) {\n event.preventDefault();\n event.stopPropagation();\n this.setNextCurrent();\n }\n }\n\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-draglist__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entries') }\n </NEmptyIcon>\n );\n },\n\n renderItem(props)\n {\n return (\n <NDraglistItem {...Obj.except(props, ['index'])}>\n { { default: this.$slots.default } }\n </NDraglistItem>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draglist',\n 'n-draglist--' + this.size,\n 'n-draglist--' + this.type\n ];\n\n if ( ! this.items.length ) {\n classList.push('n-empty');\n }\n\n let passed = [\n 'threshold', 'bufferItems', 'itemHeight', \n 'overflowX', 'overflowY', 'offsetX', 'offsetY', 'useKeys'\n ];\n\n let props = Obj.only(this.$props, passed, {\n items: this.visible,\n onMouseenter: this.bindKeydown,\n onMouseleave: this.unbindKeydown\n });\n\n return (\n <NVirtualscroller ref=\"virtualscroller\" class={classList} {...props}>\n { { default: this.ctor('renderItem'), empty: this.ctor('renderEmpty') } }\n </NVirtualscroller>\n );\n }\n\n}\n","import { Str, Obj, Arr, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDraglistItem',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n \n },\n\n provide()\n {\n return {\n NDraggableItem: this\n };\n },\n\n props: {\n\n value: {\n required: true\n },\n\n },\n\n computed: {\n\n uid()\n {\n return Obj.get(this.value, this.NDraggable.uniqueProp);\n },\n\n item()\n {\n return Obj.get(this.NDraggable, this.value.route);\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n init: ! this.NDraggable.lazyload\n };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => {\n\n if ( this.NDraggable.draggable ) {\n this.timer = setTimeout(() => {\n this.NDraggable.drag.bindNode(this);\n }, 10);\n }\n\n this.init = true;\n }, 5);\n },\n\n beforeUnmount()\n {\n clearTimeout(this.timer);\n\n this.NDraggable.drag.unbindNode(this);\n },\n\n methods: {\n\n copy()\n {\n return this.NDraggable.drag.copyNode(this);\n },\n\n remove()\n {\n return this.NDraggable.drag.removeNode(this);\n },\n\n hasChildren()\n {\n return this.NDraggable.hasChildren(this);\n },\n\n isDisabled()\n {\n return this.NDraggable.isDisabled(this);\n },\n\n isHighlight()\n {\n return this.NDraggable.isHighlight(this);\n },\n\n isCurrent()\n {\n return this.NDraggable.isCurrent(this);\n },\n\n isDraggable()\n {\n return this.NDraggable.isDraggable(this);\n },\n\n isExpanded()\n {\n return this.NDraggable.isExpanded(this);\n },\n\n expandItem()\n {\n this.NDraggable.expandItem(this);\n },\n\n isSelected()\n {\n return this.NDraggable.isSelected(this);\n },\n\n selectItem()\n {\n this.NDraggable.selectItem(this);\n },\n\n onClick(event)\n {\n let isExpand = Dom.find(event.target)\n .closest('.n-draglist-item__expand');\n\n if ( isExpand ) {\n return;\n }\n\n this.NDraggable.setCurrent(this);\n\n if ( Arr.has(window.keyMods, 91) ) {\n this.NDraggable.selectItem(this);\n }\n\n this.NDraggable.$emit('row-click', this);\n },\n\n onDblclick()\n {\n this.NDraggable.setCurrent(this);\n\n this.NDraggable.$emit('row-dblclick', this);\n }\n\n },\n\n renderElement()\n {\n let classList = [\n 'n-draglist-item__element'\n ];\n\n if ( ! this.init ) {\n return (<div class={classList} />);\n }\n\n let props = {\n value: this.value,\n item: this.item,\n copy: this.copy,\n remove: this.remove,\n };\n\n let renderFunction = this.$slots.default;\n\n if ( this.NDraggable.renderNode ) {\n renderFunction = this.NDraggable.renderNode;\n }\n\n return (\n <div class={classList}>\n { renderFunction(props) }\n </div>\n );\n },\n\n renderSpacer()\n {\n let width = this.value.depth * \n this.NDraggable.itemOffset;\n\n if ( ! width ) {\n return null;\n }\n\n let style = {\n width: width + 'px'\n };\n\n return (\n <div class=\"n-draglist-item__spacer\" style={style}>\n { /* SPACER */ }\n </div>\n );\n },\n\n renderHandle()\n {\n if ( ! this.NDraggable.renderHandle ) {\n return null;\n }\n\n let props = {};\n\n if ( this.NDraggable.draggable && this.isDraggable() ) {\n props.draggable = true;\n }\n\n return (\n <div class=\"n-draglist-item__handle\" {...props}>\n <div class=\"n-draglist-item__ellipsis\">\n <i class={ nano.Icons.handle }></i>\n </div>\n </div>\n );\n },\n\n renderExpand()\n {\n if ( ! this.NDraggable.renderExpand ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.expandItem\n };\n\n return (\n <div class=\"n-draglist-item__expand\" {...props}>\n <div class=\"n-draglist-item__angle\">\n <i class={ nano.Icons.angleRight }></i>\n </div>\n </div>\n );\n },\n\n renderSelect()\n {\n if ( ! this.NDraggable.renderSelect ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.selectItem\n };\n\n return (\n <div class=\"n-draglist-item__select\" {...props}>\n <div class=\"n-draglist-item__checkbox\">\n <i class={ nano.Icons.checked }></i>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draglist-item'\n ];\n\n if ( this.hasChildren() ) {\n classList.push('n-children');\n }\n\n if ( this.isDisabled() ) {\n classList.push('n-disabled');\n }\n\n if ( this.isSelected() ) {\n classList.push('n-selected');\n }\n\n if ( this.isExpanded() ) {\n classList.push('n-expanded');\n }\n\n if ( this.isCurrent() ) {\n classList.push('n-current');\n }\n\n if ( this.isHighlight() ) {\n classList.push('n-highlight');\n }\n\n let props = {\n onClick: this.onClick,\n onDblclick: this.onDblclick,\n };\n\n if ( this.NDraggable.draggable && ! this.NDraggable.handle && this.isDraggable() ) {\n props.draggable = true;\n }\n\n props['data-unique'] = this.value[this.NDraggable.uniqueProp];\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHandle')() }\n { this.ctor('renderSpacer')() }\n { this.ctor('renderExpand')() }\n { this.ctor('renderSelect')() }\n { this.ctor('renderElement')() }\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDraggrid',\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n }\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n safezone: {\n default()\n {\n return (height) => -1;\n }\n },\n\n lazyload: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 200;\n },\n type: [Number]\n },\n\n itemWidth: {\n default()\n {\n return 150;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n deathzone: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderSelect: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NDraggable: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(),\n virtuals: [],\n visible: [],\n childNodes: {},\n highlight: [],\n firstSelected: null,\n tempCurrent: this.current,\n tempExpanded: this.expanded,\n tempSelected: this.selected\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n },\n\n mounted()\n {\n let frame = this.$refs.virtualscroller.\n $refs.inner;\n\n this.drag.bindRoot(frame);\n\n this.$watch('tempSelected', this.watchSelected,\n { deep: true });\n\n this.refreshVirtuals();\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n\n Dom.find(document).off('keydown', null, this.uid);\n },\n\n watch: {\n\n items()\n {\n if ( this.scrollTopOnChange ) {\n this.scrollTo();\n }\n\n this.refreshVirtuals();\n },\n\n virtuals()\n {\n this.filterVirtuals();\n },\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n current(value)\n {\n this.tempCurrent = value;\n }\n\n },\n\n methods: {\n\n watchSelected()\n {\n if ( ! this.tempSelected.length ) {\n return this.firstSelected = null;\n }\n\n this.firstSelected = Arr.find(this.virtuals, {\n [this.uniqueProp]: this.tempSelected[0]\n });\n },\n\n refreshVirtuals()\n {\n this.virtuals = this.drag.reduce(this.items);\n\n if ( window.DEBUG_NDLIST ) {\n console.log('Total virtual items mounted: ' + this.virtuals.length);\n }\n },\n\n filterVirtuals()\n {\n this.visible = Arr.filter(this.virtuals, (node) => {\n return node.depth === 0;\n });\n },\n\n getIndex(unique)\n {\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: unique\n });\n },\n\n getCurrentIndex()\n {\n if ( ! this.tempCurrent ) {\n return -1;\n }\n\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n },\n\n scrollTo(x = 0, y = 0)\n {\n this.$refs.virtualscroller.scrollTo(x, y);\n },\n\n scrollToIndex(index)\n {\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isDraggable(node)\n {\n let canDrag = this.allowDrag;\n\n if ( ! Any.isFunction(canDrag) ) {\n canDrag = () => this.allowDrag;\n }\n\n return canDrag(node);\n },\n\n isHighlight(node)\n {\n return Arr.has(this.highlight, node.value[this.uniqueProp]);\n },\n\n highlightNode(value, key = null)\n {\n clearTimeout(this.refresh);\n\n // Clear highlight items\n this.highlight = [];\n\n Arr.recursive(this.items, this.childProp, (node, cascade) => {\n\n if ( Obj.get(node, key || this.uniqueProp) !== value ) {\n return;\n }\n\n Arr.each(cascade, (item) => {\n Arr.add(this.tempExpanded, item[this.uniqueProp]);\n });\n\n Arr.add(this.highlight, node[this.uniqueProp]);\n });\n\n if ( ! this.highlight.length ) {\n return;\n }\n\n this.$nextTick(this.scrollToHighlight);\n\n this.refresh = setTimeout(() =>\n this.highlight = [], this.highlightTimeout);\n\n this.filterVirtuals();\n },\n\n scrollToHighlight()\n {\n if ( ! this.highlight.length ) {\n return;\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: Arr.first(this.highlight)\n });\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isCurrent(node)\n {\n return this.renderCurrent && this.tempCurrent &&\n node.value[this.uniqueProp] === this.tempCurrent[this.uniqueProp] ;\n },\n\n setCurrent(node)\n {\n let isSameNode = this.tempCurrent &&\n this.tempCurrent[this.uniqueProp] === node.value[this.uniqueProp];\n\n if ( isSameNode ) {\n return;\n }\n\n this.$emit('update:current',\n this.tempCurrent = node.item);\n\n Event.fire('NDraggrid:syncCurrent', node.item, this.uid);\n },\n\n setRawCurrent(index)\n {\n let route = Obj.get(this.visible,\n [index, 'route']);\n\n if ( ! route ) {\n return this.setRawCurrent(0);\n }\n\n let item = Obj.get(this, route);\n\n this.$refs.virtualscroller\n .scrollIntoView(index);\n\n this.$emit('update:current',\n this.tempCurrent = item);\n\n Event.fire('NDraggrid:syncCurrent', item, this.uid);\n },\n\n setNextCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = 0;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index++;\n }\n\n if ( index >= this.visible.length ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n setPrevCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = this.visible.length - 1;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index--;\n }\n\n if ( index < 0 ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n syncCurrent()\n {\n return ['NDraggrid:syncCurrent', this.uid];\n },\n\n isDisabled(node)\n {\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n return ! canSelect(node) || (this.firstSelected &&\n node.value.depth !== this.firstSelected.depth);\n },\n\n isSelected(node)\n {\n return Arr.has(this.tempSelected, node.value[this.uniqueProp]);\n },\n\n isTotalSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length === this.tempSelected;\n },\n\n isInterSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length !== this.tempSelected &&\n this.tempSelected;\n },\n\n selectItem(node)\n {\n if ( this.isDisabled(node) ) {\n return;\n }\n\n Arr.toggle(this.tempSelected, node.value[this.uniqueProp]);\n\n this.$emit('update:selected', this.tempSelected);\n },\n\n selectAll()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n let indexies = Arr.each(visible, (item) => {\n return item[this.uniqueProp];\n });\n\n if ( indexies.length === this.tempSelected.length ) {\n return this.$emit('update:selected', this.tempSelected = []);\n }\n\n this.$emit('update:selected', this.tempSelected = indexies);\n },\n\n unselectAll()\n {\n if ( this.tempSelected.length ) {\n this.$emit('update:selected', this.tempSelected = []);\n }\n },\n\n bindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).on('keydown',\n this.onKeydown, this.uid)\n },\n\n unbindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).off('keydown',\n null, this.uid)\n },\n\n onKeydown(event, el)\n {\n if ( Dom.find(el).closest('input') ) {\n return;\n }\n\n if ( event.which === 38 ) {\n event.preventDefault();\n event.stopPropagation();\n // this.setPrevCurrent();\n }\n\n if ( event.which === 40 ) {\n event.preventDefault();\n event.stopPropagation();\n // this.setNextCurrent();\n }\n }\n\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-draggrid__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entries') }\n </NEmptyIcon>\n );\n },\n\n renderItem(props)\n {\n return (\n <NDraggridItem {...Obj.except(props, ['index'])}>\n { { default: this.$slots.default } }\n </NDraggridItem>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draggrid',\n 'n-draggrid--' + this.size,\n 'n-draggrid--' + this.type\n ];\n\n if ( ! this.items.length ) {\n classList.push('n-empty');\n }\n\n let passed = [\n 'threshold', 'deathzone', 'itemHeight', 'itemWidth',\n 'overflowX', 'overflowY', 'offsetX', 'offsetY', 'useKeys'\n ];\n\n let props = Obj.only(this.$props, passed, {\n items: this.visible,\n onMouseenter: this.bindKeydown,\n onMouseleave: this.unbindKeydown\n });\n\n return (\n <NVirtualscroller ref=\"virtualscroller\" class={classList} {...props}>\n { { default: this.ctor('renderItem'), empty: this.ctor('renderEmpty') } }\n </NVirtualscroller>\n );\n }\n\n}\n","import { Str, Arr, Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDraggridItem',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NDraggableItem: this\n };\n },\n\n props: {\n\n value: {\n required: true\n }\n\n },\n\n computed: {\n\n uid()\n {\n return Obj.get(this.value, this.NDraggable.uniqueProp);\n },\n\n item()\n {\n return Obj.get(this.NDraggable, this.value.route);\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n init: ! this.NDraggable.lazyload\n };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => {\n\n if ( this.NDraggable.draggable ) {\n this.timer = setTimeout(() => {\n this.NDraggable.drag.bindNode(this);\n }, 50);\n }\n\n this.init = true;\n }, 40);\n },\n\n beforeUnmount()\n {\n if ( ! this.init ) {\n clearTimeout(this.timer);\n }\n\n this.NDraggable.drag.unbindNode(this);\n },\n\n methods: {\n\n copy()\n {\n return this.NDraggable.drag.copyNode(this);\n },\n\n remove()\n {\n return this.NDraggable.drag.removeNode(this);\n },\n\n isDisabled()\n {\n return this.NDraggable.isDisabled(this);\n },\n\n isHighlight()\n {\n return this.NDraggable.isHighlight(this);\n },\n\n isCurrent()\n {\n return this.NDraggable.isCurrent(this);\n },\n\n isDraggable()\n {\n return this.NDraggable.isDraggable(this);\n },\n\n isSelected()\n {\n return this.NDraggable.isSelected(this);\n },\n\n selectItem()\n {\n this.NDraggable.selectItem(this);\n },\n\n onClick()\n {\n this.NDraggable.setCurrent(this);\n\n if ( Arr.has(window.keyMods, 91) ) {\n this.NDraggable.selectItem(this);\n }\n\n this.NDraggable.$emit('row-click', this);\n },\n\n onDblclick()\n {\n this.NDraggable.setCurrent(this);\n\n this.NDraggable.$emit('row-dblclick', this);\n }\n\n },\n\n renderElement()\n {\n let classList = [\n 'n-draglist-item__element'\n ];\n\n if ( ! this.init ) {\n return (<div class={classList} />);\n }\n\n let props = {\n value: this.value,\n item: this.item,\n copy: this.copy,\n remove: this.remove,\n };\n\n let renderFunction = this.$slots.default;\n\n if ( this.NDraggable.renderNode ) {\n renderFunction = this.NDraggable.renderNode;\n }\n\n return (\n <div class={classList}>\n {renderFunction(props)}\n </div>\n );\n },\n\n renderHandle()\n {\n if ( ! this.NDraggable.renderHandle ) {\n return null;\n }\n\n let props = {};\n\n if ( this.NDraggable.draggable && this.isDraggable() ) {\n props.draggable = true;\n }\n\n return (\n <div class=\"n-draggrid-item__handle\" {...props}>\n <div class=\"n-draggrid-item__ellipsis\">\n <i class={ nano.Icons.handle }></i>\n </div>\n </div>\n );\n },\n\n renderSelect()\n {\n if ( ! this.NDraggable.renderSelect ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.selectItem\n };\n\n return (\n <div class=\"n-draggrid-item__select\" {...props}>\n <div class=\"n-draggrid-item__checkbox\">\n <i class={ nano.Icons.checked }></i>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draggrid-item'\n ];\n\n if ( this.isDisabled() ) {\n classList.push('n-disabled');\n }\n\n if ( this.isSelected() ) {\n classList.push('n-selected');\n }\n\n if ( this.isCurrent() ) {\n classList.push('n-current');\n }\n\n if ( this.isHighlight() ) {\n classList.push('n-highlight');\n }\n\n let props = {\n onClick: this.onClick,\n onDblclick: this.onDblclick,\n };\n\n if ( this.NDraggable.draggable && ! this.NDraggable.handle && this.isDraggable() ) {\n props.draggable = true;\n }\n\n props['data-unique'] = this.value[this.NDraggable.uniqueProp];\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHandle')() }\n { this.ctor('renderSelect')() }\n { this.ctor('renderElement')() }\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDropzone',\n\n model: {\n prop: 'item'\n },\n\n props: {\n\n item: {\n default()\n {\n return null;\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n },\n\n provide()\n {\n return {\n NDropzone: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(),\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n },\n\n mounted()\n {\n this.drag.bindRoot(this.$el);\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n },\n\n renderItem()\n {\n if ( Any.isEmpty(this.item) ) {\n return null;\n }\n\n return this.$slots.default && this.$slots.default(this.item)\n },\n\n renderEmpty()\n {\n if ( ! Any.isEmpty(this.item) ) {\n return null;\n }\n\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-dropzone__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entry') }\n </NEmptyIcon>\n );\n },\n\n render()\n {\n let classList = [\n 'n-dropzone',\n 'n-dropzone--' + this.size,\n 'n-dropzone--' + this.type\n ];\n\n if ( Any.isEmpty(this.item) ) {\n classList.push('n-empty');\n }\n\n return (\n <div class={classList}>\n {[this.ctor('renderItem')(), this.ctor('renderEmpty')()]}\n </div>\n );\n }\n\n}\n","import { UUID, Num, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NLoader',\n\n inject: {\n\n NLoader: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NLoader: this\n };\n },\n\n props: {\n\n visible: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n minimum: {\n default()\n {\n return 120;\n },\n type: [Number]\n },\n\n debounce: {\n default()\n {\n return 120;\n },\n type: [Number]\n }\n\n },\n\n data()\n {\n return {\n tempVisible: this.visible\n };\n },\n\n methods: {\n\n applyTimer()\n {\n this.timing = Date.now();\n\n if ( this.visible) {\n return this.tempVisible = this.visible;\n }\n\n this.startTimer();\n },\n\n startTimer()\n {\n let timing = Date.now() - this.timing;\n\n if ( timing < this.minimum ) {\n return this.restartTimer(timing);\n }\n\n this.timeout = setTimeout(() => this.tempVisible = false, \n this.debounce);\n },\n\n restartTimer(timing = 0) {\n Any.delay(this.startTimer, this.minimum - timing + 10);\n }\n\n },\n\n watch: {\n\n visible()\n {\n this.applyTimer();\n }\n\n },\n\n mounted()\n {\n this.applyTimer();\n },\n\n render()\n {\n let classList = [\n 'n-loader', \n 'n-loader--' + this.size, \n 'n-loader--' + this.type\n ];\n\n if ( this.tempVisible ) {\n classList.push('n-load');\n }\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { UUID, Arr, Obj, Dom, Any, Str, Locale, Event, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NResizer',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n width: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n minWidth: {\n default()\n {\n return 60;\n },\n type: [Number]\n },\n\n maxWidth: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n group: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n position: {\n default()\n {\n return 'right';\n },\n type: [String]\n },\n\n resizerWidth: {\n default()\n {\n return 6;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window || \n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n sizeFixed: false,\n tempValue: this.modelValue,\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n },\n\n mounted()\n {\n if ( ! this.modelValue ) {\n this.updateWidth();\n }\n\n if ( this.NScrollbar ) {\n this.bindSizechange();\n }\n\n Event.bind('NResizer:move', (...args) => {\n this.forceWidth(...args)\n }, this._.uid);\n\n Dom.find(window).on('resize', Any.debounce((...args) => {\n this.onResize(...args)\n }, 500), this._.uid);\n },\n\n updated()\n {\n this.updateWidth();\n },\n\n unmounted()\n {\n if ( this.NScrollbar ) {\n this.unbindSizechange();\n }\n\n Event.unbind('NResizer:move', \n this._.uid);\n \n Dom.find(window).off('resize', \n null, this._.uid);\n },\n\n methods: {\n\n forceWidth(group)\n {\n if ( ! Arr.has(group, this.group) ) {\n return;\n }\n \n if ( ! this.tempValue || ! this.group.length ) {\n return;\n }\n\n this.sizeFixed = true;\n\n let style = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(style);\n },\n\n updateWidth()\n {\n let width = Dom.find(this.$el)\n .width();\n\n if ( width === this.tempValue ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = width);\n \n this.updateHandle();\n },\n\n updateHandle()\n {\n let style = {};\n\n if ( this.position === 'left' ) {\n style.transform =`translateX(-${this.tempValue - this.resizerWidth}px)`\n }\n \n if ( this.position === 'right' ) {\n style.transform = `translateX(${this.tempValue - this.resizerWidth}px)`\n }\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n bindSizechange()\n {\n Dom.find(this.NScrollbar.$el).on('resized', \n Any.debounce(this.updateWidth, 50), this._.uid);\n },\n\n unbindSizechange()\n {\n Dom.find(this.NScrollbar.$el)\n .off('resized', null, this._.uid);\n },\n\n\n onResize()\n {\n if ( this.NScrollbar ) {\n return;\n }\n\n this.updateWidth();\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onLeftMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if ( this.group.length ) {\n Event.fire('NResizer:move', this.group);\n }\n\n Dom.find(this.$el).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onLeftMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onLeftMousemove, 60), this._.uid);\n },\n\n onLeftMousemove(event)\n {\n this.clientX = (window.innerWidth - \n this.getTouchEvent(event).clientX);\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = (this.clientX + scrollX - offsetX) -\n (this.resizerWidth / 2);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth,\n this.minWidth - this.resizerWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth,\n this.maxWidth - this.resizerWidth);\n }\n\n let style = {\n transform: `translateX(-${targetWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n onLeftMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mouseup, null, this._.uid);\n Dom.find(document).off(this.mousemove, null, this._.uid);\n\n if ( ! this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = this.clientX + scrollX - offsetX;\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth, this.minWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth, this.maxWidth);\n }\n\n this.tempValue = Math.round(targetWidth);\n\n Dom.find(this.$el).removeClass('n-move');\n\n let style = {\n transform: `translateX(-${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n onRightMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if ( this.group.length ) {\n Event.fire('NResizer:move', this.group);\n }\n\n Dom.find(this.$el).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onRightMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onRightMousemove, 60), this._.uid);\n },\n\n onRightMousemove(event)\n {\n this.clientX = this.getTouchEvent(event).clientX;\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = (this.clientX + scrollX - offsetX) -\n (this.resizerWidth / 2);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth,\n this.minWidth - this.resizerWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth,\n this.maxWidth - this.resizerWidth);\n }\n\n let style = {\n transform: `translateX(${targetWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n onRightMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mousemove, null, this._.uid);\n Dom.find(document).off(this.mouseup, null, this._.uid);\n\n if ( ! this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = this.clientX + scrollX - offsetX;\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth, this.minWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth, this.maxWidth);\n }\n\n this.tempValue = Math.round(targetWidth);\n\n Dom.find(this.$el).removeClass('n-move');\n\n let style = {\n transform: `translateX(${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.$emit('update:modelValue', this.tempValue);\n }\n\n },\n\n renderHandle()\n {\n if ( this.disabled ) {\n return null;\n }\n \n let classList = [\n 'n-resizer__handle',\n ];\n\n let props = {};\n\n if ( this.position === 'right' ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onRightMousedown;\n }\n\n if ( this.position === 'left' ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onLeftMousedown;\n }\n\n if ( this.resizerWidth ) {\n props.width = this.resizerWidth + 'px';\n }\n\n return (\n <div ref=\"handle\" class={classList} {...props}/>\n );\n },\n\n render()\n {\n let classList = [\n 'n-resizer',\n 'n-resizer--' + this.position,\n ];\n\n let style = {};\n\n if ( this.width && ! this.tempValue ) {\n style['width'] = this.width + 'px';\n }\n\n if ( this.width ) {\n style['flex-basis'] = this.width + 'px';\n }\n\n if ( this.minWidth ) {\n style['min-width'] = this.minWidth + 'px';\n }\n\n if ( this.maxWidth ) {\n style['max-width'] = this.maxWidth + 'px';\n }\n\n return (\n <div class={classList} style={style}>\n { [this.$slots.default(), this.ctor('renderHandle')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Any, Dom, Event, UUID } from \"@kizmann/pico-js\";\n\n\nexport default {\n\n name: 'NPopover',\n\n provide()\n {\n return {\n NPopover: this\n };\n },\n\n inject: {\n\n NPopover: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n width: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n window: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-center';\n },\n type: [String]\n },\n\n scrollClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n multiClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n framerate: {\n default()\n {\n return 15;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window || \n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n tempValue: false,\n clientX: 0,\n clientY: 0,\n target: null,\n prevent: false,\n };\n },\n\n watch: {\n\n modelValue()\n {\n this.tempValue = this.modelValue;\n },\n\n tempValue()\n {\n Any.delay(this.refreshVisible, 50);\n }\n\n },\n\n beforeMount()\n {\n this.tempValue = this.modelValue;\n },\n\n mounted()\n {\n this.target = Dom.find(this.$el).previous().get(0);\n\n if ( this.trigger === 'context' ) {\n this.target = Dom.find(this.$el).parent().get(0);\n }\n\n if ( this.window ) {\n Dom.find(document.body).append(this.$el);\n }\n\n if ( this.listen && this.trigger === 'hover' ) {\n Dom.find(document.body).on('mousemove', \n Any.framerate(this.onHover, 30), this._.uid);\n }\n\n if ( this.listen && this.trigger === 'click' ) {\n Dom.find(document.body).on(this.mousedown, \n Any.framerate(this.onClick, 30), this._.uid);\n }\n\n if ( this.listen && this.trigger === 'context' ) {\n Dom.find(document.body).on('contextmenu', \n Any.framerate(this.onContext, 30), this._.uid);\n }\n\n Dom.find(document.body).on(this.mousedown, \n Any.framerate(this.onExit, 30), this._.uid);\n\n Event.bind('NPopover:close', this.onCloseEvent, this._.uid);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n\n Dom.find(document).off('mousemove', null, this._.uid);\n Dom.find(document).off('mousedown', null, this._.uid);\n Dom.find(document).off('contextmenu', null, this._.uid);\n\n Event.unbind('NPopover:close', this._.uid);\n \n },\n\n methods: {\n\n active()\n {\n return this.tempValue;\n },\n\n open()\n {\n this.$emit('update:modelValue', \n this.tempValue = true);\n },\n\n close(type = null)\n {\n if ( this.prevent ) {\n return;\n }\n\n delete this.timer;\n\n if ( ! type ) {\n this.$emit('close');\n }\n\n if ( type === 'scroll' ) {\n this.$emit('scrollClose');\n }\n\n if ( type === 'multi' ) {\n this.$emit('multiClose');\n }\n\n this.$emit('update:modelValue', \n this.tempValue = false);\n },\n\n pause()\n {\n this.prevent = true;\n },\n\n unpause()\n {\n this.prevent = false;\n },\n\n onCloseEvent(uid)\n {\n if ( this.multiClose && this.tempValue && this._.uid !== uid ) {\n this.close('multi');\n }\n },\n\n refreshVisible()\n {\n Dom.find(this.$el).css(null);\n\n if ( ! this.tempValue ) {\n return this.stopRefreshInterval();\n }\n\n this.startRefreshInterval();\n\n delete this.passedOffset;\n },\n\n startRefreshInterval()\n {\n this.refresh = setInterval(this.updatePosition, \n 1000 / this.framerate);\n\n let onReady = () => {\n\n if ( this.listen ) {\n Dom.find(this.target).addClass('n-open');\n }\n\n Dom.find(this.$el).addClass('n-ready');\n\n if ( this.NPopover ) {\n this.NPopover.pause();\n }\n\n Event.fire('NPopover:close', this._.uid);\n }\n\n Any.delay(onReady, 100);\n },\n\n stopRefreshInterval()\n {\n clearInterval(this.refresh);\n\n if ( this.NPopover ) {\n this.NPopover.unpause();\n }\n\n if ( this.listen ) {\n Dom.find(this.target).removeClass('n-open');\n }\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n isSameOffset(offset)\n {\n if ( ! this.passedOffset ) {\n return false;\n }\n\n let rainbow = Arr.each(['x', 'y'], (key) => {\n return offset[key] === this.passedOffset[key];\n });\n\n return ! Arr.has(rainbow, false);\n },\n\n isSameSize(size)\n {\n if ( ! this.passedSize ) {\n return false;\n }\n\n let rainbow = Arr.each(['width', 'height'], (key) => {\n return size[key] === this.passedSize[key];\n });\n\n return ! Arr.has(rainbow, false);\n },\n\n getTargetHorizontal(position, fallback = null)\n {\n let targetRect = this.target.getBoundingClientRect();\n\n if ( this.trigger === 'context' ) {\n targetRect = {\n top: this.clientY, left: this.clientX, width: 2, height: 2\n };\n }\n\n let windowRect = this.$el.getBoundingClientRect();\n\n if ( this.width === -1 ) {\n windowRect.width = targetRect.width;\n }\n\n let posY = {\n\n // Set above the tagret element\n start: targetRect.top - windowRect.height,\n \n // Set at bottom of target element\n end: targetRect.top + targetRect.height,\n\n };\n\n let posX = {\n\n // Set on the left of target element\n start: targetRect.left,\n\n // Set into the center of the target element\n center: targetRect.left + (targetRect.width * 0.5) - \n (windowRect.width * 0.5),\n\n // Set on the right of the target element\n end: targetRect.left + targetRect.width - \n windowRect.width,\n\n };\n\n let offset = { x: 0, y: 0 };\n\n if ( position === 'top-start' ) {\n offset = { x: posX.start, y: posY.start };\n }\n\n if ( position === 'top-center' ) {\n offset = { x: posX.center, y: posY.start };\n }\n\n if ( position === 'top-end' ) {\n offset = { x: posX.end, y: posY.start };\n }\n\n if ( position === 'bottom-start' ) {\n offset = { x: posX.start, y: posY.end };\n }\n\n if ( position === 'bottom-center' ) {\n offset = { x: posX.center, y: posY.end };\n }\n\n if ( position === 'bottom-end' ) {\n offset = { x: posX.end, y: posY.end };\n }\n\n let inverse = this.position;\n\n if ( position.match(/^(top)\\-/) ) {\n inverse = inverse.replace(/^(top)\\-/, 'bottom-');\n }\n\n if ( position.match(/^(bottom)\\-/) ) {\n inverse = inverse.replace(/^(bottom)\\-/, 'top-');\n }\n\n let broken = offset.y + windowRect.height > \n window.innerHeight || offset.y < 0;\n\n if ( this.scrollClose && broken && ! fallback ) {\n return this.getTargetHorizontal(inverse, offset);\n }\n\n if ( fallback && broken ) {\n offset = fallback;\n }\n\n if ( offset.y < 0 ) {\n offset.y = 0;\n }\n \n if ( offset.y + windowRect.height > window.innerHeight ) {\n offset.y = window.innerHeight - windowRect.height;\n }\n\n if ( offset.x < 0 ) {\n offset.x = 0;\n }\n \n if ( offset.x + windowRect.width > window.innerWidth ) {\n offset.x = window.innerWidth - windowRect.width -\n (window.innerWidth - document.body.clientWidth);\n }\n\n return offset;\n },\n\n getTargetVertical(position, fallback = null)\n {\n let targetRect = this.target.getBoundingClientRect();\n\n if ( this.trigger === 'context' ) {\n targetRect = {\n top: this.clientY, left: this.clientX, width: 2, height: 2\n };\n }\n\n let windowRect = this.$el.getBoundingClientRect();\n\n if ( this.width === -1 ) {\n windowRect.width = targetRect.width;\n }\n \n let posY = {\n\n // Set at top edge of the target element\n start: targetRect.top,\n\n // Set at the middle of the target element\n center: targetRect.top + (targetRect.height * 0.5) - \n (windowRect.height * 0.5),\n\n // Ste at the bottom of the target elemnent\n end: targetRect.top + targetRect.height - \n windowRect.height,\n\n };\n\n let posX = {\n\n // Set to the left of the target element\n start: targetRect.left - windowRect.width,\n\n // Set to the right of the target element\n end: targetRect.left + targetRect.width,\n\n };\n\n let offset = { x: 0, y: 0 };\n\n if ( position === 'left-start' ) {\n offset = { x: posX.start, y: posY.start };\n }\n\n if ( position === 'left-center' ) {\n offset = { x: posX.start, y: posY.center };\n }\n\n if ( position === 'left-end' ) {\n offset = { x: posX.start, y: posY.end };\n }\n\n if ( position === 'right-start' ) {\n offset = { x: posX.end, y: posY.start };\n }\n\n if ( position === 'right-center' ) {\n offset = { x: posX.end, y: posY.center };\n }\n\n if ( position === 'right-end' ) {\n offset = { x: posX.end, y: posY.end };\n }\n\n let inverse = this.position;\n\n if ( position.match(/^(left)\\-/) ) {\n inverse = inverse.replace(/^(left)\\-/, 'right-');\n }\n\n if ( position.match(/^(right)\\-/) ) {\n inverse = inverse.replace(/^(right)\\-/, 'left-');\n }\n\n let broken = offset.x + windowRect.width > \n window.innerWidth || offset.x < 0;\n\n if ( this.scrollClose && broken && ! fallback ) {\n return this.getTargetVertical(inverse, offset);\n }\n\n if ( fallback && broken ) {\n offset = fallback;\n }\n\n if ( offset.y < 0 ) {\n offset.y = 0;\n }\n \n if ( offset.y + windowRect.height > window.innerHeight ) {\n offset.y = window.innerHeight - windowRect.height;\n }\n\n if ( offset.x < 0 ) {\n offset.x = 0;\n }\n \n if ( offset.x + windowRect.width > window.innerWidth ) {\n offset.x = window.innerWidth - windowRect.width -\n (window.innerWidth - document.body.clientWidth);\n }\n\n return offset;\n },\n\n getTargetOffset()\n {\n let position = this.position;\n\n if ( position.match(/^(top|bottom)\\-/) ) {\n return this.getTargetHorizontal(position);\n }\n\n if ( position.match(/^(left|right)\\-/) ) {\n return this.getTargetVertical(position);\n }\n\n return targetRect;\n },\n\n updatePosition()\n {\n let size = this.$el.getBoundingClientRect(),\n rect = this.target.getBoundingClientRect();\n\n let isSameSize = this.isSameSize(size);\n\n if ( isSameSize && this.isSameOffset(rect) ) {\n return;\n }\n\n if ( ! this.timer ) {\n this.timer = Date.now();\n }\n\n this.passedSize = size;\n\n if ( this.width ) {\n Dom.find(this.$el).css({ width: this.width + 'px' });\n }\n\n let offset = this.getTargetOffset();\n\n let scroll = Dom.find(document.body)\n .scroll();\n\n let style = {\n 'z-index': window.zIndex++,\n 'top': Math.round(offset.y + scroll.top) + 'px', \n 'left': Math.round(offset.x + scroll.left) + 'px', \n };\n\n if ( this.width === -1 ) {\n style.width = rect.width + 'px';\n }\n\n Dom.find(this.$el).css(style);\n\n let isScrollClose = this.passedOffset && isSameSize &&\n (Date.now() - this.timer) > 500;\n\n if ( this.scrollClose && isScrollClose ) {\n this.close('scroll');\n }\n\n this.passedOffset = rect;\n },\n\n onHover(event, el)\n {\n if ( this.disabled ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target),\n source = Dom.find(el).closest(this.$el);\n\n let result = (!! target || !! source);\n\n if ( this.tempValue === result ) {\n return;\n }\n\n if ( ! result ) {\n return this.$nextTick(this.close);\n }\n\n this.$emit('update:modelValue', this.tempValue = result);\n },\n\n onClick(event, el)\n {\n let keyCode = event.which === 1 ||\n event.which === 0;\n\n if ( this.disabled || this.tempValue || ! keyCode ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target),\n source = Dom.find(el).closest(this.$el);\n\n let result = (!! target || !! source);\n\n if ( this.tempValue === result ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = result);\n },\n\n onContext(event, el)\n {\n let keyCode = event.which === 3;\n\n if ( this.disabled || this.tempValue || ! keyCode ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target),\n source = Dom.find(el).closest(this.$el);\n\n this.clientX = event.clientX;\n this.clientY = event.clientY;\n\n let result = (!! target || !! source);\n\n if ( result ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if ( this.tempValue === result ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = result);\n },\n\n onExit(event, el)\n {\n if ( this.disabled || ! this.tempValue ) {\n return;\n }\n\n if ( !! Dom.find(el).closest(this.$el) ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target);\n\n if ( this.trigger !== 'context' && !! target ) {\n return;\n }\n\n this.close();\n }\n\n },\n\n renderBody()\n {\n if ( this.$slots.raw ) {\n return this.$slots.raw();\n }\n\n return (\n <div class=\"n-popover__frame\">\n { this.$slots.header &&\n <div class=\"n-popover__header\">\n { this.$slots.header() }\n </div>\n }\n <div class=\"n-popover__body\">\n { this.$slots.default() }\n </div>\n { this.$slots.footer &&\n <div class=\"n-popover__footer\">\n { this.$slots.footer() }\n </div>\n }\n </div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-popover',\n 'n-popover--' + this.type,\n 'n-popover--' + this.size,\n 'n-popover--' + this.position,\n ];\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let viewBody = this.modelValue;\n\n if ( Any.isNull(this.modelValue) ) {\n viewBody = this.tempValue;\n }\n\n return (\n <div class={classList}>\n { viewBody && this.ctor('renderBody')() }\n </div>\n );\n }\n\n}\n","export default {\n\n name: 'NPopoverGroup',\n\n inject: {\n NPopover: {\n default: undefined\n }\n },\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n\n },\n\n computed: {\n\n tempSize()\n {\n if ( this.NPopover ) {\n return this.NPopover.size;\n }\n\n return this.size;\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-popover-group',\n 'n-popover-group--' + this.tempSize,\n ];\n\n return (\n <label class={classList}>\n <span>{ this.$slots.default() }</span>\n </label>\n );\n }\n\n}\n","import { Obj, Arr, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPopoverOption',\n\n inject: {\n NPopover: {\n default: undefined\n }\n },\n\n props: {\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n focus: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n active: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n iconPosition: {\n default()\n {\n return 'after';\n },\n type: [String]\n },\n\n image: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n imagePosition: {\n default()\n {\n return 'before';\n },\n type: [String]\n },\n\n clickClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n\n },\n\n computed: {\n\n tempSize()\n {\n if ( this.NPopover ) {\n return this.NPopover.size;\n }\n\n return this.size;\n }\n\n },\n\n methods: {\n\n onClick(event)\n {\n if ( this.NPopover && this.clickClose ) {\n this.NPopover.close();\n }\n\n this.$emit('fakeclick', event);\n }\n\n },\n\n renderImage()\n {\n if ( ! this.image ) {\n return null;\n }\n\n let classList = [\n 'n-image',\n 'n-image--' + this.imagePosition,\n ];\n\n return (<img class={classList} src={this.image} />);\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n let classList = [\n 'n-icon', \n 'n-icon--' + this.iconPosition,\n ];\n\n classList.push(this.icon);\n\n return (<i class={classList}></i>);\n },\n\n renderContent()\n {\n if ( this.$slots.raw ) {\n return this.$slots.raw();\n }\n\n return (\n <span>{ this.$slots.default() }</span>\n );\n },\n\n render()\n {\n let classList = [\n 'n-popover-option',\n 'n-popover-option--' + this.type,\n 'n-popover-option--' + this.tempSize,\n ];\n\n if ( this.active ) {\n classList.push('n-active');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( ! this.disabled ) {\n props.onClick = this.onClick;\n }\n\n if ( this.disabled ) {\n props.disabled = true;\n }\n\n return (\n <a class={classList} href=\"javascript:void(0)\" {...props}>\n { this.ctor('renderImage')() }\n { this.ctor('renderContent')() }\n { this.ctor('renderIcon')() }\n </a>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NModal',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n width: {\n default()\n {\n return '50%';\n },\n type: [String]\n },\n\n height: {\n default()\n {\n return 'auto';\n },\n type: [String]\n },\n\n title: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'center-center';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n tempValue()\n {\n this.startRefreshTimeout();\n }\n\n },\n\n provide()\n {\n return {\n NModal: this\n };\n },\n\n data()\n {\n return {\n target: null, tempValue: false\n };\n },\n\n mounted()\n {\n this.target = Dom.find(this.selector || this.$el)\n .previous().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).on('keydown',\n this.eventKeydown, this._.uid);\n\n let showModal = () => {\n this.tempValue = true;\n };\n\n if ( this.modelValue ) {\n Any.delay(showModal, 100);\n }\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n\n Dom.find(document.body).off('keydown',\n null, this._.uid);\n },\n\n methods: {\n\n openModal(force = false, source = null)\n {\n if ( this.tempValue ) {\n return;\n }\n\n if ( this.closable || force ) {\n this.tempValue = true;\n }\n\n this.$emit('update:modelValue', true, source);\n },\n\n closeModal(force = false, source = null)\n {\n if ( ! this.tempValue ) {\n return;\n }\n\n if ( ! this.update ) {\n return this.$emit('close', source);\n }\n\n if ( this.closable || force ) {\n this.tempValue = false;\n }\n\n this.$emit('update:modelValue', false, source);\n },\n\n stopRefreshTimeout()\n {\n clearTimeout(this.refresh);\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n startRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n window.zIndex += 1;\n\n Dom.find(this.$el).attr('data-modal',\n window.zIndex);\n\n Dom.find(this.$el).css({\n 'z-index': window.zIndex\n });\n\n this.queueRefreshTimeout();\n },\n\n queueRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n this.refresh = setTimeout(() => {\n Dom.find(this.$el).addClass('n-ready');\n }, 100);\n },\n\n eventClick(event, el)\n {\n if ( this.disabled || event.which !== 1 ) {\n return;\n }\n\n let result = !! Dom.find(el).closest(this.target);\n\n if ( ! result && ! this.tempValue ) {\n return;\n }\n\n if ( this.tempValue && this.closable ) {\n result = ! Dom.find(el).closest(this.$refs.backdrop);\n }\n\n if ( result === this.tempValue ) {\n return;\n }\n\n if ( ! result ) {\n return this.closeModal(false, 'escape');\n }\n\n if ( this.listen ) {\n this.openModal(true, 'selector');\n }\n },\n\n eventKeydown(event, el)\n {\n if ( ! this.tempValue || event.which !== 27 ) {\n return;\n }\n\n let extractIndex = (modal) => {\n return Dom.find(modal).attr('data-modal');\n };\n\n let indexes = Dom.find('.n-modal:not(.n-hidden)')\n .each(extractIndex);\n\n let index = Dom.find(this.$el).attr('data-modal');\n\n if ( Arr.last(indexes.sort()) !== index ) {\n return;\n }\n\n this.closeModal(false, 'escape');\n },\n\n },\n\n renderClose()\n {\n if ( ! this.renderClose || ! this.closable ) {\n return null;\n }\n\n let props = {\n onClick: () => this.closeModal(false, 'escape')\n };\n\n return (\n <div class=\"n-modal__close\" {...props}>\n <span class={nano.Icons.times}></span>\n </div>\n );\n },\n\n renderHeader()\n {\n if ( ! this.$slots.header && ! this.title ) {\n return null;\n }\n\n return (\n <div class=\"n-modal__header\">\n { [this.$slots.header && this.$slots.header({ closeModal: this.closeModal }) || this.title, this.ctor('renderClose')()] }\n </div>\n );\n },\n\n renderFooter()\n {\n if ( ! this.$slots.footer ) {\n return null;\n }\n\n return (\n <div class=\"n-modal__footer\">\n { this.$slots.footer({ closeModal: this.closeModal }) }\n </div>\n );\n },\n\n renderBody()\n {\n let bodyHtml = (\n <NScrollbar ref=\"scrollbar\" relative={true} wrapClass=\"n-modal__wrap\">\n { this.$slots.default && this.$slots.default({ closeModal: this.closeModal }) }\n </NScrollbar>\n );\n\n if ( this.$slots.body ) {\n bodyHtml = this.$slots.body({ closeModal: this.closeModal });\n }\n\n return (\n <div class=\"n-modal__body\">\n { bodyHtml }\n </div>\n );\n },\n\n renderFrame()\n {\n if ( ! this.tempValue ) {\n return null;\n }\n\n let style = {\n width: this.width, height: this.height\n };\n\n let innerHtml = [\n this.ctor('renderHeader')(),\n this.ctor('renderBody')(),\n this.ctor('renderFooter')(),\n ]\n\n return (\n <div class=\"n-modal__frame\" style={style}>\n { this.$slots.raw ? this.$slots.raw() : innerHtml }\n </div>\n );\n },\n\n renderBackdrop()\n {\n return (\n <div ref=\"backdrop\" class=\"n-modal__backdrop\"></div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-modal',\n 'n-modal--' + this.size,\n 'n-modal--' + this.type,\n 'n-modal--' + this.position\n ];\n\n if ( this.tempValue ) {\n this.queueRefreshTimeout();\n }\n\n if ( this.renderClose ) {\n classList.push('n-closable');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let innerHtml = null;\n\n if ( this.tempValue ) {\n innerHtml = this.ctor('renderFrame')();\n }\n\n return (\n <div class={classList}>\n { [innerHtml, this.ctor('renderBackdrop')()] }\n </div>\n );\n }\n\n}\n","import { Obj } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NButton',\n\n props: {\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n link: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n square: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return null;\n }\n },\n\n iconPosition: {\n default()\n {\n return 'before';\n },\n type: [String]\n },\n\n nativeType: {\n default()\n {\n return 'button';\n },\n type: [String]\n }\n\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n let classList = [\n 'n-icon', \n 'n-icon--' + this.iconPosition,\n ];\n\n classList.push(this.icon);\n\n return (<i class={classList}></i>);\n },\n\n render()\n {\n let classList = [\n 'n-button',\n 'n-button--' + this.size,\n 'n-button--' + this.type,\n ];\n\n if ( this.icon ) {\n classList.push('n-button--icon');\n }\n\n if ( this.link ) {\n classList.push('n-button--link');\n }\n\n if ( this.square ) {\n classList.push('n-button--square');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = {\n class: classList\n };\n\n if ( this.disabled ) {\n props.disabled = true;\n }\n\n let innerHtml = [];\n\n if ( this.iconPosition === 'before' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n if ( this.$slots.default && ! this.square ) {\n innerHtml.push(<span>{ this.$slots.default && this.$slots.default() }</span>);\n }\n\n if ( this.iconPosition === 'after' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n return h(this.nativeType, props, innerHtml);\n }\n\n}\n","export default {\n\n name: 'NButtonGroup',\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-button-group',\n 'n-button-group--' + this.size\n ]\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { h } from \"vue\";\nimport { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInput',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n inheritAttrs: false,\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n iconPosition: {\n default()\n {\n return 'after';\n },\n type: [String]\n },\n\n iconDisabled: {\n default()\n {\n return null;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n nativeType: {\n default()\n {\n return 'text';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.modelValue || ''\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n onIconClick(event)\n {\n if ( event.clientX || event.clientY ) {\n this.$emit('icon-click', event);\n }\n },\n\n onInput(event)\n {\n this.$emit('update:modelValue',\n this.tempValue = event.target.value);\n },\n\n onKeydown(event)\n {\n this.$emit('keydown', event);\n\n if ( event.which !== 13 ) {\n return;\n }\n\n event.preventDefault();\n\n if ( ! this.NForm ) {\n return;\n }\n\n this.NForm.onSubmit(event);\n },\n\n onFocus(event)\n {\n this.focus = true;\n this.$emit('focus', event);\n },\n\n onBlur(event)\n {\n this.focus = false;\n this.$emit('blur', event);\n }\n\n },\n\n renderIcon()\n {\n if ( !this.icon ) {\n return null;\n }\n\n let disabled = this.deepDisabled;\n\n if ( this.iconDisabled !== null ) {\n disabled = this.iconDisabled;\n }\n\n let props = {\n type: 'input',\n icon: this.icon,\n size: this.size,\n square: true,\n disabled: disabled,\n };\n\n if ( !disabled ) {\n props.onClick = this.onIconClick;\n }\n\n return (<NButton {...props} />);\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs, [\n 'class', 'style'\n ]);\n\n Obj.assign(props, {\n value: this.tempValue,\n type: this.nativeType,\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onInput: this.onInput,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeydown: this.onKeydown\n });\n\n return h('input', props);\n },\n\n render()\n {\n let classList = [\n 'n-input',\n 'n-input--' + this.size,\n 'n-input--' + this.type,\n ];\n\n if ( this.icon ) {\n classList.push('n-input--icon');\n classList.push('n-input--icon-' + this.iconPosition);\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n let props = Obj.only(this.$attrs, ['style'], {\n class: this.cmer(classList)\n });\n\n let innerHtml = [];\n\n if ( this.iconPosition === 'before' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n innerHtml.push(this.ctor('renderInput')());\n\n if ( this.iconPosition === 'after' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n return h('div', props, innerHtml);\n }\n\n}\n","import { Arr, Obj, Num, Now, Any, Dom, Locale } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NInputNumber',\n\n inheritAttrs: false,\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n \n },\n\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n min: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return Number.MAX_VALUE;\n },\n type: [Number]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n stepSize: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n precision: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n format: {\n default()\n {\n return ':count';\n },\n type: [String]\n },\n\n decimals: {\n default()\n {\n return Locale.trans('.');\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = this.getValue(value);\n }\n }\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.getValue(),\n }\n },\n\n methods: {\n\n clear()\n {\n this.$emit('update:modelValue', this.tempValue = this.clearValue);\n },\n\n getValue(value = null)\n {\n if ( Any.isNull(value) ) {\n value = this.modelValue;\n }\n\n if ( Any.isEmpty(value) ) {\n return this.min;\n }\n\n return Num.float(value);\n },\n\n getDisplayValue()\n {\n\n if ( Any.isEmpty(this.modelValue) ) {\n return null;\n }\n\n let value = Num.format(this.tempValue,\n this.decimals, ' ', this.precision);\n\n return Locale.trans(this.format, { count: value });\n },\n\n nextStep()\n {\n if ( isNaN(this.tempValue) ) {\n this.tempValue = 0;\n }\n\n let value = this.tempValue + this.stepSize;\n\n if ( this.max < value ) {\n return;\n }\n\n value = Num.float(value).toFixed(this.precision);\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n },\n\n onNextDown()\n {\n this.nextStep();\n\n this.nextTimeout = setTimeout(() => {\n this.nextInterval = setInterval(this.nextStep, 100);\n }, 400);\n\n Dom.find(document).on('mouseup', this.onNextUp,\n this._.uid);\n },\n\n onNextUp()\n {\n clearTimeout(this.nextTimeout);\n clearInterval(this.nextInterval);\n\n Dom.find(document).off('mouseup', null,\n this._.uid);\n },\n\n prevStep()\n {\n if ( isNaN(this.tempValue) ) {\n this.tempValue = 0;\n }\n\n let value = this.tempValue - this.stepSize;\n\n if ( this.min > value ) {\n return;\n }\n\n value = Num.float(value).toFixed(this.precision);\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n },\n\n onPrevDown()\n {\n this.prevStep();\n\n this.prevTimeout = setTimeout(() => {\n this.prevInterval = setInterval(this.prevStep, 100);\n }, 400);\n\n Dom.find(document).on('mouseup', this.onPrevUp,\n this._.uid);\n },\n\n onPrevUp()\n {\n clearTimeout(this.prevTimeout);\n clearInterval(this.prevInterval);\n\n Dom.find(document).off('mouseup', null,\n this._.uid);\n },\n\n onKeydown(event)\n {\n if ( event.which === 13 ) {\n this.onInput(event);\n }\n },\n\n onFocus(event)\n {\n this.focus = true;\n },\n\n onBlur(event)\n {\n this.onInput(event);\n\n this.focus = false;\n },\n\n onInput(event)\n {\n let value = event.target.value;\n\n if ( value.match(/^[0-9]+((.|,)[0-9]+)?$/) ) {\n value = this.format.replace(':count', value);\n }\n\n let format = this.format.replace(':count',\n `([0-9\\\\,\\\\.\\\\-\\\\s]+)`);\n\n let regex = new RegExp(`^${format}$`);\n\n let match = value.match(regex);\n\n if ( !match ) {\n return event.target.value = this.getDisplayValue();\n }\n\n value = match[1].replace(',', '.')\n .replace(/\\s/, '');\n\n value = Num.float(value).toFixed(this.precision);\n\n if ( value < this.min ) {\n value = this.min;\n }\n\n if ( value > this.max ) {\n value = this.max;\n }\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n\n event.target.value = this.getDisplayValue();\n }\n\n },\n\n renderPrev()\n {\n let disabled = this.deepDisabled ||\n this.tempValue <= this.min;\n\n let props = {\n type: 'input-number',\n size: this.size,\n icon: 'fa fa-minus',\n square: true,\n disabled: disabled,\n onMousedown: this.onPrevDown,\n };\n\n return (<NButton {...props} />);\n },\n\n renderNext()\n {\n let disabled = this.deepDisabled ||\n this.tempValue >= this.max;\n\n let props = {\n type: 'input-number',\n size: this.size,\n icon: 'fa fa-plus',\n square: true,\n disabled: disabled,\n onMousedown: this.onNextDown,\n };\n\n return (<NButton {...props} />);\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs,\n ['class', 'style']);\n\n Obj.assign(props, {\n value: this.getDisplayValue(),\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onKeydown: this.onKeydown,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n });\n\n return h('input', props);\n },\n\n renderClear()\n {\n if ( !this.clearable || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( !this.deepDisabled ) {\n props.onMousedown = this.clear;\n }\n\n return (\n <div class=\"n-input-number__clear\" {...props}>\n <i class={nano.Icons.times}></i>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-input-number',\n 'n-input-number--' + this.type,\n 'n-input-number--' + this.size,\n ];\n\n if ( Any.isEmpty(this.modelValue) ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n {this.ctor('renderPrev')()}\n {this.ctor('renderInput')()}\n {this.ctor('renderClear')()}\n {this.ctor('renderNext')()}\n </div>\n );\n }\n\n}","import { h } from \"vue\";\nimport {Obj, Any, UUID} from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTextarea',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n autoRows: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n maxRows: {\n default()\n {\n return 12;\n },\n type: [Number]\n },\n\n minRows: {\n default()\n {\n return 4;\n },\n type: [Number]\n },\n\n maxLength: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n eventInput(event)\n {\n this.$emit('update:modelValue', \n this.tempValue = event.target.value);\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue || ''\n };\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs, ['class', 'style']);\n\n Obj.assign(props, {\n value: this.tempValue,\n rows: this.minRows,\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.eventInput,\n });\n\n if ( this.maxLength !== 0 ) {\n props.maxLength = this.maxLength;\n }\n\n let currentRows = (this.tempValue.match(/\\n/g) || []).length + 1;\n\n if ( this.autoRows && props.rows < currentRows ) {\n props.rows = currentRows <= this.maxRows ? currentRows : this.maxRows;\n }\n\n return h('textarea', props);\n },\n\n render()\n {\n let classList = [\n 'n-textarea',\n 'n-textarea--' + this.size,\n 'n-textarea--' + this.type,\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.only(this.$attrs, ['style'], {\n class: this.cmer(classList)\n });\n\n return h('div', props, [this.ctor('renderInput')()]);\n }\n\n}\n","import { Str, Arr, Obj, Any, Locale, Dom, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSelect',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n },\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n lazy: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-center';\n },\n type: [String]\n },\n\n multiple: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n collapse: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Please select');\n },\n type: [String]\n },\n\n emptyText: {\n default()\n {\n return 'No items';\n },\n type: [String]\n },\n\n undefinedText: {\n default()\n {\n return 'Undefined item';\n },\n type: [String]\n },\n\n collapseText: {\n default()\n {\n return '+:count item|+:count items';\n },\n type: [String]\n },\n\n allowCreate: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array, Object]\n },\n\n optionsValue: {\n default()\n {\n return '$index';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsDisabled: {\n default()\n {\n return 'null';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n deepDisabled()\n {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n },\n\n empty()\n {\n return Any.isEmpty(this.tempValue);\n },\n\n custom()\n {\n let result = Arr.filter(this.elements, (element) => {\n\n if ( Any.isArray(this.tempValue) ) {\n return Arr.has(this.tempValue, element.value);\n }\n\n return element.value === this.tempValue;\n });\n\n return result.length === 0;\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempClear: this.clearValue,\n focus: false,\n search: '',\n index: - 1,\n elements: [],\n searched: []\n };\n },\n\n\n beforeMount()\n {\n if ( this.lazy ) {\n this.generateOptions();\n }\n\n if ( this.multiple && !Any.isArray(this.tempValue) ) {\n this.tempValue = [];\n }\n\n if ( this.multiple && !Any.isArray(this.clearValue) ) {\n this.tempClear = [];\n }\n\n this.searchOptions();\n },\n\n provide()\n {\n return {\n NSelect: this\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( !this.multiple && Any.isArray(value) ) {\n value = null;\n }\n\n if ( this.multiple && !Any.isArray(value) ) {\n value = [];\n }\n\n this.tempValue = value;\n },\n\n search()\n {\n this.searchOptions();\n },\n\n focus()\n {\n this.$nextTick(this.scrollToClosest);\n },\n\n },\n\n methods: {\n\n clear(event = null)\n {\n if ( event ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.focusInput();\n\n this.$emit('update:modelValue',\n this.tempValue = Arr.clone(this.tempClear));\n },\n\n generateOptions()\n {\n this.elements = Arr.each(this.options, (value, index) => {\n\n let data = {\n $value: value, $index: index\n };\n\n let option = {\n label: Obj.get(data, this.optionsLabel),\n value: Obj.get(data, this.optionsValue)\n };\n\n return Obj.assign(option, {\n tempLabel: option.label, tempValue: option.value\n });\n });\n },\n\n addOption(option)\n {\n Arr.add(this.elements, option,\n { tempValue: option.tempValue });\n },\n\n removeOption(option)\n {\n Arr.remove(this.elements,\n { tempValue: option.tempValue });\n },\n\n resetInput()\n {\n this.index = - 1;\n this.search = '';\n },\n\n focusInput(event = null)\n {\n if ( event ) {\n event.preventDefault();\n }\n\n this.$refs.input.focus();\n },\n\n onFocusInput()\n {\n if ( !this.focus ) {\n this.$refs.popover.open();\n }\n\n clearInterval(this.refresh);\n },\n\n onInputInput(event)\n {\n this.search = event.target.value;\n },\n\n onKeydownInput(event)\n {\n if ( !this.focus ) {\n return this.onFocusInput();\n }\n\n if ( event.which === 13 ) {\n this.createOrToggle();\n }\n\n if ( event.which === 38 ) {\n this.selectPrev();\n }\n\n if ( event.which === 40 ) {\n this.selectNext();\n }\n },\n\n searchOptions()\n {\n this.index = - 1;\n\n if ( Any.isEmpty(this.search) ) {\n return this.searched = this.elements;\n }\n\n let searchRegex = new RegExp(this.search, 'i');\n\n let searched = Arr.filter(this.elements, (option) => {\n return Any.isString(option.label) && option.label.match(searchRegex);\n });\n\n this.searched = searched;\n },\n\n toggleOption(value, event = null)\n {\n if ( Any.isEmpty(value) ) {\n return;\n }\n\n if ( event && event.which !== 1 ) {\n return;\n }\n\n if ( event ) {\n event.preventDefault();\n }\n\n let tempValue = this.tempValue;\n\n if ( this.multiple ) {\n this.focusInput();\n }\n\n if ( !this.multiple ) {\n tempValue = value;\n }\n\n if ( this.multiple ) {\n Arr.toggle(tempValue, value);\n }\n\n this.$refs.popover.close();\n\n let denyUpdate = this.tempValue === tempValue;\n\n if ( this.multiple && !Any.isArray(this.modelValue) ) {\n denyUpdate = false;\n }\n\n if ( !this.multiple && Any.isArray(this.modelValue) ) {\n denyUpdate = false;\n }\n\n if ( denyUpdate ) {\n return;\n }\n\n this.$emit('update:modelValue',\n this.tempValue = tempValue);\n },\n\n getOptionLabel(value)\n {\n let option = Arr.find(this.elements,\n { tempValue: value });\n\n if ( !option && this.allowCreate ) {\n return value;\n }\n\n if ( !option && !this.allowCreate ) {\n return this.trans(this.undefinedText);\n }\n\n return option.tempLabel;\n },\n\n selectPrev()\n {\n let newIndex = this.index - 1;\n\n if ( newIndex < 0 ) {\n newIndex = this.searched.length - 1;\n }\n\n this.index = newIndex;\n\n this.scrollToCurrent();\n },\n\n selectNext()\n {\n let newIndex = this.index + 1;\n\n if ( newIndex > this.searched.length - 1 ) {\n newIndex = 0;\n }\n\n this.index = newIndex;\n\n this.scrollToCurrent();\n },\n\n createOrToggle()\n {\n if ( this.allowCreate && this.search ) {\n return this.createOption();\n }\n\n let selected = Arr.get(this.searched,\n this.index);\n\n if ( this.searched.length === 1 ) {\n selected = Arr.first(this.searched);\n }\n\n if ( !selected || selected.disabled ) {\n return;\n }\n\n this.toggleOption(selected.tempValue);\n },\n\n createOption()\n {\n this.toggleOption(this.search);\n\n this.search = '';\n },\n\n scrollToCurrent()\n {\n if ( !this.focus ) {\n return;\n }\n\n let selected = Arr.get(this.searched,\n this.index);\n\n if ( !selected ) {\n return;\n }\n\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.scrollIntoView(`[data-option=\"${selected._.uid}\"]`);\n }\n\n if ( this.$refs.virtualbar ) {\n this.$refs.virtualbar.scrollToIndex(this.index);\n }\n },\n\n scrollToClosest()\n {\n if ( !this.focus ) {\n return;\n }\n\n let value = this.tempValue;\n\n if ( Any.isArray(this.tempValue) ) {\n value = Arr.first(this.tempValue);\n }\n\n if ( !value ) {\n return;\n }\n\n let index = Arr.findIndex(this.elements, {\n tempValue: value\n });\n\n if ( !index ) {\n return;\n }\n\n if ( this.$refs.virtualbar ) {\n this.$refs.virtualbar.scrollToIndex(index, 250);\n }\n\n let select = `[data-option=\"${Obj.get(this.elements[index], '_.uid', 0)}\"]`;\n\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.scrollIntoView(select, 250);\n }\n }\n\n },\n\n renderLabelClear()\n {\n if ( !this.clearable || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( !this.deepDisabled ) {\n props.onMousedown = this.clear;\n }\n\n return (\n <div class=\"n-select__clear\" {...props}>\n <i class={nano.Icons.times}></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-select__angle\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n },\n\n renderLabelItem(value)\n {\n let classList = [\n 'n-select__item'\n ];\n\n let props = {\n class: nano.Icons.times,\n };\n\n if ( !this.deepDisabled ) {\n props.onMousedown = (event) => this.toggleOption(value, event);\n }\n\n let labelHtml = (\n <span>{this.getOptionLabel(value)}</span>\n );\n\n return (\n <div class={classList}>\n {[labelHtml, <i {...props}></i>]}\n </div>\n );\n },\n\n renderLabelCollapse()\n {\n let first = Arr.first(this.tempValue);\n\n if ( !first ) {\n return null;\n }\n\n let firstHtml = this.ctor('renderLabelItem')(first);\n\n if ( this.tempValue.length === 1 ) {\n return firstHtml;\n }\n\n let count = this.tempValue.length - 1;\n\n let collapseHtml = (\n <div class=\"n-select__item\">\n <span>{this.choice(this.collapseText, count)}</span>\n </div>\n );\n\n return [\n firstHtml, collapseHtml\n ];\n },\n\n renderLabelItems()\n {\n if ( !Any.isArray(this.tempValue) ) {\n return null;\n }\n\n if ( this.collapse ) {\n return this.ctor('renderLabelCollapse')();\n }\n\n return Arr.each(this.tempValue, (value) => {\n return this.ctor('renderLabelItem')(value);\n });\n },\n\n renderMultiple()\n {\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n let props = {\n value: this.search,\n placeholder: this.placeholder,\n disabled: this.deepDisabled,\n onFocus: this.onFocusInput,\n onInput: this.onInputInput,\n onKeydown: this.onKeydownInput\n };\n\n if ( !this.focus ) {\n props.value = null;\n }\n\n if ( !isEmptyValue ) {\n props.placeholder = null;\n }\n\n let inputHtml = (\n <div class=\"n-select__input\">\n <input ref=\"input\" {...props} />\n </div>\n );\n\n return [\n this.ctor('renderLabelClear')(),\n (\n <div class=\"n-select__items\">\n {[this.ctor('renderLabelItems')(), inputHtml]}\n </div>\n ),\n this.ctor('renderLabelAngle')()\n ];\n },\n\n renderSingle()\n {\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n let modelLabel = this.getOptionLabel(\n this.tempValue);\n\n if ( isEmptyValue ) {\n modelLabel = null;\n }\n\n let props = {\n value: this.search,\n placeholder: this.placeholder,\n disabled: this.deepDisabled,\n onFocus: this.onFocusInput,\n onInput: this.onInputInput,\n onKeydown: this.onKeydownInput\n };\n\n if ( !this.search && this.custom ) {\n props.value = this.tempValue;\n }\n\n if ( !this.focus ) {\n props.value = modelLabel;\n }\n\n if ( !isEmptyValue ) {\n props.placeholder = modelLabel;\n }\n\n return [\n this.ctor('renderLabelClear')(),\n (\n <div class=\"n-select__input\">\n <input ref=\"input\" {...props} />\n </div>\n ),\n this.ctor('renderLabelAngle')()\n ];\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-select__display'\n ];\n\n if ( this.multiple ) {\n classList.push('n-multiple');\n }\n\n let displayHtml = this.ctor('renderSingle');\n\n if ( this.multiple ) {\n displayHtml = this.ctor('renderMultiple');\n }\n\n return (\n <div class={classList}>{displayHtml()}</div>\n );\n },\n\n renderItems()\n {\n let emptyHtml = (\n <div class=\"n-select__empty\">\n <NEmptyIcon inline={true}>{this.trans(this.emptyText)}</NEmptyIcon>\n </div>\n );\n\n if ( !this.searched.length ) {\n return emptyHtml;\n }\n\n if ( this.lazy ) {\n return this.ctor('renderLazyItems')();\n }\n\n let options = Obj.each(this.searched, (option, index) => {\n return option.ctor('renderOption')(index);\n });\n\n let props = {\n relative: true, size: this.size\n }\n\n return (\n <NScrollbar ref=\"scrollbar\" class=\"n-select__body\" {...props}>\n {Obj.values(options)}\n </NScrollbar>\n );\n },\n\n renderLazyOption(value, index)\n {\n let classList = [];\n\n let isMultipleActive = this.multiple &&\n Arr.has(this.tempValue, value.value);\n\n if ( isMultipleActive ) {\n classList.push('n-active');\n }\n\n let isSingleActive = ! this.multiple &&\n this.tempValue === value.value;\n\n if ( isSingleActive ) {\n classList.push('n-active');\n }\n\n if ( this.index === Num.int(index) ) {\n classList.push('n-focus');\n }\n\n let props = {\n 'type': this.type,\n 'clickClose': ! this.multiple,\n };\n\n props['onMousedown'] = (e) => {\n this.toggleOption(value.value, e);\n };\n\n if ( isSingleActive || isMultipleActive ) {\n props.icon = nano.Icons.checked;\n }\n\n return (\n <NPopoverOption class={classList} {...props}>\n {value.label}\n </NPopoverOption>\n );\n },\n\n renderLazyItems()\n {\n let props = {\n items: this.searched\n };\n\n props.renderNode = ({ value, index }) => {\n return this.ctor('renderLazyOption')(value, index);\n };\n\n return (\n <NVirtualscroller ref=\"virtualbar\" class=\"n-select__body n-virtual\" {...props} />\n );\n },\n\n renderPopover()\n {\n let classList = [\n 'n-popover--select'\n ];\n\n if ( this.lazy ) {\n classList.push('n-virtual');\n }\n\n let props = {\n class: classList,\n trigger: 'click',\n width: - 1,\n listen: true,\n size: this.size,\n scrollClose: true,\n disabled: this.deepDisabled,\n onClose: this.resetInput\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n {{ raw: this.ctor('renderItems') }}\n </NPopover>\n );\n },\n\n renderOptions()\n {\n if ( this.lazy ) {\n return null;\n }\n\n if ( Any.isEmpty(this.options) ) {\n return this.$slots.default && this.$slots.default();\n }\n\n let optionRender = ($value, $index) => {\n\n let props = {\n label: Obj.get({ $value, $index }, this.optionsLabel, null),\n value: Obj.get({ $value, $index }, this.optionsValue, null),\n };\n\n return (<NSelectOption {...props}></NSelectOption>);\n };\n\n return Obj.values(Obj.each(this.options, optionRender));\n },\n\n render()\n {\n let classList = [\n 'n-select',\n 'n-select--' + this.type,\n 'n-select--' + this.size,\n ];\n\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n if ( isEmptyValue ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList} onClick={this.focusInput}>\n {this.ctor('renderDisplay')()}\n {this.ctor('renderPopover')()}\n {this.ctor('renderOptions')()}\n </div>\n );\n }\n\n}\n","import { Num, Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSelectOption',\n\n inheritAttrs: false,\n\n inject: {\n\n NSelect: {\n default: undefined\n }\n\n },\n\n props: {\n\n value: {\n default()\n {\n return '';\n }\n },\n\n label: {\n default()\n {\n return null;\n }\n },\n\n valueProp: {\n default()\n {\n return null;\n }\n },\n\n labelProp: {\n default()\n {\n return null;\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n tempValue()\n {\n if ( Any.isEmpty(this.valueProp) ) {\n return this.value;\n }\n\n return Obj.get(this.value, this.valueProp);\n },\n\n tempLabel()\n {\n if ( Any.isEmpty(this.labelProp) ) {\n return this.label;\n }\n\n return Obj.get(this.value, this.labelProp);\n }\n\n },\n\n mounted()\n {\n if ( ! this.NSelect.lazy ) {\n this.NSelect.addOption(this);\n }\n },\n\n beforeUnmount()\n {\n if ( ! this.NSelect.lazy ) {\n this.NSelect.removeOption(this);\n }\n },\n\n methods: {\n\n toggleItem(event) \n {\n event.preventDefault();\n\n if ( event.which !== 1 ) {\n return;\n }\n\n if ( this.disabled ) {\n return;\n }\n\n this.NSelect.toggleOption(this.tempValue, \n event);\n },\n\n },\n\n renderOption(index)\n {\n\n let classList = [];\n\n let isMultipleActive = this.NSelect.multiple && \n Arr.has(this.NSelect.tempValue, this.tempValue);\n\n if ( isMultipleActive ) {\n classList.push('n-active');\n }\n\n let isSingleActive = ! this.NSelect.multiple && \n this.NSelect.tempValue === this.tempValue;\n\n if ( isSingleActive ) {\n classList.push('n-active');\n }\n\n if ( this.NSelect.index === Num.int(index) ) {\n classList.push('n-focus');\n }\n\n let props = {\n 'disabled': this.disabled,\n 'onMousedown': this.toggleItem,\n 'type': this.NSelect.type,\n 'clickClose': ! this.NSelect.multiple,\n };\n\n if ( isSingleActive || isMultipleActive ) {\n props.icon = nano.Icons.checked;\n }\n\n // Required for scrolldown\n props['data-option'] = this._.uid;\n\n return (\n <NPopoverOption class={classList} {...props}>\n { this.$slots.default && this.$slots.default() || this.tempLabel }\n </NPopoverOption>\n );\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Arr, Obj, Any, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCheckbox',\n\n inject: {\n\n NCheckboxGroup: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n value: {\n default()\n {\n return null;\n }\n },\n\n allowUncheck: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n intermediate: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n global: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n tempComputed()\n {\n return ! this.global ? this.tempChecked :\n this.NCheckboxGroup.globalChecked;\n },\n\n tempIntermediate()\n {\n return ! this.global ? this.intermediate :\n this.NCheckboxGroup.globalIntermediate;\n },\n\n tempDisabled()\n {\n return ! this.global ? this.disabled :\n this.NCheckboxGroup.globalDisabled;\n }\n\n },\n\n data()\n {\n return {\n uid: UUID(), tempChecked: this.modelValue\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempChecked ) {\n this.tempChecked = value;\n }\n }\n\n },\n\n beforeMount()\n {\n if ( this.NCheckboxGroup ) {\n this.tempChecked = this.NCheckboxGroup.isChecked(this.value);\n }\n },\n\n mounted()\n {\n if ( ! this.NCheckboxGroup || this.global ) {\n return;\n }\n\n this.$watch('NCheckboxGroup.tempValue', () => {\n this.tempChecked = this.NCheckboxGroup.isChecked(this.value);\n });\n\n this.NCheckboxGroup.addCheckbox(this);\n },\n\n beforeUnmount()\n {\n if ( this.NCheckboxGroup && ! this.global ) {\n this.NCheckboxGroup.removeCheckbox(this);\n }\n },\n\n methods: {\n\n toggle()\n {\n this.$emit('update:modelValue', this.tempChecked = ! this.tempChecked);\n },\n\n check()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.checkCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n uncheck()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.uncheckCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = false);\n },\n\n eventShiftClick()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.shiftCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n eventLocalClick(event)\n {\n let canClick = ! this.tempDisabled || (this.allowUncheck &&\n this.tempChecked);\n\n if ( ! canClick ) {\n return;\n }\n\n event.preventDefault();\n\n if ( event.shiftKey ) {\n return this.eventShiftClick();\n }\n \n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.toggleCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = ! this.tempChecked);\n },\n\n eventGlobalClick()\n {\n let canClick = ! this.tempDisabled || (this.allowUncheck &&\n this.tempChecked);\n\n if ( ! canClick ) {\n return;\n }\n\n this.NCheckboxGroup.toggleAll();\n },\n\n updateFromGroup()\n {\n let checked = this.NCheckboxGroup.isChecked(this.value);\n\n if ( this.tempChecked === checked ) {\n return;\n }\n \n this.$emit('update:modelValue', this.tempChecked = checked);\n }\n\n },\n\n renderCheckbox()\n {\n let interHtml = this.$slots.intermediate &&\n this.$slots.intermediate();\n\n if ( ! interHtml ) {\n interHtml = (<i class={nano.Icons.intermediate}></i>);\n }\n\n let checkHtml = this.$slots.checked &&\n this.$slots.checked();\n\n if ( ! checkHtml ) {\n checkHtml = (<i class={nano.Icons.checked}></i>);\n }\n\n return (\n <div class=\"n-checkbox__checkbox\">\n { this.tempIntermediate ? interHtml : checkHtml }\n </div>\n );\n },\n\n renderLabel()\n {\n if ( ! this.cslo('default') && ! this.cslo('label') ) {\n return null;\n }\n\n return (\n <div class=\"n-checkbox__label\">\n { this.$slots.default() || this.$slots.label() }\n </div>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NCheckboxGroup ) {\n size = this.NCheckboxGroup.size;\n }\n\n let classList = [\n 'n-checkbox',\n 'n-checkbox--' + size,\n 'n-checkbox--' + this.type,\n ];\n\n if ( this.allowUncheck ) {\n classList.push('n-uncheck');\n }\n\n if ( this.tempComputed ) {\n classList.push('n-checked');\n }\n\n if ( this.tempIntermediate ) {\n classList.push('n-intermediate');\n }\n\n if ( this.tempDisabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.tempComputed && this.allowUncheck ) {\n Arr.remove(classList, 'n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( this.global ) {\n props.onMousedown = this.eventGlobalClick;\n }\n\n if ( ! this.global ) {\n props.onMousedown = this.eventLocalClick;\n }\n\n return (\n <div class={classList} {...props}>\n { [this.ctor('renderCheckbox')(), this.ctor('renderLabel')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCheckboxGroup',\n\n provide()\n {\n return {\n NCheckboxGroup: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'horizontal';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n globalChecked()\n {\n let checked = Arr.filter(this.elements, (checkbox) => {\n return checkbox.tempChecked;\n });\n\n return checked.length === this.elements.length &&\n this.elements.length !== 0;\n },\n\n globalIntermediate()\n {\n let checked = this.elements.filter((checkbox) => {\n return checkbox.tempChecked;\n });\n\n return checked.length !== this.elements.length &&\n checked.length !== 0 ;\n },\n\n globalDisabled()\n {\n return this.elements.length === 0;\n },\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n index: -1,\n elements: []\n }\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.tempValue = this.modelValue ) {\n this.tempValue = this.modelValue;\n }\n \n },\n\n },\n\n methods: {\n\n addCheckbox(checkbox)\n {\n this.index = -1;\n\n Arr.add(this.elements, checkbox, {\n uid: checkbox.uid\n });\n\n this.elements = Arr.sort(this.elements, 'sort');\n },\n\n removeCheckbox(checkbox)\n {\n this.index = -1;\n \n Arr.remove(this.elements, {\n uid: checkbox.uid\n });\n },\n\n toggleCheckbox(checkbox, emit = true)\n {\n let index = Arr.findIndex(this.elements, {\n uid: checkbox.uid\n });\n\n if ( ! checkbox.tempChecked ) {\n this.index = index;\n }\n\n Arr.toggle(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n checkCheckbox(checkbox, emit = true)\n {\n Arr.add(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n uncheckCheckbox(checkbox, emit = true)\n {\n Arr.remove(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n shiftCheckbox(checkbox)\n {\n if ( this.index === -1 ) {\n return this.toggleCheckbox(checkbox, false);\n }\n\n let index = Arr.findIndex(this.elements, {\n uid: checkbox.uid\n });\n\n let checkboxes = this.elements.slice(this.index, index + 1);\n\n if ( index < this.index ) {\n checkboxes = this.elements.slice(index, this.index + 1);\n }\n\n this.index = -1;\n\n Arr.each(checkboxes, (checkbox) => {\n this.checkCheckbox(checkbox, false);\n });\n\n Arr.each(checkboxes, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n toggleAll()\n {\n this.globalChecked ? this.uncheckAll() : this.checkAll();\n },\n\n checkAll()\n {\n Arr.each(this.elements, (checkbox) => {\n this.checkCheckbox(checkbox, false);\n });\n\n Arr.each(this.elements, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n uncheckAll()\n {\n Arr.each(this.elements, (checkbox) => {\n this.uncheckCheckbox(checkbox, false);\n });\n\n Arr.each(this.elements, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n isChecked(value)\n {\n return Arr.has(this.tempValue, value);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-checkbox-group',\n 'n-checkbox-group--' + this.size,\n 'n-checkbox-group--' + this.align,\n ];\n\n return (\n <div class={classList}>\n {this.$slots.default()}\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRadio',\n\n model: {\n prop: 'checked'\n },\n\n inject: {\n\n NRadioGroup: {\n default: undefined\n }\n\n },\n\n props: {\n\n value: {\n default()\n {\n return null;\n }\n },\n\n checked: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n uid()\n {\n return this._.uid;\n }\n\n },\n\n data()\n {\n return {\n tempChecked: this.checked\n };\n },\n\n watch: {\n\n checked()\n {\n if ( this.checked !== this.tempChecked ) {\n this.tempChecked = this.checked;\n }\n }\n\n },\n\n beforeMount()\n {\n if ( this.NRadioGroup ) {\n this.tempChecked = this.NRadioGroup.isChecked(this.value);\n }\n },\n\n mounted()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.addRadio(this);\n }\n },\n\n beforeUnmount()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.removeRadio(this);\n }\n },\n\n methods: {\n\n check()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.checkRadio(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n updateFromGroup()\n {\n let checked = this.NRadioGroup.isChecked(this.value);\n\n if ( this.tempChecked === checked ) {\n return;\n }\n \n this.$emit('update:modelValue', this.tempChecked = checked);\n }\n\n },\n\n renderRadio()\n {\n return (\n <div class=\"n-radio__radio\">\n <span></span>\n </div>\n );\n },\n\n renderLabel()\n {\n if ( ! this.$slots.default && ! this.$slots.label ) {\n return null;\n }\n\n return (\n <div class=\"n-radio__label\">\n { this.$slots.default() || this.$slots.label() }\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-radio',\n 'n-radio--' + this.size,\n 'n-radio--' + this.type,\n ];\n\n if ( this.tempChecked ) {\n classList.push('n-checked');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( ! this.disabled ) {\n props.onMousedown = this.check;\n }\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderRadio')() }\n { this.ctor('renderLabel')() }\n </div>\n );\n }\n\n}\n","import { Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRadioGroup',\n\n provide()\n {\n return {\n NRadioGroup: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'horizontal';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n elements: []\n }\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n },\n\n },\n\n methods: {\n\n addRadio(radio)\n {\n Arr.add(this.elements, radio, {\n uid: radio.uid\n });\n },\n\n removeRadio(radio)\n {\n Arr.remove(this.elements, {\n uid: radio.uid\n });\n },\n\n checkRadio(radio)\n {\n this.tempValue = radio.value;\n \n Arr.each(this.elements, (radio) => {\n radio.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n isChecked(value)\n {\n return this.tempValue === value;\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-radio-group',\n 'n-radio-group--' + this.size,\n 'n-radio-group--' + this.align,\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { Obj, Arr, Any, Num, Dom, Event } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSlider',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n steps: {\n default()\n {\n return 1;\n }\n },\n\n labels: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n min: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return 100;\n },\n type: [Number]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n index: 0, width: null, tempValue: [null, null]\n };\n },\n\n computed: {\n\n selector()\n {\n return `[data-index=\"${this.index}\"]`;\n },\n\n fixmin()\n {\n return Any.isArray(this.steps) ? Arr.first(this.steps) : this.min;\n },\n\n fixmax()\n {\n return Any.isArray(this.steps) ? Arr.last(this.steps) : this.max;\n },\n\n minmax()\n {\n return this.fixmax - this.fixmin;\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n },\n\n watch: {\n\n modelValue()\n {\n this.getPseudoValue();\n }\n\n },\n\n mounted()\n {\n Dom.find(window).on('resize',\n Any.debounce(this.onResize, 500), this._.uid);\n\n this.onResize();\n this.getPseudoValue();\n },\n\n unmounted()\n {\n Dom.find(window).off('resize',\n null, this._.uid);\n },\n\n methods: {\n\n onResize()\n {\n this.width = Dom.find(this.$el).width();\n },\n\n getPseudoValue()\n {\n let value = this.modelValue;\n\n if ( Any.isNull(value) ) {\n value = this.fixmax;\n }\n if ( ! Any.isArray(value) ) {\n value = [this.fixmin, value];\n }\n\n return this.tempValue = value;\n },\n\n setModelValue()\n {\n let value = this.tempValue;\n\n if ( ! this.range ) {\n value = this.tempValue[1];\n }\n\n this.$emit('update:modelValue', value);\n },\n\n getValPos(value)\n {\n return Num.fixed(this.width / this.minmax * (value - this.fixmin), 2) + 'px';\n },\n\n getValStyle(value)\n {\n return 'transform: translateX(' + this.getValPos(value) + ');';\n },\n\n getBarPos()\n {\n return Num.fixed(this.width / this.minmax * (this.tempValue[0] - this.fixmin), 2) + 'px';\n },\n\n getBarWidth()\n {\n return Num.fixed(this.width / this.minmax * (this.tempValue[1] - this.tempValue[0]), 2) + 'px';\n },\n\n getBarStyle()\n {\n return 'max-width: ' + this.getBarWidth() + '; ' +\n 'transform: translateX(' + this.getBarPos() + ');';\n },\n\n getClosestValue(width)\n {\n if ( Any.isNumber(this.steps) ) {\n return Num.round(width / this.steps) * this.steps;\n }\n\n let range = Arr.last(this.steps) -\n Arr.first(this.steps);\n\n let diff = Arr.each(this.steps, (step) => {\n return Math.abs((range / 100 * width) - step + this.fixmin);\n });\n\n let index = Arr.findIndex(diff, Math.min(...diff));\n\n return this.steps[index];\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onMousedown(event)\n {\n if ( this.disabled ) {\n return;\n }\n\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(this.$el).find(this.selector).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onMousemove, 60), this._.uid);\n },\n\n onMousemove(event)\n {\n this.clientX = this.getTouchEvent(event).clientX;\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let relativeWidth = (this.clientX - offsetX) / this.width * 100;\n\n let closestValue = this.getClosestValue(relativeWidth);\n\n if ( closestValue < this.fixmin ) {\n closestValue = this.fixmin;\n }\n\n if ( closestValue > this.fixmax ) {\n closestValue = this.fixmax;\n }\n\n let stepMin = this.tempValue[0] + this.steps;\n\n if ( this.index === 1 && closestValue < stepMin ) {\n closestValue = stepMin;\n }\n\n let stepMax = this.tempValue[1] - this.steps;\n\n if ( this.index === 0 && closestValue > stepMax ) {\n closestValue = stepMax;\n }\n\n this.tempValue[this.index] = closestValue;\n },\n\n onMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mouseup, null, this._.uid);\n Dom.find(document).off(this.mousemove, null, this._.uid);\n\n Dom.find(this.$el).find(this.selector).removeClass('n-move');\n Dom.find(document.body).removeClass('n-move');\n\n this.setModelValue();\n },\n\n },\n\n renderHandle(value, index)\n {\n let handleProps = {\n 'data-value': value,\n 'data-index': index,\n style: this.getValStyle(value)\n };\n\n handleProps['onMousedown'] = (event) => {\n this.onMousedown(event, this.index = index);\n };\n\n let key = Arr.findIndex(this.steps, value);\n\n return (\n <div class=\"n-slider__handle\" {...handleProps}>\n <span>{ Obj.get(this.labels, key, value) }</span>\n </div>\n );\n },\n\n renderHandles()\n {\n let values = Arr.clone(this.tempValue);\n\n if ( ! this.range ) {\n delete values[0];\n }\n\n return Arr.each(values, (value, index) => {\n return this.ctor('renderHandle')(value, index);\n });\n },\n\n renderBar()\n {\n let barProps = {\n style: this.getBarStyle()\n };\n\n return (\n <div class=\"n-slider__bar\">\n <div class=\"n-slider__range\" {...barProps}></div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-slider',\n 'n-slider--' + this.type,\n 'n-slider--' + this.size\n ];\n\n if ( this.range ) {\n classList.push('n-range');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderBar')() }\n { this.ctor('renderHandles')() }\n </div>\n );\n }\n\n}\n","import { Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSwitch',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n }\n },\n\n onValue: {\n default()\n {\n return true;\n }\n },\n\n offValue: {\n default()\n {\n return false;\n }\n },\n\n onType: {\n default()\n {\n return 'primary';\n }\n },\n\n offType: {\n default()\n {\n return 'default';\n }\n },\n\n size: {\n default()\n {\n return 'md';\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n eventClick()\n {\n let tempValue = this.onValue;\n\n if ( this.tempValue === this.onValue ) {\n tempValue = this.offValue;\n }\n\n this.$emit('update:modelValue', this.tempValue = tempValue);\n }\n\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n }\n\n },\n\n renderSwitch()\n {\n let classList = [\n 'n-switch__switch'\n ];\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.eventClick;\n }\n\n return (\n <div class={classList} {...props}>\n <span></span>\n </div>\n )\n },\n\n renderLabel()\n {\n if ( ! this.$slots.default ) {\n return null;\n }\n\n let classList = [\n 'n-switch__label',\n ];\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.eventClick;\n }\n\n return (\n <div class={classList} {...props}>\n { this.$slots.default() }\n </div>\n )\n },\n\n render()\n {\n let classList = [\n 'n-switch',\n 'n-switch--' + this.size\n ];\n\n if ( this.tempValue === this.onValue ) {\n classList.push('n-switch--' + this.onType);\n }\n\n if ( this.tempValue === this.offValue) {\n classList.push('n-switch--' + this.offType);\n }\n\n if ( this.tempValue === this.onValue ) {\n classList.push('n-on');\n }\n\n if ( this.tempValue === this.offValue ) {\n classList.push('n-off');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderSwitch')() }\n { this.ctor('renderLabel')() }\n </div>\n );\n }\n\n}\n","import { Obj, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NConfirm',\n\n props: {\n\n visible: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n width: {\n default()\n {\n return 'auto';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'center-center';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n confirmText: {\n default()\n {\n return Locale.trans('Confirm');\n },\n type: [String]\n },\n\n abortText: {\n default()\n {\n return Locale.trans('Abort');\n },\n type: [String]\n },\n\n buttonSize: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n },\n\n watch: {\n\n visible()\n {\n if ( this.visible !== this.tempVisible ) {\n this.tempVisible = this.visible;\n }\n }\n\n },\n\n data()\n {\n return {\n tempVisible: this.visible\n };\n },\n\n methods: {\n\n abort(event)\n {\n this.$refs.modal.closeModal(true, 'self');\n this.$emit('abort');\n },\n\n confirm(event)\n {\n this.$refs.modal.closeModal(true, 'self');\n this.$emit('confirm');\n },\n\n eventInput(value, source)\n {\n if ( ! value && source !== 'self' ) {\n this.$emit('abort');\n }\n\n this.$emit('update:visible', this.tempVisible = value);\n }\n\n },\n\n renderIcon()\n {\n return (\n <div class=\"n-confirm__icon\">\n <span class={nano.Icons[this.type]}></span>\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-confirm__body\">\n { this.$slots.default && this.$slots.default() || this.trans('Are you sure?') }\n </div>\n );\n },\n\n renderAction()\n {\n let classList = [\n 'n-confirm__action'\n ];\n\n if ( window.WIN ) {\n classList.push('n-reverse');\n }\n\n return (\n <div class={classList}>\n <NButton size={this.buttonSize} type={this.type} link={true} onClick={this.abort}>\n { this.abortText }\n </NButton>\n <NButton size={this.buttonSize} type={this.type} link={false} onClick={this.confirm}>\n { this.confirmText }\n </NButton>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-confirm',\n 'n-confirm--' + this.type,\n 'n-confirm--' + this.size\n ];\n\n let props = {\n type: 'default',\n selector: this.selector,\n listen: this.listen,\n update: this.update,\n width: this.width,\n position: this.position,\n closable: this.closable,\n modelValue: this.tempVisible,\n };\n\n // Override input listener\n props['onUpdate:modelValue'] = this.eventInput;\n\n let innerHtml = {\n raw: () => (\n <div class={classList}>\n { this.ctor('renderIcon')() }\n { this.ctor('renderBody')() }\n { this.ctor('renderAction')() }\n </div>\n )\n };\n\n return (\n <NModal ref=\"modal\" {...props}>\n { innerHtml }\n </NModal>\n );\n }\n\n}\n","import { Arr, Obj, Any, Str } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCascaderPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n clearValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n hover: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n valueProp: {\n default()\n {\n return 'value';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n disabledProp: {\n default()\n {\n return 'disabled';\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window || \n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempHover: this.hover,\n };\n },\n\n watch: {\n\n modelValue(value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n hover(value) {\n if ( value !== this.tempHover ) {\n this.tempHover = value;\n }\n }\n\n },\n\n methods: {\n\n clearCascader()\n {\n this.$emit('update:modelValue', this.tempHover = \n this.tempValue = this.clearValue);\n },\n\n onHover(cascade)\n {\n return (event) => this.hoverItem(cascade, event)\n },\n\n onSelect(cascade)\n {\n return (event) => this.selectItem(cascade, event)\n },\n\n hoverItem(cascade, event = null)\n {\n // Hover intend emulation\n clearTimeout(this.delay);\n\n let updateHover = () => {\n this.$emit('update:hover', \n this.tempHover = cascade);\n };\n\n this.delay = setTimeout(updateHover, 130);\n },\n\n selectItem(cascade, event = null)\n {\n clearTimeout(this.clickTimer);\n\n if ( ! this.lastclick ) {\n this.lastclick = 0;\n }\n\n this.lastclick++;\n\n let trigger = this.touch ? 'click' : \n this.trigger ;\n \n this.clickTimer = setTimeout(() => \n this.lastclick = 0, 240);\n\n this.hoverTimer = setTimeout(() => \n this.hoverItem(cascade), 240);\n\n if ( this.lastclick === 1 && trigger === 'click' ) {\n return this.hoverItem(cascade, event);\n }\n\n if ( event ) {\n event.preventDefault();\n }\n\n this.clickTimer = setTimeout(() => \n this.fireSelectItem(cascade), 50);\n },\n\n fireSelectItem(cascade)\n {\n clearTimeout(this.hoverTimer);\n\n this.lastclick = 0;\n\n this.$emit('update:modelValue', \n this.tempValue = cascade);\n }\n\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-cascader-panel',\n 'n-cascader-panel--' + this.size\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderLabel')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n )\n },\n\n renderOption(item, cascade = [])\n {\n let value = Obj.get(item, this.valueProp);\n\n let classList = [\n 'n-popover-option'\n ];\n\n if ( Arr.has(this.tempValue, item[this.valueProp]) ) {\n classList.push('n-active');\n }\n\n let disabled = Obj.get(item, this.disabledProp, false);\n\n if ( disabled ) {\n classList.push('n-disabled');\n }\n\n let props = {\n size: this.size,\n type: this.type,\n clickClose: false\n };\n\n if ( Arr.last(this.tempValue) === value ) {\n props.icon = nano.Icons.checked;\n }\n\n let tempCascade = Arr.merge(Arr.clone(cascade), [value]);\n\n if ( this.trigger === 'hover' ) {\n props.onMousemove = Any.framerate(this.onHover(tempCascade), 30);\n }\n\n if ( ! disabled ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onSelect(tempCascade);\n }\n\n let children = Obj.get(item, this.childProp);\n\n if ( ! props.icon && ! Any.isEmpty(children) ) {\n props.icon = nano.Icons.angleRight;\n }\n\n return (\n <NPopoverOption class={classList} {...props}>\n { Obj.get(item, this.labelProp) }\n </NPopoverOption>\n );\n },\n\n renderOptions(items, cascade = [])\n {\n if ( Any.isEmpty(items) ) {\n return null;\n }\n\n return (\n <div class=\"n-cascader-panel__items\">\n <NScrollbar relative={true}>\n {\n Arr.each(items, (item) => {\n return this.ctor('renderOption')(item, cascade);\n })\n }\n </NScrollbar>\n </div>\n )\n },\n\n renderCascade()\n {\n let renderList = [\n this.ctor('renderOptions')(this.options)\n ];\n\n let items = this.options, cascade = [];\n\n Arr.each(this.tempHover, (value) => {\n\n if ( ! items ) {\n return;\n }\n\n cascade.push(value);\n\n let item = Arr.find(items, {\n [this.valueProp]: value\n });\n\n items = Obj.get(item, this.childProp);\n\n let options = this.ctor('renderOptions')\n (items, cascade);\n\n renderList.push(options);\n });\n\n return renderList;\n },\n\n render()\n {\n let classList = [\n 'n-cascader-panel',\n 'n-cascader-panel--' + this.size\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>{ this.ctor('renderCascade')() }</div>\n );\n }\n\n}","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCascader',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n clearValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Please select';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n valueProp: {\n default()\n {\n return 'value';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n disabledProp: {\n default()\n {\n return 'disabled';\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempHover: this.modelValue,\n focus: false,\n };\n },\n\n methods: {\n\n clearCascader()\n {\n this.focus = true;\n\n this.$emit('update:modelValue', \n this.tempValue = this.tempHover = this.clearValue);\n },\n\n onCascaderInput(value)\n {\n this.focus = false;\n\n this.$emit('update:modelValue', \n this.tempValue = value);\n },\n\n onCascaderHover(value)\n {\n this.$emit('update:hover', \n this.tempHover = value);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n },\n\n watch: {\n\n modelValue(value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearCascader;\n }\n\n return (\n <div class=\"n-cascader__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-cascader__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderLabelItems()\n {\n let items = this.options, renderList = [];\n\n if ( Any.isEmpty(this.tempValue) ) {\n return (\n <div class=\"n-cascader__placeholder\">\n { this.trans(this.placeholder) }\n </div>\n );\n }\n\n Arr.each(this.tempValue, (value) => {\n\n if ( ! items ) {\n return;\n }\n\n let item = Arr.find(items, {\n [this.valueProp]: value\n });\n\n items = Obj.get(item, this.childProp);\n\n let itemLabel = (\n <div class=\"n-cascader__item\">\n <span>{ Obj.get(item, this.labelProp) }</span>\n </div>\n );\n\n renderList.push(itemLabel);\n });\n\n return (\n <div class=\"n-cascader__items\">\n { renderList }\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-cascader__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderLabelItems')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n let props = Obj.except(this.$props, ['modelValue'], {\n hover: this.tempHover,\n modelValue: this.tempValue,\n });\n\n props['onUpdate:hover'] = this.onCascaderHover;\n props['onUpdate:modelValue'] = this.onCascaderInput;\n\n return (\n <NCascaderPanel class=\"n-cascader__body\" {...props}></NCascaderPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled,\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderItems') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-cascader',\n 'n-cascader--' + this.type,\n 'n-cascader--' + this.size,\n ];\n\n if ( Any.isEmpty(this.tempValue) ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Arr, Str, Now, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatepickerPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n arrive: {\n default()\n {\n return null;\n }\n },\n\n clearArrive: {\n default()\n {\n return null;\n }\n },\n\n depart: {\n default()\n {\n return null;\n }\n },\n\n clearDepart: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su',\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', \n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',\n ]\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n yearsGrid()\n {\n return this.tempCache.getYears();\n },\n\n monthsGrid()\n {\n return this.tempCache.getMonths();\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n arrive(value)\n {\n if ( value !== this.tempArrive.format(this.format) ) {\n this.tempArrive = Now.make(value);\n }\n },\n\n depart(value)\n {\n if ( value !== this.tempDepart.format(this.format) ) {\n this.tempDepart = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n tempView: 'date',\n tempRanger: null,\n cacheArrive: null,\n cacheDepart: null,\n tempValue: Now.make(this.modelValue, this.format),\n tempCache: Now.make(this.modelValue, this.format),\n tempArrive: Now.make(this.arrive),\n tempDepart: Now.make(this.depart),\n }\n },\n\n methods: {\n\n gotoDate()\n {\n this.tempView = 'date';\n },\n\n gotoMonth()\n {\n this.tempView = 'month';\n },\n\n gotoYear()\n {\n this.tempView = 'year';\n },\n\n patchDate(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n if ( Any.isEmpty(this.modelValue) ) {\n now.resetTime();\n } else {\n now.applyTime(this.tempValue);\n }\n\n // Copy now to cache\n this.tempCache = now.clone();\n\n // Copy now to value\n this.tempValue = now.clone();\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n patchMonth(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n this.tempCache = now.clone();\n\n this.gotoDate();\n },\n\n printRange(now)\n {\n this.tempRanger = now.clone();\n },\n\n patchYear(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n this.tempCache = now.clone();\n\n this.gotoMonth();\n },\n\n patchRange(now)\n {\n if ( this.cacheArrive && ! this.cacheDepart ) {\n this.cacheDepart = now.clone();\n }\n\n if ( ! this.cacheArrive && ! this.cacheDepart ) {\n this.cacheArrive = now.clone();\n }\n\n if ( ! this.cacheArrive || ! this.cacheDepart ) {\n return;\n }\n\n this.tempArrive = this.cacheArrive.clone();\n this.tempDepart = this.cacheDepart.clone();\n\n this.$emit('update:arrive', \n this.tempArrive.format(this.format));\n\n this.$emit('update:depart', \n this.tempDepart.format(this.format));\n\n this.cacheArrive = null;\n this.cacheDepart = null;\n\n this.$emit('rangeSelected', [\n this.tempArrive.format(this.format),\n this.tempDepart.format(this.format)\n ]);\n },\n\n },\n\n renderToolbarPrev(closure)\n {\n let props = {\n type: this.type,\n link: true,\n icon: nano.Icons.angleLeft,\n onClick: closure\n };\n\n return (<NButton {...props}></NButton>);\n },\n\n renderToolbarNext(closure)\n {\n let props = {\n type: this.type,\n link: true,\n icon: nano.Icons.angleRight,\n onClick: closure\n };\n\n return (<NButton {...props}></NButton>);\n },\n\n renderToolbarMonth()\n {\n let props = {\n onClick: this.gotoMonth\n };\n\n let monthsHtml = [\n this.months[this.tempCache.month()]\n ];\n\n let month = this.tempCache.clone()\n .addMonths(this.monthPanels - 1);\n\n if ( month.month() !== this.tempCache.month() ) {\n monthsHtml.push(this.months[month.month()]);\n }\n\n return (\n <span class=\"n-datepicker-panel__month\" {...props}>\n { monthsHtml.join(' - ') }\n </span>\n );\n },\n\n renderToolbarYear()\n {\n let props = {\n onClick: this.gotoYear\n };\n\n let yearsHtml = [\n this.tempCache.year()\n ];\n\n let month = this.tempCache.clone()\n .addMonths(this.monthPanels - 1);\n\n if ( month.year() !== this.tempCache.year() ) {\n yearsHtml.push(month.year());\n }\n\n return (\n <span class=\"n-datepicker-panel__year\" {...props}>\n { yearsHtml.join(' - ') }\n </span>\n );\n },\n\n renderToolbar({ prev, next })\n {\n return (\n <div class=\"n-datepicker-panel__toolbar\">\n <div class=\"n-datepicker-panel__display\">\n { this.ctor('renderToolbarMonth')() }\n { this.ctor('renderToolbarYear')() }\n </div>\n <div class=\"n-datepicker-panel__prev\">\n { this.ctor('renderToolbarPrev')(prev) }\n </div>\n <div class=\"n-datepicker-panel__next\">\n { this.ctor('renderToolbarNext')(next) }\n </div>\n </div>\n );\n },\n\n renderDateItem(now, month)\n {\n let classList = [\n 'n-datepicker-panel__day'\n ];\n\n if ( now.equalDate() ) {\n classList.push('n-today');\n }\n\n let isSelected = this.tempValue.valid() && \n now.equalDate(this.tempValue);\n\n if ( isSelected ) {\n classList.push('n-selected');\n }\n\n if ( now.month() === month.month() ) {\n classList.push('n-current');\n }\n\n let isNotBeforeMin = ! this.minDate || \n now.after(this.minDate) || now.equalDate(this.minDate);\n\n let isNotAfterMax = ! this.maxDate || \n now.before(this.maxDate) || now.equalDate(this.maxDate);\n\n if ( ! isNotBeforeMin || ! isNotAfterMax ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( isNotBeforeMin && isNotAfterMax ) {\n props.onClick = () => this.patchDate(now);\n }\n\n return (\n <div class={classList} {...props}>\n <span>{ now.format('DD') }</span>\n </div>\n );\n },\n\n renderRangeDateItem(now, month)\n {\n let classList = [\n 'n-datepicker-panel__day'\n ];\n\n if ( now.equalDate('now') ) {\n classList.push('n-today');\n }\n\n if ( now.month() === month.month() ) {\n classList.push('n-current');\n }\n\n let viewMode = 0;\n\n if ( !! this.cacheArrive ) {\n viewMode++;\n }\n\n if ( !! this.cacheDepart ) {\n viewMode++;\n }\n\n let isTempValid = this.tempArrive.valid() && \n this.tempDepart.valid();\n\n if ( viewMode === 0 && isTempValid ) {\n\n if ( now.between(this.tempArrive, this.tempDepart) ) {\n classList.push('n-between');\n classList.push('n-selected');\n }\n\n let arriveFirst = this.tempArrive.before(this.tempDepart);\n\n if ( now.equalDate(this.tempArrive) ) {\n classList.push(arriveFirst ? 'n-arrive' : 'n-depart');\n classList.push('n-selected');\n }\n\n if ( now.equalDate(this.tempDepart) ) {\n classList.push(arriveFirst ? 'n-depart' : 'n-arrive');\n classList.push('n-selected');\n }\n\n }\n\n if ( viewMode === 1 && this.cacheArrive ) {\n\n if ( now.between(this.cacheArrive, this.tempRanger) ) {\n classList.push('n-between');\n }\n\n let arriveFirst = this.cacheArrive.before(this.tempRanger);\n\n if ( now.equalDate(this.cacheArrive) ) {\n classList.push(arriveFirst ? 'n-arrive' : 'n-depart');\n }\n\n if ( now.equalDate(this.tempRanger) ) {\n classList.push(arriveFirst ? 'n-depart' : 'n-arrive');\n }\n\n }\n\n let isNotBeforeMin = ! this.minDate || \n now.after(this.minDate) || now.equalDate(this.minDate);\n\n let isNotAfterMax = ! this.maxDate || \n now.before(this.maxDate) || now.equalDate(this.maxDate);\n\n if ( ! isNotBeforeMin || ! isNotAfterMax ) {\n classList.push('n-disabled');\n }\n\n let props = {\n onMouseenter: () => this.printRange(now)\n };\n\n if ( isNotBeforeMin && isNotAfterMax ) {\n props.onClick = () => this.patchRange(now);\n }\n\n return (\n <div class={classList} {...props}>\n <span>{ now.format('DD') }</span>\n </div>\n );\n },\n\n renderDate()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevMonth();\n };\n let next = () => {\n this.tempCache = this.tempCache.nextMonth();\n };\n\n let legendHtml = (\n Arr.each(this.weekdays, (day) => {\n return (\n <div class=\"n-datepicker-panel__day\">\n <span>{ this.trans(day) }</span>\n </div>\n );\n })\n );\n\n let renderItem = this.ctor('renderDateItem');\n\n if ( this.range ) {\n renderItem = this.ctor('renderRangeDateItem');\n }\n\n let bodyHtml = (month) => (\n Arr.each(Arr.chunk(month.getDatesGrid(), 7), (chunks) => {\n return (\n <div class=\"n-datepicker-panel__week\">\n { Arr.each(chunks, (chunk) => renderItem(chunk, month)) }\n </div>\n );\n })\n );\n\n let panelHtml = (\n Arr.each(Arr.make(this.monthPanels), (offset) => {\n\n let month = this.tempCache.clone()\n .addMonths(offset - 1);\n\n return (\n <div class=\"n-datepicker-panel__panel\">\n <div class=\"n-datepicker-panel__legend\">\n { legendHtml }\n </div>\n <div class=\"n-datepicker-panel__body\">\n { bodyHtml(month) }\n </div>\n </div>\n );\n })\n );\n\n return (\n <div class=\"n-datepicker-panel__dateview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__panels\">\n { panelHtml }\n </div>\n </div>\n );\n },\n\n renderMonthItem(now)\n {\n let classList = [\n 'n-datepicker-panel__month'\n ];\n\n if ( now.equal(this.tempCache, 'YYYYMM') ) {\n classList.push('n-selected');\n }\n\n if ( now.month() === Now.make('now').month() ) {\n classList.push('n-current');\n }\n\n let props = {\n onClick: () => this.patchMonth(now)\n };\n\n return (\n <div class={classList} {...props}>\n <span>{ this.trans(this.months[now.month()]) }</span>\n </div>\n )\n },\n\n renderMonth()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevYear();\n };\n\n let next = () => {\n this.tempCache = this.tempCache.nextYear();\n };\n\n return (\n <div class=\"n-datepicker-panel__monthview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__body\">\n <div class=\"n-datepicker-panel__year\">\n { Arr.each(this.monthsGrid, this.ctor('renderMonthItem')) }\n </div>\n </div>\n <div class=\"n-datepicker-panel__footer\">\n <NButton size={this.type} size={this.size} link={true} onClick={this.gotoDate}>\n { this.trans('Go back') }\n </NButton>\n </div>\n </div>\n );\n },\n\n renderYearItem(now)\n {\n let classList = [\n 'n-datepicker-panel__year'\n ];\n\n if ( now.equal(this.tempCache, 'YYYY') ) {\n classList.push('n-selected');\n }\n\n if ( now.year() === Now.make('now').year() ) {\n classList.push('n-current');\n }\n\n let props = {\n onClick: () => this.patchYear(now)\n };\n\n return (\n <div class={classList} {...props}>\n <span>{ now.year() }</span>\n </div>\n )\n },\n\n renderYear()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevDecade();\n };\n\n let next = () => {\n this.tempCache = this.tempCache.nextDecade();\n };\n\n return (\n <div class=\"n-datepicker-panel__yearview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__body\">\n <div class=\"n-datepicker-panel__decade\">\n { Arr.each(this.yearsGrid, this.ctor('renderYearItem')) }\n </div>\n </div>\n <div class=\"n-datepicker-panel__footer\">\n <NButton size={this.type} size={this.size} link={true} onClick={this.gotoDate}>\n { this.trans('Go back') }\n </NButton>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-datepicker-panel',\n 'n-datepicker-panel--' + this.size,\n 'n-datepicker-panel--' + this.type\n ]\n\n return (\n <div class={classList}>\n { this.ctor('render' + Str.ucfirst(this.tempView))() }\n </div>\n );\n }\n\n}","import { Obj, Now, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatepicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n arrive: {\n default()\n {\n return null;\n }\n },\n\n clearArrive: {\n default()\n {\n return null;\n }\n },\n\n depart: {\n default()\n {\n return null;\n }\n },\n\n clearDepart: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select date');\n },\n type: [String]\n },\n\n placeholderArrive: {\n default()\n {\n return Locale.trans('Start date');\n },\n type: [String]\n },\n\n placeholderDepart: {\n default()\n {\n return Locale.trans('End date');\n },\n type: [String]\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n rangeSeparator: {\n default()\n {\n return '-';\n },\n type: [String]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD');\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n Locale.trans('Mo'),\n Locale.trans('Tu'),\n Locale.trans('We'),\n Locale.trans('Th'),\n Locale.trans('Fr'),\n Locale.trans('Sa'),\n Locale.trans('Su'),\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n Locale.trans('Jan'),\n Locale.trans('Feb'),\n Locale.trans('Mar'),\n Locale.trans('Apr'),\n Locale.trans('May'),\n Locale.trans('Jun'),\n Locale.trans('Jul'),\n Locale.trans('Aug'),\n Locale.trans('Sep'),\n Locale.trans('Oct'),\n Locale.trans('Nov'),\n Locale.trans('Dec'),\n ];\n },\n type: [Array]\n }\n\n },\n\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n arrive(value)\n {\n if ( value !== this.tempArrive.format(this.format) ) {\n this.tempArrive = Now.make(value);\n }\n },\n\n depart(value)\n {\n if ( value !== this.tempDepart.format(this.format) ) {\n this.tempDepart = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false,\n tempValue: Now.make(this.modelValue, this.format),\n tempArrive: Now.make(this.arrive, this.format),\n tempDepart: Now.make(this.depart, this.format),\n };\n },\n\n methods: {\n\n clearDatepicker()\n {\n this.range ? this.clearRangeDatepicker() :\n this.clearSingleDatepicker();\n },\n\n clearSingleDatepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n\n clearRangeDatepicker()\n {\n this.tempArrive = Now.make(this.clearArrive, \n this.format);\n\n this.$emit('update:arrive', this.clearValue);\n\n this.tempDepart = Now.make(this.clearDepart, \n this.format);\n\n this.$emit('update:depart', this.clearDepart);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onArriveInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempArrive = Now.make(moment);\n\n this.$emit('update:arrive', \n this.tempArrive.format(this.format));\n },\n\n onDepartInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempDepart = Now.make(moment);\n\n this.$emit('update:depart', \n this.tempDepart.format(this.format));\n },\n\n onDatepickerInput(value)\n {\n this.focus = false;\n\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n onDatepickerDepart(value)\n {\n this.focus = false;\n\n this.tempDepart = Now.make(value, \n this.format);\n\n this.$emit('update:depart', value);\n },\n\n onDatepickerArrive(value)\n {\n this.focus = false;\n\n this.tempArrive = Now.make(value, \n this.format);\n\n this.$emit('update:arrive', value);\n },\n\n },\n\n\n renderLabelClear()\n {\n let isEmpty = ! this.tempArrive.initialDate &&\n ! this.tempDepart.initialDate;\n\n if ( ! this.range ) {\n isEmpty = ! this.tempValue.initialDate;\n }\n\n if ( ! this.clearable || isEmpty ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearDatepicker;\n }\n\n return (\n <div class=\"n-datepicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-datepicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderRange()\n {\n let arriveProps = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholderArrive,\n onInput: this.onArriveInput,\n };\n\n if ( this.tempArrive.valid() ) {\n arriveProps.value = this.tempArrive.format(\n this.displayFormat, true);\n }\n\n let departProps = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholderDepart,\n onInput: this.onDepartInput,\n };\n\n if ( this.tempDepart.valid() ) {\n departProps.value = this.tempDepart.format(\n this.displayFormat, true);\n }\n\n return [\n (\n <div class=\"n-datepicker__input\">\n <input {...arriveProps}/>\n </div>\n ),\n (\n <div class=\"n-datepicker__seperator\">\n <span>{ this.rangeSeparator }</span>\n </div>\n ),\n (\n <div class=\"n-datepicker__input\">\n <input {...departProps}/>\n </div>\n )\n ];\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-datepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-datepicker__display'\n ];\n\n if ( this.range ) {\n classList.push('n-range');\n }\n\n let displayHtml = this.ctor('renderSingle');\n\n if ( this.range ) {\n displayHtml = this.ctor('renderRange');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { displayHtml() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n \n let props = Obj.except(this.$props, ['modelValue'], {\n arrive: this.tempArrive.format(this.format) || null,\n depart: this.tempDepart.format(this.format) || null,\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:arrive'] = this.onDatepickerArrive;\n props['onUpdate:depart'] = this.onDatepickerDepart;\n props['onUpdate:modelValue'] = this.onDatepickerInput;\n\n return (\n <NDatepickerPanel class=\"n-datepicker__body\" {...props}></NDatepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderItems') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-datepicker',\n 'n-datepicker--' + this.type,\n 'n-datepicker--' + this.size,\n ];\n\n let isEmpty = ! this.tempArrive.initialDate &&\n ! this.tempDepart.initialDate;\n\n if ( ! this.range ) {\n isEmpty = ! this.tempValue.initialDate;\n }\n\n if ( isEmpty ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Arr, Obj, Now, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTimepickerPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Select time';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return 'HH:mm:ss';\n },\n type: [String]\n },\n\n hoursInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n minutesInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n secondsInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n hoursGrid()\n {\n return this.tempValue.getHours(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutes(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSeconds(this.secondsInterval);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n }\n\n },\n\n data()\n {\n let modelValue = Now.make(this.modelValue);\n\n if ( Any.isEmpty(this.modelValue) ) {\n modelValue = modelValue.resetTime();\n }\n\n return {\n tempValue: modelValue,\n }\n },\n\n mounted()\n {\n this.scrollTo();\n },\n\n methods: {\n\n eventSelect(now)\n {\n this.$emit('update:modelValue',\n (this.tempValue = now.clone()).format(this.format));\n },\n\n scrollTo()\n {\n let scrollbars = Obj.only(this.$refs, [\n 'hour', 'minute', 'second'\n ]);\n\n Arr.each(scrollbars, (ref, key) => {\n ref.scrollIntoView(`[data-index=\"${this.tempValue[key]()}\"]`);\n });\n }\n\n },\n\n renderToolbar()\n {\n return (\n <div class=\"n-timepicker-panel__toolbar\">\n <div class=\"n-timepicker-panel__display\">\n <span class=\"n-timepicker-panel__time\">\n {this.tempValue.format(this.displayFormat) || this.placeholder}\n </span>\n </div>\n </div>\n )\n },\n\n renderHourItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.hour() === this.tempValue.hour() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.hour()}>\n <span>{now.format('HH')}</span>\n </div>\n );\n },\n\n renderHourPanel()\n {\n if ( !this.displayFormat.match('HH') ) {\n return null;\n }\n\n return (\n <NScrollbar ref=\"hour\" class=\"n-timepicker-panel__panel\" wrapClass=\"n-timepicker-panel__wrap\">\n {Arr.each(this.hoursGrid, this.ctor('renderHourItem'))}\n </NScrollbar>\n );\n },\n\n renderMinuteItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.minute() === this.tempValue.minute() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.minute()}>\n <span>{now.format('mm')}</span>\n </div>\n );\n },\n\n renderMinutePanel()\n {\n if ( !this.displayFormat.match('mm') ) {\n return null;\n }\n\n return (\n <NScrollbar ref=\"minute\" class=\"n-timepicker-panel__panel\" wrapClass=\"n-timepicker-panel__wrap\">\n {Arr.each(this.minutesGrid, this.ctor('renderMinuteItem'))}\n </NScrollbar>\n );\n },\n\n renderSecondItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.second() === this.tempValue.second() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.second()}>\n <span>{now.format('ss')}</span>\n </div>\n );\n },\n\n renderSecondPanel()\n {\n if ( !this.displayFormat.match('ss') ) {\n return null;\n }\n\n return (\n <NScrollbar ref=\"second\" class=\"n-timepicker-panel__panel\" wrapClass=\"n-timepicker-panel__wrap\">\n {Arr.each(this.secondsGrid, this.ctor('renderSecondItem'))}\n </NScrollbar>\n );\n },\n\n render()\n {\n let classList = [\n 'n-timepicker-panel',\n 'n-timepicker-panel--' + this.size,\n 'n-timepicker-panel--' + this.type,\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-timepicker-panel__header\">\n {this.ctor('renderToolbar')()}\n </div>\n <div class=\"n-timepicker-panel__body\">\n {this.ctor('renderHourPanel')()}\n {this.ctor('renderMinutePanel')()}\n {this.ctor('renderSecondPanel')()}\n </div>\n </div>\n );\n }\n\n}","import { Arr, Obj, Now, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTimepicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Select time';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('HH:mm:ss');\n },\n type: [String]\n },\n\n hoursInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n minutesInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n secondsInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n hoursGrid()\n {\n return this.tempValue.getHours(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutes(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSeconds(this.secondsInterval);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n }\n\n },\n\n data()\n {\n return {\n focus: false,\n tempValue: Now.make(this.modelValue),\n }\n },\n\n methods: {\n\n clearTimepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n hour: value.moment.hour(), \n minute: value.moment.minute(), \n second: value.moment.second(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onTimepickerInput(value)\n {\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || ! this.tempValue.valid() ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearTimepicker;\n }\n\n return (\n <div class=\"n-timepicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-timepicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.disabled,\n placeholder: this.trans(this.placeholder),\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-timepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-timepicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderSingle')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderPanel()\n {\n \n let props = Obj.except(this.$props, ['modelValue'], {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onTimepickerInput;\n\n return (\n <NTimepickerPanel class=\"n-timepicker__body\" {...props}></NTimepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderPanel') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-timepicker',\n 'n-timepicker--' + this.type,\n 'n-timepicker--' + this.size,\n ];\n\n if ( ! this.tempValue.valid() ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Obj, Now, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatetimepicker',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select datetime');\n },\n type: [String]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm:ss');\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n Locale.trans('Mo'),\n Locale.trans('Tu'),\n Locale.trans('We'),\n Locale.trans('Th'),\n Locale.trans('Fr'),\n Locale.trans('Sa'),\n Locale.trans('Su'),\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n Locale.trans('Jan'),\n Locale.trans('Feb'),\n Locale.trans('Mar'),\n Locale.trans('Apr'),\n Locale.trans('May'),\n Locale.trans('Jun'),\n Locale.trans('Jul'),\n Locale.trans('Aug'),\n Locale.trans('Sep'),\n Locale.trans('Oct'),\n Locale.trans('Nov'),\n Locale.trans('Dec'),\n ];\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: Now.make(this.modelValue, this.format),\n };\n },\n\n methods: {\n\n clearDatetimepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n hour: value.moment.hour(),\n minute: value.moment.minute(),\n second: value.moment.second(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onDatepickerInput(value)\n {\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n onTimepickerInput(value)\n {\n this.tempValue = Now.make(value,\n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n },\n\n\n renderLabelClear()\n {\n let isEmpty = ! this.tempValue.initialDate;\n\n if ( ! this.clearable || isEmpty ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.clearDatetimepicker;\n }\n\n return (\n <div class=\"n-datetimepicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-datetimepicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-datetimepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-datetimepicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderSingle')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderPanels()\n {\n return (\n <div class=\"n-datetimepicker__body\">\n {[this.ctor('renderDatePanel')(), this.ctor('renderTimePanel')()]}\n </div>\n );\n },\n\n renderDatePanel()\n {\n let props = Obj.only(this.$props, [\n 'minDate', 'maxDate', 'size', 'type', 'format', 'monthPanels', 'disabled', 'weekdays', 'months'\n ]);\n\n props = Obj.assign(props, {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onDatepickerInput;\n\n return (\n <NDatepickerPanel class=\"n-datetimepicker__date-panel\" {...props}></NDatepickerPanel>\n );\n },\n\n renderTimePanel()\n {\n let props = Obj.only(this.$props, [\n 'size', 'type', 'format', 'disabled', 'hoursInterval', 'minutesInterval', 'secondsInterval'\n ]);\n\n props = Obj.assign(props, {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onTimepickerInput;\n\n return (\n <NTimepickerPanel class=\"n-datetimepicker__time-panel\" {...props}></NTimepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.deepDisabled\n };\n\n let slots = {\n raw: this.ctor('renderPanels')\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props} v-slots={slots} />\n );\n },\n\n render()\n {\n let classList = [\n 'n-datetimepicker',\n 'n-datetimepicker--' + this.type,\n 'n-datetimepicker--' + this.size,\n ];\n\n let isEmpty = ! this.tempValue.initialDate;\n\n if ( isEmpty ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Any, Obj, Arr, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDurationpicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n options: {\n default()\n {\n return [\n 60 * 5,\n 60 * 10,\n 60 * 15,\n 60 * 30,\n 60 * 45,\n 60 * 60,\n 60 * 90,\n 60 * 120,\n 60 * 150,\n 60 * 60 * 3,\n 60 * 60 * 4,\n 60 * 60 * 5,\n 60 * 60 * 6,\n 60 * 60 * 12,\n 60 * 60 * 24,\n 60 * 60 * 24 * 2,\n 60 * 60 * 24 * 3,\n 60 * 60 * 24 * 4,\n 60 * 60 * 24 * 5,\n 60 * 60 * 24 * 6,\n 60 * 60 * 24 * 7,\n ];\n },\n type: [Array]\n },\n\n minDuration: {\n default()\n {\n return null;\n }\n },\n\n maxDuration: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select duration');\n },\n type: [String]\n },\n\n negativeText: {\n default()\n {\n return Locale.trans('Negative duration');\n },\n type: [String]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n days: {\n default()\n {\n return Locale.trans(':count Day|:count Days');\n },\n type: [String]\n },\n\n hours: {\n default()\n {\n return Locale.trans(':count Hour|:count Hours');\n },\n type: [String]\n },\n\n minutes: {\n default()\n {\n return Locale.trans(':count Minute|:count Minutes');\n },\n type: [String]\n },\n\n seconds: {\n default()\n {\n return Locale.trans(':count Second|:count Seconds');\n },\n type: [String]\n }\n\n },\n\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.modelValue, editValue: null\n };\n },\n\n methods: {\n\n findPattern(text, pattern)\n {\n pattern = pattern.replaceAll(':count', '([0-9\\.\\,]+)')\n .replaceAll(' ', '\\\\s*');\n\n return text.match(new RegExp(pattern, 'i'));\n },\n\n humanizeValue(value)\n {\n if ( Any.isEmpty(value) ) {\n return '';\n }\n\n if ( value < 0 ) {\n return this.negativeText;\n }\n\n let seconds = value;\n\n // Extract minutes\n let minutes = Math.floor(seconds/60);\n seconds -= minutes * 60;\n\n // Extract hours\n let hours = Math.floor(minutes/60);\n minutes -= hours * 60;\n\n\n // Extract days\n let days = Math.floor(hours/24);\n hours -= days * 24;\n\n let text = [];\n\n if ( days ) {\n text.push(Locale.choice(this.days, days));\n }\n\n if ( hours ) {\n text.push(Locale.choice(this.hours, hours));\n }\n\n if ( minutes ) {\n text.push(Locale.choice(this.minutes, minutes));\n }\n\n if ( seconds ) {\n text.push(Locale.choice(this.seconds, seconds));\n }\n\n return text.join(' ');\n },\n\n digitizeValue(text)\n {\n if ( Any.isEmpty(text) ) {\n return this.clearValue;\n }\n\n let value = 0;\n\n let dmatch = this.findPattern(text, this.days);\n\n if ( dmatch && dmatch.length === 3 ) {\n value += Any.float(dmatch[1].replace(',', '.')) * 24 * 60 * 60;\n }\n\n let hmatch = this.findPattern(text, this.hours);\n\n if ( hmatch && hmatch.length === 3 ) {\n value += Any.float(hmatch[1].replace(',', '.')) * 60 * 60;\n }\n\n let mmatch = this.findPattern(text, this.minutes);\n\n if ( mmatch && mmatch.length === 3 ) {\n value += Any.float(mmatch[1].replace(',', '.')) * 60;\n }\n\n let smatch = this.findPattern(text, this.seconds);\n\n if ( smatch && smatch.length === 3 ) {\n value += Any.float(smatch[1].replace(',', '.'));\n }\n\n return value;\n },\n\n clearDurationpicker()\n {\n this.$emit('update:modelValue', this.tempValue = this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(e)\n {\n let value = this.digitizeValue(e.target.value);\n\n if ( value === this.tempValue ) {\n return;\n }\n\n this.editValue = value;\n },\n\n onValueChange(e)\n {\n let value = this.editValue;\n\n // Clear edit value\n this.editValue = null;\n\n if ( ! value || value === this.tempValue ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = value);\n },\n\n onDurationpickerInput(value)\n {\n this.focus = false;\n\n // Clear edit value\n this.editValue = null;\n\n this.$emit('update:modelValue', this.tempValue = value);\n },\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || ! this.tempValue ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearDurationpicker;\n }\n\n return (\n <div class=\"n-durationpicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-durationpicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderInput()\n {\n let props = {\n value: this.humanizeValue(this.tempValue),\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n onBlur: this.onValueChange,\n onChange: this.onValueChange,\n };\n\n return (\n <div class=\"n-durationpicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-durationpicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderInput')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n return Arr.each(this.options, (value) => {\n\n let text = this.humanizeValue(value);\n\n let optionProps = {\n //\n };\n\n optionProps['onClick'] = () => {\n this.onDurationpickerInput(value);\n }\n\n return (<NPopoverOption {...optionProps}>{text}</NPopoverOption>)\n });\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: -1,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n let slots = {};\n\n slots.raw = () => {\n\n let scrollProps = {\n relative: true, size: this.size\n }\n\n return (\n <NScrollbar ref=\"scrollbar\" class=\"n-durationpicker__body\" {...scrollProps}>\n {this.ctor('renderItems')()}\n </NScrollbar>\n )\n }\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props} v-slots={slots} />\n );\n },\n\n render()\n {\n let classList = [\n 'n-durationpicker',\n 'n-durationpicker--' + this.type,\n 'n-durationpicker--' + this.size,\n ];\n\n if ( ! this.tempValue ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Str, Arr, Obj, Any, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTransfer',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n sourceLabel: {\n default()\n {\n return 'Source';\n },\n type: [String]\n },\n\n targetLabel: {\n default()\n {\n return 'Target';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n sourceChecked()\n {\n return !! this.selectedSource.length && \n this.selectedSource.length === this.tempSource.length;\n },\n\n sourceIntermediate()\n {\n return !! this.selectedSource.length && \n this.selectedSource.length !== this.tempSource.length;\n },\n\n targetChecked()\n {\n return !! this.selectedTarget.length && \n this.selectedTarget.length === this.tempTarget.length;\n },\n\n targetIntermediate()\n {\n return !! this.selectedTarget.length && \n this.selectedTarget.length !== this.tempTarget.length;\n },\n\n tempSource()\n {\n let source = Arr.filter(this.options, (item) => {\n return ! Arr.find(this.tempValue, { [this.uniqueProp]: item[this.uniqueProp] });\n });\n\n if ( Any.isEmpty(this.sourceSearch) ) {\n return Arr.clone(source);\n }\n\n let searchPattern = new RegExp(this.sourceSearch, 'i');\n\n source = Arr.filter(source, (item) => {\n return item[this.labelProp].match(searchPattern);\n });\n\n return Arr.clone(source);\n },\n\n tempTarget()\n {\n let target = Arr.filter(this.options, (item) => {\n return !! Arr.find(this.tempValue, { [this.uniqueProp]: item[this.uniqueProp] });\n });\n\n if ( Any.isEmpty(this.targetSearch) ) {\n return Arr.clone(target);\n }\n\n let searchPattern = new RegExp(this.targetSearch, 'i');\n\n target = Arr.filter(target, (item) => {\n return item[this.labelProp].match(searchPattern);\n });\n\n return Arr.clone(target);\n }\n\n },\n data()\n {\n return {\n uid: UUID(),\n tempValue: this.modelValue,\n sourceSearch: '',\n targetSearch: '',\n selectedSource: [],\n selectedTarget: []\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n moveItemsTarget(options)\n {\n Arr.each(options, (source) => {\n\n let item = Arr.find(this.options, {\n [this.uniqueProp]: source\n });\n\n Arr.add(this.tempValue, item, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.$emit('input', this.tempValue);\n },\n\n moveItemsSource(options)\n {\n Arr.each(options, (source) => {\n\n Arr.remove(this.tempValue, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.$emit('input', this.tempValue);\n },\n\n moveRowTarget(node)\n {\n // Get node unique\n let target = node.value[this.uniqueProp];\n\n // Remove item from selected list\n Arr.remove(this.selectedTarget, target);\n\n this.tempValue = Arr.remove(this.tempValue, {\n [this.uniqueProp]: target\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveRowSource(node)\n {\n // Get node unique\n let source = node.value[this.uniqueProp];\n\n // Remove item from selected list\n Arr.remove(this.selectedSource, source);\n\n Arr.add(this.tempValue, node.item, source, {\n [this.uniqueProp]: source\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveToSource()\n {\n Arr.each(this.selectedTarget, (target) => {\n\n Arr.remove(this.tempValue, {\n [this.uniqueProp]: target\n });\n\n });\n\n this.selectedTarget = [];\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveToTarget()\n {\n Arr.each(this.selectedSource, (source) => {\n\n let item = Arr.find(this.options, {\n [this.uniqueProp]: source\n });\n\n Arr.add(this.tempValue, item, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.selectedSource = [];\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n updateSelectedSource(selected)\n {\n this.selectedSource = selected;\n },\n\n updateSelectedTarget(selected)\n {\n this.selectedTarget = selected;\n }\n\n },\n\n renderSourceSelect()\n {\n let props = {\n modelValue: this.sourceChecked,\n size: this.size,\n type: this.type,\n intermediate: this.sourceIntermediate,\n disabled: ! this.tempSource.length\n };\n\n props['onUpdate:modelValue'] = () => {\n this.$refs.source.selectAll();\n };\n\n return (\n <div class=\"n-transfer__select\">\n <NCheckbox {...props} />\n </div>\n );\n },\n\n renderSourceTitle()\n {\n let labelHtml = (\n <span class=\"n-transfer__item-title\">\n { this.sourceLabel }\n </span>\n );\n\n let counterHtml = (\n <span class=\"n-transfer__item-count\">\n { this.tempSource.length }\n </span>\n );\n\n return (\n <div class=\"n-transfer__title\">\n { [labelHtml, counterHtml] }\n </div>\n );\n },\n\n renderSourceHeader()\n {\n return (\n <div class=\"n-transfer__header\">\n { this.ctor('renderSourceSelect')() }\n { this.ctor('renderSourceTitle')() }\n </div>\n );\n },\n\n renderSourceSearch()\n {\n let props = {\n placeholder: this.trans('Search item'),\n size: this.size,\n type: this.type,\n icon: nano.Icons.times,\n iconDisabled: ! this.sourceSearch\n };\n\n props['onIconClick'] = () => {\n this.sourceSearch = '';\n };\n\n props['onUpdate:modelValue'] = () => {\n this.selectedSource = [];\n };\n\n return (\n <div class=\"n-transfer__search\">\n <NInput vModel={this.sourceSearch} {...props} />\n </div>\n )\n },\n\n renderSourceBody()\n {\n let props = {\n group: [this.uid + 'source'],\n allowGroups: [this.uid + 'target'],\n items: this.tempSource,\n size: this.size,\n type: this.type,\n renderSelect: true,\n selected: this.selectedSource,\n safezone: () => -10,\n disableMove: true,\n renderNode: this.ctor('renderNode'),\n onMove: this.moveItemsSource,\n 'onRowDblclick': this.moveRowSource,\n 'onUpdate:selected': this.updateSelectedSource\n };\n\n return (\n <NDraglist ref=\"source\" class=\"n-transfer__body\" {...props} />\n );\n },\n\n renderTargetSelect()\n {\n let props = {\n modelValue: this.targetChecked,\n size: this.size,\n type: this.type,\n intermediate: this.targetIntermediate,\n disabled: ! this.tempTarget.length\n };\n\n props['onUpdate:modelValue'] = () => {\n this.$refs.target.selectAll();\n };\n\n return (\n <div class=\"n-transfer__select\">\n <NCheckbox {...props} />\n </div>\n );\n },\n\n renderTargetTitle()\n {\n let labelHtml = (\n <span class=\"n-transfer__item-title\">\n { this.targetLabel }\n </span>\n );\n\n let counterHtml = (\n <span class=\"n-transfer__item-count\">\n { this.tempTarget.length }\n </span>\n );\n\n return (\n <div class=\"n-transfer__title\">\n { [labelHtml, counterHtml] }\n </div>\n );\n },\n\n renderTargetHeader()\n {\n return (\n <div class=\"n-transfer__header\">\n { this.ctor('renderTargetSelect')() }\n { this.ctor('renderTargetTitle')() }\n </div>\n );\n },\n\n renderTargetSearch()\n {\n let props = {\n placeholder: this.trans('Search item'),\n size: this.size,\n type: this.type,\n icon: nano.Icons.times,\n iconDisabled: ! this.targetSearch\n };\n\n props['onIconClick'] = () => {\n this.targetSearch = '';\n };\n\n props['onUpdate:modelValue'] = () => {\n this.selectedTarget = [];\n };\n\n return (\n <div class=\"n-transfer__search\">\n <NInput vModel={this.targetSearch} {...props} />\n </div>\n )\n },\n\n renderTargetBody()\n {\n let props = {\n group: [this.uid + 'target'],\n allowGroups: [this.uid + 'source'],\n items: this.tempTarget,\n size: this.size,\n type: this.type,\n renderSelect: true,\n selected: this.selectedTarget,\n safezone: () => -1,\n disableMove: true,\n renderNode: this.ctor('renderNode'),\n onMove: this.moveItemsTarget,\n 'onRowDblclick': this.moveRowTarget,\n 'onUpdate:selected': this.updateSelectedTarget\n };\n\n return (\n <NDraglist ref=\"target\" class=\"n-transfer__body\" {...props} />\n );\n },\n\n renderNode(props)\n {\n if ( this.$slots.default ) {\n return this.$slots.default(props);\n }\n\n return (\n <div class=\"n-transfer__item\">\n { Obj.get(props.item, this.labelProp) }\n </div>\n );\n },\n\n renderMoveSource()\n {\n let props = {\n disabled: ! this.selectedSource.length,\n size: this.size,\n type: this.type,\n square: true, \n icon: nano.Icons.angleRight,\n onClick: this.moveToTarget\n };\n\n return (\n <NButton {...props} />\n );\n },\n\n renderMoveTarget()\n {\n let props = {\n disabled: ! this.selectedTarget.length,\n size: this.size,\n type: this.type,\n square: true, \n icon: nano.Icons.angleLeft,\n onClick: this.moveToSource\n };\n return (\n <NButton {...props} />\n );\n },\n\n render($render)\n {\n let classList = [\n 'n-transfer',\n 'n-transfer--' + this.size,\n 'n-transfer--' + this.type,\n ]\n\n return (\n <div class={classList}>\n <div class=\"n-transfer__panel\">\n { this.ctor('renderSourceHeader')() }\n { this.ctor('renderSourceSearch')() }\n { this.ctor('renderSourceBody')() }\n </div>\n <div class=\"n-transfer__controls\">\n { this.ctor('renderMoveSource')() }\n { this.ctor('renderMoveTarget')() }\n </div>\n <div class=\"n-transfer__panel\">\n { this.ctor('renderTargetHeader')() }\n { this.ctor('renderTargetSearch')() }\n { this.ctor('renderTargetBody')() }\n </div>\n </div>\n );\n }\n\n}","import { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NForm',\n\n inheritAttrs: false,\n\n model: {\n prop: 'form'\n },\n\n props: {\n\n dom: {\n default()\n {\n return 'div';\n },\n type: [String]\n },\n\n form: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n errors: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'vertical';\n },\n type: [String]\n },\n\n prevent: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n ignore: {\n default()\n {\n return ['modified', 'dragid'];\n },\n type: [Array]\n },\n\n forceChange: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n forceErrors: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n classList()\n {\n if ( ! this.$attrs.class ) {\n return [];\n }\n\n return Any.isArray(this.$attrs) ? this.$attrs.class :\n [this.$attrs.class];\n }\n\n },\n\n data()\n {\n return {\n uid: UUID(), elements: [], groups: {}, blocked: true,\n };\n },\n\n provide()\n {\n return {\n NForm: this\n };\n },\n\n mounted()\n {\n Any.delay(this.ctor('ready'), 500);\n },\n\n ready()\n {\n this.$watch('form', this.emitChange,\n { deep: true });\n\n this.resetChange();\n },\n\n methods: {\n\n registerGroup(group)\n {\n this.groups[group.key] = group;\n },\n\n unregisterGroup(group)\n {\n delete this.groups[group.key];\n },\n\n onSubmit(event)\n {\n if ( this.prevent ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if ( Dom.find(event.target).is('input') ) {\n this.$emit('submit', event);\n }\n\n return this.prevent;\n },\n\n addItem(item)\n {\n Arr.add(this.elements, item, {\n uid: item.uid\n });\n },\n\n removeItem(item)\n {\n Arr.remove(this.elements,{\n uid: item.uid\n });\n },\n\n resetChange(timeout = 500)\n {\n clearTimeout(this.timeout);\n\n this.timeout = setTimeout(() => {\n this.blocked = false;\n }, timeout);\n\n this.blocked = true;\n\n let value = Obj.except(this.form,\n this.ignore);\n\n this.prevState = JSON.stringify(value);\n },\n\n emitChange()\n {\n if ( this.blocked ) {\n return;\n }\n\n let value = Obj.except(this.form,\n this.ignore);\n\n let nextState = JSON.stringify(value);\n\n if ( this.prevState == nextState ) {\n return;\n }\n\n this.prevState = nextState;\n\n this.$emit('change');\n },\n\n },\n\n render()\n {\n let classList = [\n 'n-form',\n 'n-form--' + this.align,\n ];\n\n let attrs = Obj.except(this.$attrs, ['class', 'onChange', 'onSubmit'], {\n class: this.cmer(classList)\n });\n\n attrs['onSubmit'] = (e) => {\n return false;\n }\n\n return h(this.dom, { ...attrs }, [\n this.$slots.default && this.$slots.default()\n ]);\n }\n\n}\n","import { UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormGroup',\n\n inject: {\n\n NForm: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n key: {\n default()\n {\n return UUID();\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n }\n },\n\n size: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n kind: {\n default()\n {\n return 'classic';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'vertical';\n },\n type: [String]\n },\n\n collapse: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltipPosition: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n }\n\n },\n\n mounted()\n {\n if ( this.NForm ) {\n this.NForm.registerGroup(this);\n }\n },\n\n unmounted()\n {\n if ( this.NForm ) {\n this.NForm.unregisterGroup(this);\n }\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n collapseGroup()\n {\n this.$emit('update:modelValue', this.tempValue = ! this.tempValue);\n }\n\n },\n\n renderCollapse()\n {\n if ( ! this.collapse ) {\n return null;\n }\n\n return (\n <div class=\"n-form-group__collapse\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-form-group__icon\">\n <i class={['n-icon', this.icon]}></i>\n </div>\n );\n },\n\n renderText()\n {\n let textHtml = (\n <div class=\"n-form-group__text\">\n <span>{ this.label }</span>\n </div>\n );\n\n return (\n <div class=\"n-form-group__label\">\n { [this.ctor('renderIcon')(), textHtml] } \n </div>\n );\n },\n\n renderAction()\n {\n if ( ! this.$slots.action ) {\n return null;\n }\n\n return (\n <div class=\"n-form-group__action\">\n { this.$slots.action() }\n </div>\n );\n },\n\n renderLabel()\n {\n return (\n <div class=\"n-form-group__legend\" onClick={this.collapseGroup}>\n { this.ctor('renderCollapse')() }\n { this.ctor('renderText')() }\n { this.ctor('renderAction')() }\n </div>\n );\n },\n\n renderTooltip()\n {\n if ( ! this.tooltip ) {\n return null;\n }\n\n return (\n <NPopover type=\"tooltip\" size=\"sm\" position={this.tooltipPosition}>\n {this.tooltip}\n </NPopover>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-form-group__body\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n },\n\n render()\n {\n let size = this.size ;\n\n if ( this.NForm ) {\n size = size || this.NForm.size;\n }\n\n let classList = [\n 'n-form-group', \n 'n-form-group--' + size,\n 'n-form-group--' + this.type,\n 'n-form-group--' + this.align, \n ];\n\n if ( this.collapse ) {\n classList.push('n-form-group--collapse');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n if ( this.$slots.action ) {\n classList.push('n-action');\n }\n\n return (\n <fieldset id={this.key} class={classList} data-group-key={this.key}>\n { this.ctor('renderLabel')() }\n { this.ctor('renderTooltip')() }\n { this.ctor('renderBody')() }\n </fieldset>\n );\n }\n}\n","import { Arr, Obj, Any, Dom, UUID, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormItem',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NTabs: {\n default: undefined\n },\n\n NTabsItem: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return { NFormItem: this };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n prop: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltipPosition: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n tooltipWindow: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n conditional: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n conditionOn: {\n default()\n {\n return Locale.trans('Enable field');\n },\n type: [String]\n },\n\n conditionOff: {\n default()\n {\n return Locale.trans('Disable field');\n },\n type: [String]\n }\n\n },\n\n methods: {\n\n enabled(component = false)\n {\n return (! this.conditional || this.modelValue) && ! component;\n },\n\n disabled(component)\n {\n return (this.conditional && ! this.modelValue) || component;\n },\n\n toggleCondition()\n {\n this.$emit('update:modelValue', !this.modelValue);\n },\n\n focusInput()\n {\n let $input = Dom.find(this.$el).find('input');\n\n if ( !$input.empty() ) {\n return $input.get(0).focus();\n }\n\n $input = Dom.find(this.$refs.input).childs();\n\n if ( !$input.empty() ) {\n return $input.get(0).click();\n }\n\n console.log('I dont belong here :o');\n },\n\n gotoInput()\n {\n let errors = this.NForm.errors;\n\n if ( Any.isEmpty(errors) ) {\n return;\n }\n\n if ( !this.NTabs || !this.NTabsItem ) {\n return;\n }\n\n let keys = Any.keys(errors);\n\n if ( Arr.first(keys) !== this.prop ) {\n return;\n }\n\n this.NTabs.changeTab(this.NTabsItem.name);\n }\n\n },\n\n data()\n {\n return {\n uid: UUID()\n };\n },\n\n beforeMount()\n {\n if ( this.NForm ) {\n this.NForm.addItem(this);\n }\n },\n\n mounted()\n {\n if ( this.NForm ) {\n this.NForm.$watch('errors', this.gotoInput, { deep: true });\n }\n },\n\n beforeUnmount()\n {\n if ( this.NForm ) {\n this.NForm.removeItem(this);\n }\n },\n\n renderTooltip()\n {\n if ( !this.tooltip && !this.$slots.tooltip ) {\n return null;\n }\n\n let props = {\n size: 'sm',\n position: this.tooltipPosition,\n };\n\n return (\n <NPopover type=\"tooltip\" {...props}>\n {this.$slots.tooltip && this.$slots.tooltip() || this.tooltip}\n </NPopover>\n );\n },\n\n renderCondition()\n {\n if ( ! this.conditional ) {\n return null;\n }\n\n return (\n <div class=\"n-form-item__condition\" onClick={this.toggleCondition}>\n <span>{ this.modelValue ? this.conditionOff : this.conditionOn }</span>\n </div>\n );\n },\n\n renderLabel()\n {\n if ( !this.label && !this.$slots.label ) {\n return null;\n }\n\n let labelHtml = (\n <div class=\"n-form-item__label\">\n <label onClick={this.focusInput}>\n {this.$slots.label && this.$slots.label() || this.label}\n </label>\n </div>\n );\n\n return [\n labelHtml, this.ctor('renderTooltip')()\n ]\n },\n\n renderError()\n {\n if ( !this.NForm || !Obj.has(this.NForm.errors, this.prop) ) {\n return null;\n }\n\n return (\n <div class=\"n-form-item__error\">\n {Obj.get(this.NForm.errors, this.prop)}\n </div>\n );\n },\n\n renderInput()\n {\n return (\n <div ref=\"input\" class=\"n-form-item__input\">\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n },\n\n render()\n {\n let size = this.size || Obj.get(this.NForm, 'size', 'md');\n\n\n let classList = [\n 'n-form-item',\n 'n-form-item--' + size,\n ];\n\n if ( this.disabled() ) {\n classList.push('is-disabled');\n }\n\n return <div class={classList}>\n {this.ctor('renderCondition')()}\n {this.ctor('renderLabel')()}\n {this.ctor('renderInput')()}\n {this.ctor('renderError')()}\n </div>;\n }\n}\n","import { Arr, Obj, Any, Dom, UUID, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormMenu',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n },\n\n props: {\n\n size: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n },\n\n mounted()\n {\n\n Dom.find(document).on('scroll', Any.debounce(() => {\n\n let loop = true;\n\n Arr.each(this.NForm.groups, (item) => {\n loop = loop && ! this.bindInviewEvent(item);\n })\n }));\n },\n\n methods: {\n\n bindInviewEvent(item)\n {\n let [menu, group] = [\n `[data-menu-key=\"${item.key}\"]`,\n `[data-group-key=\"${item.key}\"]`\n ];\n\n let inview = Dom.find(group).inviewY(0.1);\n\n Dom.find('[data-menu-key]')\n .removeClass('is-visible');\n\n if ( inview ) {\n Dom.find(menu).addClass('is-visible');\n }\n\n return inview;\n }\n\n },\n\n renderMenu(item)\n {\n return (\n <div data-menu-key={item.key}>\n <a href={'#' + item.key}>{item.label}</a>\n </div>\n );\n },\n\n renderMenus()\n {\n return Arr.each(this.NForm.groups, (item) => {\n return this.ctor('renderMenu')(item);\n })\n },\n\n render()\n {\n let classList = [\n 'n-form-menu'\n ];\n\n return <div class={classList}>\n {this.ctor('renderMenus')()}\n </div>;\n }\n}\n","import { Arr, Obj, Any, Dom, UUID, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFrame',\n\n provide()\n {\n return { NFrame: this };\n },\n\n props: {\n\n resize: {\n default() {\n return false;\n },\n type: [Boolean]\n },\n\n scrollbar: {\n default() {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-frame'\n ];\n\n return (\n <div class={classList}>\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n }\n}\n","import { Arr, Obj, Any, Dom, UUID, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFrameItem',\n\n inject: {\n\n NFrame: {\n default: undefined\n },\n\n },\n\n props: {\n\n width: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n resize: {\n default() {\n return null;\n },\n type: [Boolean]\n },\n\n scrollbar: {\n default() {\n return null;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n itemResize() {\n return Any.isNull(this.resize) ? this.NFrame.resize : this.resize;\n },\n\n itemScrollbar() {\n return Any.isNull(this.scrollbar) ? this.NFrame.scrollbar : this.scrollbar;\n }\n\n },\n\n renderContent()\n {\n if ( ! this.itemScrollbar ) {\n return this.$slots.default && this.$slots.default();\n }\n\n return (\n <NScrollbar>{this.$slots.default && this.$slots.default()}</NScrollbar>\n );\n },\n\n renderDiv(classList)\n {\n let style = {\n //\n };\n\n if ( this.width ) {\n style.width = this.width + 'px';\n }\n\n return (\n <div class={classList} style={style}>\n {this.ctor('renderContent')()}\n </div>\n );\n },\n\n renderResizer(classList, style)\n {\n let props = {\n width: this.width\n };\n\n return (\n <NResizer class={classList} {...props}>\n {this.ctor('renderContent')()}\n </NResizer>\n );\n },\n\n render()\n {\n let classList = [\n 'n-frame-item'\n ];\n\n if ( this.itemResize ) {\n classList.push('is-resize');\n }\n\n if ( this.itemScrollbar ) {\n classList.push('is-scrollbar');\n }\n\n if ( this.itemResize ) {\n return this.ctor('renderResizer')(classList);\n }\n\n return this.ctor('renderDiv')(classList);\n }\n}\n","import { Arr, Dom, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTabs',\n\n provide()\n {\n return {\n NTabs: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n float: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n data()\n {\n return {\n init: false,\n elements: [], \n width: 0, \n offset: 0, \n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTab(tab)\n {\n Arr.add(this.elements, tab, \n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTab(tab)\n {\n Arr.remove(this.elements, \n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n getTab(updateEvent = true)\n {\n let currentTab = Arr.find(this.elements, {\n name: this.modelValue\n });\n\n let sorted = Arr.sort(this.elements, 'sort');\n\n if ( ! currentTab ) {\n currentTab = Arr.first(sorted);\n }\n\n let repeatNext = () => this.getTab(updateEvent);\n\n if ( ! currentTab ) {\n return Any.delay(repeatNext, 250);\n }\n\n if ( currentTab.name === this.tempValue || ! updateEvent ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = currentTab.name);\n },\n\n changeTab(value)\n {\n if ( this.tempValue === value ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = value);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n this.getTab(false);\n },\n\n updated()\n {\n let width = Dom.find(this.$el).find('.n-active')\n .width();\n\n this.width = width < 0 ? 0 : width;\n\n let offset = Dom.find(this.$el).find('.n-active')\n .offset('left', this.$el);\n\n this.offset = offset < 0 ? 0 : offset;\n },\n\n renderHeaderIndicator()\n {\n let transform = `scaleX(${this.width / 100}) ` + \n `translateX(${this.offset / (this.width / 100)}px)`;\n\n return (\n <div class=\"n-tabs__indicator\" style={{ transform }}>\n { /* Indicator bar */ }\n </div>\n );\n },\n\n renderHeader()\n {\n if ( this.elements.length <= 1 ) {\n return null;\n }\n\n // FIXME: As soon vue doesnt bug\n let sorted = Arr.sort(this.elements, 'sort');\n \n let tabs = Arr.each(Arr.make(sorted.length), (tab, index) => {\n return sorted[index].ctor('renderHeader')();\n });\n\n return (\n <div class=\"n-tabs__header\">\n {[tabs, this.ctor('renderHeaderIndicator')()]}\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-tabs__body\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-tabs', \n 'n-tabs--' + this.size, \n 'n-tabs--' + this.type\n ];\n\n if ( this.float ) {\n classList.push('n-float');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderHeader')() }\n { this.ctor('renderBody')() }\n </div>\n );\n }\n}\n","import { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NTabsItem',\n\n inject: {\n\n NTabs: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NTabsItem: this\n };\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n name: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n preload: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n keep: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n\n },\n\n methods: {\n\n changeTab()\n {\n this.NTabs.changeTab(this.name);\n }\n\n },\n\n data()\n {\n return {\n _key: null, init: false\n }\n },\n\n beforeMount()\n {\n this.NTabs.addTab(this);\n },\n\n beforeUnmount()\n {\n this.NTabs.removeTab(this);\n },\n\n renderHeaderIcon()\n {\n if ( ! this.$slots.icon && ! this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-tabs__tab-icon\">\n { this.$slots.icon && this.$slots.icon() || <i class={this.icon}></i> }\n </div>\n );\n },\n\n renderHeaderLabel()\n {\n return (\n <div class=\"n-tabs__tab-label\">\n { this.$slots.label && this.$slots.label () || <span>{this.label}</span> }\n </div>\n );\n },\n\n renderHeader()\n {\n let classList = [\n 'n-tabs__tab'\n ];\n\n if ( this.NTabs.tempValue === this.name ) {\n classList.push('n-active');\n }\n\n let props = {\n onClick: () => this.changeTab(this.name)\n };\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHeaderIcon')() }\n { this.ctor('renderHeaderLabel')() }\n </div>\n );\n },\n\n render()\n {\n let renderBody = this.NTabs.tempValue === this.name;\n\n if ( this.NTabs.tempValue !== this.name && this.keep ) {\n renderBody = this.init;\n }\n\n if ( this.NTabs.tempValue !== this.name && this.preload ) {\n renderBody = true;\n }\n\n if ( ! renderBody ) {\n return null;\n }\n\n this.init = true;\n\n let classList = [\n 'n-tabs-item'\n ];\n\n let style = {};\n\n if ( this.NTabs.tempValue !== this.name ) {\n style.display = 'none';\n }\n\n if ( this.$slots.raw ) {\n return this.$slots.raw({ style });\n }\n\n let element = 'div';\n\n if ( ! this.relative && ! this.NTabs.relative ) {\n element = resolveComponent('NScrollbar');\n }\n\n return h(element, { class: classList, style }, this.$slots);\n }\n}\n","import { Arr, Dom, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTags',\n\n provide()\n {\n return {\n NTags: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n tags: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n init: false, elements: [], tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTag(tab)\n {\n Arr.add(this.elements, tab,\n { label: tab.label });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTag(tab)\n {\n Arr.remove(this.elements,\n { label: tab.label });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n },\n\n render()\n {\n let classList = [\n 'n-tags',\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { Arr, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTagsItem',\n\n inject: {\n\n NTags: {\n default: undefined\n }\n\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return -1;\n },\n type: [String, Number]\n },\n\n color: {\n default()\n {\n return 0;\n },\n type: [String, Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n },\n\n beforeMount()\n {\n if ( this.NTags ) {\n this.NTags.addTag(this);\n }\n },\n\n beforeUnmount()\n {\n if ( this.NTags ) {\n this.NTags.removeTag(this);\n }\n },\n\n renderIcon()\n {\n if ( Any.isEmpty(this.icon) ) {\n return null;\n }\n\n return (\n <i class={this.icon}></i>\n );\n },\n\n renderLabel()\n {\n return (\n <span>{this.$slots.default ? this.$slots.default() : this.label}</span>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NTags ) {\n size = this.NTags.size;\n }\n\n let classList = [\n 'n-tags-item',\n 'n-tags-item--' + size,\n ,\n ];\n\n if ( this.type === -1 ) {\n classList.push('n-tags-item--color-' + this.color);\n }\n\n if ( this.type !== -1 ) {\n classList.push('n-tags-item--color-' + this.type);\n }\n\n return (\n <div class={classList}>\n {[this.ctor('renderIcon')(), this.ctor('renderLabel')()]}\n </div>\n );\n }\n\n}\n","import { Arr, Dom, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCollapse',\n\n provide()\n {\n return {\n NCollapse: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n init: false, elements: [], tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTab(tab)\n {\n Arr.add(this.elements, tab,\n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTab(tab)\n {\n Arr.remove(this.elements,\n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n showTab(value)\n {\n if ( Arr.has(this.tempValue, value) ) {\n return;\n }\n\n Arr.add(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n hideTab(value)\n {\n if ( ! Arr.has(this.tempValue, value) ) {\n return;\n }\n\n Arr.remove(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n toggleTab(value)\n {\n Arr.toggle(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n },\n\n render()\n {\n let classList = [\n 'n-collapse',\n 'n-collapse--' + this.size,\n 'n-collapse--' + this.type\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { Arr, Any, Dom } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NCollapseItem',\n\n inject: {\n\n NCollapse: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NCollapseItem: this\n };\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n name: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n preload: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n keep: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n methods: {\n\n showTab()\n {\n this.NCollapse.showTab(this.name);\n },\n\n hideTab()\n {\n this.NCollapse.hideTab(this.name);\n },\n\n toggleTab()\n {\n this.NCollapse.toggleTab(this.name);\n }\n\n },\n\n data()\n {\n return {\n _key: null, init: false, dragger: 0\n }\n },\n\n beforeMount()\n {\n this.NCollapse.addTab(this);\n },\n\n beforeUnmount()\n {\n this.NCollapse.removeTab(this);\n },\n\n renderHeaderIcon()\n {\n if ( !this.$slots.icon && !this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-collapse__header-icon\">\n {this.$slots.icon && this.$slots.icon() || <i class={this.icon}></i>}\n </div>\n );\n },\n\n renderHeaderLabel()\n {\n return (\n <div class=\"n-collapse__header-label\">\n {this.$slots.label && this.$slots.label() || <span>{this.label}</span>}\n </div>\n );\n },\n\n renderHeaderAngle()\n {\n return (\n <div class=\"n-collapse__header-angle\">\n {this.$slots.angle && this.$slots.angle() || <i class={nano.Icons.angleRight}></i>}\n </div>\n );\n },\n\n renderHeader()\n {\n if ( !this.label && !this.$slots.label ) {\n return null;\n }\n\n let classList = [\n 'n-collapse__header'\n ];\n\n if ( Arr.has(this.NCollapse.tempValue, this.name) ) {\n classList.push('n-active');\n }\n\n let props = {\n onClick: () => this.toggleTab(this.name)\n };\n\n props['onDragenter'] = (event) => {\n\n this.dragger ++;\n\n if ( this.dragger !== 1 ) {\n return;\n }\n\n this.showDelay = setTimeout(() => {\n this.showTab(this.name);\n }, 350);\n };\n\n props['onDragleave'] = (event) => {\n\n this.dragger --;\n\n if ( this.dragger !== 0 ) {\n return;\n }\n\n clearTimeout(this.showDelay);\n };\n\n props.style = {\n order: this.sort + 1,\n };\n\n return (\n <div ref=\"header\" class={classList} {...props}>\n {this.ctor('renderHeaderIcon')()}\n {this.ctor('renderHeaderLabel')()}\n {this.ctor('renderHeaderAngle')()}\n </div>\n );\n },\n\n renderBody()\n {\n let classList = [\n 'n-collapse__body'\n ];\n\n let tempValue = Arr.clone(this.NCollapse.tempValue);\n\n if ( !this.label && !this.$slots.label ) {\n tempValue.push(this.name);\n }\n\n let renderBody = Arr.has(tempValue, this.name);\n\n if ( !Arr.has(tempValue, this.name) && this.keep ) {\n renderBody = this.init;\n }\n\n if ( !Arr.has(tempValue, this.name) && this.preload ) {\n renderBody = true;\n }\n\n if ( !renderBody && this.label ) {\n return null;\n }\n\n this.init = true;\n\n let style = {\n order: this.sort + 2\n };\n\n if ( !Arr.has(tempValue, this.name) ) {\n style.display = 'none';\n }\n\n let element = 'div';\n\n if ( !this.relative && !this.NCollapse.relative ) {\n element = resolveComponent('NScrollbar');\n }\n\n return h(element, { class: classList, style, }, this.$slots);\n },\n\n render()\n {\n return [\n this.ctor('renderHeader')(), this.ctor('renderBody')()\n ];\n }\n}\n","import { Any, Arr, Obj, Dom, Event, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTable',\n\n provide()\n {\n return {\n NTable: this\n };\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n visible: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n expanded: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n filter: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n sortProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n sortDir: {\n default()\n {\n return 'desc';\n },\n type: [String]\n },\n\n closeFilterOnEnter: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n safezone: {\n default()\n {\n return (height) => height * 0.51;\n }\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 38;\n },\n type: [Number]\n },\n\n itemOffset: {\n default()\n {\n return 30;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderSelect: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderExpand: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return () => true;\n }\n },\n\n removeNode: {\n default()\n {\n return () => true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n },\n\n },\n\n computed: {\n\n checked()\n {\n return !!this.tempSelected.length &&\n this.tempSelected.length === this.items.length;\n },\n\n intermediate()\n {\n return !!this.tempSelected.length &&\n this.tempSelected.length !== this.items.length\n }\n\n },\n\n data()\n {\n return {\n uid: UUID(),\n elements: [],\n tempVisible: this.visible,\n tempVisibleProps: [],\n tempSelected: this.selected,\n tempSortProp: this.sortProp,\n tempSortDir: this.sortDir,\n tempFilter: this.filter,\n tempFilterProps: [],\n }\n },\n\n mounted()\n {\n this.$watch('tempVisible',\n this.makeVisibleProps, { deep: true });\n\n if ( !this.tempVisible.length ) {\n Arr.each(this.elements, this.detectVisible);\n }\n },\n\n watch: {\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n },\n\n methods: {\n\n addColumn(column)\n {\n Arr.add(this.elements, column,\n { uid: column.uid });\n },\n\n removeColumn(column)\n {\n Arr.remove(this.elements,\n { uid: column.uid });\n },\n\n getColumnIndex(column)\n {\n if ( !Any.isString(column) ) {\n column = column['prop'];\n }\n\n return Arr.findIndex(this.tempVisibleProps,\n column);\n },\n\n getColumnVisiblity(column)\n {\n if ( !Any.isString(column) ) {\n column = column.prop;\n }\n\n return Arr.has(this.tempVisible, column);\n },\n\n getColumnSorted(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n if ( this.tempSortProp !== prop ) {\n return null;\n }\n\n return this.tempSortDir;\n },\n\n getColumnFilter(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n return Arr.find(this.tempFilter, {\n property: prop\n });\n },\n\n getColumnFiltered(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n return Arr.has(this.tempFilterProps, prop);\n },\n\n detectVisible(column)\n {\n if ( column.detectVisibity() ) {\n Arr.add(this.tempVisible, column.prop);\n }\n },\n\n makeVisibleProps()\n {\n this.tempVisibleProps = Arr.intersect(\n Arr.extract(this.elements, 'prop'), this.tempVisible);\n\n this.$nextTick(this.$refs.scrollbar.onResize);\n },\n\n sortByColumn(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n\n let dir = this.tempSortDir;\n\n if ( prop === this.tempSortProp && this.tempSortDir === 'desc' ) {\n dir = 'asc';\n }\n\n if ( prop === this.tempSortProp && this.tempSortDir === 'asc' ) {\n dir = 'desc';\n }\n\n if ( this.tempSortDir !== dir ) {\n this.$emit('update:sortDir', this.tempSortDir = dir);\n }\n\n if ( this.tempSortProp !== prop ) {\n this.$emit('update:sortProp', this.tempSortProp = prop);\n }\n\n this.$emit('sort', this.tempSortProp, this.tempSortDir);\n },\n\n replaceFilter(filter, search)\n {\n Arr.replace(this.tempFilter, filter, search);\n\n let filters = Arr.filter(this.tempFilter, (filter) => {\n return Arr.has(this.tempFilterProps, filter.property);\n });\n\n this.$emit('update:filter', filters);\n\n this.$emit('filter', filters, this.tempFilterProps);\n },\n\n resetFilter()\n {\n this.tempFilter = this.tempFilterProps = [];\n\n Event.fire('NTable:reset', this.uid);\n\n this.$emit('update:filter', this.tempFilter);\n\n this.$emit('filter', this.tempFilter, this.tempFilterProps);\n },\n\n selectAll()\n {\n this.$refs.draggable.selectAll();\n },\n\n highlightNode(value, key = null)\n {\n this.$refs.draggable.highlightNode(value, key);\n },\n\n syncCurrent()\n {\n return this.$refs.draggable.syncCurrent();\n },\n\n refreshCurrent()\n {\n this.$refs.draggable.refreshCurrent();\n },\n\n },\n\n renderHandle()\n {\n if ( !this.renderHandle ) {\n return null;\n }\n\n return (\n <div class=\"n-draglist-item__handle\">\n { /* Only used in row */}\n </div>\n )\n },\n\n renderExpand()\n {\n if ( !this.renderExpand ) {\n return null;\n }\n\n return (\n <div class=\"n-draglist-item__expand\">\n { /* Only used in row */}\n </div>\n )\n },\n\n renderSelect()\n {\n if ( !this.renderSelect ) {\n return null;\n }\n\n let props = {\n modelValue: this.checked,\n intermediate: this.intermediate,\n disabled: !this.items.length,\n onClick: this.selectAll\n };\n\n return (\n <div class=\"n-draglist-item__select\">\n <NCheckbox {...props}></NCheckbox>\n </div>\n );\n },\n\n renderBody(props)\n {\n let columns = Obj.each(this.elements, (column) => {\n return column.disabled ? null : column.ctor('renderBody')(props);\n });\n\n return Obj.values(columns);\n },\n\n renderContext()\n {\n let columns = Obj.each(this.elements, (column) => {\n\n if ( column.disabled ) {\n return null;\n }\n\n return (\n <NCheckbox class=\"n-table__checkbox\" value={column.prop}>\n {column.label}\n </NCheckbox>\n );\n });\n\n return (\n <NPopover trigger=\"context\" width={220}>\n <NCheckboxGroup vModel={this.tempVisible} align=\"vertical\">\n {Obj.values(columns)}\n </NCheckboxGroup>\n </NPopover>\n );\n },\n\n renderHead()\n {\n let defaultRender = [\n this.ctor('renderHandle')(),\n this.ctor('renderExpand')(),\n this.ctor('renderSelect')(),\n this.ctor('renderContext')()\n ];\n\n let columns = Obj.each(this.elements, (column) => {\n return column.disabled ? null : column.ctor('renderHead')();\n });\n\n return (\n <div class=\"n-table__header\">\n {defaultRender} {Obj.values(columns)}\n </div>\n );\n },\n\n render()\n {\n let except = [\n 'visible', 'filter', 'sortProp',\n 'sortDir', 'closeFilterOnEnter'\n ];\n\n let props = Obj.except(this.$props, except, {\n items: this.items,\n selected: this.tempSelected,\n overflowX: false,\n useKeys: this.useKeys,\n // renderNode: this.ctor('renderBody')\n });\n\n props['onRowClick'] = (...args) => {\n this.$emit('row-click', ...args);\n }\n\n props['onRowDblclick'] = (...args) => {\n this.$emit('row-dblclick', ...args);\n }\n\n props['onUpdate:items'] = (value) => {\n this.$emit('update:items', value);\n }\n\n props['onUpdate:current'] = (value) => {\n this.$emit('update:current', value);\n }\n\n props['onUpdate:expanded'] = (value) => {\n this.$emit('update:expanded', value);\n }\n\n props['onUpdate:selected'] = (value) => {\n this.$emit('update:selected', this.tempSelected = value);\n }\n\n let draggableHtml = (\n <div class=\"n-table__body\">\n <NDraglist ref=\"draggable\" {...props} offsetX={25}>\n {{ default: this.ctor('renderBody') }}\n </NDraglist>\n </div>\n );\n\n return (\n <div class=\"n-table\">\n <NScrollbar ref=\"scrollbar\" class=\"n-table__wrap\" fixture={true} overflowY={false}>\n <div class=\"n-table__inner\">\n {[this.ctor('renderHead')(), draggableHtml]}\n </div>\n </NScrollbar>\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n },\n\n}","import { Any, Arr, Obj, Str, Dom, UUID, Num, Locale } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NTableColumn',\n\n inject: {\n\n NTable: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n prop: {\n default()\n {\n return UUID();\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'string';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'left';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n filter: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n visible: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean, Function]\n },\n\n matrixDisabled: {\n default()\n {\n return false;\n },\n type: [Boolean, Function]\n },\n\n breakpoint: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n previewProp: {\n default()\n {\n return 'preview';\n },\n type: [String]\n },\n\n matrix: {\n default()\n {\n return - 1;\n },\n type: [Number, String]\n },\n\n matrixProp: {\n default()\n {\n return 'matrix';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Object, Array, Function]\n },\n\n optionsValue: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n sortProp: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n filterProp: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n fluid: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n fixedWidth: {\n default()\n {\n return 0;\n }\n },\n\n width: {\n default()\n {\n return 0;\n }\n },\n\n minWidth: {\n default()\n {\n return 120;\n }\n },\n\n maxWidth: {\n default()\n {\n return 0;\n }\n },\n\n emptyText: {\n default()\n {\n return '-';\n },\n type: [String]\n },\n\n undefinedText: {\n default()\n {\n return Locale.trans('-');\n },\n type: [String]\n },\n\n trueText: {\n default()\n {\n return Locale.trans('Yes');\n },\n type: [String]\n },\n\n falseText: {\n default()\n {\n return Locale.trans('No');\n },\n type: [String]\n },\n\n datetimeFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm');\n },\n type: [String]\n },\n\n allowUncheck: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n matrixValues()\n {\n if ( this.type !== 'matrix' ) {\n return;\n }\n\n let values = {};\n\n if ( Any.isEmpty(this.modelValue) ) {\n return values;\n }\n\n Arr.each(this.modelValue, (item) => {\n Obj.set(values, item[this.NTable.uniqueProp],\n Num.matrix(item[this.matrixProp]));\n });\n\n return values;\n }\n\n },\n\n provide()\n {\n return {\n NTableColumn: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(), tempWidth: 0\n };\n },\n\n methods: {\n\n detectVisibity()\n {\n let visible = this.visible;\n\n if ( this.breakpoint ) {\n visible &= Dom.find(this.NTable.$el).width() > this.breakpoint;\n }\n\n return visible;\n },\n\n sortByColumn(event)\n {\n if ( !Arr.has([0, 1], event.which) ) {\n return;\n }\n\n if ( !Dom.find(event.target).closest('.n-table-column__filter') ) {\n this.NTable.sortByColumn(this);\n }\n },\n\n },\n\n beforeMount()\n {\n this.changedStates = {};\n this.NTable.addColumn(this);\n },\n\n beforeUnmount()\n {\n this.NTable.removeColumn(this);\n },\n\n renderHead()\n {\n if ( !this.NTable.getColumnVisiblity(this) ) {\n return null;\n }\n\n let classList = [\n 'n-table-column',\n 'n-table-column--' + this.align,\n 'n-table-column--' + this.type,\n ];\n\n let sortDirection = this.NTable.getColumnSorted(this);\n\n if ( sortDirection ) {\n classList.push('n-sorted', 'n-' + sortDirection);\n }\n\n if ( this.fluid || !this.width ) {\n classList.push('n-fluid');\n }\n\n if ( this.fixedWidth ) {\n classList.push('n-fixed');\n }\n\n if ( this.NTable.getColumnFiltered(this) ) {\n classList.push('n-filtered');\n }\n\n let style = {};\n\n if ( this.fixedWidth ) {\n style.width = this.fixedWidth + 'px';\n }\n\n if ( this.width ) {\n style.flexBasis = this.width + 'px';\n }\n\n let props = {\n modelValue: this.tempWidth,\n width: this.width,\n minWidth: this.minWidth,\n maxWidth: this.maxWidth,\n disabled: !!this.fixedWidth,\n group: [this.NTable.uid],\n };\n\n props['onUpdate:modelValue'] = (value) => {\n this.tempWidth = value;\n }\n\n if ( this.sort ) {\n props.onMousedown = this.sortByColumn;\n }\n\n return (\n <NResizer ref=\"column\" class={classList} style={style} {...props}>\n {this.ctor('renderHeadSort')()}\n {this.ctor('renderHeadLabel')()}\n {this.ctor('renderHeadFilter')()}\n </NResizer>\n );\n },\n\n renderHeadLabel()\n {\n let classList = [\n 'n-table-column__label'\n ];\n\n let labelHtml = (\n <div class={classList}>\n <span>{this.label}</span>\n </div>\n );\n\n if ( Any.isEmpty(this.tooltip) ) {\n return labelHtml;\n }\n\n let tooltipHtml = (\n <NPopover type=\"tooltip\">{this.tooltip}</NPopover>\n );\n\n return [labelHtml, tooltipHtml];\n },\n\n renderHeadSort()\n {\n if ( !this.sort ) {\n return null;\n }\n\n return (\n <div class=\"n-table-column__sort\">\n <i>{ /* Sorting angles */}</i>\n </div>\n )\n },\n\n renderHeadFilter()\n {\n if ( !this.filter ) {\n return null;\n }\n\n let angleHtml = (\n <div class=\"n-table-column__filter\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n\n let component = resolveComponent('NTableFilter' +\n Str.ucfirst(this.type));\n\n return [\n angleHtml, h(component, { column: this })\n ];\n },\n\n renderBody(props)\n {\n if ( !this.NTable.getColumnVisiblity(this) ) {\n return null;\n }\n\n let uid = props.value[this.NTable.uniqueProp]\n + this.uid;\n\n let classList = [\n 'n-table-cell',\n 'n-table-cell--' + this.align,\n 'n-table-cell--' + this.type,\n ];\n\n if ( this.fluid ) {\n classList.push('n-fluid');\n }\n\n if ( this.tempWidth ) {\n classList.push('n-fixed');\n }\n\n let index = this.NTable.getColumnIndex(this);\n\n let offset = 0;\n\n if ( index === 0 ) {\n offset = props.value.depth * this.NTable.itemOffset;\n }\n\n let style = {\n width: (this.tempWidth - offset) + 'px'\n };\n\n if ( this.minWidth ) {\n style.minWidth = (this.minWidth - offset) + 'px';\n }\n\n if ( this.maxWidth ) {\n style.maxWidth = (this.maxWidth - offset) + 'px';\n }\n\n let passed = Obj.except(this.$attrs, [], {\n ...props, uid: uid, class: classList, style: style, column: this\n });\n\n let component = resolveComponent('NTableCell' +\n Str.ucfirst(this.type));\n\n return h(component, passed);\n },\n\n render()\n {\n return null;\n }\n\n}","import { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NTable: {\n default: undefined\n },\n\n NDraggableItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n uid: {\n required: true\n },\n\n column: {\n required: true\n },\n\n item: {\n required: true\n },\n\n value: {\n required: true\n },\n\n copy: {\n required: true\n },\n\n remove: {\n required: true\n },\n\n\n },\n\n computed: {\n\n input()\n {\n return Obj.get(this.item, this.column.prop);\n }\n\n },\n\n data()\n {\n return { init: false };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => this.init = true, 20);\n },\n\n beforeUnmount()\n {\n clearTimeout(this.timer);\n },\n\n methods: {\n\n setFirstState(state)\n {\n Obj.set(this.column.changedStates,\n this.uid, this.firstState = state);\n }\n\n },\n\n render()\n {\n if ( this.column.$slots.default ) {\n return this.column.$slots.default(this);\n }\n \n return (\n <div>{ this.input }</div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellString',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertString(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellBoolean',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n return (\n <div>\n <span>{ Any.convertBoolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellDatetime',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n return (\n <div>\n <span>{ Any.convertDatetime(this.input, this.column.datetimeFormat, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellOption',\n\n extends: TableCell,\n\n renderOption(value)\n {\n let options = this.column.options;\n\n if ( Any.isFunction(options) ) {\n options = this.column.options(this);\n }\n\n options = Arr.each(options, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let prop = this.column.optionsValue;\n\n let option = Arr.find(options, (item) => {\n return Obj.get(item, prop) == value;\n });\n\n if ( ! option ) {\n return [this.column.emptyText];\n }\n\n return Obj.get(option, this.column.optionsLabel,\n this.column.undefinedText);\n },\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n let input = ! Any.isObject(this.input) ?\n [this.input] : this.input;\n\n return (\n <div>\n <span>{ Arr.each(input, this.ctor('renderOption')) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellImage',\n\n extends: TableCell,\n\n computed: {\n\n preview()\n {\n return Obj.get(this.item, this.column.previewProp);\n }\n\n },\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n let classList = [\n 'n-table-cell',\n 'n-table-cell--' + this.column.type\n ];\n\n let props = {\n fit: 'contain',\n }\n\n return (\n <div class={classList}>\n <NPreview file={this.preview || this.input} thumb={this.input} {...props} />\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Num, Any, Obj, Arr, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellMatrix',\n\n extends: TableCell,\n\n beforeMount()\n {\n this.firstState = Obj.get(this.column.changedStates,\n this.uid);\n },\n\n methods: {\n\n toggleMatrix()\n {\n if ( this.column.matrix === -1 ) {\n return this.toggleSelect();\n }\n\n let itemList = this.column.modelValue;\n\n if ( itemList === null ) {\n itemList = [];\n }\n\n let item = Arr.find(itemList, {\n [this.NTable.uniqueProp]: this.value[this.NTable.uniqueProp]\n });\n\n if ( ! item ) {\n item = Obj.assign({}, this.item, { [this.column.matrixProp]: 0 });\n }\n\n let currentMatrix = Num.int(item[this.column.matrixProp]);\n\n let matrix = Arr.toggle(Num.matrix(currentMatrix),\n Num.int(this.column.matrix));\n\n item[this.column.matrixProp] = Num.combine(matrix);\n\n Arr.replace(itemList, item, {\n [this.NTable.uniqueProp]: item[this.NTable.uniqueProp]\n });\n\n this.column.$emit('update:modelValue', itemList);\n },\n\n toggleSelect()\n {\n let itemList = this.column.modelValue;\n\n if ( itemList === null ) {\n itemList = [];\n }\n\n let fallback = Obj.assign({}, this.item, {\n [this.column.matrixProp]: this.column.matrix\n });\n\n let finder = {\n [this.NTable.uniqueProp]: this.value[this.NTable.uniqueProp],\n };\n\n let item = Arr.find(itemList, finder);\n\n if ( ! item ) {\n Arr.add(itemList, fallback);\n } else {\n Arr.remove(itemList, finder);\n }\n\n this.column.$emit('update:modelValue', itemList);\n },\n\n isChecked()\n {\n let matrix = Obj.get(this.column.matrixValues,\n this.item[this.NTable.uniqueProp]);\n\n if ( ! matrix ) {\n return false;\n }\n\n let value = Num.int(this.column.matrix);\n\n if ( value === -1 ) {\n return true;\n }\n\n return Arr.has(matrix, value);\n },\n\n isDisabled()\n {\n if ( ! Any.isFunction(this.column.matrixDisabled) ) {\n return this.column.matrixDisabled;\n }\n\n return this.column.matrixDisabled(this);\n }\n\n },\n\n render()\n {\n let checked = this.isChecked();\n\n if ( this.firstState === null ) {\n this.setFirstState(checked);\n }\n\n if ( ! this.init ) {\n return null;\n }\n\n let classList = [\n 'n-table-cell--checkbox'\n ];\n\n if ( this.firstState !== checked ) {\n classList.push('n-changed');\n }\n\n if ( checked ) {\n classList.push('n-checked');\n }\n\n let isDisabled = this.isDisabled();\n\n if ( this.column.allowUncheck ) {\n isDisabled = isDisabled && ! checked;\n }\n\n if ( isDisabled ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( ! isDisabled ) {\n props.onClick = this.toggleMatrix;\n }\n\n return (\n <div class={classList} {...props}>\n <i class={nano.Icons.checked}></i>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Num, Any, Obj, Arr } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellSelect',\n\n extends: TableCell,\n\n beforeMount()\n {\n this.firstState = Obj.get(this.column.changedStates,\n this.uid);\n },\n\n methods: {\n\n toggleSelect()\n {\n let item = null;\n\n if ( ! this.isChecked() ) {\n item = Obj.assign({}, this.item);\n }\n\n this.column.$emit('update:modelValue', item);\n },\n\n isChecked()\n {\n if ( Any.isEmpty(this.column.modelValue) ) {\n return false;\n }\n\n return Obj.get(this.column.modelValue, this.NTable.uniqueProp) ===\n this.value[this.NTable.uniqueProp];\n },\n\n isDisabled()\n {\n if ( ! Any.isEmpty(this.column.modelValue) ) {\n return true;\n }\n\n if ( ! Any.isFunction(this.column.disabled) ) {\n return this.column.disabled;\n }\n\n return this.column.disabled(this);\n },\n\n },\n\n render()\n {\n let checked = this.isChecked();\n\n if ( this.firstState === null ) {\n this.setFirstState(checked);\n }\n\n if ( ! this.init ) {\n return null;\n }\n\n let classList = [\n 'n-table-cell--checkbox'\n ];\n\n if ( this.firstState !== checked ) {\n classList.push('n-changed');\n }\n\n if ( checked ) {\n classList.push('n-checked');\n }\n\n let isDisabled = this.isDisabled();\n\n if ( this.column.allowUncheck ) {\n isDisabled = isDisabled && ! checked;\n }\n\n if ( isDisabled ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( ! isDisabled ) {\n props.onClick = this.toggleSelect;\n }\n\n return (\n <div class={classList} {...props}>\n <i class={nano.Icons.checked}></i>\n </div>\n );\n }\n\n}\n","import {Arr, Obj, Any, Dom, Event, UUID} from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NTable: {\n default: undefined\n }\n\n },\n\n props: {\n\n column: {\n required: true\n }\n\n },\n\n computed: {\n\n tempFilter()\n {\n return this.NTable.getColumnFilter(this.column);\n },\n\n canReset()\n {\n return ! this.NTable.getColumnFiltered(this.column);\n },\n\n canApply()\n {\n return ! Any.isEmpty(this.filter.value);\n }\n\n },\n\n data()\n {\n return {\n filter: this.getFilterClone(), visible: false\n };\n },\n\n beforeMount()\n {\n this.mountFilter();\n },\n\n mounted()\n {\n Event.bind('NTable:reset', \n this.resetFilter, this._.uid);\n\n Dom.find(document).on('keydown', \n this.onKeydown, this._.uid);\n },\n\n beforeUnmount()\n {\n Event.unbind('NTable:reset', \n this._.uid);\n\n Dom.find(document).off('keydown', \n null, this._.uid);\n },\n\n methods: {\n\n getFilterClone()\n {\n let tempFilter = this.NTable.getColumnFilter(this.column);\n\n if ( Any.isEmpty(tempFilter) ) {\n return null;\n }\n\n return Obj.clone(tempFilter);\n },\n\n getFilterProp()\n {\n return this.column.filterProp || \n this.column.prop;\n },\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null,\n property: this.getFilterProp(), \n };\n },\n\n mountFilter()\n {\n if ( this.filter ) {\n return this.applyFilter();\n }\n\n this.filter = this.getDefaultFilter();\n\n if ( ! this.canApply ) {\n return;\n }\n\n Arr.add(this.NTable.tempFilter, this.filter, {\n property: this.getFilterProp()\n });\n },\n\n resetFilter(uid)\n {\n if ( this.NTable.uid !== uid ) {\n return;\n }\n\n this.filter = this.getDefaultFilter();\n\n Arr.add(this.NTable.tempFilter, this.filter, {\n property: this.getFilterProp()\n });\n },\n\n onKeydown(event)\n {\n if ( ! this.visible ) {\n return;\n }\n\n if ( event.which === 13 && this.canApply ) {\n this.applyFilter();\n }\n\n if ( event.which === 13 && ! this.canApply ) {\n this.clearFilter();\n }\n\n let closeAnyway = event.which === 13 &&\n this.NTable.closeFilterOnEnter;\n\n if ( closeAnyway || event.which === 27 ) {\n this.$refs.popover.close();\n }\n },\n\n applyFilter()\n {\n let filter = Obj.clone(this.filter);\n\n Arr.add(this.NTable.tempFilterProps, \n this.getFilterProp());\n\n this.NTable.replaceFilter(filter, {\n property: this.getFilterProp()\n });\n },\n\n clearFilter()\n {\n let filter = this.getDefaultFilter();\n\n Arr.remove(this.NTable.tempFilterProps, \n this.getFilterProp());\n\n this.NTable.replaceFilter(filter, {\n property: this.getFilterProp()\n });\n\n this.filter = filter;\n }\n\n },\n\n renderForm()\n {\n return null;\n },\n\n renderApply()\n {\n let props = {\n type: 'primary',\n link: true,\n size: 'xs',\n disabled: ! this.canApply\n };\n\n return (\n <NButton {...props} onClick={this.applyFilter}>\n { this.trans('Apply') }\n </NButton>\n );\n },\n\n renderReset()\n {\n let props = {\n type: 'danger',\n link: true,\n size: 'xs',\n disabled: this.canReset,\n };\n\n return (\n <NButton {...props} onClick={this.clearFilter}>\n { this.trans('Reset') }\n </NButton>\n );\n },\n\n renderFooter()\n {\n return (\n <div class=\"n-table-filter__footer\">\n { this.ctor('renderReset')() }\n { this.ctor('renderApply')() }\n </div>\n )\n },\n\n render()\n {\n let props = {\n class: 'n-table-filter__popover',\n trigger: 'click',\n size: 'sm',\n width: 220,\n }\n\n return (\n <NPopover ref=\"popover\" vModel={this.visible} {...props}>\n {\n { default: this.ctor('renderForm'), footer: this.ctor('renderFooter') }\n }\n </NPopover>\n );\n }\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Dom, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterString',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'li',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n li: this.trans('Includes value'),\n nl: this.trans('Excludes value'),\n eq: this.trans('Equal value'),\n ne: this.trans('Except value'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NInput size=\"sm\" vModel={this.filter.value} />\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterBoolean',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'in',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n 1: this.trans(this.column.trueText),\n 0: this.trans(this.column.falseText),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.value} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\n\nexport default {\n\n name: 'NTableFilterDatetime',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'eq',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n eq: this.trans('Exact date'),\n lt: this.trans('Before date'),\n gt: this.trans('After date'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NDatepicker size=\"sm\" vModel={this.filter.value} format={this.column.datetimeFormat} />\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Arr, Obj, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterOption',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type,\n value: [],\n operator: 'in',\n property: this.getFilterProp(),\n };\n }\n\n },\n\n renderOption(value)\n {\n let props = {\n value: Obj.get(value, this.column.optionsValue)\n };\n\n return (\n <NCheckbox {...props}>{ Obj.get(value, this.column.optionsLabel) }</NCheckbox>\n );\n },\n\n renderForm()\n {\n let items = this.column.options;\n\n if ( Any.isFunction(items) ) {\n items = this.column.options(this);\n }\n\n items = Arr.each(items, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let options = {\n in: this.trans('Includes value'),\n ni: this.trans('Excludes value'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NCheckboxGroup size=\"sm\" align=\"vertical\" vModel={this.filter.value}>\n { Arr.each(items, this.ctor('renderOption')) }\n </NCheckboxGroup>\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import { Str, Num, Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPaginator',\n\n props: {\n\n page: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n limit: {\n default()\n {\n return 100;\n },\n type: [Number]\n },\n\n limitOptions: {\n default()\n {\n return [25, 50, 100, 500, 1000, 2500];\n },\n },\n\n total: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n maxPages: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n layout: {\n default()\n {\n return [\n 'limit', 'count', 'spacer', 'goto', 'pages'\n ]\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n pages()\n {\n return Num.ceil(this.total / this.tempLimit);\n },\n\n pageOptions()\n {\n return Arr.make(this.pages || 1);\n }\n\n },\n\n data()\n {\n return {\n tempPage: this.page, tempLimit: this.limit,\n };\n },\n\n\n\n methods: {\n\n forcePage(page)\n {\n if ( page !== this.tempPage ) {\n this.tempPage = page;\n }\n },\n\n updatePaginate()\n {\n let paginate = {\n page: this.tempPage, limit: this.tempLimit\n };\n\n this.$emit('paginate', paginate);\n },\n\n onPrevPage()\n {\n this.onPageInput(this.tempPage - 1);\n },\n\n onNextPage()\n {\n this.onPageInput(this.tempPage + 1);\n },\n\n onFirstPage()\n {\n this.onPageInput(1);\n },\n\n onLastPage()\n {\n this.onPageInput(this.pages);\n },\n\n onPageInput(value)\n {\n this.$emit('update:page', this.tempPage = value);\n\n this.updatePaginate();\n },\n\n onLimitInput(value)\n {\n if ( this.tempLimit !== value ) {\n this.$emit('update:page', this.tempPage = 1);\n }\n\n this.$emit('update:limit', this.tempLimit = value);\n\n this.updatePaginate();\n },\n\n },\n\n watch: {\n\n page(value)\n {\n if ( value !== this.tempPage ) {\n this.tempPage = value;\n }\n },\n\n limit(value)\n {\n if ( value !== this.tempLimit ) {\n this.tempLimit = value;\n }\n }\n\n },\n\n renderLimit()\n {\n let props = {\n modelValue: this.tempLimit,\n size: this.size,\n type: this.type,\n optionsValue: '$value.value',\n optionsLabel: '$value.label',\n };\n\n props.options = Arr.each(this.limitOptions, (limit) => {\n return {\n value: limit, label: this.choice(':count items', limit)\n };\n });\n\n props['onUpdate:modelValue'] = this.onLimitInput;\n\n return (\n <div class=\"n-paginator__limit\">\n <NSelect {...props} />\n </div>\n );\n },\n\n renderCount()\n {\n return (\n <div class=\"n-paginator__count\">\n { this.choice('No items|Total :count item|Total :count items', this.total) }\n </div>\n );\n },\n\n renderSpacer()\n {\n return (\n <div class=\"n-paginator__spacer\">\n { /* Nothing :( */ }\n </div>\n );\n },\n\n renderGoto()\n {\n if ( this.pageOptions.length > 500 ) {\n return null;\n }\n\n let props = {\n modelValue: this.tempPage,\n size: this.size,\n type: this.type,\n undefinedText: '?',\n optionsValue: '$value.value',\n optionsLabel: '$value.label',\n };\n\n props.options = Arr.reduce(this.pageOptions, (merge, index) => {\n return Arr.push(merge, {\n value: index, label: index\n });\n }, []);\n\n props['onUpdate:modelValue'] = this.onPageInput;\n\n return (\n <div class=\"n-paginator__goto\">\n <NSelect {...props} />\n </div>\n );\n },\n\n renderPrev()\n {\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleLeft,\n onClick: this.onPrevPage\n };\n\n if ( this.tempPage - 1 < 1 ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderNext()\n {\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleRight,\n onClick: this.onNextPage\n };\n\n if ( this.tempPage + 1 > this.pages ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderFirst()\n {\n if ( this.pages < this.maxPages ) {\n return null;\n }\n\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleDoubleLeft,\n onClick: this.onFirstPage\n };\n\n if ( this.tempPage - 1 < 1 ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderLast()\n {\n if ( this.pages < this.maxPages ) {\n return null;\n }\n\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleDoubleRight,\n onClick: this.onLastPage\n };\n\n if ( this.tempPage + 1 > this.pages ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderPage(index)\n {\n let page = this.tempPage;\n\n let pages = Math.abs(this.maxPages / 2);\n\n if ( page < pages ) {\n page = pages;\n }\n\n let global = Array(this.pages).length;\n\n if ( page > global - pages ) {\n page = global - pages;\n }\n\n let current = Num.int(index);\n\n if ( current < page - pages ) {\n return null;\n }\n\n if ( current > Math.max(1, page + pages) ) {\n return null;\n }\n\n let props = {\n type: this.type,\n size: this.size,\n };\n\n if ( current === this.tempPage ) {\n props.disabled = true;\n }\n\n props.onClick = () => {\n this.onPageInput(current);\n };\n\n return (\n <NButton {...props}>{ current }</NButton>\n );\n },\n\n renderPages()\n {\n let pages = Arr.each(this.pageOptions, (index) => {\n return this.ctor('renderPage')(index);\n });\n\n return (\n <div class=\"n-paginator__pages\">\n { this.ctor('renderFirst')() }\n { this.ctor('renderPrev')() }\n { ...pages }\n { this.ctor('renderNext')() }\n { this.ctor('renderLast')() }\n </div>\n );\n },\n\n renderSlot(view)\n {\n let renderFunction = this.ctor('render' + \n Str.ucfirst(view));\n\n if ( Any.isFunction(renderFunction) ) {\n return renderFunction();\n }\n\n return this.$slots[view] && this.$slots[view]();\n },\n\n render()\n {\n let className = [\n 'n-paginator',\n 'n-paginator--' + this.size,\n 'n-paginator--' + this.type\n ];\n\n return <div class={className}>\n {\n Arr.each(this.layout, (view) => {\n return this.ctor('renderSlot')(view);\n })\n }\n </div>;\n }\n}\n","import { Arr, Any, Obj, Event, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInfo',\n\n model: {\n prop: 'item'\n },\n\n props: {\n\n item: {\n default()\n {\n return null;\n }\n },\n\n syncEvent: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n uid: UUID(),\n elements: [],\n options: [],\n tempValue: this.item,\n };\n },\n\n watch: {\n\n item(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.bindSyncEvent();\n },\n\n beforeUnmount()\n {\n this.unbindSyncEvent();\n },\n\n updated()\n {\n Any.delay(() => {\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.adaptHeight();\n }\n }, 500);\n },\n\n methods: {\n\n bindSyncEvent()\n {\n if ( !this.syncEvent ) {\n return;\n }\n\n this.options = this.syncEvent;\n\n if ( Any.isFunction(this.options) ) {\n this.options = this.options(this);\n }\n\n let syncFunction = (value, uid = null) => {\n if ( uid === this.options[1] ) {\n this.setValue(value);\n }\n };\n\n Event.bind(this.options[0], syncFunction,\n this.uid);\n },\n\n unbindSyncEvent()\n {\n Event.unbind(this.options[0], this.uid);\n },\n\n setValue(value)\n {\n this.$emit('update:modelValue',\n this.tempValue = value);\n },\n\n addColumn(column)\n {\n Arr.add(this.elements,\n column, { uid: column.uid });\n },\n\n removeColumn(column)\n {\n Arr.remove(this.elements,\n { uid: column.uid });\n },\n\n },\n\n provide()\n {\n return {\n NInfo: this\n };\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={!this.showEmptyIcon} class=\"n-info__empty\">\n {this.$slots.empty && this.$slots.empty() || this.trans('No entry')}\n </NEmptyIcon>\n );\n },\n\n renderBody()\n {\n if ( Any.isEmpty(this.tempValue) ) {\n return this.ctor('renderEmpty')();\n }\n\n let elements = Obj.each(this.elements, (column) => {\n return (\n <div class=\"n-info__column\">\n {column.ctor('renderLabel')({ item: this.tempValue })}\n {column.ctor('renderBody')({ item: this.tempValue })}\n </div>\n );\n });\n\n return (\n <div class=\"n-info__body\">\n {Any.vals(elements)}\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-info',\n 'n-info--' + this.type,\n 'n-info--' + this.size,\n ];\n\n let infoHtml = (\n <NScrollbar ref=\"scrollbar\" relative={this.relative}>\n {this.ctor('renderBody')()}\n </NScrollbar>\n );\n\n return (\n <div class={classList}>\n {[infoHtml, this.$slots.default()]}\n </div>\n );\n }\n}\n","import { UUID, Obj, Locale, Str } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NInfoColumn',\n\n inject: {\n\n NInfo: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n prop: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'string';\n },\n type: [String]\n },\n\n previewProp: {\n default()\n {\n return 'preview';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Object, Array, Function]\n },\n\n optionsValue: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n emptyText: {\n default()\n {\n return Locale.trans('-');\n },\n type: [String]\n },\n\n trueText: {\n default()\n {\n return Locale.trans('Yes');\n },\n type: [String]\n },\n\n falseText: {\n default()\n {\n return Locale.trans('No');\n },\n type: [String]\n },\n\n datetimeFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm');\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n uid: UUID()\n };\n },\n\n beforeMount()\n {\n this.NInfo.addColumn(this);\n },\n\n beforeUnmount()\n {\n this.NInfo.removeColumn(this);\n },\n\n renderLabel()\n {\n if ( this.$slots.label ) {\n return this.$slots.label();\n }\n \n return (\n <div class=\"n-info-column\">\n <span>{this.label}</span>\n </div>\n );\n },\n\n renderBody(props)\n {\n let passed = Obj.except(props, [], {\n column: this\n });\n\n let component = resolveComponent('NInfoField' + \n Str.ucfirst(this.type));\n\n if ( ! component ) {\n return null;\n }\n\n passed.class = [\n 'n-info-field',\n 'n-info-field--' + this.type\n ];\n\n return h(component, passed);\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NInfo: {\n default: undefined\n }\n\n },\n\n props: {\n\n column: {\n required: true\n },\n\n item: {\n required: true\n },\n\n },\n\n computed: {\n\n input()\n {\n return Obj.get(this.item, this.column.prop);\n }\n\n },\n\n render()\n {\n return (\n <div>\n <span>{ this.input }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldString',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertString(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldBoolean',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertBoolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldDatetime',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertDatetime(this.input, this.column.datetimeFormat, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldOption',\n\n extends: InfoField,\n\n renderOption(value)\n {\n let options = this.column.options;\n\n if ( Any.isFunction(options) ) {\n options = this.column.options(this);\n }\n\n let prop = this.column.optionsValue;\n\n options = Arr.each(options, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let option = Arr.find(options, (item) => {\n return Obj.get(item, prop) == value;\n });\n\n if ( ! option ) {\n return [this.column.emptyText];\n }\n\n return Obj.get(option, this.column.optionsLabel,\n this.column.undefinedText);\n },\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n let input = ! Any.isObject(this.input) ?\n [this.input] : this.input;\n\n return (\n <div>\n <span>{ Arr.each(input, this.ctor('renderOption')) }</span>\n </div>\n );\n }\n\n}\n","import InfoField from \"../info-field.jsx\";\nimport { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInfoFieldImage',\n\n extends: InfoField,\n\n computed: {\n\n preview()\n {\n return Obj.get(this.item, this.column.previewProp);\n }\n\n },\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n let props = {\n fit: 'contain',\n };\n\n return (\n <div>\n <NPreview file={this.preview || this.input} thumb={this.input} {...props} />\n </div>\n );\n }\n\n}\n","import { Obj, Arr, Any, Dom } from \"@kizmann/pico-js\";\n\nconst fileMap = {\n image: [\n 'jpg', 'jpeg', 'gif', 'svg', 'png'\n ],\n video: [\n 'mp4', 'webm', 'mov'\n ],\n font: [\n 'woff', 'ttf', 'otf'\n ],\n text: [\n 'csv', 'txt', 'html'\n ],\n application: [\n 'pdf', 'doc', 'xls'\n ]\n}\n\nexport default {\n\n name: 'NPreview',\n\n props: {\n\n file: {\n default()\n {\n return null;\n }\n },\n\n thumb: {\n default()\n {\n return null;\n }\n },\n\n fit: {\n default()\n {\n return 'cover';\n },\n type: [String]\n },\n\n mime: {\n default()\n {\n return null;\n },\n typre: [String]\n },\n\n preview: {\n default()\n {\n return true;\n },\n typre: [Boolean]\n },\n\n showSrc: {\n default()\n {\n return true;\n },\n typre: [Boolean]\n },\n\n map: {\n default()\n {\n return fileMap;\n },\n type: [Object]\n }\n\n },\n\n computed: {\n\n tempFile()\n {\n return this.file || this.thumb;\n },\n\n tempThumb()\n {\n return this.thumb || this.file;\n },\n\n fileMime()\n {\n return this.getFileMime();\n },\n\n thumbMime()\n {\n return this.getThumbMime();\n },\n\n },\n\n data()\n {\n return {\n lightbox: false, load: false\n };\n },\n\n methods: {\n\n getFileMime(fallback = null)\n {\n let file = Obj.get(this.tempFile, 'name',\n this.tempFile);\n\n if ( Any.isEmpty(file) ) {\n return fallback;\n }\n\n let extension = file.replace(/^.*?\\.([^.?]+)(\\?.*?)?$/,\n '$1');\n\n Obj.each(this.map, (exts, key) => {\n if ( Arr.has(exts, extension) ) fallback = key;\n });\n\n if ( window.resolveVimeo(file) ) {\n fallback = 'video';\n }\n\n if ( window.resolveYoutube(file) ) {\n fallback = 'video';\n }\n\n if ( Any.isString(this.mime) ) {\n fallback = this.mime;\n }\n\n return fallback;\n },\n\n getThumbMime(fallback = null)\n {\n if ( Any.isString(this.mime) ) {\n return this.mime;\n }\n\n let file = Obj.get(this.tempThumb, 'name',\n this.tempThumb);\n\n if ( Any.isEmpty(file) ) {\n return fallback;\n }\n\n let extension = file.replace(/^.*?\\.([^.?]+)(\\?.*?)?$/,\n '$1');\n\n Obj.each(this.map, (exts, key) => {\n if ( Arr.has(exts, extension) ) fallback = key;\n });\n\n return fallback;\n },\n\n showLightbox()\n {\n this.lightbox = true;\n },\n\n },\n\n renderPreview()\n {\n if ( ! this.preview ) {\n return this.ctor('renderFull')();\n }\n\n if ( this.thumbMime === 'image' ) {\n return (<NPreviewImage src={this.tempThumb} />);\n }\n\n let props = {\n type: this.thumbMime,\n showSrc: false,\n }\n\n return (<NPreviewPlain src={this.tempThumb} {...props} />);\n },\n\n renderFull()\n {\n let isObject = Any.isObject(this.tempFile);\n\n if ( this.fileMime === 'image' ) {\n return (<NPreviewImage src={this.tempFile} />);\n }\n\n if ( this.fileMime === 'video' && ! isObject ) {\n return (<NPreviewVideo src={this.tempFile} />);\n }\n\n let props = {\n type: this.thumbMime,\n showSrc: this.showSrc,\n }\n\n return (<NPreviewPlain src={this.tempFile} {...props} />);\n },\n\n renderLightbox()\n {\n if ( ! this.lightbox || ! this.preview ) {\n return null;\n }\n\n let slots = {\n raw: this.ctor('renderFull')\n }\n\n let props = {\n type: 'preview',\n width: '80%',\n height: '90%',\n }\n\n return (<NModal vModel={this.lightbox} {...props} v-slots={slots} />);\n },\n\n render()\n {\n let classList = [\n 'n-preview',\n 'n-preview--' + this.fit\n ];\n\n if ( this.preview ) {\n classList.push('n-clickable');\n }\n\n if ( this.fileMime ) {\n classList.push('n-mime-' + this.fileMime);\n }\n\n let props = {};\n\n if ( this.preview ) {\n props.onClick = this.showLightbox;\n }\n\n let key = btoa(this.tempThumb);\n\n return (\n <div key={key} class={classList} {...props}>\n { [this.ctor('renderPreview')(), this.ctor('renderLightbox')()] }\n </div>\n );\n }\n\n}","import { Any, Obj, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewPlain',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return null;\n }\n },\n\n showSrc: {\n default()\n {\n return true;\n }\n }\n\n },\n\n computed: {\n\n tempSrc()\n {\n return Obj.get(this.src, 'name', this.src);\n },\n\n tempExt()\n {\n let regex = /^.*?\\.([^.?]+)(\\?.*?)?$/;\n\n if ( Any.isEmpty(this.tempSrc) ) {\n return null;\n }\n\n return this.tempSrc.replace(regex, '$1');\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-preview-plain'\n ];\n\n let slots = [];\n\n slots[0] = (\n <li>{ this.type || Locale.trans('plain') }/{ this.tempExt || Locale.trans('none') }</li>\n );\n\n if ( this.showSrc ) {\n slots[1] = (<li>{ this.tempSrc }</li>);\n }\n\n return (\n <div class={classList}>\n <ul>{ slots }</ul>\n </div>\n );\n }\n\n}","import { Obj, Arr, Str, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewImage',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n },\n\n data()\n {\n return {\n load: false, tempSrc: null\n };\n },\n\n beforeMount()\n {\n if ( ! window.ImageCache ) {\n window.ImageCache = [];\n }\n\n\n if ( ! Arr.has(window.ImageCache, this.src) ) {\n this.tempSrc = this.src;\n }\n\n },\n\n mounted()\n {\n this.resolveLoad();\n },\n\n watch: {\n\n 'src': function () {\n this.resolveLoad();\n }\n\n },\n\n methods: {\n\n resolveLoad()\n {\n if ( Arr.has(window.ImageCache, this.src) ) {\n return;\n }\n\n this.tempSrc = null;\n\n if ( Any.isObject(this.src) ) {\n return this.resolveData();\n }\n\n Dom.find(this.$refs.image).loaded(() => {\n\n /**\n * Add image to cache\n */\n Arr.add(window.ImageCache, this.src);\n\n /**\n * Mark image as loaded\n */\n Any.delay(() => this.load = false, 200);\n });\n\n this.laod = true;\n },\n\n resolveData()\n {\n let reader = new FileReader();\n\n reader.onload = () => {\n this.tempSrc = reader.result;\n };\n\n reader.readAsDataURL(this.src);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-preview-image'\n ];\n\n if ( Arr.has(window.ImageCache, this.src) ) {\n classList.push('n-cached');\n }\n\n if ( ! this.load ) {\n classList.push('n-ready');\n }\n\n return (\n <div class={classList}>\n <img ref=\"image\" src={this.tempSrc || this.src} />\n </div>\n );\n }\n\n}","import { Obj, Arr, Str, Any, Dom } from \"@kizmann/pico-js\";\n\nwindow.resolveYoutube = function(url, fallback = null) {\n\n if ( ! Any.isString(url) ) {\n return fallback;\n }\n\n let host = url.match(/^https?:\\/\\/(www\\.)?(youtube\\.com|youtu\\.be)/);\n\n if ( ! host ) {\n return fallback;\n }\n\n let id = url.match(/(\\?v=.*?)(?=&|$)/);\n\n if ( id && id.length === 2 ) {\n return id[0].replace(/^\\?v=/, '');\n }\n\n let path = url.match(/(\\.be\\/.*?)(?=\\?|$)/);\n\n if ( path && path.length === 2 ) {\n return path[0].replace(/^\\.be\\//, '');\n }\n\n let frame = url.match(/(\\/embed\\/)(.*?$)/);\n\n if ( frame && frame.length === 3 ) {\n return frame[0].replace(/^\\/embed\\//, '');\n }\n\n return fallback;\n}\n\nwindow.resolveVimeo = function(url, fallback = null) {\n\n if ( ! Any.isString(url) ) {\n return fallback;\n }\n\n let host = url.match(/^https?:\\/\\/(www\\.|player\\.)?vimeo\\.com/);\n\n if ( ! host ) {\n return fallback;\n }\n\n let path = url.match(/(\\/[0-9]+)(&|$)/);\n\n if ( path && path.length === 3 ) {\n return path[0].replace(/(^\\/|&$)/, '');\n }\n\n return fallback;\n}\n\nexport default {\n\n name: 'NPreviewVideo',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n },\n\n data()\n {\n return {\n provider: 'plain', unique: null, tempSrc: null\n };\n },\n\n mounted()\n {\n this.resolveType();\n },\n\n watch: {\n\n 'src': function () {\n this.resolveType();\n }\n\n },\n\n methods: {\n\n resolveType()\n {\n this.tempSrc = null;\n\n if ( this.resolveYoutube() ) {\n return;\n }\n\n if ( this.resolveVimeo() ) {\n return;\n }\n\n if ( Any.isObject(this.src) ) {\n this.resolveData();\n }\n\n this.provider = 'plain';\n },\n\n resolveData()\n {\n console.log('Coming at some point (blob stream)....');\n },\n\n resolveYoutube()\n {\n let youtube = window.resolveYoutube(this.src);\n\n if ( ! youtube ) {\n return false;\n }\n\n this.provider = 'youtube';\n\n this.$emit('resolve:youtube', this.unique = youtube);\n\n return true;\n },\n\n resolveVimeo()\n {\n let vimeo = window.resolveVimeo(this.src);\n\n if ( ! vimeo ) {\n return false;\n }\n\n this.provider = 'vimeo';\n\n this.$emit('resolve:vimeo', this.unique = vimeo);\n\n return true;\n }\n\n },\n\n renderYoutube()\n {\n let props = {\n src: `https://www.youtube.com/embed/${this.unique}`\n };\n\n return (\n <iframe {...props}></iframe>\n );\n },\n\n renderVimeo()\n {\n let props = {\n src: `https://player.vimeo.com/video/${this.unique}`\n };\n\n return (\n <iframe {...props}></iframe>\n );\n },\n\n renderPlain()\n {\n let src = Obj.get(this.src, 'name', this.src);\n\n let extension = src.replace(/^.*?\\.([^.?]+)(\\?.*?)?$/,\n '$1');\n\n return (\n <video width=\"320\" height=\"240\" controls>\n <source src={this.tempSrc || this.src} type={`video/${extension}`} />\n </video>\n );\n },\n\n render()\n {\n let classList = [\n 'n-preview-video'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('render' + Str.ucfirst(this.provider))() }\n </div>\n );\n }\n\n}","import { Arr, Map, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NMap',\n\n props: {\n\n lat: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n lng: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n zoom: {\n default()\n {\n return 15;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NMap: this\n };\n },\n\n data()\n {\n return { init: false, callbacks: [], tempMap: null };\n },\n\n watch: {\n\n lat()\n {\n Any.delay(() => this.tempMap.focusMarkers(), 100);\n },\n\n lng()\n {\n Any.delay(() => this.tempMap.focusMarkers(), 100);\n }\n\n },\n\n mounted()\n {\n this.tempMap = new Map(this.$el, {\n lat: this.lat, lng: this.lng, zoom: this.zoom\n });\n\n this.init = true;\n\n Arr.each(this.callbacks, (callback) => callback())\n },\n\n methods: {\n\n getMap()\n {\n return this.tempMap;\n },\n\n onMount(callback)\n {\n this.init ? callback() : this.callbacks.push(callback);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-map'\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { UUID, Obj, Num, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NMapMarker',\n\n inject: {\n\n NMap: {\n default: undefined\n }\n\n },\n\n props: {\n\n lat: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n lng: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n drag: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n options: {\n default()\n {\n return { style: 'default' };\n },\n type: [Object]\n },\n\n },\n\n data()\n {\n return {\n id: UUID(), tempMarker: null\n };\n },\n\n methods: {\n\n importMarkerPosition()\n {\n this.tempMarker.marker.setPosition({\n lat: this.lat, lng: this.lng\n });\n },\n\n updateMarkerPosition()\n {\n this.$emit('update:lat', this.tempMarker.marker.getPosition().lat());\n this.$emit('update:lng', this.tempMarker.marker.getPosition().lng());\n },\n\n initializeMarker()\n {\n let options = Obj.assign({\n lat: Num.float(this.lat), lng: Num.float(this.lng), draggable: this.drag\n }, this.options);\n\n if ( ! Any.isEmpty(this.$slots.default) ) {\n options.html = this.$el.innerHTML;\n }\n\n this.tempMarker = this.NMap.getMap().createMarker(this.id, options);\n\n this.tempMarker.marker.addListener('position_changed',\n Any.debounce(this.updateMarkerPosition));\n\n this.tempMarker.marker.addListener('dragstart',\n () => this.$emit('dragstart', this.tempMarker));\n\n this.tempMarker.marker.addListener('dragend',\n () => this.$emit('dragend', this.tempMarker));\n\n this.tempMarker.marker.addListener('mouseover',\n () => this.$emit('mouseenter', this.tempMarker));\n\n this.tempMarker.marker.addListener('mouseout',\n () => this.$emit('mouseleave', this.tempMarker));\n },\n\n setMarkerByAddress(address)\n {\n let successClosure = () => {\n this.NMap.getMap().focusMarkers(null, this.NMap.zoom);\n };\n\n let errorClosure = () => {\n this.Notify(this.trans('Address not found.'), 'danger');\n };\n\n this.NMap.getMap().setMarkerByAddress(this.id, address)\n .then(successClosure, errorClosure);\n }\n\n },\n\n watch: {\n\n lat()\n {\n this.importMarkerPosition();\n },\n\n lng()\n {\n this.importMarkerPosition();\n }\n\n },\n\n beforeMount()\n {\n this.NMap.onMount(this.initializeMarker);\n },\n\n render()\n {\n return (\n <div style=\"display: none;\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFile',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n multiple: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n clearable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n clearableIcon: {\n default()\n {\n return nano.Icons.times;\n },\n type: [String]\n },\n\n buttonText: {\n default()\n {\n return Locale.trans('Select file');\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n },\n\n tempValue()\n {\n if ( Any.isEmpty(this.tempValue) ) {\n this.$refs.input.value = null;\n }\n }\n\n },\n\n methods: {\n\n openContext()\n {\n this.$refs.input.click();\n },\n\n updateFile()\n {\n let tempValue = [\n ...this.$refs.input.files\n ];\n\n if ( ! this.multiple ) {\n tempValue = tempValue[0];\n }\n\n this.$emit('update:modelValue', this.tempValue = tempValue);\n },\n\n clearFile()\n {\n this.$emit('update:modelValue', null);\n }\n\n },\n\n renderInput()\n {\n let props = {\n size: this.size,\n disabled: true,\n iconDisabled: false,\n };\n\n props['onIconClick'] = this.clearFile;\n\n if ( ! this.multiple ) {\n props.modelValue = Obj.get(this.tempValue, 'name');\n }\n\n if ( this.multiple ) {\n props.modelValue = Locale.choice(':count File|:count Files',\n this.tempValue.length);\n }\n\n if ( this.clearable && !Any.isEmpty(this.tempValue) ) {\n props.icon = this.clearableIcon;\n }\n\n return (\n <NInput {...props}>\n { /* Input field for text */ }\n </NInput>\n );\n },\n\n renderButton()\n {\n let props = {\n size: this.size,\n disabled: this.disabled,\n icon: this.icon,\n onClick: this.openContext\n };\n\n return (\n <NButton {...props}>{this.buttonText}</NButton>\n );\n },\n\n renderHidden()\n {\n let props = {\n 'onInput': this.updateFile\n };\n\n return (\n <div class=\"n-file__input\">\n <input ref=\"input\" type=\"file\" multiple={this.multiple} {...props}></input>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-file'\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderInput')() }\n { this.ctor('renderButton')() }\n { this.ctor('renderHidden')() }\n </div>\n )\n }\n\n}\n","import { Num, Arr, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRating',\n\n props: {\n\n modelValue: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n steps: {\n default()\n {\n return 0.5;\n },\n type: [Number]\n },\n\n fixed: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n choice: {\n default()\n {\n return ':count';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n virtualValue()\n {\n return Num.fixed(1 / this.max * this.modelValue * 5, this.fixed);\n },\n\n },\n\n renderStars()\n {\n let stars = [\n 1, 2, 3, 4, 5\n ];\n\n return Arr.each (stars, (rate) => {\n\n let className = 'is-null';\n\n if ( this.virtualValue >= rate - 0.5 ) {\n className = 'is-half';\n }\n\n if ( this.virtualValue >= rate ) {\n className = 'is-full';\n }\n\n return (\n <span class={className}></span>\n );\n });\n },\n\n renderValue()\n {\n let vars = {\n value: Num.format(this.modelValue, '.', '', this.fixed)\n };\n\n if ( this.$slots.default ) {\n return this.$slots.default(vars);\n }\n\n return Locale.choice(this.choice, this.modelValue, vars);\n },\n\n render()\n {\n let classList = [\n 'n-rating',\n 'n-rating--' + this.size,\n 'n-rating--' + this.type\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-rating__stars\">\n {this.ctor('renderStars')()}\n </div>\n <div class=\"n-rating__value\">\n {this.ctor('renderValue')()}\n </div>\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDrawer',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n width: {\n default()\n {\n return '30%';\n },\n type: [String]\n },\n\n title: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'right';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n tempValue()\n {\n this.startRefreshTimeout();\n }\n\n },\n\n provide()\n {\n return {\n NDrawer: this\n };\n },\n\n data()\n {\n return {\n target: null, tempValue: false\n };\n },\n\n mounted()\n {\n this.target = Dom.find(this.selector || this.$el)\n .previous().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).on('keydown',\n this.eventKeydown, this._.uid);\n\n let showDrawer = () => {\n this.tempValue = true;\n };\n\n if ( this.modelValue ) {\n Any.delay(showDrawer, 100);\n }\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n\n Dom.find(document.body).off('keydown',\n null, this._.uid);\n },\n\n methods: {\n\n openModal(force = false, source = null)\n {\n if ( this.tempValue ) {\n return;\n }\n\n if ( this.closable || force ) {\n this.tempValue = true;\n }\n\n this.$emit('update:modelValue', true, source);\n },\n\n closeDrawer(force = false, source = null)\n {\n if ( ! this.tempValue ) {\n return;\n }\n\n if ( ! this.update ) {\n return this.$emit('close', source);\n }\n\n if ( this.closable || force ) {\n this.tempValue = false;\n }\n\n this.$emit('update:modelValue', false, source);\n },\n\n stopRefreshTimeout()\n {\n clearTimeout(this.refresh);\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n startRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n window.zIndex += 1;\n\n Dom.find(this.$el).attr('data-drawer',\n window.zIndex);\n\n Dom.find(this.$el).css({\n 'z-index': window.zIndex\n });\n\n this.queueRefreshTimeout();\n },\n\n queueRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n this.refresh = setTimeout(() => {\n Dom.find(this.$el).addClass('n-ready');\n }, 100);\n },\n\n eventClick(event, el)\n {\n if ( this.disabled || event.which !== 1 ) {\n return;\n }\n\n let result = !! Dom.find(el).closest(this.target);\n\n if ( ! result && ! this.tempValue ) {\n return;\n }\n\n if ( this.tempValue && this.closable ) {\n result = ! Dom.find(el).closest(this.$refs.backdrop);\n }\n\n if ( result === this.tempValue ) {\n return;\n }\n\n if ( ! result ) {\n return this.closeDrawer(false, 'escape');\n }\n\n if ( this.listen ) {\n this.openModal(true, 'selector');\n }\n },\n\n eventKeydown(event, el)\n {\n if ( ! this.tempValue || event.which !== 27 ) {\n return;\n }\n\n let extractIndex = (modal) => {\n return Dom.find(modal).attr('data-drawer');\n };\n\n let indexes = Dom.find('.n-drawer:not(.n-hidden)')\n .each(extractIndex);\n\n let index = Dom.find(this.$el).attr('data-drawer');\n\n if ( Arr.last(indexes.sort()) !== index ) {\n return;\n }\n\n this.closeDrawer(false, 'escape');\n },\n\n },\n\n renderClose()\n {\n if ( ! this.renderClose || ! this.closable ) {\n return null;\n }\n\n let props = {\n onClick: () => this.closeDrawer(false, 'escape')\n };\n\n return (\n <div class=\"n-drawer__close\" {...props}>\n <span class={nano.Icons.times}></span>\n </div>\n );\n },\n\n renderHeader()\n {\n if ( ! this.$slots.header && ! this.title ) {\n return null;\n }\n\n return (\n <div class=\"n-drawer__header\">\n { [this.$slots.header && this.$slots.header({ closeDrawer: this.closeDrawer }) || this.title, this.ctor('renderClose')()] }\n </div>\n );\n },\n\n renderFooter()\n {\n if ( ! this.$slots.footer ) {\n return null;\n }\n\n return (\n <div class=\"n-drawer__footer\">\n { this.$slots.footer({ closeDrawer: this.closeDrawer }) }\n </div>\n );\n },\n\n renderBody()\n {\n let bodyHtml = (\n <NScrollbar ref=\"scrollbar\" relative={true} wrapClass=\"n-drawer__wrap\">\n { this.$slots.default && this.$slots.default({ closeDrawer: this.closeDrawer }) }\n </NScrollbar>\n );\n\n if ( this.$slots.body ) {\n bodyHtml = this.$slots.body({ closeDrawer: this.closeDrawer });\n }\n\n return (\n <div class=\"n-drawer__body\">\n { bodyHtml }\n </div>\n );\n },\n\n renderFrame()\n {\n if ( ! this.tempValue ) {\n return null;\n }\n\n let style = {\n width: this.width\n };\n\n let innerHtml = [\n this.ctor('renderHeader')(),\n this.ctor('renderBody')(),\n this.ctor('renderFooter')(),\n ]\n\n return (\n <div class=\"n-drawer__frame\" style={style}>\n { this.$slots.raw ? this.$slots.raw() : innerHtml }\n </div>\n );\n },\n\n renderBackdrop()\n {\n return (\n <div ref=\"backdrop\" class=\"n-drawer__backdrop\"></div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-drawer',\n 'n-drawer--' + this.size,\n 'n-drawer--' + this.type,\n 'n-drawer--' + this.position\n ];\n\n if ( this.tempValue ) {\n this.queueRefreshTimeout();\n }\n\n if ( this.renderClose ) {\n classList.push('n-closable');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let innerHtml = null;\n\n if ( this.tempValue ) {\n innerHtml = this.ctor('renderFrame')();\n }\n\n return (\n <div class={classList}>\n { [innerHtml, this.ctor('renderBackdrop')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Dom, Locale } from \"@kizmann/pico-js\";\n\nimport CtorMixin from \"./mixins/src/ctor.js\";\nimport CmerMixin from \"./mixins/src/cmer.js\";\nimport CsloMixin from \"./mixins/src/cslo.js\";\n\nimport Alert from \"./alert/index.js\";\nimport Notification from \"./notification/index.js\";\nimport Empty from \"./empty/index.js\";\nimport Config from \"./config/index.js\";\nimport Scrollbar from \"./scrollbar/index.js\";\nimport Virtualscroller from \"./virtualscroller/index.js\";\nimport Draggable from \"./draggable/index.js\";\nimport Loader from \"./loader/index.js\";\nimport Resizer from \"./resizer/index.js\";\nimport Popover from \"./popover/index.js\";\nimport Modal from \"./modal/index.js\";\nimport Button from \"./button/index.js\";\nimport Input from \"./input/index.js\";\nimport InputNumber from \"./input-number/index.js\";\nimport Textarea from \"./textarea/index.js\";\nimport Select from \"./select/index.js\";\nimport Checkbox from \"./checkbox/index.js\";\nimport Radio from \"./radio/index.js\";\nimport Slider from \"./slider/index.js\";\nimport Switch from \"./switch/index.js\";\nimport Confirm from \"./confirm/index.js\";\nimport Cascader from \"./cascader/index.js\";\nimport Datepicker from \"./datepicker/index.js\";\nimport Timepicker from \"./timepicker/index.js\";\nimport Datetimepicker from \"./datetimepicker/index.js\";\nimport Durationpicker from \"./durationpicker/index.js\";\nimport Transfer from \"./transfer/index.js\";\nimport Form from \"./form/index.js\";\nimport Tabs from \"./tabs/index.js\";\nimport Tags from \"./tags/index.js\";\nimport Collapse from \"./collapse/index.js\";\nimport Table from \"./table/index.js\";\nimport Paginator from \"./paginator/index.js\";\nimport Info from \"./info/index.js\";\nimport Preview from \"./preview/index.js\";\nimport Map from \"./map/index.js\";\nimport File from \"./file/index.js\";\nimport Rating from \"./rating/index.js\";\nimport Drawer from \"./drawer/index.js\";\n\nconst NanoImports = [\n Alert,\n Notification,\n Empty,\n Config,\n Scrollbar,\n Virtualscroller,\n Draggable,\n Loader,\n Resizer,\n Popover,\n Modal,\n Button,\n Input,\n InputNumber,\n Textarea,\n Select,\n Checkbox,\n Radio,\n Slider,\n Switch,\n Confirm,\n Cascader,\n Datepicker,\n Timepicker,\n Datetimepicker,\n Durationpicker,\n Transfer,\n Form,\n Tabs,\n Tags,\n Collapse,\n Table,\n Paginator,\n Info,\n Preview,\n Map,\n File,\n Rating,\n Drawer\n];\n\nexport const Icons = {\n handle: 'fa fa-ellipsis-v',\n checked: 'fa fa-check',\n circle: 'fa fa-circle',\n intermediate: 'fa fa-minus',\n clock: 'fa fa-clock',\n calendar: 'fa fa-calendar',\n times: 'fa fa-times',\n primary: 'fa fa-info-circle',\n success: 'fa fa-check-circle',\n warning: 'fa fa-exclamation-circle',\n danger: 'fa fa-times-circle',\n info: 'fa fa-info-circle',\n angleUp: 'fa fa-angle-up',\n angleRight: 'fa fa-angle-right',\n angleDown: 'fa fa-angle-down',\n angleLeft: 'fa fa-angle-left',\n angleDoubleLeft: 'fa fa-angle-double-left',\n angleDoubleRight: 'fa fa-angle-double-right'\n};\n\nexport const Settings = {\n iconPosition: 'before',\n notifySize: 'md',\n notifyPosition: 'bottom-start'\n};\n\nexport function Install(App, Icons = {}, Settings = {})\n{\n /**\n * @const window.pi\n */\n\n if ( typeof window.pi === 'undefined' ) {\n return console.error('pico-js is not available.');\n }\n\n Obj.each(window.pi, (value, key) => {\n App.config.globalProperties[key] = value;\n });\n\n App.config.globalProperties.ctor = CtorMixin.ctor;\n App.config.globalProperties.cmer = CmerMixin.cmer;\n App.config.globalProperties.cslo = CsloMixin.cslo;\n\n App.config.globalProperties.trans = Locale.trans;\n App.config.globalProperties.choice = Locale.choice;\n\n window.nano.Icons = Obj.assign(window.nano.Icons, Icons);\n window.nano.Settings = Obj.assign(window.nano.Settings, Settings);\n\n Arr.each(NanoImports, (NanoModule) => {\n NanoModule(App);\n });\n\n // require('./chart/index.js'); // Ignore\n // require('./wysiwyg/index.js'); // Ignore\n}\n\nexport const Nano = {\n Icons: Icons, Settings: Settings, Install: Install\n};\n\nwindow.keyMods = [];\n\nDom.find(document).on('keydown', (event) => {\n Arr.add(window.keyMods, event.which);\n});\n\nDom.find(document).on('keyup', (event) => {\n Arr.remove(window.keyMods, event.which);\n});\n\nDom.find(document).on('dragstart', (event) => {\n Arr.add(window.keyMods, event.which);\n});\n\nDom.find(document).on('dragend', (event) => {\n window.keyMods = [];\n});\n\nif ( typeof window.nano === 'undefined' ) {\n window.nano = Nano;\n}\n\nexport default Nano;\n","export default function (App) {\n import(\"./src/alert/alert.js\").then(({ Alert }) => {\n App.config.globalProperties[Alert.alias] = window[Alert.alias] = Alert.handle;\n });\n}\n","export default function (App) {\n import(\"./src/notification/notification.js\").then(({ Notify }) => {\n App.config.globalProperties[Notify.alias] = window[Notify.alias] = Notify.handle;\n });\n}\n","import EmptyIcon from \"./src/empty-icon/empty-icon.jsx\";\n\nexport default function (App) {\n App.component(EmptyIcon.name, EmptyIcon);\n}\n","import NConfig from \"./src/config/config.jsx\";\nimport NConfigNext from \"./src/config/config-next.jsx\";\nimport NBuilder from \"./src/builder/builder.jsx\";\nimport NRefrencePanel from \"./src/reference-panel/reference-panel.jsx\";\nimport NRefrencePicker from \"./src/reference-picker/reference-picker.jsx\";\n\nexport default function(App) {\n App.component(NConfig.name, NConfig);\n App.component(NConfigNext.name, NConfigNext);\n App.component(NBuilder.name, NBuilder);\n App.component(NRefrencePanel.name, NRefrencePanel);\n App.component(NRefrencePicker.name, NRefrencePicker);\n}\n","import Scrollbar from \"./src/scrollbar/scrollbar.jsx\";\n\nexport default function (App) {\n App.component(Scrollbar.name, Scrollbar);\n}","import Virtualscroller from \"./src/virtualscroller/virtualscroller.jsx\";\n\nexport default function (App) {\n App.component(Virtualscroller.name, Virtualscroller);\n}","import Draglist from \"./src/draglist/draglist.jsx\";\nimport DraglistItem from \"./src/draglist-item/draglist-item.jsx\";\nimport Draggrid from \"./src/draggrid/draggrid.jsx\";\nimport DraggridItem from \"./src/draggrid-item/draggrid-item.jsx\";\nimport Dropzone from \"./src/dropzone/dropzone.jsx\";\n\nexport default function (App) {\n App.component(Draglist.name, Draglist);\n App.component(DraglistItem.name, DraglistItem);\n App.component(Draggrid.name, Draggrid);\n App.component(DraggridItem.name, DraggridItem);\n App.component(Dropzone.name, Dropzone);\n}","import Loader from \"./src/loader/loader.jsx\";\n\nexport default function (App) {\n App.component(Loader.name, Loader);\n}\n","import Resizer from \"./src/resizer/resizer.jsx\";\n\nexport default function (App) {\n App.component(Resizer.name, Resizer);\n}\n","import Popover from \"./src/popover/popover.jsx\";\nimport PopoverGroup from \"./src/popover-group/popover-group.jsx\";\nimport PopoverOption from \"./src/popover-option/popover-option.jsx\";\n\nexport default function (App) {\n App.component(Popover.name, Popover);\n App.component(PopoverGroup.name, PopoverGroup);\n App.component(PopoverOption.name, PopoverOption);\n}","import Modal from \"./src/modal/modal.jsx\";\n\nexport default function (App) {\n App.component(Modal.name, Modal);\n}\n","import Button from \"./src/button/button.jsx\";\nimport ButtonGroup from \"./src/button-group/button-group.jsx\";\n\nexport default function (App) {\n App.component(Button.name, Button);\n App.component(ButtonGroup.name, ButtonGroup);\n}\n","import Input from \"./src/input/input.jsx\";\n\nexport default function (App) {\n App.component(Input.name, Input);\n}\n","import InputNumber from \"./src/input-number/input-number.jsx\";\n\nexport default function (App) {\n App.component(InputNumber.name, InputNumber);\n}","import Textarea from \"./src/textarea/textarea.jsx\";\n\nexport default function (App) {\n App.component(Textarea.name, Textarea);\n}","import Select from \"./src/select/select.jsx\";\nimport SelectOption from \"./src/select-option/select-option.jsx\";\n\nexport default function (App) {\n App.component(Select.name, Select);\n App.component(SelectOption.name, SelectOption);\n}\n","import Checkbox from \"./src/checkbox/checkbox.jsx\";\nimport CheckboxGroup from \"./src/checkbox-group/checkbox-group.jsx\";\n\nexport default function (App) {\n App.component(Checkbox.name, Checkbox);\n App.component(CheckboxGroup.name, CheckboxGroup);\n}","import NRadio from \"./src/radio/radio.jsx\";\nimport NRadioGroup from \"./src/radio-group/radio-group.jsx\";\n\nexport default function (App) {\n App.component(NRadio.name, NRadio);\n App.component(NRadioGroup.name, NRadioGroup);\n}\n","import Slider from \"./src/slider/slider.jsx\";\n\nexport default function (App) {\n App.component(Slider.name, Slider);\n}","import Switch from \"./src/switch/switch.jsx\";\n\nexport default function (App) {\n App.component(Switch.name, Switch);\n}","import Confirm from \"./src/confirm/confirm.jsx\";\n\nexport default function (App) {\n App.component(Confirm.name, Confirm);\n}\n","import CascaderPanel from \"./src/cascader-panel/cascader-panel.jsx\";\nimport Cascader from \"./src/cascader/cascader.jsx\";\n\nexport default function (App) {\n App.component(CascaderPanel.name, CascaderPanel);\n App.component(Cascader.name, Cascader);\n}","import DatepickerPanel from \"./src/datepicker-panel/datepicker-panel.jsx\";\nimport Datepicker from \"./src/datepicker/datepicker.jsx\";\n\nexport default function (App) {\n App.component(DatepickerPanel.name, DatepickerPanel);\n App.component(Datepicker.name, Datepicker);\n}","import TimepickerPanel from \"./src/timepicker-panel/timepicker-panel.jsx\";\nimport Timepicker from \"./src/timepicker/timepicker.jsx\";\n\nexport default function (App) {\n App.component(TimepickerPanel.name, TimepickerPanel);\n App.component(Timepicker.name, Timepicker);\n}","import Datetimepicker from \"./src/datetimepicker/datetimepicker.jsx\";\n\nexport default function (App) {\n App.component(Datetimepicker.name, Datetimepicker);\n}","import Durationpicker from \"./src/durationpicker/durationpicker.jsx\";\n\nexport default function (App) {\n App.component(Durationpicker.name, Durationpicker);\n}","import Transfer from \"./src/transfer/transfer.jsx\";\n\nexport default function (App) {\n App.component(Transfer.name, Transfer);\n}","import Form from \"./src/form/form.jsx\";\nimport FormGroup from \"./src/form-group/form-group.jsx\";\nimport FormItem from \"./src/form-item/form-item.jsx\";\nimport FormMenu from \"./src/form-menu/form-menu.jsx\";\nimport FormFrame from \"./src/form-frame/form-frame.jsx\";\nimport FormFrameItem from \"./src/form-frame-item/form-frame-item.jsx\";\n\nexport default function (App) {\n App.component(Form.name, Form);\n App.component(FormGroup.name, FormGroup);\n App.component(FormItem.name, FormItem);\n App.component(FormFrame.name, FormFrame);\n App.component(FormFrameItem.name, FormFrameItem);\n App.component(FormMenu.name, FormMenu);\n}","import Tabs from \"./src/tabs/tabs.jsx\";\nimport TabsItem from \"./src/tabs-item/tabs-item.jsx\";\n\nexport default function (App) {\n App.component(Tabs.name, Tabs);\n App.component(TabsItem.name, TabsItem);\n}","import Tags from \"./src/tags/tags.jsx\";\nimport TagsItem from \"./src/tags-item/tags-item.jsx\";\n\nexport default function (App) {\n App.component(Tags.name, Tags);\n App.component(TagsItem.name, TagsItem);\n}","import Collapse from \"./src/collapse/collapse.jsx\";\nimport CollapseItem from \"./src/collapse-item/collapse-item.jsx\";\n\nexport default function (App) {\n App.component(Collapse.name, Collapse);\n App.component(CollapseItem.name, CollapseItem);\n}","import Table from \"./src/table/table.jsx\";\nimport TableColumn from \"./src/table-column/table-column.jsx\";\nimport TableCellString from \"./src/table-cell/types/table-cell-string.jsx\";\nimport TableCellBoolean from \"./src/table-cell/types/table-cell-boolean.jsx\";\nimport TableCellDatetime from \"./src/table-cell/types/table-cell-datetime.jsx\";\nimport TableCellOption from \"./src/table-cell/types/table-cell-option.jsx\";\nimport TableCellImage from \"./src/table-cell/types/table-cell-image.jsx\";\nimport TableCellMatrix from \"./src/table-cell/types/table-cell-matrix.jsx\";\nimport TableCellSelect from \"./src/table-cell/types/table-cell-select.jsx\";\nimport TableFilterString from \"./src/table-filter/types/table-filter-string.jsx\";\nimport TableFilterBoolean from \"./src/table-filter/types/table-filter-boolean.jsx\";\nimport TableFilterDatetime from \"./src/table-filter/types/table-filter-datetime.jsx\";\nimport TableFilterOption from \"./src/table-filter/types/table-filter-option.jsx\";\n\n\nexport default function (App) {\n App.component(Table.name, Table);\n App.component(TableColumn.name, TableColumn);\n App.component(TableCellString.name, TableCellString);\n App.component(TableCellBoolean.name, TableCellBoolean);\n App.component(TableCellDatetime.name, TableCellDatetime);\n App.component(TableCellOption.name, TableCellOption);\n App.component(TableCellImage.name, TableCellImage);\n App.component(TableCellMatrix.name, TableCellMatrix);\n App.component(TableCellSelect.name, TableCellSelect);\n App.component(TableFilterString.name, TableFilterString);\n App.component(TableFilterBoolean.name, TableFilterBoolean);\n App.component(TableFilterDatetime.name, TableFilterDatetime);\n App.component(TableFilterOption.name, TableFilterOption);\n}","import Paginator from \"./src/paginator/paginator.jsx\";\n\nexport default function (App) {\n App.component(Paginator.name, Paginator);\n}","import Info from \"./src/info/info.jsx\";\nimport InfoColumn from \"./src/info-column/info-column.jsx\";\nimport InfoFieldString from \"./src/info-field/types/info-field-string.jsx\";\nimport InfoFieldBoolean from \"./src/info-field/types/info-field-boolean.jsx\";\nimport InfoFieldDatetime from \"./src/info-field/types/info-field-datetime.jsx\";\nimport InfoFieldOption from \"./src/info-field/types/info-field-option.jsx\";\nimport InfoFieldImage from \"./src/info-field/types/info-field-image.jsx\";\n\nexport default function (App) {\n App.component(Info.name, Info);\n App.component(InfoColumn.name, InfoColumn);\n App.component(InfoFieldString.name, InfoFieldString);\n App.component(InfoFieldBoolean.name, InfoFieldBoolean);\n App.component(InfoFieldDatetime.name, InfoFieldDatetime);\n App.component(InfoFieldOption.name, InfoFieldOption);\n App.component(InfoFieldImage.name, InfoFieldImage);\n}","import Preview from \"./src/preview/preview.jsx\";\nimport PreviewPlain from \"./src/preview-plain/preview-plain.jsx\";\nimport PreviewImage from \"./src/preview-image/preview-image.jsx\";\nimport PreviewVideo from \"./src/preview-video/preview-video.jsx\";\n\nexport default function (App) {\n App.component(Preview.name, Preview);\n App.component(PreviewPlain.name, PreviewPlain);\n App.component(PreviewImage.name, PreviewImage);\n App.component(PreviewVideo.name, PreviewVideo);\n}\n\n","import Map from \"./src/map/map.jsx\";\nimport MapMarker from \"./src/map-marker/map-marker.jsx\";\n\nexport default function (App) {\n App.component(Map.name, Map);\n App.component(MapMarker.name, MapMarker);\n}\n\n","import File from \"./src/file/file.jsx\";\n\nexport default function (App) {\n App.component(File.name, File);\n}\n\n","import Rating from \"./src/rating/rating.jsx\";\n\nexport default function (App) {\n App.component(Rating.name, Rating);\n}\n","import Modal from \"./src/drawer/drawer.jsx\";\n\nexport default function (App) {\n App.component(Modal.name, Modal);\n}\n"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__55__","__WEBPACK_EXTERNAL_MODULE__122__","inProgress","dataWebpackPrefix","window","NanoBuilderTypes","Locale","trans","NanoBuilderIndexies","childs","props","modelValue","for","type","onValue","offValue","onType","options","NanoPrototypeTypes","offType","size","NanoPrototypeSizes","disabled","NanoPrototypeBools","default","clearValue","clearable","min","max","Number","MAX_VALUE","stepSize","precision","placeholder","format","decimals","classList","link","square","icon","iconPosition","nativeType","click","label","iconDisabled","iconClick","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","m","d","definition","key","o","Object","defineProperty","enumerable","get","f","e","chunkId","Promise","all","keys","reduce","promises","u","g","globalThis","this","Function","obj","prop","prototype","hasOwnProperty","call","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","i","length","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","fn","setTimeout","bind","target","head","appendChild","r","Symbol","toStringTag","value","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","installedChunks","j","installedChunkData","promise","resolve","reject","error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","some","id","chunkLoadingGlobal","ctor","_this","fallback","arguments","Obj","$options","split","_len","args","Array","_key","apply","cmer","attrsList","Any","isString","isArray","Arr","each","isPlain","assign","$attrs","cslo","slot","$slots","findIndex","Comment","String","Boolean","inline","render","_createVNode","config","scope","tempValue","methods","solveAwait","isEmpty","match","has","$$scope","$$value","solveValue","isFunction","concat","solveEvent","$configRefs","$refs","_len2","_key2","solveContent","_len3","_key3","$render","prepareValue","veModel","path","deepSet","inputClosure","closure","val","shift","set","watch","renderLayer","source","_this2","setup","component","vIf","vShow","vAwait","class","$on","$props","style","display","model","map","input","content","slots","resolved","resolveComponent","h","extraValue","sempValue","getString","final","propAwait","result","state","getState","propExists","exists","solveInput","sources","$scope","$model","$extra","$global","toPropKey","splits","Str","ucfirst","lcfirst","join","toEventKey","cb","solveContext","_this3","console","getProp","getInput","isNull","setInput","renderSetup","alias","_this4","defaultsBind","binds","events","updateKey","_this5","_isSlot","toString","_isVNode","NanoBuilderPropType","NanoBuilderPropCode","NanoBuilderProps","renderDemo","renderExport","init","demo","collapse","safevar","normalizeModel","mounted","exportJson","JSON","stringify","clone","matches","exportExecutable","normalizeChild","order","vals","child","applyProps","_objectSpread","except","builder","buildProps","first","_typeof","UUID","getOriginalValue","safevalue","btoa","getSafeValue","string","getRealValue","realvalue","code","number","parse","atob","original","changeElement","update","newKey","unset","k","changeAlias","changeType","bindValue","el","only","sey","isObject","$nextTick","addProp","removeProp","collapseElement","toggle","addElement","removeElement","moveupElement","_ref","close","MIN_VALUE","sub","Math","replacement","find","movedownElement","_ref2","renderTools","rootProps","collapseProps","href","addProps","removeProps","moveupProps","movedownProps","_mergeProps","renderProp","_this6","group","$data","index","typeProps","keyProps","allowCreate","optionsLabel","codeProps","valueInputProps","valueHtml","_resolveComponent","$event","fallbackProps","minRows","autoRows","_createTextVNode","renderProps","_slot","_this7","elementProps","aliasProps","plainProps","renderElement","_this8","builderHtml","renderBuilder","_this9","items","sort","v","renderBody","renderHead","_slot2","_slot3","_this0","addHtml","demoProps","demoHtml","renderOutput","_slot4","_this1","renderFunction","_ref3","configProps","width","height","expanded","selected","modelTree","buildTree","scopeTree","ref","submitItem","$emit","selectItem","expandItem","renderLeaf","renderTree","childItems","childHtml","renderItem","renderModel","modelHtml","renderScope","scopeHtml","modal","updateValue","renderModal","modalProps","panelProps","renderInput","inputProps","provide","NScrollbar","relative","fixture","allowNative","overflowY","overflowX","offsetY","offsetX","framerate","wrapClass","computed","touch","navigator","msMaxTouchPoints","mousedown","mousemove","mouseup","native","beforeMount","adaptScrollBehavior","bindAdaptHeight","bindAdaptWidth","passive","uid","_","Event","onResize","onUpdate","Dom","on","onScroll","updated","passedHeight","passedWidth","$el","addClass","beforeUnmount","unbindAdaptHeight","unbindAdaptWidth","unbind","off","scrollTo","x","y","delay","onScrollTo","scrollTop","scrollLeft","scrollIntoView","selector","onScrollIntoView","outerHeight","clientHeight","offsetTop","outerWidth","clientWidth","offsetLeft","$dom","make","appendTo","body","offsetWidth","offsetHeight","remove","adaptScrollHeight","innerHeight","scrollHeight","virtualHeight","barHeight","maxHeight","ceil","heightRatio","vbar","css","hasVtrack","removeClass","adaptScrollPosition","adaptScrollWidth","innerWidth","scrollWidth","virtualWidth","barWidth","maxWidth","widthRatio","hbar","hasHtrack","scroll","top","left","vbarTop","transform","hbarLeft","adaptHeight","cacheChildEl","cacheWindwoEl","windowCache","onSizechange","spacer","refreshHeight","setInterval","clearInterval","adaptWidth","resizeTimer","refreshWidth","fire","$inner","actual","getTouchEvent","touches","changedTouches","onVbarMousedown","which","stopPropagation","onVbarMousemove","onVbarMouseup","clientY","offset","onHbarMousedown","onHbarMousemove","onHbarMouseup","clientX","WIN","vbarProps","_defineProperty","hbarProps","DEBUG_NVSCROLL","inject","NDraggable","itemHeight","itemWidth","renderNode","deathzone","threshold","useKeys","start","end","grid","buffer","load","updateRender","bindAdaptScroll","unbindAdaptScroll","refreshScroll","onScrollupdate","isIndexRendered","scrollbar","scrollToIndex","onScrollToIndex","total","floor","targetTop","clearState","async","refreshDriver","inner","queue","timer","Date","now","to","bufferItems","round","isEqual","passed","topOffset","uniqueProp","renderRows","slice","renderGridRows","counter","chunk","renderGrid","chunks","renderItems","empty","totalHeight","dragMods","NDragCounter","_createClass","_classCallCheck","count","html","choice","dataTransfer","setData","setDragImage","keyMods","attr","DragCounter","NDragIndicator","parent","safezone","strategy","rect","getBoundingClientRect","hasClass","show","hide","item","NDraghandler","rootNode","_this$bindDragstart","frame","DragIndicator","DragCache","bindDragstart","_toConsumableArray","onDragenterRoot","onDragoverRoot","onDragleaveRoot","onDragendRoot","onDragdropRoot","bindDragend","bindDragdrop","preventDefault","closest","cacheNodes","frames","allowDrop","rainbow","node","moveNodes","cache","allowGroups","dragcount","dropNodes","tempSelected","removeNode","unlinkNodes","removeNodes","isSelected","virtuals","route","targetNode","isInSelf","cascade","childNodes","unbindNode","$handle","handle","onDragstartNode","onDragenterNode","onDragoverNode","onDragleaveNode","onDragendNode","onDragdropNode","moveNodesMany","moveNodesOne","insertNode","moveNodesRoot","transformDrop","moveNodesInto","moveNodesBefore","moveNodesAfter","eventName","filter","childProp","disableMove","targetRoute","children","splice","merge","reduceItem","Num","depth","cascades","unique","tempCascade","virtual","last","DEBUG_NDLIST","draggable","current","lazyload","showEmptyIcon","itemOffset","scrollTopOnChange","renderCurrent","renderHandle","renderSelect","renderExpand","allowSelect","allowDrag","keyEvents","highlightTimeout","modifier","visible","highlight","firstSelected","lastSelected","tempCurrent","tempExpanded","drag","watchModifierDown","watchModifierUp","virtualscroller","bindRoot","$watch","watchSelected","deep","refreshVirtuals","unbindRoot","filterVirtuals","add","updateNode","findVirtual","log","contains","getIndex","getCurrentIndex","isDraggable","canDrag","isHighlight","highlightNode","refresh","recursive","scrollToHighlight","isCurrent","setCurrent","setRawCurrent","setNextCurrent","setPrevCurrent","reset","syncCurrent","isDisabled","canSelect","hasChildren","getChildren","isExpanded","expandCurrent","isTotalSelected","isInterSelected","toggleSingleNode","toggleRangeNode","indexies","reversed","selectAll","row","unselectAll","bindKeydown","onKeydown","unbindKeydown","renderEmpty","onMouseenter","onMouseleave","NDraggableItem","required","bindNode","copy","copyNode","onClick","onDblclick","renderSpacer","nano","Icons","angleRight","checked","NDropzone","NLoader","minimum","debounce","tempVisible","applyTimer","timing","startTimer","restartTimer","minWidth","position","resizerWidth","sizeFixed","updateWidth","bindSizechange","forceWidth","unmounted","unbindSizechange","flex","updateHandle","onLeftMousedown","onLeftMouseup","onLeftMousemove","scrollX","targetWidth","frameStyle","onRightMousedown","onRightMouseup","onRightMousemove","NPopover","listen","trigger","scrollClose","multiClose","prevent","refreshVisible","previous","append","onHover","onContext","onExit","onCloseEvent","active","open","pause","unpause","stopRefreshInterval","startRefreshInterval","passedOffset","updatePosition","isSameOffset","isSameSize","passedSize","getTargetHorizontal","targetRect","windowRect","posY","posX","center","inverse","broken","getTargetVertical","getTargetOffset","zIndex","isScrollClose","keyCode","raw","header","footer","viewBody","tempSize","focus","image","imagePosition","clickClose","renderImage","renderIcon","renderContent","title","closable","renderClose","startRefreshTimeout","NModal","eventClick","eventKeydown","openModal","force","closeModal","stopRefreshTimeout","queueRefreshTimeout","backdrop","indexes","times","renderHeader","renderFooter","bodyHtml","renderFrame","innerHtml","renderBackdrop","NForm","NFormItem","inheritAttrs","deepDisabled","onIconClick","onInput","onSubmit","onFocus","onBlur","getValue","clear","getDisplayValue","nextStep","isNaN","toFixed","onNextDown","nextTimeout","nextInterval","onNextUp","prevStep","onPrevDown","prevTimeout","prevInterval","onPrevUp","regex","RegExp","renderPrev","onMousedown","renderNext","renderClear","maxRows","maxLength","eventInput","rows","currentRows","lazy","multiple","emptyText","undefinedText","collapseText","optionsValue","optionsDisabled","custom","elements","element","tempClear","search","searched","generateOptions","searchOptions","NSelect","scrollToClosest","focusInput","$value","$index","option","tempLabel","addOption","removeOption","resetInput","onFocusInput","popover","onInputInput","onKeydownInput","createOrToggle","selectPrev","selectNext","searchRegex","toggleOption","denyUpdate","getOptionLabel","newIndex","scrollToCurrent","createOption","virtualbar","select","renderLabelClear","renderLabelAngle","angleDown","renderLabelItem","labelHtml","renderLabelCollapse","firstHtml","renderLabelItems","renderMultiple","isEmptyValue","isNumber","inputHtml","renderSingle","modelLabel","renderDisplay","displayHtml","emptyHtml","values","renderLazyOption","isMultipleActive","isSingleActive","renderLazyItems","renderPopover","onClose","renderOptions","valueProp","labelProp","toggleItem","renderOption","NCheckboxGroup","allowUncheck","intermediate","global","tempComputed","globalChecked","tempChecked","tempIntermediate","globalIntermediate","tempDisabled","globalDisabled","isChecked","addCheckbox","removeCheckbox","check","checkCheckbox","uncheck","uncheckCheckbox","eventShiftClick","shiftCheckbox","eventLocalClick","shiftKey","toggleCheckbox","eventGlobalClick","toggleAll","updateFromGroup","renderCheckbox","interHtml","checkHtml","renderLabel","align","checkbox","emit","checkboxes","uncheckAll","checkAll","NRadioGroup","addRadio","removeRadio","checkRadio","renderRadio","radio","range","steps","labels","fixmin","fixmax","minmax","getPseudoValue","setModelValue","getValPos","fixed","getValStyle","getBarPos","getBarWidth","getBarStyle","getClosestValue","diff","step","abs","onMouseup","onMousemove","relativeWidth","closestValue","stepMin","stepMax","handleProps","renderHandles","renderBar","barProps","renderSwitch","confirmText","abortText","buttonSize","abort","confirm","renderAction","hover","disabledProp","tempHover","clearCascader","hoverItem","onSelect","clickTimer","lastclick","hoverTimer","fireSelectItem","renderCascade","renderList","onCascaderInput","onCascaderHover","onPopoverInput","itemLabel","arrive","clearArrive","depart","clearDepart","minDate","maxDate","monthPanels","weekdays","months","yearsGrid","tempCache","getYears","monthsGrid","getMonths","Now","tempArrive","tempDepart","tempView","tempRanger","cacheArrive","cacheDepart","gotoDate","gotoMonth","gotoYear","patchDate","resetTime","applyTime","patchMonth","printRange","patchYear","patchRange","renderToolbarPrev","angleLeft","renderToolbarNext","renderToolbarMonth","monthsHtml","month","addMonths","renderToolbarYear","yearsHtml","year","renderToolbar","next","renderDateItem","equalDate","valid","isNotBeforeMin","after","isNotAfterMax","before","renderRangeDateItem","viewMode","isTempValid","between","arriveFirst","renderDate","legendHtml","day","getDatesGrid","panelHtml","prevMonth","nextMonth","renderMonthItem","equal","renderMonth","prevYear","nextYear","renderYearItem","renderYear","prevDecade","nextDecade","placeholderArrive","placeholderDepart","rangeSeparator","boundary","displayFormat","clearDatepicker","clearRangeDatepicker","clearSingleDatepicker","onValueInput","moment","isValid","date","onArriveInput","onDepartInput","onDatepickerInput","onDatepickerDepart","onDatepickerArrive","initialDate","renderRange","arriveProps","departProps","hoursInterval","minutesInterval","secondsInterval","hoursGrid","getHours","minutesGrid","getMinutes","secondsGrid","getSeconds","eventSelect","scrollbars","renderHourItem","hour","renderHourPanel","renderMinuteItem","minute","renderMinutePanel","renderSecondItem","second","renderSecondPanel","clearTimepicker","onTimepickerInput","renderPanel","clearDatetimepicker","renderPanels","renderDatePanel","renderTimePanel","minDuration","maxDuration","negativeText","days","hours","minutes","seconds","editValue","findPattern","text","pattern","replaceAll","humanizeValue","digitizeValue","dmatch","hmatch","mmatch","smatch","clearDurationpicker","onValueChange","onDurationpickerInput","onChange","optionProps","scrollProps","sourceLabel","targetLabel","sourceChecked","selectedSource","tempSource","sourceIntermediate","targetChecked","selectedTarget","tempTarget","targetIntermediate","sourceSearch","searchPattern","targetSearch","moveItemsTarget","moveItemsSource","moveRowTarget","moveRowSource","moveToSource","moveToTarget","updateSelectedSource","updateSelectedTarget","renderSourceSelect","renderSourceTitle","counterHtml","renderSourceHeader","renderSourceSearch","renderSourceBody","onMove","renderTargetSelect","renderTargetTitle","renderTargetHeader","renderTargetSearch","renderTargetBody","renderMoveSource","renderMoveTarget","dom","form","errors","ignore","forceChange","forceErrors","groups","blocked","ready","emitChange","resetChange","registerGroup","unregisterGroup","is","addItem","removeItem","prevState","nextState","attrs","kind","tooltip","tooltipPosition","collapseGroup","renderCollapse","renderText","textHtml","action","renderTooltip","NTabs","NTabsItem","tooltipWindow","conditional","conditionOn","conditionOff","enabled","toggleCondition","$input","gotoInput","changeTab","renderCondition","renderError","loop","bindInviewEvent","menu","inview","inviewY","renderMenu","renderMenus","NFrame","resize","itemResize","itemScrollbar","renderDiv","renderResizer","float","addTab","tab","$forceUpdate","removeTab","getTab","updateEvent","currentTab","sorted","renderHeaderIndicator","tabs","preload","keep","renderHeaderIcon","renderHeaderLabel","NTags","tags","addTag","removeTag","color","NCollapse","showTab","hideTab","toggleTab","NCollapseItem","dragger","renderHeaderAngle","angle","showDelay","NTable","sortProp","sortDir","closeFilterOnEnter","tempVisibleProps","tempSortProp","tempSortDir","tempFilter","tempFilterProps","makeVisibleProps","detectVisible","addColumn","column","removeColumn","getColumnIndex","getColumnVisiblity","getColumnSorted","getColumnFilter","filterProp","property","getColumnFiltered","detectVisibity","intersect","extract","sortByColumn","dir","replaceFilter","filters","resetFilter","refreshCurrent","columns","renderContext","defaultRender","draggableHtml","matrixDisabled","breakpoint","previewProp","matrix","matrixProp","fluid","fixedWidth","trueText","falseText","datetimeFormat","matrixValues","NTableColumn","tempWidth","changedStates","sortDirection","flexBasis","renderHeadLabel","renderHeadSort","renderHeadFilter","angleHtml","setFirstState","firstState","extends","TableCell","convertString","convertBoolean","convertDatetime","preview","fit","toggleMatrix","toggleSelect","itemList","currentMatrix","combine","finder","canReset","canApply","getFilterClone","mountFilter","getFilterProp","getDefaultFilter","applyFilter","clearFilter","renderForm","renderApply","renderReset","TableFilter","operator","li","nl","eq","ne","lt","gt","in","ni","page","limit","limitOptions","maxPages","layout","pages","tempLimit","pageOptions","tempPage","forcePage","updatePaginate","paginate","onPrevPage","onPageInput","onNextPage","onFirstPage","onLastPage","onLimitInput","renderLimit","renderCount","renderGoto","renderFirst","angleDoubleLeft","renderLast","angleDoubleRight","renderPage","renderPages","renderSlot","view","className","syncEvent","bindSyncEvent","unbindSyncEvent","setValue","NInfo","infoHtml","InfoField","fileMap","video","font","application","file","thumb","mime","typre","showSrc","tempFile","tempThumb","fileMime","getFileMime","thumbMime","getThumbMime","lightbox","extension","exts","resolveVimeo","resolveYoutube","showLightbox","renderPreview","renderFull","renderLightbox","tempSrc","tempExt","ImageCache","resolveLoad","resolveData","loaded","laod","reader","FileReader","readAsDataURL","provider","resolveType","youtube","vimeo","renderYoutube","renderVimeo","renderPlain","lat","lng","zoom","NMap","callbacks","tempMap","focusMarkers","Map","callback","getMap","onMount","tempMarker","importMarkerPosition","marker","setPosition","updateMarkerPosition","getPosition","initializeMarker","innerHTML","createMarker","addListener","setMarkerByAddress","address","then","Notify","clearableIcon","buttonText","openContext","updateFile","files","clearFile","renderButton","renderHidden","virtualValue","renderStars","rate","renderValue","vars","NDrawer","closeDrawer","NanoImports","App","Alert","globalProperties","EmptyIcon","NConfig","NConfigNext","NBuilder","NRefrencePanel","NRefrencePicker","Scrollbar","Virtualscroller","Draglist","DraglistItem","Draggrid","DraggridItem","Dropzone","Loader","Resizer","Popover","PopoverGroup","PopoverOption","Modal","Button","ButtonGroup","Input","InputNumber","Textarea","Select","SelectOption","Checkbox","CheckboxGroup","NRadio","Slider","Switch","Confirm","CascaderPanel","Cascader","DatepickerPanel","Datepicker","TimepickerPanel","Timepicker","Datetimepicker","Durationpicker","Transfer","Form","FormGroup","FormItem","FormFrame","FormFrameItem","FormMenu","Tabs","TabsItem","Tags","TagsItem","Collapse","CollapseItem","Table","TableColumn","TableCellString","TableCellBoolean","TableCellDatetime","TableCellOption","TableCellImage","TableCellMatrix","TableCellSelect","TableFilterString","TableFilterBoolean","TableFilterDatetime","TableFilterOption","Paginator","Info","InfoColumn","InfoFieldString","InfoFieldBoolean","InfoFieldDatetime","InfoFieldOption","InfoFieldImage","Preview","PreviewPlain","PreviewImage","PreviewVideo","MapMarker","File","Rating","circle","clock","calendar","primary","success","warning","danger","info","angleUp","Settings","notifySize","notifyPosition","Install","pi","CtorMixin","CmerMixin","CsloMixin","NanoModule","Nano"],"sourceRoot":""}
|