@kizmann/nano-ui 0.9.4 → 0.9.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. package/demos/builder.html +18 -8
  2. package/demos/overview.html +1 -1
  3. package/dist/nano-ui.css +1 -1
  4. package/dist/nano-ui.js +2 -2
  5. package/dist/nano-ui.js.map +1 -1
  6. package/dist/themes/dark.css +2 -0
  7. package/dist/themes/light.css +1 -1
  8. package/package.json +1 -1
  9. package/src/config/src/builder/builder.js +85 -16
  10. package/src/config/src/builder/builder.scss +9 -1
  11. package/src/config/src/config/config-next.js +16 -2
  12. package/src/datetimepicker/src/datetimepicker/datetimepicker.scss +2 -2
  13. package/src/empty/src/empty-icon/empty-icon.js +12 -0
  14. package/src/empty/src/empty-icon/empty-icon.scss +10 -0
  15. package/src/preview/src/preview/preview.js +19 -1
  16. package/src/preview/src/preview-image/preview-image.js +2 -1
  17. package/src/select/src/select/select.js +1 -1
  18. package/src/slider/src/slider/slider.scss +1 -6
  19. package/src/table/src/table/table.scss +4 -0
  20. package/src/tags/src/tags-item/tags-item.scss +1 -1
  21. package/themes/macos/alert/index.scss +1 -0
  22. package/themes/macos/alert/src/alert/alert.scss +26 -0
  23. package/themes/macos/button/index.scss +2 -0
  24. package/themes/macos/button/src/button/button.scss +46 -0
  25. package/themes/macos/button/src/button-group/button-group.scss +1 -0
  26. package/themes/macos/cascader/index.scss +2 -0
  27. package/themes/macos/cascader/src/cascader/cascader.scss +46 -0
  28. package/themes/macos/cascader/src/cascader-panel/cascader-panel.scss +14 -0
  29. package/themes/macos/checkbox/index.scss +2 -0
  30. package/themes/macos/checkbox/src/checkbox/checkbox.scss +44 -0
  31. package/themes/macos/checkbox/src/checkbox-group/checkbox-group.scss +1 -0
  32. package/themes/macos/collapse/index.scss +2 -0
  33. package/themes/macos/collapse/src/collapse/collapse.scss +21 -0
  34. package/themes/macos/collapse/src/collapse-item/collapse-item.scss +21 -0
  35. package/themes/macos/confirm/index.scss +1 -0
  36. package/themes/macos/confirm/src/confirm/confirm.scss +13 -0
  37. package/themes/macos/datepicker/index.scss +2 -0
  38. package/themes/macos/datepicker/src/datepicker/datepicker.scss +50 -0
  39. package/themes/macos/datepicker/src/datepicker-panel/datepicker-panel.scss +44 -0
  40. package/themes/macos/datetimepicker/index.scss +1 -0
  41. package/themes/macos/datetimepicker/src/datetimepicker/datetimepicker.scss +67 -0
  42. package/themes/macos/demo/index.scss +1 -0
  43. package/themes/macos/demo/src/demo/demo.scss +22 -0
  44. package/themes/macos/draggable/index.scss +9 -0
  45. package/themes/macos/draggable/src/draggrid/draggrid.scss +13 -0
  46. package/themes/macos/draggable/src/draggrid-item/draggrid-item.scss +65 -0
  47. package/themes/macos/draggable/src/draghandler/draghandler.scss +15 -0
  48. package/themes/macos/draggable/src/draglist/draglist.scss +13 -0
  49. package/themes/macos/draggable/src/draglist-item/draglist-item.scss +72 -0
  50. package/themes/macos/draggable/src/dropzone/dropzone.scss +13 -0
  51. package/themes/macos/durationpicker/index.scss +1 -0
  52. package/themes/macos/durationpicker/src/durationpicker/durationpicker.scss +52 -0
  53. package/themes/macos/empty/index.scss +1 -0
  54. package/themes/macos/empty/src/empty-icon/empty-icon.scss +13 -0
  55. package/themes/macos/file/index.scss +1 -0
  56. package/themes/macos/file/src/file/file.scss +38 -0
  57. package/themes/macos/form/index.scss +3 -0
  58. package/themes/macos/form/src/form/form.scss +1 -0
  59. package/themes/macos/form/src/form-group/form-group.scss +17 -0
  60. package/themes/macos/form/src/form-item/form-item.scss +29 -0
  61. package/themes/macos/index-dark.scss +41 -0
  62. package/themes/macos/index-light.scss +41 -0
  63. package/themes/macos/index.scss +41 -0
  64. package/themes/macos/info/index.scss +3 -0
  65. package/themes/macos/info/src/info/info.scss +5 -0
  66. package/themes/macos/info/src/info-column/info-column.scss +5 -0
  67. package/themes/macos/info/src/info-field/info-field.scss +5 -0
  68. package/themes/macos/input/index.scss +1 -0
  69. package/themes/macos/input/src/input/input.scss +38 -0
  70. package/themes/macos/input-number/index.scss +1 -0
  71. package/themes/macos/input-number/src/input-number/input-number.scss +47 -0
  72. package/themes/macos/loader/index.scss +1 -0
  73. package/themes/macos/loader/src/loader/loader.scss +21 -0
  74. package/themes/macos/map/index.scss +1 -0
  75. package/themes/macos/map/src/map/map.scss +1 -0
  76. package/themes/macos/modal/index.scss +1 -0
  77. package/themes/macos/modal/src/modal/modal.scss +34 -0
  78. package/themes/macos/notification/index.scss +1 -0
  79. package/themes/macos/notification/src/notification/notification.scss +24 -0
  80. package/themes/macos/paginator/index.scss +1 -0
  81. package/themes/macos/paginator/src/paginator/paginator.scss +5 -0
  82. package/themes/macos/popover/index.scss +1 -0
  83. package/themes/macos/popover/src/popover/popover.scss +83 -0
  84. package/themes/macos/radio/index.scss +2 -0
  85. package/themes/macos/radio/src/radio/radio.scss +45 -0
  86. package/themes/macos/radio/src/radio-group/radio-group.scss +1 -0
  87. package/themes/macos/rating/index.scss +1 -0
  88. package/themes/macos/rating/src/rating/rating.scss +18 -0
  89. package/themes/macos/resizer/index.scss +1 -0
  90. package/themes/macos/resizer/src/resizer/resizer.scss +5 -0
  91. package/themes/macos/root/image/empty-default.svg +30 -0
  92. package/themes/macos/root/image/empty-space.svg +34 -0
  93. package/themes/macos/root/image/star-default.svg +10 -0
  94. package/themes/macos/root/vars-dark.scss +220 -0
  95. package/themes/macos/root/vars-light.scss +220 -0
  96. package/themes/macos/root/vars.scss +220 -0
  97. package/themes/macos/scrollbar/index.scss +1 -0
  98. package/themes/macos/scrollbar/src/scrollbar/scrollbar.scss +6 -0
  99. package/themes/macos/select/index.scss +2 -0
  100. package/themes/macos/select/src/select/select.scss +48 -0
  101. package/themes/macos/select/src/select-option/select-option.scss +1 -0
  102. package/themes/macos/slider/index.scss +1 -0
  103. package/themes/macos/slider/src/slider/slider.scss +21 -0
  104. package/themes/macos/switch/index.scss +1 -0
  105. package/themes/macos/switch/src/switch/switch.scss +28 -0
  106. package/themes/macos/table/index.scss +4 -0
  107. package/themes/macos/table/src/table/table.scss +15 -0
  108. package/themes/macos/table/src/table-cell/table-cell.scss +50 -0
  109. package/themes/macos/table/src/table-column/table-column.scss +32 -0
  110. package/themes/macos/table/src/table-filter/table-filter.scss +1 -0
  111. package/themes/macos/tabs/index.scss +2 -0
  112. package/themes/macos/tabs/src/tabs/tabs.scss +21 -0
  113. package/themes/macos/tabs/src/tabs-item/tabs-item.scss +18 -0
  114. package/themes/macos/tags/index.scss +2 -0
  115. package/themes/macos/tags/src/tags/tags.scss +1 -0
  116. package/themes/macos/tags/src/tags-item/tags-item.scss +28 -0
  117. package/themes/macos/textarea/index.scss +1 -0
  118. package/themes/macos/textarea/src/textarea/textarea.scss +30 -0
  119. package/themes/macos/timepicker/index.scss +2 -0
  120. package/themes/macos/timepicker/src/timepicker/timepicker.scss +50 -0
  121. package/themes/macos/timepicker/src/timepicker-panel/timepicker-panel.scss +27 -0
  122. package/themes/macos/transfer/index.scss +1 -0
  123. package/themes/macos/transfer/src/transfer/transfer.scss +18 -0
  124. package/themes/macos/virtualscroller/index.scss +1 -0
  125. package/themes/macos/virtualscroller/src/virtualscroller/virtualscroller.scss +1 -0
  126. package/webpack.config.js +32 -86
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://Nano/webpack/universalModuleDefinition","webpack://Nano/webpack/bootstrap","webpack://Nano/external {\"root\":\"pi\",\"commonjs2\":\"@kizmann/pico-js\",\"commonjs\":\"@kizmann/pico-js\",\"amd\":\"@kizmann/pico-js\"}","webpack://Nano/external {\"root\":\"Vue\",\"commonjs2\":\"vue\",\"commonjs\":\"vue\",\"amd\":\"vue\"}","webpack://Nano/(webpack)/buildin/global.js","webpack://Nano/./src/draggable/src/draghandler/draghandler.js","webpack://Nano/./src/mixins/src/ctor.js","webpack://Nano/./src/config/src/builder/builder.js","webpack://Nano/./src/virtualscroller/src/virtualscroller/virtualscroller.beta.js","webpack://Nano/./src/draggable/src/draglist/draglist.js","webpack://Nano/./src/draggable/src/draglist-item/draglist-item.js","webpack://Nano/./src/draggable/src/draggrid/draggrid.js","webpack://Nano/./src/draggable/src/draggrid-item/draggrid-item.js","webpack://Nano/./src/draggable/src/dropzone/dropzone.js","webpack://Nano/./src/preview/src/preview/preview.js","webpack://Nano/./src/preview/src/preview-video/preview-video.js","webpack://Nano/./src/mixins/src/cmer.js","webpack://Nano/./src/mixins/src/cslo.js","webpack://Nano/./src/index.js","webpack://Nano/./src/config/src/builder/prototypes/html/nano.js","webpack://Nano/./src/config/src/builder/prototypes/html/div.js","webpack://Nano/./src/config/src/builder/prototypes/html/span.js","webpack://Nano/./src/config/src/builder/prototypes/button/n-button.js","webpack://Nano/./src/config/src/builder/prototypes/button/n-button-group.js","webpack://Nano/./src/config/src/builder/prototypes/cascader/n-cascader.js","webpack://Nano/./src/config/src/builder/prototypes/checkbox/n-checkbox.js","webpack://Nano/./src/config/src/builder/prototypes/checkbox/n-checkbox-group.js","webpack://Nano/./src/config/src/builder/prototypes/confirm/n-confirm.js","webpack://Nano/./src/config/src/builder/prototypes/datepicker/n-datepicker.js","webpack://Nano/./src/config/src/builder/prototypes/datetimepicker/n-datetimepicker.js","webpack://Nano/./src/config/src/builder/prototypes/durationpicker/n-durationpicker.js","webpack://Nano/./src/config/src/builder/prototypes/empty/n-empty.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form-group.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form-item.js","webpack://Nano/./src/config/src/builder/prototypes/input/n-input.js","webpack://Nano/./src/config/src/builder/prototypes/input-number/n-input-number.js","webpack://Nano/./src/config/src/builder/prototypes/loader/n-loader.js","webpack://Nano/./src/config/src/builder/prototypes/modal/n-modal.js","webpack://Nano/./src/config/src/builder/prototypes/radio/n-radio.js","webpack://Nano/./src/config/src/builder/prototypes/radio/n-radio-group.js","webpack://Nano/./src/config/src/builder/prototypes/rating/n-rating.js","webpack://Nano/./src/config/src/builder/prototypes/select/n-select.js","webpack://Nano/./src/config/src/builder/prototypes/slider/n-slider.js","webpack://Nano/./src/config/src/builder/prototypes/switch/n-switch.js","webpack://Nano/./src/config/src/builder/prototypes/table/n-table.js","webpack://Nano/./src/config/src/builder/prototypes/table/n-table-column.js","webpack://Nano/./src/config/src/builder/prototypes/tabs/n-tabs.js","webpack://Nano/./src/config/src/builder/prototypes/tabs/n-tabs-item.js","webpack://Nano/./src/config/src/builder/prototypes/tags/n-tags.js","webpack://Nano/./src/config/src/builder/prototypes/tags/n-tags-item.js","webpack://Nano/./src/config/src/builder/prototypes/timepicker/n-timepicker.js","webpack://Nano/./src/config/src/builder/prototypes/transfer/n-transfer.js","webpack://Nano/./src/virtualscroller/index.js","webpack://Nano/./src/draggable/index.js","webpack://Nano/./src/table/src/table/table.js","webpack://Nano/./src/table/src/table-column/table-column.js","webpack://Nano/./src/table/src/table-cell/table-cell.js","webpack://Nano/./src/table/src/table-cell/types/table-cell-string.js","webpack://Nano/./src/table/src/table-cell/types/table-cell-boolean.js","webpack://Nano/./src/table/src/table-cell/types/table-cell-datetime.js","webpack://Nano/./src/table/src/table-cell/types/table-cell-option.js","webpack://Nano/./src/table/src/table-cell/types/table-cell-image.js","webpack://Nano/./src/table/src/table-cell/types/table-cell-matrix.js","webpack://Nano/./src/table/src/table-cell/types/table-cell-select.js","webpack://Nano/./src/table/src/table-filter/table-filter.js","webpack://Nano/./src/table/src/table-filter/types/table-filter-string.js","webpack://Nano/./src/table/src/table-filter/types/table-filter-boolean.js","webpack://Nano/./src/table/src/table-filter/types/table-filter-datetime.js","webpack://Nano/./src/table/src/table-filter/types/table-filter-option.js","webpack://Nano/./src/table/index.js","webpack://Nano/./src/info/src/info/info.js","webpack://Nano/./src/info/src/info-column/info-column.js","webpack://Nano/./src/info/src/info-field/info-field.js","webpack://Nano/./src/info/src/info-field/types/info-field-string.js","webpack://Nano/./src/info/src/info-field/types/info-field-boolean.js","webpack://Nano/./src/info/src/info-field/types/info-field-datetime.js","webpack://Nano/./src/info/src/info-field/types/info-field-option.js","webpack://Nano/./src/info/src/info-field/types/info-field-image.js","webpack://Nano/./src/info/index.js","webpack://Nano/./src/config/src/config/config.js","webpack://Nano/./src/config/src/config/config-next.js","webpack://Nano/./src/config/src/reference-panel/reference-panel.js","webpack://Nano/./src/config/src/reference-picker/reference-picker.js","webpack://Nano/./src/config/index.js","webpack://Nano/./src/popover/src/popover/popover.js","webpack://Nano/./src/popover/src/popover-group/popover-group.js","webpack://Nano/./src/popover/src/popover-option/popover-option.js","webpack://Nano/./src/popover/index.js","webpack://Nano/./src/form/src/form/form.js","webpack://Nano/./src/form/src/form-group/form-group.js","webpack://Nano/./src/form/src/form-item/form-item.js","webpack://Nano/./src/form/index.js","webpack://Nano/./src/button/src/button/button.js","webpack://Nano/./src/button/src/button-group/button-group.js","webpack://Nano/./src/button/index.js","webpack://Nano/./src/select/src/select/select.js","webpack://Nano/./src/select/src/select-option/select-option.js","webpack://Nano/./src/select/index.js","webpack://Nano/./src/checkbox/src/checkbox/checkbox.js","webpack://Nano/./src/checkbox/src/checkbox-group/checkbox-group.js","webpack://Nano/./src/checkbox/index.js","webpack://Nano/./src/radio/src/radio/radio.js","webpack://Nano/./src/radio/src/radio-group/radio-group.js","webpack://Nano/./src/radio/index.js","webpack://Nano/./src/cascader/src/cascader-panel/cascader-panel.js","webpack://Nano/./src/cascader/src/cascader/cascader.js","webpack://Nano/./src/cascader/index.js","webpack://Nano/./src/datepicker/src/datepicker-panel/datepicker-panel.js","webpack://Nano/./src/datepicker/src/datepicker/datepicker.js","webpack://Nano/./src/datepicker/index.js","webpack://Nano/./src/timepicker/src/timepicker-panel/timepicker-panel.js","webpack://Nano/./src/timepicker/src/timepicker/timepicker.js","webpack://Nano/./src/timepicker/index.js","webpack://Nano/./src/tabs/src/tabs/tabs.js","webpack://Nano/./src/tabs/src/tabs-item/tabs-item.js","webpack://Nano/./src/tabs/index.js","webpack://Nano/./src/tags/src/tags/tags.js","webpack://Nano/./src/tags/src/tags-item/tags-item.js","webpack://Nano/./src/tags/index.js","webpack://Nano/./src/collapse/src/collapse/collapse.js","webpack://Nano/./src/collapse/src/collapse-item/collapse-item.js","webpack://Nano/./src/collapse/index.js","webpack://Nano/./src/preview/src/preview-plain/preview-plain.js","webpack://Nano/./src/preview/src/preview-image/preview-image.js","webpack://Nano/./src/preview/index.js","webpack://Nano/./src/map/src/map/map.js","webpack://Nano/./src/map/src/map-marker/map-marker.js","webpack://Nano/./src/map/index.js","webpack://Nano/./src/alert/src/alert/alert.js","webpack://Nano/./src/alert/index.js","webpack://Nano/./src/notification/src/notification/notification.js","webpack://Nano/./src/notification/index.js","webpack://Nano/./src/empty/src/empty-icon/empty-icon.js","webpack://Nano/./src/empty/index.js","webpack://Nano/./src/scrollbar/src/scrollbar/scrollbar.next.js","webpack://Nano/./src/scrollbar/index.js","webpack://Nano/./src/loader/src/loader/loader.js","webpack://Nano/./src/loader/index.js","webpack://Nano/./src/resizer/src/resizer/resizer.js","webpack://Nano/./src/resizer/index.js","webpack://Nano/./src/modal/src/modal/modal.js","webpack://Nano/./src/modal/index.js","webpack://Nano/./src/input/src/input/input.js","webpack://Nano/./src/input/index.js","webpack://Nano/./src/input-number/src/input-number/input-number.js","webpack://Nano/./src/input-number/index.js","webpack://Nano/./src/textarea/src/textarea/textarea.js","webpack://Nano/./src/textarea/index.js","webpack://Nano/./src/slider/src/slider/slider.js","webpack://Nano/./src/slider/index.js","webpack://Nano/./src/switch/src/switch/switch.js","webpack://Nano/./src/switch/index.js","webpack://Nano/./src/confirm/src/confirm/confirm.js","webpack://Nano/./src/confirm/index.js","webpack://Nano/./src/datetimepicker/src/datetimepicker/datetimepicker.js","webpack://Nano/./src/datetimepicker/index.js","webpack://Nano/./src/durationpicker/src/durationpicker/durationpicker.js","webpack://Nano/./src/durationpicker/index.js","webpack://Nano/./src/transfer/src/transfer/transfer.js","webpack://Nano/./src/transfer/index.js","webpack://Nano/./src/paginator/src/paginator/paginator.js","webpack://Nano/./src/paginator/index.js","webpack://Nano/./src/file/src/file/file.js","webpack://Nano/./src/file/index.js","webpack://Nano/./src/rating/src/rating/rating.js","webpack://Nano/./src/rating/index.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__0__","__WEBPACK_EXTERNAL_MODULE__1__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","g","this","Function","e","global","dragMods","NDragCounter","_createClass","_classCallCheck","_defineProperty","$el","Dom","make","classList","appendTo","document","body","event","count","update","html","concat","Locale","choice","dataTransfer","setData","setDragImage","keyMods","Arr","has","push","attr","join","DragCounter","NDragIndicator","parent","safezone","el","strategy","arguments","length","undefined","rect","getBoundingClientRect","clientY","y","height","find","hasClass","show","hide","offsetTop","style","top","css","Obj","map","item","remove","NDraghandler","rootNode","_this$bindDragstart","_this","frame","DragIndicator","DragCache","bindDragstart","apply","_toConsumableArray","on","onDragenterRoot","onDragoverRoot","onDragleaveRoot","onDragendRoot","onDragdropRoot","Event","uid","bindDragend","bindDragdrop","off","unbind","preventDefault","_this2","target","closest","cacheNodes","frames","Date","now","allowDrop","Any","isFunction","rainbow","each","node","addClass","removeClass","fire","moveNodes","group","cache","allowGroups","JSON","parse","stringify","dragcount","dropNodes","tempSelected","$emit","removeNode","clone","items","unlinkNodes","removeNodes","_this3","isSelected","id","virtuals","uniqueProp","route","_this4","clientHeight","resolve","targetNode","isInSelf","cascade","_this5","childNodes","unbindNode","$handle","handle","onDragstartNode","onDragenterNode","onDragoverNode","onDragleaveNode","onDragendNode","onDragdropNode","moveNodesMany","moveNodesOne","_this6","insertNode","moveNodesRoot","source","first","_this7","transformDrop","moveNodesInto","moveNodesBefore","moveNodesAfter","sources","eventName","set","_this8","prop","filter","childProp","disableMove","targetRoute","children","replace","index","splice","except","UUID","_this9","_len","props","Array","_key","reduce","merge","reduceItem","Num","depth","cascades","unique","tempCascade","virtual","last","isEmpty","ctor","fallback","$options","split","args","_isSlot","toString","_isVNode","NanoBuilderPropType","trans","NanoBuilderPropCode","NanoBuilderProps","for","type","vIf","vShow","NanoBuilderTypes","NanoBuilderIndexies","modelValue","scope","model","renderDemo","Boolean","renderExport","data","init","demo","collapse","safevar","normalizeModel","watch","mounted","methods","exportJson","matches","exportExecutable","result","assign","normalizeChild","order","vals","child","applyProps","_objectSpread","content","builder","buildProps","match","getOriginalValue","safevalue","btoa","getSafeValue","string","_typeof","getRealValue","realvalue","code","number","console","log","atob","original","changeElement","newKey","unset","k","changeAlias","val","bindValue","error","only","sey","isString","isObject","$nextTick","addProp","removeProp","collapseElement","toggle","addElement","removeElement","moveupElement","_ref","childs","close","Number","MIN_VALUE","sub","Math","max","replacement","movedownElement","_ref2","MAX_VALUE","min","renderTools","rootProps","collapseProps","href","addProps","removeProps","moveupProps","movedownProps","_createVNode","_mergeProps","renderProp","$data","typeProps","size","options","keyProps","allowCreate","optionsLabel","codeProps","valueInputProps","valueHtml","_resolveComponent","$event","fallbackProps","minRows","autoRows","_createTextVNode","renderProps","elementProps","aliasProps","link","renderElement","renderBuilder","sort","v","renderBody","renderHead","_slot","_slot2","addHtml","demoProps","demoHtml","renderOutput","_slot3","_this10","renderFunction","$slots","_ref3","render","configProps","config","width","DEBUG_NVSCROLL","inject","NDraggable","default","itemHeight","itemWidth","renderNode","deathzone","overflowY","overflowX","offsetY","offsetX","threshold","framerate","useKeys","state","start","end","grid","buffer","load","updateRender","beforeMount","scrollTop","bindAdaptScroll","beforeUnmount","unbindAdaptScroll","refreshScroll","setInterval","onScrollupdate","clearInterval","isIndexRendered","scrollIntoView","$refs","scrollbar","scrollToIndex","selector","delay","onScrollToIndex","total","ceil","floor","targetTop","scrollTo","x","onScrollTo","clearState","async","refreshDriver","offset","offsetHeight","inner","scrollHeight","onSizechange","queue","timer","clearTimeout","to","setTimeout","bufferItems","round","isEqual","renderItem","passed","topOffset","renderRows","slice","renderGridRows","counter","chunk","renderGrid","chunks","renderItems","empty","totalHeight","DEBUG_NDLIST","draggable","String","current","selected","expanded","lazyload","showEmptyIcon","itemOffset","scrollTopOnChange","renderCurrent","renderHandle","renderSelect","renderExpand","allowSelect","allowDrag","keyEvents","highlightTimeout","provide","modifier","visible","highlight","firstSelected","lastSelected","tempCurrent","tempExpanded","drag","watchModifierDown","_","watchModifierUp","virtualscroller","bindRoot","$watch","watchSelected","deep","refreshVirtuals","unbindRoot","filterVirtuals","add","which","updateNode","findVirtual","contains","getIndex","findIndex","getCurrentIndex","isDraggable","canDrag","isHighlight","highlightNode","refresh","recursive","scrollToHighlight","isCurrent","setCurrent","setRawCurrent","setNextCurrent","setPrevCurrent","reset","syncCurrent","isDisabled","canSelect","hasChildren","getChildren","isExpanded","expandItem","expandCurrent","isTotalSelected","isInterSelected","toggleSingleNode","toggleRangeNode","indexies","reversed","selectItem","selectAll","row","unselectAll","bindKeydown","onKeydown","unbindKeydown","stopPropagation","renderEmpty","$props","onMouseenter","onMouseleave","NDraggableItem","required","computed","touch","navigator","msMaxTouchPoints","mousedown","mousemove","mouseup","bindNode","copy","copyNode","onClick","onDblclick","renderSpacer","nano","Icons","Str","ucfirst","angleRight","checked","NDropzone","fileMap","image","video","font","text","application","file","thumb","fit","preview","typre","showSrc","tempFile","tempThumb","fileMime","getFileMime","thumbMime","getThumbMime","lightbox","extension","exts","resolveVimeo","resolveYoutube","showLightbox","renderPreview","renderFull","renderLightbox","slots","raw","url","path","src","provider","tempSrc","resolveType","resolveData","youtube","vimeo","renderYoutube","renderVimeo","renderPlain","cmer","attrsList","isArray","isPlain","$attrs","cslo","slot","Comment","circle","intermediate","clock","calendar","times","primary","success","warning","danger","info","angleUp","angleDown","angleLeft","angleDoubleLeft","angleDoubleRight","Settings","iconPosition","notifySize","notifyPosition","Install","App","pi","globalProperties","CtorMixin","CmerMixin","CsloMixin","Nano","NanoPrototypeSizes","NanoPrototypeTypes","NanoPrototypeBools","square","disabled","icon","nativeType","click","label","placeholder","iconDisabled","iconClick","clearValue","clearable","stepSize","precision","format","decimals","onValue","offValue","onType","offType","component","Virtualscroller","Draglist","DraglistItem","Draggrid","DraggridItem","Dropzone","NTable","sortProp","sortDir","closeFilterOnEnter","elements","tempVisible","tempVisibleProps","tempSortProp","tempSortDir","tempFilter","tempFilterProps","makeVisibleProps","detectVisible","addColumn","column","removeColumn","getColumnIndex","getColumnVisiblity","getColumnSorted","getColumnFilter","filterProp","getColumnFiltered","detectVisibity","intersect","extract","onResize","sortByColumn","dir","replaceFilter","search","filters","resetFilter","refreshCurrent","columns","values","renderContext","defaultRender","_len2","_key2","draggableHtml","tooltip","align","breakpoint","previewProp","matrix","matrixProp","optionsValue","fluid","fixedWidth","minWidth","maxWidth","emptyText","undefinedText","trueText","falseText","datetimeFormat","allowUncheck","matrixValues","NTableColumn","tempWidth","changedStates","sortDirection","flexBasis","onMousedown","renderHeadLabel","labelHtml","renderHeadSort","renderHeadFilter","angleHtml","resolveComponent","h","class","input","setFirstState","firstState","extends","TableCell","convertString","convertBoolean","convertDatetime","renderOption","$value","$index","option","toggleMatrix","toggleSelect","itemList","currentMatrix","combine","finder","isChecked","canReset","canApply","getFilterClone","mountFilter","getFilterProp","getDefaultFilter","applyFilter","clearFilter","popover","renderForm","renderApply","renderReset","renderFooter","trigger","footer","TableFilter","operator","li","nl","eq","ne","lt","gt","in","ni","Table","TableColumn","TableCellString","TableCellBoolean","TableCellDatetime","TableCellOption","TableCellImage","TableCellMatrix","TableCellSelect","TableFilterString","TableFilterBoolean","TableFilterDatetime","TableFilterOption","syncEvent","relative","tempValue","bindSyncEvent","unbindSyncEvent","updated","adaptHeight","setValue","NInfo","infoHtml","renderLabel","InfoField","Info","InfoColumn","InfoFieldString","InfoFieldBoolean","InfoFieldDatetime","InfoFieldOption","InfoFieldImage","solveAwait","$$scope","$$value","solveValue","solveEvent","$configRefs","solveContent","_len3","_key3","$render","prepareValue","veModel","deepSet","inputClosure","closure","obj","keys","shift","renderLayer","setup","vAwait","$on","display","resolved","extraValue","sempValue","propAwait","getState","propExists","exists","solveInput","$scope","$model","$extra","$global","toPropKey","splits","lcfirst","toEventKey","cb","solveContext","getProp","getInput","isNull","setInput","renderSetup","alias","defaultsBind","binds","events","updateKey","modelTree","buildTree","scopeTree","ref","submitItem","renderLeaf","renderTree","childItems","childHtml","renderModel","modelHtml","renderScope","scopeHtml","modal","updateValue","renderModal","modalProps","panelProps","renderInput","inputProps","NConfig","NConfigNext","NBuilder","NRefrencePanel","NRefrencePicker","NPopover","listen","position","scrollClose","multiClose","clientX","prevent","refreshVisible","previous","append","onHover","onContext","onExit","onCloseEvent","active","open","pause","unpause","stopRefreshInterval","startRefreshInterval","passedOffset","updatePosition","isSameOffset","isSameSize","passedSize","getTargetHorizontal","targetRect","left","windowRect","posY","posX","center","inverse","broken","innerHeight","innerWidth","clientWidth","getTargetVertical","getTargetOffset","scroll","zIndex","isScrollClose","keyCode","header","viewBody","tempSize","focus","imagePosition","clickClose","renderImage","renderIcon","renderContent","Popover","PopoverGroup","PopoverOption","inheritAttrs","dom","form","errors","ignore","forceChange","forceErrors","blocked","NForm","ready","emitChange","resetChange","onSubmit","is","addItem","removeItem","timeout","prevState","nextState","attrs","tooltipPosition","collapseGroup","renderCollapse","renderText","textHtml","renderAction","action","renderTooltip","NTabs","NTabsItem","NFormItem","tooltipWindow","conditional","conditionOn","conditionOff","enabled","toggleCondition","focusInput","$input","gotoInput","changeTab","renderCondition","renderError","Form","FormGroup","FormItem","innerHtml","Button","ButtonGroup","lazy","multiple","collapseText","optionsDisabled","deepDisabled","custom","element","tempClear","searched","generateOptions","searchOptions","NSelect","scrollToClosest","clear","tempLabel","addOption","removeOption","resetInput","onFocusInput","onInputInput","onKeydownInput","createOrToggle","selectPrev","selectNext","searchRegex","RegExp","toggleOption","denyUpdate","getOptionLabel","newIndex","scrollToCurrent","createOption","virtualbar","select","renderLabelClear","renderLabelAngle","renderLabelItem","renderLabelCollapse","firstHtml","renderLabelItems","renderMultiple","isEmptyValue","isNumber","onFocus","onInput","inputHtml","renderSingle","modelLabel","renderDisplay","displayHtml","emptyHtml","renderLazyOption","isMultipleActive","isSingleActive","renderLazyItems","renderPopover","onClose","renderOptions","valueProp","labelProp","toggleItem","Select","SelectOption","NCheckboxGroup","tempComputed","globalChecked","tempChecked","tempIntermediate","globalIntermediate","tempDisabled","globalDisabled","addCheckbox","removeCheckbox","check","checkCheckbox","uncheck","uncheckCheckbox","eventShiftClick","shiftCheckbox","eventLocalClick","shiftKey","toggleCheckbox","eventGlobalClick","toggleAll","updateFromGroup","renderCheckbox","interHtml","checkHtml","checkbox","emit","checkboxes","uncheckAll","checkAll","Checkbox","CheckboxGroup","NRadioGroup","addRadio","removeRadio","checkRadio","renderRadio","radio","NRadio","hover","disabledProp","tempHover","clearCascader","hoverItem","onSelect","clickTimer","lastclick","hoverTimer","fireSelectItem","onMousemove","renderCascade","renderList","onCascaderInput","onCascaderHover","onPopoverInput","itemLabel","CascaderPanel","Cascader","arrive","clearArrive","depart","clearDepart","minDate","maxDate","range","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","renderToolbarNext","renderToolbarMonth","monthsHtml","month","addMonths","renderToolbarYear","yearsHtml","year","renderToolbar","prev","next","renderDateItem","equalDate","valid","isNotBeforeMin","after","isNotAfterMax","before","renderRangeDateItem","viewMode","isTempValid","between","arriveFirst","renderDate","legendHtml","day","bodyHtml","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","DatepickerPanel","Datepicker","hoursInterval","minutesInterval","secondsInterval","hoursGrid","getHours","minutesGrid","getMinutes","secondsGrid","getSeconds","eventSelect","scrollbars","renderHourItem","hour","renderHourPanel","renderMinuteItem","minute","renderMinutePanel","renderSecondItem","second","renderSecondPanel","clearTimepicker","onTimepickerInput","renderPanel","TimepickerPanel","Timepicker","addTab","tab","$forceUpdate","removeTab","getTab","updateEvent","currentTab","sorted","renderHeaderIndicator","transform","renderHeader","tabs","preload","keep","renderHeaderIcon","renderHeaderLabel","Tabs","TabsItem","NTags","tags","addTag","removeTag","color","Tags","TagsItem","NCollapse","showTab","hideTab","toggleTab","NCollapseItem","dragger","renderHeaderAngle","angle","showDelay","Collapse","CollapseItem","tempExt","ImageCache","resolveLoad","loaded","laod","reader","FileReader","onload","readAsDataURL","Preview","PreviewPlain","PreviewImage","PreviewVideo","lat","lng","zoom","NMap","callbacks","tempMap","focusMarkers","Map","callback","getMap","onMount","tempMarker","importMarkerPosition","marker","setPosition","updateMarkerPosition","getPosition","initializeMarker","innerHTML","createMarker","addListener","debounce","setMarkerByAddress","address","then","Notify","MapMarker","AlertFrame","iconPrimary","iconSecondary","iconSuccess","iconWarning","iconDanger","iconInfo","Alert","backdrop","onclick","getIcon","alert","_construct","Notification","duration","wrapper","getWrapper","notifications","Notifcation","EmptyIcon","NScrollbar","fixture","allowNative","wrapClass","native","adaptScrollBehavior","bindAdaptHeight","bindAdaptWidth","passive","onUpdate","onScroll","passedHeight","passedWidth","unbindAdaptHeight","unbindAdaptWidth","scrollLeft","onScrollIntoView","outerHeight","outerWidth","offsetLeft","$dom","offsetWidth","adaptScrollHeight","virtualHeight","barHeight","maxHeight","heightRatio","vbar","hasVtrack","adaptScrollPosition","adaptScrollWidth","scrollWidth","virtualWidth","barWidth","widthRatio","hbar","hasHtrack","vbarTop","hbarLeft","cacheChildEl","cacheWindwoEl","windowCache","spacer","refreshHeight","adaptWidth","resizeTimer","refreshWidth","$inner","actual","getTouchEvent","touches","changedTouches","onVbarMousedown","onVbarMousemove","onVbarMouseup","onHbarMousedown","onHbarMousemove","onHbarMouseup","WIN","vbarProps","hbarProps","Scrollbar","NLoader","minimum","applyTimer","timing","startTimer","restartTimer","Loader","resizerWidth","sizeFixed","updateWidth","bindSizechange","forceWidth","unmounted","unbindSizechange","flex","updateHandle","onLeftMousedown","onLeftMouseup","onLeftMousemove","scrollX","targetWidth","frameStyle","onRightMousedown","onRightMouseup","onRightMousemove","Resizer","title","closable","renderClose","startRefreshTimeout","NModal","eventClick","eventKeydown","openModal","force","closeModal","stopRefreshTimeout","queueRefreshTimeout","indexes","renderFrame","renderBackdrop","Modal","onIconClick","onBlur","Input","getValue","getDisplayValue","nextStep","isNaN","toFixed","onNextDown","nextTimeout","nextInterval","onNextUp","prevStep","onPrevDown","prevTimeout","prevInterval","onPrevUp","regex","renderPrev","renderNext","renderClear","InputNumber","maxRows","maxLength","eventInput","rows","currentRows","Textarea","steps","labels","fixmin","fixmax","minmax","getPseudoValue","setModelValue","getValPos","fixed","getValStyle","getBarPos","getBarWidth","getBarStyle","getClosestValue","diff","step","abs","onMouseup","relativeWidth","closestValue","stepMin","stepMax","handleProps","renderHandles","renderBar","barProps","Slider","renderSwitch","Switch","confirmText","abortText","buttonSize","abort","confirm","Confirm","clearDatetimepicker","renderPanels","renderDatePanel","renderTimePanel","Datetimepicker","minDuration","maxDuration","negativeText","days","hours","minutes","seconds","editValue","findPattern","pattern","replaceAll","humanizeValue","digitizeValue","dmatch","hmatch","mmatch","smatch","clearDurationpicker","onValueChange","onDurationpickerInput","onChange","optionProps","scrollProps","Durationpicker","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","Transfer","page","limit","limitOptions","maxPages","layout","pages","tempLimit","pageOptions","tempPage","forcePage","updatePaginate","paginate","onPrevPage","onPageInput","onNextPage","onFirstPage","onLastPage","onLimitInput","renderLimit","renderCount","renderGoto","renderFirst","renderLast","renderPage","renderPages","renderSlot","view","className","Paginator","clearableIcon","buttonText","openContext","updateFile","files","clearFile","renderButton","renderHidden","File","virtualValue","renderStars","rate","renderValue","vars","Rating"],"mappings":"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","file":"nano-ui.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})(window, function(__WEBPACK_EXTERNAL_MODULE__0__, __WEBPACK_EXTERNAL_MODULE__1__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 16);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","import { Arr, Obj, Num, Any, Dom, Event, Locale, UUID } from \"@kizmann/pico-js\";\n\nglobal.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 global.dragMods = global.keyMods;\n\n let classList = [\n 'n-draggable__counter'\n ];\n\n if ( Arr.has(global.dragMods, 18) ) {\n classList.push('n-modify--alt');\n }\n\n if ( Arr.has(global.dragMods, 17) ) {\n classList.push('n-modify--ctrl');\n }\n\n if ( Arr.has(global.dragMods, 91) ) {\n classList.push('n-modify--meta');\n }\n\n this.$el.attr('class', classList.join(' '));\n }\n\n}\n\nglobal.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 ( global.DragCache ) {\n this.bindDragstart.call(this, ...global.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 global.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 global.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 global.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(global.dragMods, 18) ) {\n eventName = 'moveAlt';\n }\n\n if ( Arr.has(global.dragMods, 17) ) {\n eventName = 'moveCtrl';\n }\n\n if ( Arr.has(global.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 { 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, Dom, Any, Locale, Obj, UUID, Num } from \"@kizmann/pico-js\";\n\nglobal.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\nglobal.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\nglobal.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\nglobal.NanoBuilderTypes = {\n //\n};\n\nglobal.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 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\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 console.log('num', prop.value, realvalue)\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 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 let group = key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$1')\n let value = Obj.get(this.$data, `${key}.builder.${sub}`, {});\n\n let props = Obj.clone(Obj.get(global.NanoBuilderIndexies, `${group}.props`, {}));\n\n props = Obj.assign({}, global.NanoBuilderProps, props);\n\n Obj.each(props, (prop, index) => {\n console.log(prop.for, index, value.type)\n if ( ! Any.isEmpty(prop.for) && ! Arr.has(prop.for, value.type) ) {\n props = Obj.unset(props, index);\n }\n });\n\n console.log(props);\n\n let typeProps = {\n size: 'sm', options: global.NanoBuilderPropType\n };\n\n typeProps['onUpdate:modelValue'] = () => {\n 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: global.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: global.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['onBlur'] = (e) => {\n this.changeAlias(key, e.target.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 <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 return (\n <div class={classList}>\n {this.ctor('renderTools')(el, value, key)}\n {this.ctor('renderProps')(el, value, key)}\n {this.ctor('renderBuilder')(value.content || {}, `${key}.content`)}\n </div>\n );\n },\n\n renderBuilder(el, key)\n {\n if ( Any.isEmpty(el) ) {\n return null;\n }\n\n return (\n <div class=\"n-builder__frame\">\n {Arr.each(Obj.sort(Obj.clone(el), 'order'), (v) => this.ctor('renderElement')(Obj.get(this.$data, key, {}), Obj.get(this.$data, [key, v._key], {}), `${key}.${v._key}`))}\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, Dom } from \"@kizmann/pico-js\";\n\nglobal.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 { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler\";\n\nglobal.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 ( global.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(global.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\";\n\nglobal.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 ( global.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(global.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\";\n\nglobal.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 { 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 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 ( global.resolveVimeo(file) ) {\n fallback = 'video';\n }\n\n if ( global.resolveYoutube(file) ) {\n fallback = 'video';\n }\n\n return fallback;\n },\n\n getThumbMime(fallback = null)\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 return (\n <div class={classList} {...props}>\n { [this.ctor('renderPreview')(), this.ctor('renderLightbox')()] }\n </div>\n );\n }\n\n}","import { Obj, Arr, Str, Any, Dom } from \"@kizmann/pico-js\";\n\nglobal.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\nglobal.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 = global.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 = global.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, 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","import { Arr, Obj, Dom, Locale } from \"@kizmann/pico-js\";\n\nimport CtorMixin from \"./mixins/src/ctor\";\nimport CmerMixin from \"./mixins/src/cmer\";\nimport CsloMixin from \"./mixins/src/cslo\";\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 = {}, Styles = {})\n{\n /**\n * @const global.pi\n */\n\n if ( typeof global.pi === 'undefined' ) {\n return console.error('pico-js is not available.');\n }\n\n Obj.each(global.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 global.nano.Icons = Obj.assign(Icons, global.nano.Icons);\n global.nano.Settings = Obj.assign(Settings, global.nano.Settings);\n\n require('./alert/index').default(App);\n require('./notification/index').default(App);\n require('./empty/index').default(App);\n require('./config/index').default(App); //!complex 17.1\n require('./scrollbar/index').default(App);\n require('./virtualscroller/index').default(App);\n require('./draggable/index').default(App);\n require('./loader/index').default(App);\n require('./resizer/index').default(App);\n require('./popover/index').default(App);\n require('./modal/index').default(App);\n require('./button/index').default(App);\n require('./input/index').default(App);\n require('./input-number/index').default(App);\n require('./textarea/index').default(App);\n require('./select/index').default(App);\n require('./checkbox/index').default(App);\n require('./radio/index').default(App);\n require('./slider/index').default(App);\n require('./switch/index').default(App);\n require('./confirm/index').default(App);\n require('./cascader/index').default(App);\n require('./datepicker/index').default(App);\n require('./timepicker/index').default(App);\n require('./datetimepicker/index').default(App);\n require('./durationpicker/index').default(App);\n require('./transfer/index').default(App);\n require('./form/index').default(App); // check\n require('./tabs/index').default(App);\n require('./tags/index').default(App);\n require('./collapse/index').default(App);\n require('./table/index').default(App); // 18.1 options\n require('./paginator/index').default(App);\n require('./info/index').default(App); //!complex 16.1\n require('./preview/index').default(App);\n require('./map/index').default(App);\n require('./file/index').default(App);\n require('./rating/index').default(App);\n\n // require('./chart/index'); // Ignore\n // require('./wysiwyg/index'); // Ignore\n}\n\nexport const Nano = {\n Icons: Icons, Settings: Settings, Install: Install\n};\n\nglobal.keyMods = [];\n\nDom.find(document).on('keydown', (event) => {\n Arr.add(global.keyMods, event.which);\n});\n\nDom.find(document).on('keyup', (event) => {\n Arr.remove(global.keyMods, event.which);\n});\n\nDom.find(document).on('dragstart', (event) => {\n Arr.add(global.keyMods, event.which);\n});\n\nDom.find(document).on('dragend', (event) => {\n global.keyMods = [];\n});\n\nif ( typeof global.nano === 'undefined' ) {\n global.nano = Nano;\n}\n\nexport default Nano;\n","global.NanoPrototypeSizes = [\n 'xs', 'sm', 'md', 'lg'\n];\n\nglobal.NanoPrototypeTypes = [\n 'primary', 'secondary', 'success', 'warning', 'danger', 'info'\n];\n\nglobal.NanoPrototypeBools = [\n 'true', 'false'\n];","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['div'] = Locale.trans('div');\n\nglobal.NanoBuilderIndexies['div'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['div']['props'] = {\n classList: {\n type: 'String'\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['span'] = Locale.trans('span');\n\nglobal.NanoBuilderIndexies['span'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['span']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NButton'] = Locale.trans('NButton');\n\nglobal.NanoBuilderIndexies['NButton'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NButton']['props'] = {\n size: {\n for: ['binds', 'props'], type: 'String', options: global.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], type: 'String', options: global.NanoPrototypeTypes\n },\n link: {\n for: ['binds', 'props'], type: 'Boolean', options: global.NanoPrototypeBools\n },\n square: {\n for: ['binds', 'props'], type: 'Boolean', options: global.NanoPrototypeBools\n },\n disabled: {\n for: ['binds', 'props'], type: 'Boolean', options: global.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\nglobal.NanoBuilderTypes['NButtonGroup'] = Locale.trans('n-button-group');\n\nglobal.NanoBuilderIndexies['NButtonGroup'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NButtonGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NCascader'] = Locale.trans('n-cascader');\n\nglobal.NanoBuilderIndexies['NCascader'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NCascader']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NCheckbox'] = Locale.trans('n-checkbox');\n\nglobal.NanoBuilderIndexies['NCheckbox'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NCheckbox']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NCheckboxGroup'] = Locale.trans('NCheckboxGroup');\n\nglobal.NanoBuilderIndexies['NCheckboxGroup'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NCheckboxGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NConfirm'] = Locale.trans('n-confirm');\n\nglobal.NanoBuilderIndexies['NConfirm'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NConfirm']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NDatepicker'] = Locale.trans('NDatepicker');\n\nglobal.NanoBuilderIndexies['NDatepicker'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NDatepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NDatetimepicker'] = Locale.trans('NDatetimepicker');\n\nglobal.NanoBuilderIndexies['NDatetimepicker'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NDatetimepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NDurationpicker'] = Locale.trans('NDurationpicker');\n\nglobal.NanoBuilderIndexies['NDurationpicker'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NDurationpicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NEmpty'] = Locale.trans('NEmpty');\n\nglobal.NanoBuilderIndexies['NEmpty'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NEmpty']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NForm'] = Locale.trans('NForm');\n\nglobal.NanoBuilderIndexies['NForm'] = {\n childs: true, props: {}\n};\n\nglobal.NanoBuilderIndexies['NForm']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NFormGroup'] = Locale.trans('NFormGroup');\n\nglobal.NanoBuilderIndexies['NFormGroup'] = {\n childs: true, props: {}\n};\n\nglobal.NanoBuilderIndexies['NFormGroup']['props'] = {\n label: {\n for: ['binds', 'props'], type: 'String'\n }\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NFormItem'] = Locale.trans('NFormItem');\n\nglobal.NanoBuilderIndexies['NFormItem'] = {\n childs: true, props: {}\n};\n\nglobal.NanoBuilderIndexies['NFormItem']['props'] = {\n label: {\n for: ['binds', 'props'], type: 'String'\n }\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NInput'] = Locale.trans('NInput');\n\nglobal.NanoBuilderIndexies['NInput'] = {\n childs: false, props: {}\n};\n\nglobal.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: global.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], default: 'primary', type: 'String', options: global.NanoPrototypeTypes\n },\n disabled: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: global.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: global.NanoPrototypeBools\n },\n iconClick: {\n for: ['on'], type: 'String'\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NInputNumber'] = Locale.trans('NInputNumber');\n\nglobal.NanoBuilderIndexies['NInputNumber'] = {\n childs: false, props: {}\n};\n\nglobal.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: global.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: global.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], default: 'primary', type: 'String', options: global.NanoPrototypeTypes\n },\n disabled: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: global.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};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NLoader'] = Locale.trans('NLoader');\n\nglobal.NanoBuilderIndexies['NLoader'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NLoader']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NModal'] = Locale.trans('NModal');\n\nglobal.NanoBuilderIndexies['NModal'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NModal']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NRadio'] = Locale.trans('NRadio');\n\nglobal.NanoBuilderIndexies['NRadio'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NRadio']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NRadioGroup'] = Locale.trans('NRadioGroup');\n\nglobal.NanoBuilderIndexies['NRadioGroup'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NRadioGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NRating'] = Locale.trans('NRating');\n\nglobal.NanoBuilderIndexies['NRating'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NRating']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NSelect'] = Locale.trans('NSelect');\n\nglobal.NanoBuilderIndexies['NSelect'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NSelect']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NSlider'] = Locale.trans('NSlider');\n\nglobal.NanoBuilderIndexies['NSlider'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NSlider']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NSwitch'] = Locale.trans('NSwitch');\n\nglobal.NanoBuilderIndexies['NSwitch'] = {\n childs: true, props: {}\n};\n\nglobal.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: global.NanoPrototypeTypes\n },\n offType: {\n for: ['binds', 'props'], type: 'String', options: global.NanoPrototypeTypes\n },\n size: {\n for: ['binds', 'props'], type: 'String', options: global.NanoPrototypeSizes\n },\n disabled: {\n for: ['binds', 'props'], type: 'Boolean', options: global.NanoPrototypeBools\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NTable'] = Locale.trans('NTable');\n\nglobal.NanoBuilderIndexies['NTable'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NTable']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NTableColumn'] = Locale.trans('NTableColumn');\n\nglobal.NanoBuilderIndexies['NTableColumn'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NTableColumn']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NTabs'] = Locale.trans('NTabs');\n\nglobal.NanoBuilderIndexies['NTabs'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NTabs']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NTabsItem'] = Locale.trans('NTabsItem');\n\nglobal.NanoBuilderIndexies['NTabsItem'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NTabsItem']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NTags'] = Locale.trans('NTags');\n\nglobal.NanoBuilderIndexies['NTags'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NTags']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NTagsItem'] = Locale.trans('NTagsItem');\n\nglobal.NanoBuilderIndexies['NTagsItem'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NTagsItem']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NTimepicker'] = Locale.trans('NTimepicker');\n\nglobal.NanoBuilderIndexies['NTimepicker'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NTimepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NTransfer'] = Locale.trans('NTransfer');\n\nglobal.NanoBuilderIndexies['NTransfer'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NTransfer']['props'] = {\n //\n};","import Virtualscroller from './src/virtualscroller/virtualscroller.beta';\n\nexport default function (App) {\n App.component(Virtualscroller.name, Virtualscroller);\n}","import Draglist from './src/draglist/draglist';\nimport DraglistItem from './src/draglist-item/draglist-item';\nimport Draggrid from './src/draggrid/draggrid';\nimport DraggridItem from './src/draggrid-item/draggrid-item';\nimport Dropzone from './src/dropzone/dropzone';\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 { Any, Arr, Obj, Dom, Event, UUID } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\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.ctor('renderBody')(props);\n });\n\n return Obj.values(columns);\n },\n\n renderContext()\n {\n let columns = Obj.each(this.elements, (column) => {\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.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 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\";\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\";\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\";\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\";\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\";\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\";\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.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.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\";\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\";\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\";\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\";\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\";\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 Table from './src/table/table';\nimport TableColumn from './src/table-column/table-column';\nimport TableCellString from './src/table-cell/types/table-cell-string';\nimport TableCellBoolean from './src/table-cell/types/table-cell-boolean';\nimport TableCellDatetime from './src/table-cell/types/table-cell-datetime';\nimport TableCellOption from './src/table-cell/types/table-cell-option';\nimport TableCellImage from './src/table-cell/types/table-cell-image';\nimport TableCellMatrix from './src/table-cell/types/table-cell-matrix';\nimport TableCellSelect from './src/table-cell/types/table-cell-select';\nimport TableFilterString from './src/table-filter/types/table-filter-string';\nimport TableFilterBoolean from './src/table-filter/types/table-filter-boolean';\nimport TableFilterDatetime from './src/table-filter/types/table-filter-datetime';\nimport TableFilterOption from './src/table-filter/types/table-filter-option';\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 { 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\";\nimport CtorMixin from \"../../../mixins/src/ctor\";\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\";\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\";\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\";\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\";\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\";\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 Info from './src/info/info';\nimport InfoColumn from './src/info-column/info-column';\nimport InfoFieldString from './src/info-field/types/info-field-string';\nimport InfoFieldBoolean from './src/info-field/types/info-field-boolean';\nimport InfoFieldDatetime from './src/info-field/types/info-field-datetime';\nimport InfoFieldOption from './src/info-field/types/info-field-option';\nimport InfoFieldImage from './src/info-field/types/info-field-image';\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 { 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 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 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 = () => 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, 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 NConfig from \"./src/config/config\";\nimport NConfigNext from \"./src/config/config-next\";\nimport NBuilder from \"./src/builder/builder\";\nimport NRefrencePanel from \"./src/reference-panel/reference-panel\";\nimport NRefrencePicker from \"./src/reference-picker/reference-picker\";\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 { 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 Popover from './src/popover/popover';\nimport PopoverGroup from './src/popover-group/popover-group';\nimport PopoverOption from './src/popover-option/popover-option';\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 { 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: [], 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 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","export 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 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 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 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 class={classList}>\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 Form from './src/form/form';\nimport FormGroup from './src/form-group/form-group';\nimport FormItem from './src/form-item/form-item';\n\nexport default function (App) {\n App.component(Form.name, Form);\n App.component(FormGroup.name, FormGroup);\n App.component(FormItem.name, FormItem);\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 Button from './src/button/button';\nimport ButtonGroup from './src/button-group/button-group';\n\nexport default function (App) {\n App.component(Button.name, Button);\n App.component(ButtonGroup.name, ButtonGroup);\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 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>{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 Vue from \"vue\";\n\nimport Select from './src/select/select';\nimport SelectOption from './src/select-option/select-option';\n\nexport default function (App) {\n App.component(Select.name, Select);\n App.component(SelectOption.name, SelectOption);\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 Vue from \"vue\";\n\nimport Checkbox from './src/checkbox/checkbox';\nimport CheckboxGroup from './src/checkbox-group/checkbox-group';\n\nexport default function (App) {\n App.component(Checkbox.name, Checkbox);\n App.component(CheckboxGroup.name, CheckboxGroup);\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 NRadio from './src/radio/radio';\nimport NRadioGroup from './src/radio-group/radio-group';\n\nexport default function (App) {\n App.component(NRadio.name, NRadio);\n App.component(NRadioGroup.name, NRadioGroup);\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 CascaderPanel from './src/cascader-panel/cascader-panel';\nimport Cascader from './src/cascader/cascader';\n\nexport default function (App) {\n App.component(CascaderPanel.name, CascaderPanel);\n App.component(Cascader.name, Cascader);\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 DatepickerPanel from \"./src/datepicker-panel/datepicker-panel\";\nimport Datepicker from \"./src/datepicker/datepicker\";\n\nexport default function (App) {\n App.component(DatepickerPanel.name, DatepickerPanel);\n App.component(Datepicker.name, Datepicker);\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 TimepickerPanel from \"./src/timepicker-panel/timepicker-panel\";\nimport Timepicker from \"./src/timepicker/timepicker\";\n\nexport default function (App) {\n App.component(TimepickerPanel.name, TimepickerPanel);\n App.component(Timepicker.name, Timepicker);\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 },\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 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 Tabs from './src/tabs/tabs';\nimport TabsItem from './src/tabs-item/tabs-item';\n\nexport default function (App) {\n App.component(Tabs.name, Tabs);\n App.component(TabsItem.name, TabsItem);\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 Tags from './src/tags/tags';\nimport TagsItem from './src/tags-item/tags-item';\n\nexport default function (App) {\n App.component(Tags.name, Tags);\n App.component(TagsItem.name, TagsItem);\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 Collapse from './src/collapse/collapse';\nimport CollapseItem from './src/collapse-item/collapse-item';\n\nexport default function (App) {\n App.component(Collapse.name, Collapse);\n App.component(CollapseItem.name, CollapseItem);\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 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 Preview from './src/preview/preview';\nimport PreviewPlain from './src/preview-plain/preview-plain';\nimport PreviewImage from './src/preview-image/preview-image';\nimport PreviewVideo from './src/preview-video/preview-video';\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 { 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 }\n </div>\n );\n }\n\n}\n","import Map from './src/map/map';\nimport MapMarker from './src/map-marker/map-marker';\n\nexport default function (App) {\n App.component(Map.name, Map);\n App.component(MapMarker.name, MapMarker);\n}\n\n","import { Any, Str, Obj, Dom } from \"@kizmann/pico-js\";\n\nclass AlertFrame {\n\n el = null;\n\n text = '';\n\n icon = '';\n\n type = '';\n\n options = {\n iconPrimary: nano.Icons.info,\n iconSecondary: nano.Icons.info,\n iconSuccess: nano.Icons.success,\n iconWarning: nano.Icons.warning,\n iconDanger: nano.Icons.danger,\n iconInfo: nano.Icons.info\n };\n\n constructor(text, type = 'primary', options = {})\n {\n this.text = text;\n this.type = type;\n\n this.options = Obj.assign(this.options, options);\n\n this.render();\n }\n\n getIcon()\n {\n return Obj.get(this.options,\n 'icon' + Str.ucfirst(this.type));\n }\n\n append(el = document.body)\n {\n this.el.appendTo(el);\n\n Dom.find(document.body).on('keydown', (event) => {\n if ( event.which === 27 ) {\n this.remove();\n }\n }, 'n-alert');\n\n setTimeout(() => this.el.addClass('n-active'), 100);\n }\n\n remove()\n {\n Dom.find(document.body).off('keydown', null, 'n-alert');\n\n this.el.get(0).remove();\n }\n\n render()\n {\n let classList = [\n 'n-alert-frame',\n 'n-alert-frame--' + this.type,\n 'n-alert-frame--' + Alert.size\n ];\n\n this.el = Dom.make('div', {\n classList: classList.join(' ')\n });\n\n let backdrop = Dom.make('div', {\n classList: 'n-alert-backdrop', onclick: () => this.remove()\n });\n\n backdrop.onClick = () => {\n this.remove();\n };\n\n backdrop.appendTo(this.el);\n\n let frame = Dom.make('div', {\n classList: 'n-alert'\n });\n\n frame.appendTo(this.el);\n\n let icon = Dom.make('div', {\n classList: 'n-alert__icon'\n });\n\n icon.appendTo(frame);\n\n let iconSpan = Dom.make('span', {\n classList: this.getIcon()\n });\n\n iconSpan.appendTo(icon);\n\n let text = Dom.make('div', {\n classList: 'n-alert__text'\n });\n\n text.html(this.text).appendTo(frame);\n }\n\n}\n\nexport default class Alert {\n\n static alias = 'Alert';\n\n static size = nano.Settings.notifySize;\n\n static alert = null;\n\n static handle(...args)\n {\n if ( ! Any.isEmpty(Alert.alert) ) {\n Alert.alert.remove();\n }\n\n Alert.alert = new AlertFrame(...args);\n\n Alert.alert.append();\n\n return Alert;\n }\n\n}\n","import Alert from './src/alert/alert';\n\nexport default function (App) {\n App.config.globalProperties[Alert.alias] = window[Alert.alias] = Alert.handle;\n}\n","import { UUID, Str, Obj, Dom } from \"@kizmann/pico-js\";\n\nclass Notification {\n\n el = null;\n\n text = '';\n\n icon = '';\n\n type = '';\n\n options = {\n duration: 4500,\n iconPrimary: nano.Icons.info,\n iconSecondary: nano.Icons.info,\n iconSuccess: nano.Icons.success,\n iconWarning: nano.Icons.warning,\n iconDanger: nano.Icons.danger,\n iconInfo: nano.Icons.info\n };\n\n constructor(text, type = 'primary', options = {})\n {\n this.text = text;\n this.type = type;\n\n this.options = Obj.assign(this.options, options);\n\n this.render();\n }\n\n getIcon()\n {\n return Obj.get(this.options,\n 'icon' + Str.ucfirst(this.type));\n }\n\n append(el = document.body)\n {\n this.el.appendTo(el);\n\n setTimeout(() => this.el.addClass('n-active'), 100);\n\n return this;\n }\n\n remove()\n {\n this.el.get(0).remove();\n\n return this;\n }\n\n render()\n {\n let classList = [\n 'n-notification',\n 'n-notification--' + this.type\n ];\n\n this.el = Dom.make('div', {\n classList: classList.join(' '), onclick: () => this.remove()\n });\n \n\n let icon = Dom.make('div', {\n classList: 'n-notification__icon'\n });\n\n icon.appendTo(this.el);\n\n let iconSpan = Dom.make('span', {\n classList: this.getIcon()\n });\n\n iconSpan.appendTo(icon);\n\n let text = Dom.make('div', {\n classList: 'n-notification__text'\n });\n\n text.html(this.text).appendTo(this.el);\n }\n\n}\n\nexport default class Notify {\n\n static alias = 'Notify';\n\n static size = nano.Settings.notifySize;\n\n static position = nano.Settings.notifyPosition;\n\n static notifications = {};\n\n static handle(...args)\n {\n let uid = Notify.create(undefined, ...args);\n\n let wrapper = Notify.getWrapper();\n\n // Append element to dom\n Notify.notifications[uid].append(wrapper);\n\n // Queue remove\n setTimeout(() => Notify.remove(uid),\n Notify.notifications[uid].options.duration);\n\n return uid;\n }\n\n static create(uid = UUID(), ...args)\n {\n Notify.notifications[uid] = new Notification(...args);\n\n return uid;\n }\n\n static remove(uid)\n {\n if ( Notify.notifications[uid] === undefined ) {\n return;\n }\n\n // Remove dom element\n Notify.notifications[uid].remove();\n\n // Remove from list\n delete Notify.notifications[uid];\n }\n\n static getWrapper()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let style = {\n 'z-index': window.zIndex + 100\n };\n\n let classList = [\n 'n-notification-frame',\n 'n-notification-frame--' + this.size,\n 'n-notification-frame--' + this.position\n ];\n\n if ( Dom.find('.n-notification-frame').empty() === true ) {\n Dom.make('div', { classList: classList.join(' ') }).appendTo(document.body);\n }\n\n Dom.find('.n-notification-frame').css(style);\n\n return Dom.find('.n-notification-frame');\n }\n\n}\n","import Notifcation from './src/notification/notification';\n\nexport default function (App) {\n App.config.globalProperties[Notifcation.alias] = window[Notifcation.alias] = Notifcation.handle;\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 },\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 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 EmptyIcon from './src/empty-icon/empty-icon';\n\nexport default function (App) {\n App.component(EmptyIcon.name, EmptyIcon);\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();\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 Scrollbar from './src/scrollbar/scrollbar.next';\n\nexport default function (App) {\n App.component(Scrollbar.name, Scrollbar);\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 Loader from './src/loader/loader';\n\nexport default function (App) {\n App.component(Loader.name, Loader);\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', \n this.forceWidth, this._.uid);\n\n Dom.find(window).on('resize', \n Any.debounce(this.onResize, 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 Resizer from './src/resizer/resizer';\n\nexport default function (App) {\n App.component(Resizer.name, Resizer);\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 Modal from './src/modal/modal';\n\nexport default function (App) {\n App.component(Modal.name, Modal);\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 Input from './src/input/input';\n\nexport default function (App) {\n App.component(Input.name, Input);\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 InputNumber from \"./src/input-number/input-number\";\n\nexport default function (App) {\n App.component(InputNumber.name, InputNumber);\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 Textarea from './src/textarea/textarea';\n\nexport default function (App) {\n App.component(Textarea.name, Textarea);\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 ( ! 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.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 Vue from \"vue\";\n\nimport Slider from './src/slider/slider';\n\nexport default function (App) {\n App.component(Slider.name, Slider);\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 Vue from \"vue\";\n\nimport Switch from './src/switch/switch';\n\nexport default function (App) {\n App.component(Switch.name, Switch);\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 Confirm from './src/confirm/confirm';\n\nexport default function (App) {\n App.component(Confirm.name, Confirm);\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 if ( this.range ) {\n classList.push('n-range');\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 Datetimepicker from \"./src/datetimepicker/datetimepicker\";\n\nexport default function (App) {\n App.component(Datetimepicker.name, Datetimepicker);\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 Durationpicker from \"./src/durationpicker/durationpicker\";\n\nexport default function (App) {\n App.component(Durationpicker.name, Durationpicker);\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 Transfer from \"./src/transfer/transfer\";\n\nexport default function (App) {\n App.component(Transfer.name, Transfer);\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 Paginator from './src/paginator/paginator';\n\nexport default function (App) {\n App.component(Paginator.name, Paginator);\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 File from './src/file/file';\n\nexport default function (App) {\n App.component(File.name, File);\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 Rating from './src/rating/rating';\n\nexport default function (App) {\n App.component(Rating.name, Rating);\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://Nano/webpack/universalModuleDefinition","webpack://Nano/webpack/bootstrap","webpack://Nano/external {\"root\":\"pi\",\"commonjs2\":\"@kizmann/pico-js\",\"commonjs\":\"@kizmann/pico-js\",\"amd\":\"@kizmann/pico-js\"}","webpack://Nano/external {\"root\":\"Vue\",\"commonjs2\":\"vue\",\"commonjs\":\"vue\",\"amd\":\"vue\"}","webpack://Nano/(webpack)/buildin/global.js","webpack://Nano/./src/draggable/src/draghandler/draghandler.js","webpack://Nano/./src/mixins/src/ctor.js","webpack://Nano/./src/config/src/builder/builder.js","webpack://Nano/./src/virtualscroller/src/virtualscroller/virtualscroller.beta.js","webpack://Nano/./src/draggable/src/draglist/draglist.js","webpack://Nano/./src/draggable/src/draglist-item/draglist-item.js","webpack://Nano/./src/draggable/src/draggrid/draggrid.js","webpack://Nano/./src/draggable/src/draggrid-item/draggrid-item.js","webpack://Nano/./src/draggable/src/dropzone/dropzone.js","webpack://Nano/./src/preview/src/preview/preview.js","webpack://Nano/./src/preview/src/preview-video/preview-video.js","webpack://Nano/./src/mixins/src/cmer.js","webpack://Nano/./src/mixins/src/cslo.js","webpack://Nano/./src/index.js","webpack://Nano/./src/config/src/builder/prototypes/html/nano.js","webpack://Nano/./src/config/src/builder/prototypes/html/div.js","webpack://Nano/./src/config/src/builder/prototypes/html/span.js","webpack://Nano/./src/config/src/builder/prototypes/button/n-button.js","webpack://Nano/./src/config/src/builder/prototypes/button/n-button-group.js","webpack://Nano/./src/config/src/builder/prototypes/cascader/n-cascader.js","webpack://Nano/./src/config/src/builder/prototypes/checkbox/n-checkbox.js","webpack://Nano/./src/config/src/builder/prototypes/checkbox/n-checkbox-group.js","webpack://Nano/./src/config/src/builder/prototypes/confirm/n-confirm.js","webpack://Nano/./src/config/src/builder/prototypes/datepicker/n-datepicker.js","webpack://Nano/./src/config/src/builder/prototypes/datetimepicker/n-datetimepicker.js","webpack://Nano/./src/config/src/builder/prototypes/durationpicker/n-durationpicker.js","webpack://Nano/./src/config/src/builder/prototypes/empty/n-empty.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form-group.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form-item.js","webpack://Nano/./src/config/src/builder/prototypes/input/n-input.js","webpack://Nano/./src/config/src/builder/prototypes/input-number/n-input-number.js","webpack://Nano/./src/config/src/builder/prototypes/loader/n-loader.js","webpack://Nano/./src/config/src/builder/prototypes/modal/n-modal.js","webpack://Nano/./src/config/src/builder/prototypes/radio/n-radio.js","webpack://Nano/./src/config/src/builder/prototypes/radio/n-radio-group.js","webpack://Nano/./src/config/src/builder/prototypes/rating/n-rating.js","webpack://Nano/./src/config/src/builder/prototypes/select/n-select.js","webpack://Nano/./src/config/src/builder/prototypes/slider/n-slider.js","webpack://Nano/./src/config/src/builder/prototypes/switch/n-switch.js","webpack://Nano/./src/config/src/builder/prototypes/table/n-table.js","webpack://Nano/./src/config/src/builder/prototypes/table/n-table-column.js","webpack://Nano/./src/config/src/builder/prototypes/tabs/n-tabs.js","webpack://Nano/./src/config/src/builder/prototypes/tabs/n-tabs-item.js","webpack://Nano/./src/config/src/builder/prototypes/tags/n-tags.js","webpack://Nano/./src/config/src/builder/prototypes/tags/n-tags-item.js","webpack://Nano/./src/config/src/builder/prototypes/timepicker/n-timepicker.js","webpack://Nano/./src/config/src/builder/prototypes/transfer/n-transfer.js","webpack://Nano/./src/virtualscroller/index.js","webpack://Nano/./src/draggable/index.js","webpack://Nano/./src/table/src/table/table.js","webpack://Nano/./src/table/src/table-column/table-column.js","webpack://Nano/./src/table/src/table-cell/table-cell.js","webpack://Nano/./src/table/src/table-cell/types/table-cell-string.js","webpack://Nano/./src/table/src/table-cell/types/table-cell-boolean.js","webpack://Nano/./src/table/src/table-cell/types/table-cell-datetime.js","webpack://Nano/./src/table/src/table-cell/types/table-cell-option.js","webpack://Nano/./src/table/src/table-cell/types/table-cell-image.js","webpack://Nano/./src/table/src/table-cell/types/table-cell-matrix.js","webpack://Nano/./src/table/src/table-cell/types/table-cell-select.js","webpack://Nano/./src/table/src/table-filter/table-filter.js","webpack://Nano/./src/table/src/table-filter/types/table-filter-string.js","webpack://Nano/./src/table/src/table-filter/types/table-filter-boolean.js","webpack://Nano/./src/table/src/table-filter/types/table-filter-datetime.js","webpack://Nano/./src/table/src/table-filter/types/table-filter-option.js","webpack://Nano/./src/table/index.js","webpack://Nano/./src/info/src/info/info.js","webpack://Nano/./src/info/src/info-column/info-column.js","webpack://Nano/./src/info/src/info-field/info-field.js","webpack://Nano/./src/info/src/info-field/types/info-field-string.js","webpack://Nano/./src/info/src/info-field/types/info-field-boolean.js","webpack://Nano/./src/info/src/info-field/types/info-field-datetime.js","webpack://Nano/./src/info/src/info-field/types/info-field-option.js","webpack://Nano/./src/info/src/info-field/types/info-field-image.js","webpack://Nano/./src/info/index.js","webpack://Nano/./src/config/src/config/config.js","webpack://Nano/./src/config/src/config/config-next.js","webpack://Nano/./src/config/src/reference-panel/reference-panel.js","webpack://Nano/./src/config/src/reference-picker/reference-picker.js","webpack://Nano/./src/config/index.js","webpack://Nano/./src/popover/src/popover/popover.js","webpack://Nano/./src/popover/src/popover-group/popover-group.js","webpack://Nano/./src/popover/src/popover-option/popover-option.js","webpack://Nano/./src/popover/index.js","webpack://Nano/./src/form/src/form/form.js","webpack://Nano/./src/form/src/form-group/form-group.js","webpack://Nano/./src/form/src/form-item/form-item.js","webpack://Nano/./src/form/index.js","webpack://Nano/./src/button/src/button/button.js","webpack://Nano/./src/button/src/button-group/button-group.js","webpack://Nano/./src/button/index.js","webpack://Nano/./src/select/src/select/select.js","webpack://Nano/./src/select/src/select-option/select-option.js","webpack://Nano/./src/select/index.js","webpack://Nano/./src/checkbox/src/checkbox/checkbox.js","webpack://Nano/./src/checkbox/src/checkbox-group/checkbox-group.js","webpack://Nano/./src/checkbox/index.js","webpack://Nano/./src/radio/src/radio/radio.js","webpack://Nano/./src/radio/src/radio-group/radio-group.js","webpack://Nano/./src/radio/index.js","webpack://Nano/./src/cascader/src/cascader-panel/cascader-panel.js","webpack://Nano/./src/cascader/src/cascader/cascader.js","webpack://Nano/./src/cascader/index.js","webpack://Nano/./src/datepicker/src/datepicker-panel/datepicker-panel.js","webpack://Nano/./src/datepicker/src/datepicker/datepicker.js","webpack://Nano/./src/datepicker/index.js","webpack://Nano/./src/timepicker/src/timepicker-panel/timepicker-panel.js","webpack://Nano/./src/timepicker/src/timepicker/timepicker.js","webpack://Nano/./src/timepicker/index.js","webpack://Nano/./src/tabs/src/tabs/tabs.js","webpack://Nano/./src/tabs/src/tabs-item/tabs-item.js","webpack://Nano/./src/tabs/index.js","webpack://Nano/./src/tags/src/tags/tags.js","webpack://Nano/./src/tags/src/tags-item/tags-item.js","webpack://Nano/./src/tags/index.js","webpack://Nano/./src/collapse/src/collapse/collapse.js","webpack://Nano/./src/collapse/src/collapse-item/collapse-item.js","webpack://Nano/./src/collapse/index.js","webpack://Nano/./src/preview/src/preview-plain/preview-plain.js","webpack://Nano/./src/preview/src/preview-image/preview-image.js","webpack://Nano/./src/preview/index.js","webpack://Nano/./src/map/src/map/map.js","webpack://Nano/./src/map/src/map-marker/map-marker.js","webpack://Nano/./src/map/index.js","webpack://Nano/./src/alert/src/alert/alert.js","webpack://Nano/./src/alert/index.js","webpack://Nano/./src/notification/src/notification/notification.js","webpack://Nano/./src/notification/index.js","webpack://Nano/./src/empty/src/empty-icon/empty-icon.js","webpack://Nano/./src/empty/index.js","webpack://Nano/./src/scrollbar/src/scrollbar/scrollbar.next.js","webpack://Nano/./src/scrollbar/index.js","webpack://Nano/./src/loader/src/loader/loader.js","webpack://Nano/./src/loader/index.js","webpack://Nano/./src/resizer/src/resizer/resizer.js","webpack://Nano/./src/resizer/index.js","webpack://Nano/./src/modal/src/modal/modal.js","webpack://Nano/./src/modal/index.js","webpack://Nano/./src/input/src/input/input.js","webpack://Nano/./src/input/index.js","webpack://Nano/./src/input-number/src/input-number/input-number.js","webpack://Nano/./src/input-number/index.js","webpack://Nano/./src/textarea/src/textarea/textarea.js","webpack://Nano/./src/textarea/index.js","webpack://Nano/./src/slider/src/slider/slider.js","webpack://Nano/./src/slider/index.js","webpack://Nano/./src/switch/src/switch/switch.js","webpack://Nano/./src/switch/index.js","webpack://Nano/./src/confirm/src/confirm/confirm.js","webpack://Nano/./src/confirm/index.js","webpack://Nano/./src/datetimepicker/src/datetimepicker/datetimepicker.js","webpack://Nano/./src/datetimepicker/index.js","webpack://Nano/./src/durationpicker/src/durationpicker/durationpicker.js","webpack://Nano/./src/durationpicker/index.js","webpack://Nano/./src/transfer/src/transfer/transfer.js","webpack://Nano/./src/transfer/index.js","webpack://Nano/./src/paginator/src/paginator/paginator.js","webpack://Nano/./src/paginator/index.js","webpack://Nano/./src/file/src/file/file.js","webpack://Nano/./src/file/index.js","webpack://Nano/./src/rating/src/rating/rating.js","webpack://Nano/./src/rating/index.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__0__","__WEBPACK_EXTERNAL_MODULE__1__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","g","this","Function","e","global","dragMods","NDragCounter","_createClass","_classCallCheck","_defineProperty","$el","Dom","make","classList","appendTo","document","body","event","count","update","html","concat","Locale","choice","dataTransfer","setData","setDragImage","keyMods","Arr","has","push","attr","join","DragCounter","NDragIndicator","parent","safezone","el","strategy","arguments","length","undefined","rect","getBoundingClientRect","clientY","y","height","find","hasClass","show","hide","offsetTop","style","top","css","Obj","map","item","remove","NDraghandler","rootNode","_this$bindDragstart","_this","frame","DragIndicator","DragCache","bindDragstart","apply","_toConsumableArray","on","onDragenterRoot","onDragoverRoot","onDragleaveRoot","onDragendRoot","onDragdropRoot","Event","uid","bindDragend","bindDragdrop","off","unbind","preventDefault","_this2","target","closest","cacheNodes","frames","Date","now","allowDrop","Any","isFunction","rainbow","each","node","addClass","removeClass","fire","moveNodes","group","cache","allowGroups","JSON","parse","stringify","dragcount","dropNodes","tempSelected","$emit","removeNode","clone","items","unlinkNodes","removeNodes","_this3","isSelected","id","virtuals","uniqueProp","route","_this4","clientHeight","resolve","targetNode","isInSelf","cascade","_this5","childNodes","unbindNode","$handle","handle","onDragstartNode","onDragenterNode","onDragoverNode","onDragleaveNode","onDragendNode","onDragdropNode","moveNodesMany","moveNodesOne","_this6","insertNode","moveNodesRoot","source","first","_this7","transformDrop","moveNodesInto","moveNodesBefore","moveNodesAfter","sources","eventName","set","_this8","prop","filter","childProp","disableMove","targetRoute","children","replace","index","splice","except","UUID","_this9","_len","props","Array","_key","reduce","merge","reduceItem","Num","depth","cascades","unique","tempCascade","virtual","last","isEmpty","ctor","fallback","$options","split","args","_isSlot","toString","_isVNode","NanoBuilderPropType","trans","NanoBuilderPropCode","NanoBuilderProps","for","type","vIf","vShow","NanoBuilderTypes","NanoBuilderIndexies","modelValue","scope","model","renderDemo","Boolean","renderExport","data","init","demo","collapse","safevar","normalizeModel","watch","mounted","methods","exportJson","matches","exportExecutable","result","assign","normalizeChild","order","vals","child","applyProps","_objectSpread","content","builder","buildProps","isArray","isPlain","isString","_typeof","match","getOriginalValue","safevalue","btoa","getSafeValue","string","getRealValue","realvalue","code","number","atob","original","changeElement","newKey","unset","k","changeAlias","changeType","val","bindValue","console","error","only","sey","isObject","$nextTick","addProp","removeProp","collapseElement","toggle","addElement","removeElement","moveupElement","_ref","childs","close","Number","MIN_VALUE","sub","Math","max","replacement","movedownElement","_ref2","MAX_VALUE","min","renderTools","rootProps","collapseProps","href","addProps","removeProps","moveupProps","movedownProps","_createVNode","_mergeProps","renderProp","$data","typeProps","size","options","keyProps","allowCreate","optionsLabel","codeProps","valueInputProps","valueHtml","_resolveComponent","$event","fallbackProps","minRows","autoRows","_createTextVNode","renderProps","_slot","elementProps","aliasProps","plainProps","link","renderElement","builderHtml","renderBuilder","sort","v","renderBody","renderHead","_slot2","_slot3","_this10","addHtml","demoProps","demoHtml","renderOutput","_slot4","_this11","renderFunction","$slots","_ref3","render","configProps","config","width","DEBUG_NVSCROLL","inject","NDraggable","default","itemHeight","itemWidth","renderNode","deathzone","overflowY","overflowX","offsetY","offsetX","threshold","framerate","useKeys","state","start","end","grid","buffer","load","updateRender","beforeMount","scrollTop","bindAdaptScroll","beforeUnmount","unbindAdaptScroll","refreshScroll","setInterval","onScrollupdate","clearInterval","isIndexRendered","scrollIntoView","$refs","scrollbar","scrollToIndex","selector","delay","onScrollToIndex","total","ceil","floor","targetTop","scrollTo","x","onScrollTo","clearState","async","refreshDriver","offset","offsetHeight","inner","scrollHeight","onSizechange","queue","timer","clearTimeout","to","setTimeout","bufferItems","round","isEqual","renderItem","passed","topOffset","renderRows","slice","renderGridRows","counter","chunk","renderGrid","chunks","renderItems","empty","totalHeight","DEBUG_NDLIST","draggable","String","current","selected","expanded","lazyload","showEmptyIcon","itemOffset","scrollTopOnChange","renderCurrent","renderHandle","renderSelect","renderExpand","allowSelect","allowDrag","keyEvents","highlightTimeout","provide","modifier","visible","highlight","firstSelected","lastSelected","tempCurrent","tempExpanded","drag","watchModifierDown","_","watchModifierUp","virtualscroller","bindRoot","$watch","watchSelected","deep","refreshVirtuals","unbindRoot","filterVirtuals","add","which","updateNode","findVirtual","log","contains","getIndex","findIndex","getCurrentIndex","isDraggable","canDrag","isHighlight","highlightNode","refresh","recursive","scrollToHighlight","isCurrent","setCurrent","setRawCurrent","setNextCurrent","setPrevCurrent","reset","syncCurrent","isDisabled","canSelect","hasChildren","getChildren","isExpanded","expandItem","expandCurrent","isTotalSelected","isInterSelected","toggleSingleNode","toggleRangeNode","indexies","reversed","selectItem","selectAll","row","unselectAll","bindKeydown","onKeydown","unbindKeydown","stopPropagation","renderEmpty","$props","onMouseenter","onMouseleave","NDraggableItem","required","computed","touch","navigator","msMaxTouchPoints","mousedown","mousemove","mouseup","bindNode","copy","copyNode","onClick","onDblclick","renderSpacer","nano","Icons","Str","ucfirst","angleRight","checked","NDropzone","fileMap","image","video","font","text","application","file","thumb","fit","mime","typre","preview","showSrc","tempFile","tempThumb","fileMime","getFileMime","thumbMime","getThumbMime","lightbox","extension","exts","resolveVimeo","resolveYoutube","showLightbox","renderPreview","renderFull","renderLightbox","slots","raw","url","path","src","provider","tempSrc","resolveType","resolveData","youtube","vimeo","renderYoutube","renderVimeo","renderPlain","cmer","attrsList","$attrs","cslo","slot","Comment","circle","intermediate","clock","calendar","times","primary","success","warning","danger","info","angleUp","angleDown","angleLeft","angleDoubleLeft","angleDoubleRight","Settings","iconPosition","notifySize","notifyPosition","Install","App","pi","globalProperties","CtorMixin","CmerMixin","CsloMixin","Nano","NanoPrototypeSizes","NanoPrototypeTypes","NanoPrototypeBools","square","disabled","icon","nativeType","click","label","placeholder","iconDisabled","iconClick","clearValue","clearable","stepSize","precision","format","decimals","onValue","offValue","onType","offType","component","Virtualscroller","Draglist","DraglistItem","Draggrid","DraggridItem","Dropzone","NTable","sortProp","sortDir","closeFilterOnEnter","elements","tempVisible","tempVisibleProps","tempSortProp","tempSortDir","tempFilter","tempFilterProps","makeVisibleProps","detectVisible","addColumn","column","removeColumn","getColumnIndex","getColumnVisiblity","getColumnSorted","getColumnFilter","filterProp","getColumnFiltered","detectVisibity","intersect","extract","onResize","sortByColumn","dir","replaceFilter","search","filters","resetFilter","refreshCurrent","columns","values","renderContext","defaultRender","_len2","_key2","draggableHtml","tooltip","align","breakpoint","previewProp","matrix","matrixProp","optionsValue","fluid","fixedWidth","minWidth","maxWidth","emptyText","undefinedText","trueText","falseText","datetimeFormat","allowUncheck","matrixValues","NTableColumn","tempWidth","changedStates","sortDirection","flexBasis","onMousedown","renderHeadLabel","labelHtml","renderHeadSort","renderHeadFilter","angleHtml","resolveComponent","h","class","input","setFirstState","firstState","extends","TableCell","convertString","convertBoolean","convertDatetime","renderOption","$value","$index","option","toggleMatrix","toggleSelect","itemList","currentMatrix","combine","finder","isChecked","canReset","canApply","getFilterClone","mountFilter","getFilterProp","getDefaultFilter","applyFilter","clearFilter","popover","renderForm","renderApply","renderReset","renderFooter","trigger","footer","TableFilter","operator","li","nl","eq","ne","lt","gt","in","ni","Table","TableColumn","TableCellString","TableCellBoolean","TableCellDatetime","TableCellOption","TableCellImage","TableCellMatrix","TableCellSelect","TableFilterString","TableFilterBoolean","TableFilterDatetime","TableFilterOption","syncEvent","relative","tempValue","bindSyncEvent","unbindSyncEvent","updated","adaptHeight","setValue","NInfo","infoHtml","renderLabel","InfoField","Info","InfoColumn","InfoFieldString","InfoFieldBoolean","InfoFieldDatetime","InfoFieldOption","InfoFieldImage","solveAwait","$$scope","$$value","solveValue","solveEvent","$configRefs","solveContent","_len3","_key3","$render","prepareValue","veModel","deepSet","inputClosure","closure","obj","keys","shift","renderLayer","setup","vAwait","$on","display","resolved","extraValue","sempValue","getString","final","propAwait","getState","propExists","exists","solveInput","$scope","$model","$extra","$global","toPropKey","splits","lcfirst","toEventKey","cb","solveContext","getProp","getInput","isNull","setInput","renderSetup","alias","defaultsBind","binds","events","updateKey","modelTree","buildTree","scopeTree","ref","submitItem","renderLeaf","renderTree","childItems","childHtml","renderModel","modelHtml","renderScope","scopeHtml","modal","updateValue","renderModal","modalProps","panelProps","renderInput","inputProps","NConfig","NConfigNext","NBuilder","NRefrencePanel","NRefrencePicker","NPopover","listen","position","scrollClose","multiClose","clientX","prevent","refreshVisible","previous","append","onHover","onContext","onExit","onCloseEvent","active","open","pause","unpause","stopRefreshInterval","startRefreshInterval","passedOffset","updatePosition","isSameOffset","isSameSize","passedSize","getTargetHorizontal","targetRect","left","windowRect","posY","posX","center","inverse","broken","innerHeight","innerWidth","clientWidth","getTargetVertical","getTargetOffset","scroll","zIndex","isScrollClose","keyCode","header","viewBody","tempSize","focus","imagePosition","clickClose","renderImage","renderIcon","renderContent","Popover","PopoverGroup","PopoverOption","inheritAttrs","dom","form","errors","ignore","forceChange","forceErrors","blocked","NForm","ready","emitChange","resetChange","onSubmit","is","addItem","removeItem","timeout","prevState","nextState","attrs","tooltipPosition","collapseGroup","renderCollapse","renderText","textHtml","renderAction","action","renderTooltip","NTabs","NTabsItem","NFormItem","tooltipWindow","conditional","conditionOn","conditionOff","enabled","toggleCondition","focusInput","$input","gotoInput","changeTab","renderCondition","renderError","Form","FormGroup","FormItem","innerHtml","Button","ButtonGroup","lazy","multiple","collapseText","optionsDisabled","deepDisabled","custom","element","tempClear","searched","generateOptions","searchOptions","NSelect","scrollToClosest","clear","tempLabel","addOption","removeOption","resetInput","onFocusInput","onInputInput","onKeydownInput","createOrToggle","selectPrev","selectNext","searchRegex","RegExp","toggleOption","denyUpdate","getOptionLabel","newIndex","scrollToCurrent","createOption","virtualbar","select","renderLabelClear","renderLabelAngle","renderLabelItem","renderLabelCollapse","firstHtml","renderLabelItems","renderMultiple","isEmptyValue","isNumber","onFocus","onInput","inputHtml","renderSingle","modelLabel","renderDisplay","displayHtml","emptyHtml","renderLazyOption","isMultipleActive","isSingleActive","renderLazyItems","renderPopover","onClose","renderOptions","valueProp","labelProp","toggleItem","Select","SelectOption","NCheckboxGroup","tempComputed","globalChecked","tempChecked","tempIntermediate","globalIntermediate","tempDisabled","globalDisabled","addCheckbox","removeCheckbox","check","checkCheckbox","uncheck","uncheckCheckbox","eventShiftClick","shiftCheckbox","eventLocalClick","shiftKey","toggleCheckbox","eventGlobalClick","toggleAll","updateFromGroup","renderCheckbox","interHtml","checkHtml","checkbox","emit","checkboxes","uncheckAll","checkAll","Checkbox","CheckboxGroup","NRadioGroup","addRadio","removeRadio","checkRadio","renderRadio","radio","NRadio","hover","disabledProp","tempHover","clearCascader","hoverItem","onSelect","clickTimer","lastclick","hoverTimer","fireSelectItem","onMousemove","renderCascade","renderList","onCascaderInput","onCascaderHover","onPopoverInput","itemLabel","CascaderPanel","Cascader","arrive","clearArrive","depart","clearDepart","minDate","maxDate","range","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","renderToolbarNext","renderToolbarMonth","monthsHtml","month","addMonths","renderToolbarYear","yearsHtml","year","renderToolbar","prev","next","renderDateItem","equalDate","valid","isNotBeforeMin","after","isNotAfterMax","before","renderRangeDateItem","viewMode","isTempValid","between","arriveFirst","renderDate","legendHtml","day","bodyHtml","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","DatepickerPanel","Datepicker","hoursInterval","minutesInterval","secondsInterval","hoursGrid","getHours","minutesGrid","getMinutes","secondsGrid","getSeconds","eventSelect","scrollbars","renderHourItem","hour","renderHourPanel","renderMinuteItem","minute","renderMinutePanel","renderSecondItem","second","renderSecondPanel","clearTimepicker","onTimepickerInput","renderPanel","TimepickerPanel","Timepicker","addTab","tab","$forceUpdate","removeTab","getTab","updateEvent","currentTab","sorted","renderHeaderIndicator","transform","renderHeader","tabs","preload","keep","renderHeaderIcon","renderHeaderLabel","Tabs","TabsItem","NTags","tags","addTag","removeTag","color","Tags","TagsItem","NCollapse","showTab","hideTab","toggleTab","NCollapseItem","dragger","renderHeaderAngle","angle","showDelay","Collapse","CollapseItem","tempExt","ImageCache","resolveLoad","loaded","laod","reader","FileReader","onload","readAsDataURL","Preview","PreviewPlain","PreviewImage","PreviewVideo","lat","lng","zoom","NMap","callbacks","tempMap","focusMarkers","Map","callback","getMap","onMount","tempMarker","importMarkerPosition","marker","setPosition","updateMarkerPosition","getPosition","initializeMarker","innerHTML","createMarker","addListener","debounce","setMarkerByAddress","address","then","Notify","MapMarker","AlertFrame","iconPrimary","iconSecondary","iconSuccess","iconWarning","iconDanger","iconInfo","Alert","backdrop","onclick","getIcon","alert","_construct","Notification","duration","wrapper","getWrapper","notifications","Notifcation","inline","EmptyIcon","NScrollbar","fixture","allowNative","wrapClass","native","adaptScrollBehavior","bindAdaptHeight","bindAdaptWidth","passive","onUpdate","onScroll","passedHeight","passedWidth","unbindAdaptHeight","unbindAdaptWidth","scrollLeft","onScrollIntoView","outerHeight","outerWidth","offsetLeft","$dom","offsetWidth","adaptScrollHeight","virtualHeight","barHeight","maxHeight","heightRatio","vbar","hasVtrack","adaptScrollPosition","adaptScrollWidth","scrollWidth","virtualWidth","barWidth","widthRatio","hbar","hasHtrack","vbarTop","hbarLeft","cacheChildEl","cacheWindwoEl","windowCache","spacer","refreshHeight","adaptWidth","resizeTimer","refreshWidth","$inner","actual","getTouchEvent","touches","changedTouches","onVbarMousedown","onVbarMousemove","onVbarMouseup","onHbarMousedown","onHbarMousemove","onHbarMouseup","WIN","vbarProps","hbarProps","Scrollbar","NLoader","minimum","applyTimer","timing","startTimer","restartTimer","Loader","resizerWidth","sizeFixed","updateWidth","bindSizechange","forceWidth","unmounted","unbindSizechange","flex","updateHandle","onLeftMousedown","onLeftMouseup","onLeftMousemove","scrollX","targetWidth","frameStyle","onRightMousedown","onRightMouseup","onRightMousemove","Resizer","title","closable","renderClose","startRefreshTimeout","NModal","eventClick","eventKeydown","openModal","force","closeModal","stopRefreshTimeout","queueRefreshTimeout","indexes","renderFrame","renderBackdrop","Modal","onIconClick","onBlur","Input","getValue","getDisplayValue","nextStep","isNaN","toFixed","onNextDown","nextTimeout","nextInterval","onNextUp","prevStep","onPrevDown","prevTimeout","prevInterval","onPrevUp","regex","renderPrev","renderNext","renderClear","InputNumber","maxRows","maxLength","eventInput","rows","currentRows","Textarea","steps","labels","fixmin","fixmax","minmax","getPseudoValue","setModelValue","getValPos","fixed","getValStyle","getBarPos","getBarWidth","getBarStyle","getClosestValue","diff","step","abs","onMouseup","relativeWidth","closestValue","stepMin","stepMax","handleProps","renderHandles","renderBar","barProps","Slider","renderSwitch","Switch","confirmText","abortText","buttonSize","abort","confirm","Confirm","clearDatetimepicker","renderPanels","renderDatePanel","renderTimePanel","Datetimepicker","minDuration","maxDuration","negativeText","days","hours","minutes","seconds","editValue","findPattern","pattern","replaceAll","humanizeValue","digitizeValue","dmatch","hmatch","mmatch","smatch","clearDurationpicker","onValueChange","onDurationpickerInput","onChange","optionProps","scrollProps","Durationpicker","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","Transfer","page","limit","limitOptions","maxPages","layout","pages","tempLimit","pageOptions","tempPage","forcePage","updatePaginate","paginate","onPrevPage","onPageInput","onNextPage","onFirstPage","onLastPage","onLimitInput","renderLimit","renderCount","renderGoto","renderFirst","renderLast","renderPage","renderPages","renderSlot","view","className","Paginator","clearableIcon","buttonText","openContext","updateFile","files","clearFile","renderButton","renderHidden","File","virtualValue","renderStars","rate","renderValue","vars","Rating"],"mappings":"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","file":"nano-ui.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})(window, function(__WEBPACK_EXTERNAL_MODULE__0__, __WEBPACK_EXTERNAL_MODULE__1__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 16);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","import { Arr, Obj, Num, Any, Dom, Event, Locale, UUID } from \"@kizmann/pico-js\";\n\nglobal.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 global.dragMods = global.keyMods;\n\n let classList = [\n 'n-draggable__counter'\n ];\n\n if ( Arr.has(global.dragMods, 18) ) {\n classList.push('n-modify--alt');\n }\n\n if ( Arr.has(global.dragMods, 17) ) {\n classList.push('n-modify--ctrl');\n }\n\n if ( Arr.has(global.dragMods, 91) ) {\n classList.push('n-modify--meta');\n }\n\n this.$el.attr('class', classList.join(' '));\n }\n\n}\n\nglobal.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 ( global.DragCache ) {\n this.bindDragstart.call(this, ...global.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 global.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 global.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 global.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(global.dragMods, 18) ) {\n eventName = 'moveAlt';\n }\n\n if ( Arr.has(global.dragMods, 17) ) {\n eventName = 'moveCtrl';\n }\n\n if ( Arr.has(global.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 { 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, Dom, Any, Locale, Obj, UUID, Num } from \"@kizmann/pico-js\";\n\nglobal.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\nglobal.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\nglobal.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\nglobal.NanoBuilderTypes = {\n //\n};\n\nglobal.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(global.NanoBuilderIndexies, `${group}.props`, {}));\n\n props = Obj.assign({}, global.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: global.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: global.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: global.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, Dom } from \"@kizmann/pico-js\";\n\nglobal.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 { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler\";\n\nglobal.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 ( global.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(global.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\";\n\nglobal.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 ( global.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(global.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\";\n\nglobal.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 { 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 ( global.resolveVimeo(file) ) {\n fallback = 'video';\n }\n\n if ( global.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 { Obj, Arr, Str, Any, Dom } from \"@kizmann/pico-js\";\n\nglobal.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\nglobal.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 = global.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 = global.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, 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","import { Arr, Obj, Dom, Locale } from \"@kizmann/pico-js\";\n\nimport CtorMixin from \"./mixins/src/ctor\";\nimport CmerMixin from \"./mixins/src/cmer\";\nimport CsloMixin from \"./mixins/src/cslo\";\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 = {}, Styles = {})\n{\n /**\n * @const global.pi\n */\n\n if ( typeof global.pi === 'undefined' ) {\n return console.error('pico-js is not available.');\n }\n\n Obj.each(global.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 global.nano.Icons = Obj.assign(Icons, global.nano.Icons);\n global.nano.Settings = Obj.assign(Settings, global.nano.Settings);\n\n require('./alert/index').default(App);\n require('./notification/index').default(App);\n require('./empty/index').default(App);\n require('./config/index').default(App); //!complex 17.1\n require('./scrollbar/index').default(App);\n require('./virtualscroller/index').default(App);\n require('./draggable/index').default(App);\n require('./loader/index').default(App);\n require('./resizer/index').default(App);\n require('./popover/index').default(App);\n require('./modal/index').default(App);\n require('./button/index').default(App);\n require('./input/index').default(App);\n require('./input-number/index').default(App);\n require('./textarea/index').default(App);\n require('./select/index').default(App);\n require('./checkbox/index').default(App);\n require('./radio/index').default(App);\n require('./slider/index').default(App);\n require('./switch/index').default(App);\n require('./confirm/index').default(App);\n require('./cascader/index').default(App);\n require('./datepicker/index').default(App);\n require('./timepicker/index').default(App);\n require('./datetimepicker/index').default(App);\n require('./durationpicker/index').default(App);\n require('./transfer/index').default(App);\n require('./form/index').default(App); // check\n require('./tabs/index').default(App);\n require('./tags/index').default(App);\n require('./collapse/index').default(App);\n require('./table/index').default(App); // 18.1 options\n require('./paginator/index').default(App);\n require('./info/index').default(App); //!complex 16.1\n require('./preview/index').default(App);\n require('./map/index').default(App);\n require('./file/index').default(App);\n require('./rating/index').default(App);\n\n // require('./chart/index'); // Ignore\n // require('./wysiwyg/index'); // Ignore\n}\n\nexport const Nano = {\n Icons: Icons, Settings: Settings, Install: Install\n};\n\nglobal.keyMods = [];\n\nDom.find(document).on('keydown', (event) => {\n Arr.add(global.keyMods, event.which);\n});\n\nDom.find(document).on('keyup', (event) => {\n Arr.remove(global.keyMods, event.which);\n});\n\nDom.find(document).on('dragstart', (event) => {\n Arr.add(global.keyMods, event.which);\n});\n\nDom.find(document).on('dragend', (event) => {\n global.keyMods = [];\n});\n\nif ( typeof global.nano === 'undefined' ) {\n global.nano = Nano;\n}\n\nexport default Nano;\n","global.NanoPrototypeSizes = [\n 'xs', 'sm', 'md', 'lg'\n];\n\nglobal.NanoPrototypeTypes = [\n 'primary', 'secondary', 'success', 'warning', 'danger', 'info'\n];\n\nglobal.NanoPrototypeBools = [\n 'true', 'false'\n];","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['div'] = Locale.trans('div');\n\nglobal.NanoBuilderIndexies['div'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['div']['props'] = {\n classList: {\n type: 'String'\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['span'] = Locale.trans('span');\n\nglobal.NanoBuilderIndexies['span'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['span']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NButton'] = Locale.trans('NButton');\n\nglobal.NanoBuilderIndexies['NButton'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NButton']['props'] = {\n size: {\n for: ['binds', 'props'], type: 'String', options: global.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], type: 'String', options: global.NanoPrototypeTypes\n },\n link: {\n for: ['binds', 'props'], type: 'Boolean', options: global.NanoPrototypeBools\n },\n square: {\n for: ['binds', 'props'], type: 'Boolean', options: global.NanoPrototypeBools\n },\n disabled: {\n for: ['binds', 'props'], type: 'Boolean', options: global.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\nglobal.NanoBuilderTypes['NButtonGroup'] = Locale.trans('n-button-group');\n\nglobal.NanoBuilderIndexies['NButtonGroup'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NButtonGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NCascader'] = Locale.trans('n-cascader');\n\nglobal.NanoBuilderIndexies['NCascader'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NCascader']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NCheckbox'] = Locale.trans('n-checkbox');\n\nglobal.NanoBuilderIndexies['NCheckbox'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NCheckbox']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NCheckboxGroup'] = Locale.trans('NCheckboxGroup');\n\nglobal.NanoBuilderIndexies['NCheckboxGroup'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NCheckboxGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NConfirm'] = Locale.trans('n-confirm');\n\nglobal.NanoBuilderIndexies['NConfirm'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NConfirm']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NDatepicker'] = Locale.trans('NDatepicker');\n\nglobal.NanoBuilderIndexies['NDatepicker'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NDatepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NDatetimepicker'] = Locale.trans('NDatetimepicker');\n\nglobal.NanoBuilderIndexies['NDatetimepicker'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NDatetimepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NDurationpicker'] = Locale.trans('NDurationpicker');\n\nglobal.NanoBuilderIndexies['NDurationpicker'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NDurationpicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NEmpty'] = Locale.trans('NEmpty');\n\nglobal.NanoBuilderIndexies['NEmpty'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NEmpty']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NForm'] = Locale.trans('NForm');\n\nglobal.NanoBuilderIndexies['NForm'] = {\n childs: true, props: {}\n};\n\nglobal.NanoBuilderIndexies['NForm']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NFormGroup'] = Locale.trans('NFormGroup');\n\nglobal.NanoBuilderIndexies['NFormGroup'] = {\n childs: true, props: {}\n};\n\nglobal.NanoBuilderIndexies['NFormGroup']['props'] = {\n label: {\n for: ['binds', 'props'], type: 'String'\n }\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NFormItem'] = Locale.trans('NFormItem');\n\nglobal.NanoBuilderIndexies['NFormItem'] = {\n childs: true, props: {}\n};\n\nglobal.NanoBuilderIndexies['NFormItem']['props'] = {\n label: {\n for: ['binds', 'props'], type: 'String'\n }\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NInput'] = Locale.trans('NInput');\n\nglobal.NanoBuilderIndexies['NInput'] = {\n childs: false, props: {}\n};\n\nglobal.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: global.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], default: 'primary', type: 'String', options: global.NanoPrototypeTypes\n },\n disabled: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: global.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: global.NanoPrototypeBools\n },\n iconClick: {\n for: ['on'], type: 'String'\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NInputNumber'] = Locale.trans('NInputNumber');\n\nglobal.NanoBuilderIndexies['NInputNumber'] = {\n childs: false, props: {}\n};\n\nglobal.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: global.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: global.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], default: 'primary', type: 'String', options: global.NanoPrototypeTypes\n },\n disabled: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: global.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};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NLoader'] = Locale.trans('NLoader');\n\nglobal.NanoBuilderIndexies['NLoader'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NLoader']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NModal'] = Locale.trans('NModal');\n\nglobal.NanoBuilderIndexies['NModal'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NModal']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NRadio'] = Locale.trans('NRadio');\n\nglobal.NanoBuilderIndexies['NRadio'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NRadio']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NRadioGroup'] = Locale.trans('NRadioGroup');\n\nglobal.NanoBuilderIndexies['NRadioGroup'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NRadioGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NRating'] = Locale.trans('NRating');\n\nglobal.NanoBuilderIndexies['NRating'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NRating']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NSelect'] = Locale.trans('NSelect');\n\nglobal.NanoBuilderIndexies['NSelect'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NSelect']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NSlider'] = Locale.trans('NSlider');\n\nglobal.NanoBuilderIndexies['NSlider'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NSlider']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NSwitch'] = Locale.trans('NSwitch');\n\nglobal.NanoBuilderIndexies['NSwitch'] = {\n childs: true, props: {}\n};\n\nglobal.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: global.NanoPrototypeTypes\n },\n offType: {\n for: ['binds', 'props'], type: 'String', options: global.NanoPrototypeTypes\n },\n size: {\n for: ['binds', 'props'], type: 'String', options: global.NanoPrototypeSizes\n },\n disabled: {\n for: ['binds', 'props'], type: 'Boolean', options: global.NanoPrototypeBools\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NTable'] = Locale.trans('NTable');\n\nglobal.NanoBuilderIndexies['NTable'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NTable']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NTableColumn'] = Locale.trans('NTableColumn');\n\nglobal.NanoBuilderIndexies['NTableColumn'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NTableColumn']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NTabs'] = Locale.trans('NTabs');\n\nglobal.NanoBuilderIndexies['NTabs'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NTabs']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NTabsItem'] = Locale.trans('NTabsItem');\n\nglobal.NanoBuilderIndexies['NTabsItem'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NTabsItem']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NTags'] = Locale.trans('NTags');\n\nglobal.NanoBuilderIndexies['NTags'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NTags']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NTagsItem'] = Locale.trans('NTagsItem');\n\nglobal.NanoBuilderIndexies['NTagsItem'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NTagsItem']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NTimepicker'] = Locale.trans('NTimepicker');\n\nglobal.NanoBuilderIndexies['NTimepicker'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NTimepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nglobal.NanoBuilderTypes['NTransfer'] = Locale.trans('NTransfer');\n\nglobal.NanoBuilderIndexies['NTransfer'] = {\n childs: false, props: {}\n};\n\nglobal.NanoBuilderIndexies['NTransfer']['props'] = {\n //\n};","import Virtualscroller from './src/virtualscroller/virtualscroller.beta';\n\nexport default function (App) {\n App.component(Virtualscroller.name, Virtualscroller);\n}","import Draglist from './src/draglist/draglist';\nimport DraglistItem from './src/draglist-item/draglist-item';\nimport Draggrid from './src/draggrid/draggrid';\nimport DraggridItem from './src/draggrid-item/draggrid-item';\nimport Dropzone from './src/dropzone/dropzone';\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 { Any, Arr, Obj, Dom, Event, UUID } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\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.ctor('renderBody')(props);\n });\n\n return Obj.values(columns);\n },\n\n renderContext()\n {\n let columns = Obj.each(this.elements, (column) => {\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.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 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\";\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\";\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\";\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\";\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\";\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\";\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.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.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\";\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\";\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\";\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\";\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\";\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 Table from './src/table/table';\nimport TableColumn from './src/table-column/table-column';\nimport TableCellString from './src/table-cell/types/table-cell-string';\nimport TableCellBoolean from './src/table-cell/types/table-cell-boolean';\nimport TableCellDatetime from './src/table-cell/types/table-cell-datetime';\nimport TableCellOption from './src/table-cell/types/table-cell-option';\nimport TableCellImage from './src/table-cell/types/table-cell-image';\nimport TableCellMatrix from './src/table-cell/types/table-cell-matrix';\nimport TableCellSelect from './src/table-cell/types/table-cell-select';\nimport TableFilterString from './src/table-filter/types/table-filter-string';\nimport TableFilterBoolean from './src/table-filter/types/table-filter-boolean';\nimport TableFilterDatetime from './src/table-filter/types/table-filter-datetime';\nimport TableFilterOption from './src/table-filter/types/table-filter-option';\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 { 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\";\nimport CtorMixin from \"../../../mixins/src/ctor\";\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\";\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\";\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\";\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\";\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\";\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 Info from './src/info/info';\nimport InfoColumn from './src/info-column/info-column';\nimport InfoFieldString from './src/info-field/types/info-field-string';\nimport InfoFieldBoolean from './src/info-field/types/info-field-boolean';\nimport InfoFieldDatetime from './src/info-field/types/info-field-datetime';\nimport InfoFieldOption from './src/info-field/types/info-field-option';\nimport InfoFieldImage from './src/info-field/types/info-field-image';\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 { 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, 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 NConfig from \"./src/config/config\";\nimport NConfigNext from \"./src/config/config-next\";\nimport NBuilder from \"./src/builder/builder\";\nimport NRefrencePanel from \"./src/reference-panel/reference-panel\";\nimport NRefrencePicker from \"./src/reference-picker/reference-picker\";\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 { 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 Popover from './src/popover/popover';\nimport PopoverGroup from './src/popover-group/popover-group';\nimport PopoverOption from './src/popover-option/popover-option';\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 { 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: [], 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 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","export 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 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 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 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 class={classList}>\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 Form from './src/form/form';\nimport FormGroup from './src/form-group/form-group';\nimport FormItem from './src/form-item/form-item';\n\nexport default function (App) {\n App.component(Form.name, Form);\n App.component(FormGroup.name, FormGroup);\n App.component(FormItem.name, FormItem);\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 Button from './src/button/button';\nimport ButtonGroup from './src/button-group/button-group';\n\nexport default function (App) {\n App.component(Button.name, Button);\n App.component(ButtonGroup.name, ButtonGroup);\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 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 Vue from \"vue\";\n\nimport Select from './src/select/select';\nimport SelectOption from './src/select-option/select-option';\n\nexport default function (App) {\n App.component(Select.name, Select);\n App.component(SelectOption.name, SelectOption);\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 Vue from \"vue\";\n\nimport Checkbox from './src/checkbox/checkbox';\nimport CheckboxGroup from './src/checkbox-group/checkbox-group';\n\nexport default function (App) {\n App.component(Checkbox.name, Checkbox);\n App.component(CheckboxGroup.name, CheckboxGroup);\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 NRadio from './src/radio/radio';\nimport NRadioGroup from './src/radio-group/radio-group';\n\nexport default function (App) {\n App.component(NRadio.name, NRadio);\n App.component(NRadioGroup.name, NRadioGroup);\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 CascaderPanel from './src/cascader-panel/cascader-panel';\nimport Cascader from './src/cascader/cascader';\n\nexport default function (App) {\n App.component(CascaderPanel.name, CascaderPanel);\n App.component(Cascader.name, Cascader);\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 DatepickerPanel from \"./src/datepicker-panel/datepicker-panel\";\nimport Datepicker from \"./src/datepicker/datepicker\";\n\nexport default function (App) {\n App.component(DatepickerPanel.name, DatepickerPanel);\n App.component(Datepicker.name, Datepicker);\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 TimepickerPanel from \"./src/timepicker-panel/timepicker-panel\";\nimport Timepicker from \"./src/timepicker/timepicker\";\n\nexport default function (App) {\n App.component(TimepickerPanel.name, TimepickerPanel);\n App.component(Timepicker.name, Timepicker);\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 },\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 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 Tabs from './src/tabs/tabs';\nimport TabsItem from './src/tabs-item/tabs-item';\n\nexport default function (App) {\n App.component(Tabs.name, Tabs);\n App.component(TabsItem.name, TabsItem);\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 Tags from './src/tags/tags';\nimport TagsItem from './src/tags-item/tags-item';\n\nexport default function (App) {\n App.component(Tags.name, Tags);\n App.component(TagsItem.name, TagsItem);\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 Collapse from './src/collapse/collapse';\nimport CollapseItem from './src/collapse-item/collapse-item';\n\nexport default function (App) {\n App.component(Collapse.name, Collapse);\n App.component(CollapseItem.name, CollapseItem);\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 Preview from './src/preview/preview';\nimport PreviewPlain from './src/preview-plain/preview-plain';\nimport PreviewImage from './src/preview-image/preview-image';\nimport PreviewVideo from './src/preview-video/preview-video';\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 { 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 }\n </div>\n );\n }\n\n}\n","import Map from './src/map/map';\nimport MapMarker from './src/map-marker/map-marker';\n\nexport default function (App) {\n App.component(Map.name, Map);\n App.component(MapMarker.name, MapMarker);\n}\n\n","import { Any, Str, Obj, Dom } from \"@kizmann/pico-js\";\n\nclass AlertFrame {\n\n el = null;\n\n text = '';\n\n icon = '';\n\n type = '';\n\n options = {\n iconPrimary: nano.Icons.info,\n iconSecondary: nano.Icons.info,\n iconSuccess: nano.Icons.success,\n iconWarning: nano.Icons.warning,\n iconDanger: nano.Icons.danger,\n iconInfo: nano.Icons.info\n };\n\n constructor(text, type = 'primary', options = {})\n {\n this.text = text;\n this.type = type;\n\n this.options = Obj.assign(this.options, options);\n\n this.render();\n }\n\n getIcon()\n {\n return Obj.get(this.options,\n 'icon' + Str.ucfirst(this.type));\n }\n\n append(el = document.body)\n {\n this.el.appendTo(el);\n\n Dom.find(document.body).on('keydown', (event) => {\n if ( event.which === 27 ) {\n this.remove();\n }\n }, 'n-alert');\n\n setTimeout(() => this.el.addClass('n-active'), 100);\n }\n\n remove()\n {\n Dom.find(document.body).off('keydown', null, 'n-alert');\n\n this.el.get(0).remove();\n }\n\n render()\n {\n let classList = [\n 'n-alert-frame',\n 'n-alert-frame--' + this.type,\n 'n-alert-frame--' + Alert.size\n ];\n\n this.el = Dom.make('div', {\n classList: classList.join(' ')\n });\n\n let backdrop = Dom.make('div', {\n classList: 'n-alert-backdrop', onclick: () => this.remove()\n });\n\n backdrop.onClick = () => {\n this.remove();\n };\n\n backdrop.appendTo(this.el);\n\n let frame = Dom.make('div', {\n classList: 'n-alert'\n });\n\n frame.appendTo(this.el);\n\n let icon = Dom.make('div', {\n classList: 'n-alert__icon'\n });\n\n icon.appendTo(frame);\n\n let iconSpan = Dom.make('span', {\n classList: this.getIcon()\n });\n\n iconSpan.appendTo(icon);\n\n let text = Dom.make('div', {\n classList: 'n-alert__text'\n });\n\n text.html(this.text).appendTo(frame);\n }\n\n}\n\nexport default class Alert {\n\n static alias = 'Alert';\n\n static size = nano.Settings.notifySize;\n\n static alert = null;\n\n static handle(...args)\n {\n if ( ! Any.isEmpty(Alert.alert) ) {\n Alert.alert.remove();\n }\n\n Alert.alert = new AlertFrame(...args);\n\n Alert.alert.append();\n\n return Alert;\n }\n\n}\n","import Alert from './src/alert/alert';\n\nexport default function (App) {\n App.config.globalProperties[Alert.alias] = window[Alert.alias] = Alert.handle;\n}\n","import { UUID, Str, Obj, Dom } from \"@kizmann/pico-js\";\n\nclass Notification {\n\n el = null;\n\n text = '';\n\n icon = '';\n\n type = '';\n\n options = {\n duration: 4500,\n iconPrimary: nano.Icons.info,\n iconSecondary: nano.Icons.info,\n iconSuccess: nano.Icons.success,\n iconWarning: nano.Icons.warning,\n iconDanger: nano.Icons.danger,\n iconInfo: nano.Icons.info\n };\n\n constructor(text, type = 'primary', options = {})\n {\n this.text = text;\n this.type = type;\n\n this.options = Obj.assign(this.options, options);\n\n this.render();\n }\n\n getIcon()\n {\n return Obj.get(this.options,\n 'icon' + Str.ucfirst(this.type));\n }\n\n append(el = document.body)\n {\n this.el.appendTo(el);\n\n setTimeout(() => this.el.addClass('n-active'), 100);\n\n return this;\n }\n\n remove()\n {\n this.el.get(0).remove();\n\n return this;\n }\n\n render()\n {\n let classList = [\n 'n-notification',\n 'n-notification--' + this.type\n ];\n\n this.el = Dom.make('div', {\n classList: classList.join(' '), onclick: () => this.remove()\n });\n \n\n let icon = Dom.make('div', {\n classList: 'n-notification__icon'\n });\n\n icon.appendTo(this.el);\n\n let iconSpan = Dom.make('span', {\n classList: this.getIcon()\n });\n\n iconSpan.appendTo(icon);\n\n let text = Dom.make('div', {\n classList: 'n-notification__text'\n });\n\n text.html(this.text).appendTo(this.el);\n }\n\n}\n\nexport default class Notify {\n\n static alias = 'Notify';\n\n static size = nano.Settings.notifySize;\n\n static position = nano.Settings.notifyPosition;\n\n static notifications = {};\n\n static handle(...args)\n {\n let uid = Notify.create(undefined, ...args);\n\n let wrapper = Notify.getWrapper();\n\n // Append element to dom\n Notify.notifications[uid].append(wrapper);\n\n // Queue remove\n setTimeout(() => Notify.remove(uid),\n Notify.notifications[uid].options.duration);\n\n return uid;\n }\n\n static create(uid = UUID(), ...args)\n {\n Notify.notifications[uid] = new Notification(...args);\n\n return uid;\n }\n\n static remove(uid)\n {\n if ( Notify.notifications[uid] === undefined ) {\n return;\n }\n\n // Remove dom element\n Notify.notifications[uid].remove();\n\n // Remove from list\n delete Notify.notifications[uid];\n }\n\n static getWrapper()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let style = {\n 'z-index': window.zIndex + 100\n };\n\n let classList = [\n 'n-notification-frame',\n 'n-notification-frame--' + this.size,\n 'n-notification-frame--' + this.position\n ];\n\n if ( Dom.find('.n-notification-frame').empty() === true ) {\n Dom.make('div', { classList: classList.join(' ') }).appendTo(document.body);\n }\n\n Dom.find('.n-notification-frame').css(style);\n\n return Dom.find('.n-notification-frame');\n }\n\n}\n","import Notifcation from './src/notification/notification';\n\nexport default function (App) {\n App.config.globalProperties[Notifcation.alias] = window[Notifcation.alias] = Notifcation.handle;\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 EmptyIcon from './src/empty-icon/empty-icon';\n\nexport default function (App) {\n App.component(EmptyIcon.name, EmptyIcon);\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();\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 Scrollbar from './src/scrollbar/scrollbar.next';\n\nexport default function (App) {\n App.component(Scrollbar.name, Scrollbar);\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 Loader from './src/loader/loader';\n\nexport default function (App) {\n App.component(Loader.name, Loader);\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', \n this.forceWidth, this._.uid);\n\n Dom.find(window).on('resize', \n Any.debounce(this.onResize, 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 Resizer from './src/resizer/resizer';\n\nexport default function (App) {\n App.component(Resizer.name, Resizer);\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 Modal from './src/modal/modal';\n\nexport default function (App) {\n App.component(Modal.name, Modal);\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 Input from './src/input/input';\n\nexport default function (App) {\n App.component(Input.name, Input);\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 InputNumber from \"./src/input-number/input-number\";\n\nexport default function (App) {\n App.component(InputNumber.name, InputNumber);\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 Textarea from './src/textarea/textarea';\n\nexport default function (App) {\n App.component(Textarea.name, Textarea);\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 ( ! 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.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 Vue from \"vue\";\n\nimport Slider from './src/slider/slider';\n\nexport default function (App) {\n App.component(Slider.name, Slider);\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 Vue from \"vue\";\n\nimport Switch from './src/switch/switch';\n\nexport default function (App) {\n App.component(Switch.name, Switch);\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 Confirm from './src/confirm/confirm';\n\nexport default function (App) {\n App.component(Confirm.name, Confirm);\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 if ( this.range ) {\n classList.push('n-range');\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 Datetimepicker from \"./src/datetimepicker/datetimepicker\";\n\nexport default function (App) {\n App.component(Datetimepicker.name, Datetimepicker);\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 Durationpicker from \"./src/durationpicker/durationpicker\";\n\nexport default function (App) {\n App.component(Durationpicker.name, Durationpicker);\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 Transfer from \"./src/transfer/transfer\";\n\nexport default function (App) {\n App.component(Transfer.name, Transfer);\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 Paginator from './src/paginator/paginator';\n\nexport default function (App) {\n App.component(Paginator.name, Paginator);\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 File from './src/file/file';\n\nexport default function (App) {\n App.component(File.name, File);\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 Rating from './src/rating/rating';\n\nexport default function (App) {\n App.component(Rating.name, Rating);\n}\n"],"sourceRoot":""}