@kizmann/nano-ui 2.0.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (716) hide show
  1. package/dist/nano-ui.css +1 -1
  2. package/dist/nano-ui.esm.js +1 -1
  3. package/dist/nano-ui.esm.js.map +1 -1
  4. package/dist/themes/default.css +1 -1
  5. package/package.json +6 -8
  6. package/src/button/{src/button-group → css}/button-group.scss +1 -1
  7. package/src/button/{src/button → css}/button.scss +3 -3
  8. package/src/button/index.scss +2 -2
  9. package/src/button/index.ts +8 -0
  10. package/src/button/js/button/NButton.ts +82 -0
  11. package/src/button/js/button/NButtonController.ts +45 -0
  12. package/src/button/js/button/NButtonData.ts +61 -0
  13. package/src/button/js/button/NButtonView.ts +69 -0
  14. package/src/button/js/button-group/NButtonGroup.ts +35 -0
  15. package/src/button/js/button-group/NButtonGroupController.ts +44 -0
  16. package/src/button/js/button-group/NButtonGroupData.ts +16 -0
  17. package/src/button/js/button-group/NButtonGroupView.ts +36 -0
  18. package/src/cascader/{src/cascader-panel → css}/cascader-panel.scss +1 -1
  19. package/src/cascader/{src/cascader → css}/cascader.scss +7 -1
  20. package/src/cascader/index.scss +2 -2
  21. package/src/cascader/index.ts +8 -0
  22. package/src/cascader/js/cascader/NCascader.ts +76 -0
  23. package/src/cascader/js/cascader/NCascaderController.ts +69 -0
  24. package/src/cascader/js/cascader/NCascaderData.ts +74 -0
  25. package/src/cascader/js/cascader/NCascaderView.ts +151 -0
  26. package/src/cascader/js/cascader-panel/NCascaderPanel.ts +101 -0
  27. package/src/cascader/js/cascader-panel/NCascaderPanelController.ts +126 -0
  28. package/src/cascader/js/cascader-panel/NCascaderPanelData.ts +70 -0
  29. package/src/cascader/js/cascader-panel/NCascaderPanelView.ts +106 -0
  30. package/src/cascader/js/helper/NCascaderHelper.ts +76 -0
  31. package/src/chart/NChart.md +3 -0
  32. package/src/chart/{src/chart-bar → css}/chart-bar.scss +108 -38
  33. package/src/chart/{src/chart-donut → css}/chart-donut.scss +13 -28
  34. package/src/chart/{src/chart-item → css}/chart-item.scss +6 -3
  35. package/src/chart/index.scss +3 -3
  36. package/src/chart/index.ts +10 -0
  37. package/src/chart/js/chart-bar/NChartBar.ts +91 -0
  38. package/src/chart/js/chart-bar/NChartBarController.ts +136 -0
  39. package/src/chart/js/chart-bar/NChartBarData.ts +74 -0
  40. package/src/chart/js/chart-bar/NChartBarView.ts +221 -0
  41. package/src/chart/js/chart-donut/NChartDonut.ts +98 -0
  42. package/src/chart/js/chart-donut/NChartDonutController.ts +145 -0
  43. package/src/chart/js/chart-donut/NChartDonutData.ts +89 -0
  44. package/src/chart/js/chart-donut/NChartDonutView.ts +226 -0
  45. package/src/chart/js/chart-item/NChartItem.ts +57 -0
  46. package/src/chart/js/chart-item/NChartItemController.ts +68 -0
  47. package/src/chart/js/chart-item/NChartItemData.ts +21 -0
  48. package/src/chart/js/chart-item/NChartItemView.ts +23 -0
  49. package/src/checkbox/{src/checkbox-group → css}/checkbox-group.scss +1 -1
  50. package/src/checkbox/{src/checkbox → css}/checkbox.scss +1 -1
  51. package/src/checkbox/index.scss +2 -2
  52. package/src/checkbox/index.ts +8 -0
  53. package/src/checkbox/js/checkbox/NCheckbox.ts +82 -0
  54. package/src/checkbox/js/checkbox/NCheckboxController.ts +67 -0
  55. package/src/checkbox/js/checkbox/NCheckboxControllerGlobal.ts +35 -0
  56. package/src/checkbox/js/checkbox/NCheckboxControllerSingle.ts +70 -0
  57. package/src/checkbox/js/checkbox/NCheckboxData.ts +56 -0
  58. package/src/checkbox/js/checkbox/NCheckboxView.ts +60 -0
  59. package/src/checkbox/js/checkbox-group/NCheckboxGroup.ts +57 -0
  60. package/src/checkbox/js/checkbox-group/NCheckboxGroupController.ts +101 -0
  61. package/src/checkbox/js/checkbox-group/NCheckboxGroupData.ts +42 -0
  62. package/src/checkbox/js/checkbox-group/NCheckboxGroupView.ts +32 -0
  63. package/src/collapse/NCollapse.md +4 -0
  64. package/src/collapse/css/collapse-item.scss +83 -0
  65. package/src/collapse/css/collapse.scss +11 -0
  66. package/src/collapse/index.scss +2 -2
  67. package/src/collapse/index.ts +8 -0
  68. package/src/collapse/js/collapse/NCollapse.ts +78 -0
  69. package/src/collapse/js/collapse/NCollapseController.ts +101 -0
  70. package/src/collapse/js/collapse/NCollapseData.ts +54 -0
  71. package/src/collapse/js/collapse/NCollapseView.ts +44 -0
  72. package/src/collapse/js/collapse-item/NCollapseItem.ts +88 -0
  73. package/src/collapse/js/collapse-item/NCollapseItemController.ts +133 -0
  74. package/src/collapse/js/collapse-item/NCollapseItemData.ts +56 -0
  75. package/src/collapse/js/collapse-item/NCollapseItemView.ts +143 -0
  76. package/src/config/index.ts +6 -0
  77. package/src/config/js/config/NConfig.ts +67 -0
  78. package/src/config/js/config/NConfigController.ts +241 -0
  79. package/src/config/js/config/NConfigData.ts +33 -0
  80. package/src/config/js/config/NConfigView.ts +140 -0
  81. package/src/datetime/NDatetime.md +4 -0
  82. package/src/{datepicker/src/datepicker-panel → datetime/css}/datepicker-panel.scss +58 -75
  83. package/src/{datepicker/src/datepicker → datetime/css}/datepicker.scss +12 -2
  84. package/src/{datetimepicker/src/datetimepicker → datetime/css}/datetimepicker.scss +12 -2
  85. package/src/{durationpicker/src/durationpicker → datetime/css}/durationpicker.scss +21 -3
  86. package/src/{timepicker/src/timepicker-panel → datetime/css}/timepicker-panel.scss +5 -5
  87. package/src/{timepicker/src/timepicker → datetime/css}/timepicker.scss +12 -2
  88. package/src/datetime/index.scss +6 -0
  89. package/src/datetime/index.ts +16 -0
  90. package/src/datetime/js/datepicker/NDatepicker.ts +89 -0
  91. package/src/datetime/js/datepicker/NDatepickerController.ts +224 -0
  92. package/src/datetime/js/datepicker/NDatepickerData.ts +98 -0
  93. package/src/datetime/js/datepicker/NDatepickerView.ts +176 -0
  94. package/src/datetime/js/datepicker-panel/NDatepickerPanel.ts +116 -0
  95. package/src/datetime/js/datepicker-panel/NDatepickerPanelController.ts +254 -0
  96. package/src/datetime/js/datepicker-panel/NDatepickerPanelData.ts +159 -0
  97. package/src/datetime/js/datepicker-panel/NDatepickerPanelView.ts +362 -0
  98. package/src/datetime/js/datetimepicker/NDatetimepicker.ts +102 -0
  99. package/src/datetime/js/datetimepicker/NDatetimepickerController.ts +109 -0
  100. package/src/datetime/js/datetimepicker/NDatetimepickerData.ts +61 -0
  101. package/src/datetime/js/datetimepicker/NDatetimepickerView.ts +121 -0
  102. package/src/datetime/js/durationpicker/NDurationpicker.ts +155 -0
  103. package/src/datetime/js/durationpicker/NDurationpickerController.ts +157 -0
  104. package/src/datetime/js/durationpicker/NDurationpickerData.ts +57 -0
  105. package/src/datetime/js/durationpicker/NDurationpickerView.ts +130 -0
  106. package/src/datetime/js/helper/NDateHelper.ts +137 -0
  107. package/src/datetime/js/timepicker/NTimepicker.ts +52 -0
  108. package/src/datetime/js/timepicker/NTimepickerController.ts +100 -0
  109. package/src/datetime/js/timepicker/NTimepickerData.ts +48 -0
  110. package/src/datetime/js/timepicker/NTimepickerView.ts +79 -0
  111. package/src/datetime/js/timepicker-panel/NTimepickerPanel.ts +93 -0
  112. package/src/datetime/js/timepicker-panel/NTimepickerPanelController.ts +64 -0
  113. package/src/datetime/js/timepicker-panel/NTimepickerPanelData.ts +81 -0
  114. package/src/datetime/js/timepicker-panel/NTimepickerPanelView.ts +167 -0
  115. package/src/draggable/NDraggable.md +4 -0
  116. package/src/draggable/{src/draggrid-item → css}/draggrid-item.scss +10 -9
  117. package/src/draggable/{src/draggrid → css}/draggrid.scss +1 -1
  118. package/src/draggable/css/draghandler.scss +84 -0
  119. package/src/draggable/{src/draglist-item → css}/draglist-item.scss +8 -11
  120. package/src/draggable/{src/draglist → css}/draglist.scss +6 -1
  121. package/src/draggable/{src/dropzone → css}/dropzone.scss +1 -1
  122. package/src/draggable/index.scss +6 -10
  123. package/src/draggable/index.ts +20 -0
  124. package/src/draggable/js/drag/NDragCounter.ts +140 -0
  125. package/src/draggable/js/drag/NDragHandler.ts +240 -0
  126. package/src/draggable/js/drag/NDragIndicator.ts +142 -0
  127. package/src/draggable/js/drag/NDragReciever.ts +136 -0
  128. package/src/draggable/js/drag/NDropTarget.ts +0 -0
  129. package/src/draggable/js/draglist/NDraglist.ts +83 -0
  130. package/src/draggable/js/draglist/NDraglistController.ts +573 -0
  131. package/src/draggable/js/draglist/NDraglistData.ts +94 -0
  132. package/src/draggable/js/draglist/NDraglistView.ts +339 -0
  133. package/src/draggable/js/dropzone/NDropzone.ts +56 -0
  134. package/src/draggable/js/dropzone/NDropzoneController.ts +118 -0
  135. package/src/draggable/js/dropzone/NDropzoneData.ts +28 -0
  136. package/src/draggable/js/dropzone/NDropzoneView.ts +43 -0
  137. package/src/draggable/js/helper/NDragHelper.ts +196 -0
  138. package/src/draggable/js/helper/NVirtualHelper.ts +87 -0
  139. package/src/empty/{src/empty-icon → css}/empty-icon.scss +7 -10
  140. package/src/empty/index.scss +1 -1
  141. package/src/empty/index.ts +6 -0
  142. package/src/empty/js/empty-icon/NEmptyIcon.ts +62 -0
  143. package/src/empty/js/empty-icon/NEmptyIconController.ts +44 -0
  144. package/src/empty/js/empty-icon/NEmptyIconData.ts +39 -0
  145. package/src/empty/js/empty-icon/NEmptyIconView.ts +59 -0
  146. package/src/form/{src/form-bag → css}/form-bag.scss +10 -10
  147. package/src/form/{src/form-frame → css}/form-frame.scss +17 -17
  148. package/src/form/{src/form-group → css}/form-group.scss +7 -8
  149. package/src/form/{src/form-item → css}/form-item.scss +1 -1
  150. package/src/form/{src/form → css}/form.scss +1 -1
  151. package/src/form/index.scss +5 -5
  152. package/src/form/index.ts +14 -0
  153. package/src/form/js/form/NForm.ts +93 -0
  154. package/src/form/js/form/NFormController.ts +125 -0
  155. package/src/form/js/form/NFormData.ts +71 -0
  156. package/src/form/js/form/NFormView.ts +33 -0
  157. package/src/form/js/form-bag/NFormBag.ts +39 -0
  158. package/src/form/js/form-bag/NFormBagController.ts +49 -0
  159. package/src/form/js/form-bag/NFormBagData.ts +20 -0
  160. package/src/form/js/form-bag/NFormBagView.ts +78 -0
  161. package/src/form/js/form-frame/NFormFrame.ts +53 -0
  162. package/src/form/js/form-frame/NFormFrameController.ts +66 -0
  163. package/src/form/js/form-frame/NFormFrameData.ts +23 -0
  164. package/src/form/js/form-frame/NFormFrameView.ts +114 -0
  165. package/src/form/js/form-group/NFormGroup.ts +98 -0
  166. package/src/form/js/form-group/NFormGroupController.ts +102 -0
  167. package/src/form/js/form-group/NFormGroupData.ts +76 -0
  168. package/src/form/js/form-group/NFormGroupView.ts +129 -0
  169. package/src/form/js/form-item/NFormItem.ts +88 -0
  170. package/src/form/js/form-item/NFormItemController.ts +95 -0
  171. package/src/form/js/form-item/NFormItemData.ts +41 -0
  172. package/src/form/js/form-item/NFormItemView.ts +105 -0
  173. package/src/form/js/form-rules/NFormRuleHandler.ts +79 -0
  174. package/src/form/js/form-rules/module/NFormRuleDiffrent.ts +27 -0
  175. package/src/form/js/form-rules/module/NFormRuleEmail.ts +25 -0
  176. package/src/form/js/form-rules/module/NFormRuleMax.ts +29 -0
  177. package/src/form/js/form-rules/module/NFormRuleMaxlength.ts +29 -0
  178. package/src/form/js/form-rules/module/NFormRuleMin.ts +29 -0
  179. package/src/form/js/form-rules/module/NFormRuleMinlength.ts +29 -0
  180. package/src/form/js/form-rules/module/NFormRuleRequired.ts +25 -0
  181. package/src/form/js/form-rules/module/NFormRuleRequiredIf.ts +37 -0
  182. package/src/form/js/form-rules/module/NFormRuleRequiredUnless.ts +37 -0
  183. package/src/form/js/form-rules/module/NFormRuleSame.ts +27 -0
  184. package/src/form/js/form-rules/module/NFormRuleValue.ts +21 -0
  185. package/src/index.esm.ts +137 -0
  186. package/src/index.scss +4 -18
  187. package/src/info/css/info-column.scss +9 -0
  188. package/src/info/{src/info-field → css}/info-field.scss +3 -2
  189. package/src/info/{src/info → css}/info.scss +1 -5
  190. package/src/info/index.scss +3 -3
  191. package/src/info/index.ts +21 -0
  192. package/src/info/js/info/NInfo.ts +78 -0
  193. package/src/info/js/info/NInfoController.ts +47 -0
  194. package/src/info/js/info/NInfoData.ts +39 -0
  195. package/src/info/js/info/NInfoView.ts +54 -0
  196. package/src/info/js/info-cell/NInfoCellString.ts +15 -0
  197. package/src/info/js/info-column/NInfoColumn.ts +80 -0
  198. package/src/info/js/info-column/NInfoColumnController.ts +103 -0
  199. package/src/info/js/info-column/NInfoColumnData.ts +43 -0
  200. package/src/info/js/info-column/NInfoColumnView.ts +83 -0
  201. package/src/{file/src/file/file.scss → input/css/input-file.scss} +6 -6
  202. package/src/{input-number/src/input-number → input/css}/input-number.scss +12 -11
  203. package/src/input/{src/input → css}/input.scss +36 -6
  204. package/src/{textarea/src/textarea → input/css}/textarea.scss +1 -1
  205. package/src/input/index.scss +4 -1
  206. package/src/input/index.ts +12 -0
  207. package/src/input/js/input/NInput.ts +108 -0
  208. package/src/input/js/input/NInputController.ts +52 -0
  209. package/src/input/js/input/NInputData.ts +51 -0
  210. package/src/input/js/input/NInputView.ts +160 -0
  211. package/src/input/js/input-file/NInputFile.ts +93 -0
  212. package/src/input/js/input-file/NInputFileController.ts +67 -0
  213. package/src/input/js/input-file/NInputFileData.ts +50 -0
  214. package/src/input/js/input-file/NInputFileView.ts +94 -0
  215. package/src/input/js/input-number/NInputNumber.ts +108 -0
  216. package/src/input/js/input-number/NInputNumberController.ts +126 -0
  217. package/src/input/js/input-number/NInputNumberData.ts +105 -0
  218. package/src/input/js/input-number/NInputNumberView.ts +169 -0
  219. package/src/input/js/textarea/NTextarea.ts +96 -0
  220. package/src/input/js/textarea/NTextareaController.ts +51 -0
  221. package/src/input/js/textarea/NTextareaData.ts +94 -0
  222. package/src/input/js/textarea/NTextareaView.ts +98 -0
  223. package/src/loader/{src/loader → css}/loader.scss +1 -1
  224. package/src/loader/index.scss +1 -1
  225. package/src/loader/index.ts +6 -0
  226. package/src/loader/js/loader/NLoader.ts +63 -0
  227. package/src/loader/js/loader/NLoaderController.ts +110 -0
  228. package/src/loader/js/loader/NLoaderData.ts +44 -0
  229. package/src/loader/js/loader/NLoaderView.ts +32 -0
  230. package/src/map/NMap.md +4 -0
  231. package/src/map/{src/map → css}/map.scss +1 -1
  232. package/src/map/index.scss +1 -1
  233. package/src/map/index.ts +8 -0
  234. package/src/map/js/map/NMap.ts +60 -0
  235. package/src/map/js/map/NMapController.ts +78 -0
  236. package/src/map/js/map/NMapData.ts +33 -0
  237. package/src/map/js/map/NMapView.ts +33 -0
  238. package/src/map/js/map-marker/NMapMarker.ts +64 -0
  239. package/src/map/js/map-marker/NMapMarkerController.ts +110 -0
  240. package/src/map/js/map-marker/NMapMarkerData.ts +31 -0
  241. package/src/map/js/map-marker/NMapMarkerView.ts +32 -0
  242. package/src/modal/NModal.md +6 -0
  243. package/src/{drawer/src/drawer → modal/css}/drawer.scss +3 -16
  244. package/src/modal/{src/modal → css}/modal.scss +21 -16
  245. package/src/modal/index.scss +2 -1
  246. package/src/modal/index.ts +8 -0
  247. package/src/modal/js/drawer/NDrawer.ts +122 -0
  248. package/src/modal/js/drawer/NDrawerController.ts +114 -0
  249. package/src/modal/js/drawer/NDrawerData.ts +13 -0
  250. package/src/modal/js/drawer/NDrawerView.ts +18 -0
  251. package/src/modal/js/handler/NModalElement.ts +253 -0
  252. package/src/modal/js/handler/NModalHandler.ts +127 -0
  253. package/src/modal/js/modal/NModal.ts +115 -0
  254. package/src/modal/js/modal/NModalController.ts +113 -0
  255. package/src/modal/js/modal/NModalData.ts +74 -0
  256. package/src/modal/js/modal/NModalView.ts +99 -0
  257. package/src/popover/NPopover.md +9 -0
  258. package/src/popover/{src/popover → css}/popover.scss +17 -9
  259. package/src/popover/index.scss +1 -1
  260. package/src/popover/index.ts +10 -0
  261. package/src/popover/js/handler/NPopoverElement.ts +327 -0
  262. package/src/popover/js/handler/NPopoverHandler.ts +111 -0
  263. package/src/popover/js/popover/NPopover.ts +108 -0
  264. package/src/popover/js/popover/NPopoverController.ts +113 -0
  265. package/src/popover/js/popover/NPopoverData.ts +67 -0
  266. package/src/popover/js/popover/NPopoverView.ts +76 -0
  267. package/src/popover/js/popover-group/NPopoverGroup.ts +32 -0
  268. package/src/popover/js/popover-group/NPopoverGroupController.ts +48 -0
  269. package/src/popover/js/popover-group/NPopoverGroupData.ts +16 -0
  270. package/src/popover/js/popover-group/NPopoverGroupView.ts +32 -0
  271. package/src/popover/js/popover-option/NPopoverOption.ts +65 -0
  272. package/src/popover/js/popover-option/NPopoverOptionController.ts +70 -0
  273. package/src/popover/js/popover-option/NPopoverOptionData.ts +41 -0
  274. package/src/popover/js/popover-option/NPopoverOptionView.ts +40 -0
  275. package/src/popover/js/popover-panel/NPopoverPanel.ts +34 -0
  276. package/src/popover/js/popover-panel/NPopoverPanelController.ts +80 -0
  277. package/src/popover/js/popover-panel/NPopoverPanelData.ts +29 -0
  278. package/src/popover/js/popover-panel/NPopoverPanelView.ts +106 -0
  279. package/src/preview/NPreview.md +6 -0
  280. package/src/preview/css/preview-modal.scss +132 -0
  281. package/src/preview/css/preview.scss +216 -0
  282. package/src/preview/index.scss +2 -5
  283. package/src/preview/index.ts +16 -0
  284. package/src/preview/js/handler/NPreviewElement.ts +122 -0
  285. package/src/preview/js/handler/NPreviewHandler.ts +299 -0
  286. package/src/preview/{src/preview/preview-helper.mjs → js/helper/NPreviewHelper.ts} +62 -28
  287. package/src/preview/js/preview/NPreview.ts +143 -0
  288. package/src/preview/js/preview/NPreviewController.ts +121 -0
  289. package/src/preview/js/preview/NPreviewData.ts +117 -0
  290. package/src/preview/js/preview/NPreviewView.ts +237 -0
  291. package/src/preview/js/preview-module/NPreviewFileModule.ts +7 -0
  292. package/src/preview/js/preview-module/NPreviewImageModule.ts +28 -0
  293. package/src/preview/js/preview-module/NPreviewVideoModule.ts +23 -0
  294. package/src/radio/{src/radio-group → css}/radio-group.scss +1 -1
  295. package/src/radio/{src/radio → css}/radio.scss +1 -1
  296. package/src/radio/index.scss +2 -2
  297. package/src/radio/index.ts +8 -0
  298. package/src/radio/js/radio/NRadio.ts +54 -0
  299. package/src/radio/js/radio/NRadioController.ts +71 -0
  300. package/src/radio/js/radio/NRadioData.ts +33 -0
  301. package/src/radio/js/radio/NRadioView.ts +50 -0
  302. package/src/radio/js/radio-group/NRadioGroup.ts +55 -0
  303. package/src/radio/js/radio-group/NRadioGroupController.ts +53 -0
  304. package/src/radio/js/radio-group/NRadioGroupData.ts +32 -0
  305. package/src/radio/js/radio-group/NRadioGroupView.ts +32 -0
  306. package/src/resizer/css/resizer.scss +58 -0
  307. package/src/resizer/index.scss +1 -1
  308. package/src/resizer/index.ts +6 -0
  309. package/src/resizer/js/resizer/NResizer.ts +92 -0
  310. package/src/resizer/js/resizer/NResizerController.ts +189 -0
  311. package/src/resizer/js/resizer/NResizerData.ts +92 -0
  312. package/src/resizer/js/resizer/NResizerView.ts +71 -0
  313. package/src/{grid/src/grid → root/css}/grid.scss +1 -1
  314. package/src/{tooltip/src/tooltip → root/css}/tooltip.scss +1 -1
  315. package/src/root/index.scss +2 -0
  316. package/src/root/index.ts +58 -0
  317. package/src/root/js/controller/GroupController.ts +76 -0
  318. package/src/root/js/data/AlignData.ts +31 -0
  319. package/src/root/js/data/BaseData.ts +141 -0
  320. package/src/root/js/data/DragData.ts +204 -0
  321. package/src/root/js/data/IconData.ts +62 -0
  322. package/src/root/js/data/OptionData.ts +60 -0
  323. package/src/root/js/data/PositionData.ts +64 -0
  324. package/src/root/js/data/TextData.ts +76 -0
  325. package/src/root/js/helper/OptionHelper.ts +102 -0
  326. package/src/root/js/legacy/cmer.ts +34 -0
  327. package/src/root/js/legacy/cslo.ts +14 -0
  328. package/src/root/js/legacy/ctor.ts +23 -0
  329. package/src/root/js/module/Pointer.ts +243 -0
  330. package/src/root/js/module/Styler.ts +119 -0
  331. package/src/root/js/prop/AlignProps.ts +63 -0
  332. package/src/root/js/prop/BaseProps.ts +89 -0
  333. package/src/root/js/prop/DragProps.ts +152 -0
  334. package/src/root/js/prop/IconProps.ts +51 -0
  335. package/src/root/js/prop/OptionProps.ts +26 -0
  336. package/src/root/js/prop/PositionProps.ts +77 -0
  337. package/src/root/js/prop/TextProps.ts +46 -0
  338. package/src/root/js/proto/ProtoController.ts +430 -0
  339. package/src/root/js/proto/ProtoData.ts +108 -0
  340. package/src/root/js/proto/ProtoExtend.ts +20 -0
  341. package/src/root/js/proto/ProtoView.ts +152 -0
  342. package/src/scrollbar/NScrollbar.md +7 -0
  343. package/src/scrollbar/{src/scrollbar → css}/scrollbar.scss +26 -25
  344. package/src/scrollbar/css/vitrualbar.scss +47 -0
  345. package/src/scrollbar/index.scss +2 -1
  346. package/src/scrollbar/index.ts +8 -0
  347. package/src/scrollbar/js/handler/NScrollbarElement.ts +441 -0
  348. package/src/scrollbar/js/handler/NScrollbarHelper.ts +51 -0
  349. package/src/scrollbar/js/scrollbar/NScrollbar.ts +61 -0
  350. package/src/scrollbar/js/scrollbar/NScrollbarController.ts +151 -0
  351. package/src/scrollbar/js/scrollbar/NScrollbarData.ts +56 -0
  352. package/src/scrollbar/js/scrollbar/NScrollbarView.ts +60 -0
  353. package/src/scrollbar/js/virtualbar/NVirtualbar.ts +107 -0
  354. package/src/scrollbar/js/virtualbar/NVirtualbarController.ts +212 -0
  355. package/src/scrollbar/js/virtualbar/NVirtualbarData.ts +138 -0
  356. package/src/scrollbar/js/virtualbar/NVirtualbarView.ts +242 -0
  357. package/src/select/css/select-option.scss +1 -0
  358. package/src/select/{src/select → css}/select.scss +1 -1
  359. package/src/select/index.scss +2 -2
  360. package/src/select/index.ts +6 -0
  361. package/src/select/js/select/NSelect.ts +89 -0
  362. package/src/select/js/select/NSelectController.ts +200 -0
  363. package/src/select/js/select/NSelectData.ts +87 -0
  364. package/src/select/js/select/NSelectView.ts +220 -0
  365. package/src/{alert/src/alert → signal/css}/alert.scss +21 -19
  366. package/src/{confirm/src/confirm → signal/css}/confirm.scss +5 -5
  367. package/src/{notification/src/notification/notification.scss → signal/css/notify.scss} +19 -19
  368. package/src/signal/index.scss +3 -0
  369. package/src/signal/index.ts +20 -0
  370. package/src/signal/js/alert/NAlertElement.ts +155 -0
  371. package/src/signal/js/alert/NAlertHandler.ts +26 -0
  372. package/src/signal/js/confirm/NConfirmElement.ts +204 -0
  373. package/src/signal/js/confirm/NConfirmHandler.ts +26 -0
  374. package/src/signal/js/notify/NNotifyElement.ts +106 -0
  375. package/src/signal/js/notify/NNotifyHandler.ts +64 -0
  376. package/src/slider/NSlider.md +3 -0
  377. package/src/slider/{src/slider → css}/slider.scss +1 -1
  378. package/src/slider/index.scss +1 -1
  379. package/src/slider/index.ts +6 -0
  380. package/src/slider/js/slider/NSlider.ts +86 -0
  381. package/src/slider/js/slider/NSliderController.ts +204 -0
  382. package/src/slider/js/slider/NSliderData.ts +86 -0
  383. package/src/slider/js/slider/NSliderView.ts +107 -0
  384. package/src/switch/{src/switch → css}/switch.scss +1 -1
  385. package/src/switch/index.scss +1 -1
  386. package/src/switch/index.ts +6 -0
  387. package/src/switch/js/switch/NSwitch.ts +84 -0
  388. package/src/switch/js/switch/NSwitchController.ts +71 -0
  389. package/src/switch/js/switch/NSwitchData.ts +84 -0
  390. package/src/switch/js/switch/NSwitchView.ts +50 -0
  391. package/src/{paginator/src/paginator → table/css}/paginator.scss +1 -1
  392. package/src/table/{src/table-cell → css}/table-cell.scss +1 -1
  393. package/src/table/{src/table-column → css}/table-column.scss +26 -4
  394. package/src/table/{src/table-filter → css}/table-filter.scss +1 -1
  395. package/src/table/{src/table → css}/table.scss +18 -4
  396. package/src/table/index.scss +5 -4
  397. package/src/table/index.ts +46 -0
  398. package/src/table/js/paginator/NPaginator.ts +115 -0
  399. package/src/table/js/paginator/NPaginatorController.ts +77 -0
  400. package/src/table/js/paginator/NPaginatorData.ts +68 -0
  401. package/src/table/js/paginator/NPaginatorView.ts +210 -0
  402. package/src/table/js/plugin/NTableMatrixPlugin.ts +146 -0
  403. package/src/table/js/plugin/NTableSelectPlugin.ts +92 -0
  404. package/src/table/js/table/NTable.ts +88 -0
  405. package/src/table/js/table/NTableController.ts +237 -0
  406. package/src/table/js/table/NTableData.ts +94 -0
  407. package/src/table/js/table/NTableView.ts +395 -0
  408. package/src/table/js/table-cell/NTableCellBoolean.ts +19 -0
  409. package/src/table/js/table-cell/NTableCellDatetime.ts +19 -0
  410. package/src/table/js/table-cell/NTableCellImage.ts +34 -0
  411. package/src/table/js/table-cell/NTableCellMatrix.ts +33 -0
  412. package/src/table/js/table-cell/NTableCellOption.ts +18 -0
  413. package/src/table/js/table-cell/NTableCellSelect.ts +33 -0
  414. package/src/table/js/table-cell/NTableCellString.ts +15 -0
  415. package/src/table/js/table-column/NTableColumn.ts +185 -0
  416. package/src/table/js/table-column/NTableColumnController.ts +132 -0
  417. package/src/table/js/table-column/NTableColumnData.ts +120 -0
  418. package/src/table/js/table-column/NTableColumnView.ts +23 -0
  419. package/src/table/js/table-filter/NTableFilterDatetime.ts +53 -0
  420. package/src/table/js/table-filter/NTableFilterOption.ts +53 -0
  421. package/src/table/js/table-filter/NTableFilterString.ts +54 -0
  422. package/src/tabs/NTabs.md +5 -0
  423. package/src/tabs/css/tabs-item.scss +62 -0
  424. package/src/tabs/{src/tabs → css}/tabs.scss +6 -34
  425. package/src/tabs/index.scss +2 -2
  426. package/src/tabs/index.ts +8 -0
  427. package/src/tabs/js/tabs/NTabs.ts +85 -0
  428. package/src/tabs/js/tabs/NTabsController.ts +140 -0
  429. package/src/tabs/js/tabs/NTabsData.ts +65 -0
  430. package/src/tabs/js/tabs/NTabsView.ts +64 -0
  431. package/src/tabs/js/tabs-item/NTabsItem.ts +88 -0
  432. package/src/tabs/js/tabs-item/NTabsItemController.ts +120 -0
  433. package/src/tabs/js/tabs-item/NTabsItemData.ts +56 -0
  434. package/src/tabs/js/tabs-item/NTabsItemView.ts +111 -0
  435. package/src/transfer/{src/transfer → css}/transfer.scss +6 -4
  436. package/src/transfer/index.scss +1 -1
  437. package/src/transfer/index.ts +6 -0
  438. package/src/transfer/js/transfer/NTransfer.ts +100 -0
  439. package/src/transfer/js/transfer/NTransferController.ts +189 -0
  440. package/src/transfer/js/transfer/NTransferData.ts +101 -0
  441. package/src/transfer/js/transfer/NTransferView.ts +203 -0
  442. package/src/{rating/src/rating → visuals/css}/rating.scss +1 -1
  443. package/src/{tags/src/tags-item/tags-item.scss → visuals/css/tag.scss} +6 -6
  444. package/src/visuals/index.scss +2 -0
  445. package/src/visuals/index.ts +8 -0
  446. package/src/visuals/js/rating/NRating.ts +84 -0
  447. package/src/visuals/js/rating/NRatingController.ts +45 -0
  448. package/src/visuals/js/rating/NRatingData.ts +59 -0
  449. package/src/visuals/js/rating/NRatingView.ts +84 -0
  450. package/src/visuals/js/tag/NTag.ts +45 -0
  451. package/src/visuals/js/tag/NTagController.ts +45 -0
  452. package/src/visuals/js/tag/NTagData.ts +18 -0
  453. package/src/visuals/js/tag/NTagView.ts +43 -0
  454. package/themes/default/alert/src/alert/alert.scss +3 -4
  455. package/themes/default/chart/src/chart-donut/chart-donut.scss +15 -6
  456. package/themes/default/collapse/src/collapse/collapse.scss +0 -9
  457. package/themes/default/collapse/src/collapse-item/collapse-item.scss +15 -4
  458. package/themes/default/confirm/src/confirm/confirm.scss +5 -6
  459. package/themes/default/datepicker/src/datepicker/datepicker.scss +0 -13
  460. package/themes/default/datepicker/src/datepicker-panel/datepicker-panel.scss +15 -5
  461. package/themes/default/demo/src/demo/demo.scss +2 -2
  462. package/themes/default/draggable/src/draggrid-item/draggrid-item.scss +6 -14
  463. package/themes/default/draggable/src/draghandler/draghandler.scss +59 -3
  464. package/themes/default/draggable/src/draglist-item/draglist-item.scss +5 -13
  465. package/themes/default/drawer/src/drawer/drawer.scss +1 -1
  466. package/themes/default/durationpicker/src/durationpicker/durationpicker.scss +3 -2
  467. package/themes/default/empty/src/empty-icon/empty-icon.scss +3 -3
  468. package/themes/default/example.scss +3 -3
  469. package/themes/default/form/src/form/form.scss +4 -0
  470. package/themes/default/form/src/form-frame/form-frame.scss +6 -6
  471. package/themes/default/info/src/info-column/info-column.scss +1 -1
  472. package/themes/default/info/src/info-field/info-field.scss +1 -1
  473. package/themes/default/input/src/input/input.scss +9 -2
  474. package/themes/default/modal/src/modal/modal.scss +1 -1
  475. package/themes/default/notification/src/notification/notification.scss +3 -3
  476. package/themes/default/popover/src/popover/popover.scss +5 -2
  477. package/themes/default/preview/index.scss +1 -3
  478. package/themes/default/preview/src/preview/preview.scss +35 -0
  479. package/themes/default/preview/src/preview-modal/preview-modal.scss +6 -4
  480. package/themes/default/resizer/src/resizer/resizer.scss +7 -1
  481. package/themes/default/root/vars/colors-dark-bluish.scss +8 -2
  482. package/themes/default/root/vars/colors-dark.scss +8 -2
  483. package/themes/default/root/vars/colors-light-bluish.scss +8 -25
  484. package/themes/default/root/vars/colors-light.scss +8 -25
  485. package/themes/default/root/vars/sizes-default.scss +1 -1
  486. package/themes/default/switch/src/switch/switch.scss +2 -2
  487. package/themes/default/table/src/table-column/table-column.scss +2 -2
  488. package/themes/default/tabs/src/tabs-item/tabs-item.scss +7 -7
  489. package/themes/default/tags/src/tags-item/tags-item.scss +2 -8
  490. package/themes/default/transfer/src/transfer/transfer.scss +2 -3
  491. package/dist/themes/webservy.css +0 -1
  492. package/src/alert/index.js +0 -16
  493. package/src/alert/index.scss +0 -1
  494. package/src/alert/src/alert/alert-handler.mjs +0 -143
  495. package/src/button/index.js +0 -7
  496. package/src/button/src/button/button.jsx +0 -164
  497. package/src/button/src/button-group/button-group.jsx +0 -30
  498. package/src/cascader/index.js +0 -7
  499. package/src/cascader/src/cascader/cascader.jsx +0 -346
  500. package/src/cascader/src/cascader-panel/cascader-panel.jsx +0 -362
  501. package/src/chart/index.js +0 -9
  502. package/src/chart/src/chart-bar/chart-bar.jsx +0 -344
  503. package/src/chart/src/chart-donut/chart-donut.jsx +0 -404
  504. package/src/chart/src/chart-item/chart-item.jsx +0 -110
  505. package/src/checkbox/index.js +0 -7
  506. package/src/checkbox/src/checkbox/checkbox.jsx +0 -317
  507. package/src/checkbox/src/checkbox-group/checkbox-group.jsx +0 -237
  508. package/src/collapse/index.js +0 -7
  509. package/src/collapse/src/collapse/collapse.jsx +0 -163
  510. package/src/collapse/src/collapse/collapse.scss +0 -44
  511. package/src/collapse/src/collapse-item/collapse-item.jsx +0 -290
  512. package/src/collapse/src/collapse-item/collapse-item.scss +0 -56
  513. package/src/config/index.js +0 -13
  514. package/src/config/index.scss +0 -3
  515. package/src/config/src/builder/builder.jsx +0 -935
  516. package/src/config/src/builder/builder.scss +0 -284
  517. package/src/config/src/builder/prototypes/button/n-button-group.js +0 -11
  518. package/src/config/src/builder/prototypes/button/n-button.js +0 -37
  519. package/src/config/src/builder/prototypes/cascader/n-cascader.js +0 -11
  520. package/src/config/src/builder/prototypes/checkbox/n-checkbox-group.js +0 -11
  521. package/src/config/src/builder/prototypes/checkbox/n-checkbox.js +0 -11
  522. package/src/config/src/builder/prototypes/confirm/n-confirm.js +0 -11
  523. package/src/config/src/builder/prototypes/datepicker/n-datepicker.js +0 -11
  524. package/src/config/src/builder/prototypes/datetimepicker/n-datetimepicker.js +0 -11
  525. package/src/config/src/builder/prototypes/durationpicker/n-durationpicker.js +0 -11
  526. package/src/config/src/builder/prototypes/empty/n-empty.js +0 -11
  527. package/src/config/src/builder/prototypes/form/n-form-group.js +0 -13
  528. package/src/config/src/builder/prototypes/form/n-form-item.js +0 -13
  529. package/src/config/src/builder/prototypes/form/n-form.js +0 -11
  530. package/src/config/src/builder/prototypes/html/div.js +0 -13
  531. package/src/config/src/builder/prototypes/html/nano.js +0 -11
  532. package/src/config/src/builder/prototypes/html/span.js +0 -11
  533. package/src/config/src/builder/prototypes/info/n-info-column.js +0 -11
  534. package/src/config/src/builder/prototypes/info/n-info.js +0 -11
  535. package/src/config/src/builder/prototypes/input/n-input.js +0 -40
  536. package/src/config/src/builder/prototypes/input-number/n-input-number.js +0 -49
  537. package/src/config/src/builder/prototypes/loader/n-loader.js +0 -11
  538. package/src/config/src/builder/prototypes/modal/n-modal.js +0 -11
  539. package/src/config/src/builder/prototypes/popover/n-popover-group.js +0 -11
  540. package/src/config/src/builder/prototypes/popover/n-popover-item.js +0 -11
  541. package/src/config/src/builder/prototypes/popover/n-popover.js +0 -11
  542. package/src/config/src/builder/prototypes/radio/n-radio-group.js +0 -11
  543. package/src/config/src/builder/prototypes/radio/n-radio.js +0 -11
  544. package/src/config/src/builder/prototypes/rating/n-rating.js +0 -11
  545. package/src/config/src/builder/prototypes/select/n-select.js +0 -11
  546. package/src/config/src/builder/prototypes/slider/n-slider.js +0 -11
  547. package/src/config/src/builder/prototypes/switch/n-switch.js +0 -31
  548. package/src/config/src/builder/prototypes/table/n-table-column.js +0 -11
  549. package/src/config/src/builder/prototypes/table/n-table.js +0 -11
  550. package/src/config/src/builder/prototypes/tabs/n-tabs-item.js +0 -11
  551. package/src/config/src/builder/prototypes/tabs/n-tabs.js +0 -11
  552. package/src/config/src/builder/prototypes/tags/n-tags-item.js +0 -11
  553. package/src/config/src/builder/prototypes/tags/n-tags.js +0 -11
  554. package/src/config/src/builder/prototypes/textarea/n-textarea.js +0 -11
  555. package/src/config/src/builder/prototypes/timepicker/n-timepicker.js +0 -11
  556. package/src/config/src/builder/prototypes/transfer/n-transfer.js +0 -11
  557. package/src/config/src/config/config-next.jsx +0 -355
  558. package/src/config/src/config/config.jsx +0 -261
  559. package/src/config/src/reference-panel/reference-panel.jsx +0 -196
  560. package/src/config/src/reference-panel/reference-panel.scss +0 -197
  561. package/src/config/src/reference-picker/reference-picker.jsx +0 -146
  562. package/src/config/src/reference-picker/reference-picker.scss +0 -3
  563. package/src/confirm/index.js +0 -27
  564. package/src/confirm/index.scss +0 -1
  565. package/src/confirm/src/confirm/confirm-handler.mjs +0 -227
  566. package/src/confirm/src/confirm/confirm.jsx +0 -214
  567. package/src/datepicker/index.js +0 -7
  568. package/src/datepicker/index.scss +0 -2
  569. package/src/datepicker/src/datepicker/datepicker.jsx +0 -623
  570. package/src/datepicker/src/datepicker-panel/datepicker-panel.jsx +0 -705
  571. package/src/datetimepicker/index.js +0 -5
  572. package/src/datetimepicker/index.scss +0 -1
  573. package/src/datetimepicker/src/datetimepicker/datetimepicker.jsx +0 -418
  574. package/src/draggable/index.js +0 -13
  575. package/src/draggable/src/draggrid/draggrid.jsx +0 -754
  576. package/src/draggable/src/draggrid-item/draggrid-item.jsx +0 -268
  577. package/src/draggable/src/draghandler/draghandler.js +0 -860
  578. package/src/draggable/src/draghandler/draghandler.scss +0 -26
  579. package/src/draggable/src/draglist/draglist.jsx +0 -923
  580. package/src/draggable/src/draglist-item/draglist-item.jsx +0 -343
  581. package/src/draggable/src/dropzone/dropzone.jsx +0 -194
  582. package/src/drawer/index.js +0 -5
  583. package/src/drawer/index.scss +0 -1
  584. package/src/drawer/src/drawer/drawer.jsx +0 -440
  585. package/src/durationpicker/index.js +0 -5
  586. package/src/durationpicker/index.scss +0 -1
  587. package/src/durationpicker/src/durationpicker/durationpicker.jsx +0 -463
  588. package/src/empty/index.js +0 -5
  589. package/src/empty/src/empty-icon/empty-icon.jsx +0 -69
  590. package/src/file/index.js +0 -6
  591. package/src/file/index.scss +0 -1
  592. package/src/file/src/file/file.jsx +0 -219
  593. package/src/form/index.js +0 -13
  594. package/src/form/src/form/form-rules.mjs +0 -212
  595. package/src/form/src/form/form.jsx +0 -346
  596. package/src/form/src/form-bag/form-bag.jsx +0 -90
  597. package/src/form/src/form-frame/form-frame.jsx +0 -313
  598. package/src/form/src/form-group/form-group.jsx +0 -332
  599. package/src/form/src/form-item/form-item.jsx +0 -305
  600. package/src/grid/index.scss +0 -1
  601. package/src/index.esm.js +0 -177
  602. package/src/info/index.js +0 -17
  603. package/src/info/src/info/info.jsx +0 -208
  604. package/src/info/src/info-column/info-column.jsx +0 -171
  605. package/src/info/src/info-column/info-column.scss +0 -5
  606. package/src/info/src/info-field/info-field.jsx +0 -43
  607. package/src/info/src/info-field/types/info-field-boolean.jsx +0 -25
  608. package/src/info/src/info-field/types/info-field-datetime.jsx +0 -25
  609. package/src/info/src/info-field/types/info-field-image.jsx +0 -38
  610. package/src/info/src/info-field/types/info-field-option.jsx +0 -54
  611. package/src/info/src/info-field/types/info-field-string.jsx +0 -25
  612. package/src/input/index.js +0 -5
  613. package/src/input/src/input/input.jsx +0 -257
  614. package/src/input-number/index.js +0 -5
  615. package/src/input-number/index.scss +0 -1
  616. package/src/input-number/src/input-number/input-number.jsx +0 -441
  617. package/src/loader/index.js +0 -5
  618. package/src/loader/src/loader/loader.jsx +0 -136
  619. package/src/map/index.js +0 -8
  620. package/src/map/src/map/map.jsx +0 -98
  621. package/src/map/src/map-marker/map-marker.jsx +0 -145
  622. package/src/mixins/src/cmer.js +0 -36
  623. package/src/mixins/src/cslo.js +0 -17
  624. package/src/mixins/src/ctor.js +0 -25
  625. package/src/mixins/src/node.js +0 -15
  626. package/src/modal/index.js +0 -5
  627. package/src/modal/src/modal/modal.jsx +0 -442
  628. package/src/notification/index.js +0 -25
  629. package/src/notification/index.scss +0 -1
  630. package/src/notification/src/notification/notification-element.mjs +0 -74
  631. package/src/notification/src/notification/notification-handler.mjs +0 -75
  632. package/src/paginator/index.js +0 -5
  633. package/src/paginator/index.scss +0 -1
  634. package/src/paginator/src/paginator/paginator.jsx +0 -416
  635. package/src/popover/index.js +0 -26
  636. package/src/popover/src/popover/popover-element.mjs +0 -578
  637. package/src/popover/src/popover/popover-handler.mjs +0 -122
  638. package/src/popover/src/popover/popover-helper.mjs +0 -75
  639. package/src/popover/src/popover/popover.jsx +0 -307
  640. package/src/popover/src/popover-group/popover-group.jsx +0 -51
  641. package/src/popover/src/popover-option/popover-option.jsx +0 -204
  642. package/src/preview/index.js +0 -54
  643. package/src/preview/src/preview/preview-handler.mjs +0 -205
  644. package/src/preview/src/preview/preview.jsx +0 -234
  645. package/src/preview/src/preview/preview.scss +0 -41
  646. package/src/preview/src/preview-image/preview-image.jsx +0 -115
  647. package/src/preview/src/preview-image/preview-image.scss +0 -68
  648. package/src/preview/src/preview-modal/preview-modal.jsx +0 -126
  649. package/src/preview/src/preview-modal/preview-modal.scss +0 -69
  650. package/src/preview/src/preview-plain/preview-plain.jsx +0 -87
  651. package/src/preview/src/preview-plain/preview-plain.scss +0 -44
  652. package/src/preview/src/preview-video/preview-video.jsx +0 -142
  653. package/src/preview/src/preview-video/preview-video.scss +0 -33
  654. package/src/radio/index.js +0 -7
  655. package/src/radio/src/radio/radio.jsx +0 -186
  656. package/src/radio/src/radio-group/radio-group.jsx +0 -109
  657. package/src/rating/index.js +0 -5
  658. package/src/rating/index.scss +0 -1
  659. package/src/rating/src/rating/rating.jsx +0 -145
  660. package/src/resizer/index.js +0 -7
  661. package/src/resizer/src/resizer/resizer-next.jsx +0 -556
  662. package/src/resizer/src/resizer/resizer.jsx +0 -527
  663. package/src/resizer/src/resizer/resizer.scss +0 -56
  664. package/src/scrollbar/index.js +0 -5
  665. package/src/scrollbar/src/scrollbar/scrollbar.jsx +0 -659
  666. package/src/select/index.js +0 -7
  667. package/src/select/src/select/select.jsx +0 -933
  668. package/src/select/src/select-option/select-option.jsx +0 -162
  669. package/src/select/src/select-option/select-option.scss +0 -1
  670. package/src/slider/index.js +0 -5
  671. package/src/slider/src/slider/slider.jsx +0 -392
  672. package/src/switch/index.js +0 -5
  673. package/src/switch/src/switch/switch.jsx +0 -188
  674. package/src/table/index.js +0 -30
  675. package/src/table/src/table/table.jsx +0 -678
  676. package/src/table/src/table-cell/table-cell.jsx +0 -91
  677. package/src/table/src/table-cell/types/table-cell-boolean.jsx +0 -29
  678. package/src/table/src/table-cell/types/table-cell-datetime.jsx +0 -29
  679. package/src/table/src/table-cell/types/table-cell-image.jsx +0 -53
  680. package/src/table/src/table-cell/types/table-cell-matrix.jsx +0 -155
  681. package/src/table/src/table-cell/types/table-cell-option.jsx +0 -58
  682. package/src/table/src/table-cell/types/table-cell-select.jsx +0 -105
  683. package/src/table/src/table-cell/types/table-cell-string.jsx +0 -29
  684. package/src/table/src/table-column/table-column.jsx +0 -506
  685. package/src/table/src/table-filter/table-filter.jsx +0 -242
  686. package/src/table/src/table-filter/types/table-filter-boolean.jsx +0 -40
  687. package/src/table/src/table-filter/types/table-filter-datetime.jsx +0 -43
  688. package/src/table/src/table-filter/types/table-filter-option.jsx +0 -66
  689. package/src/table/src/table-filter/types/table-filter-string.jsx +0 -45
  690. package/src/tabs/index.js +0 -7
  691. package/src/tabs/src/tabs/tabs.jsx +0 -219
  692. package/src/tabs/src/tabs-item/tabs-item.jsx +0 -201
  693. package/src/tabs/src/tabs-item/tabs-item.scss +0 -30
  694. package/src/tags/index.js +0 -7
  695. package/src/tags/index.scss +0 -2
  696. package/src/tags/src/tags/tags.jsx +0 -110
  697. package/src/tags/src/tags/tags.scss +0 -9
  698. package/src/tags/src/tags-item/tags-item.jsx +0 -119
  699. package/src/textarea/index.js +0 -5
  700. package/src/textarea/index.scss +0 -1
  701. package/src/textarea/src/textarea/textarea.jsx +0 -157
  702. package/src/timepicker/index.js +0 -7
  703. package/src/timepicker/index.scss +0 -2
  704. package/src/timepicker/src/timepicker/timepicker.jsx +0 -335
  705. package/src/timepicker/src/timepicker-panel/timepicker-panel.jsx +0 -317
  706. package/src/tooltip/index.scss +0 -1
  707. package/src/transfer/index.js +0 -5
  708. package/src/transfer/src/transfer/transfer.jsx +0 -543
  709. package/src/virtualscroller/index.js +0 -5
  710. package/src/virtualscroller/index.scss +0 -1
  711. package/src/virtualscroller/src/virtualscroller/virtualscroller.jsx +0 -547
  712. package/src/virtualscroller/src/virtualscroller/virtualscroller.scss +0 -52
  713. package/themes/default/preview/src/preview-image/preview-image.scss +0 -5
  714. package/types/index.d.ts +0 -61
  715. /package/src/root/{helpers.scss → css/helpers.scss} +0 -0
  716. /package/src/root/{vars.scss → css/vars-delete.scss} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"nano-ui.esm.js","mappings":"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","sources":["webpack://Nano/webpack/universalModuleDefinition","webpack://Nano/external umd {\"root\":\"Vue\",\"commonjs2\":\"vue\",\"commonjs\":\"vue\",\"amd\":\"vue\"}","webpack://Nano/external umd {\"root\":\"pi\",\"commonjs2\":\"@kizmann/pico-js\",\"commonjs\":\"@kizmann/pico-js\",\"amd\":\"@kizmann/pico-js\"}","webpack://Nano/webpack/bootstrap","webpack://Nano/webpack/runtime/define property getters","webpack://Nano/webpack/runtime/hasOwnProperty shorthand","webpack://Nano/webpack/runtime/make namespace object","webpack://Nano/./src/mixins/src/ctor.js","webpack://Nano/./src/mixins/src/cmer.js","webpack://Nano/./src/mixins/src/cslo.js","webpack://Nano/./src/alert/src/alert/alert-handler.mjs","webpack://Nano/./src/notification/src/notification/notification-element.mjs","webpack://Nano/./src/notification/src/notification/notification-handler.mjs","webpack://Nano/./src/empty/src/empty-icon/empty-icon.jsx","webpack://Nano/./src/config/src/config/config.jsx","webpack://Nano/./src/config/src/config/config-next.jsx","webpack://Nano/./src/scrollbar/src/scrollbar/scrollbar.jsx","webpack://Nano/./src/virtualscroller/src/virtualscroller/virtualscroller.jsx","webpack://Nano/./src/draggable/src/draghandler/draghandler.js","webpack://Nano/./src/draggable/src/draglist/draglist.jsx","webpack://Nano/./src/draggable/src/draglist-item/draglist-item.jsx","webpack://Nano/./src/draggable/src/draggrid/draggrid.jsx","webpack://Nano/./src/draggable/src/draggrid-item/draggrid-item.jsx","webpack://Nano/./src/draggable/src/dropzone/dropzone.jsx","webpack://Nano/./src/loader/src/loader/loader.jsx","webpack://Nano/./src/resizer/src/resizer/resizer.jsx","webpack://Nano/./src/resizer/src/resizer/resizer-next.jsx","webpack://Nano/./src/popover/src/popover/popover.jsx","webpack://Nano/./src/popover/src/popover-group/popover-group.jsx","webpack://Nano/./src/popover/src/popover-option/popover-option.jsx","webpack://Nano/./src/popover/src/popover/popover-helper.mjs","webpack://Nano/./src/popover/src/popover/popover-handler.mjs","webpack://Nano/./src/popover/src/popover/popover-element.mjs","webpack://Nano/./src/modal/src/modal/modal.jsx","webpack://Nano/./src/button/src/button/button.jsx","webpack://Nano/./src/button/src/button-group/button-group.jsx","webpack://Nano/./src/input/src/input/input.jsx","webpack://Nano/./src/input-number/src/input-number/input-number.jsx","webpack://Nano/./src/textarea/src/textarea/textarea.jsx","webpack://Nano/./src/select/src/select/select.jsx","webpack://Nano/./src/select/src/select-option/select-option.jsx","webpack://Nano/./src/checkbox/src/checkbox/checkbox.jsx","webpack://Nano/./src/checkbox/src/checkbox-group/checkbox-group.jsx","webpack://Nano/./src/radio/src/radio/radio.jsx","webpack://Nano/./src/radio/src/radio-group/radio-group.jsx","webpack://Nano/./src/slider/src/slider/slider.jsx","webpack://Nano/./src/switch/src/switch/switch.jsx","webpack://Nano/./src/confirm/src/confirm/confirm.jsx","webpack://Nano/./src/confirm/src/confirm/confirm-handler.mjs","webpack://Nano/./src/cascader/src/cascader-panel/cascader-panel.jsx","webpack://Nano/./src/cascader/src/cascader/cascader.jsx","webpack://Nano/./src/datepicker/src/datepicker-panel/datepicker-panel.jsx","webpack://Nano/./src/datepicker/src/datepicker/datepicker.jsx","webpack://Nano/./src/timepicker/src/timepicker-panel/timepicker-panel.jsx","webpack://Nano/./src/timepicker/src/timepicker/timepicker.jsx","webpack://Nano/./src/datetimepicker/src/datetimepicker/datetimepicker.jsx","webpack://Nano/./src/durationpicker/src/durationpicker/durationpicker.jsx","webpack://Nano/./src/transfer/src/transfer/transfer.jsx","webpack://Nano/./src/form/src/form/form-rules.mjs","webpack://Nano/./src/form/src/form/form.jsx","webpack://Nano/./src/form/src/form-bag/form-bag.jsx","webpack://Nano/./src/form/src/form-group/form-group.jsx","webpack://Nano/./src/form/src/form-item/form-item.jsx","webpack://Nano/./src/form/src/form-frame/form-frame.jsx","webpack://Nano/./src/tabs/src/tabs/tabs.jsx","webpack://Nano/./src/tabs/src/tabs-item/tabs-item.jsx","webpack://Nano/./src/tags/src/tags/tags.jsx","webpack://Nano/./src/tags/src/tags-item/tags-item.jsx","webpack://Nano/./src/collapse/src/collapse/collapse.jsx","webpack://Nano/./src/collapse/src/collapse-item/collapse-item.jsx","webpack://Nano/./src/table/src/table/table.jsx","webpack://Nano/./src/table/src/table-column/table-column.jsx","webpack://Nano/./src/table/src/table-cell/table-cell.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-string.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-boolean.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-datetime.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-option.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-image.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-matrix.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-select.jsx","webpack://Nano/./src/table/src/table-filter/table-filter.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-string.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-boolean.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-datetime.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-option.jsx","webpack://Nano/./src/paginator/src/paginator/paginator.jsx","webpack://Nano/./src/info/src/info/info.jsx","webpack://Nano/./src/info/src/info-column/info-column.jsx","webpack://Nano/./src/info/src/info-field/info-field.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-string.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-boolean.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-datetime.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-option.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-image.jsx","webpack://Nano/./src/preview/src/preview/preview.jsx","webpack://Nano/./src/preview/src/preview-plain/preview-plain.jsx","webpack://Nano/./src/preview/src/preview-image/preview-image.jsx","webpack://Nano/./src/preview/src/preview-video/preview-video.jsx","webpack://Nano/./src/preview/src/preview-modal/preview-modal.jsx","webpack://Nano/./src/preview/src/preview/preview-helper.mjs","webpack://Nano/./src/preview/src/preview/preview-handler.mjs","webpack://Nano/./src/preview/index.js","webpack://Nano/./src/map/src/map/map.jsx","webpack://Nano/./src/map/src/map-marker/map-marker.jsx","webpack://Nano/./src/file/src/file/file.jsx","webpack://Nano/./src/rating/src/rating/rating.jsx","webpack://Nano/./src/drawer/src/drawer/drawer.jsx","webpack://Nano/./src/chart/src/chart-item/chart-item.jsx","webpack://Nano/./src/chart/src/chart-donut/chart-donut.jsx","webpack://Nano/./src/chart/src/chart-bar/chart-bar.jsx","webpack://Nano/./src/index.esm.js","webpack://Nano/./src/alert/index.js","webpack://Nano/./src/notification/index.js","webpack://Nano/./src/empty/index.js","webpack://Nano/./src/config/index.js","webpack://Nano/./src/scrollbar/index.js","webpack://Nano/./src/virtualscroller/index.js","webpack://Nano/./src/draggable/index.js","webpack://Nano/./src/loader/index.js","webpack://Nano/./src/resizer/index.js","webpack://Nano/./src/popover/index.js","webpack://Nano/./src/modal/index.js","webpack://Nano/./src/button/index.js","webpack://Nano/./src/input/index.js","webpack://Nano/./src/input-number/index.js","webpack://Nano/./src/textarea/index.js","webpack://Nano/./src/select/index.js","webpack://Nano/./src/checkbox/index.js","webpack://Nano/./src/radio/index.js","webpack://Nano/./src/slider/index.js","webpack://Nano/./src/switch/index.js","webpack://Nano/./src/confirm/index.js","webpack://Nano/./src/cascader/index.js","webpack://Nano/./src/datepicker/index.js","webpack://Nano/./src/timepicker/index.js","webpack://Nano/./src/datetimepicker/index.js","webpack://Nano/./src/durationpicker/index.js","webpack://Nano/./src/transfer/index.js","webpack://Nano/./src/form/index.js","webpack://Nano/./src/tabs/index.js","webpack://Nano/./src/tags/index.js","webpack://Nano/./src/collapse/index.js","webpack://Nano/./src/table/index.js","webpack://Nano/./src/paginator/index.js","webpack://Nano/./src/info/index.js","webpack://Nano/./src/map/index.js","webpack://Nano/./src/file/index.js","webpack://Nano/./src/rating/index.js","webpack://Nano/./src/drawer/index.js","webpack://Nano/./src/chart/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@kizmann/pico-js\"), require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@kizmann/pico-js\", \"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Nano\"] = factory(require(\"@kizmann/pico-js\"), require(\"vue\"));\n\telse\n\t\troot[\"Nano\"] = factory(root[\"pi\"], root[\"Vue\"]);\n})(self, (__WEBPACK_EXTERNAL_MODULE__55__, __WEBPACK_EXTERNAL_MODULE__122__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__122__;","module.exports = __WEBPACK_EXTERNAL_MODULE__55__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { Arr, Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n ctor(key, fallback = null)\n {\n let ctor = Obj.get(this.$options, key.split('.'), -1);\n\n // if ( ctor === -1 ) {\n // ctor = Obj.get(this.$vnode.componentOptions.Ctor,\n // Arr.merge(['options'], key.split('.')), -1);\n // }\n\n if ( ctor === -1 ) {\n ctor = fallback;\n }\n\n if ( typeof ctor !== 'function' ) {\n return ctor;\n }\n\n return (...args) => ctor.apply(this, args);\n }\n\n}\n","import { Arr, Obj, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n cmer(classList)\n {\n let attrsList = {};\n\n if ( Mix.isString(classList) ) {\n attrsList[classList] = true;\n }\n\n if ( Mix.isArray(classList) ) {\n Arr.each(classList, (value) => attrsList[value] = true);\n }\n\n if ( Mix.isObj(classList) ) {\n Obj.assign(attrsList, classList);\n }\n\n if ( Mix.isString(this.$attrs.class) ) {\n attrsList[this.$attrs.class] = true;\n }\n\n if ( Mix.isArray(this.$attrs.class) ) {\n Arr.each(this.$attrs.class, (value) => attrsList[value] = true);\n }\n\n if ( Mix.isObj(this.$attrs.class) ) {\n Obj.assign(attrsList, this.$attrs.class);\n }\n\n return attrsList;\n }\n\n}\n","import { Arr, Obj, Mix } from \"@kizmann/pico-js\";\nimport { Comment } from \"vue\";\n\nexport default {\n\n cslo(slot = 'default', props = {})\n {\n if ( ! this.$slots[slot] ) {\n return false;\n }\n\n return this.$slots[slot](props).findIndex((o) => {\n return o.type !== Comment;\n }) !== -1;\n }\n\n}\n","import { Mix, Run, Obj, Dom, Locale, Arr, Hash } from \"@kizmann/pico-js\";\n\n\nexport class AlertHandler\n{\n static alias = 'Alert';\n\n modal = null;\n\n options = {\n text: '', size: 'md', type: 'primary',\n };\n\n static make(text, type = 'primary', options = {})\n {\n options = {\n text, type\n };\n\n return new AlertHandler(options).render();\n }\n\n constructor(options = {})\n {\n this.options = Obj.assign(this.options, options, {\n uid: Hash.uuid(),\n });\n }\n\n close()\n {\n this.unbindEvents();\n this.modal.remove();\n\n Dom.find(document.body).style({\n 'overflow': 'undefined'\n });\n }\n\n renderIcon(el)\n {\n let icon = Obj.get(window.AlertIcons, this.options.type, 'fa fa-ghost');\n\n let child = Dom.make('div', {\n classList: 'n-alert__icon', innerHTML: `<i class=\"n-icon ${icon}\"></i>`\n });\n\n child.appendTo(el);\n }\n\n renderText(el)\n {\n let child = Dom.make('div', {\n classList: 'n-alert__text', innerHTML: `<p>${this.options.text}</p>`\n });\n\n child.appendTo(el);\n }\n\n bindEvents()\n {\n let { uid } = this.options;\n\n Dom.find(window).on('keydown', (e) => {\n if ( e.keyCode === 27 ) {\n e.stopPropagation(); this.close();\n }\n }, { uid });\n\n Dom.find(this.modal).on('click', (e) => {\n if ( ! Dom.find(e.target).inside('.n-alert-frame') ) {\n this.close();\n }\n }, { uid });\n\n Run.delay(() => {\n Dom.find(this.modal).addClass('n-ready');\n });\n }\n\n unbindEvents()\n {\n let { uid } = this.options;\n\n Dom.find(window).off('keydown', null, {\n uid\n });\n\n Dom.find(this.modal).off('click', null, {\n uid\n });\n }\n\n render()\n {\n let cls = Obj.get(this.options, 'class', []);\n\n if ( Mix.isString(cls) ) {\n cls = cls.split(' ');\n }\n\n let classList = [\n 'n-alert',\n 'n-alert--' + this.options.size,\n 'n-alert--' + this.options.type,\n ];\n\n classList.push('n-theme--dark');\n\n let modal = Dom.make('div', {\n classList: Arr.merge(classList, cls).join(' ')\n });\n\n let frame = Dom.make('div', {\n classList: ['n-alert-frame']\n });\n\n frame.appendTo(modal);\n\n let body = Dom.make('div', {\n classList: ['n-alert__body']\n });\n\n body.appendTo(frame);\n\n this.renderIcon(body);\n this.renderText(body);\n\n Dom.find(document.body).style({\n 'overflow': 'hidden'\n });\n\n modal.appendTo(document.body);\n\n requestAnimationFrame(() => {\n this.bindEvents();\n });\n\n this.modal = modal.get(0);\n }\n}\n\nexport default AlertHandler;\n","import { Dom, Obj } from \"@kizmann/pico-js\";\n\nexport class NotificationElement\n{\n static alias = 'NotificationElement';\n\n el = null;\n\n options = {\n text: '', icon: '', type: 'primary', duration: 4500,\n };\n\n constructor(text, type = 'primary', options = {})\n {\n this.options = Obj.assign(this.options, options, {\n text, type\n });\n\n this.render();\n }\n\n append(el = document.body)\n {\n this.el.appendTo(el);\n\n setTimeout(() => this.el.addClass('n-active'), 100);\n\n return this;\n }\n\n remove()\n {\n this.el.get(0).remove();\n\n return this;\n }\n\n render()\n {\n let classList = [\n 'n-notification',\n 'n-notification--' + this.options.type\n ];\n\n this.el = Dom.make('div', {\n classList: classList.join(' ')\n });\n\n this.el.on('click', () => {\n this.remove();\n });\n\n let iconClass = Obj.get(window.NotifcationIcons, this.options.type, 'fa fa-ghost');\n\n let icon = Dom.make('div', {\n classList: 'n-notification__icon', innerHTML: `<i class=\"n-icon ${iconClass}\"></i>`\n });\n\n icon.appendTo(this.el);\n\n let text = Dom.make('div', {\n classList: 'n-notification__text', innerHTML: `<p>${this.options.text}</p>`\n });\n\n text.appendTo(this.el);\n }\n\n}\n\nif ( ! window[NotificationElement.alias] ) {\n window[NotificationElement.alias] = NotificationElement;\n}\n\nexport default NotificationElement;","import { Hash, Str, Run, Dom, Mix } from \"@kizmann/pico-js\";\nimport NotificationElement from \"./notification-element.mjs\";\n\nwindow.NotificationBag = {};\n\nexport class NotificationHandler\n{\n\n static alias = 'Notification';\n\n static notifications = {};\n\n static make(...args)\n {\n let { uid, el } = NotificationHandler.create(undefined, ...args);\n\n let wrapper = NotificationHandler.element();\n\n // Append element to dom\n window.NotificationBag[uid].append(wrapper);\n\n // Queue remove\n Run.delay(() => {\n NotificationHandler.remove(uid);\n }, el.options.duration);\n\n return uid;\n }\n\n static create(uid = Hash.uuid(), ...args)\n {\n window.NotificationBag[uid] = new NotificationElement(...args);\n\n return { uid, el: window.NotificationBag[uid] };\n }\n\n static remove(uid)\n {\n if ( window.NotificationBag[uid] === undefined ) {\n return;\n }\n\n // Remove dom element\n window.NotificationBag[uid].remove();\n\n // Remove from list\n delete window.NotificationBag[uid];\n }\n\n static element()\n {\n let el = Dom.find('.n-notification-frame');\n\n if ( !el.empty() ) {\n return el;\n }\n\n let classList = [\n 'n-notification-frame',\n 'n-notification-frame--' + window.nano.Settings.notifySize,\n 'n-notification-frame--' + window.nano.Settings.notifyPosition,\n ];\n\n el = Dom.make('div', {\n classList: classList.join(' ')\n });\n\n el.appendTo(document.body);\n\n return el;\n }\n\n}\n\nexport default NotificationHandler;\n","export default {\n\n name: 'NEmptyIcon',\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n inline: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-empty-icon',\n 'n-empty-icon--' + this.size,\n 'n-empty-icon--' + this.type\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.inline ) {\n classList.push('n-inline');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-empty-icon__frame\">\n { /* Icon */ }\n </div>\n <div class=\"n-empty-icon__text\">\n { this.$slots.default && this.$slots.default() }\n </div>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Mix } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NConfig',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n config: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return this;\n },\n type: [Object]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n solveAwait(value)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isString(value) && value.match(/\\$\\$scope/) ) {\n return Obj.has({ $$scope: this.scope }, value);\n }\n\n if ( Mix.isString(value) && value.match(/\\$\\$value/) ) {\n return Obj.has({ $$value: this.tempValue }, value);\n }\n\n return false;\n },\n\n solveValue(value, ...args)\n {\n if ( Mix.isFunction(value) ) {\n return value.apply(this.scope, [this.tempValue, ...args]);\n }\n\n if ( Mix.isString(value) && value.match(/^\\$\\$scope/) ) {\n return Obj.get({ $$scope: this.scope }, value);\n }\n\n if ( Mix.isString(value) && value.match(/^\\$\\$value/) ) {\n return Obj.get({ $$value: this.tempValue }, value);\n }\n\n return value;\n },\n\n solveEvent(value)\n {\n let scope = Obj.assign(this.scope, {\n $configRefs: this.$refs\n });\n\n if ( Mix.isFunction(value) ) {\n return (...args) => value.apply(scope, args);\n }\n\n return value;\n },\n\n solveContent(value, ...args)\n {\n if ( Mix.isFunction(value) ) {\n return value.apply(this.scope, [this.$render, this.tempValue, ...args]);\n }\n\n return value;\n },\n\n prepareValue(veModel)\n {\n if ( ! veModel.path ) {\n return veModel.fallback;\n }\n\n if ( ! Obj.has(this.tempValue, veModel.path) ) {\n this.deepSet(this.tempValue, veModel.path, veModel.fallback);\n }\n\n return Obj.get(this.tempValue, veModel.path);\n },\n\n inputClosure(veModel, closure = null)\n {\n if ( ! veModel.path ) {\n return () => null;\n }\n\n return (value) => {\n\n if ( closure ) {\n closure(value, this.tempValue);\n }\n\n this.deepSet(this.tempValue, veModel.path, value);\n };\n },\n\n deepSet(obj, keys, val)\n {\n keys = (typeof keys === 'string') ?\n keys.split('.') : keys;\n\n let key = keys.shift();\n\n if ( obj[key] === undefined || obj[key] === null ) {\n Obj.set(obj, key, {});\n }\n\n if ( keys.length === 0 ) {\n return Obj.set(obj, key, val);\n }\n\n return this.deepSet(obj[key], keys, val);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n renderLayer(source)\n {\n if ( ! Mix.isObj(source) ) {\n return source;\n }\n\n return Arr.each(source, (setup, component) => {\n\n component = component.replace(/:.*?$/, '');\n\n // Set setup defaults\n setup = Obj.assign({\n vIf: true, vShow: true, vAwait: null, class: null, $on: {}, $props: {}, $attrs: {}\n }, setup);\n\n if ( ! this.solveAwait(setup.vAwait) ) {\n return null;\n }\n\n if ( ! this.solveValue(setup.vIf) ) {\n return null;\n }\n\n if ( ! this.solveValue(setup.vShow) ) {\n setup.style = { display: 'none' };\n }\n\n // Build default model\n let veModel = Obj.assign({\n prop: 'modelValue', fallback: null\n }, setup.model);\n\n // Delete model from setup\n delete setup.model;\n\n // Normalize props\n setup.$props = this.solveValue(setup.$props);\n\n // Normalize class\n setup.class = this.solveValue(setup.class);\n\n // Solve props\n Obj.map(setup.$props, (value) => this.solveValue(value));\n\n // Normalize attrs\n setup.$attrs = this.solveValue(setup.$attrs);\n\n // Solve attrs\n Obj.map(setup.$attrs, (value) => this.solveValue(value));\n\n // Solve events\n Obj.map(setup.$on, (value) => this.solveEvent(value));\n\n if ( veModel.path ) {\n\n // Override input event\n setup['onUpdate:modelValue'] = this.inputClosure(veModel, setup.$on.input);\n\n // Set prop in value or get fallback\n setup.$props[veModel.prop] = this.prepareValue(veModel);\n }\n\n Obj.assign(setup, setup.$props);\n delete setup.$props;\n\n Obj.assign(setup, setup.$attrs);\n delete setup.$attrs;\n\n Obj.assign(setup, setup.$on);\n delete setup.$on;\n\n let content = setup.content;\n delete setup.content;\n\n delete setup.vIf;\n delete setup.vShow;\n delete setup.vAwait;\n\n // Solve content if is functional\n let slots = this.solveContent(content, setup);\n\n let domtypes = [\n 'div', 'span', 'a'\n ];\n\n let resolved = component;\n\n if ( ! Arr.has(domtypes, resolved) ) {\n resolved = resolveComponent(component);\n }\n\n return h(resolved, setup, this.ctor('renderLayer')(slots));\n });\n },\n\n render()\n {\n return this.ctor('renderLayer')(this.config)[0];\n }\n\n}","import { Arr, Obj, Str, Mix } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NConfigNext',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n extraValue: {\n default()\n {\n return null;\n },\n type: [Object]\n },\n\n config: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue, sempValue: this.extraValue || this.modelValue\n };\n },\n\n watch: {\n\n modelValue: function (value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n extraValue: function (value) {\n if ( value !== this.sempValue ) {\n this.sempValue = value;\n }\n }\n\n },\n\n methods: {\n\n getString(value)\n {\n let final = value.replace(/^@/, '')\n .replace(/^\\\\@/, '@');\n\n if ( value.match(/^@/) ) {\n return this.trans(final);\n }\n\n return final;\n },\n\n propAwait(value)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Mix.isArray(value) ) {\n value = [value];\n }\n\n let result = Arr.each(value, (state) => {\n return this.getState(state, true);\n });\n\n return ! Arr.has(result, false);\n },\n\n propExists(value)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Mix.isArray(value) ) {\n value = [value];\n }\n\n let result = Arr.each(value, (state) => {\n return this.getState(state, false);\n });\n\n return ! Arr.has(result, false);\n },\n\n getState(value, exists = true)\n {\n if ( Mix.isFunction(value) ) {\n return !! this.solveInput(value);\n }\n\n if ( ! Mix.isString(value) ) {\n return !! value;\n }\n\n if ( ! value.match(/(\\$scope|\\$model|\\$global)/) ) {\n return !! value;\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n if ( exists ) {\n return Obj.get(sources, value, undefined) === undefined;\n }\n\n return !! Obj.get(sources, value);\n },\n\n toPropKey(value)\n {\n let splits = value.replace(/^!/, '').split('-');\n\n value = Arr.each(splits, (split) => {\n return Str.ucfirst(split);\n });\n\n return Str.lcfirst(value.join(''));\n },\n\n toEventKey(value)\n {\n if ( ! value.match(/^on/) ) {\n value = 'on-' + value;\n }\n\n let splits = value.split('-');\n\n value = Arr.each(splits, (split) => {\n return Str.ucfirst(split);\n });\n\n return Str.lcfirst(value.join(''));\n },\n\n solveInput(cb, fallback)\n {\n return cb.call(this.scope, this.tempValue, fallback);\n },\n\n solveContext(cb)\n {\n if ( ! Mix.isFunction(cb) ) {\n return () => console.error('Raw suffix (!) only allowed on functions');\n }\n\n return (...args) => cb.call(this.scope, ...args);\n },\n\n getProp(key, value)\n {\n if ( key.match(/^!/) ) {\n return this.solveContext(value);\n }\n\n if ( Mix.isFunction(value) ) {\n return this.solveInput(value);\n }\n\n if ( ! Mix.isString(value) ) {\n return value;\n }\n\n if ( ! value.match(/(\\$scope|\\$model|\\$global)/) ) {\n return this.getString(value);\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n let result = Obj.get(sources, value.replace(/^!+/, ''));\n\n if ( value.match(/^!!\\$/) ) {\n result = Mix.isEmpty(result);\n }\n\n if ( value.match(/^!\\$/) ) {\n result = Mix.isEmpty(result);\n }\n\n return result;\n },\n\n getInput(prop, fallback)\n {\n if ( Mix.isFunction(prop) ) {\n return this.solveInput(prop, fallback);\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n if ( ! Mix.isNull(fallback) && Obj.get(sources, prop, -1337) === -1337 ) {\n Obj.set(sources, prop, fallback);\n }\n\n return Obj.get(sources, prop);\n },\n\n setInput(prop, value)\n {\n if ( Mix.isFunction(prop) ) {\n return console.error('NConfigNew: Bind with function is not allowed!');\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n Obj.set(sources, prop, value);\n }\n\n },\n\n renderSetup(setup, alias)\n {\n if ( ! Mix.isObj(setup) ) {\n return setup;\n }\n\n if ( ! this.propExists(setup['vIf']) ) {\n return null;\n }\n\n if ( ! this.propAwait(setup['vAwait']) ) {\n return null;\n }\n\n let defaults = {\n binds: {}, props: {}, events: {}, content: {}, slots: {}\n };\n\n let defaultsBind = {\n value: '', fallback: null\n };\n\n setup = Obj.assign(defaults, setup);\n\n let binds = {};\n\n Obj.each(setup['binds'], (value, key) => {\n\n if ( Mix.isString(value) ) {\n value = { value: value };\n }\n\n binds[key] = Obj.assign(defaultsBind, value);\n });\n\n let events = {};\n\n Obj.each(setup['events'], (value, key) => {\n events[this.toEventKey(key)] = this.solveContext(value);\n });\n\n let props = {};\n\n Obj.each(setup['props'], (value, key) => {\n props[this.toPropKey(key)] = this.getProp(key, value);\n });\n\n props = Obj.assign(props, events);\n\n Obj.each(binds, (value, key) => {\n\n let updateKey = 'onUpdate:' + key;\n\n props[this.toEventKey(updateKey)] = (input) => {\n this.setInput(value.value, input);\n };\n\n props[this.toPropKey(key)] = this.getInput(value.value,\n value.fallback);\n });\n\n let component = alias.replace(/:.*?$/, '');\n\n if ( !Arr.has(['div', 'p'], component) ) {\n component = resolveComponent(component);\n }\n\n if ( Mix.isEmpty(component) ) {\n return null;\n }\n\n if ( !this.propExists(setup['vShow']) ) {\n props.style = \"display: none;\";\n }\n\n let slots = {\n default: this.ctor('renderSlot')(setup.content)\n };\n\n Obj.each(setup.slots, (slot, key) => {\n slots[key] = this.ctor('renderSlot')(slot);\n });\n\n return h(component, props, slots);\n },\n\n renderSlot(callback)\n {\n let render = () => Arr.each(callback, (value, key) => {\n return this.ctor('renderSetup')(value, key);\n });\n\n if ( Mix.isFunction(callback) ) {\n render = () => callback.apply(this.scope);\n }\n\n if ( Mix.isString(callback) ) {\n render = () => this.getString(callback);\n }\n\n return render;\n },\n\n render()\n {\n return Arr.each(this.config, (value, key) => this.ctor('renderSetup')(value, key));\n }\n\n}","import { Run, Arr, Obj, Dom, Mix, Str, Event, Hash } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NScrollbar',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NScrollbar: this\n };\n },\n\n props: {\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n framerate: {\n default()\n {\n return 24;\n },\n type: [Number]\n },\n\n wrapClass: {\n default()\n {\n return 'n-scrollbar__wrap';\n }\n }\n\n },\n\n computed: {\n\n touch()\n {\n return !!('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown()\n {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove()\n {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup()\n {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid(), init: false, native: false, height: 0, width: 0\n };\n },\n\n beforeMount()\n {\n this.outer = {};\n this.state = {};\n\n this.hasHtrack = false;\n this.hasVtrack = false;\n\n this.adaptScrollBehavior();\n },\n\n mounted()\n {\n this.observer = new ResizeObserver(() => {\n this.getWrapperSizeDebounced();\n });\n\n this.observer.observe(this.$el);\n\n if ( this.$refs.wrapper ) {\n this.observer.observe(this.$refs.wrapper);\n }\n\n Event.bind('NResizer:moved',\n this.getWrapperSizeDebounced, this._.uid);\n\n let passive = {\n passive: true, uid: this._.uid\n };\n\n Dom.find(this.$refs.content).on('scroll',\n this.onScroll, passive);\n\n this.getWrapperSize();\n },\n\n beforeUnmount()\n {\n if ( this.observer ) {\n this.observer.disconnect();\n }\n\n Event.unbind('NResizer:moved',\n this._.uid);\n\n let passive = {\n passive: true, uid: this._.uid\n };\n\n Dom.find(this.$el).off('scroll',\n null, passive);\n },\n\n methods: {\n\n getWrapperSizeDebounced()\n {\n if ( Dom.find(this.$el).inside('is-paused') ) {\n return;\n }\n\n let rect = this.$refs.wrapper.getBoundingClientRect();\n\n let now = {\n width: Math.round(rect.width), height: Math.round(rect.height)\n };\n\n if ( Mix.isEqual(this.state, now) ) {\n return;\n }\n\n clearInterval(this.interval);\n\n this.interval = setTimeout(() => {\n this.getWrapperSize();\n }, 5);\n },\n\n getWrapperSize()\n {\n if ( ! this.$refs.wrapper ) {\n return;\n }\n\n let [width, height] = [0, 0];\n\n Dom.find(this.$refs.spacer).actual(() => {\n\n Dom.find(this.$el).addClass('is-paused');\n\n [width, height] = [\n Math.round(this.$refs.wrapper.getBoundingClientRect().width),\n Math.round(this.$refs.wrapper.getBoundingClientRect().height)\n ];\n\n Dom.find(this.$el).remClass('is-paused');\n });\n\n let outer = {\n width: Math.round(this.$refs.content.clientWidth),\n height: Math.round(this.$refs.content.clientHeight),\n };\n\n let rainbow = [\n width === this.width, height === this.height\n ]\n\n if ( ! Arr.has(rainbow, true) && Mix.isEqual(this.outer, outer) ) {\n return;\n }\n\n this.outer = outer;\n\n this.state = {\n width, height\n };\n\n [this.width, this.height] = [\n width, height\n ];\n\n if ( width === 0 || height === 0 ) {\n return;\n }\n\n let styles = {\n //\n };\n\n if ( this.width ) {\n styles.width = this.width + 'px';\n }\n\n if ( this.height ) {\n styles.height = this.height + 'px';\n }\n\n Dom.find(this.$refs.spacer).style(styles);\n\n this.adaptScrollHeight();\n this.adaptScrollWidth();\n\n let [frameWidth, frameHeight] = [\n Dom.find(this.$el).width(), Dom.find(this.$el).height()\n ];\n\n this.$emit('sizechange', frameWidth, frameHeight, this.$el);\n },\n\n scrollTo(x = 0, y = 0, delay = 0)\n {\n if ( Mix.isEmpty(delay) ) {\n return this.scrollTo(x, y);\n }\n\n Run.delay(() => this.onScrollTo(x, y), delay);\n },\n\n onScrollTo(x = 0, y = 0)\n {\n if (this.$refs.content) {\n this.$refs.content.scrollTop = y;\n this.$refs.content.scrollLeft = x;\n }\n\n // if ( this.$refs.content.scrollTop != y || this.$refs.content.scrollLeft != x ) {\n // setTimeout(() => this.onScrollTo(x, y), 5);\n // }\n },\n\n scrollIntoView(selector, delay = 0, padding = 0)\n {\n Run.delay(() => this.onScrollIntoView(selector, padding), delay);\n },\n\n onScrollIntoView(selector, padding = 0)\n {\n let $el = Dom.find(this.$el).find(selector);\n\n let scrollTop = this.$refs.content\n .scrollTop;\n\n let outerHeight = this.$refs.content.clientHeight;\n\n let offsetTop = $el.offsetTop(this.$el);\n\n if ( offsetTop < scrollTop ) {\n this.$refs.content.scrollTop = offsetTop - padding;\n }\n\n if ( offsetTop + $el.height() >= scrollTop + outerHeight ) {\n this.$refs.content.scrollTop = offsetTop - outerHeight + $el.height() + padding;\n }\n\n let scrollLeft = this.$refs.content\n .scrollLeft;\n\n let outerWidth = this.$refs.content.clientWidth;\n\n let offsetLeft = $el.offsetLeft(this.$el);\n\n if ( offsetLeft < scrollLeft ) {\n this.$refs.content.scrollLeft = offsetLeft - padding;\n }\n\n if ( offsetLeft + $el.width() >= scrollLeft + outerWidth ) {\n this.$refs.content.scrollLeft = offsetLeft - outerWidth + $el.width() + padding;\n }\n },\n\n adaptScrollBehavior()\n {\n let $dom = Dom.make('div', { classList: ['n-scrollbar-test'] })\n .appendTo(document.body).get(0);\n\n Dom.make('div').appendTo($dom);\n\n this.native = $dom.clientWidth === $dom.offsetWidth ||\n $dom.clientHeight === $dom.offsetHeight;\n\n $dom.remove();\n },\n\n adaptScrollHeight()\n {\n if ( this.native ) {\n return;\n }\n\n let [innerHeight, outerHeight] = [\n this.$refs.content.scrollHeight || 0, this.$el.clientHeight || 0\n ];\n\n let compare = [\n outerHeight === this.outerHeight,\n innerHeight === this.innerHeight\n ];\n\n if ( !Arr.has(compare, false) ) {\n return;\n }\n\n this.outerHeight = outerHeight;\n this.innerHeight = innerHeight;\n\n let height = (outerHeight / innerHeight)\n * outerHeight;\n\n let barHeight = Math.max(height, 50);\n\n let maxHeight = Math.ceil((outerHeight / innerHeight) *\n (innerHeight - outerHeight));\n\n this.heightRatio = (maxHeight - (barHeight - height)\n - this.offsetY) / maxHeight;\n\n Dom.find(this.$refs.vbar).style({\n height: (this.barHeight = Math.ceil(barHeight)) + 'px'\n });\n\n this.hasVtrack = outerHeight && outerHeight < innerHeight;\n\n if ( this.hasVtrack ) {\n Dom.find(this.$el).addClass('has-vtrack');\n }\n\n if ( !this.hasVtrack ) {\n Dom.find(this.$el).remClass('has-vtrack');\n }\n\n this.adaptScrollPosition();\n },\n\n adaptScrollWidth()\n {\n if ( this.native ) {\n return;\n }\n\n let [innerWidth, outerWidth] = [\n this.$refs.content.scrollWidth || 0, this.$el.clientWidth || 0\n ];\n\n let compare = [\n outerWidth === this.outerWidth,\n innerWidth === this.innerWidth\n ];\n\n if ( !Arr.has(compare, false) ) {\n return;\n }\n\n this.outerWidth = outerWidth;\n this.innerWidth = innerWidth;\n\n let width = (outerWidth / innerWidth)\n * outerWidth;\n\n let barWidth = Math.max(width, 50);\n\n let maxWidth = Math.ceil((outerWidth / innerWidth) *\n (innerWidth - outerWidth));\n\n this.widthRatio = (maxWidth - (barWidth - width)\n - this.offsetX) / maxWidth;\n\n Dom.find(this.$refs.hbar).style({\n width: (this.barWidth = Math.ceil(barWidth)) + 'px'\n });\n\n this.hasHtrack = outerWidth && outerWidth < innerWidth;\n\n if ( this.hasHtrack ) {\n Dom.find(this.$el).addClass('has-htrack');\n }\n\n if ( !this.hasHtrack ) {\n Dom.find(this.$el).remClass('has-htrack');\n }\n\n this.adaptScrollPosition();\n },\n\n adaptScrollPosition(scroll = {})\n {\n if ( this.native ) {\n return;\n }\n\n if ( !scroll.top ) {\n scroll.top = this.$refs.content.scrollTop;\n }\n\n if ( !scroll.left ) {\n scroll.left = this.$refs.content.scrollLeft;\n }\n\n let vbarTop = Math.ceil((this.outerHeight / this.innerHeight) *\n scroll.top * this.heightRatio) || 0;\n\n if ( !this.vbarTop || vbarTop !== this.vbarTop ) {\n\n Dom.find(this.$refs.vbar).style({\n transform: `translateY(${vbarTop}px) translateZ(0)`\n });\n\n this.vbarTop = vbarTop;\n }\n\n let hbarLeft = Math.ceil((this.outerWidth / this.innerWidth) *\n scroll.left * this.widthRatio) || 0;\n\n if ( !this.hbarLeft || hbarLeft !== this.hbarLeft ) {\n\n Dom.find(this.$refs.hbar).style({\n transform: `translateX(${hbarLeft}px) translateZ(0)`\n });\n\n this.hbarLeft = hbarLeft;\n }\n },\n\n onScroll(e)\n {\n Event.fire('NScrollbar:scroll', e);\n\n let scroll = {\n top: this.$refs.content.scrollTop,\n left: this.$refs.content.scrollLeft\n };\n\n this.$nextTick().then(() => {\n this.$emit('scrollupdate', scroll.top, scroll.left);\n });\n\n this.adaptScrollPosition(scroll);\n },\n\n getTouchEvent(event)\n {\n if ( !this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onVbarMousedown(event)\n {\n if ( !Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n Dom.find(document).on(this.mousemove,\n this.onVbarMousemove, this._.uid);\n\n Dom.find(document).on(this.mouseup,\n this.onVbarMouseup, this._.uid);\n\n this.scrollTop = this.$refs.content\n .scrollTop;\n\n this.clientY = this.getTouchEvent(event)\n .clientY;\n\n Dom.find(this.$refs.vbar).addClass('is-active');\n },\n\n onVbarMousemove(event)\n {\n let clientY = this.getTouchEvent(event)\n .clientY;\n\n let top = (this.outerHeight / this.innerHeight) *\n this.scrollTop * this.heightRatio;\n\n let offset = (clientY - this.clientY) + top;\n\n let height = (this.outerHeight -\n this.barHeight - this.offsetY);\n\n this.$refs.content.scrollTop = offset / height *\n (this.innerHeight - this.outerHeight);\n },\n\n onVbarMouseup(event)\n {\n Dom.find(document).off(this.mousemove,\n null, this._.uid);\n\n Dom.find(document).off(this.mouseup,\n null, this._.uid);\n\n Dom.find(this.$refs.vbar).remClass('is-active');\n },\n\n onHbarMousedown(event)\n {\n if ( !Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n Dom.find(document).on(this.mousemove,\n this.onHbarMousemove, this._.uid);\n\n Dom.find(document).on(this.mouseup,\n this.onHbarMouseup, this._.uid);\n\n this.scrollLeft = this.$refs.content\n .scrollLeft;\n\n this.clientX = this.getTouchEvent(event)\n .clientX;\n\n Dom.find(this.$refs.hbar).addClass('is-active');\n },\n\n onHbarMousemove(event)\n {\n let clientX = this.getTouchEvent(event)\n .clientX;\n\n let left = (this.outerWidth / this.innerWidth) *\n this.scrollLeft * this.widthRatio;\n\n let offset = (clientX - this.clientX) + left;\n\n let width = (this.outerWidth -\n this.barWidth - this.offsetX);\n\n this.$refs.content.scrollLeft = offset / width *\n (this.innerWidth - this.outerWidth);\n },\n\n onHbarMouseup(event)\n {\n Dom.find(document).off(this.mousemove,\n null, this._.uid);\n\n Dom.find(document).off(this.mouseup,\n null, this._.uid);\n\n Dom.find(this.$refs.hbar).remClass('is-active');\n },\n\n },\n\n render()\n {\n let classList = [\n 'n-scrollbar'\n ];\n\n if ( this.native ) {\n classList.push('n-scrollbar--native');\n }\n\n if ( this.touch ) {\n classList.push('n-scrollbar--touch');\n }\n\n if ( window.WIN ) {\n classList.push('n-windows');\n }\n\n if ( this.overflowY ) {\n classList.push('n-overflow-y');\n }\n\n if ( this.overflowX ) {\n classList.push('n-overflow-x');\n }\n\n if ( this.hasHtrack ) {\n classList.push('has-htrack');\n }\n\n if ( this.hasVtrack ) {\n classList.push('has-vtrack');\n }\n\n let vbarProps = {\n ['on' + Str.ucfirst(this.mousedown)]: this.onVbarMousedown\n };\n\n let hbarProps = {\n ['on' + Str.ucfirst(this.mousedown)]: this.onHbarMousedown\n };\n\n return (\n <div class={classList} {...Obj.except(this.$attrs, ['class'])}>\n <div class=\"n-scrollbar-content\" ref=\"content\">\n <div ref=\"wrapper\" class={this.wrapClass}>\n {this.$slots.default && this.$slots.default()}\n </div>\n </div>\n <div class=\"n-scrollbar-spacer\" ref=\"spacer\">\n { /* Adapt inner height */}\n </div>\n <div ref=\"hbar\" class=\"n-scrollbar-h\" {...hbarProps}></div>\n <div ref=\"vbar\" class=\"n-scrollbar-v\" {...vbarProps}></div>\n </div>\n );\n }\n\n}\n","import { Arr, Num, Mix, Run } from \"@kizmann/pico-js\";\n\n\nwindow.DEBUG_NVSCROLL = false;\n\nexport default {\n\n name: 'NVirtualscroller',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n\n },\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n itemHeight: {\n default()\n {\n return 34;\n }\n },\n\n itemWidth: {\n default()\n {\n return 0;\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n deathzone: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n framerate: {\n default()\n {\n return 65;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n },\n\n data()\n {\n let state = {\n start: 0, end: 0, grid: 1\n };\n\n return {\n state, buffer: [], width: 0, height: 0, init: false\n };\n },\n\n watch: {\n\n 'items': function () {\n this.updateRender();\n }\n\n },\n\n beforeMount()\n {\n this.scrollTop = 0;\n this.ready = [];\n },\n\n mounted()\n {\n this.bindAdaptScroll()\n },\n\n beforeUnmount()\n {\n this.unbindAdaptScroll()\n },\n\n methods: {\n\n callWhenReady(cb)\n {\n if ( this.init ) {\n return cb.call(this);\n }\n\n this.ready.push(cb);\n },\n\n clearWhenReady()\n {\n Arr.each(this.ready, cb => {\n cb.call(this);\n });\n\n this.ready = [];\n },\n\n bindAdaptScroll()\n {\n this.refreshScroll = setInterval(this.onScrollupdate,\n 1000 / this.framerate);\n },\n\n unbindAdaptScroll()\n {\n clearInterval(this.refreshScroll);\n },\n\n isIndexRendered(index)\n {\n if ( ! this.itemHeight ) {\n return true;\n }\n\n return this.state.start < index &&\n this.state.end > index;\n },\n\n scrollIntoView(index)\n {\n if ( ! this.$refs.scrollbar ) {\n return;\n }\n\n if ( index === -1 || index >= this.items.length ) {\n index = this.items.length;\n }\n\n if ( ! this.isIndexRendered(index) ) {\n return this.scrollToIndex(index);\n }\n\n let selector = `[data-index=\"${index}\"]`;\n\n this.$refs.scrollbar.scrollIntoView(selector);\n },\n\n scrollToIndex(index)\n {\n this.callWhenReady(() => this.onScrollToIndex(index))\n },\n\n onScrollToIndex(index)\n {\n let total = Math.ceil(this.items.length /\n this.state.grid);\n\n index = Math.floor(index / this.state.grid);\n\n if ( index === -1 || index >= total ) {\n index = total;\n }\n\n let targetTop = index * this.itemHeight;\n\n if ( this.scrollTop > targetTop ) {\n return this.onScrollTo(0, targetTop);\n }\n\n this.onScrollTo(0, targetTop - this.height + this.itemHeight);\n },\n\n scrollTo(x = 0, y = 0)\n {\n this.callWhenReady(() => this.onScrollTo(x, y));\n },\n\n onScrollTo(x = 0, y = 0)\n {\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.scrollTo(x, this.scrollTop = y);\n }\n\n this.refreshDriver(true);\n },\n\n clearState()\n {\n this.state = { start: 0, end: 0 };\n },\n\n updateRender()\n {\n if ( ! this.$refs.scrollbar ) {\n return Run.delay(this.updateRender);\n }\n\n this.scrollTop = this.$refs.scrollbar.\n $refs.content.scrollTop;\n\n this.refreshDriver(false);\n },\n\n onScrollupdate()\n {\n if ( ! this.threshold ) {\n return;\n }\n\n let scrollTop = this.$refs.scrollbar.\n $refs.content.scrollTop;\n\n if ( scrollTop === this.scrollTop ) {\n return;\n }\n\n this.scrollTop = scrollTop;\n\n this.refreshDriver(true);\n },\n\n onSizechange(width, height)\n {\n let init = [\n this.width === 0, this.height === 0\n ];\n\n [this.width, this.height] = [\n width, height\n ];\n\n this.init |= Arr.has(init, true);\n\n if ( this.init ) {\n this.clearWhenReady();\n }\n\n this.refreshDriver(false);\n },\n\n\n refreshDriver(queue = true, callback = null)\n {\n if ( Mix.isEmpty(this.timer) ) {\n this.timer = Date.now();\n }\n\n if ( Date.now() - this.timer > 5 ) {\n queue = false;\n }\n\n clearTimeout(this.to);\n\n this.to = setTimeout(() => {\n this.refreshDriver(false, callback);\n }, 10);\n\n if ( queue ) {\n return;\n }\n\n clearTimeout(this.to);\n\n let grid = 1;\n\n if ( this.itemWidth ) {\n grid = Math.floor((this.width - this.deathzone) /\n this.itemWidth) || 1;\n }\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n return this.state = { start: 0, end: 0, grid };\n }\n\n let total = Math.ceil(this.items.length\n / grid);\n\n let bufferItems = Math.round((this.height /\n this.itemHeight) * 0.6);\n\n let startItem = Math.round(this.scrollTop /\n this.itemHeight);\n\n let endItem = Math.round((this.scrollTop +\n this.height) / this.itemHeight);\n\n let start = (startItem - bufferItems);\n\n if ( start < 0 ) {\n start = 0;\n }\n\n let end = endItem + bufferItems;\n\n if ( end > total ) {\n end = total;\n }\n\n let state = { start, end, grid };\n\n if ( Mix.isEqual(this.state, state) ) {\n return;\n }\n\n this.state = state;\n\n if ( Mix.isFunction(callback) ) {\n callback.call(this);\n }\n },\n\n },\n\n renderItem(passed)\n {\n // passed.index = Num.int(passed.index);\n\n passed.index = (passed.index +\n this.state.start);\n\n let topOffset = Math.round(this.itemHeight *\n passed.index);\n\n let renderFunction = this.$slots.default;\n\n if ( this.renderNode ) {\n renderFunction = this.renderNode;\n }\n\n let props = {\n 'data-index': passed.index\n };\n\n if ( this.uniqueProp && this.useKeys ) {\n props.key = passed.value[this.uniqueProp];\n }\n\n let style = {};\n\n let isLazy = this.threshold && this.threshold <=\n this.items.length;\n\n if ( isLazy && this.state.grid === 1 ) {\n style.top = topOffset + 'px';\n }\n\n if ( this.itemHeight ) {\n style.height = this.itemHeight + 'px';\n }\n\n if ( this.itemWidth ) {\n style.width = this.itemWidth + 'px';\n }\n\n return (\n <div class=\"n-virtualscroller__item\" style={style} {...props}>\n { renderFunction(passed) }\n </div>\n );\n },\n\n renderRows()\n {\n let items = Arr.slice(this.items, this.state.start,\n this.state.end);\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n items = this.items;\n }\n\n return Arr.each(items, (value, index) => {\n return this.ctor('renderItem')({ value, index });\n });\n },\n\n renderGridRows(passed)\n {\n let topOffset = Math.round(this.itemHeight *\n (passed.index + this.state.start));\n\n let style = {};\n\n if ( this.threshold && this.threshold <= this.items.length ) {\n style.top = topOffset + 'px';\n }\n\n let counter = passed.index * this.state.start;\n\n return (\n <div data-row={passed.index} class=\"n-virtualscroller__row\" style={style}>\n {\n Arr.each(passed.chunk, (value, index) => {\n return this.ctor('renderItem')({\n value, index: index + counter\n });\n })\n }\n </div>\n );\n },\n\n renderGrid()\n {\n let chunks = Arr.chunk(this.items,\n this.state.grid);\n\n let items = Arr.slice(chunks, this.state.start,\n this.state.end);\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n items = chunks;\n }\n\n return Arr.each(items, (chunk, index) => {\n return this.ctor('renderGridRows')({ chunk, index });\n });\n },\n\n renderItems()\n {\n if ( ! this.items.length ) {\n return this.$slots.empty && this.$slots.empty() || null;\n }\n\n if ( this.state.grid === 1 ) {\n return this.ctor('renderRows')();\n }\n\n return this.ctor('renderGrid')();\n },\n\n render()\n {\n let classList = [\n 'n-virtualscroller'\n ];\n\n if ( this.threshold && this.threshold <= this.items.length ) {\n classList.push('n-virtualscroller--absolute');\n }\n\n if ( this.init ) {\n classList.push('n-state');\n }\n\n let props = {\n overflowY: this.overflowY,\n overflowX: this.overflowX,\n offsetY: this.offsetY,\n offsetX: this.offsetX,\n onSizechange: this.onSizechange,\n };\n\n let style = {\n 'overflow-y': 'hidden',\n };\n\n let totalHeight = Math.ceil(this.items.length / this.state.grid) *\n this.itemHeight;\n\n if ( this.threshold && this.items.length ) {\n style.height = totalHeight + 'px';\n }\n\n return (\n <NScrollbar class={classList} ref=\"scrollbar\" {...props}>\n <div ref=\"inner\" class=\"n-virtualscroller__inner\" style={style}>\n { this.ctor('renderItems')() }\n </div>\n </NScrollbar>\n );\n }\n\n}\n","import { Run, Num, Arr, Obj, Mix, Dom, Event, Locale, Hash } from \"@kizmann/pico-js\";\n\nwindow.dragMods = [];\n\nclass NDragCounter\n{\n\n $el = null;\n\n constructor()\n {\n this.$el = Dom.make('div', {\n classList: ['n-draggable__counter']\n });\n\n Dom.ready(() => {\n this.$el.appendTo(document.body);\n });\n }\n\n get(event, count)\n {\n // Update dragover color/type\n this.update();\n\n this.$el.html(\n `<span>${Locale.choice(':count Item|:count Items', count)}</span>`\n );\n\n // Fix data transfer\n event.dataTransfer.setData('text/plain', '');\n\n if ( typeof event.dataTransfer.setDragImage !== 'function' ) {\n return;\n }\n\n // Set finally the drop image\n event.dataTransfer.setDragImage(this.$el.get(0), 0, 0);\n }\n\n update()\n {\n window.dragMods = window.keyMods;\n\n let classList = [\n 'n-draggable__counter'\n ];\n\n if ( Arr.has(window.dragMods, 18) ) {\n classList.push('n-modify--alt');\n }\n\n if ( Arr.has(window.dragMods, 17) ) {\n classList.push('n-modify--ctrl');\n }\n\n if ( Arr.has(window.dragMods, 91) ) {\n classList.push('n-modify--meta');\n }\n\n this.$el.attr('class', classList.join(' '));\n }\n\n}\n\nwindow.DragCounter = new NDragCounter;\n\nclass NDragIndicator\n{\n\n $el = null;\n\n parent = null;\n\n constructor(parent)\n {\n this.$el = Dom.make('div', {\n classList: ['n-draggable__indicator']\n });\n\n this.$el.appendTo(this.parent = parent);\n }\n\n resolve(event, safezone, el, strategy = 'inner')\n {\n let rect = el.getBoundingClientRect();\n\n if ( event.clientY < rect.y + safezone ) {\n strategy = 'before';\n }\n\n if ( event.clientY > rect.y + rect.height - safezone ) {\n strategy = 'after';\n }\n\n if ( Dom.find(el).hasClass('n-expanded') ) {\n strategy = strategy === 'after' ? 'inner' : strategy;\n }\n\n Arr.has(['before', 'after'], strategy) ?\n this.show(el, strategy) : this.hide();\n\n\n return strategy;\n }\n\n show(el, strategy)\n {\n let offsetTop = Dom.find(el).offsetTop(this.parent);\n\n let style = {\n top: offsetTop || 1\n };\n\n if ( strategy === 'after' ) {\n style.top = offsetTop + Dom.find(el).height();\n }\n\n this.$el.style(Obj.map(style, (item) => item + 'px'));\n }\n\n hide()\n {\n this.$el.style(null);\n }\n\n destroy()\n {\n this.$el.get(0).remove();\n }\n\n}\n\nclass NDraghandler\n{\n\n uid = null;\n\n rootNode = null;\n childNodes = {};\n\n dropNodes = [];\n cacheNodes = [];\n\n strategy = 'nodrop';\n frames = 0;\n timeout = 0;\n dragcount = {};\n\n constructor(rootNode)\n {\n this.rootNode = rootNode;\n }\n\n bindRoot(frame = null)\n {\n this.DragIndicator = new NDragIndicator(frame || this.rootNode.$el);\n\n if ( window.DragCache ) {\n this.bindDragstart.call(this, ...window.DragCache);\n }\n\n let key = this.rootNode._.uid + '-droot-';\n\n Dom.find(this.rootNode.$el).on('dragenter', Run.framebuffer((event) => {\n this.onDragenterRoot(event);\n }, key + 'dragenter', 140));\n\n Dom.find(this.rootNode.$el).on('dragover', Run.framebuffer((event) => {\n this.onDragoverRoot(event);\n }, key + 'dragover', 240));\n\n Dom.find(this.rootNode.$el).on('dragleave', Run.framebuffer((event) => {\n this.onDragleaveRoot(event);\n }, key + 'dragleave', 340));\n\n Dom.find(this.rootNode.$el).on('dragend', Run.framebuffer((event) => {\n this.onDragendRoot(event);\n }, key + 'dragend', 440));\n\n Dom.find(this.rootNode.$el).on('drop', Run.framebuffer((event) => {\n this.onDragdropRoot(event);\n }, key + 'drop', 540));\n\n Dom.find(this.rootNode.$el).on('dragdrop', Run.framebuffer((event) => {\n this.onDragdropRoot(event);\n }, key + 'dragdrop', 640));\n\n Event.bind('NDrag:start', this.bindDragstart.bind(this),\n this.rootNode.uid);\n\n Event.bind('NDrag:end', this.bindDragend.bind(this),\n this.rootNode.uid);\n\n Event.bind('NDrag:drop', this.bindDragdrop.bind(this),\n this.rootNode.uid);\n }\n\n unbindRoot()\n {\n let events = [\n 'dragstart',\n 'dragenter',\n 'dragover',\n 'dragleave',\n 'dragend',\n 'drop',\n 'dragdrop',\n ];\n\n Dom.find(this.rootNode.$el).off(events);\n\n Event.unbind('NDrag:start', this.rootNode.uid);\n Event.unbind('NDrag:end', this.rootNode.uid);\n Event.unbind('NDrag:drop', this.rootNode.uid);\n }\n\n onDragenterRoot(event)\n {\n event.preventDefault();\n\n Dom.find(this.rootNode.$el).find('.n-dragover')\n .remClass('n-dragover');\n }\n\n onDragoverRoot(event)\n {\n let isNode = Dom.find(event.target)\n .closest('.n-draglist-item');\n\n if ( isNode || !this.cacheNodes.length ) {\n return;\n }\n\n event.preventDefault();\n\n // if ( this.frames && Date.now() - this.frames < 35 ) {\n // return;\n // }\n\n let allowDrop = this.rootNode.allowDrop;\n\n if ( !Mix.isFunction(allowDrop) ) {\n allowDrop = () => this.rootNode.allowDrop;\n }\n\n let rainbow = Arr.each(this.cacheNodes, (node) => {\n return !!allowDrop(node, null, this.strategy);\n });\n\n this.strategy = 'root';\n\n if ( Arr.has(rainbow, false) ) {\n this.strategy = 'nodrop';\n }\n\n this.DragIndicator.hide();\n\n if ( this.strategy !== 'nodrop' ) {\n Dom.find(this.rootNode.$el).addClass('n-dragover');\n } else {\n Dom.find(this.rootNode.$el).remClass('n-dragover');\n }\n\n if ( this.strategy === 'nodrop' ) {\n Dom.find(this.rootNode.$el).addClass('n-nodrop');\n } else {\n Dom.find(this.rootNode.$el).remClass('n-nodrop');\n }\n\n this.frames = Date.now();\n }\n\n onDragleaveRoot(event)\n {\n Dom.find(this.rootNode.$el)\n .remClass(['n-dragover', 'n-nodrop']);\n\n Dom.find(this.rootNode.$el).find('.n-dragover')\n .remClass('n-dragover');\n }\n\n onDragendRoot(event)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(this.rootNode.$el)\n .remClass(['n-dragover', 'n-nodrop']);\n\n if ( this.strategy !== 'root' ) {\n return;\n }\n\n Event.fire('NDrag:end');\n }\n\n onDragdropRoot(event)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(this.rootNode.$el)\n .remClass(['n-dragover', 'n-nodrop']);\n\n if ( this.strategy !== 'root' ) {\n return;\n }\n\n event.preventDefault();\n\n this.moveNodes(null, this.strategy);\n\n Event.fire('NDrag:drop');\n }\n\n bindDragstart(group, cache)\n {\n if ( Arr.has(this.rootNode.allowGroups, group) ) {\n this.cacheNodes = JSON.parse(JSON.stringify(cache));\n }\n }\n\n bindDragend()\n {\n this.dragcount = {};\n\n this.cacheNodes = this.dropNodes = [];\n }\n\n bindDragdrop(...args)\n {\n if ( !this.dropNodes.length ) {\n return;\n }\n\n this.rootNode.tempSelected = [];\n\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected);\n\n if ( !this.rootNode.removeNode ) {\n return;\n }\n\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n this.unlinkNodes(clone);\n this.removeNodes(clone);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n onDragstartNode(event, node)\n {\n if ( !this.rootNode.isSelected(node) ) {\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected = [node.uid]);\n }\n\n let cache = Arr.each(this.rootNode.tempSelected, (id) => {\n return Arr.find(this.rootNode.virtuals, { [this.rootNode.uniqueProp]: id });\n });\n\n window.DragCounter.get(event, cache.length);\n\n Arr.map(cache, (value) => {\n return { value, item: Obj.get(this.rootNode, value.route) };\n });\n\n Event.fire('NDrag:start', this.rootNode.group,\n this.dropNodes = cache);\n\n window.DragCache = [\n this.rootNode.group, this.dropNodes\n ];\n\n this.dragcount[node.uid] = 0;\n }\n\n onDragenterNode(event, node)\n {\n event.preventDefault();\n\n if ( !this.dragcount[node.uid] ) {\n this.dragcount[node.uid] = 0;\n }\n\n this.dragcount[node.uid] ++;\n }\n\n onDragoverNode(event, node)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n event.preventDefault();\n\n // if ( this.frames && Date.now() - this.frames < 45 ) {\n // return;\n // }\n\n let safezone = this.rootNode\n .safezone(node.$el.clientHeight);\n\n this.strategy = this.DragIndicator\n .resolve(event, safezone, node.$el);\n\n let targetNode = {\n value: node.value, item: node.item\n };\n\n let allowDrop = this.rootNode.allowDrop;\n\n if ( !Mix.isFunction(allowDrop) ) {\n allowDrop = () => this.rootNode.allowDrop;\n }\n\n let rainbow = Arr.each(this.cacheNodes, (node) => {\n return !!allowDrop(node, targetNode, this.strategy);\n });\n\n let isInSelf = Arr.has(node.value.cascade,\n this.rootNode.tempSelected);\n\n if ( this.rootNode.tempSelected.length ) {\n rainbow.push(!isInSelf);\n }\n\n if ( Arr.has(rainbow, false) ) {\n this.strategy = 'nodrop';\n }\n\n if ( this.strategy === 'nodrop' ) {\n this.DragIndicator.hide();\n }\n\n if ( this.strategy !== 'nodrop' ) {\n Dom.find(node.$el).addClass('n-dragover');\n Dom.find(node.$el).remClass('n-nodrop');\n }\n\n if ( this.strategy === 'nodrop' ) {\n Dom.find(node.$el).remClass('n-dragover');\n Dom.find(node.$el).addClass('n-nodrop');\n }\n\n this.frames = Date.now();\n }\n\n onDragleaveNode(event, node)\n {\n this.dragcount[node.uid] --;\n\n if ( this.dragcount[node.uid] !== 0 ) {\n return;\n }\n\n Dom.find(node.$el).remClass(['n-dragover', 'n-nodrop']);\n\n this.DragIndicator.hide();\n }\n\n onDragendNode(event, node)\n {\n Dom.find(node.$el).remClass(['n-dragover', 'n-nodrop']);\n\n this.DragIndicator.hide();\n\n Event.fire('NDrag:end');\n\n window.DragCache = null;\n }\n\n onDragdropNode(event, node)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(node.$el).remClass(['n-dragover', 'n-nodrop']);\n\n this.DragIndicator.hide();\n\n if ( this.strategy === 'nodrop' ) {\n return;\n }\n\n event.preventDefault();\n\n this.moveNodes(node, this.strategy);\n\n Event.fire('NDrag:drop');\n }\n\n bindNode(node)\n {\n if ( this.childNodes[node.uid] ) {\n this.unbindNode(node);\n }\n\n let $handle = Dom.find(node.$el);\n\n if ( this.rootNode.handle ) {\n $handle = $handle.find('[draggable]');\n }\n\n let [$el, id] = [\n Dom.find(node.$el), node.uid\n ];\n\n $handle.on('dragstart', (event) => {\n this.onDragstartNode(event, node);\n }, { id });\n\n $el.on('dragenter', Run.framebuffer((event) => {\n this.onDragenterNode(event, node);\n }, `${id}-dnode-dragenter`, 150), { id });\n\n $el.on('dragover', Run.framebuffer((event) => {\n this.onDragoverNode(event, node);\n }, `${id}-dnode-dragover`, 250), { id });\n\n $el.on('dragleave', Run.framebuffer((event) => {\n this.onDragleaveNode(event, node);\n }, `${id}-dnode-dragleave`, 350), { id });\n\n $el.on('dragend', Run.framebuffer((event) => {\n this.onDragendNode(event, node);\n }, `${id}-dnode-dragend`, 450), { id });\n\n $el.on('drop', Run.framebuffer((event) => {\n this.onDragdropNode(event, node);\n }, `${id}-dnode-drop`, 550), { id });\n\n $el.on('dragdrop', Run.framebuffer((event) => {\n this.onDragdropNode(event, node);\n }, `${id}-dnode-dragdrop`, 650), { id });\n\n this.childNodes[node.uid] = node;\n }\n\n unbindNode(node)\n {\n Dom.find().optoff({\n id: node.uid\n });\n\n delete this.childNodes[node.uid];\n }\n\n moveNodes(target, strategy) {\n\n if ( this.rootNode.items !== undefined ) {\n return this.moveNodesMany(target, strategy);\n }\n\n if ( this.rootNode.item !== undefined ) {\n return this.moveNodesOne(target, strategy);\n }\n\n return null;\n }\n\n moveNodesOne(target, strategy)\n {\n let clone = {\n items: [Obj.clone(this.rootNode.item)]\n };\n\n if ( this.rootNode.insertNode ) {\n clone = this.moveNodesRoot(clone, target);\n }\n\n if ( this.rootNode.removeNode ) {\n clone = this.removeNodes(clone);\n }\n\n let sources = Arr.each(this.cacheNodes, (node) => {\n return node.item[this.rootNode.uniqueProp];\n });\n\n let source = Arr.first(this.cacheNodes);\n\n this.rootNode.$emit('move', Obj.get(source, 'value.id'),\n Obj.get(target, 'uid'), strategy);\n\n this.rootNode.$emit('moveRaw',\n source, target, strategy);\n\n this.rootNode.$emit('update:item',\n Obj.get(source, 'item'));\n }\n\n moveNodesMany(target, strategy)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n if ( this.rootNode.removeNode ) {\n this.unlinkNodes(clone);\n }\n\n if ( !this.dropNodes.length ) {\n Arr.each(this.cacheNodes, (value, key) => {\n this.cacheNodes[key]['item'] = this.rootNode.transformDrop(value.item);\n });\n }\n\n if ( this.rootNode.insertNode && strategy === 'root' ) {\n clone = this.moveNodesRoot(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'inner' ) {\n clone = this.moveNodesInto(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'before' ) {\n clone = this.moveNodesBefore(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'after' ) {\n clone = this.moveNodesAfter(clone, target);\n }\n\n if ( this.rootNode.removeNode ) {\n clone = this.removeNodes(clone);\n }\n\n let sources = Arr.each(this.cacheNodes, (node) => {\n return node.item[this.rootNode.uniqueProp];\n });\n\n this.dropNodes = this.rootNode.tempSelected = [];\n\n let eventName = 'move';\n\n if ( Arr.has(window.dragMods, 18) ) {\n eventName = 'moveAlt';\n }\n\n if ( Arr.has(window.dragMods, 17) ) {\n eventName = 'moveCtrl';\n }\n\n if ( Arr.has(window.dragMods, 91) ) {\n eventName = 'moveMeta';\n }\n\n this.rootNode.$emit(eventName, sources,\n Obj.get(target, 'uid'), strategy);\n\n this.rootNode.$emit(eventName + 'Raw',\n this.cacheNodes, target, strategy);\n\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n unlinkNodes(clone)\n {\n Arr.each(this.dropNodes, (node) => {\n Obj.set(clone, node.value.route, null);\n });\n }\n\n removeNodes(clone, prop = 'items')\n {\n clone[prop] = Arr.filter(clone[prop], (node) => {\n return !!node;\n });\n\n Arr.map(clone[prop], (node) => {\n\n if ( !node[this.rootNode.childProp] ) {\n return node;\n }\n\n return this.removeNodes(node,\n this.rootNode.childProp);\n });\n\n return clone;\n }\n\n moveNodesRoot(clone)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n Arr.each(this.cacheNodes, (node) => {\n clone.items.push(node.item);\n });\n\n return clone;\n }\n\n moveNodesInto(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = [\n target.value.route,\n this.rootNode.childProp\n ].join('.');\n\n let children = Obj.get(clone,\n targetRoute, []);\n\n Arr.each(this.cacheNodes, (node) => {\n children.push(node.item);\n });\n\n Obj.set(clone, targetRoute, children);\n\n return clone;\n }\n\n moveNodesBefore(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = target.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n Arr.each(this.cacheNodes, (node, index) => {\n items.splice(target.value.index + index, 0, node.item);\n });\n\n Obj.set(clone, targetRoute, items);\n\n return clone;\n }\n\n moveNodesAfter(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = target.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n Arr.each(this.cacheNodes, (node, index) => {\n items.splice(target.value.index + index + 1, 0, node.item);\n });\n\n Obj.set(clone, targetRoute, items);\n\n return clone;\n }\n\n copyNode(node)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n let targetRoute = node.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n let target = Obj.except(node.item, [], {\n [this.rootNode.uniqueProp]: Hash.uuid()\n });\n\n items.splice(node.value.index + 1,\n 0, target);\n\n Obj.set(clone, targetRoute, items);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n removeNode(node)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n let targetRoute = node.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n items.splice(node.value.index, 1);\n\n Obj.set(clone, targetRoute, items);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n reduce(items, ...props)\n {\n return Arr.reduce(items, (merge, item, index) => {\n return this.reduceItem(merge, item, Num.int(index), ...props);\n }, []);\n }\n\n reduceItem(merge, item, index, depth = 0, route = 'items', cascades = [])\n {\n // Get a unique id\n let unique = Obj.get(item,\n this.rootNode.uniqueProp, Hash.uuid());\n\n // Add unique to cascader\n let tempCascade = Arr.merge(cascades,\n [unique]);\n\n let virtual = {\n index: index,\n depth: depth,\n route: [route, index].join('.'),\n parent: Arr.last(cascades),\n cascade: tempCascade,\n };\n\n virtual[this.rootNode.uniqueProp] = unique;\n\n let children = Obj.get(item,\n this.rootNode.childProp, []);\n\n if ( Mix.isEmpty(children) ) {\n return Arr.merge(merge, [virtual]);\n }\n\n let childRoute = [\n route, index,\n this.rootNode.childProp\n ].join('.');\n\n let props = [\n depth + 1, childRoute, tempCascade\n ]\n\n return Arr.merge(merge, [virtual],\n this.reduce(children, ...props));\n }\n\n}\n\nexport default NDraghandler;","import { Hash, Run, Arr, Obj, Dom, Mix, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDraglist',\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n }\n },\n\n expanded: {\n default()\n {\n return [];\n }\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n safezone: {\n default()\n {\n return (height) => height * 0.265;\n }\n },\n\n lazyload: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 34;\n },\n type: [Number]\n },\n\n itemOffset: {\n default()\n {\n return 30;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderSelect: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderExpand: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NDraggable: this\n };\n },\n\n data()\n {\n return {\n uid: Hash.uuid(),\n modifier: [],\n virtuals: [], \n visible: [], \n childNodes: {}, \n highlight: [],\n firstSelected: null,\n lastSelected: null,\n tempCurrent: this.current, \n tempExpanded: this.expanded, \n tempSelected: this.selected\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n\n Dom.find(window).on('keydown',\n this.watchModifierDown, this._.uid);\n\n Dom.find(window).on('keyup',\n this.watchModifierUp, this._.uid);\n },\n\n mounted()\n {\n let frame = this.$refs.virtualscroller.\n $refs.inner;\n\n this.drag.bindRoot(frame);\n\n this.$watch('tempSelected', this.watchSelected, \n { deep: true });\n\n this.refreshVirtuals();\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n\n Dom.find(document).off('keydown', null, this.uid);\n Dom.find(document).off('keyup', null, this.uid);\n },\n\n watch: {\n \n items()\n {\n if ( this.scrollTopOnChange ) {\n this.scrollTo();\n }\n\n this.refreshVirtuals();\n },\n\n virtuals()\n {\n this.filterVirtuals();\n },\n\n expanded(value)\n {\n this.tempExpanded = value;\n\n this.filterVirtuals();\n },\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n current(value)\n {\n this.tempCurrent = value;\n }\n\n },\n\n methods: {\n\n watchModifierDown(e)\n {\n Arr.add(this.modifier, e.which);\n },\n\n watchModifierUp(e)\n {\n Arr.remove(this.modifier, e.which);\n },\n\n watchSelected()\n {\n if ( ! this.tempSelected.length ) {\n return this.firstSelected = null;\n }\n\n this.firstSelected = Arr.find(this.virtuals, {\n [this.uniqueProp]: this.tempSelected[0]\n });\n },\n\n updateNode(node)\n {\n Obj.set(this, node.value.route, node.item);\n\n this.$emit('update:items', this.items);\n },\n\n findVirtual(unique)\n {\n let value = Arr.find(this.virtuals, (item) => {\n return item[this.uniqueProp] === unique;\n });\n\n if ( ! value ) {\n return null;\n }\n\n return {\n value, item: Obj.get(this, value.route, null)\n };\n },\n\n refreshVirtuals()\n {\n this.virtuals = this.drag.reduce(this.items);\n\n if ( window.DEBUG_NDLIST ) {\n console.log('Total virtual items mounted: ' + this.virtuals.length);\n }\n },\n\n filterVirtuals()\n {\n this.visible = Arr.filter(this.virtuals, (node) => {\n return Arr.contains(this.tempExpanded, node.cascade.slice(0, -1));\n });\n },\n\n getIndex(unique)\n {\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: unique\n });\n },\n\n getCurrentIndex()\n {\n if ( ! this.tempCurrent ) {\n return -1;\n }\n\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n },\n\n scrollTo(x = 0, y = 0)\n {\n if ( ! this.$refs.virtualscroller ) {\n return Run.delay(() => this.scrollTo(x, y));\n }\n\n this.$refs.virtualscroller.scrollTo(x, y);\n },\n\n scrollToIndex(index)\n {\n if ( ! this.$refs.virtualscroller ) {\n return Run.delay(() => this.scrollToIndex(index));\n }\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isDraggable(node)\n {\n let canDrag = this.allowDrag;\n\n if ( ! Mix.isFunction(canDrag) ) {\n canDrag = () => this.allowDrag;\n }\n\n return canDrag(node);\n },\n\n isHighlight(node)\n {\n return Arr.has(this.highlight, node.value[this.uniqueProp]);\n },\n\n highlightNode(value, key = null)\n {\n clearTimeout(this.refresh);\n\n // Clear highlight items\n this.highlight = [];\n\n Arr.recursive(this.items, this.childProp, (node, cascade) => {\n\n let val = node;\n\n if ( !Mix.isEmpty(key) ) {\n val = Obj.get(val, key);\n }\n\n if ( ! Mix.isFunction(value) ) {\n value = (val) => val === value;\n }\n\n if ( ! value(val) ) {\n return;\n }\n\n Arr.each(cascade, (item) => {\n Arr.add(this.tempExpanded, item[this.uniqueProp]);\n });\n\n Arr.add(this.highlight, node[this.uniqueProp]);\n });\n\n if ( ! this.highlight.length ) {\n return;\n }\n\n this.$nextTick(this.scrollToHighlight);\n \n this.refresh = setTimeout(() =>\n this.highlight = [], this.highlightTimeout);\n \n this.filterVirtuals();\n },\n\n scrollToHighlight()\n {\n if ( ! this.highlight.length ) {\n return;\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: Arr.first(this.highlight)\n });\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isCurrent(node)\n {\n return this.renderCurrent && this.tempCurrent && \n node.value[this.uniqueProp] === this.tempCurrent[this.uniqueProp] ;\n },\n\n setCurrent(node)\n {\n let isSameNode = this.tempCurrent && \n this.tempCurrent[this.uniqueProp] === node.value[this.uniqueProp];\n\n if ( isSameNode ) {\n return;\n }\n\n this.$emit('update:current', \n this.tempCurrent = node.item);\n \n Event.fire('NDraglist:syncCurrent', node.item, this.uid);\n },\n\n setRawCurrent(index)\n {\n let route = Obj.get(this.visible, \n [index, 'route']);\n\n if ( ! route ) {\n return this.setRawCurrent(0);\n }\n\n let item = Obj.get(this, route);\n\n this.$refs.virtualscroller\n .scrollIntoView(index);\n\n this.$emit('update:current', \n this.tempCurrent = item);\n \n Event.fire('NDraglist:syncCurrent', item, this.uid);\n },\n\n setNextCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = 0;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index++;\n }\n\n if ( index >= this.visible.length ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n setPrevCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = this.visible.length - 1;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index--;\n }\n\n if ( index < 0 ) {\n index = reset;\n }\n \n this.setRawCurrent(index);\n },\n\n syncCurrent()\n {\n return ['NDraglist:syncCurrent', this.uid];\n },\n\n isDisabled(node)\n {\n let canSelect = this.allowSelect;\n\n if ( ! Mix.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n return ! canSelect(node) || (this.firstSelected &&\n node.value.depth !== this.firstSelected.depth);\n },\n\n hasChildren(node)\n {\n return !! this.getChildren(node).length;\n },\n\n getChildren(node)\n {\n return Obj.get(node.item, this.childProp, []);\n },\n\n isExpanded(node)\n {\n return Arr.has(this.tempExpanded, node.value[this.uniqueProp]);\n },\n\n expandItem(node)\n {\n if ( ! this.hasChildren(node) ) {\n return;\n }\n\n Arr.toggle(this.tempExpanded, node.value[this.uniqueProp]);\n\n this.filterVirtuals();\n },\n\n expandCurrent()\n {\n if ( ! this.tempCurrent ) {\n return;\n }\n\n let children = Obj.get(this.tempCurrent, \n this.childProp);\n\n if ( Mix.isEmpty(children) ) {\n return;\n }\n\n Arr.toggle(this.tempExpanded, \n this.tempCurrent[this.uniqueProp]);\n\n this.filterVirtuals();\n },\n\n isSelected(node)\n {\n return Arr.has(this.tempSelected, node.value[this.uniqueProp]);\n },\n\n isTotalSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length === this.tempSelected;\n },\n\n isInterSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length !== this.tempSelected &&\n this.tempSelected;\n },\n\n toggleSingleNode(node)\n {\n Arr.toggle(this.tempSelected, this.lastSelected =\n node.value[this.uniqueProp]);\n },\n\n toggleRangeNode(node)\n {\n let indexies = [0, -1], reversed = false;\n\n if ( ! Mix.isEmpty(this.lastSelected) ) {\n indexies[1] = this.getIndex(this.lastSelected);\n }\n\n indexies[0] = this.getIndex(node.value[this.uniqueProp]);\n\n if ( indexies[1] > indexies[0] ) {\n reversed = true;\n }\n\n if ( ! reversed ) {\n indexies = [indexies[1]+1, indexies[0]+1];\n }\n\n Arr.each(this.items.slice(indexies[0], indexies[1]), (item, index) => {\n Arr.toggle(this.tempSelected, item[this.uniqueProp]);\n });\n\n this.lastSelected = node.value[this.uniqueProp];\n },\n\n selectItem(node)\n {\n if ( this.isDisabled(node) ) {\n return;\n }\n\n ! Arr.has(this.modifier, 16) || this.renderExpand ?\n this.toggleSingleNode(node) : this.toggleRangeNode(node);\n\n this.$emit('update:selected', this.tempSelected);\n },\n\n selectAll()\n {\n let result = Arr.filter(this.visible, (item) => {\n\n let canSelect = this.allowSelect;\n\n if ( ! Mix.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n let row = {\n value: item, item: Obj.get(this, item.route)\n };\n\n return ! item.depth && canSelect(row);\n });\n\n let indexies = Arr.each(result, (item) => {\n return item[this.uniqueProp];\n });\n\n if ( indexies.length === this.tempSelected.length ) {\n return this.$emit('update:selected', this.tempSelected = []);\n }\n\n this.lastSelected = null;\n\n this.$emit('update:selected', this.tempSelected = indexies);\n },\n\n unselectAll()\n {\n if ( this.tempSelected.length ) {\n this.$emit('update:selected', this.tempSelected = []);\n }\n },\n\n bindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).on('keydown', \n this.onKeydown, this.uid)\n },\n\n unbindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).off('keydown', \n null, this.uid)\n },\n\n onKeydown(event, el)\n {\n if ( Dom.find(el).closest('input') ) {\n return;\n }\n\n if ( event.which === 32 ) {\n event.preventDefault();\n event.stopPropagation();\n this.expandCurrent();\n }\n\n if ( event.which === 38 ) {\n event.preventDefault();\n event.stopPropagation();\n this.setPrevCurrent();\n }\n\n if ( event.which === 40 ) {\n event.preventDefault();\n event.stopPropagation();\n this.setNextCurrent();\n }\n }\n\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-draglist__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entries') }\n </NEmptyIcon>\n );\n },\n\n renderItem(props)\n {\n return (\n <NDraglistItem {...props}>\n { { default: this.$slots.default } }\n </NDraglistItem>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draglist',\n 'n-draglist--' + this.size,\n 'n-draglist--' + this.type\n ];\n\n if ( ! this.items.length ) {\n classList.push('n-empty');\n }\n\n let passed = [\n 'threshold', 'itemHeight', 'overflowX', 'overflowY', 'offsetX', 'offsetY',\n 'useKeys', 'uniqueProp'\n ];\n\n let props = Obj.only(this.$props, passed, {\n items: this.visible,\n onMouseenter: this.bindKeydown,\n onMouseleave: this.unbindKeydown\n });\n\n return (\n <NVirtualscroller ref=\"virtualscroller\" class={classList} {...props}>\n { { default: this.ctor('renderItem'), empty: this.ctor('renderEmpty') } }\n </NVirtualscroller>\n );\n }\n\n}\n","import { Str, Obj, Arr, Dom, Run } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDraglistItem',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n\n },\n\n inheritAttrs: false,\n\n provide()\n {\n return {\n NDraggableItem: this\n };\n },\n\n props: {\n\n value: {\n required: true\n },\n\n index: {\n required: false\n },\n\n },\n\n computed: {\n\n uid()\n {\n return Obj.get(this.value, this.NDraggable.uniqueProp);\n },\n\n item()\n {\n return Obj.get(this.NDraggable, this.value.route);\n },\n\n touch()\n {\n return !!('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown()\n {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove()\n {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup()\n {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n init: !this.NDraggable.lazyload\n };\n },\n\n mounted()\n {\n if ( this.NDraggable.lazyload ) {\n Run.frame(() => this.init = true);\n }\n\n if ( this.NDraggable.draggable ) {\n this.NDraggable.drag.bindNode(this);\n }\n },\n\n unmounted()\n {\n if ( this.NDraggable.draggable ) {\n this.NDraggable.drag.unbindNode(this);\n }\n },\n\n methods: {\n\n copy()\n {\n return this.NDraggable.drag.copyNode(this);\n },\n\n remove()\n {\n return this.NDraggable.drag.removeNode(this);\n },\n\n hasChildren()\n {\n return this.NDraggable.hasChildren(this);\n },\n\n isDisabled()\n {\n return this.NDraggable.isDisabled(this);\n },\n\n isHighlight()\n {\n return this.NDraggable.isHighlight(this);\n },\n\n isCurrent()\n {\n return this.NDraggable.isCurrent(this);\n },\n\n isDraggable()\n {\n return this.NDraggable.isDraggable(this);\n },\n\n isExpanded()\n {\n return this.NDraggable.isExpanded(this);\n },\n\n expandItem()\n {\n this.NDraggable.expandItem(this);\n },\n\n isSelected()\n {\n return this.NDraggable.isSelected(this);\n },\n\n selectItem()\n {\n this.NDraggable.selectItem(this);\n },\n\n onClick(event)\n {\n let isExpand = Dom.find(event.target)\n .closest('.n-draglist-item__expand');\n\n if ( isExpand ) {\n return;\n }\n\n this.NDraggable.setCurrent(this);\n\n if ( Arr.has(window.keyMods, 91) ) {\n this.NDraggable.selectItem(this);\n }\n\n this.NDraggable.$emit('row-click', this);\n },\n\n onDblclick()\n {\n this.NDraggable.setCurrent(this);\n\n this.NDraggable.$emit('row-dblclick', this);\n }\n\n },\n\n renderElement()\n {\n let classList = [\n 'n-draglist-item__element'\n ];\n\n if ( !this.init ) {\n return (<div class={classList} />);\n }\n\n let props = {\n value: this.value,\n item: this.item,\n copy: this.copy,\n remove: this.remove,\n };\n\n let renderFunction = this.$slots.default;\n\n if ( this.NDraggable.renderNode ) {\n renderFunction = this.NDraggable.renderNode;\n }\n\n return (\n <div class={classList}>\n {renderFunction(props)}\n </div>\n );\n },\n\n renderSpacer()\n {\n let width = this.value.depth *\n this.NDraggable.itemOffset;\n\n if ( !width ) {\n return null;\n }\n\n let style = {\n width: width + 'px'\n };\n\n return (\n <div class=\"n-draglist-item__spacer\" style={style}>\n { /* SPACER */}\n </div>\n );\n },\n\n renderHandle()\n {\n if ( !this.NDraggable.renderHandle ) {\n return null;\n }\n\n let props = {};\n\n if ( this.NDraggable.draggable && this.isDraggable() ) {\n props.draggable = true;\n }\n\n return (\n <div class=\"n-draglist-item__handle\" {...props}>\n <div class=\"n-draglist-item__ellipsis\">\n <i class={nano.Icons.handle}></i>\n </div>\n </div>\n );\n },\n\n renderExpand()\n {\n if ( !this.NDraggable.renderExpand ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.expandItem\n };\n\n return (\n <div class=\"n-draglist-item__expand\" {...props}>\n <div class=\"n-draglist-item__angle\">\n <i class={nano.Icons.angleRight}></i>\n </div>\n </div>\n );\n },\n\n renderSelect()\n {\n if ( !this.NDraggable.renderSelect ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.selectItem\n };\n\n return (\n <div class=\"n-draglist-item__select\" {...props}>\n <div class=\"n-draglist-item__checkbox\">\n <i class={nano.Icons.checked}></i>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draglist-item'\n ];\n\n if ( this.hasChildren() ) {\n classList.push('n-children');\n }\n\n if ( this.isDisabled() ) {\n classList.push('n-disabled');\n }\n\n if ( this.isSelected() ) {\n classList.push('n-selected');\n }\n\n if ( this.isExpanded() ) {\n classList.push('n-expanded');\n }\n\n if ( this.isCurrent() ) {\n classList.push('n-current');\n }\n\n if ( this.isHighlight() ) {\n classList.push('n-highlight');\n }\n\n let props = {\n onClick: this.onClick, onDblclick: this.onDblclick,\n };\n\n if ( this.NDraggable.draggable && !this.NDraggable.handle && this.isDraggable() ) {\n props.draggable = true;\n }\n\n props['data-unique'] = this.value[this.NDraggable.uniqueProp];\n\n return (\n <div class={classList} {...props}>\n {this.ctor('renderHandle')()}\n {this.ctor('renderSpacer')()}\n {this.ctor('renderExpand')()}\n {this.ctor('renderSelect')()}\n {this.ctor('renderElement')()}\n </div>\n );\n }\n\n}\n","import { Hash, Num, Arr, Obj, Dom, Mix, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDraggrid',\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n }\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n safezone: {\n default()\n {\n return (height) => -1;\n }\n },\n\n lazyload: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 200;\n },\n type: [Number]\n },\n\n itemWidth: {\n default()\n {\n return 150;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n deathzone: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderSelect: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NDraggable: this\n };\n },\n\n data()\n {\n return {\n uid: Hash.uuid(),\n virtuals: [],\n visible: [],\n childNodes: {},\n highlight: [],\n firstSelected: null,\n tempCurrent: this.current,\n tempExpanded: this.expanded,\n tempSelected: this.selected\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n },\n\n mounted()\n {\n let frame = this.$refs.virtualscroller.\n $refs.inner;\n\n this.drag.bindRoot(frame);\n\n this.$watch('tempSelected', this.watchSelected,\n { deep: true });\n\n this.refreshVirtuals();\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n\n Dom.find(document).off('keydown', null, this.uid);\n },\n\n watch: {\n\n items()\n {\n if ( this.scrollTopOnChange ) {\n this.scrollTo();\n }\n\n this.refreshVirtuals();\n },\n\n virtuals()\n {\n this.filterVirtuals();\n },\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n current(value)\n {\n this.tempCurrent = value;\n }\n\n },\n\n methods: {\n\n watchSelected()\n {\n if ( ! this.tempSelected.length ) {\n return this.firstSelected = null;\n }\n\n this.firstSelected = Arr.find(this.virtuals, {\n [this.uniqueProp]: this.tempSelected[0]\n });\n },\n\n refreshVirtuals()\n {\n this.virtuals = this.drag.reduce(this.items);\n\n if ( window.DEBUG_NDLIST ) {\n console.log('Total virtual items mounted: ' + this.virtuals.length);\n }\n },\n\n filterVirtuals()\n {\n this.visible = Arr.filter(this.virtuals, (node) => {\n return node.depth === 0;\n });\n },\n\n getIndex(unique)\n {\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: unique\n });\n },\n\n getCurrentIndex()\n {\n if ( ! this.tempCurrent ) {\n return -1;\n }\n\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n },\n\n scrollTo(x = 0, y = 0)\n {\n this.$refs.virtualscroller.scrollTo(x, y);\n },\n\n scrollToIndex(index)\n {\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isDraggable(node)\n {\n let canDrag = this.allowDrag;\n\n if ( ! Mix.isFunction(canDrag) ) {\n canDrag = () => this.allowDrag;\n }\n\n return canDrag(node);\n },\n\n isHighlight(node)\n {\n return Arr.has(this.highlight, node.value[this.uniqueProp]);\n },\n\n highlightNode(value, key = null)\n {\n clearTimeout(this.refresh);\n\n // Clear highlight items\n this.highlight = [];\n\n Arr.recursive(this.items, this.childProp, (node, cascade) => {\n\n if ( Obj.get(node, key || this.uniqueProp) !== value ) {\n return;\n }\n\n Arr.each(cascade, (item) => {\n Arr.add(this.tempExpanded, item[this.uniqueProp]);\n });\n\n Arr.add(this.highlight, node[this.uniqueProp]);\n });\n\n if ( ! this.highlight.length ) {\n return;\n }\n\n this.$nextTick(this.scrollToHighlight);\n\n this.refresh = setTimeout(() =>\n this.highlight = [], this.highlightTimeout);\n\n this.filterVirtuals();\n },\n\n scrollToHighlight()\n {\n if ( ! this.highlight.length ) {\n return;\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: Arr.first(this.highlight)\n });\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isCurrent(node)\n {\n return this.renderCurrent && this.tempCurrent &&\n node.value[this.uniqueProp] === this.tempCurrent[this.uniqueProp] ;\n },\n\n setCurrent(node)\n {\n let isSameNode = this.tempCurrent &&\n this.tempCurrent[this.uniqueProp] === node.value[this.uniqueProp];\n\n if ( isSameNode ) {\n return;\n }\n\n this.$emit('update:current',\n this.tempCurrent = node.item);\n\n Event.fire('NDraggrid:syncCurrent', node.item, this.uid);\n },\n\n setRawCurrent(index)\n {\n let route = Obj.get(this.visible,\n [index, 'route']);\n\n if ( ! route ) {\n return this.setRawCurrent(0);\n }\n\n let item = Obj.get(this, route);\n\n this.$refs.virtualscroller\n .scrollIntoView(index);\n\n this.$emit('update:current',\n this.tempCurrent = item);\n\n Event.fire('NDraggrid:syncCurrent', item, this.uid);\n },\n\n setNextCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = 0;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index++;\n }\n\n if ( index >= this.visible.length ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n setPrevCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = this.visible.length - 1;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index--;\n }\n\n if ( index < 0 ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n syncCurrent()\n {\n return ['NDraggrid:syncCurrent', this.uid];\n },\n\n isDisabled(node)\n {\n let canSelect = this.allowSelect;\n\n if ( ! Mix.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n return ! canSelect(node) || (this.firstSelected &&\n node.value.depth !== this.firstSelected.depth);\n },\n\n isSelected(node)\n {\n return Arr.has(this.tempSelected, node.value[this.uniqueProp]);\n },\n\n isTotalSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length === this.tempSelected;\n },\n\n isInterSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length !== this.tempSelected &&\n this.tempSelected;\n },\n\n selectItem(node)\n {\n if ( this.isDisabled(node) ) {\n return;\n }\n\n Arr.toggle(this.tempSelected, node.value[this.uniqueProp]);\n\n this.$emit('update:selected', this.tempSelected);\n },\n\n selectAll()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n let indexies = Arr.each(visible, (item) => {\n return item[this.uniqueProp];\n });\n\n if ( indexies.length === this.tempSelected.length ) {\n return this.$emit('update:selected', this.tempSelected = []);\n }\n\n this.$emit('update:selected', this.tempSelected = indexies);\n },\n\n unselectAll()\n {\n if ( this.tempSelected.length ) {\n this.$emit('update:selected', this.tempSelected = []);\n }\n },\n\n bindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).on('keydown',\n this.onKeydown, this.uid)\n },\n\n unbindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).off('keydown',\n null, this.uid)\n },\n\n onKeydown(event, el)\n {\n if ( Dom.find(el).closest('input') ) {\n return;\n }\n\n if ( event.which === 38 ) {\n event.preventDefault();\n event.stopPropagation();\n // this.setPrevCurrent();\n }\n\n if ( event.which === 40 ) {\n event.preventDefault();\n event.stopPropagation();\n // this.setNextCurrent();\n }\n }\n\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-draggrid__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entries') }\n </NEmptyIcon>\n );\n },\n\n renderItem(props)\n {\n return (\n <NDraggridItem {...Obj.except(props, ['index'])}>\n { { default: this.$slots.default } }\n </NDraggridItem>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draggrid',\n 'n-draggrid--' + this.size,\n 'n-draggrid--' + this.type\n ];\n\n if ( ! this.items.length ) {\n classList.push('n-empty');\n }\n\n let passed = [\n 'threshold', 'deathzone', 'itemHeight', 'itemWidth', 'overflowX', 'overflowY',\n 'offsetX', 'offsetY', 'useKeys', 'uniqueProp'\n ];\n\n let props = Obj.only(this.$props, passed, {\n items: this.visible,\n onMouseenter: this.bindKeydown,\n onMouseleave: this.unbindKeydown\n });\n\n return (\n <NVirtualscroller ref=\"virtualscroller\" class={classList} {...props}>\n { { default: this.ctor('renderItem'), empty: this.ctor('renderEmpty') } }\n </NVirtualscroller>\n );\n }\n\n}\n","import { Str, Arr, Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDraggridItem',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NDraggableItem: this\n };\n },\n\n props: {\n\n value: {\n required: true\n }\n\n },\n\n computed: {\n\n uid()\n {\n return Obj.get(this.value, this.NDraggable.uniqueProp);\n },\n\n item()\n {\n return Obj.get(this.NDraggable, this.value.route);\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n init: ! this.NDraggable.lazyload\n };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => {\n\n if ( this.NDraggable.draggable ) {\n this.timer = setTimeout(() => {\n this.NDraggable.drag.bindNode(this);\n }, 50);\n }\n\n this.init = true;\n }, 40);\n },\n\n beforeUnmount()\n {\n if ( ! this.init ) {\n clearTimeout(this.timer);\n }\n\n this.NDraggable.drag.unbindNode(this);\n },\n\n methods: {\n\n copy()\n {\n return this.NDraggable.drag.copyNode(this);\n },\n\n remove()\n {\n return this.NDraggable.drag.removeNode(this);\n },\n\n isDisabled()\n {\n return this.NDraggable.isDisabled(this);\n },\n\n isHighlight()\n {\n return this.NDraggable.isHighlight(this);\n },\n\n isCurrent()\n {\n return this.NDraggable.isCurrent(this);\n },\n\n isDraggable()\n {\n return this.NDraggable.isDraggable(this);\n },\n\n isSelected()\n {\n return this.NDraggable.isSelected(this);\n },\n\n selectItem()\n {\n this.NDraggable.selectItem(this);\n },\n\n onClick()\n {\n this.NDraggable.setCurrent(this);\n\n if ( Arr.has(window.keyMods, 91) ) {\n this.NDraggable.selectItem(this);\n }\n\n this.NDraggable.$emit('row-click', this);\n },\n\n onDblclick()\n {\n this.NDraggable.setCurrent(this);\n\n this.NDraggable.$emit('row-dblclick', this);\n }\n\n },\n\n renderElement()\n {\n let classList = [\n 'n-draglist-item__element'\n ];\n\n if ( ! this.init ) {\n return (<div class={classList} />);\n }\n\n let props = {\n value: this.value,\n item: this.item,\n copy: this.copy,\n remove: this.remove,\n };\n\n let renderFunction = this.$slots.default;\n\n if ( this.NDraggable.renderNode ) {\n renderFunction = this.NDraggable.renderNode;\n }\n\n return (\n <div class={classList}>\n {renderFunction(props)}\n </div>\n );\n },\n\n renderHandle()\n {\n if ( ! this.NDraggable.renderHandle ) {\n return null;\n }\n\n let props = {};\n\n if ( this.NDraggable.draggable && this.isDraggable() ) {\n props.draggable = true;\n }\n\n return (\n <div class=\"n-draggrid-item__handle\" {...props}>\n <div class=\"n-draggrid-item__ellipsis\">\n <i class={ nano.Icons.handle }></i>\n </div>\n </div>\n );\n },\n\n renderSelect()\n {\n if ( ! this.NDraggable.renderSelect ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.selectItem\n };\n\n return (\n <div class=\"n-draggrid-item__select\" {...props}>\n <div class=\"n-draggrid-item__checkbox\">\n <i class={ nano.Icons.checked }></i>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draggrid-item'\n ];\n\n if ( this.isDisabled() ) {\n classList.push('n-disabled');\n }\n\n if ( this.isSelected() ) {\n classList.push('n-selected');\n }\n\n if ( this.isCurrent() ) {\n classList.push('n-current');\n }\n\n if ( this.isHighlight() ) {\n classList.push('n-highlight');\n }\n\n let props = {\n onClick: this.onClick,\n onDblclick: this.onDblclick,\n };\n\n if ( this.NDraggable.draggable && ! this.NDraggable.handle && this.isDraggable() ) {\n props.draggable = true;\n }\n\n props['data-unique'] = this.value[this.NDraggable.uniqueProp];\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHandle')() }\n { this.ctor('renderSelect')() }\n { this.ctor('renderElement')() }\n </div>\n );\n }\n\n}\n","import { Hash, Num, Arr, Obj, Dom, Mix, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDropzone',\n\n model: {\n prop: 'item'\n },\n\n props: {\n\n item: {\n default()\n {\n return null;\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n },\n\n provide()\n {\n return {\n NDropzone: this\n };\n },\n\n data()\n {\n return {\n uid: Hash.uuid(),\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n },\n\n mounted()\n {\n this.drag.bindRoot(this.$el);\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n },\n\n renderItem()\n {\n if ( Mix.isEmpty(this.item) ) {\n return null;\n }\n\n return this.$slots.default && this.$slots.default(this.item)\n },\n\n renderEmpty()\n {\n if ( ! Mix.isEmpty(this.item) ) {\n return null;\n }\n\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-dropzone__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entry') }\n </NEmptyIcon>\n );\n },\n\n render()\n {\n let classList = [\n 'n-dropzone',\n 'n-dropzone--' + this.size,\n 'n-dropzone--' + this.type\n ];\n\n if ( Mix.isEmpty(this.item) ) {\n classList.push('n-empty');\n }\n\n return (\n <div class={classList}>\n {[this.ctor('renderItem')(), this.ctor('renderEmpty')()]}\n </div>\n );\n }\n\n}\n","import { Run } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NLoader',\n\n inject: {\n\n NLoader: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NLoader: this\n };\n },\n\n props: {\n\n visible: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n minimum: {\n default()\n {\n return 120;\n },\n type: [Number]\n },\n\n debounce: {\n default()\n {\n return 120;\n },\n type: [Number]\n }\n\n },\n\n data()\n {\n return {\n tempVisible: this.visible\n };\n },\n\n methods: {\n\n applyTimer()\n {\n this.timing = Date.now();\n\n if ( this.visible) {\n return this.tempVisible = this.visible;\n }\n\n this.startTimer();\n },\n\n startTimer()\n {\n let timing = Date.now() - this.timing;\n\n if ( timing < this.minimum ) {\n return this.restartTimer(timing);\n }\n\n this.timeout = setTimeout(() => this.tempVisible = false,\n this.debounce);\n },\n\n restartTimer(timing = 0) {\n Run.delay(this.startTimer, this.minimum - timing + 10);\n }\n\n },\n\n watch: {\n\n visible()\n {\n this.applyTimer();\n }\n\n },\n\n mounted()\n {\n this.applyTimer();\n },\n\n render()\n {\n let classList = [\n 'n-loader', \n 'n-loader--' + this.size, \n 'n-loader--' + this.type\n ];\n\n if ( this.tempVisible ) {\n classList.push('n-load');\n }\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { Run, Arr, Obj, Dom, Mix, Str, Locale, Event, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NResizer',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n width: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n minWidth: {\n default()\n {\n return 60;\n },\n type: [Number]\n },\n\n maxWidth: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n group: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n position: {\n default()\n {\n return 'right';\n },\n type: [String]\n },\n\n resizerWidth: {\n default()\n {\n return 6;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n sizeFixed: false,\n tempValue: this.modelValue,\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n },\n\n mounted()\n {\n if ( ! this.modelValue ) {\n this.updateWidth();\n }\n\n if ( this.NScrollbar ) {\n this.bindSizechange();\n }\n\n Event.bind('NResizer:move', (...args) => {\n this.forceWidth(...args)\n }, this._.uid);\n\n Dom.find(window).on('resize', Run.debounce((...args) => {\n this.onResize(...args)\n }, 500), this._.uid);\n\n this.updateHandle();\n },\n\n updated()\n {\n this.updateWidth();\n },\n\n unmounted()\n {\n if ( this.NScrollbar ) {\n this.unbindSizechange();\n }\n\n Event.unbind('NResizer:move',\n this._.uid);\n\n Dom.find(window).off('resize',\n null, this._.uid);\n },\n\n methods: {\n\n forceWidth(group)\n {\n if ( ! Arr.has(group, this.group) ) {\n return;\n }\n\n if ( ! this.tempValue || ! this.group.length ) {\n return;\n }\n\n this.sizeFixed = true;\n\n let style = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).style(style);\n },\n\n updateWidth()\n {\n let width = Dom.find(this.$el)\n .width();\n\n if ( width === this.tempValue ) {\n return;\n }\n\n this.$emit('update:modelValue',\n this.tempValue = width);\n\n this.updateHandle();\n },\n\n updateHandle()\n {\n let style = {};\n\n if ( this.position === 'left' ) {\n style.transform =`translateX(-${this.tempValue - this.resizerWidth}px)`\n }\n\n if ( this.position === 'right' ) {\n style.transform = `translateX(${this.tempValue - this.resizerWidth}px)`\n }\n\n Dom.find(this.$refs.handle).style(style);\n },\n\n bindSizechange()\n {\n Dom.find(this.NScrollbar.$el).on('resized',\n Run.debounce(this.updateWidth, 50), this._.uid);\n },\n\n unbindSizechange()\n {\n Dom.find(this.NScrollbar.$el)\n .off('resized', null, this._.uid);\n },\n\n\n onResize()\n {\n if ( this.NScrollbar ) {\n return;\n }\n\n this.updateWidth();\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onLeftMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if ( this.group.length ) {\n Event.fire('NResizer:move', this.group);\n }\n\n Dom.find(this.$el).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Mix.framerate(this.onLeftMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Mix.framerate(this.onLeftMousemove, 60), this._.uid);\n },\n\n onLeftMousemove(event)\n {\n this.clientX = (window.innerWidth -\n this.getTouchEvent(event).clientX);\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = (this.clientX + scrollX - offsetX) -\n (this.resizerWidth / 2);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth,\n this.minWidth - this.resizerWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth,\n this.maxWidth - this.resizerWidth);\n }\n\n let style = {\n transform: `translateX(-${targetWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(style);\n },\n\n onLeftMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mouseup, null, this._.uid);\n Dom.find(document).off(this.mousemove, null, this._.uid);\n\n if ( ! this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = this.clientX + scrollX - offsetX;\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth, this.minWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth, this.maxWidth);\n }\n\n this.tempValue = Math.round(targetWidth);\n\n Dom.find(this.$el).remClass('n-move');\n\n let style = {\n transform: `translateX(-${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).style(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n onRightMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if ( this.group.length ) {\n Event.fire('NResizer:move', this.group);\n }\n\n Dom.find(this.$el).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Mix.framerate(this.onRightMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Mix.framerate(this.onRightMousemove, 60), this._.uid);\n },\n\n onRightMousemove(event)\n {\n this.clientX = this.getTouchEvent(event).clientX;\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = (this.clientX + scrollX - offsetX) -\n (this.resizerWidth / 2);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth,\n this.minWidth - this.resizerWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth,\n this.maxWidth - this.resizerWidth);\n }\n\n let style = {\n transform: `translateX(${targetWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(style);\n },\n\n onRightMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mousemove, null, this._.uid);\n Dom.find(document).off(this.mouseup, null, this._.uid);\n\n if ( ! this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = this.clientX + scrollX - offsetX;\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth, this.minWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth, this.maxWidth);\n }\n\n this.tempValue = Math.round(targetWidth);\n\n Dom.find(this.$el).remClass('n-move');\n\n let style = {\n transform: `translateX(${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).style(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.$emit('update:modelValue', this.tempValue);\n }\n\n },\n\n renderHandle()\n {\n if ( this.disabled ) {\n return null;\n }\n\n let classList = [\n 'n-resizer__handle',\n ];\n\n let props = {};\n\n if ( this.position === 'right' ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onRightMousedown;\n }\n\n if ( this.position === 'left' ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onLeftMousedown;\n }\n\n if ( this.resizerWidth ) {\n props.width = this.resizerWidth + 'px';\n }\n\n return (\n <div ref=\"handle\" class={classList} {...props}/>\n );\n },\n\n render()\n {\n let classList = [\n 'n-resizer',\n 'n-resizer--' + this.position,\n ];\n\n let style = {};\n\n if ( this.width && ! this.tempValue ) {\n style['width'] = this.width + 'px';\n }\n\n if ( this.width ) {\n style['flex-basis'] = this.width + 'px';\n }\n\n if ( this.modelValue == this.tempValue ) {\n style['flex-basis'] = this.modelValue + 'px';\n }\n\n if ( this.minWidth ) {\n style['min-width'] = this.minWidth + 'px';\n }\n\n if ( this.maxWidth ) {\n style['max-width'] = this.maxWidth + 'px';\n }\n\n return (\n <div class={classList} style={style}>\n { [this.$slots.default(), this.ctor('renderHandle')()] }\n </div>\n );\n }\n\n}\n","import { Run, Arr, Obj, Dom, Mix, Str, Locale, Event, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NResizer',\n\n props: {\n\n modelValue: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n width: {\n default()\n {\n return '';\n },\n type: [Number, String]\n },\n\n flex: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n minWidth: {\n default()\n {\n return 60;\n },\n type: [Number]\n },\n\n maxWidth: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n group: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'right';\n },\n type: [String]\n },\n\n resizerWidth: {\n default()\n {\n return 6;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n touch()\n {\n return !!('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown()\n {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove()\n {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup()\n {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n sizeFixed: false, tempValue: this.modelValue,\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n },\n\n mounted()\n {\n this.observer = new ResizeObserver(() => {\n this.getWidthDebounced();\n });\n\n this.observer.observe(this.$el);\n\n if ( !this.modelValue ) {\n this.getWidthDebounced();\n }\n\n Event.bind('NScrollbar:paused', (...args) => {\n this.updateRemoteWidth(...args)\n }, this._.uid);\n\n Event.bind('NResizer:move', (...args) => {\n this.forceWidth(...args)\n }, this._.uid);\n\n this.updateHandle();\n },\n\n unmounted()\n {\n this.observer.disconnect();\n\n Event.unbind('NScrollbar:paused',\n this._.uid);\n\n Event.unbind('NResizer:move',\n this._.uid);\n },\n\n methods: {\n\n getWidthDebounced()\n {\n if ( Dom.find(this.$el).inside('.n-paused') ) {\n return;\n }\n\n let now = this.$el.getBoundingClientRect();\n\n if ( Mix.isEqual(this.last || {}, now) ) {\n return;\n }\n\n this.last = now;\n\n clearInterval(this.interval);\n\n this.interval = setTimeout(() => {\n this.updateWidth();\n }, 5);\n },\n\n forceWidth(group)\n {\n if ( !Arr.has(group, this.group) ) {\n return;\n }\n\n if ( !this.tempValue || !this.group.length ) {\n return;\n }\n\n this.sizeFixed = true;\n\n let style = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).style(style);\n },\n\n updateRemoteWidth(el)\n {\n if ( Dom.find(el).contains(this.$el) ) {\n this.updateWidth();\n }\n },\n\n updateWidth()\n {\n let width = Dom.find(this.$el).width();\n\n if ( width === this.tempValue ) {\n return;\n }\n\n this.$emit('updateWidth', this.tempValue = width);\n\n this.updateHandle();\n },\n\n updateHandle()\n {\n let style = {};\n\n if ( this.position === 'left' ) {\n style.transform = `translateX(-${this.tempValue - this.resizerWidth}px)`\n }\n\n if ( this.position === 'right' ) {\n style.transform = `translateX(${this.tempValue - this.resizerWidth}px)`\n }\n\n Dom.find(this.$refs.handle).style(style);\n },\n\n getTouchEvent(event)\n {\n if ( !this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onLeftMousedown(event)\n {\n if ( !Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if ( this.group.length ) {\n Event.fire('NResizer:move', this.group);\n }\n\n Dom.find(this.$el).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n this.onLeftMouseup, this._.uid);\n\n Dom.find(document).on(this.mousemove,\n this.onLeftMousemove, this._.uid);\n },\n\n onLeftMousemove(event)\n {\n this.clientX = (window.innerWidth -\n this.getTouchEvent(event).clientX);\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = (this.clientX + scrollX - offsetX) +\n (this.resizerWidth * 0.5);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth,\n this.minWidth - this.resizerWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth,\n this.maxWidth - this.resizerWidth);\n }\n\n console.log('aaaaa')\n\n let style = {\n transform: `translateX(-${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(style);\n },\n\n onLeftMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mouseup, null, this._.uid);\n Dom.find(document).off(this.mousemove, null, this._.uid);\n\n if ( !this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = this.clientX + scrollX - offsetX +\n (this.resizerWidth * 0.5);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth, this.minWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth, this.maxWidth);\n }\n\n this.tempValue = Math.round(targetWidth);\n\n Dom.find(this.$el).remClass('n-move');\n\n let style = {\n transform: `translateX(-${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).style(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.sizeFixed = true;\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n onRightMousedown(event)\n {\n if ( !Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if ( this.group.length ) {\n Event.fire('NResizer:move', this.group);\n }\n\n Dom.find(this.$el).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n this.onRightMouseup, this._.uid);\n\n Dom.find(document).on(this.mousemove,\n this.onRightMousemove, this._.uid);\n },\n\n onRightMousemove(event)\n {\n this.clientX = this.getTouchEvent(event).clientX;\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = (this.clientX + scrollX - offsetX) +\n (this.resizerWidth * 0.5);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth,\n this.minWidth - this.resizerWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth,\n this.maxWidth - this.resizerWidth);\n }\n\n let style = {\n transform: `translateX(${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(style);\n },\n\n onRightMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mousemove, null, this._.uid);\n Dom.find(document).off(this.mouseup, null, this._.uid);\n\n if ( !this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = (this.clientX + scrollX - offsetX) +\n (this.resizerWidth * 0.5);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth, this.minWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth, this.maxWidth);\n }\n\n this.tempValue = Math.round(targetWidth);\n\n Dom.find(this.$el).remClass('n-move');\n\n let style = {\n transform: `translateX(${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).style(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).style(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.sizeFixed = true;\n\n this.$emit('update:modelValue', this.tempValue);\n }\n\n },\n\n renderHandle()\n {\n if ( this.disabled ) {\n return null;\n }\n\n let classList = [\n 'n-resizer__handle',\n ];\n\n let props = {};\n\n if ( this.position === 'right' ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onRightMousedown;\n }\n\n if ( this.position === 'left' ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onLeftMousedown;\n }\n\n if ( this.resizerWidth ) {\n props.width = this.resizerWidth + 'px';\n }\n\n return (\n <div ref=\"handle\" class={classList} {...props} />\n );\n },\n\n render()\n {\n let classList = [\n 'n-resizer',\n 'n-resizer--' + this.type,\n 'n-resizer--' + this.position,\n ];\n\n let style = {};\n\n if ( !Mix.isEmpty(this.flex) ) {\n style['flex'] = this.flex;\n }\n\n let width = this.width;\n\n if ( Mix.isNumber(width) ) {\n width = width + 'px';\n }\n\n if ( !Mix.isEmpty(this.width) ) {\n style['width'] = this.width;\n }\n\n if ( this.sizeFixed && this.tempValue ) {\n style['flex'] = `0 0 ${this.tempValue}px`;\n }\n\n if ( this.sizeFixed && this.tempValue ) {\n style['width'] = `${this.tempValue}px`;\n }\n\n if ( this.minWidth ) {\n style['min-width'] = `${this.minWidth}px`;\n }\n\n if ( this.maxWidth ) {\n style['max-width'] = `${this.maxWidth}px`;\n }\n\n return (\n <div class={classList} style={style}>\n {[this.$slots.default && this.$slots.default(), this.ctor('renderHandle')()]}\n </div>\n );\n }\n\n}\n","import { Arr, Mix, Dom, Event, Hash } from \"@kizmann/pico-js\";\n\n\nexport default {\n\n name: 'NPopover',\n\n provide()\n {\n return {\n NPopover: this\n };\n },\n\n inject: {\n\n NPopover: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n width: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n window: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n theme: {\n default()\n {\n return 'dark';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-center';\n },\n type: [String]\n },\n\n toggle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n scrollClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n multiClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n alwaysRender: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n framerate: {\n default()\n {\n return 15;\n },\n type: [Number]\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid(),\n tempValue: false,\n clientX: 0,\n clientY: 0,\n target: null,\n prevent: false,\n };\n },\n\n watch: {\n\n modelValue()\n {\n this.tempValue = this.modelValue;\n },\n\n },\n\n beforeMount()\n {\n this.tempValue = this.modelValue;\n },\n\n mounted()\n {\n this.target = Dom.find(this.$el).prev().get(0);\n\n if ( this.trigger === 'context' ) {\n this.target = Dom.find(this.$el).parent().get(0);\n }\n\n let options = {\n uid: this.uid,\n target: this.target,\n listen: this.listen,\n position: this.position,\n toggle: this.toggle,\n trigger: this.trigger,\n width: this.width,\n scrollClose: this.scrollClose,\n multiClose: this.multiClose,\n disabled: () => this.disabled,\n };\n\n if ( this.NPopover ) {\n options.parent = this.NPopover.popel;\n }\n\n this.popel = this.Popover.append(this.$el, options);\n\n this.popel.on('open', () => {\n if ( this.tempValue !== true ) {\n this.$emit('update:modelValue', this.tempValue = true);\n }\n });\n\n this.popel.on('close', () => {\n if ( this.tempValue !== false ) {\n this.$emit('update:modelValue', this.tempValue = false);\n }\n });\n\n this.$watch('tempValue', () => {\n this.tempValue ? this.popel.show() : this.popel.hide();\n });\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.Popover.remove({ uid: this.uid });\n\n this.$el.remove();\n },\n\n methods: {\n\n active()\n {\n return this.tempValue;\n },\n\n open()\n {\n this.popel.open();\n },\n\n close()\n {\n this.popel.hide();\n },\n\n },\n\n renderBody()\n {\n if ( this.$slots.raw ) {\n return this.$slots.raw();\n }\n\n return (\n <div class=\"n-popover__frame\">\n {this.$slots.header &&\n <div class=\"n-popover__header\">\n {this.$slots.header()}\n </div>\n }\n <div class=\"n-popover__body\">\n {this.$slots.default()}\n </div>\n {this.$slots.footer &&\n <div class=\"n-popover__footer\">\n {this.$slots.footer()}\n </div>\n }\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-popover',\n 'n-popover--' + this.type,\n 'n-popover--' + this.size,\n 'n-popover--' + this.position,\n ];\n\n if ( !this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let viewBody = this.modelValue;\n\n if ( Mix.isNull(this.modelValue) ) {\n viewBody = this.tempValue;\n }\n\n if ( this.alwaysRender ) {\n viewBody = true;\n }\n\n if ( viewBody ) {\n classList.push('n-ready');\n }\n\n if ( this.theme ) {\n classList.push('n-theme--' + this.theme);\n }\n\n return (\n <div class={classList}>\n {viewBody && this.ctor('renderBody')()}\n </div>\n );\n }\n\n}\n","export default {\n\n name: 'NPopoverGroup',\n\n inject: {\n NPopover: {\n default: undefined\n }\n },\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n\n },\n\n computed: {\n\n tempSize()\n {\n if ( this.NPopover ) {\n return this.NPopover.size;\n }\n\n return this.size;\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-popover-group',\n 'n-popover-group--' + this.tempSize,\n ];\n\n return (\n <label class={classList}>\n <span>{ this.$slots.default() }</span>\n </label>\n );\n }\n\n}\n","import { Obj, Arr, Mix, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPopoverOption',\n\n inject: {\n NPopover: {\n default: undefined\n }\n },\n\n props: {\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n focus: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n active: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n iconPosition: {\n default()\n {\n return 'after';\n },\n type: [String]\n },\n\n image: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n imagePosition: {\n default()\n {\n return 'before';\n },\n type: [String]\n },\n\n clickClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n\n },\n\n computed: {\n\n tempSize()\n {\n if ( this.NPopover ) {\n return this.NPopover.size;\n }\n\n return this.size;\n }\n\n },\n\n methods: {\n\n onClick(event)\n {\n if ( this.NPopover && this.clickClose ) {\n this.NPopover.close();\n }\n\n this.$emit('fakeclick', event);\n }\n\n },\n\n renderImage()\n {\n if ( ! this.image ) {\n return null;\n }\n\n let classList = [\n 'n-image',\n 'n-image--' + this.imagePosition,\n ];\n\n return (<img class={classList} src={this.image} />);\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n let classList = [\n 'n-icon', \n 'n-icon--' + this.iconPosition,\n ];\n\n classList.push(this.icon);\n\n return (<i class={classList}></i>);\n },\n\n renderContent()\n {\n if ( this.$slots.raw ) {\n return this.$slots.raw();\n }\n\n return (\n <span>{ this.$slots.default() }</span>\n );\n },\n\n render()\n {\n let classList = [\n 'n-popover-option',\n 'n-popover-option--' + this.type,\n 'n-popover-option--' + this.tempSize,\n ];\n\n if ( this.active ) {\n classList.push('n-active');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( ! this.disabled ) {\n props.onClick = this.onClick;\n }\n\n if ( this.disabled ) {\n props.disabled = true;\n }\n\n return (\n <a class={classList} href=\"javascript:void(0)\" {...props}>\n { this.ctor('renderImage')() }\n { this.ctor('renderContent')() }\n { this.ctor('renderIcon')() }\n </a>\n );\n }\n\n}\n","\nexport class PopoverHelper\n{\n static alias = 'PopoverHelper';\n\n static getTouchState() {\n return !! ('ontouchstart' in window || navigator.msMaxTouchPoints);\n }\n\n static getScrollEvent()\n {\n return 'scroll';\n }\n\n static getHoverEvent()\n {\n if ( this.getTouchState() ) {\n return 'touchstart';\n }\n\n return 'mousemove';\n }\n\n static getClickEvent()\n {\n if ( this.getTouchState() ) {\n return 'touchstart';\n }\n\n return 'mousedown';\n }\n\n static getContextEvent()\n {\n if ( this.getTouchState() ) {\n return 'contextmenu';\n }\n\n return 'contextmenu';\n }\n\n static getMouseDownEvent()\n {\n if ( this.getTouchState() ) {\n return 'touchstart';\n }\n\n return 'mousedown';\n }\n\n static getMouseMoveEvent()\n {\n if ( this.getTouchState() ) {\n return 'touchmove';\n }\n\n return 'mousemove';\n }\n\n static getMouseUpEvent()\n {\n if ( this.getTouchState() ) {\n return 'touchend';\n }\n\n return 'mouseup';\n }\n\n}\n\nif ( ! window[PopoverHelper.alias] ) {\n window[PopoverHelper.alias] = PopoverHelper;\n}\n\nexport default PopoverHelper;","import { Run, Str, Obj, Dom, Mix, Arr, Event } from \"@kizmann/pico-js\";\nimport PopoverElement from \"./popover-element.mjs\";\nimport PopoverHelper from \"./popover-helper.mjs\";\n\nwindow.PopoverBag = {};\n\nexport class PopoverHandler\n{\n static alias = 'Popover';\n\n static current = [];\n\n static mount()\n {\n Dom.find(window).on(PopoverHelper.getMouseDownEvent(), Run.throttle((e) => {\n this.detectFadeOnCurrent(e);\n }, 30));\n\n Dom.find(window).on(PopoverHelper.getScrollEvent(), Run.throttle((e) => {\n this.detectScrollOnCurrent(e);\n }, 30));\n\n Event.bind('NScrollbar:scroll', Run.throttle((e) => {\n this.detectScrollOnCurrent(e);\n }, 30));\n\n return this;\n }\n\n static append(el, item)\n {\n if ( ! window.PopoverBag[item.uid] ) {\n window.PopoverBag[item.uid] = new PopoverElement(el, item);\n }\n\n return window.PopoverBag[item.uid];\n }\n\n static remove(item)\n {\n if ( window.PopoverBag[item.uid] ) {\n window.PopoverBag[item.uid].unbind();\n }\n\n delete window.PopoverBag[item.uid];\n }\n\n static setCurrent(el)\n {\n if ( Arr.has(this.current, el) ) {\n return;\n }\n\n let cascade = el.parents();\n\n Arr.each(this.current, (current) => {\n current.currentChange(cascade);\n });\n\n Arr.add(this.current, el);\n }\n\n static getCurrent()\n {\n return Arr.last(this.current);\n }\n\n static unsetCurrent(el)\n {\n return Arr.remove(this.current, el);\n }\n\n static detectFadeOnCurrent(event)\n {\n let current = Arr.last(this.current);\n\n if ( Mix.isEmpty(current) ) {\n return;\n }\n\n let { el, target, trigger } = current.options;\n\n let tgt = Dom.find(event.target).closest(target),\n src = Dom.find(event.target).closest(el);\n\n let result = (!! tgt || !! src);\n\n if ( current.visible === result ) {\n return;\n }\n\n if ( trigger !== 'context' && !! tgt ) {\n return;\n }\n\n current.hide('exit');\n }\n\n static detectScrollOnCurrent(event)\n {\n let currents = Arr.filter(this.current, {\n scrollClose: true\n });\n\n Arr.each(currents, (current) => {\n if ( Dom.find(current.options.target).inside(event.target) ) {\n current.hide('scroll');\n }\n });\n }\n\n}\n\nif ( ! window[PopoverHandler.alias] ) {\n window[PopoverHandler.alias] = PopoverHandler;\n}\n\nDom.ready(() => {\n PopoverHandler.mount();\n});\n\nexport default PopoverHandler;\n","import { Mix, Dom, Arr, Obj, Run, Hash } from \"@kizmann/pico-js\";\nimport { PopoverHelper } from \"./popover-helper.mjs\";\nimport PopoverHandler from \"./popover-handler.mjs\";\n\n\nexport class PopoverElement\n{\n static alias = 'Popover';\n\n visible = false;\n\n options = {\n parent: null,\n target: null,\n listen: false,\n trigger: 'hover',\n toggle: false,\n position: 'bottom-center',\n width: -1,\n scrollClose: true,\n multiClose: true,\n };\n\n client = {\n x: 0, y: 0\n };\n\n events = {};\n\n constructor(el, options = {})\n {\n this.options = Obj.assign(this.options, options, {\n el\n });\n\n if ( ! options.uid ) {\n options.uid = Hash.uuid()\n }\n\n this.bind();\n }\n\n bind()\n {\n let { uid, trigger } = this.options;\n\n if ( trigger === 'hover' ) {\n Dom.find(document.body).on(PopoverHelper.getHoverEvent(),\n Run.framerate((e) => this.onHover(e), 15), { uid });\n }\n\n if ( trigger === 'click' ) {\n Dom.find(document.body).on(PopoverHelper.getClickEvent(),\n Run.throttle((e) => this.onClick(e), 30), { uid });\n }\n\n if ( trigger === 'context' ) {\n Dom.find(document.body).on(PopoverHelper.getContextEvent(),\n Run.throttle((e) => this.onContext(e), 30), { uid });\n }\n }\n\n unbind()\n {\n let { uid, trigger } = this.options;\n\n if ( trigger === 'hover' ) {\n Dom.find(document).off(PopoverHelper.getHoverEvent(),\n null, { uid });\n }\n\n if ( trigger === 'click' ) {\n Dom.find(document).off(PopoverHelper.getClickEvent(),\n null, { uid });\n }\n\n if ( trigger === 'context' ) {\n Dom.find(document).off(PopoverHelper.getContextEvent(),\n null, { uid });\n }\n }\n\n parents()\n {\n let { parent } = this.options;\n\n if ( Mix.isEmpty(parent) ) {\n return [];\n }\n\n return Arr.merge(parent.parents(), [\n parent.options.uid\n ]);\n }\n\n currentChange(parents)\n {\n let { uid, multiClose } = this.options;\n\n if ( ! multiClose || Arr.has(parents, uid) ) {\n return;\n }\n\n this.hide('multi')\n }\n\n on(event, cb)\n {\n this.events[event] = cb;\n }\n\n off(event)\n {\n delete this.events[event];\n }\n\n show(event = 'default')\n {\n if ( this.interval ) {\n clearInterval(this.interval);\n }\n\n this.interval = setTimeout(() => {\n this.showQueue(event);\n }, 100);\n }\n\n showQueue(event = 'default')\n {\n if ( this.visible ) {\n return this.updatePosition();\n }\n\n let { el } = this.options;\n\n Dom.find(el).attr('data-ready', 'true');\n\n if ( Mix.isFunction(this.events['open']) ) {\n this.events['open'].apply({}, [event]);\n }\n\n requestAnimationFrame(() => {\n this.updatePosition();\n });\n\n requestAnimationFrame(() => {\n this.bindResizeObserver();\n });\n\n this.visible = true;\n\n PopoverHandler.setCurrent(this);\n }\n\n hide(event = 'default')\n {\n if ( this.interval ) {\n clearInterval(this.interval);\n }\n\n this.interval = setTimeout(() => {\n this.hideQueue(event);\n }, 50);\n }\n\n hideQueue(event = 'default')\n {\n let { el } = this.options;\n\n Dom.find(el).attr('data-ready', null);\n\n if ( Mix.isFunction(this.events['close']) ) {\n this.events['close'].apply({}, [event]);\n }\n\n this.unbindResizeObserver();\n\n this.visible = false;\n\n PopoverHandler.unsetCurrent(this);\n }\n\n onHover(event)\n {\n let { el, target } = this.options;\n\n let tgt = Dom.find(event.target).closest(target),\n src = Dom.find(event.target).closest(el);\n\n let result = (!! tgt || !! src);\n\n if ( this.visible === result ) {\n return;\n }\n\n if ( ! result ) {\n return this.hideQueue('hover');\n }\n\n this.showQueue('hover');\n }\n\n onClick(event)\n {\n let { el, target } = this.options;\n\n let keyCode = event.which === 1 || event.which === 0;\n\n if ( ! keyCode ) {\n return;\n }\n\n let tgt = Dom.find(event.target).closest(target),\n src = Dom.find(event.target).closest(el);\n\n if ( this.visible ) {\n return this.options.toggle && tgt && this.hideQueue('click');\n }\n\n let result = (!! tgt || !! src);\n\n if ( this.visible === result ) {\n return;\n }\n\n this.showQueue('click');\n }\n\n onContext(event)\n {\n let { el, target } = this.options;\n\n let keyCode = event.which === 3;\n\n if ( !keyCode ) {\n return;\n }\n\n let tgt = Dom.find(event.target).closest(target),\n src = Dom.find(event.target).closest(el);\n\n this.client.x = event.clientX;\n this.client.y = event.clientY;\n\n let result = (!! tgt || !! src);\n\n if ( result ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if ( ! result ) {\n return;\n }\n\n this.showQueue('context');\n }\n\n bindResizeObserver()\n {\n let { el } = this.options;\n\n this.observer = new ResizeObserver(() => {\n this.updatePosition();\n });\n\n this.observer.observe(el);\n }\n\n unbindResizeObserver()\n {\n if ( this.observer ) {\n this.observer.disconnect();\n }\n }\n\n updatePosition()\n {\n let { el, target, width } = this.options;\n\n let [offset, scroll] = [\n this.getTargetOffset(), Dom.find(document.body).scroll()\n ];\n\n Dom.find(el).attr('data-position', offset.position);\n\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let style = Obj.assign(Dom.find(el).style(), {\n 'z-index': window.zIndex++,\n 'top': Math.round(offset.y + scroll.top) + 'px',\n 'left': Math.round(offset.x + scroll.left) + 'px',\n });\n\n let rect = target.getBoundingClientRect();\n\n if ( width === -1 ) {\n style.width = Math.round(rect.width) + 'px';\n }\n\n Dom.find(el).style(style);\n\n if ( ! style['--n-parent-width'] ) {\n style['--n-parent-width'] = `${rect.width}px`;\n }\n\n if ( ! style['--n-node-width'] && Dom.find(el).innerWidth() ) {\n style['--n-node-width'] = `${el.clientWidth}px`;\n }\n\n if ( ! style['--n-parent-height'] ) {\n style['--n-parent-height'] = `${rect.height}px`;\n }\n\n if ( ! style['--n-node-height'] && Dom.find(el).innerHeight() ) {\n style['--n-node-height'] = `${el.clientHeight}px`;\n }\n\n Dom.find(el).style(style);\n }\n\n getTargetHorizontal(position, fallback = null)\n {\n let { el, target, trigger, width, scrollClose } = this.options;\n\n let targetRect = target.getBoundingClientRect();\n\n if ( trigger === 'context' ) {\n targetRect = {\n top: this.client.y, left: this.client.x, width: 2, height: 2\n };\n }\n\n let windowRect = el.getBoundingClientRect();\n\n if ( width === -1 ) {\n windowRect.width = targetRect.width;\n }\n\n let posY = {\n\n // Set above the tagret element\n start: targetRect.top - windowRect.height,\n\n // Set at bottom of target element\n end: targetRect.top + targetRect.height,\n\n };\n\n let posX = {\n\n // Set on the left of target element\n start: targetRect.left,\n\n // Set into the center of the target element\n center: targetRect.left + (targetRect.width * 0.5) -\n (windowRect.width * 0.5),\n\n // Set on the right of the target element\n end: targetRect.left + targetRect.width -\n windowRect.width,\n\n };\n\n let offset = { x: 0, y: 0 };\n\n if ( position === 'top-start' ) {\n offset = { x: posX.start, y: posY.start };\n }\n\n if ( position === 'top-center' ) {\n offset = { x: posX.center, y: posY.start };\n }\n\n if ( position === 'top-end' ) {\n offset = { x: posX.end, y: posY.start };\n }\n\n if ( position === 'bottom-start' ) {\n offset = { x: posX.start, y: posY.end };\n }\n\n if ( position === 'bottom-center' ) {\n offset = { x: posX.center, y: posY.end };\n }\n\n if ( position === 'bottom-end' ) {\n offset = { x: posX.end, y: posY.end };\n }\n\n let inverse = position;\n\n if ( position.match(/^(top)\\-/) ) {\n inverse = inverse.replace(/^(top)\\-/, 'bottom-');\n }\n\n if ( position.match(/^(bottom)\\-/) ) {\n inverse = inverse.replace(/^(bottom)\\-/, 'top-');\n }\n\n let broken = offset.y + windowRect.height >\n window.innerHeight || offset.y < 0;\n\n if ( scrollClose && broken && ! fallback ) {\n return this.getTargetHorizontal(inverse, offset);\n }\n\n if ( fallback && broken ) {\n offset = fallback;\n }\n\n if ( offset.y < 0 ) {\n offset.y = 0;\n }\n\n if ( offset.y + windowRect.height > window.innerHeight ) {\n offset.y = window.innerHeight - windowRect.height;\n }\n\n if ( offset.x < 0 ) {\n offset.x = 0;\n }\n\n if ( offset.x + windowRect.width > window.innerWidth ) {\n offset.x = window.innerWidth - windowRect.width -\n (window.innerWidth - document.body.clientWidth);\n }\n\n if ( broken ) {\n position = 'auto';\n }\n\n return Obj.assign(offset, { position });\n }\n\n getTargetVertical(position, fallback = null)\n {\n let { el, target, trigger, width, scrollClose } = this.options;\n\n let targetRect = target.getBoundingClientRect();\n\n if ( trigger === 'context' ) {\n targetRect = {\n top: this.client.y, left: this.client.x, width: 2, height: 2\n };\n }\n\n let windowRect = el.getBoundingClientRect();\n\n if ( width === -1 ) {\n windowRect.width = targetRect.width;\n }\n\n let posY = {\n\n // Set at top edge of the target element\n start: targetRect.top,\n\n // Set at the middle of the target element\n center: targetRect.top + (targetRect.height * 0.5) -\n (windowRect.height * 0.5),\n\n // Ste at the bottom of the target elemnent\n end: targetRect.top + targetRect.height -\n windowRect.height,\n\n };\n\n let posX = {\n\n // Set to the left of the target element\n start: targetRect.left - windowRect.width,\n\n // Set to the right of the target element\n end: targetRect.left + targetRect.width,\n\n };\n\n let offset = { x: 0, y: 0 };\n\n if ( position === 'left-start' ) {\n offset = { x: posX.start, y: posY.start };\n }\n\n if ( position === 'left-center' ) {\n offset = { x: posX.start, y: posY.center };\n }\n\n if ( position === 'left-end' ) {\n offset = { x: posX.start, y: posY.end };\n }\n\n if ( position === 'right-start' ) {\n offset = { x: posX.end, y: posY.start };\n }\n\n if ( position === 'right-center' ) {\n offset = { x: posX.end, y: posY.center };\n }\n\n if ( position === 'right-end' ) {\n offset = { x: posX.end, y: posY.end };\n }\n\n let inverse = position;\n\n if ( position.match(/^(left)\\-/) ) {\n inverse = inverse.replace(/^(left)\\-/, 'right-');\n }\n\n if ( position.match(/^(right)\\-/) ) {\n inverse = inverse.replace(/^(right)\\-/, 'left-');\n }\n\n let broken = offset.x + windowRect.width >\n window.innerWidth || offset.x < 0;\n\n if ( scrollClose && broken && ! fallback ) {\n return this.getTargetVertical(inverse, offset);\n }\n\n if ( fallback && broken ) {\n offset = fallback;\n }\n\n if ( offset.y < 0 ) {\n offset.y = 0;\n }\n\n if ( offset.y + windowRect.height > window.innerHeight ) {\n offset.y = window.innerHeight - windowRect.height;\n }\n\n if ( offset.x < 0 ) {\n offset.x = 0;\n }\n\n if ( offset.x + windowRect.width > window.innerWidth ) {\n offset.x = window.innerWidth - windowRect.width -\n (window.innerWidth - document.body.clientWidth);\n }\n\n if ( broken ) {\n position = 'auto';\n }\n\n return Obj.assign(offset, { position });\n }\n\n getTargetOffset()\n {\n let { el, width, position } = this.options;\n\n\n if ( width > 0 ) {\n Dom.find(el).style({ width: `${width}px`});\n }\n\n if ( position.match(/^(top|bottom)\\-/) ) {\n return this.getTargetHorizontal(position);\n }\n\n if ( position.match(/^(left|right)\\-/) ) {\n return this.getTargetVertical(position);\n }\n\n console.error(`Popover position \"${position}\" does not exist`);\n }\n\n}\n\nif ( ! window[PopoverElement.alias] ) {\n window[PopoverElement.alias] = PopoverElement;\n}\n\nexport default PopoverElement;","import { Run, Arr, Obj, Mix, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NModal',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n width: {\n default()\n {\n return '50%';\n },\n type: [String]\n },\n\n height: {\n default()\n {\n return 'auto';\n },\n type: [String]\n },\n\n title: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n theme: {\n default()\n {\n return 'auto';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'center-center';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n tempValue()\n {\n this.startRefreshTimeout();\n }\n\n },\n\n provide()\n {\n return {\n NModal: this\n };\n },\n\n data()\n {\n return {\n target: null, tempValue: false\n };\n },\n\n mounted()\n {\n this.target = Dom.find(this.selector || this.$el)\n .prev().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).on('keydown',\n this.eventKeydown, this._.uid);\n\n let showModal = () => {\n this.tempValue = true;\n };\n\n if ( this.modelValue ) {\n Run.delay(showModal, 100);\n }\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n\n Dom.find(document.body).off('keydown',\n null, this._.uid);\n },\n\n methods: {\n\n openModal(force = false, source = null)\n {\n if ( this.tempValue ) {\n return;\n }\n\n if ( this.closable || force ) {\n this.tempValue = true;\n }\n\n this.$emit('update:modelValue', true, source);\n },\n\n closeModal(force = false, source = null)\n {\n if ( ! this.tempValue ) {\n return;\n }\n\n if ( ! this.update ) {\n return this.$emit('close', source);\n }\n\n if ( this.closable || force ) {\n this.tempValue = false;\n }\n\n this.$emit('update:modelValue', false, source);\n },\n\n stopRefreshTimeout()\n {\n clearTimeout(this.refresh);\n\n Dom.find(this.$el).remClass('n-ready');\n },\n\n startRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n window.zIndex += 1;\n\n Dom.find(this.$el).attr('data-modal',\n window.zIndex);\n\n Dom.find(this.$el).style({\n 'z-index': window.zIndex\n });\n\n this.queueRefreshTimeout();\n },\n\n queueRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n this.refresh = setTimeout(() => {\n Dom.find(this.$el).addClass('n-ready');\n }, 100);\n },\n\n eventClick(event, el)\n {\n if ( this.disabled || event.which !== 1 ) {\n return;\n }\n\n let result = !! Dom.find(el).closest(this.target);\n\n if ( ! result && ! this.tempValue ) {\n return;\n }\n\n if ( this.tempValue && this.closable ) {\n result = ! Dom.find(el).closest(this.$refs.backdrop);\n }\n\n if ( result === this.tempValue ) {\n return;\n }\n\n if ( ! result ) {\n return this.closeModal(false, 'escape');\n }\n\n if ( this.listen ) {\n this.openModal(true, 'selector');\n }\n },\n\n eventKeydown(event, el)\n {\n if ( ! this.tempValue || event.which !== 27 ) {\n return;\n }\n\n let extractIndex = (modal) => {\n return Dom.find(modal).attr('data-modal');\n };\n\n let indexes = Dom.find('.n-modal:not(.n-hidden)')\n .each(extractIndex);\n\n let index = Dom.find(this.$el).attr('data-modal');\n\n if ( Arr.last(indexes.sort()) !== index ) {\n return;\n }\n\n this.closeModal(false, 'escape');\n },\n\n },\n\n renderClose()\n {\n if ( ! this.renderClose || ! this.closable ) {\n return null;\n }\n\n let props = {\n onClick: () => this.closeModal(false, 'escape')\n };\n\n return (\n <div class=\"n-modal__close\" {...props}>\n <span class={nano.Icons.times}></span>\n </div>\n );\n },\n\n renderHeader()\n {\n if ( ! this.$slots.header && ! this.title ) {\n return null;\n }\n\n return (\n <div class=\"n-modal__header\">\n { [this.$slots.header && this.$slots.header({ closeModal: this.closeModal }) || this.title, this.ctor('renderClose')()] }\n </div>\n );\n },\n\n renderFooter()\n {\n if ( ! this.$slots.footer ) {\n return null;\n }\n\n return (\n <div class=\"n-modal__footer\">\n { this.$slots.footer({ closeModal: this.closeModal }) }\n </div>\n );\n },\n\n renderBody()\n {\n let bodyHtml = (\n <NScrollbar ref=\"scrollbar\" relative={true} wrapClass=\"n-modal__wrap\">\n { this.$slots.default && this.$slots.default({ closeModal: this.closeModal }) }\n </NScrollbar>\n );\n\n if ( this.$slots.body ) {\n bodyHtml = this.$slots.body({ closeModal: this.closeModal });\n }\n\n return (\n <div class=\"n-modal__body\">\n { bodyHtml }\n </div>\n );\n },\n\n renderFrame()\n {\n if ( ! this.tempValue ) {\n return null;\n }\n\n let style = {\n width: this.width, height: this.height\n };\n\n let innerHtml = [\n this.ctor('renderHeader')(),\n this.ctor('renderBody')(),\n this.ctor('renderFooter')(),\n ]\n\n return (\n <div class=\"n-modal__frame\" style={style}>\n { this.$slots.raw ? this.$slots.raw() : innerHtml }\n </div>\n );\n },\n\n renderBackdrop()\n {\n return (\n <div ref=\"backdrop\" class=\"n-modal__backdrop\"></div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-modal',\n 'n-modal--' + this.size,\n 'n-modal--' + this.position,\n ];\n\n if ( this.theme ) {\n classList.push('n-theme--' + this.theme);\n }\n\n if ( this.tempValue ) {\n this.queueRefreshTimeout();\n }\n\n if ( this.renderClose ) {\n classList.push('n-closable');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let innerHtml = null;\n\n if ( this.tempValue ) {\n innerHtml = this.ctor('renderFrame')();\n }\n\n return (\n <div class={classList}>\n { [innerHtml, this.ctor('renderBackdrop')()] }\n </div>\n );\n }\n\n}\n","import { Obj } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NButton',\n\n props: {\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n link: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n glass: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n round: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n square: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return null;\n }\n },\n\n iconPosition: {\n default()\n {\n return 'before';\n },\n type: [String]\n },\n\n nativeType: {\n default()\n {\n return 'button';\n },\n type: [String]\n }\n\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n let classList = [\n 'n-icon', \n 'n-icon--' + this.iconPosition,\n ];\n\n classList.push(this.icon);\n\n return (<i class={classList}></i>);\n },\n\n render()\n {\n let classList = [\n 'n-button',\n 'n-button--' + this.size,\n 'n-button--' + this.type,\n ];\n\n if ( this.icon ) {\n classList.push('n-button--icon');\n }\n\n if ( this.glass ) {\n classList.push('n-button--glass');\n }\n\n if ( this.link ) {\n classList.push('n-button--link');\n }\n\n if ( this.round ) {\n classList.push('n-button--round');\n }\n\n if ( this.square ) {\n classList.push('n-button--square');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = {\n class: classList\n };\n\n if ( this.disabled ) {\n props.disabled = true;\n }\n\n let innerHtml = [];\n\n if ( this.iconPosition === 'before' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n if ( this.$slots.default && ! this.square ) {\n innerHtml.push(<span>{ this.$slots.default && this.$slots.default() }</span>);\n }\n\n if ( this.iconPosition === 'after' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n return h(this.nativeType, props, innerHtml);\n }\n\n}\n","export default {\n\n name: 'NButtonGroup',\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-button-group',\n 'n-button-group--' + this.size\n ]\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { h } from \"vue\";\nimport { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInput',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n inheritAttrs: false,\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n iconPosition: {\n default()\n {\n return 'after';\n },\n type: [String]\n },\n\n iconDisabled: {\n default()\n {\n return null;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n nativeType: {\n default()\n {\n return 'text';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.modelValue || ''\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n onIconClick(event)\n {\n if ( event.clientX || event.clientY ) {\n this.$emit('icon-click', event);\n }\n },\n\n onInput(event)\n {\n this.$emit('update:modelValue',\n this.tempValue = event.target.value);\n },\n\n onKeydown(event)\n {\n this.$emit('keydown', event);\n\n if ( event.which !== 13 ) {\n return;\n }\n\n event.preventDefault();\n\n if ( ! this.NForm ) {\n return;\n }\n\n this.NForm.onSubmit(event);\n },\n\n onFocus(event)\n {\n this.focus = true;\n this.$emit('focus', event);\n },\n\n onBlur(event)\n {\n this.focus = false;\n this.$emit('blur', event);\n }\n\n },\n\n renderIcon()\n {\n if ( !this.icon ) {\n return null;\n }\n\n let disabled = this.deepDisabled;\n\n if ( this.iconDisabled !== null ) {\n disabled = this.iconDisabled;\n }\n\n let props = {\n type: 'reset',\n icon: this.icon,\n size: this.size,\n square: true,\n disabled: disabled,\n };\n\n if ( !disabled ) {\n props.onClick = this.onIconClick;\n }\n\n return (<NButton {...props} />);\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs, [\n 'class', 'style'\n ]);\n\n Obj.assign(props, {\n value: this.tempValue,\n type: this.nativeType,\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onInput: this.onInput,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeydown: this.onKeydown\n });\n\n return h('input', props);\n },\n\n render()\n {\n let classList = [\n 'n-input',\n 'n-input--' + this.size,\n 'n-input--' + this.type,\n ];\n\n if ( this.icon ) {\n classList.push('n-input--icon');\n classList.push('n-input--icon-' + this.iconPosition);\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n let props = Obj.only(this.$attrs, ['style'], {\n class: this.cmer(classList)\n });\n\n let innerHtml = [];\n\n if ( this.iconPosition === 'before' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n innerHtml.push(this.ctor('renderInput')());\n\n if ( this.iconPosition === 'after' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n return h('div', props, innerHtml);\n }\n\n}\n","import { Str, Obj, Num, Now, Mix, Dom, Locale } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NInputNumber',\n\n inheritAttrs: false,\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n min: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return Number.MAX_VALUE;\n },\n type: [Number]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n stepSize: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n precision: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n format: {\n default()\n {\n return ':count';\n },\n type: [String]\n },\n\n decimals: {\n default()\n {\n return Locale.trans('.');\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n deepDisabled()\n {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.modelValue,\n }\n },\n\n methods: {\n\n clear()\n {\n this.$emit('update:modelValue', this.tempValue = this.clearValue);\n },\n\n getValue(value = null)\n {\n if ( Mix.isNull(value) ) {\n value = this.modelValue;\n }\n\n if ( Mix.isEmpty(value) ) {\n return this.min;\n }\n\n return Num.float(value);\n },\n\n getDisplayValue()\n {\n if ( Mix.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let value = Str.number(this.tempValue, this.precision);\n\n return Locale.trans(this.format, { count: value });\n },\n\n nextStep()\n {\n if ( isNaN(this.tempValue) ) {\n this.tempValue = 0;\n }\n\n let value = this.tempValue + this.stepSize;\n\n if ( this.max < value ) {\n return;\n }\n\n value = Num.float(value).toFixed(this.precision);\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n },\n\n onNextDown()\n {\n clearTimeout(this.prevTimeout);\n clearInterval(this.prevInterval);\n\n this.nextStep();\n\n this.nextTimeout = setTimeout(() => {\n this.nextInterval = setInterval(this.nextStep, 100);\n }, 400);\n\n Dom.find(window).on('mouseup', this.onNextUp, {\n uid: this._.uid + 'next'\n });\n },\n\n onNextUp(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n clearTimeout(this.nextTimeout);\n clearInterval(this.nextInterval);\n\n Dom.find(window).off('mouseup', null, {\n uid: this._.uid + 'next'\n });\n },\n\n prevStep()\n {\n if ( isNaN(this.tempValue) ) {\n this.tempValue = 0;\n }\n\n let value = this.tempValue - this.stepSize;\n\n if ( this.min > value ) {\n return;\n }\n\n value = Num.float(value).toFixed(this.precision);\n\n this.$emit('update:modelValue', this.tempValue = Num.float(value));\n },\n\n onPrevDown()\n {\n clearTimeout(this.nextTimeout);\n clearInterval(this.nextInterval);\n\n this.prevStep();\n\n this.prevTimeout = setTimeout(() => {\n this.prevInterval = setInterval(this.prevStep, 100);\n }, 400);\n\n Dom.find(window).on('mouseup', this.onPrevUp, {\n uid: this._.uid + 'prev'\n });\n },\n\n onPrevUp(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n clearTimeout(this.prevTimeout);\n clearInterval(this.prevInterval);\n\n Dom.find(window).off('mouseup', null, {\n uid: this._.uid + 'prev'\n });\n },\n\n onKeydown(event)\n {\n if ( event.which === 13 ) {\n this.onInput(event);\n }\n },\n\n onFocus(event)\n {\n this.focus = true;\n },\n\n onBlur(event)\n {\n this.onInput(event);\n\n this.focus = false;\n },\n\n onInput(event)\n {\n let value = event.target.value;\n\n if ( value.match(/^[0-9]+((.|,)[0-9]+)?$/) ) {\n value = this.format.replace(':count', value);\n }\n\n let format = this.format.replace(':count',\n `([0-9\\\\,\\\\.\\\\-\\\\s]+)`);\n\n let regex = new RegExp(`^${format}$`);\n\n let match = value.match(regex);\n\n if ( !match ) {\n return event.target.value = this.getDisplayValue();\n }\n\n value = match[1].replace(',', '.')\n .replace(/\\s/, '');\n\n value = Num.float(value).toFixed(this.precision);\n\n if ( value < this.min ) {\n value = this.min;\n }\n\n if ( value > this.max ) {\n value = this.max;\n }\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n\n event.target.value = this.getDisplayValue();\n }\n\n },\n\n renderPrev()\n {\n let disabled = this.deepDisabled ||\n this.tempValue <= this.min;\n\n let props = {\n type: 'reset',\n size: this.size,\n icon: 'fa fa-minus',\n square: true,\n disabled: disabled,\n onMousedown: this.onPrevDown,\n };\n\n return (<NButton {...props} />);\n },\n\n renderNext()\n {\n let disabled = this.deepDisabled ||\n this.tempValue >= this.max;\n\n let props = {\n type: 'reset',\n size: this.size,\n icon: 'fa fa-plus',\n square: true,\n disabled: disabled,\n onMousedown: this.onNextDown,\n };\n\n return (<NButton {...props} />);\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs, [\n 'class', 'style'\n ]);\n\n Obj.assign(props, {\n value: this.getDisplayValue(),\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onKeydown: this.onKeydown,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n });\n\n return h('input', props);\n },\n\n renderClear()\n {\n if ( !this.clearable || Mix.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( !this.deepDisabled ) {\n props.onMousedown = this.clear;\n }\n\n return (\n <div class=\"n-input-number__clear n-form-clear\" {...props}>\n <i class={nano.Icons.times}></i>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-input-number',\n 'n-input-number--' + this.type,\n 'n-input-number--' + this.size,\n ];\n\n if ( Mix.isEmpty(this.modelValue) ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n {this.ctor('renderPrev')()}\n {this.ctor('renderInput')()}\n {this.ctor('renderClear')()}\n {this.ctor('renderNext')()}\n </div>\n );\n }\n\n}","import { h } from \"vue\";\nimport {Obj, Mix, Hash} from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTextarea',\n\n inheritAttrs: false,\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n autoRows: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n maxRows: {\n default()\n {\n return 12;\n },\n type: [Number]\n },\n\n minRows: {\n default()\n {\n return 4;\n },\n type: [Number]\n },\n\n maxLength: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n eventInput(event)\n {\n this.$emit('update:modelValue', \n this.tempValue = event.target.value);\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue || ''\n };\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs, ['class', 'style']);\n\n Obj.assign(props, {\n value: this.tempValue,\n rows: this.minRows,\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.eventInput,\n });\n\n if ( this.maxLength !== 0 ) {\n props.maxLength = this.maxLength;\n }\n\n let currentRows = (this.tempValue.match(/\\n/g) || []).length + 1;\n\n if ( this.autoRows && props.rows < currentRows ) {\n props.rows = currentRows <= this.maxRows ? currentRows : this.maxRows;\n }\n\n return h('textarea', props);\n },\n\n render()\n {\n let classList = [\n 'n-textarea',\n 'n-textarea--' + this.size,\n 'n-textarea--' + this.type,\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.only(this.$attrs, ['style'], {\n class: this.cmer(classList)\n });\n\n return h('div', props, [this.ctor('renderInput')()]);\n }\n\n}\n","import { Str, Arr, Obj, Mix, Locale, Dom, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSelect',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n },\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n theme: {\n default()\n {\n return 'dark';\n },\n type: [String]\n },\n\n lazy: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n multiple: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n collapse: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Please select');\n },\n type: [String]\n },\n\n emptyText: {\n default()\n {\n return 'No items';\n },\n type: [String]\n },\n\n undefinedText: {\n default()\n {\n return 'Undefined item';\n },\n type: [String]\n },\n\n collapseText: {\n default()\n {\n return '+:count item|+:count items';\n },\n type: [String]\n },\n\n allowCreate: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array, Object]\n },\n\n optionsValue: {\n default()\n {\n return '$index';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsDisabled: {\n default()\n {\n return 'null';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n deepDisabled()\n {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n },\n\n empty()\n {\n return Mix.isEmpty(this.tempValue);\n },\n\n custom()\n {\n let result = Arr.filter(this.elements, (element) => {\n\n if ( Mix.isArray(this.tempValue) ) {\n return Arr.has(this.tempValue, element.value);\n }\n\n return element.value === this.tempValue;\n });\n\n return result.length === 0;\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempClear: this.clearValue,\n focus: false,\n search: '',\n index: - 1,\n elements: [],\n searched: []\n };\n },\n\n beforeMount()\n {\n if ( this.lazy || ! this.$slots.default ) {\n this.generateOptions();\n }\n\n if ( this.multiple && !Mix.isArray(this.tempValue) ) {\n this.tempValue = [];\n }\n\n if ( this.multiple && !Mix.isArray(this.clearValue) ) {\n this.tempClear = [];\n }\n\n this.searchOptions();\n },\n\n provide()\n {\n return {\n NSelect: this\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( !this.multiple && Mix.isArray(value) ) {\n value = null;\n }\n\n if ( this.multiple && !Mix.isArray(value) ) {\n value = [];\n }\n\n this.tempValue = value;\n },\n\n options()\n {\n this.generateOptions();\n },\n\n search()\n {\n this.searchOptions();\n },\n\n focus()\n {\n this.$nextTick(() => this.scrollToClosest());\n },\n\n },\n\n methods: {\n\n clear(event = null)\n {\n if ( event ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.focusInput();\n\n this.$emit('update:modelValue',\n this.tempValue = Arr.clone(this.tempClear));\n },\n\n generateOptions()\n {\n this.elements = Arr.each(this.options, (value, index) => {\n\n let data = {\n $value: value, $index: index\n };\n\n let option = {\n label: Obj.get(data, this.optionsLabel),\n value: Obj.get(data, this.optionsValue)\n };\n\n return Obj.assign(option, {\n tempLabel: option.label, tempValue: option.value\n });\n });\n },\n\n addOption(option)\n {\n Arr.add(this.elements, option,\n { tempValue: option.tempValue });\n },\n\n removeOption(option)\n {\n Arr.remove(this.elements,\n { tempValue: option.tempValue });\n },\n\n resetInput()\n {\n this.index = - 1;\n this.search = '';\n },\n\n focusInput(event = null)\n {\n if ( event ) {\n event.preventDefault();\n }\n\n this.focus = true;\n },\n\n onFocusInput()\n {\n if ( !this.focus ) {\n this.focus = true;\n }\n },\n\n onInputInput(event)\n {\n this.search = event.target.value;\n },\n\n onKeydownInput(event)\n {\n if ( !this.focus ) {\n return this.onFocusInput();\n }\n\n if ( event.which === 13 ) {\n this.createOrToggle();\n }\n\n if ( event.which === 38 ) {\n this.selectPrev();\n }\n\n if ( event.which === 40 ) {\n this.selectNext();\n }\n },\n\n searchOptions()\n {\n this.index = - 1;\n\n if ( Mix.isEmpty(this.search) ) {\n return this.searched = this.elements;\n }\n\n let searchRegex = new RegExp(this.search, 'i');\n\n this.searched = Arr.filter(this.elements, (option) => {\n return Mix.string(option.label || '').match(searchRegex);\n });\n },\n\n toggleOption(value, event = null)\n {\n if ( Mix.isEmpty(value) ) {\n return;\n }\n\n if ( event && event.which !== 1 ) {\n return;\n }\n\n if ( event ) {\n event.preventDefault();\n }\n\n let tempValue = this.tempValue;\n\n if ( this.multiple ) {\n this.focusInput();\n }\n\n if ( !this.multiple ) {\n tempValue = value;\n }\n\n if ( this.multiple ) {\n Arr.toggle(tempValue, value);\n }\n\n this.$refs.popover.close();\n\n let denyUpdate = this.tempValue === tempValue;\n\n if ( this.multiple && !Mix.isArray(this.modelValue) ) {\n denyUpdate = false;\n }\n\n if ( !this.multiple && Mix.isArray(this.modelValue) ) {\n denyUpdate = false;\n }\n\n if ( denyUpdate ) {\n return;\n }\n\n this.$emit('update:modelValue',\n this.tempValue = tempValue);\n },\n\n getOptionLabel(value)\n {\n let option = Arr.find(this.elements,\n { tempValue: value });\n\n if ( !option && this.allowCreate ) {\n return value;\n }\n\n if ( !option && !this.allowCreate ) {\n return this.trans(this.undefinedText);\n }\n\n return option.tempLabel;\n },\n\n selectPrev()\n {\n let newIndex = this.index - 1;\n\n if ( newIndex < 0 ) {\n newIndex = this.searched.length - 1;\n }\n\n this.index = newIndex;\n\n this.scrollToCurrent();\n },\n\n selectNext()\n {\n let newIndex = this.index + 1;\n\n if ( newIndex > this.searched.length - 1 ) {\n newIndex = 0;\n }\n\n this.index = newIndex;\n\n this.scrollToCurrent();\n },\n\n createOrToggle()\n {\n if ( this.allowCreate && this.search ) {\n return this.createOption();\n }\n\n let selected = Arr.get(this.searched,\n this.index);\n\n if ( this.searched.length === 1 ) {\n selected = Arr.first(this.searched);\n }\n\n if ( !selected || selected.disabled ) {\n return;\n }\n\n this.toggleOption(selected.tempValue);\n },\n\n createOption()\n {\n this.toggleOption(this.search);\n\n this.search = '';\n },\n\n scrollToCurrent()\n {\n if ( !this.focus ) {\n return;\n }\n\n let selected = Arr.get(this.searched,\n this.index);\n\n if ( !selected ) {\n return;\n }\n\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.scrollIntoView(`[data-option=\"${selected._.uid}\"]`);\n }\n\n if ( this.$refs.virtualscroll ) {\n this.$refs.virtualscroll.scrollToIndex(this.index);\n }\n },\n\n scrollToClosest()\n {\n if ( !this.focus ) {\n return;\n }\n\n let value = this.tempValue;\n\n if ( Mix.isArray(this.tempValue) ) {\n value = Arr.first(this.tempValue);\n }\n\n if ( !value ) {\n return;\n }\n\n let index = Arr.findIndex(this.elements, {\n tempValue: value\n });\n\n if ( !index ) {\n return;\n }\n\n if ( this.$refs.virtualscroll ) {\n this.$refs.virtualscroll.scrollToIndex(index, 0);\n }\n\n let select = `[data-option=\"${Obj.get(this.elements[index], '_.uid', 0)}\"]`;\n\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.scrollIntoView(select, 0);\n }\n }\n\n },\n\n renderLabelClear()\n {\n if ( !this.clearable || Mix.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( !this.deepDisabled ) {\n props.onMousedown = this.clear;\n }\n\n return (\n <div class=\"n-select__clear n-form-clear\" {...props}>\n <i class={nano.Icons.times}></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-select__angle n-form-angle\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n },\n\n renderLabelItem(value)\n {\n let classList = [\n 'n-select__item'\n ];\n\n let props = {\n class: nano.Icons.times,\n };\n\n if ( !this.deepDisabled ) {\n props.onMousedown = (event) => this.toggleOption(value, event);\n }\n\n let labelHtml = (\n <span>{this.getOptionLabel(value)}</span>\n );\n\n return (\n <div class={classList}>\n {[labelHtml, <i {...props}></i>]}\n </div>\n );\n },\n\n renderLabelCollapse()\n {\n let first = Arr.first(this.tempValue);\n\n if ( !first ) {\n return null;\n }\n\n let firstHtml = this.ctor('renderLabelItem')(first);\n\n if ( this.tempValue.length === 1 ) {\n return firstHtml;\n }\n\n let count = this.tempValue.length - 1;\n\n let collapseHtml = (\n <div class=\"n-select__item\">\n <span>{this.choice(this.collapseText, count)}</span>\n </div>\n );\n\n return [\n firstHtml, collapseHtml\n ];\n },\n\n renderLabelItems()\n {\n if ( !Mix.isArray(this.tempValue) ) {\n return null;\n }\n\n if ( this.collapse ) {\n return this.ctor('renderLabelCollapse')();\n }\n\n return Arr.each(this.tempValue, (value) => {\n return this.ctor('renderLabelItem')(value);\n });\n },\n\n renderMultiple()\n {\n let isEmptyValue = Mix.isEmpty(this.tempValue) &&\n !Mix.isNumber(this.tempValue);\n\n let props = {\n value: this.search,\n placeholder: this.placeholder,\n disabled: this.deepDisabled,\n onFocus: this.onFocusInput,\n onInput: this.onInputInput,\n onKeydown: this.onKeydownInput\n };\n\n if ( !this.focus ) {\n props.value = null;\n }\n\n if ( !isEmptyValue ) {\n props.placeholder = null;\n }\n\n let inputHtml = (\n <div class=\"n-select__input\">\n <input ref=\"input\" {...props} />\n </div>\n );\n\n return [\n this.ctor('renderLabelClear')(),\n (\n <div class=\"n-select__items\">\n {[this.ctor('renderLabelItems')(), inputHtml]}\n </div>\n ),\n this.ctor('renderLabelAngle')()\n ];\n },\n\n renderSingle()\n {\n let isEmptyValue = Mix.isEmpty(this.tempValue) &&\n !Mix.isNumber(this.tempValue);\n\n let modelLabel = this.getOptionLabel(\n this.tempValue);\n\n if ( isEmptyValue ) {\n modelLabel = null;\n }\n\n let props = {\n value: this.search,\n placeholder: this.placeholder,\n disabled: this.deepDisabled,\n onFocus: this.onFocusInput,\n onInput: this.onInputInput,\n onKeydown: this.onKeydownInput\n };\n\n if ( !this.search && this.custom ) {\n props.value = this.tempValue;\n }\n\n if ( !this.focus ) {\n props.value = modelLabel;\n }\n\n if ( !isEmptyValue ) {\n props.placeholder = modelLabel;\n }\n\n return [\n this.ctor('renderLabelClear')(),\n (\n <div class=\"n-select__input\">\n <input ref=\"input\" {...props} />\n </div>\n ),\n this.ctor('renderLabelAngle')()\n ];\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-select__display'\n ];\n\n if ( this.multiple ) {\n classList.push('n-multiple');\n }\n\n let displayHtml = this.ctor('renderSingle');\n\n if ( this.multiple ) {\n displayHtml = this.ctor('renderMultiple');\n }\n\n return (\n <div class={classList}>{displayHtml()}</div>\n );\n },\n\n renderItems()\n {\n let emptyHtml = (\n <div class=\"n-popover-shadow n-select__empty\">\n <NEmptyIcon inline={true}>{this.trans(this.emptyText)}</NEmptyIcon>\n </div>\n );\n\n if ( !this.searched.length ) {\n return emptyHtml;\n }\n\n if ( this.lazy || ! this.$slots.default ) {\n return this.ctor('renderLazyItems')();\n }\n\n let options = Obj.each(this.searched, (option, index) => {\n return option.ctor('renderOption')(index);\n });\n\n let props = {\n size: this.size\n };\n\n return (\n <NScrollbar ref=\"scrollbar\" class=\"n-popover-shadow n-select__body\" {...props}>\n {Mix.vals(options)}\n </NScrollbar>\n );\n },\n\n renderLazyOption(value, index)\n {\n let classList = [];\n\n let isMultipleActive = this.multiple &&\n Arr.has(this.tempValue, value.value);\n\n if ( isMultipleActive ) {\n classList.push('n-active');\n }\n\n let isSingleActive = ! this.multiple &&\n this.tempValue === value.value;\n\n if ( isSingleActive ) {\n classList.push('n-active');\n }\n\n if ( this.index === Mix.int(index) ) {\n classList.push('n-focus');\n }\n\n let props = {\n 'type': this.type,\n 'clickClose': ! this.multiple,\n };\n\n props['onMousedown'] = (e) => {\n this.toggleOption(value.value, e);\n };\n\n if ( isSingleActive || isMultipleActive ) {\n props.icon = nano.Icons.checked;\n }\n\n return (\n <NPopoverOption class={classList} {...props}>\n {value.label}\n </NPopoverOption>\n );\n },\n\n renderLazyItems()\n {\n let props = {\n items: this.searched, offsetY: 0, uniqueProp: 'tempValue'\n };\n\n props.renderNode = ({ value, index }) => {\n return this.ctor('renderLazyOption')(value, index);\n };\n\n return (\n <NVirtualscroller ref=\"virtualscroll\" class=\"n-popover-shadow n-select__body\" {...props} />\n );\n },\n\n renderPopover()\n {\n let classList = [\n 'n-popover--select',\n ];\n\n if ( this.lazy ) {\n classList.push('n-virtual');\n }\n\n let props = {\n class: classList,\n trigger: 'click',\n width: - 1,\n listen: true,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.deepDisabled,\n onClose: this.resetInput\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n {{ raw: this.ctor('renderItems') }}\n </NPopover>\n );\n },\n\n renderOptions()\n {\n if ( this.lazy ) {\n return null;\n }\n\n if ( Mix.isEmpty(this.options) ) {\n return this.$slots.default && this.$slots.default();\n }\n\n let optionRender = ($value, $index) => {\n\n let props = {\n label: Obj.get({ $value, $index }, this.optionsLabel, null),\n value: Obj.get({ $value, $index }, this.optionsValue, null),\n };\n\n return (<NSelectOption {...props}></NSelectOption>);\n };\n\n return Arr.each(this.options, optionRender);\n },\n\n render()\n {\n let classList = [\n 'n-select',\n 'n-select--' + this.type,\n 'n-select--' + this.size,\n ];\n\n let isEmptyValue = Mix.isEmpty(this.tempValue) &&\n !Mix.isNumber(this.tempValue);\n\n if ( isEmptyValue ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList} onClick={this.focusInput}>\n {this.ctor('renderDisplay')()}\n {this.ctor('renderPopover')()}\n {this.ctor('renderOptions')()}\n </div>\n );\n },\n\n}\n","import { Num, Arr, Obj, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSelectOption',\n\n inheritAttrs: false,\n\n inject: {\n\n NSelect: {\n default: undefined\n }\n\n },\n\n props: {\n\n value: {\n default()\n {\n return '';\n }\n },\n\n label: {\n default()\n {\n return null;\n }\n },\n\n valueProp: {\n default()\n {\n return null;\n }\n },\n\n labelProp: {\n default()\n {\n return null;\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n tempValue()\n {\n if ( Mix.isEmpty(this.valueProp) ) {\n return this.value;\n }\n\n return Obj.get(this.value, this.valueProp);\n },\n\n tempLabel()\n {\n if ( Mix.isEmpty(this.labelProp) ) {\n return this.label;\n }\n\n return Obj.get(this.value, this.labelProp);\n }\n\n },\n\n mounted()\n {\n if ( ! this.NSelect.lazy ) {\n this.NSelect.addOption(this);\n }\n },\n\n beforeUnmount()\n {\n if ( ! this.NSelect.lazy ) {\n this.NSelect.removeOption(this);\n }\n },\n\n methods: {\n\n toggleItem(event) \n {\n event.preventDefault();\n\n if ( event.which !== 1 ) {\n return;\n }\n\n if ( this.disabled ) {\n return;\n }\n\n this.NSelect.toggleOption(this.tempValue, \n event);\n },\n\n },\n\n renderOption(index)\n {\n\n let classList = [];\n\n let isMultipleActive = this.NSelect.multiple && \n Arr.has(this.NSelect.tempValue, this.tempValue);\n\n if ( isMultipleActive ) {\n classList.push('n-active');\n }\n\n let isSingleActive = ! this.NSelect.multiple && \n this.NSelect.tempValue === this.tempValue;\n\n if ( isSingleActive ) {\n classList.push('n-active');\n }\n\n if ( this.NSelect.index === Mix.int(index) ) {\n classList.push('n-focus');\n }\n\n let props = {\n 'disabled': this.disabled,\n 'onMousedown': this.toggleItem,\n 'type': this.NSelect.type,\n 'clickClose': ! this.NSelect.multiple,\n };\n\n if ( isSingleActive || isMultipleActive ) {\n props.icon = nano.Icons.checked;\n }\n\n // Required for scrolldown\n props['data-option'] = this._.uid;\n\n return (\n <NPopoverOption class={classList} {...props}>\n { this.$slots.default && this.$slots.default() || this.tempLabel }\n </NPopoverOption>\n );\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Arr, Obj, Mix, Hash } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCheckbox',\n\n inject: {\n\n NCheckboxGroup: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n value: {\n default()\n {\n return null;\n }\n },\n\n allowUncheck: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n intermediate: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n global: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n tempComputed()\n {\n return ! this.global ? this.tempChecked :\n this.NCheckboxGroup.globalChecked;\n },\n\n tempIntermediate()\n {\n return ! this.global ? this.intermediate :\n this.NCheckboxGroup.globalIntermediate;\n },\n\n tempDisabled()\n {\n return ! this.global ? this.disabled :\n this.NCheckboxGroup.globalDisabled;\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid(), tempChecked: this.modelValue\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempChecked ) {\n this.tempChecked = value;\n }\n }\n\n },\n\n beforeMount()\n {\n if ( this.NCheckboxGroup ) {\n this.tempChecked = this.NCheckboxGroup.isChecked(this.value);\n }\n },\n\n mounted()\n {\n if ( ! this.NCheckboxGroup || this.global ) {\n return;\n }\n\n this.$watch('NCheckboxGroup.tempValue', () => {\n this.tempChecked = this.NCheckboxGroup.isChecked(this.value);\n });\n\n this.NCheckboxGroup.addCheckbox(this);\n },\n\n beforeUnmount()\n {\n if ( this.NCheckboxGroup && ! this.global ) {\n this.NCheckboxGroup.removeCheckbox(this);\n }\n },\n\n methods: {\n\n toggle()\n {\n this.$emit('update:modelValue', this.tempChecked = ! this.tempChecked);\n },\n\n check()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.checkCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n uncheck()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.uncheckCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = false);\n },\n\n eventShiftClick()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.shiftCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n eventLocalClick(event)\n {\n let canClick = ! this.tempDisabled || (this.allowUncheck &&\n this.tempChecked);\n\n if ( ! canClick ) {\n return;\n }\n\n event.preventDefault();\n\n if ( event.shiftKey ) {\n return this.eventShiftClick();\n }\n \n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.toggleCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = ! this.tempChecked);\n },\n\n eventGlobalClick()\n {\n let canClick = ! this.tempDisabled || (this.allowUncheck &&\n this.tempChecked);\n\n if ( ! canClick ) {\n return;\n }\n\n this.NCheckboxGroup.toggleAll();\n },\n\n updateFromGroup()\n {\n let checked = this.NCheckboxGroup.isChecked(this.value);\n\n if ( this.tempChecked === checked ) {\n return;\n }\n \n this.$emit('update:modelValue', this.tempChecked = checked);\n }\n\n },\n\n renderCheckbox()\n {\n let interHtml = this.$slots.intermediate &&\n this.$slots.intermediate();\n\n if ( ! interHtml ) {\n interHtml = (<i class={nano.Icons.intermediate}></i>);\n }\n\n let checkHtml = this.$slots.checked &&\n this.$slots.checked();\n\n if ( ! checkHtml ) {\n checkHtml = (<i class={nano.Icons.checked}></i>);\n }\n\n return (\n <div class=\"n-checkbox__checkbox\">\n { this.tempIntermediate ? interHtml : checkHtml }\n </div>\n );\n },\n\n renderLabel()\n {\n if ( ! this.cslo('default') && ! this.cslo('label') ) {\n return null;\n }\n\n return (\n <div class=\"n-checkbox__label\">\n { this.$slots.default() || this.$slots.label() }\n </div>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NCheckboxGroup ) {\n size = this.NCheckboxGroup.size;\n }\n\n let classList = [\n 'n-checkbox',\n 'n-checkbox--' + size,\n 'n-checkbox--' + this.type,\n ];\n\n if ( this.allowUncheck ) {\n classList.push('n-uncheck');\n }\n\n if ( this.tempComputed ) {\n classList.push('n-checked');\n }\n\n if ( this.tempIntermediate ) {\n classList.push('n-intermediate');\n }\n\n if ( this.tempDisabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.tempComputed && this.allowUncheck ) {\n Arr.remove(classList, 'n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( this.global ) {\n props.onMousedown = this.eventGlobalClick;\n }\n\n if ( ! this.global ) {\n props.onMousedown = this.eventLocalClick;\n }\n\n return (\n <div class={classList} {...props}>\n { [this.ctor('renderCheckbox')(), this.ctor('renderLabel')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCheckboxGroup',\n\n provide()\n {\n return {\n NCheckboxGroup: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'horizontal';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n globalChecked()\n {\n let checked = Arr.filter(this.elements, (checkbox) => {\n return checkbox.tempChecked;\n });\n\n return checked.length === this.elements.length &&\n this.elements.length !== 0;\n },\n\n globalIntermediate()\n {\n let checked = this.elements.filter((checkbox) => {\n return checkbox.tempChecked;\n });\n\n return checked.length !== this.elements.length &&\n checked.length !== 0 ;\n },\n\n globalDisabled()\n {\n return this.elements.length === 0;\n },\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n index: -1,\n elements: []\n }\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.tempValue = this.modelValue ) {\n this.tempValue = this.modelValue;\n }\n \n },\n\n },\n\n methods: {\n\n addCheckbox(checkbox)\n {\n this.index = -1;\n\n Arr.add(this.elements, checkbox, {\n uid: checkbox.uid\n });\n\n this.elements = Arr.sort(this.elements, 'sort');\n },\n\n removeCheckbox(checkbox)\n {\n this.index = -1;\n \n Arr.remove(this.elements, {\n uid: checkbox.uid\n });\n },\n\n toggleCheckbox(checkbox, emit = true)\n {\n let index = Arr.findIndex(this.elements, {\n uid: checkbox.uid\n });\n\n if ( ! checkbox.tempChecked ) {\n this.index = index;\n }\n\n Arr.toggle(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n checkCheckbox(checkbox, emit = true)\n {\n Arr.add(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n uncheckCheckbox(checkbox, emit = true)\n {\n Arr.remove(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n shiftCheckbox(checkbox)\n {\n if ( this.index === -1 ) {\n return this.toggleCheckbox(checkbox, false);\n }\n\n let index = Arr.findIndex(this.elements, {\n uid: checkbox.uid\n });\n\n let checkboxes = this.elements.slice(this.index, index + 1);\n\n if ( index < this.index ) {\n checkboxes = this.elements.slice(index, this.index + 1);\n }\n\n this.index = -1;\n\n Arr.each(checkboxes, (checkbox) => {\n this.checkCheckbox(checkbox, false);\n });\n\n Arr.each(checkboxes, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n toggleAll()\n {\n this.globalChecked ? this.uncheckAll() : this.checkAll();\n },\n\n checkAll()\n {\n Arr.each(this.elements, (checkbox) => {\n this.checkCheckbox(checkbox, false);\n });\n\n Arr.each(this.elements, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n uncheckAll()\n {\n Arr.each(this.elements, (checkbox) => {\n this.uncheckCheckbox(checkbox, false);\n });\n\n Arr.each(this.elements, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n isChecked(value)\n {\n return Arr.has(this.tempValue, value);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-checkbox-group',\n 'n-checkbox-group--' + this.size,\n 'n-checkbox-group--' + this.align,\n ];\n\n return (\n <div class={classList}>\n {this.$slots.default()}\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRadio',\n\n model: {\n prop: 'checked'\n },\n\n inject: {\n\n NRadioGroup: {\n default: undefined\n }\n\n },\n\n props: {\n\n value: {\n default()\n {\n return null;\n }\n },\n\n checked: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n uid()\n {\n return this._.uid;\n }\n\n },\n\n data()\n {\n return {\n tempChecked: this.checked\n };\n },\n\n watch: {\n\n checked()\n {\n if ( this.checked !== this.tempChecked ) {\n this.tempChecked = this.checked;\n }\n }\n\n },\n\n beforeMount()\n {\n if ( this.NRadioGroup ) {\n this.tempChecked = this.NRadioGroup.isChecked(this.value);\n }\n },\n\n mounted()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.addRadio(this);\n }\n },\n\n beforeUnmount()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.removeRadio(this);\n }\n },\n\n methods: {\n\n check()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.checkRadio(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n updateFromGroup()\n {\n let checked = this.NRadioGroup.isChecked(this.value);\n\n if ( this.tempChecked === checked ) {\n return;\n }\n \n this.$emit('update:modelValue', this.tempChecked = checked);\n }\n\n },\n\n renderRadio()\n {\n return (\n <div class=\"n-radio__radio\">\n <span></span>\n </div>\n );\n },\n\n renderLabel()\n {\n if ( ! this.$slots.default && ! this.$slots.label ) {\n return null;\n }\n\n return (\n <div class=\"n-radio__label\">\n { this.$slots.default() || this.$slots.label() }\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-radio',\n 'n-radio--' + this.size,\n 'n-radio--' + this.type,\n ];\n\n if ( this.tempChecked ) {\n classList.push('n-checked');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( ! this.disabled ) {\n props.onMousedown = this.check;\n }\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderRadio')() }\n { this.ctor('renderLabel')() }\n </div>\n );\n }\n\n}\n","import { Arr, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRadioGroup',\n\n provide()\n {\n return {\n NRadioGroup: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'horizontal';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n elements: []\n }\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n },\n\n },\n\n methods: {\n\n addRadio(radio)\n {\n Arr.add(this.elements, radio, {\n uid: radio.uid\n });\n },\n\n removeRadio(radio)\n {\n Arr.remove(this.elements, {\n uid: radio.uid\n });\n },\n\n checkRadio(radio)\n {\n this.tempValue = radio.value;\n \n Arr.each(this.elements, (radio) => {\n radio.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n isChecked(value)\n {\n return this.tempValue === value;\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-radio-group',\n 'n-radio-group--' + this.size,\n 'n-radio-group--' + this.align,\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { Obj, Arr, Mix, Num, Dom, Run } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSlider',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n steps: {\n default()\n {\n return 1;\n }\n },\n\n labels: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n min: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return 100;\n },\n type: [Number]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n index: 0, width: null, tempValue: [null, null]\n };\n },\n\n computed: {\n\n selector()\n {\n return `[data-index=\"${this.index}\"]`;\n },\n\n fixmin()\n {\n return Mix.isArray(this.steps) ? Arr.first(this.steps) : this.min;\n },\n\n fixmax()\n {\n return Mix.isArray(this.steps) ? Arr.last(this.steps) : this.max;\n },\n\n minmax()\n {\n return this.fixmax - this.fixmin;\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n },\n\n watch: {\n\n modelValue()\n {\n this.getPseudoValue();\n }\n\n },\n\n mounted()\n {\n Dom.find(window).on('resize',\n Run.debounce(this.onResize, 500), this._.uid);\n\n this.onResize();\n this.getPseudoValue();\n },\n\n unmounted()\n {\n Dom.find(window).off('resize',\n null, this._.uid);\n },\n\n methods: {\n\n onResize()\n {\n this.width = Dom.find(this.$el).width();\n },\n\n getPseudoValue()\n {\n let value = this.modelValue;\n\n if ( Mix.isNull(value) ) {\n value = this.fixmax;\n }\n if ( ! Mix.isArray(value) ) {\n value = [this.fixmin, value];\n }\n\n return this.tempValue = value;\n },\n\n setModelValue()\n {\n let value = this.tempValue;\n\n if ( ! this.range ) {\n value = this.tempValue[1];\n }\n\n this.$emit('update:modelValue', value);\n },\n\n getValPos(value)\n {\n return Num.fixed(this.width / this.minmax * (value - this.fixmin), 2) + 'px';\n },\n\n getValStyle(value)\n {\n return 'transform: translateX(' + this.getValPos(value) + ');';\n },\n\n getBarPos()\n {\n return Num.fixed(this.width / this.minmax * (this.tempValue[0] - this.fixmin), 2) + 'px';\n },\n\n getBarWidth()\n {\n return Num.fixed(this.width / this.minmax * (this.tempValue[1] - this.tempValue[0]), 2) + 'px';\n },\n\n getBarStyle()\n {\n return 'max-width: ' + this.getBarWidth() + '; ' +\n 'transform: translateX(' + this.getBarPos() + ');';\n },\n\n getClosestValue(width)\n {\n if ( Mix.isNumber(this.steps) ) {\n return Math.round(width / this.steps) * this.steps;\n }\n\n let range = Arr.last(this.steps) -\n Arr.first(this.steps);\n\n let diff = Arr.each(this.steps, (step) => {\n return Math.abs((range / 100 * width) - step + this.fixmin);\n });\n\n let index = Arr.findIndex(diff, Math.min(...diff));\n\n return this.steps[index];\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onMousedown(event)\n {\n if ( this.disabled ) {\n return;\n }\n\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(this.$el).find(this.selector).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n this.onMouseup, this._.uid);\n\n Dom.find(document).on(this.mousemove,\n this.onMousemove, this._.uid);\n },\n\n onMousemove(event)\n {\n this.clientX = this.getTouchEvent(event).clientX;\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let relativeWidth = (this.clientX - offsetX) / this.width * 100;\n\n let closestValue = this.getClosestValue(relativeWidth);\n\n if ( closestValue < this.fixmin ) {\n closestValue = this.fixmin;\n }\n\n if ( closestValue > this.fixmax ) {\n closestValue = this.fixmax;\n }\n\n let stepMin = this.tempValue[0] + this.steps;\n\n if ( this.index === 1 && closestValue < stepMin ) {\n closestValue = stepMin;\n }\n\n let stepMax = this.tempValue[1] - this.steps;\n\n if ( this.index === 0 && closestValue > stepMax ) {\n closestValue = stepMax;\n }\n\n this.tempValue[this.index] = closestValue;\n },\n\n onMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mouseup, null, this._.uid);\n Dom.find(document).off(this.mousemove, null, this._.uid);\n\n Dom.find(this.$el).find(this.selector).remClass('n-move');\n Dom.find(document.body).remClass('n-move');\n\n this.setModelValue();\n },\n\n },\n\n renderHandle(value, index)\n {\n if ( value == null ) {\n return null;\n }\n\n let key = Arr.findIndex(this.steps, value);\n\n let handleProps = {\n 'data-value': value,\n 'data-index': index,\n style: this.getValStyle(value)\n };\n\n handleProps['onMousedown'] = (event) => {\n this.onMousedown(event, this.index = index);\n };\n\n handleProps = {\n ...handleProps, 'data-tooltip': Obj.get(this.labels, key, value)\n }\n\n return (\n <div class=\"n-slider__handle\" {...handleProps}>\n <span></span>\n </div>\n );\n },\n\n renderHandles()\n {\n let values = Arr.clone(this.tempValue);\n\n if ( ! this.range ) {\n delete values[0];\n }\n\n return Arr.each(values, (value, index) => {\n return this.ctor('renderHandle')(value, index);\n });\n },\n\n renderBar()\n {\n let barProps = {\n style: this.getBarStyle()\n };\n\n return (\n <div class=\"n-slider__bar\">\n <div class=\"n-slider__range\" {...barProps}></div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-slider',\n 'n-slider--' + this.type,\n 'n-slider--' + this.size\n ];\n\n if ( this.range ) {\n classList.push('n-range');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderBar')() }\n { this.ctor('renderHandles')() }\n </div>\n );\n }\n\n}\n","import { Obj, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSwitch',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n }\n },\n\n onValue: {\n default()\n {\n return true;\n }\n },\n\n offValue: {\n default()\n {\n return false;\n }\n },\n\n onType: {\n default()\n {\n return 'primary';\n }\n },\n\n offType: {\n default()\n {\n return 'default';\n }\n },\n\n size: {\n default()\n {\n return 'md';\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n eventClick()\n {\n let tempValue = this.onValue;\n\n if ( this.tempValue === this.onValue ) {\n tempValue = this.offValue;\n }\n\n this.$emit('update:modelValue', this.tempValue = tempValue);\n }\n\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n }\n\n },\n\n renderSwitch()\n {\n let classList = [\n 'n-switch__switch'\n ];\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.eventClick;\n }\n\n return (\n <div class={classList} {...props}>\n <span></span>\n </div>\n )\n },\n\n renderLabel()\n {\n if ( ! this.$slots.default ) {\n return null;\n }\n\n let classList = [\n 'n-switch__label',\n ];\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.eventClick;\n }\n\n return (\n <div class={classList} {...props}>\n { this.$slots.default() }\n </div>\n )\n },\n\n render()\n {\n let classList = [\n 'n-switch',\n 'n-switch--' + this.size\n ];\n\n if ( this.tempValue === this.onValue ) {\n classList.push('n-switch--' + this.onType);\n }\n\n if ( this.tempValue === this.offValue) {\n classList.push('n-switch--' + this.offType);\n }\n\n if ( this.tempValue === this.onValue ) {\n classList.push('n-on');\n }\n\n if ( this.tempValue === this.offValue ) {\n classList.push('n-off');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderSwitch')() }\n { this.ctor('renderLabel')() }\n </div>\n );\n }\n\n}\n","import { Obj, Locale, Dom, Arr, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NConfirm',\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n confirmText: {\n default()\n {\n return Locale.trans('Okay');\n },\n type: [String]\n },\n\n cancelText: {\n default()\n {\n return Locale.trans('Cancel');\n },\n type: [String]\n },\n\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue, activeState: false,\n };\n },\n\n mounted()\n {\n this.$watch('tempValue', () => {\n this.changeVisible();\n });\n\n this.$nextTick(() => {\n this.changeVisible();\n });\n\n this.target = Dom.find(this.selector || this.$el)\n .prev().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).append(this.$el);\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n },\n\n methods: {\n\n extractText(fallback)\n {\n if ( !this.$slots.default ) {\n return fallback;\n }\n\n let nodes = this.$slots.default();\n\n if ( Mix.isEmpty(nodes) ) {\n return fallback;\n }\n\n let html = [];\n\n nodes.map((el) => {\n\n if ( !Mix.isString(el.children) ) {\n return;\n }\n\n html.push(el.children);\n });\n\n return html.join(' ');\n },\n\n changeVisible()\n {\n if ( !this.tempValue || this.activeState ) {\n return;\n }\n\n let text = this.trans('Are you sure?');\n\n if ( this.$slots.default ) {\n text = this.$el.innerHTML;\n }\n\n let options = Obj.only(this.$props, ['size', 'type', 'confirmText', 'cancelText'], {\n text\n });\n\n this.Confirm.make(options)\n .then(() => {\n this.activeState = false;\n this.confirm();\n })\n .catch(() => {\n this.activeState = false;\n this.abort();\n });\n\n this.activeState = true;\n },\n\n abort()\n {\n this.$emit('update:modelValue', this.tempValue = false);\n this.$emit('abort');\n },\n\n confirm()\n {\n this.$emit('update:modelValue', this.tempValue = false);\n this.$emit('confirm');\n },\n\n eventClick(event, el)\n {\n if ( !this.listen || this.disabled || event.which !== 1 ) {\n return;\n }\n\n let result = !!Dom.find(el).closest(this.target);\n\n if ( result === this.tempValue ) {\n return;\n }\n\n event.preventDefault();\n\n this.$emit('update:modelValue', this.tempValue = true);\n },\n\n },\n\n render()\n {\n return (\n <div data-confirm=\"text\" style=\"display: none !important;\">\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n }\n\n}\n","import { Run, Mix, Arr, Dom, Locale, Obj, Hash } from \"@kizmann/pico-js\";\n\nexport class ConfirmHandler\n{\n static alias = 'Confirm';\n\n modal = null;\n\n options = {\n text: '', size: 'md', type: 'primary', confirmText: '', cancelText: ''\n };\n\n static make(options = {}, cb = () => false)\n {\n return new ConfirmHandler(options).promise(cb);\n }\n\n constructor(options = {})\n {\n this.options = Obj.assign(this.options, options, {\n uid: Hash.uuid()\n });\n }\n\n close(next)\n {\n this.unbindEvents();\n this.modal.remove();\n\n Dom.find(document.body).style({\n 'overflow': 'undefined'\n });\n\n next();\n }\n\n promise(cb = () => false)\n {\n return new Promise((confirm, cancel) => {\n\n if ( cb.apply({}) ) {\n return confirm();\n }\n\n let args = [\n () => this.close(confirm),\n () => this.close(cancel),\n ];\n\n this.render(...args);\n });\n }\n\n renderIcon(el)\n {\n let icon = Obj.get(window.ConfirmIcons, this.options.type, 'fa fa-ghost');\n\n let child = Dom.make('div', {\n classList: 'n-confirm__icon', innerHTML: `<i class=\"n-icon ${icon}\"></i>`\n });\n\n child.appendTo(el);\n }\n\n renderText(el)\n {\n let child = Dom.make('div', {\n classList: 'n-confirm__text', innerHTML: `<p>${this.options.text}</p>`\n });\n\n child.appendTo(el);\n }\n\n renderConfirm(el, next)\n {\n let classList = [\n 'n-button',\n 'n-button--auto',\n 'n-button--' + this.options.size,\n ];\n\n let text = Obj.get(this.options, 'confirmText');\n\n if ( Mix.isEmpty(text) ) {\n text = Locale.trans('Okay');\n }\n\n let confirm = Dom.make('button', {\n classList: classList.join(' '), innerHTML: `<span>${text}</span>`\n });\n\n confirm.on('click', () => {\n next();\n });\n\n confirm.appendTo(el);\n }\n\n renderCancel(el, next)\n {\n let classList = [\n 'n-button',\n 'n-button--glass',\n 'n-button--neutral',\n 'n-button--' + this.options.size,\n ];\n\n let text = Obj.get(this.options, 'cancelText');\n\n if ( Mix.isEmpty(text) ) {\n text = Locale.trans('Cancel');\n }\n\n let confirm = Dom.make('button', {\n classList: classList.join(' '), innerHTML: `<span>${text}</span>`\n });\n\n confirm.on('click', () => {\n next();\n });\n\n confirm.appendTo(el);\n }\n\n bindEvents(confirm, cancel)\n {\n let { uid } = this.options;\n\n Dom.find(window).on('keydown', (e) => {\n if ( e.keyCode === 27 ) {\n e.stopPropagation(); cancel();\n }\n if ( e.keyCode === 13 ) {\n e.preventDefault(); confirm();\n }\n }, { uid });\n\n Dom.find(this.modal).on('click', (e) => {\n if ( ! Dom.find(e.target).inside('.n-confirm-frame') ) {\n cancel();\n }\n }, { uid });\n\n Run.delay(() => {\n Dom.find(this.modal).addClass('n-ready');\n });\n }\n\n unbindEvents()\n {\n let { uid } = this.options;\n\n Dom.find(window).off('keydown', null, {\n uid\n });\n\n Dom.find(this.modal).off('click', null, {\n uid\n });\n }\n\n render(confirm, cancel)\n {\n let cls = Obj.get(this.options, 'class', []);\n\n if ( Mix.isString(cls) ) {\n cls = cls.split(' ');\n }\n\n let classList = [\n 'n-confirm',\n 'n-confirm--' + this.options.size,\n 'n-confirm--' + this.options.type,\n ];\n\n classList.push('n-theme--dark');\n\n if ( window.WIN ) {\n classList.push('n-reverse');\n }\n\n let modal = Dom.make('div', {\n classList: Arr.merge(classList, cls).join(' ')\n });\n\n modal.attr('data-confirm', this.options.uid);\n\n let frame = Dom.make('div', {\n classList: ['n-confirm-frame']\n });\n\n frame.appendTo(modal);\n\n let body = Dom.make('div', {\n classList: ['n-confirm__body']\n });\n\n body.appendTo(frame);\n\n this.renderIcon(body);\n this.renderText(body);\n\n let action = Dom.make('div', {\n classList: ['n-confirm__action']\n });\n\n action.appendTo(frame);\n\n this.renderCancel(action, cancel);\n this.renderConfirm(action, confirm);\n\n Dom.find(document.body).style({\n 'overflow': 'hidden'\n });\n\n modal.appendTo(document.body);\n\n requestAnimationFrame(() => {\n this.bindEvents(confirm, cancel);\n });\n\n this.modal = modal.get(0);\n console.log(this.modal);\n }\n}\n\nexport default ConfirmHandler;","import { Arr, Obj, Mix, Str, Run } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCascaderPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n clearValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n hover: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n valueProp: {\n default()\n {\n return 'value';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n disabledProp: {\n default()\n {\n return 'disabled';\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window || \n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempHover: this.hover,\n };\n },\n\n watch: {\n\n modelValue(value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n hover(value) {\n if ( value !== this.tempHover ) {\n this.tempHover = value;\n }\n }\n\n },\n\n methods: {\n\n clearCascader()\n {\n this.$emit('update:modelValue', this.tempHover = \n this.tempValue = this.clearValue);\n },\n\n onHover(cascade)\n {\n return (event) => this.hoverItem(cascade, event)\n },\n\n onSelect(cascade)\n {\n return (event) => this.selectItem(cascade, event)\n },\n\n hoverItem(cascade, event = null)\n {\n // Hover intend emulation\n clearTimeout(this.delay);\n\n let updateHover = () => {\n this.$emit('update:hover', \n this.tempHover = cascade);\n };\n\n this.delay = setTimeout(updateHover, 130);\n },\n\n selectItem(cascade, event = null)\n {\n clearTimeout(this.clickTimer);\n\n if ( ! this.lastclick ) {\n this.lastclick = 0;\n }\n\n this.lastclick++;\n\n let trigger = this.touch ? 'click' : \n this.trigger ;\n \n this.clickTimer = setTimeout(() => \n this.lastclick = 0, 240);\n\n this.hoverTimer = setTimeout(() => \n this.hoverItem(cascade), 240);\n\n if ( this.lastclick === 1 && trigger === 'click' ) {\n return this.hoverItem(cascade, event);\n }\n\n if ( event ) {\n event.preventDefault();\n }\n\n this.clickTimer = setTimeout(() => \n this.fireSelectItem(cascade), 50);\n },\n\n fireSelectItem(cascade)\n {\n clearTimeout(this.hoverTimer);\n\n this.lastclick = 0;\n\n this.$emit('update:modelValue', \n this.tempValue = cascade);\n }\n\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-cascader-panel',\n 'n-cascader-panel--' + this.size\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderLabel')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n )\n },\n\n renderOption(item, cascade = [])\n {\n let value = Obj.get(item, this.valueProp);\n\n let classList = [\n 'n-popover-option'\n ];\n\n if ( Arr.has(this.tempValue, item[this.valueProp]) ) {\n classList.push('n-active');\n }\n\n let disabled = Obj.get(item, this.disabledProp, false);\n\n if ( disabled ) {\n classList.push('n-disabled');\n }\n\n let props = {\n size: this.size,\n type: this.type,\n clickClose: false\n };\n\n if ( Arr.last(this.tempValue) === value ) {\n props.icon = nano.Icons.checked;\n }\n\n let tempCascade = Arr.merge(Arr.clone(cascade), [value]);\n\n if ( this.trigger === 'hover' ) {\n props.onMousemove = Run.framerate(this.onHover(tempCascade), 30);\n }\n\n if ( ! disabled ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onSelect(tempCascade);\n }\n\n let children = Obj.get(item, this.childProp);\n\n if ( ! props.icon && ! Mix.isEmpty(children) ) {\n props.icon = nano.Icons.angleRight;\n }\n\n return (\n <NPopoverOption class={classList} {...props}>\n { Obj.get(item, this.labelProp) }\n </NPopoverOption>\n );\n },\n\n renderOptions(items, cascade = [])\n {\n if ( Mix.isEmpty(items) ) {\n return null;\n }\n\n return (\n <div class=\"n-cascader-panel__items\">\n <NScrollbar relative={true}>\n {\n Arr.each(items, (item) => {\n return this.ctor('renderOption')(item, cascade);\n })\n }\n </NScrollbar>\n </div>\n )\n },\n\n renderCascade()\n {\n let renderList = [\n this.ctor('renderOptions')(this.options)\n ];\n\n let items = this.options, cascade = [];\n\n Arr.each(this.tempHover, (value) => {\n\n if ( ! items ) {\n return;\n }\n\n cascade.push(value);\n\n let item = Arr.find(items, {\n [this.valueProp]: value\n });\n\n items = Obj.get(item, this.childProp);\n\n let options = this.ctor('renderOptions')\n (items, cascade);\n\n renderList.push(options);\n });\n\n return renderList;\n },\n\n render()\n {\n let classList = [\n 'n-cascader-panel',\n 'n-cascader-panel--' + this.size\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>{ this.ctor('renderCascade')() }</div>\n );\n }\n\n}","import { Arr, Obj, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCascader',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n clearValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Please select';\n },\n type: [String]\n },\n\n emptyText: {\n default()\n {\n return 'No items';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n valueProp: {\n default()\n {\n return 'value';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n disabledProp: {\n default()\n {\n return 'disabled';\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempHover: this.modelValue,\n focus: false,\n };\n },\n\n methods: {\n\n clearCascader()\n {\n this.focus = true;\n\n this.$emit('update:modelValue', \n this.tempValue = this.tempHover = this.clearValue);\n },\n\n onCascaderInput(value)\n {\n this.focus = false;\n\n this.$emit('update:modelValue', \n this.tempValue = value);\n },\n\n onCascaderHover(value)\n {\n this.$emit('update:hover', \n this.tempHover = value);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n },\n\n watch: {\n\n modelValue(value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || Mix.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearCascader;\n }\n\n return (\n <div class=\"n-cascader__clear n-form-clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-cascader__angle n-form-angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderLabelItems()\n {\n let items = this.options, renderList = [];\n\n if ( Mix.isEmpty(this.tempValue) ) {\n return (\n <div class=\"n-cascader__placeholder\">\n { this.trans(this.placeholder) }\n </div>\n );\n }\n\n Arr.each(this.tempValue, (value) => {\n\n if ( ! items ) {\n return;\n }\n\n let item = Arr.find(items, {\n [this.valueProp]: value\n });\n\n items = Obj.get(item, this.childProp);\n\n let itemLabel = (\n <div class=\"n-cascader__item\">\n <span>{ Obj.get(item, this.labelProp) }</span>\n </div>\n );\n\n renderList.push(itemLabel);\n });\n\n return (\n <div class=\"n-cascader__items\">\n { renderList }\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-cascader__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderLabelItems')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n let emptyHtml = (\n <div class=\"n-popover-shadow n-cascader__empty\">\n <NEmptyIcon inline={true}>{this.trans(this.emptyText)}</NEmptyIcon>\n </div>\n );\n\n if ( Mix.isEmpty(this.options) ) {\n return emptyHtml;\n }\n\n let props = Obj.except(this.$props, ['modelValue'], {\n hover: this.tempHover,\n modelValue: this.tempValue,\n });\n\n props['onUpdate:hover'] = this.onCascaderHover;\n props['onUpdate:modelValue'] = this.onCascaderInput;\n\n return (\n <NCascaderPanel class=\"n-popover-shadow\" {...props}></NCascaderPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled,\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderItems') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-cascader',\n 'n-cascader--' + this.type,\n 'n-cascader--' + this.size,\n ];\n\n if ( Mix.isEmpty(this.tempValue) ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n {this.ctor('renderPopover')()}\n </div>\n );\n }\n\n}","import { Arr, Str, Now, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatepickerPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n arrive: {\n default()\n {\n return null;\n }\n },\n\n clearArrive: {\n default()\n {\n return null;\n }\n },\n\n depart: {\n default()\n {\n return null;\n }\n },\n\n clearDepart: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su',\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', \n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',\n ]\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n yearsGrid()\n {\n return this.tempCache.grid('years');\n },\n\n monthsGrid()\n {\n return this.tempCache.grid('months');\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n arrive(value)\n {\n if ( value !== this.tempArrive.format(this.format) ) {\n this.tempArrive = Now.make(value);\n }\n },\n\n depart(value)\n {\n if ( value !== this.tempDepart.format(this.format) ) {\n this.tempDepart = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n tempView: 'date',\n tempRanger: null,\n cacheArrive: null,\n cacheDepart: null,\n tempValue: Now.make(this.modelValue, this.format),\n tempCache: Now.make(this.modelValue, this.format),\n tempArrive: Now.make(this.arrive),\n tempDepart: Now.make(this.depart),\n }\n },\n\n methods: {\n\n gotoDate()\n {\n this.tempView = 'date';\n },\n\n gotoMonth()\n {\n this.tempView = 'month';\n },\n\n gotoYear()\n {\n this.tempView = 'year';\n },\n\n patchDate(now)\n {\n if ( Mix.isString(now) ) {\n now = Now.make(now);\n }\n\n if ( Mix.isEmpty(this.modelValue) ) {\n now.reset({ time: true });\n } else {\n now.applyTime(this.tempValue);\n }\n\n // Copy now to cache\n this.tempCache = now.clone();\n\n // Copy now to value\n this.tempValue = now.clone();\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n patchMonth(now)\n {\n if ( Mix.isString(now) ) {\n now = Now.make(now);\n }\n\n this.tempCache = now.clone();\n\n this.gotoDate();\n },\n\n printRange(now)\n {\n this.tempRanger = now.clone();\n },\n\n patchYear(now)\n {\n if ( Mix.isString(now) ) {\n now = Now.make(now);\n }\n\n this.tempCache = now.clone();\n\n this.gotoMonth();\n },\n\n patchRange(now)\n {\n if ( this.cacheArrive && ! this.cacheDepart ) {\n this.cacheDepart = now.clone();\n }\n\n if ( ! this.cacheArrive && ! this.cacheDepart ) {\n this.cacheArrive = now.clone();\n }\n\n if ( ! this.cacheArrive || ! this.cacheDepart ) {\n return;\n }\n\n this.tempArrive = this.cacheArrive.clone();\n this.tempDepart = this.cacheDepart.clone();\n\n this.$emit('update:arrive', \n this.tempArrive.format(this.format));\n\n this.$emit('update:depart', \n this.tempDepart.format(this.format));\n\n this.cacheArrive = null;\n this.cacheDepart = null;\n\n this.$emit('rangeSelected', [\n this.tempArrive.format(this.format),\n this.tempDepart.format(this.format)\n ]);\n },\n\n },\n\n renderToolbarPrev(closure)\n {\n let props = {\n type: this.type,\n glass: true,\n square: true,\n icon: nano.Icons.angleLeft,\n onClick: closure\n };\n\n return (<NButton {...props}></NButton>);\n },\n\n renderToolbarNext(closure)\n {\n let props = {\n type: this.type,\n glass: true,\n square: true,\n icon: nano.Icons.angleRight,\n onClick: closure\n };\n\n return (<NButton {...props}></NButton>);\n },\n\n renderToolbarMonth()\n {\n let props = {\n onClick: this.gotoMonth\n };\n\n let monthsHtml = [\n this.months[this.tempCache.month() -1]\n ];\n\n let month = this.tempCache.clone()\n .add(this.monthPanels - 1, 'month');\n\n if ( month.month() !== this.tempCache.month() ) {\n monthsHtml.push(this.months[month.month() -1]);\n }\n\n return (\n <span class=\"n-datepicker-panel__month\" {...props}>\n { monthsHtml.join(' - ') }\n </span>\n );\n },\n\n renderToolbarYear()\n {\n let props = {\n onClick: this.gotoYear\n };\n\n let yearsHtml = [\n this.tempCache.year()\n ];\n\n let month = this.tempCache.clone()\n .add(this.monthPanels - 1, 'month');\n\n if ( month.year() !== this.tempCache.year() ) {\n yearsHtml.push(month.year());\n }\n\n return (\n <span class=\"n-datepicker-panel__year\" {...props}>\n { yearsHtml.join(' - ') }\n </span>\n );\n },\n\n renderToolbar({ prev, next })\n {\n return (\n <div class=\"n-datepicker-panel__toolbar\">\n <div class=\"n-datepicker-panel__display\">\n { this.ctor('renderToolbarMonth')() }\n { this.ctor('renderToolbarYear')() }\n </div>\n <div class=\"n-datepicker-panel__prev\">\n { this.ctor('renderToolbarPrev')(prev) }\n </div>\n <div class=\"n-datepicker-panel__next\">\n { this.ctor('renderToolbarNext')(next) }\n </div>\n </div>\n );\n },\n\n renderDateItem(now, month)\n {\n let classList = [\n 'n-datepicker-panel__day'\n ];\n\n if ( now.equalDate() ) {\n classList.push('n-today');\n }\n\n let isSelected = this.tempValue.valid() &&\n now.equalDate(this.tempValue);\n\n if ( isSelected ) {\n classList.push('n-selected');\n }\n\n if ( now.month() === month.month() ) {\n classList.push('n-current');\n }\n\n let isNotBeforeMin = ! this.minDate || \n now.after(this.minDate) || now.equalDate(this.minDate);\n\n let isNotAfterMax = ! this.maxDate || \n now.before(this.maxDate) || now.equalDate(this.maxDate);\n\n if ( ! isNotBeforeMin || ! isNotAfterMax ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( isNotBeforeMin && isNotAfterMax ) {\n props.onClick = () => this.patchDate(now);\n }\n\n return (\n <div class={classList} {...props}>\n <span>{ now.format('DD') }</span>\n </div>\n );\n },\n\n renderRangeDateItem(now, month)\n {\n let classList = [\n 'n-datepicker-panel__day'\n ];\n\n if ( now.equalDate('now') ) {\n classList.push('n-today');\n }\n\n if ( now.month() === month.month() ) {\n classList.push('n-current');\n }\n\n let viewMode = 0;\n\n if ( !! this.cacheArrive ) {\n viewMode++;\n }\n\n if ( !! this.cacheDepart ) {\n viewMode++;\n }\n\n let isTempValid = this.tempArrive.valid() && \n this.tempDepart.valid();\n\n if ( viewMode === 0 && isTempValid ) {\n\n if ( now.between(this.tempArrive, this.tempDepart) ) {\n classList.push('n-between');\n classList.push('n-selected');\n }\n\n let arriveFirst = this.tempArrive.before(this.tempDepart);\n\n if ( now.equalDate(this.tempArrive) ) {\n classList.push(arriveFirst ? 'n-arrive' : 'n-depart');\n classList.push('n-selected');\n }\n\n if ( now.equalDate(this.tempDepart) ) {\n classList.push(arriveFirst ? 'n-depart' : 'n-arrive');\n classList.push('n-selected');\n }\n\n }\n\n if ( viewMode === 1 && this.cacheArrive ) {\n\n if ( now.between(this.cacheArrive, this.tempRanger) ) {\n classList.push('n-between');\n }\n\n let arriveFirst = this.cacheArrive.before(this.tempRanger);\n\n if ( now.equalDate(this.cacheArrive) ) {\n classList.push(arriveFirst ? 'n-arrive' : 'n-depart');\n }\n\n if ( now.equalDate(this.tempRanger) ) {\n classList.push(arriveFirst ? 'n-depart' : 'n-arrive');\n }\n\n }\n\n let isNotBeforeMin = ! this.minDate || \n now.after(this.minDate) || now.equalDate(this.minDate);\n\n let isNotAfterMax = ! this.maxDate || \n now.before(this.maxDate) || now.equalDate(this.maxDate);\n\n if ( ! isNotBeforeMin || ! isNotAfterMax ) {\n classList.push('n-disabled');\n }\n\n let props = {\n onMouseenter: () => this.printRange(now)\n };\n\n if ( isNotBeforeMin && isNotAfterMax ) {\n props.onClick = () => this.patchRange(now);\n }\n\n return (\n <div class={classList} {...props}>\n <span>{ now.format('DD') }</span>\n </div>\n );\n },\n\n renderDate()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevMonth();\n };\n let next = () => {\n this.tempCache = this.tempCache.nextMonth();\n };\n\n let legendHtml = (\n Arr.each(this.weekdays, (day) => {\n return (\n <div class=\"n-datepicker-panel__day\">\n <span>{ this.trans(day) }</span>\n </div>\n );\n })\n );\n\n let renderItem = this.ctor('renderDateItem');\n\n if ( this.range ) {\n renderItem = this.ctor('renderRangeDateItem');\n }\n\n let bodyHtml = (month) => (\n Arr.each(Arr.chunk(month.grid('days'), 7), (chunks) => {\n return (\n <div class=\"n-datepicker-panel__week\">\n { Arr.each(chunks, (chunk) => renderItem(chunk, month)) }\n </div>\n );\n })\n );\n\n let panelHtml = (\n Arr.each(Arr.make(this.monthPanels), (offset) => {\n\n let month = this.tempCache.clone()\n .add(offset, 'month');\n\n return (\n <div class=\"n-datepicker-panel__panel\">\n <div class=\"n-datepicker-panel__legend\">\n { legendHtml }\n </div>\n <div class=\"n-datepicker-panel__body\">\n { bodyHtml(month) }\n </div>\n </div>\n );\n })\n );\n\n return (\n <div class=\"n-datepicker-panel__dateview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__panels\">\n { panelHtml }\n </div>\n </div>\n );\n },\n\n renderMonthItem(now)\n {\n let classList = [\n 'n-datepicker-panel__month'\n ];\n\n if ( now.equal(this.tempCache, 'YYYYMM') ) {\n classList.push('n-selected');\n }\n\n if ( now.month() === Now.make('now').month() ) {\n classList.push('n-current');\n }\n\n let props = {\n onClick: () => this.patchMonth(now)\n };\n\n return (\n <div class={classList} {...props}>\n <span>{ this.trans(this.months[now.month() -1]) }</span>\n </div>\n )\n },\n\n renderMonth()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevYear();\n };\n\n let next = () => {\n this.tempCache = this.tempCache.nextYear();\n };\n\n return (\n <div class=\"n-datepicker-panel__monthview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__body\">\n <div class=\"n-datepicker-panel__year\">\n { Arr.each(this.monthsGrid, this.ctor('renderMonthItem')) }\n </div>\n </div>\n <div class=\"n-datepicker-panel__footer\">\n <NButton size={this.type} size={this.size} link={true} onClick={this.gotoDate}>\n { this.trans('Go back') }\n </NButton>\n </div>\n </div>\n );\n },\n\n renderYearItem(now)\n {\n let classList = [\n 'n-datepicker-panel__year'\n ];\n\n if ( now.equal(this.tempCache, 'YYYY') ) {\n classList.push('n-selected');\n }\n\n if ( now.year() === Now.make('now').year() ) {\n classList.push('n-current');\n }\n\n let props = {\n onClick: () => this.patchYear(now)\n };\n\n return (\n <div class={classList} {...props}>\n <span>{ now.year() }</span>\n </div>\n )\n },\n\n renderYear()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevDecade();\n };\n\n let next = () => {\n this.tempCache = this.tempCache.nextDecade();\n };\n\n return (\n <div class=\"n-datepicker-panel__yearview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__body\">\n <div class=\"n-datepicker-panel__decade\">\n { Arr.each(this.yearsGrid, this.ctor('renderYearItem')) }\n </div>\n </div>\n <div class=\"n-datepicker-panel__footer\">\n <NButton size={this.type} size={this.size} link={true} onClick={this.gotoDate}>\n { this.trans('Go back') }\n </NButton>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-datepicker-panel',\n 'n-datepicker-panel--' + this.size,\n 'n-datepicker-panel--' + this.type\n ]\n\n return (\n <div class={classList}>\n { this.ctor('render' + Str.ucfirst(this.tempView))() }\n </div>\n );\n }\n\n}","import { Obj, Now, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatepicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n arrive: {\n default()\n {\n return null;\n }\n },\n\n clearArrive: {\n default()\n {\n return null;\n }\n },\n\n depart: {\n default()\n {\n return null;\n }\n },\n\n clearDepart: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select date');\n },\n type: [String]\n },\n\n placeholderArrive: {\n default()\n {\n return Locale.trans('Start date');\n },\n type: [String]\n },\n\n placeholderDepart: {\n default()\n {\n return Locale.trans('End date');\n },\n type: [String]\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n rangeSeparator: {\n default()\n {\n return '-';\n },\n type: [String]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD');\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n Locale.trans('Mo'),\n Locale.trans('Tu'),\n Locale.trans('We'),\n Locale.trans('Th'),\n Locale.trans('Fr'),\n Locale.trans('Sa'),\n Locale.trans('Su'),\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n Locale.trans('Jan'),\n Locale.trans('Feb'),\n Locale.trans('Mar'),\n Locale.trans('Apr'),\n Locale.trans('May'),\n Locale.trans('Jun'),\n Locale.trans('Jul'),\n Locale.trans('Aug'),\n Locale.trans('Sep'),\n Locale.trans('Oct'),\n Locale.trans('Nov'),\n Locale.trans('Dec'),\n ];\n },\n type: [Array]\n }\n\n },\n\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n arrive(value)\n {\n if ( value !== this.tempArrive.format(this.format) ) {\n this.tempArrive = Now.make(value);\n }\n },\n\n depart(value)\n {\n if ( value !== this.tempDepart.format(this.format) ) {\n this.tempDepart = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false,\n tempValue: Now.make(this.modelValue, this.format),\n tempArrive: Now.make(this.arrive, this.format),\n tempDepart: Now.make(this.depart, this.format),\n };\n },\n\n methods: {\n\n clearDatepicker()\n {\n this.range ? this.clearRangeDatepicker() :\n this.clearSingleDatepicker();\n },\n\n clearSingleDatepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n\n clearRangeDatepicker()\n {\n this.tempArrive = Now.make(this.clearArrive, \n this.format);\n\n this.$emit('update:arrive', this.clearValue);\n\n this.tempDepart = Now.make(this.clearDepart, \n this.format);\n\n this.$emit('update:depart', this.clearDepart);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onArriveInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempArrive = Now.make(moment);\n\n this.$emit('update:arrive', \n this.tempArrive.format(this.format));\n },\n\n onDepartInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempDepart = Now.make(moment);\n\n this.$emit('update:depart', \n this.tempDepart.format(this.format));\n },\n\n onDatepickerInput(value)\n {\n this.focus = false;\n\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n onDatepickerDepart(value)\n {\n this.focus = false;\n\n this.tempDepart = Now.make(value, \n this.format);\n\n this.$emit('update:depart', value);\n },\n\n onDatepickerArrive(value)\n {\n this.focus = false;\n\n this.tempArrive = Now.make(value, \n this.format);\n\n this.$emit('update:arrive', value);\n },\n\n },\n\n\n renderLabelClear()\n {\n let isEmpty = ! this.tempArrive.initialDate &&\n ! this.tempDepart.initialDate;\n\n if ( ! this.range ) {\n isEmpty = ! this.tempValue.initialDate;\n }\n\n if ( ! this.clearable || isEmpty ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearDatepicker;\n }\n\n return (\n <div class=\"n-datepicker__clear n-form-clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-datepicker__angle n-form-angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderRange()\n {\n let arriveProps = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholderArrive,\n onInput: this.onArriveInput,\n };\n\n if ( this.tempArrive.valid() ) {\n arriveProps.value = this.tempArrive.format(\n this.displayFormat, true);\n }\n\n let departProps = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholderDepart,\n onInput: this.onDepartInput,\n };\n\n if ( this.tempDepart.valid() ) {\n departProps.value = this.tempDepart.format(\n this.displayFormat, true);\n }\n\n return [\n (\n <div class=\"n-datepicker__input\">\n <input {...arriveProps}/>\n </div>\n ),\n (\n <div class=\"n-datepicker__seperator\">\n <span>{ this.rangeSeparator }</span>\n </div>\n ),\n (\n <div class=\"n-datepicker__input\">\n <input {...departProps}/>\n </div>\n )\n ];\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-datepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-datepicker__display'\n ];\n\n if ( this.range ) {\n classList.push('n-range');\n }\n\n let displayHtml = this.ctor('renderSingle');\n\n if ( this.range ) {\n displayHtml = this.ctor('renderRange');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { displayHtml() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n let classList = [\n 'n-popover-shadow',\n ];\n\n let excludes = [\n 'modelValue',\n 'placeholder',\n 'placeholderArrive',\n 'placeholderDepart',\n 'rangeSeparator',\n 'position',\n 'clearable',\n 'displayFormat'\n ];\n \n let props = Obj.except(this.$props, excludes, {\n arrive: this.tempArrive.format(this.format) || null,\n depart: this.tempDepart.format(this.format) || null,\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:arrive'] = this.onDatepickerArrive;\n props['onUpdate:depart'] = this.onDatepickerDepart;\n props['onUpdate:modelValue'] = this.onDatepickerInput;\n\n return (\n <NDatepickerPanel class={classList} {...props}></NDatepickerPanel>\n );\n },\n\n renderPopover()\n {\n let classList = [\n 'n-popover--datepicker',\n ];\n\n let props = {\n class: classList,\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderItems') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-datepicker',\n 'n-datepicker--' + this.type,\n 'n-datepicker--' + this.size,\n ];\n\n let isEmpty = ! this.tempArrive.initialDate &&\n ! this.tempDepart.initialDate;\n\n if ( ! this.range ) {\n isEmpty = ! this.tempValue.initialDate;\n }\n\n if ( isEmpty ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Arr, Obj, Now, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTimepickerPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Select time';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return 'HH:mm:ss';\n },\n type: [String]\n },\n\n hoursInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n minutesInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n secondsInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n hoursGrid()\n {\n return this.tempValue.getHoursGrid(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutesGrid(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSecondsGrid(this.secondsInterval);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n }\n\n },\n\n data()\n {\n let modelValue = Now.make(this.modelValue);\n\n if ( Mix.isEmpty(this.modelValue) ) {\n modelValue = modelValue.reset({ time: true });\n }\n\n return {\n tempValue: modelValue,\n }\n },\n\n mounted()\n {\n this.scrollTo();\n },\n\n methods: {\n\n eventSelect(now)\n {\n this.$emit('update:modelValue',\n (this.tempValue = now.clone()).format(this.format));\n },\n\n scrollTo()\n {\n let scrollbars = Obj.only(this.$refs, [\n 'hour', 'minute', 'second'\n ]);\n\n Arr.each(scrollbars, (ref, key) => {\n ref.scrollIntoView(`[data-index=\"${this.tempValue[key]()}\"]`);\n });\n }\n\n },\n\n renderToolbar()\n {\n return (\n <div class=\"n-timepicker-panel__toolbar\">\n <div class=\"n-timepicker-panel__display\">\n <span class=\"n-timepicker-panel__time\">\n {this.tempValue.format(this.displayFormat) || this.placeholder}\n </span>\n </div>\n </div>\n )\n },\n\n renderHourItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.hour() === this.tempValue.hour() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.hour()}>\n <span>{now.format('HH')}</span>\n </div>\n );\n },\n\n renderHourPanel()\n {\n if ( !this.displayFormat.match('HH') ) {\n return null;\n }\n\n let scrollbarProps = {\n offsetY: 0, wrapClass: 'n-timepicker-panel__wrap'\n };\n\n return (\n <NScrollbar ref=\"hour\" class=\"n-timepicker-panel__panel\" {...scrollbarProps}>\n {Arr.each(this.hoursGrid, this.ctor('renderHourItem'))}\n </NScrollbar>\n );\n },\n\n renderMinuteItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.minute() === this.tempValue.minute() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.minute()}>\n <span>{now.format('mm')}</span>\n </div>\n );\n },\n\n renderMinutePanel()\n {\n if ( !this.displayFormat.match('mm') ) {\n return null;\n }\n\n let scrollbarProps = {\n offsetY: 0, wrapClass: 'n-timepicker-panel__wrap'\n };\n\n return (\n <NScrollbar ref=\"minute\" class=\"n-timepicker-panel__panel\" {...scrollbarProps}>\n {Arr.each(this.minutesGrid, this.ctor('renderMinuteItem'))}\n </NScrollbar>\n );\n },\n\n renderSecondItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.second() === this.tempValue.second() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.second()}>\n <span>{now.format('ss')}</span>\n </div>\n );\n },\n\n renderSecondPanel()\n {\n if ( !this.displayFormat.match('ss') ) {\n return null;\n }\n\n let scrollbarProps = {\n offsetY: 0, wrapClass: 'n-timepicker-panel__wrap'\n };\n\n return (\n <NScrollbar ref=\"second\" class=\"n-timepicker-panel__panel\" {...scrollbarProps}>\n {Arr.each(this.secondsGrid, this.ctor('renderSecondItem'))}\n </NScrollbar>\n );\n },\n\n render()\n {\n let classList = [\n 'n-timepicker-panel',\n 'n-timepicker-panel--' + this.size,\n 'n-timepicker-panel--' + this.type,\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-timepicker-panel__header\">\n {this.ctor('renderToolbar')()}\n </div>\n <div class=\"n-timepicker-panel__body\">\n {this.ctor('renderHourPanel')()}\n {this.ctor('renderMinutePanel')()}\n {this.ctor('renderSecondPanel')()}\n </div>\n </div>\n );\n }\n\n}","import { Arr, Obj, Now, Mix, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTimepicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Select time';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('HH:mm:ss');\n },\n type: [String]\n },\n\n hoursInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n minutesInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n secondsInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n hoursGrid()\n {\n return this.tempValue.getHoursGrid(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutesGrid(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSecondsGrid(this.secondsInterval);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n }\n\n },\n\n data()\n {\n return {\n focus: false,\n tempValue: Now.make(this.modelValue),\n }\n },\n\n methods: {\n\n clearTimepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n hour: value.moment.hour(), \n minute: value.moment.minute(), \n second: value.moment.second(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onTimepickerInput(value)\n {\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || ! this.tempValue.valid() ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearTimepicker;\n }\n\n return (\n <div class=\"n-timepicker__clear n-form-clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-timepicker__angle n-form-angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.disabled,\n placeholder: this.trans(this.placeholder),\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-timepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-timepicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderSingle')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderPanel()\n {\n let classList = [\n 'n-popover-shadow',\n ];\n \n let props = Obj.except(this.$props, ['modelValue'], {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onTimepickerInput;\n\n return (\n <NTimepickerPanel class={classList} {...props}></NTimepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderPanel') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-timepicker',\n 'n-timepicker--' + this.type,\n 'n-timepicker--' + this.size,\n ];\n\n if ( ! this.tempValue.valid() ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Obj, Now, Mix, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatetimepicker',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select datetime');\n },\n type: [String]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm:ss');\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n Locale.trans('Mo'),\n Locale.trans('Tu'),\n Locale.trans('We'),\n Locale.trans('Th'),\n Locale.trans('Fr'),\n Locale.trans('Sa'),\n Locale.trans('Su'),\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n Locale.trans('Jan'),\n Locale.trans('Feb'),\n Locale.trans('Mar'),\n Locale.trans('Apr'),\n Locale.trans('May'),\n Locale.trans('Jun'),\n Locale.trans('Jul'),\n Locale.trans('Aug'),\n Locale.trans('Sep'),\n Locale.trans('Oct'),\n Locale.trans('Nov'),\n Locale.trans('Dec'),\n ];\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: Now.make(this.modelValue, this.format),\n };\n },\n\n methods: {\n\n clearDatetimepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n hour: value.moment.hour(),\n minute: value.moment.minute(),\n second: value.moment.second(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onDatepickerInput(value)\n {\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n onTimepickerInput(value)\n {\n this.tempValue = Now.make(value,\n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n },\n\n\n renderLabelClear()\n {\n let isEmpty = ! this.tempValue.initialDate;\n\n if ( ! this.clearable || isEmpty ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.clearDatetimepicker;\n }\n\n return (\n <div class=\"n-datetimepicker__clear n-form-clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-datetimepicker__angle n-form-angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-datetimepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-datetimepicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderSingle')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderPanels()\n {\n return (\n <div class=\"n-popover-shadow n-datetimepicker-panel\">\n {[this.ctor('renderDatePanel')(), this.ctor('renderTimePanel')()]}\n </div>\n );\n },\n\n renderDatePanel()\n {\n let props = Obj.only(this.$props, [\n 'minDate', 'maxDate', 'size', 'type', 'format', 'monthPanels', 'disabled', 'weekdays', 'months'\n ]);\n\n props = Obj.assign(props, {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onDatepickerInput;\n\n return (\n <NDatepickerPanel class=\"n-datetimepicker__date-panel\" {...props}></NDatepickerPanel>\n );\n },\n\n renderTimePanel()\n {\n let props = Obj.only(this.$props, [\n 'size', 'type', 'format', 'disabled', 'hoursInterval', 'minutesInterval', 'secondsInterval'\n ]);\n\n props = Obj.assign(props, {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onTimepickerInput;\n\n return (\n <NTimepickerPanel class=\"n-datetimepicker__time-panel\" {...props}></NTimepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.deepDisabled\n };\n\n let slots = {\n raw: this.ctor('renderPanels')\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props} v-slots={slots} />\n );\n },\n\n render()\n {\n let classList = [\n 'n-datetimepicker',\n 'n-datetimepicker--' + this.type,\n 'n-datetimepicker--' + this.size,\n ];\n\n let isEmpty = ! this.tempValue.initialDate;\n\n if ( isEmpty ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Mix, Obj, Arr, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDurationpicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n options: {\n default()\n {\n return [\n 60 * 5,\n 60 * 10,\n 60 * 15,\n 60 * 30,\n 60 * 45,\n 60 * 60,\n 60 * 90,\n 60 * 120,\n 60 * 150,\n 60 * 60 * 3,\n 60 * 60 * 4,\n 60 * 60 * 5,\n 60 * 60 * 6,\n 60 * 60 * 12,\n 60 * 60 * 24,\n 60 * 60 * 24 * 2,\n 60 * 60 * 24 * 3,\n 60 * 60 * 24 * 4,\n 60 * 60 * 24 * 5,\n 60 * 60 * 24 * 6,\n 60 * 60 * 24 * 7,\n ];\n },\n type: [Array]\n },\n\n minDuration: {\n default()\n {\n return null;\n }\n },\n\n maxDuration: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select duration');\n },\n type: [String]\n },\n\n negativeText: {\n default()\n {\n return Locale.trans('Negative duration');\n },\n type: [String]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n days: {\n default()\n {\n return Locale.trans(':count Day|:count Days');\n },\n type: [String]\n },\n\n hours: {\n default()\n {\n return Locale.trans(':count Hour|:count Hours');\n },\n type: [String]\n },\n\n minutes: {\n default()\n {\n return Locale.trans(':count Minute|:count Minutes');\n },\n type: [String]\n },\n\n seconds: {\n default()\n {\n return Locale.trans(':count Second|:count Seconds');\n },\n type: [String]\n }\n\n },\n\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.modelValue, editValue: null\n };\n },\n\n methods: {\n\n findPattern(text, pattern)\n {\n pattern = pattern.replaceAll(':count', '([0-9\\.\\,]+)')\n .replaceAll(' ', '\\\\s*');\n\n return text.match(new RegExp(pattern, 'i'));\n },\n\n humanizeValue(value)\n {\n if ( Mix.isEmpty(value) ) {\n return '';\n }\n\n if ( value < 0 ) {\n return this.negativeText;\n }\n\n let seconds = value;\n\n // Extract minutes\n let minutes = Math.floor(seconds/60);\n seconds -= minutes * 60;\n\n // Extract hours\n let hours = Math.floor(minutes/60);\n minutes -= hours * 60;\n\n\n // Extract days\n let days = Math.floor(hours/24);\n hours -= days * 24;\n\n let text = [];\n\n if ( days ) {\n text.push(Locale.choice(this.days, days));\n }\n\n if ( hours ) {\n text.push(Locale.choice(this.hours, hours));\n }\n\n if ( minutes ) {\n text.push(Locale.choice(this.minutes, minutes));\n }\n\n if ( seconds ) {\n text.push(Locale.choice(this.seconds, seconds));\n }\n\n return text.join(' ');\n },\n\n digitizeValue(text)\n {\n if ( Mix.isEmpty(text) ) {\n return this.clearValue;\n }\n\n let value = 0;\n\n let dmatch = this.findPattern(text, this.days);\n\n if ( dmatch && dmatch.length === 3 ) {\n value += Mix.float(dmatch[1].replace(',', '.')) * 24 * 60 * 60;\n }\n\n let hmatch = this.findPattern(text, this.hours);\n\n if ( hmatch && hmatch.length === 3 ) {\n value += Mix.float(hmatch[1].replace(',', '.')) * 60 * 60;\n }\n\n let mmatch = this.findPattern(text, this.minutes);\n\n if ( mmatch && mmatch.length === 3 ) {\n value += Mix.float(mmatch[1].replace(',', '.')) * 60;\n }\n\n let smatch = this.findPattern(text, this.seconds);\n\n if ( smatch && smatch.length === 3 ) {\n value += Mix.float(smatch[1].replace(',', '.'));\n }\n\n return value;\n },\n\n clearDurationpicker()\n {\n this.$emit('update:modelValue', this.tempValue = this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(e)\n {\n let value = this.digitizeValue(e.target.value);\n\n if ( value === this.tempValue ) {\n return;\n }\n\n this.editValue = value;\n },\n\n onValueChange(e)\n {\n let value = this.editValue;\n\n // Clear edit value\n this.editValue = null;\n\n if ( ! value || value === this.tempValue ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = value);\n },\n\n onDurationpickerInput(value)\n {\n this.focus = false;\n\n // Clear edit value\n this.editValue = null;\n\n this.$emit('update:modelValue', this.tempValue = value);\n },\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || ! this.tempValue ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearDurationpicker;\n }\n\n return (\n <div class=\"n-durationpicker__clear n-form-clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-durationpicker__angle n-form-angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderInput()\n {\n let props = {\n value: this.humanizeValue(this.tempValue),\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n onBlur: this.onValueChange,\n onChange: this.onValueChange,\n };\n\n return (\n <div class=\"n-durationpicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-durationpicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderInput')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n return Arr.each(this.options, (value) => {\n\n let text = this.humanizeValue(value);\n\n let optionProps = {\n //\n };\n\n optionProps['onClick'] = () => {\n this.onDurationpickerInput(value);\n }\n\n return (<NPopoverOption {...optionProps}>{text}</NPopoverOption>)\n });\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: -1,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n let slots = {};\n\n slots.raw = () => {\n\n let scrollProps = {\n relative: true, size: this.size\n }\n\n return (\n <NScrollbar ref=\"scrollbar\" class=\"n-popover-shadow n-durationpicker-panel\" {...scrollProps}>\n {this.ctor('renderItems')()}\n </NScrollbar>\n )\n }\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props} v-slots={slots} />\n );\n },\n\n render()\n {\n let classList = [\n 'n-durationpicker',\n 'n-durationpicker--' + this.type,\n 'n-durationpicker--' + this.size,\n ];\n\n if ( ! this.tempValue ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Str, Arr, Obj, Mix, Hash } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTransfer',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n sourceLabel: {\n default()\n {\n return 'Source';\n },\n type: [String]\n },\n\n targetLabel: {\n default()\n {\n return 'Target';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n sourceChecked()\n {\n return !! this.selectedSource.length && \n this.selectedSource.length === this.tempSource.length;\n },\n\n sourceIntermediate()\n {\n return !! this.selectedSource.length && \n this.selectedSource.length !== this.tempSource.length;\n },\n\n targetChecked()\n {\n return !! this.selectedTarget.length && \n this.selectedTarget.length === this.tempTarget.length;\n },\n\n targetIntermediate()\n {\n return !! this.selectedTarget.length && \n this.selectedTarget.length !== this.tempTarget.length;\n },\n\n tempSource()\n {\n let source = Arr.filter(this.options, (item) => {\n return ! Arr.find(this.tempValue, { [this.uniqueProp]: item[this.uniqueProp] });\n });\n\n if ( Mix.isEmpty(this.sourceSearch) ) {\n return Arr.clone(source);\n }\n\n let searchPattern = new RegExp(this.sourceSearch, 'i');\n\n source = Arr.filter(source, (item) => {\n return item[this.labelProp].match(searchPattern);\n });\n\n return Arr.clone(source);\n },\n\n tempTarget()\n {\n let target = Arr.filter(this.options, (item) => {\n return !! Arr.find(this.tempValue, { [this.uniqueProp]: item[this.uniqueProp] });\n });\n\n if ( Mix.isEmpty(this.targetSearch) ) {\n return Arr.clone(target);\n }\n\n let searchPattern = new RegExp(this.targetSearch, 'i');\n\n target = Arr.filter(target, (item) => {\n return item[this.labelProp].match(searchPattern);\n });\n\n return Arr.clone(target);\n }\n\n },\n data()\n {\n return {\n uid: Hash.uuid(),\n tempValue: this.modelValue,\n sourceSearch: '',\n targetSearch: '',\n selectedSource: [],\n selectedTarget: []\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n moveItemsTarget(options)\n {\n Arr.each(options, (source) => {\n\n let item = Arr.find(this.options, {\n [this.uniqueProp]: source\n });\n\n Arr.add(this.tempValue, item, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.$emit('input', this.tempValue);\n },\n\n moveItemsSource(options)\n {\n Arr.each(options, (source) => {\n\n Arr.remove(this.tempValue, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.$emit('input', this.tempValue);\n },\n\n moveRowTarget(node)\n {\n // Get node unique\n let target = node.value[this.uniqueProp];\n\n // Remove item from selected list\n Arr.remove(this.selectedTarget, target);\n\n this.tempValue = Arr.remove(this.tempValue, {\n [this.uniqueProp]: target\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveRowSource(node)\n {\n // Get node unique\n let source = node.value[this.uniqueProp];\n\n // Remove item from selected list\n Arr.remove(this.selectedSource, source);\n\n Arr.add(this.tempValue, node.item, source, {\n [this.uniqueProp]: source\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveToSource()\n {\n Arr.each(this.selectedTarget, (target) => {\n\n Arr.remove(this.tempValue, {\n [this.uniqueProp]: target\n });\n\n });\n\n this.selectedTarget = [];\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveToTarget()\n {\n Arr.each(this.selectedSource, (source) => {\n\n let item = Arr.find(this.options, {\n [this.uniqueProp]: source\n });\n\n Arr.add(this.tempValue, item, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.selectedSource = [];\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n updateSelectedSource(selected)\n {\n this.selectedSource = selected;\n },\n\n updateSelectedTarget(selected)\n {\n this.selectedTarget = selected;\n }\n\n },\n\n renderSourceSelect()\n {\n let props = {\n modelValue: this.sourceChecked,\n size: this.size,\n type: this.type,\n intermediate: this.sourceIntermediate,\n disabled: ! this.tempSource.length\n };\n\n props['onUpdate:modelValue'] = () => {\n this.$refs.source.selectAll();\n };\n\n return (\n <div class=\"n-transfer__select\">\n <NCheckbox {...props} />\n </div>\n );\n },\n\n renderSourceTitle()\n {\n let labelHtml = (\n <span class=\"n-transfer__item-title\">\n { this.sourceLabel }\n </span>\n );\n\n let counterHtml = (\n <span class=\"n-transfer__item-count\">\n { this.tempSource.length }\n </span>\n );\n\n return (\n <div class=\"n-transfer__title\">\n { [labelHtml, counterHtml] }\n </div>\n );\n },\n\n renderSourceHeader()\n {\n return (\n <div class=\"n-transfer__header\">\n { this.ctor('renderSourceSelect')() }\n { this.ctor('renderSourceTitle')() }\n { this.ctor('renderSourceSearch')() }\n </div>\n );\n },\n\n renderSourceSearch()\n {\n let props = {\n placeholder: this.trans('Search item'),\n size: this.size,\n type: this.type,\n icon: nano.Icons.times,\n iconDisabled: ! this.sourceSearch\n };\n\n props['onIconClick'] = () => {\n this.sourceSearch = '';\n };\n\n props['onUpdate:modelValue'] = () => {\n this.selectedSource = [];\n };\n\n return (\n <div class=\"n-transfer__search\">\n <NInput vModel={this.sourceSearch} {...props} />\n </div>\n )\n },\n\n renderSourceBody()\n {\n let props = {\n group: [this.uid + 'source'],\n allowGroups: [this.uid + 'target'],\n items: this.tempSource,\n size: this.size,\n type: this.type,\n renderSelect: true,\n selected: this.selectedSource,\n safezone: () => -10,\n disableMove: true,\n renderNode: this.ctor('renderNode'),\n onMove: this.moveItemsSource,\n 'onRowDblclick': this.moveRowSource,\n 'onUpdate:selected': this.updateSelectedSource\n };\n\n return (\n <NDraglist ref=\"source\" class=\"n-transfer__body\" {...props} />\n );\n },\n\n renderTargetSelect()\n {\n let props = {\n modelValue: this.targetChecked,\n size: this.size,\n type: this.type,\n intermediate: this.targetIntermediate,\n disabled: ! this.tempTarget.length\n };\n\n props['onUpdate:modelValue'] = () => {\n this.$refs.target.selectAll();\n };\n\n return (\n <div class=\"n-transfer__select\">\n <NCheckbox {...props} />\n </div>\n );\n },\n\n renderTargetTitle()\n {\n let labelHtml = (\n <span class=\"n-transfer__item-title\">\n { this.targetLabel }\n </span>\n );\n\n let counterHtml = (\n <span class=\"n-transfer__item-count\">\n { this.tempTarget.length }\n </span>\n );\n\n return (\n <div class=\"n-transfer__title\">\n { [labelHtml, counterHtml] }\n </div>\n );\n },\n\n renderTargetHeader()\n {\n return (\n <div class=\"n-transfer__header\">\n { this.ctor('renderTargetSelect')() }\n { this.ctor('renderTargetTitle')() }\n { this.ctor('renderTargetSearch')() }\n </div>\n );\n },\n\n renderTargetSearch()\n {\n let props = {\n placeholder: this.trans('Search item'),\n size: this.size,\n type: this.type,\n icon: nano.Icons.times,\n iconDisabled: ! this.targetSearch\n };\n\n props['onIconClick'] = () => {\n this.targetSearch = '';\n };\n\n props['onUpdate:modelValue'] = () => {\n this.selectedTarget = [];\n };\n\n return (\n <div class=\"n-transfer__search\">\n <NInput vModel={this.targetSearch} {...props} />\n </div>\n )\n },\n\n renderTargetBody()\n {\n let props = {\n group: [this.uid + 'target'],\n allowGroups: [this.uid + 'source'],\n items: this.tempTarget,\n size: this.size,\n type: this.type,\n renderSelect: true,\n selected: this.selectedTarget,\n safezone: () => -1,\n disableMove: true,\n renderNode: this.ctor('renderNode'),\n onMove: this.moveItemsTarget,\n 'onRowDblclick': this.moveRowTarget,\n 'onUpdate:selected': this.updateSelectedTarget\n };\n\n return (\n <NDraglist ref=\"target\" class=\"n-transfer__body\" {...props} />\n );\n },\n\n renderNode(props)\n {\n if ( this.$slots.default ) {\n return this.$slots.default(props);\n }\n\n return (\n <div class=\"n-transfer__item\">\n { Obj.get(props.item, this.labelProp) }\n </div>\n );\n },\n\n renderMoveSource()\n {\n let props = {\n disabled: ! this.selectedSource.length,\n size: this.size,\n type: this.type,\n square: true, \n icon: nano.Icons.angleRight,\n onClick: this.moveToTarget\n };\n\n return (\n <NButton {...props} />\n );\n },\n\n renderMoveTarget()\n {\n let props = {\n disabled: ! this.selectedTarget.length,\n size: this.size,\n type: this.type,\n square: true, \n icon: nano.Icons.angleLeft,\n onClick: this.moveToSource\n };\n return (\n <NButton {...props} />\n );\n },\n\n render($render)\n {\n let classList = [\n 'n-transfer',\n 'n-transfer--' + this.size,\n 'n-transfer--' + this.type,\n ]\n\n return (\n <div class={classList}>\n <div class=\"n-transfer__panel\">\n { this.ctor('renderSourceHeader')() }\n { this.ctor('renderSourceBody')() }\n </div>\n <div class=\"n-transfer__controls\">\n { this.ctor('renderMoveSource')() }\n { this.ctor('renderMoveTarget')() }\n </div>\n <div class=\"n-transfer__panel\">\n { this.ctor('renderTargetHeader')() }\n { this.ctor('renderTargetBody')() }\n </div>\n </div>\n );\n }\n\n}","import { Mix, Arr, Locale, Obj } from \"@kizmann/pico-js\";\n\nexport const FormMessage = {\n\n required(field, value)\n {\n return Locale.trans('Field is required');\n },\n\n required_if(field, value, key = '')\n {\n\n let label = Arr.find(this.elements, (item) => {\n return item.prop === key;\n }) || key;\n\n return Locale.trans('Field is required if :label isset', {\n label: label.label || key\n });\n },\n\n required_unless(field, value, key = '')\n {\n let label = Arr.find(this.elements, (item) => {\n return item.prop === key;\n });\n\n return Locale.trans('Field is required unless :label isset', {\n label: label.label || key\n });\n },\n\n same(field, value, key = '')\n {\n let label = Arr.find(this.elements, (item) => {\n return item.prop === key;\n }) || key;\n\n return Locale.trans('Must be same as :label', {\n label: label.label || key\n });\n },\n\n diffrent(field, value, key = '')\n {\n let label = Arr.find(this.elements, (item) => {\n return item.prop === key;\n }) || key;\n\n return Locale.trans('Must be diffrent from :label', {\n label: label.label || key\n });\n },\n\n value(field, value, val = 'foobar')\n {\n return Locale.trans('Must be exact value :val', { val });\n },\n\n min(field, value, min = Number.MIN_VALUE)\n {\n return Locale.trans('Must be greather than :min', { min });\n },\n\n max(field, value, max = Number.MAX_VALUE)\n {\n return Locale.trans('Must be lesser than :max', { max });\n },\n\n minlength(field, value, min = Number.MIN_VALUE)\n {\n return Locale.trans('Length must be greater than :min', { min });\n },\n\n maxlength(field, value, max = Number.MAX_VALUE)\n {\n return Locale.trans('Length must be lesser than :max', { max });\n },\n\n email(field, value)\n {\n return Locale.trans('Must be a valid email');\n }\n\n};\n\nexport const FormRules = {\n\n required(field, value)\n {\n if ( Mix.isBool(value) ) {\n return value === true;\n }\n\n return !Mix.isEmpty(value);\n },\n\n required_if(field, value, key = '')\n {\n let target = Obj.get(this.form, key);\n\n if ( Mix.isEmpty(target) ) {\n return true;\n }\n\n if ( Mix.isBool(value) ) {\n return value === true;\n }\n\n return !Mix.isEmpty(value);\n },\n\n required_unless(field, value, key = '')\n {\n let target = Obj.get(this.form, key);\n\n if ( !Mix.isEmpty(target) ) {\n return true;\n }\n\n if ( Mix.isBool(value) ) {\n return value === true;\n }\n\n return !Mix.isEmpty(value);\n },\n\n same(field, value, key = '')\n {\n return value === Obj.get(this.form, key);\n },\n\n diffrent(field, value, key = '')\n {\n return value !== Obj.get(this.form, key);\n },\n\n value(field, value, val = 'foobar')\n {\n if ( Mix.isString(value) ) {\n return value === val;\n }\n\n return false;\n },\n\n min(field, value, min = Number.MIN_VALUE)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isNumber(value) ) {\n return value >= min;\n }\n\n return false;\n },\n\n max(field, value, max = Number.MAX_VALUE)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isNumber(value) ) {\n return value <= max;\n }\n\n return false;\n },\n\n minlength(field, value, min = Number.MIN_VALUE)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isString(value) || Mix.isArray(value) ) {\n return value.length > min;\n }\n\n return false;\n },\n\n maxlength(field, value, max = Number.MAX_VALUE)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isString(value) || Mix.isArray(value) ) {\n return value.length < max;\n }\n\n return false;\n },\n\n email(field, value)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isString(value) ) {\n return value.match(/^.*?@.*?\\.[a-z]{2,}$/);\n }\n\n return false;\n }\n\n};","import { Hash, Run, Arr, Obj, Mix, Dom, Locale } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\nimport {FormMessage, FormRules} from \"./form-rules.mjs\";\n\nexport default {\n\n name: 'NForm',\n\n inheritAttrs: false,\n\n model: {\n prop: 'form'\n },\n\n props: {\n\n ready: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n dom: {\n default()\n {\n return 'div';\n },\n type: [String]\n },\n\n form: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n errors: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n kind: {\n default()\n {\n return 'classic';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'vertical';\n },\n type: [String]\n },\n\n prevent: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n ignore: {\n default()\n {\n return ['modified', 'dragid'];\n },\n type: [Array]\n },\n\n forceChange: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n forceErrors: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n classList()\n {\n if ( ! this.$attrs.class ) {\n return [];\n }\n\n return Mix.isArray(this.$attrs) ? this.$attrs.class :\n [this.$attrs.class];\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid(), elements: [], rules: [], groups: {}, ruleErrors: {}, blocked: true,\n };\n },\n\n provide()\n {\n return {\n NForm: this\n };\n },\n\n mounted()\n {\n Run.delay(this.ctor('ready'), 500);\n },\n\n ready()\n {\n this.$watch('form', this.emitChange, {\n deep: true\n });\n\n this.resetChange();\n },\n\n methods: {\n\n getGroups()\n {\n return this.groups;\n },\n\n appendGroup(group)\n {\n this.groups[group.uid] = group;\n },\n\n removeGroup(group)\n {\n delete this.groups[group.uid];\n },\n\n onSubmit(event)\n {\n if ( this.prevent ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if ( Dom.find(event.target).is('input') ) {\n this.$emit('submit', event);\n }\n\n return this.prevent;\n },\n\n appendItem(item)\n {\n Arr.add(this.elements, item, {\n uid: item.uid\n });\n },\n\n removeItem(item)\n {\n Arr.remove(this.elements,{\n uid: item.uid\n });\n },\n\n resetChange(timeout = 500)\n {\n clearTimeout(this.timeout);\n\n this.timeout = setTimeout(() => {\n this.blocked = false;\n }, timeout);\n\n this.blocked = true;\n\n let value = Obj.except(this.form,\n this.ignore);\n\n this.prevState = JSON.stringify(value);\n },\n\n emitChange()\n {\n if ( this.blocked ) {\n return;\n }\n\n let value = Obj.except(this.form,\n this.ignore);\n\n let nextState = JSON.stringify(value);\n\n if ( this.prevState == nextState ) {\n return;\n }\n\n this.validate();\n\n this.prevState = nextState;\n\n this.$emit('change');\n },\n\n validateField(field)\n {\n let errors = [];\n\n Arr.each(field.rules, (rule) => {\n let [name, ...args] = rule.split(':');\n\n if ( ! FormRules[name] || !FormMessage[name] ) {\n return;\n }\n\n let value = Obj.get(this.form, field.prop);\n\n if ( FormRules[name].call(this, field, value, ...args) ) {\n return;\n }\n\n let message = FormMessage[name].call(this, field, value, ...args);\n\n if ( Mix.isEmpty(message) ) {\n return;\n }\n\n errors.push(message);\n });\n\n return errors;\n },\n\n validate()\n {\n let errors = {};\n\n Arr.each(this.elements, (field) => {\n errors[field.prop] = this.validateField(field);\n });\n\n this.ruleErrors = Obj.filter(errors, (err) => {\n return ! Mix.isEmpty(err);\n });\n\n return this.ruleErrors;\n },\n\n isValid(includeErrors = false)\n {\n this.validate();\n\n let count = Mix.keys(this.ruleErrors).length;\n\n if ( includeErrors ) {\n count += Mix.keys(this.errors).length;\n }\n\n return count === 0;\n },\n\n getErrors()\n {\n let errors = {};\n\n Obj.each(this.errors, (err, key) => {\n\n if ( ! Mix.isArray(err) ) {\n err = [err];\n }\n\n errors[key] = err;\n });\n\n Obj.each(this.ruleErrors, (err, key) => {\n\n if ( Obj.has(errors, key) ) {\n err = Arr.merge(errors[key], err);\n }\n\n errors[key] = err;\n });\n\n return errors;\n },\n\n },\n\n render()\n {\n let classList = [\n 'n-form',\n 'n-form--' + this.size,\n 'n-form--' + this.type,\n 'n-form--' + this.align,\n ];\n\n let attrs = Obj.except(this.$attrs, ['class', 'onChange', 'onSubmit'], {\n class: this.cmer(classList)\n });\n\n attrs['onSubmit'] = (e) => {\n return false;\n }\n\n return h(this.dom, { ...attrs }, [\n this.$slots.default && this.$slots.default()\n ]);\n }\n\n}\n","import { Mix, Arr, Obj, Hash } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormBag',\n\n inject: {\n\n NForm: {\n default: undefined\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid()\n };\n },\n\n\n methods: {\n\n gotoField(field)\n {\n //\n }\n\n },\n\n\n renderField(field)\n {\n let errors = Obj.get(this.NForm.getErrors(),\n field.prop, []);\n\n console.log('err', field.prop, errors)\n\n if ( Mix.isEmpty(errors) ) {\n return null;\n }\n\n let items = Arr.each(errors, (error) => {\n return (<li>{error}</li>);\n });\n\n let itemProps = {\n //\n };\n\n itemProps['onClick'] = () => {\n console.log('click');\n field.gotoInput();\n };\n\n return (\n <div class=\"n-form-bag-item\" {...itemProps}>\n <div class=\"n-form-bag-item__label\">\n <i class=\"n-icon fa fa-location-crosshairs\"></i> <span>{field.label}</span>\n </div>\n <div class=\"n-form-bag-item__errors\">\n <ul>{items}</ul>\n </div>\n </div>\n )\n },\n\n render()\n {\n if ( !this.NForm ) {\n return null;\n }\n\n let classList = [\n 'n-form-bag',\n 'n-form-bag--' + this.NForm.size,\n ];\n\n let items = Arr.each(this.NForm.elements, (field) => {\n return this.ctor('renderField')(field);\n });\n\n return (\n <div class={classList}>\n {items}\n </div>\n );\n }\n}\n","import { Arr, Hash } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormGroup',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NFormFrame: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n name: {\n default()\n {\n return Hash.uuid();\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n }\n },\n\n size: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n kind: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'vertical';\n },\n type: [String]\n },\n\n grid: {\n default()\n {\n return '';\n },\n type: [String, Number]\n },\n\n collapse: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltipPosition: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid(), tempValue: this.modelValue, items: []\n };\n },\n\n provide()\n {\n return { NFormGroup: this };\n },\n\n mounted()\n {\n if ( this.NForm ) {\n this.NForm.appendGroup(this);\n }\n },\n\n unmounted()\n {\n if ( this.NForm ) {\n this.NForm.removeGroup(this);\n }\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n getItems()\n {\n return this.items;\n },\n\n appendItem(item)\n {\n this.items[item.uid] = item;\n },\n\n removeItem(item)\n {\n delete this.items[item.uid];\n },\n\n toggleGroup()\n {\n this.$emit('update:modelValue', this.tempValue = ! this.tempValue);\n },\n\n openGroup()\n {\n this.$emit('update:modelValue', this.tempValue = true);\n },\n\n closeGroup()\n {\n this.$emit('update:modelValue', this.tempValue = true);\n },\n\n },\n\n renderCollapse()\n {\n if ( ! this.collapse ) {\n return null;\n }\n\n return (\n <div class=\"n-form-group__collapse\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-form-group__icon\">\n <i class={['n-icon', this.icon]}></i>\n </div>\n );\n },\n\n renderText()\n {\n let textHtml = (\n <div class=\"n-form-group__text\">\n <span>{ this.label }</span>\n </div>\n );\n\n return (\n <div class=\"n-form-group__label\">\n { [this.ctor('renderIcon')(), textHtml] } \n </div>\n );\n },\n\n renderAction()\n {\n if ( ! this.$slots.action ) {\n return null;\n }\n\n return (\n <div class=\"n-form-group__action\">\n { this.$slots.action() }\n </div>\n );\n },\n\n renderLabel()\n {\n return (\n <div class=\"n-form-group__header\" onClick={this.toggleGroup}>\n <div class=\"n-form-group__legend\">\n {this.ctor('renderCollapse')()}\n {this.ctor('renderText')()}\n {this.ctor('renderAction')()}\n </div>\n </div>\n );\n },\n\n renderTooltip()\n {\n if ( !this.tooltip ) {\n return null;\n }\n\n return (\n <NPopover type=\"tooltip\" size=\"sm\" position={this.tooltipPosition}>\n {this.tooltip}\n </NPopover>\n );\n },\n\n renderBody()\n {\n let classList = [\n 'n-form-group__body'\n ];\n\n if ( this.grid ) {\n classList.push(`n-grid gap-${this.grid}`);\n }\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NForm ) {\n size = size || this.NForm.size;\n }\n\n let kind = this.kind;\n\n if ( this.NFormFrame ) {\n kind = kind || this.NFormFrame.kind;\n }\n\n if ( this.NForm ) {\n kind = kind || this.NForm.kind;\n }\n\n let classList = [\n 'n-form-group', \n 'n-form-group--' + size,\n 'n-form-group--' + kind,\n 'n-form-group--' + this.type,\n 'n-form-group--' + this.align,\n ];\n\n if ( this.collapse ) {\n classList.push('n-form-group--collapse');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n if ( this.$slots.action ) {\n classList.push('n-action');\n }\n\n return (\n <fieldset id={this.name} class={classList} data-group-key={this.name}>\n { this.ctor('renderLabel')() }\n { this.ctor('renderTooltip')() }\n { this.ctor('renderBody')() }\n </fieldset>\n );\n }\n}\n","import { Arr, Obj, Mix, Dom, Hash, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormItem',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NFormGroup: {\n default: undefined\n },\n\n NTabs: {\n default: undefined\n },\n\n NTabsItem: {\n default: undefined\n },\n\n NCollapse: {\n default: undefined\n },\n\n NCollapseItem: {\n default: undefined\n },\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return { NFormItem: this };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n prop: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n rules: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltipPosition: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n tooltipWindow: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n conditional: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n conditionOn: {\n default()\n {\n return Locale.trans('Enable field');\n },\n type: [String]\n },\n\n conditionOff: {\n default()\n {\n return Locale.trans('Disable field');\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid()\n };\n },\n\n beforeMount()\n {\n if ( this.NForm ) {\n this.NForm.appendItem(this);\n }\n\n if ( this.NFormGroup ) {\n this.NFormGroup.appendItem(this);\n }\n },\n\n mounted()\n {\n if ( this.NForm ) {\n this.NForm.$watch('errors', this.gotoInput, { deep: true });\n }\n },\n\n beforeUnmount()\n {\n if ( this.NForm ) {\n this.NForm.removeItem(this);\n }\n\n if ( this.NFormGroup ) {\n this.NFormGroup.removeItem(this);\n }\n },\n\n methods: {\n\n enabled(component = false)\n {\n return (! this.conditional || this.modelValue) && ! component;\n },\n\n disabled(component)\n {\n return (this.conditional && ! this.modelValue) || component;\n },\n\n toggleCondition()\n {\n this.$emit('update:modelValue', !this.modelValue);\n },\n\n focusInput()\n {\n let $input = Dom.find(this.$el).find('input');\n\n if ( !$input.empty() ) {\n return $input.get(0).focus();\n }\n\n $input = Dom.find(this.$refs.input).childs();\n\n if ( !$input.empty() ) {\n return $input.get(0).click();\n }\n\n console.log('I dont belong here :o');\n },\n\n gotoInput()\n {\n let selector = `[data-form-field=\"${this.uid}\"]`;\n\n if ( this.NTabsItem ) {\n this.NTabsItem.changeTab();\n }\n\n if ( this.NCollapseItem ) {\n this.NCollapseItem.showTab();\n }\n\n if ( this.NScrollbar ) {\n this.NScrollbar.scrollIntoView(selector, 0, 50);\n }\n\n console.log(this.NScrollbar)\n }\n\n },\n\n renderCondition()\n {\n if ( ! this.conditional ) {\n return null;\n }\n\n return (\n <div class=\"n-form-item__condition\" onClick={this.toggleCondition}>\n <span>{ this.modelValue ? this.conditionOff : this.conditionOn }</span>\n </div>\n );\n },\n\n renderLabel()\n {\n if ( !this.label && !this.$slots.label ) {\n return null;\n }\n\n return (\n <div class=\"n-form-item__label\">\n <label onClick={this.focusInput} data-tooltip-ltr={this.tooltip} data-required={Arr.has(this.rules, 'required')}>\n {this.$slots.label && this.$slots.label() || this.label}\n </label>\n </div>\n );\n },\n\n renderError()\n {\n if ( !this.NForm ) {\n return null;\n }\n\n let errors = Obj.get(this.NForm.getErrors(),\n this.prop, []);\n\n if ( Mix.isEmpty(errors) ) {\n return;\n }\n\n return (\n <div class=\"n-form-item__error\">\n {Arr.first(errors)}\n </div>\n );\n },\n\n renderInput()\n {\n return (\n <div ref=\"input\" class=\"n-form-item__input\">\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n },\n\n render()\n {\n let size = this.size || Obj.get(this.NForm, 'size', 'md');\n\n\n let classList = [\n 'n-form-item',\n 'n-form-item--' + size,\n ];\n\n if ( this.disabled() ) {\n classList.push('is-disabled');\n }\n\n return <div class={classList} data-form-field={this.uid}>\n {this.ctor('renderCondition')()}\n {this.ctor('renderLabel')()}\n {this.ctor('renderInput')()}\n {this.ctor('renderError')()}\n </div>;\n }\n}\n","import { Run, Arr, Mix, Dom, Str, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormFrame',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n },\n\n provide()\n {\n return { NFormFrame: this };\n },\n\n props: {\n\n showSearch: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n searchPlaceholder: {\n default()\n {\n return Locale.trans('Search ...');\n },\n type: [String]\n },\n\n searchIcon: {\n default()\n {\n return 'fa fa-times';\n },\n type: [String]\n },\n\n kind: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n multiple: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n data()\n {\n return {\n search: ''\n };\n },\n\n mounted()\n {\n this.$watch('search', () => {\n this.onSearchInput();\n });\n\n this.$nextTick(() => {\n this.onScrollEvent();\n });\n\n this.onMoveEvent();\n },\n\n methods: {\n\n applyStar(id, block = false)\n {\n if ( this.block ) {\n return;\n }\n\n if ( ! Mix.isEmpty(this.timeout) ) {\n clearTimeout(this.timeout);\n }\n\n if ( block ) {\n this.onApplyStar(id, block);\n }\n\n this.timeout = setTimeout(() => {\n this.onApplyStar(id, false);\n }, 500);\n },\n\n onApplyStar(id, block = false)\n {\n this.block = block;\n\n Dom.find(this.$el).find(`[data-menu-key]`).each((el) => {\n Dom.find(el).remClass('is-star');\n });\n\n Dom.find(this.$el).find(`[data-menu-key=\"${id}\"]`)\n .addClass('is-star');\n },\n\n onMoveEvent()\n {\n Dom.find(window).on('mousemove', Run.debounce(e => {\n\n let el = Dom.find(e.target).closest('[data-group-key]');\n\n if ( Mix.isEmpty(el) ) {\n return;\n }\n\n this.applyStar(Dom.find(el).attr('data-group-key'), true);\n\n }, 100));\n },\n\n onScrollEvent()\n {\n Dom.find(this.$el).find('[data-menu-key]').each((el) => {\n Dom.find(el).remClass(['is-visible', 'is-first']);\n });\n\n let options = {\n el: `[data-group-key]`, parent: this.$refs.body.$refs.content\n };\n\n let el = Dom.inviewMaxY(options, (el, index) => {\n\n let selector = `[data-menu-key=\"${el.attr}\"]`;\n\n let classList = [\n 'is-visible'\n ];\n\n if ( index === 0 ) {\n classList.push('is-first');\n }\n\n Dom.find(this.$el).find(selector)\n .addClass(classList);\n\n this.$refs.menu.scrollIntoView(selector)\n });\n\n this.applyStar(Dom.find(el).attr('data-group-key'), false);\n },\n\n onSearchInput()\n {\n let search = Str.lower(this.search);\n\n Dom.find(this.$el).find(`[data-menu-key]`)\n .remClass('on-search');\n\n if ( Mix.isEmpty(search) ) {\n return;\n }\n\n let groups = Arr.filter(this.NForm.groups, (group) => {\n\n let labels = Arr.extract(group.items, 'label')\n .join(\"\\n\");\n\n return Str.lower(group.label + \"\\n\" + labels)\n .indexOf(search) !== -1;\n });\n\n Arr.each(groups, (group) => {\n Dom.find(this.$el).find(`[data-menu-key=\"${group.key}\"]`).addClass('on-search');\n });\n },\n\n onClickEvent(item, event = null)\n {\n if ( ! Mix.isEmpty(event) ) {\n event.preventDefault();\n }\n\n let selector = `[data-group-key=\"${item.key}\"]`\n\n if ( item.collapse ) {\n item.openGroup();\n }\n\n if ( this.star !== item.key ) {\n this.applyStar(item.key, true);\n }\n\n this.$refs.body.scrollIntoView(selector, 0, 100);\n }\n\n },\n\n renderSearch()\n {\n if ( ! this.showSearch ) {\n return null;\n }\n\n let searchProps = {\n placeholder: this.searchPlaceholder\n };\n\n if ( ! Mix.isEmpty(this.search) ) {\n searchProps.icon = this.searchIcon;\n }\n\n searchProps['onIconClick'] = () => {\n this.search = '';\n }\n\n return (\n <div class=\"n-form-frame__search\">\n <NInput vModel={this.search} {...searchProps}></NInput>\n </div>\n )\n },\n\n renderMenu(item)\n {\n let labelHtml = (\n <span>{item.label}</span>\n );\n\n let iconHtml = null;\n\n if ( item.icon ) {\n iconHtml = (<i class={item.icon} />);\n }\n\n let buttonProps = {\n href: '#' + item.key\n }\n\n buttonProps['onClick'] = (e) => {\n this.onClickEvent(item, e)\n };\n\n let classList = [\n 'n-form-frame__menu',\n 'n-form-frame__menu--' + item.type\n ];\n\n return (\n <a class={classList} data-menu-key={item.key} {...buttonProps}>\n {[iconHtml, labelHtml]}\n </a>\n );\n },\n\n renderMenus()\n {\n let items = Arr.each(this.NForm.groups, (item) => {\n return this.ctor('renderMenu')(item);\n });\n\n return (\n <n-scrollbar ref=\"menu\" class=\"n-form-frame__menus\">\n { this.ctor('renderSearch')() } { items } { this.$slots.menu && this.$slots.menu() }\n </n-scrollbar>\n );\n },\n\n renderBody()\n {\n let bodyProps = {\n //\n };\n\n bodyProps['onScrollupdate'] = () => {\n this.onScrollEvent();\n };\n\n return (\n <n-scrollbar ref=\"body\" class=\"n-form-frame__body\" {...bodyProps}>\n {this.$slots.default && this.$slots.default()}\n </n-scrollbar>\n );\n },\n\n render()\n {\n let classList = [\n 'n-form-frame',\n 'n-form-frame--' + this.NForm.size\n ];\n\n if ( ! Mix.isEmpty(this.search) ) {\n classList.push('n-form-frame--search')\n }\n\n return (\n <div class={classList}>\n {[this.$slots.frame && this.$slots.frame(), this.ctor('renderMenus')(), this.ctor('renderBody')()]}\n </div>\n );\n }\n}\n","import { Arr, Dom, Run } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTabs',\n\n provide()\n {\n return {\n NTabs: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n float: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n data()\n {\n return {\n init: false,\n elements: [], \n width: 0, \n offset: 0, \n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTab(tab)\n {\n Arr.add(this.elements, tab, \n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTab(tab)\n {\n Arr.remove(this.elements, \n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n getTab(updateEvent = true)\n {\n let currentTab = Arr.find(this.elements, {\n name: this.modelValue\n });\n\n let sorted = Arr.sort(this.elements, 'sort');\n\n if ( ! currentTab ) {\n currentTab = Arr.first(sorted);\n }\n\n let repeatNext = () => this.getTab(updateEvent);\n\n if ( ! currentTab ) {\n return Run.delay(repeatNext, 250);\n }\n\n if ( currentTab.name === this.tempValue || ! updateEvent ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = currentTab.name);\n },\n\n changeTab(value)\n {\n if ( this.tempValue === value ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = value);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n this.getTab(false);\n },\n\n updated()\n {\n let width = Dom.find(this.$el).find('.n-active')\n .width();\n\n this.width = width < 0 ? 0 : width;\n\n let offset = Dom.find(this.$el).find('.n-active')\n .offset('left', this.$el);\n\n this.offset = offset < 0 ? 0 : offset;\n },\n\n renderHeaderIndicator()\n {\n let transform = `scaleX(${this.width / 100}) ` + \n `translateX(${this.offset / (this.width / 100)}px)`;\n\n return (\n <div class=\"n-tabs__indicator\" style={{ transform }}>\n { /* Indicator bar */ }\n </div>\n );\n },\n\n renderHeader()\n {\n if ( this.elements.length <= 1 ) {\n return null;\n }\n\n // FIXME: As soon vue doesnt bug\n let sorted = Arr.sort(this.elements, 'sort');\n \n let tabs = Arr.each(Arr.make(sorted.length), (tab, index) => {\n return sorted[index].ctor('renderHeader')();\n });\n\n return (\n <div class=\"n-tabs__header\">\n {[tabs, this.ctor('renderHeaderIndicator')()]}\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-tabs__body\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-tabs', \n 'n-tabs--' + this.size, \n 'n-tabs--' + this.type\n ];\n\n if ( this.float ) {\n classList.push('n-float');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderHeader')() }\n { this.ctor('renderBody')() }\n </div>\n );\n }\n}\n","import { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NTabsItem',\n\n inject: {\n\n NTabs: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NTabsItem: this\n };\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n name: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n lazy: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n keep: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n\n },\n\n methods: {\n\n changeTab()\n {\n this.NTabs.changeTab(this.name);\n }\n\n },\n\n data()\n {\n return {\n _key: null, init: false\n }\n },\n\n beforeMount()\n {\n this.NTabs.addTab(this);\n },\n\n beforeUnmount()\n {\n this.NTabs.removeTab(this);\n },\n\n renderHeaderIcon()\n {\n if ( ! this.$slots.icon && ! this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-tabs__tab-icon\">\n { this.$slots.icon && this.$slots.icon() || <i class={'n-icon ' + this.icon}></i> }\n </div>\n );\n },\n\n renderHeaderLabel()\n {\n return (\n <div class=\"n-tabs__tab-label\">\n { this.$slots.label && this.$slots.label () || <span>{this.label}</span> }\n </div>\n );\n },\n\n renderHeader()\n {\n let classList = [\n 'n-tabs__tab'\n ];\n\n if ( this.NTabs.tempValue === this.name ) {\n classList.push('n-active');\n }\n\n let props = {\n onClick: () => this.changeTab(this.name)\n };\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHeaderIcon')() }\n { this.ctor('renderHeaderLabel')() }\n </div>\n );\n },\n\n render()\n {\n let renderBody = this.NTabs.tempValue === this.name;\n\n if ( this.keep ) {\n renderBody |= this.init;\n }\n\n if ( ! this.lazy ) {\n renderBody = true;\n }\n\n if ( ! renderBody ) {\n return null;\n }\n\n this.init = true;\n\n let classList = [\n 'n-tabs-item'\n ];\n\n let style = {};\n\n if ( this.NTabs.tempValue !== this.name ) {\n style.display = 'none';\n }\n\n if ( this.$slots.raw ) {\n return this.$slots.raw({ style });\n }\n\n let element = 'div';\n\n if ( ! this.relative && ! this.NTabs.relative ) {\n element = resolveComponent('NScrollbar');\n }\n\n let props = {\n class: classList, style\n }\n\n if ( element !== 'div' ) {\n props.wrapClass = 'n-tabs__wrap';\n }\n\n return h(element, props, this.$slots);\n }\n}\n","import { Arr, Dom, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTags',\n\n provide()\n {\n return {\n NTags: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n tags: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n init: false, elements: [], tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTag(tab)\n {\n Arr.add(this.elements, tab,\n { label: tab.label });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTag(tab)\n {\n Arr.remove(this.elements,\n { label: tab.label });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n },\n\n render()\n {\n let classList = [\n 'n-tags',\n 'n-tags--' + this.size,\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { Arr, Mix, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTagsItem',\n\n inject: {\n\n NTags: {\n default: undefined\n }\n\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return null;\n },\n type: [String]\n },\n\n color: {\n default()\n {\n return null;\n },\n type: [String, Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n },\n\n beforeMount()\n {\n if ( this.NTags ) {\n this.NTags.addTag(this);\n }\n },\n\n beforeUnmount()\n {\n if ( this.NTags ) {\n this.NTags.removeTag(this);\n }\n },\n\n renderIcon()\n {\n if ( Mix.isEmpty(this.icon) ) {\n return null;\n }\n\n return (\n <i class={'n-icon ' + this.icon}></i>\n );\n },\n\n renderLabel()\n {\n return (\n <span>{this.$slots.default ? this.$slots.default() : this.label}</span>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NTags ) {\n size = this.NTags.size;\n }\n\n let classList = [\n 'n-tags-item',\n 'n-tags-item--' + size,\n ];\n\n if ( this.type !== null ) {\n classList.push('n-tags-item--' + this.type);\n }\n\n if ( this.color !== null ) {\n classList.push('n-tags-item--color-' + this.color);\n }\n\n return (\n <div class={classList}>\n {[this.ctor('renderIcon')(), this.ctor('renderLabel')()]}\n </div>\n );\n }\n\n}\n","import { Arr, Dom, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCollapse',\n\n provide()\n {\n return {\n NCollapse: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n init: false, elements: [], tempValue: this.modelValue\n };\n },\n\n methods: {\n\n getIndex(tab)\n {\n if ( tab.sort !== -1 ) {\n return 1000 + tab.sort;\n }\n\n return Arr.findIndex(this.elements, {\n name: tab.name\n });\n },\n\n getSorted()\n {\n // Fix for vue constructor prop warning\n let indexies = Arr.each(Mix.keys(this.elements), (key) => {\n return { name: this.elements[key]['name'], index: this.getIndex(this.elements[key]) };\n });\n\n return Arr.sort(indexies, 'index');\n },\n\n addTab(tab)\n {\n Arr.add(this.elements, tab, {\n name: tab.name\n });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTab(tab)\n {\n Arr.remove(this.elements, {\n name: tab.name\n });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n showTab(value)\n {\n if ( Arr.has(this.tempValue, value) ) {\n return;\n }\n\n Arr.add(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n hideTab(value)\n {\n if ( ! Arr.has(this.tempValue, value) ) {\n return;\n }\n\n Arr.remove(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n toggleTab(value)\n {\n Arr.toggle(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n },\n\n render()\n {\n let classList = [\n 'n-collapse',\n 'n-collapse--' + this.size,\n 'n-collapse--' + this.type\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { Arr, Mix, Dom } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NCollapseItem',\n\n inject: {\n\n NCollapse: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NCollapseItem: this\n };\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n name: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return - 1;\n },\n type: [Number]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n lazy: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n keep: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n methods: {\n\n showTab()\n {\n this.NCollapse.showTab(this.name);\n },\n\n hideTab()\n {\n this.NCollapse.hideTab(this.name);\n },\n\n toggleTab()\n {\n this.NCollapse.toggleTab(this.name);\n }\n\n },\n\n data()\n {\n return {\n init: false, dragger: 0\n }\n },\n\n beforeMount()\n {\n this.NCollapse.addTab(this);\n },\n\n beforeUnmount()\n {\n this.NCollapse.removeTab(this);\n },\n\n renderHeaderIcon()\n {\n if ( !this.$slots.icon && !this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-collapse__header-icon\">\n {this.$slots.icon && this.$slots.icon() || <i class={'n-icon ' + this.icon}></i>}\n </div>\n );\n },\n\n renderHeaderLabel()\n {\n return (\n <div class=\"n-collapse__header-label\">\n {this.$slots.label && this.$slots.label() || <span>{this.label}</span>}\n </div>\n );\n },\n\n renderHeaderAction()\n {\n if ( ! this.$slots.action ) {\n return null;\n }\n\n return (\n <div class=\"n-collapse__header-action\">\n {this.$slots.action && this.$slots.action()}\n </div>\n );\n },\n\n renderHeaderAngle()\n {\n return (\n <div class=\"n-collapse__header-angle\">\n {this.$slots.angle && this.$slots.angle() || <i class={nano.Icons.angleRight}></i>}\n </div>\n );\n },\n\n renderHeader()\n {\n if ( !this.label && !this.$slots.label ) {\n return null;\n }\n\n let sorted = this.NCollapse.getSorted();\n\n let classList = [\n 'n-collapse__header'\n ];\n\n if ( Arr.first(sorted)['name'] === this.name ) {\n classList.push('is-first');\n }\n\n if ( Arr.last(sorted)['name'] === this.name ) {\n classList.push('is-last');\n }\n\n if ( Arr.has(this.NCollapse.tempValue, this.name) ) {\n classList.push('n-active');\n }\n\n let props = {\n onClick: () => this.toggleTab(this.name)\n };\n\n props['onDragenter'] = (event) => {\n\n this.dragger ++;\n\n if ( this.dragger !== 1 ) {\n return;\n }\n\n this.showDelay = setTimeout(() => {\n this.showTab(this.name);\n }, 350);\n };\n\n props['onDragleave'] = (event) => {\n\n this.dragger --;\n\n if ( this.dragger !== 0 ) {\n return;\n }\n\n clearTimeout(this.showDelay);\n };\n\n props.style = {\n order: (Arr.find(sorted, { name: this.name })['index'] * 10) + 1\n };\n\n return (\n <div ref=\"header\" class={classList} {...props}>\n {this.ctor('renderHeaderIcon')()}\n {this.ctor('renderHeaderLabel')()}\n {this.ctor('renderHeaderAction')()}\n {this.ctor('renderHeaderAngle')()}\n </div>\n );\n },\n\n renderBody()\n {\n let sorted = this.NCollapse.getSorted();\n\n let classList = [\n 'n-collapse__body'\n ];\n\n if ( Arr.first(sorted)['name'] === this.name ) {\n classList.push('is-first');\n }\n\n if ( Arr.last(sorted)['name'] === this.name ) {\n classList.push('is-last');\n }\n\n let tempValue = Arr.clone(this.NCollapse.tempValue);\n\n if ( !this.label && !this.$slots.label ) {\n tempValue.push(this.name);\n }\n\n let renderBody = Arr.has(tempValue, this.name);\n\n if ( this.keep ) {\n renderBody = this.init;\n }\n\n if ( ! this.lazy ) {\n renderBody = true;\n }\n\n if ( !renderBody && this.label ) {\n return null;\n }\n\n this.init = true;\n\n let style = {\n order: (Arr.find(sorted, { name: this.name })['index'] * 10) + 2\n };\n\n if ( !Arr.has(tempValue, this.name) ) {\n style.display = 'none';\n }\n\n let element = 'div';\n\n if ( !this.relative && !this.NCollapse.relative ) {\n element = resolveComponent('NScrollbar');\n }\n\n return h(element, { class: classList, style, }, this.$slots);\n },\n\n render()\n {\n return [\n this.ctor('renderHeader')(), this.ctor('renderBody')()\n ];\n }\n}\n","import { Mix, Arr, Obj, Dom, Event, Hash } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTable',\n\n provide()\n {\n return {\n NTable: this\n };\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n visible: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n expanded: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n filter: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n sortProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n sortDir: {\n default()\n {\n return 'desc';\n },\n type: [String]\n },\n\n closeFilterOnEnter: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n safezone: {\n default()\n {\n return (height) => height * 0.51;\n }\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 38;\n },\n type: [Number]\n },\n\n itemOffset: {\n default()\n {\n return 30;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderSelect: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderExpand: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return () => true;\n }\n },\n\n removeNode: {\n default()\n {\n return () => true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n },\n\n },\n\n computed: {\n\n checked()\n {\n return !!this.tempSelected.length &&\n this.tempSelected.length === this.items.length;\n },\n\n intermediate()\n {\n return !!this.tempSelected.length &&\n this.tempSelected.length !== this.items.length\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid(),\n elements: [],\n tempVisible: this.visible,\n tempVisibleProps: [],\n tempSelected: this.selected,\n tempSortProp: this.sortProp,\n tempSortDir: this.sortDir,\n tempFilter: this.filter,\n tempFilterProps: [],\n }\n },\n\n mounted()\n {\n this.$watch('tempVisible',\n this.makeVisibleProps, { deep: true });\n\n if ( !this.tempVisible.length ) {\n Arr.each(this.elements, this.detectVisible);\n }\n },\n\n watch: {\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n },\n\n methods: {\n\n addColumn(column)\n {\n Arr.add(this.elements, column,\n { uid: column.uid });\n },\n\n removeColumn(column)\n {\n Arr.remove(this.elements,\n { uid: column.uid });\n },\n\n getColumnIndex(column)\n {\n if ( !Mix.isString(column) ) {\n column = column['prop'];\n }\n\n return Arr.findIndex(this.tempVisibleProps,\n column);\n },\n\n getColumnVisiblity(column)\n {\n if ( !Mix.isString(column) ) {\n column = column.prop;\n }\n\n return Arr.has(this.tempVisible, column);\n },\n\n getColumnSorted(column)\n {\n let prop = column;\n\n if ( !Mix.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Mix.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n if ( this.tempSortProp !== prop ) {\n return null;\n }\n\n return this.tempSortDir;\n },\n\n getColumnFilter(column)\n {\n let prop = column;\n\n if ( !Mix.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Mix.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n return Arr.find(this.tempFilter, {\n property: prop\n });\n },\n\n getColumnFiltered(column)\n {\n let prop = column;\n\n if ( !Mix.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Mix.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n return Arr.has(this.tempFilterProps, prop);\n },\n\n detectVisible(column)\n {\n if ( column.detectVisibity() ) {\n Arr.add(this.tempVisible, column.prop);\n }\n },\n\n makeVisibleProps()\n {\n let args = [\n Arr.extract(this.elements, 'prop'), this.tempVisible\n ];\n\n this.tempVisibleProps = Arr.isect(...args);\n\n this.$nextTick(this.$refs.scrollbar.onResize);\n },\n\n sortByColumn(column)\n {\n let prop = column;\n\n if ( !Mix.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Mix.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n\n let dir = this.tempSortDir;\n\n if ( prop === this.tempSortProp && this.tempSortDir === 'desc' ) {\n dir = 'asc';\n }\n\n if ( prop === this.tempSortProp && this.tempSortDir === 'asc' ) {\n dir = 'desc';\n }\n\n if ( this.tempSortDir !== dir ) {\n this.$emit('update:sortDir', this.tempSortDir = dir);\n }\n\n if ( this.tempSortProp !== prop ) {\n this.$emit('update:sortProp', this.tempSortProp = prop);\n }\n\n this.$emit('sort', this.tempSortProp, this.tempSortDir);\n },\n\n replaceFilter(filter, search)\n {\n Arr.replace(this.tempFilter, filter, search);\n\n let filters = Arr.filter(this.tempFilter, (filter) => {\n return Arr.has(this.tempFilterProps, filter.property);\n });\n\n this.$emit('update:filter', filters);\n\n this.$emit('filter', filters, this.tempFilterProps);\n },\n\n resetFilter()\n {\n this.tempFilter = this.tempFilterProps = [];\n\n Event.fire('NTable:reset', this.uid);\n\n this.$emit('update:filter', this.tempFilter);\n\n this.$emit('filter', this.tempFilter, this.tempFilterProps);\n },\n\n selectAll()\n {\n this.$refs.draggable.selectAll();\n },\n\n highlightNode(value, key = null)\n {\n this.$refs.draggable.highlightNode(value, key);\n },\n\n syncCurrent()\n {\n return this.$refs.draggable.syncCurrent();\n },\n\n refreshCurrent()\n {\n this.$refs.draggable.refreshCurrent();\n },\n\n },\n\n renderHandle()\n {\n if ( !this.renderHandle ) {\n return null;\n }\n\n return (\n <div class=\"n-draglist-item__handle\">\n { /* Only used in row */}\n </div>\n )\n },\n\n renderExpand()\n {\n if ( !this.renderExpand ) {\n return null;\n }\n\n return (\n <div class=\"n-draglist-item__expand\">\n { /* Only used in row */}\n </div>\n )\n },\n\n renderSelect()\n {\n if ( !this.renderSelect ) {\n return null;\n }\n\n let props = {\n modelValue: this.checked,\n intermediate: this.intermediate,\n disabled: !this.items.length,\n onClick: this.selectAll\n };\n\n return (\n <div class=\"n-draglist-item__select\">\n <NCheckbox {...props}></NCheckbox>\n </div>\n );\n },\n\n renderBody(props)\n {\n let columns = Obj.each(this.elements, (column) => {\n return column.disabled ? null : column.ctor('renderBody')(props);\n });\n\n return Mix.vals(columns);\n },\n\n renderContext()\n {\n let columns = Obj.each(this.elements, (column) => {\n\n if ( column.disabled ) {\n return null;\n }\n\n return (\n <NCheckbox class=\"n-table__checkbox\" value={column.prop}>\n {column.label}\n </NCheckbox>\n );\n });\n\n return (\n <NPopover trigger=\"context\" width={220}>\n <NPopoverGroup>\n {this.trans('Toggle column visiblity')}\n </NPopoverGroup>\n <NCheckboxGroup vModel={this.tempVisible} size=\"sm\" align=\"vertical\">\n {Mix.vals(columns)}\n </NCheckboxGroup>\n </NPopover>\n );\n },\n\n renderHead()\n {\n let defaultRender = [\n this.ctor('renderHandle')(),\n this.ctor('renderExpand')(),\n this.ctor('renderSelect')(),\n this.ctor('renderContext')()\n ];\n\n let columns = Arr.each(this.elements, (column) => {\n return column.disabled ? null : column.ctor('renderHead')();\n });\n\n return (\n <div class=\"n-table__header\">\n {defaultRender} {columns}\n </div>\n );\n },\n\n render()\n {\n let except = [\n 'visible', 'filter', 'sortProp', 'sortDir', 'closeFilterOnEnter'\n ];\n\n let props = Obj.except(this.$props, except, {\n items: this.items,\n selected: this.tempSelected,\n overflowX: false,\n useKeys: this.useKeys,\n // renderNode: this.ctor('renderBody')\n });\n\n props['onRowClick'] = (...args) => {\n this.$emit('row-click', ...args);\n }\n\n props['onRowDblclick'] = (...args) => {\n this.$emit('row-dblclick', ...args);\n }\n\n props['onUpdate:items'] = (value) => {\n this.$emit('update:items', value);\n }\n\n props['onUpdate:current'] = (value) => {\n this.$emit('update:current', value);\n }\n\n props['onUpdate:expanded'] = (value) => {\n this.$emit('update:expanded', value);\n }\n\n props['onUpdate:selected'] = (value) => {\n this.$emit('update:selected', this.tempSelected = value);\n }\n\n let draggableHtml = (\n <div class=\"n-table__body\">\n <NDraglist ref=\"draggable\" {...props} offsetX={25}>\n {{ default: this.ctor('renderBody') }}\n </NDraglist>\n </div>\n );\n\n return (\n <div class=\"n-table n-table--md\">\n <NScrollbar ref=\"scrollbar\" wrapClass=\"n-table__wrap\" overflowY={false}>\n {[this.ctor('renderHead')(), draggableHtml]}\n </NScrollbar>\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n },\n\n}","import { Mix, Arr, Obj, Str, Dom, Hash, Num, Locale } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NTableColumn',\n\n inject: {\n\n NTable: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n prop: {\n default()\n {\n return Hash.uuid();\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'string';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'left';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n filter: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n visible: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean, Function]\n },\n\n matrixDisabled: {\n default()\n {\n return false;\n },\n type: [Boolean, Function]\n },\n\n breakpoint: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n previewProp: {\n default()\n {\n return 'preview';\n },\n type: [String]\n },\n\n matrix: {\n default()\n {\n return - 1;\n },\n type: [Number, String]\n },\n\n matrixProp: {\n default()\n {\n return 'matrix';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Object, Array, Function]\n },\n\n optionsValue: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n sortProp: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n filterProp: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n fixedWidth: {\n default()\n {\n return 0;\n }\n },\n\n width: {\n default()\n {\n return 0;\n }\n },\n\n minWidth: {\n default()\n {\n return 120;\n }\n },\n\n maxWidth: {\n default()\n {\n return 0;\n }\n },\n\n emptyText: {\n default()\n {\n return '-';\n },\n type: [String]\n },\n\n undefinedText: {\n default()\n {\n return Locale.trans('-');\n },\n type: [String]\n },\n\n trueText: {\n default()\n {\n return Locale.trans('Yes');\n },\n type: [String]\n },\n\n falseText: {\n default()\n {\n return Locale.trans('No');\n },\n type: [String]\n },\n\n datetimeFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm');\n },\n type: [String]\n },\n\n allowUncheck: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n matrixValues()\n {\n if ( this.type !== 'matrix' ) {\n return;\n }\n\n let values = {};\n\n if ( Mix.isEmpty(this.modelValue) ) {\n return values;\n }\n\n Arr.each(this.modelValue, (item) => {\n Obj.set(values, item[this.NTable.uniqueProp],\n Num.matrix(item[this.matrixProp]));\n });\n\n return values;\n }\n\n },\n\n provide()\n {\n return {\n NTableColumn: this\n };\n },\n\n data()\n {\n return {\n uid: Hash.uuid(), tempWidth: 0\n };\n },\n\n methods: {\n\n detectVisibity()\n {\n let visible = this.visible;\n\n if ( this.breakpoint ) {\n visible &= Dom.find(this.NTable.$el).width() > this.breakpoint;\n }\n\n return visible;\n },\n\n sortByColumn(event)\n {\n if ( !Arr.has([0, 1], event.which) ) {\n return;\n }\n\n if ( !Dom.find(event.target).closest('.n-table-column__filter') ) {\n this.NTable.sortByColumn(this);\n }\n },\n\n },\n\n beforeMount()\n {\n this.changedStates = {};\n this.NTable.addColumn(this);\n },\n\n beforeUnmount()\n {\n this.NTable.removeColumn(this);\n },\n\n renderHead()\n {\n if ( !this.NTable.getColumnVisiblity(this) ) {\n return null;\n }\n\n let classList = [\n 'n-table-column',\n 'n-table-column--' + this.align,\n 'n-table-column--' + this.type,\n ];\n\n let sortDirection = this.NTable.getColumnSorted(this);\n\n if ( sortDirection ) {\n classList.push('n-sorted', 'n-' + sortDirection);\n }\n\n if ( this.fixedWidth ) {\n classList.push('n-fixed');\n }\n\n if ( this.NTable.getColumnFiltered(this) ) {\n classList.push('n-filtered');\n }\n\n let flex = '1 1 auto';\n\n if ( this.width != 0 ) {\n flex = `1 1 ${this.width}`;\n }\n\n if ( this.fixedWidth != 0 ) {\n flex = `0 0 ${this.fixedWidth}px`;\n }\n\n let props = {\n modelValue: this.tempWidth,\n flex: flex,\n minWidth: this.minWidth,\n maxWidth: this.maxWidth,\n disabled: !!this.fixedWidth,\n group: ['n-table', this.NTable.uid],\n };\n\n props['onUpdateWidth'] = (value) => {\n this.tempWidth = value;\n };\n\n props['onUpdate:modelValue'] = (value) => {\n this.tempWidth = value;\n };\n\n if ( this.sort ) {\n props.onMousedown = this.sortByColumn;\n }\n\n return (\n <NResizer ref=\"column\" class={classList} {...props}>\n {this.ctor('renderHeadSort')()}\n {this.ctor('renderHeadLabel')()}\n {this.ctor('renderHeadFilter')()}\n </NResizer>\n );\n },\n\n renderHeadLabel()\n {\n let classList = [\n 'n-table-column__label'\n ];\n\n let labelHtml = (\n <div class={classList}>\n <span>{this.label}</span>\n </div>\n );\n\n if ( Mix.isEmpty(this.tooltip) ) {\n return labelHtml;\n }\n\n let tooltipHtml = (\n <NPopover type=\"tooltip\">{this.tooltip}</NPopover>\n );\n\n return [labelHtml, tooltipHtml];\n },\n\n renderHeadSort()\n {\n if ( !this.sort ) {\n return null;\n }\n\n return (\n <div class=\"n-table-column__sort\">\n <i>{ /* Sorting angles */}</i>\n </div>\n )\n },\n\n renderHeadFilter()\n {\n if ( !this.filter ) {\n return null;\n }\n\n let angleHtml = (\n <div class=\"n-table-column__filter\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n\n let component = resolveComponent('NTableFilter' +\n Str.ucfirst(this.type));\n\n return [\n angleHtml, h(component, { column: this })\n ];\n },\n\n renderBody(props)\n {\n if ( !this.NTable.getColumnVisiblity(this) ) {\n return null;\n }\n\n let uid = props.value[this.NTable.uniqueProp]\n + this.uid;\n\n let classList = [\n 'n-table-cell',\n 'n-table-cell--' + this.align,\n 'n-table-cell--' + this.type,\n ];\n\n if ( this.tempWidth ) {\n classList.push('n-fixed');\n }\n\n let index = this.NTable.getColumnIndex(this);\n\n let offset = 0;\n\n if ( index === 0 ) {\n offset = props.value.depth * this.NTable.itemOffset;\n }\n\n let style = {\n width: (this.tempWidth - offset) + 'px'\n };\n\n if ( this.minWidth ) {\n style.minWidth = (this.minWidth - offset) + 'px';\n }\n\n if ( this.maxWidth ) {\n style.maxWidth = (this.maxWidth - offset) + 'px';\n }\n\n let passed = Obj.except(this.$attrs, [], {\n ...props, uid: uid, class: classList, style: style, column: this\n });\n\n let component = resolveComponent('NTableCell' +\n Str.ucfirst(this.type));\n\n return h(component, passed);\n },\n\n render()\n {\n return null;\n }\n\n}","import { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NTable: {\n default: undefined\n },\n\n NDraggableItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n uid: {\n required: true\n },\n\n column: {\n required: true\n },\n\n item: {\n required: true\n },\n\n value: {\n required: true\n },\n\n copy: {\n required: true\n },\n\n remove: {\n required: true\n },\n\n\n },\n\n computed: {\n\n input()\n {\n return Obj.get(this.item, this.column.prop);\n }\n\n },\n\n data()\n {\n return { init: false };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => this.init = true, 20);\n },\n\n beforeUnmount()\n {\n clearTimeout(this.timer);\n },\n\n methods: {\n\n setFirstState(state)\n {\n Obj.set(this.column.changedStates,\n this.uid, this.firstState = state);\n }\n\n },\n\n render()\n {\n if ( this.column.$slots.default ) {\n return this.column.$slots.default(this);\n }\n \n return (\n <div>{ this.input }</div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Str } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellString',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Str.string(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Str } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellBoolean',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n return (\n <div>\n <span>{ Str.boolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Str } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellDatetime',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n return (\n <div>\n <span>{ Str.datetime(this.input, this.column.datetimeFormat, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Arr, Obj, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellOption',\n\n extends: TableCell,\n\n renderOption(value)\n {\n let options = this.column.options;\n\n if ( Mix.isFunction(options) ) {\n options = this.column.options(this);\n }\n\n options = Arr.each(options, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let prop = this.column.optionsValue;\n\n let option = Arr.find(options, (item) => {\n return Obj.get(item, prop) == value;\n });\n\n if ( ! option ) {\n return [this.column.emptyText];\n }\n\n return Obj.get(option, this.column.optionsLabel,\n this.column.undefinedText);\n },\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n let input = ! Mix.isRef(this.input) ?\n [this.input] : this.input;\n\n return (\n <div>\n <span>{ Arr.each(input, this.ctor('renderOption')) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Obj, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellImage',\n\n extends: TableCell,\n\n computed: {\n\n preview()\n {\n return Obj.get(this.item, this.column.previewProp);\n }\n\n },\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n let classList = [\n 'n-table-cell',\n 'n-table-cell--' + this.column.type\n ];\n\n let previewProps = {\n fit: 'contain',\n index: this.NDraggableItem.index,\n group: this.column.uid,\n };\n\n previewProps['onSlide'] = () => {\n this.NTable.$refs.draggable.setRawCurrent(this.NDraggableItem.index);\n };\n\n return (\n <div class={classList}>\n <NPreview file={this.preview || this.input} thumb={this.input} {...previewProps} />\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Num, Mix, Obj, Arr, Hash } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellMatrix',\n\n extends: TableCell,\n\n beforeMount()\n {\n this.firstState = Obj.get(this.column.changedStates,\n this.uid);\n },\n\n methods: {\n\n toggleMatrix()\n {\n if ( this.column.matrix === -1 ) {\n return this.toggleSelect();\n }\n\n let itemList = this.column.modelValue;\n\n if ( itemList === null ) {\n itemList = [];\n }\n\n let item = Arr.find(itemList, {\n [this.NTable.uniqueProp]: this.value[this.NTable.uniqueProp]\n });\n\n if ( ! item ) {\n item = Obj.assign({}, this.item, { [this.column.matrixProp]: 0 });\n }\n\n let currentMatrix = Mix.int(item[this.column.matrixProp]);\n\n let matrix = Arr.toggle(Num.matrix(currentMatrix),\n Mix.int(this.column.matrix));\n\n item[this.column.matrixProp] = Num.combine(matrix);\n\n Arr.replace(itemList, item, {\n [this.NTable.uniqueProp]: item[this.NTable.uniqueProp]\n });\n\n this.column.$emit('update:modelValue', itemList);\n },\n\n toggleSelect()\n {\n let itemList = this.column.modelValue;\n\n if ( itemList === null ) {\n itemList = [];\n }\n\n let fallback = Obj.assign({}, this.item, {\n [this.column.matrixProp]: this.column.matrix\n });\n\n let finder = {\n [this.NTable.uniqueProp]: this.value[this.NTable.uniqueProp],\n };\n\n let item = Arr.find(itemList, finder);\n\n if ( ! item ) {\n Arr.add(itemList, fallback);\n } else {\n Arr.remove(itemList, finder);\n }\n\n this.column.$emit('update:modelValue', itemList);\n },\n\n isChecked()\n {\n let matrix = Obj.get(this.column.matrixValues,\n this.item[this.NTable.uniqueProp]);\n\n if ( ! matrix ) {\n return false;\n }\n\n let value = Mix.int(this.column.matrix);\n\n if ( value === -1 ) {\n return true;\n }\n\n return Arr.has(matrix, value);\n },\n\n isDisabled()\n {\n if ( ! Mix.isFunction(this.column.matrixDisabled) ) {\n return this.column.matrixDisabled;\n }\n\n return this.column.matrixDisabled(this);\n }\n\n },\n\n render()\n {\n let checked = this.isChecked();\n\n if ( this.firstState === null ) {\n this.setFirstState(checked);\n }\n\n if ( ! this.init ) {\n return null;\n }\n\n let classList = [\n 'n-table-cell--checkbox'\n ];\n\n if ( this.firstState !== checked ) {\n classList.push('n-changed');\n }\n\n if ( checked ) {\n classList.push('n-checked');\n }\n\n let isDisabled = this.isDisabled();\n\n if ( this.column.allowUncheck ) {\n isDisabled = isDisabled && ! checked;\n }\n\n if ( isDisabled ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( ! isDisabled ) {\n props.onClick = this.toggleMatrix;\n }\n\n return (\n <div class={classList} {...props}>\n <i class={nano.Icons.checked}></i>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Num, Mix, Obj, Arr } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellSelect',\n\n extends: TableCell,\n\n beforeMount()\n {\n this.firstState = Obj.get(this.column.changedStates,\n this.uid);\n },\n\n methods: {\n\n toggleSelect()\n {\n let item = null;\n\n if ( ! this.isChecked() ) {\n item = Obj.assign({}, this.item);\n }\n\n this.column.$emit('update:modelValue', item);\n },\n\n isChecked()\n {\n if ( Mix.isEmpty(this.column.modelValue) ) {\n return false;\n }\n\n return Obj.get(this.column.modelValue, this.NTable.uniqueProp) ===\n this.value[this.NTable.uniqueProp];\n },\n\n isDisabled()\n {\n if ( ! Mix.isEmpty(this.column.modelValue) ) {\n return true;\n }\n\n if ( Mix.isFunction(this.column.matrixDisabled) ) {\n return this.column.matrixDisabled(this);\n }\n\n if ( ! Mix.isFunction(this.column.disabled) ) {\n return this.column.disabled;\n }\n\n return this.column.disabled(this);\n },\n\n },\n\n render()\n {\n let checked = this.isChecked();\n\n if ( this.firstState === null ) {\n this.setFirstState(checked);\n }\n\n if ( ! this.init ) {\n return null;\n }\n\n let classList = [\n 'n-table-cell--checkbox'\n ];\n\n if ( this.firstState !== checked ) {\n classList.push('n-changed');\n }\n\n if ( checked ) {\n classList.push('n-checked');\n }\n\n let isDisabled = this.isDisabled();\n\n if ( this.column.allowUncheck ) {\n isDisabled = isDisabled && ! checked;\n }\n\n if ( isDisabled ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( ! isDisabled ) {\n props.onClick = this.toggleSelect;\n }\n\n return (\n <div class={classList} {...props}>\n <i class={nano.Icons.checked}></i>\n </div>\n );\n }\n\n}\n","import {Arr, Obj, Mix, Dom, Event, Hash} from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NTable: {\n default: undefined\n }\n\n },\n\n props: {\n\n column: {\n required: true\n }\n\n },\n\n computed: {\n\n tempFilter()\n {\n return this.NTable.getColumnFilter(this.column);\n },\n\n canReset()\n {\n return ! this.NTable.getColumnFiltered(this.column);\n },\n\n canApply()\n {\n return ! Mix.isEmpty(this.filter.value);\n }\n\n },\n\n data()\n {\n return {\n filter: this.getFilterClone(), visible: false\n };\n },\n\n beforeMount()\n {\n this.mountFilter();\n },\n\n mounted()\n {\n Event.bind('NTable:reset', \n this.resetFilter, this._.uid);\n\n Dom.find(document).on('keydown', \n this.onKeydown, this._.uid);\n },\n\n beforeUnmount()\n {\n Event.unbind('NTable:reset', \n this._.uid);\n\n Dom.find(document).off('keydown', \n null, this._.uid);\n },\n\n methods: {\n\n getFilterClone()\n {\n let tempFilter = this.NTable.getColumnFilter(this.column);\n\n if ( Mix.isEmpty(tempFilter) ) {\n return null;\n }\n\n return Obj.clone(tempFilter);\n },\n\n getFilterProp()\n {\n return this.column.filterProp || \n this.column.prop;\n },\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null,\n property: this.getFilterProp(), \n };\n },\n\n mountFilter()\n {\n if ( this.filter ) {\n return this.applyFilter();\n }\n\n this.filter = this.getDefaultFilter();\n\n if ( ! this.canApply ) {\n return;\n }\n\n Arr.add(this.NTable.tempFilter, this.filter, {\n property: this.getFilterProp()\n });\n },\n\n resetFilter(uid)\n {\n if ( this.NTable.uid !== uid ) {\n return;\n }\n\n this.filter = this.getDefaultFilter();\n\n Arr.add(this.NTable.tempFilter, this.filter, {\n property: this.getFilterProp()\n });\n },\n\n onKeydown(event)\n {\n if ( ! this.visible ) {\n return;\n }\n\n if ( event.which === 13 && this.canApply ) {\n this.applyFilter();\n }\n\n if ( event.which === 13 && ! this.canApply ) {\n this.clearFilter();\n }\n\n let closeMixway = event.which === 13 &&\n this.NTable.closeFilterOnEnter;\n\n if ( closeMixway || event.which === 27 ) {\n this.$refs.popover.close();\n }\n },\n\n applyFilter()\n {\n let filter = Obj.clone(this.filter);\n\n Arr.add(this.NTable.tempFilterProps, \n this.getFilterProp());\n\n this.NTable.replaceFilter(filter, {\n property: this.getFilterProp()\n });\n },\n\n clearFilter()\n {\n let filter = this.getDefaultFilter();\n\n Arr.remove(this.NTable.tempFilterProps, \n this.getFilterProp());\n\n this.NTable.replaceFilter(filter, {\n property: this.getFilterProp()\n });\n\n this.filter = filter;\n }\n\n },\n\n renderForm()\n {\n return null;\n },\n\n renderApply()\n {\n let props = {\n type: 'primary',\n glass: true,\n size: 'xs',\n disabled: ! this.canApply\n };\n\n return (\n <NButton {...props} onClick={this.applyFilter}>\n { this.trans('Apply') }\n </NButton>\n );\n },\n\n renderReset()\n {\n let props = {\n type: 'neutral',\n glass: true,\n size: 'xs',\n disabled: this.canReset,\n };\n\n return (\n <NButton {...props} onClick={this.clearFilter}>\n { this.trans('Reset') }\n </NButton>\n );\n },\n\n renderFooter()\n {\n return (\n <div class=\"n-table-filter__footer\">\n { this.ctor('renderReset')() }\n { this.ctor('renderApply')() }\n </div>\n )\n },\n\n render()\n {\n let props = {\n class: 'n-table-filter__popover',\n trigger: 'click',\n size: 'md',\n width: 220,\n }\n\n return (\n <NPopover ref=\"popover\" vModel={this.visible} {...props}>\n {\n { default: this.ctor('renderForm'), footer: this.ctor('renderFooter') }\n }\n </NPopover>\n );\n }\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Dom, Mix, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterString',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'li',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n li: this.trans('Includes value'),\n nl: this.trans('Excludes value'),\n eq: this.trans('Equal value'),\n ne: this.trans('Except value'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NInput size=\"sm\" vModel={this.filter.value} />\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterBoolean',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'in',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n 1: this.trans(this.column.trueText),\n 0: this.trans(this.column.falseText),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.value} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\n\nexport default {\n\n name: 'NTableFilterDatetime',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'eq',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n eq: this.trans('Exact date'),\n lt: this.trans('Before date'),\n gt: this.trans('After date'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NDatepicker size=\"sm\" vModel={this.filter.value} />\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Arr, Obj, Mix, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterOption',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type,\n value: [],\n operator: 'in',\n property: this.getFilterProp(),\n };\n }\n\n },\n\n renderOption(value)\n {\n let props = {\n value: Obj.get(value, this.column.optionsValue)\n };\n\n return (\n <NCheckbox {...props}>{ Obj.get(value, this.column.optionsLabel) }</NCheckbox>\n );\n },\n\n renderForm()\n {\n let items = this.column.options;\n\n if ( Mix.isFunction(items) ) {\n items = this.column.options(this);\n }\n\n items = Arr.each(items, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let options = {\n in: this.trans('Includes value'),\n ni: this.trans('Excludes value'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NCheckboxGroup size=\"sm\" align=\"vertical\" vModel={this.filter.value}>\n { Arr.each(items, this.ctor('renderOption')) }\n </NCheckboxGroup>\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import { Str, Num, Arr, Mix } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPaginator',\n\n props: {\n\n page: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n limit: {\n default()\n {\n return 100;\n },\n type: [Number]\n },\n\n limitOptions: {\n default()\n {\n return [25, 50, 100, 500, 1000, 2500];\n },\n },\n\n total: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n maxPages: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n layout: {\n default()\n {\n return [\n 'limit', 'count', 'spacer', 'goto', 'pages'\n ]\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n pages()\n {\n return Num.ceil(this.total / this.tempLimit);\n },\n\n pageOptions()\n {\n return Arr.make(this.pages || 1, (i) => i+1);\n }\n\n },\n\n data()\n {\n return {\n tempPage: this.page, tempLimit: this.limit,\n };\n },\n\n\n methods: {\n\n forcePage(page)\n {\n if ( page !== this.tempPage ) {\n this.tempPage = page;\n }\n },\n\n updatePaginate()\n {\n let paginate = {\n page: this.tempPage, limit: this.tempLimit\n };\n\n this.$emit('paginate', paginate);\n },\n\n onPrevPage()\n {\n this.onPageInput(this.tempPage - 1);\n },\n\n onNextPage()\n {\n this.onPageInput(this.tempPage + 1);\n },\n\n onFirstPage()\n {\n this.onPageInput(1);\n },\n\n onLastPage()\n {\n this.onPageInput(this.pages);\n },\n\n onPageInput(value)\n {\n this.$emit('update:page', this.tempPage = value);\n\n this.updatePaginate();\n },\n\n onLimitInput(value)\n {\n if ( this.tempLimit !== value ) {\n this.$emit('update:page', this.tempPage = 1);\n }\n\n this.$emit('update:limit', this.tempLimit = value);\n\n this.updatePaginate();\n },\n\n },\n\n watch: {\n\n page(value)\n {\n if ( value !== this.tempPage ) {\n this.tempPage = value;\n }\n },\n\n limit(value)\n {\n if ( value !== this.tempLimit ) {\n this.tempLimit = value;\n }\n }\n\n },\n\n renderLimit()\n {\n let props = {\n modelValue: this.tempLimit,\n size: this.size,\n type: this.type,\n optionsValue: '$value.value',\n optionsLabel: '$value.label',\n };\n\n props.options = Arr.each(this.limitOptions, (limit) => {\n return {\n value: limit, label: this.choice(':count items', limit)\n };\n });\n\n props['onUpdate:modelValue'] = this.onLimitInput;\n\n return (\n <div class=\"n-paginator__limit\">\n <NSelect {...props} />\n </div>\n );\n },\n\n renderCount()\n {\n return (\n <div class=\"n-paginator__count\">\n {this.choice('No items|Total :count item|Total :count items', this.total)}\n </div>\n );\n },\n\n renderSpacer()\n {\n return (\n <div class=\"n-paginator__spacer\">\n { /* Nothing :( */}\n </div>\n );\n },\n\n renderGoto()\n {\n if ( this.pageOptions.length > 500 ) {\n // return null;\n }\n\n let props = {\n modelValue: this.tempPage,\n size: this.size,\n type: this.type,\n undefinedText: '?',\n lazy: true,\n options: this.pageOptions,\n optionsValue: '$value',\n optionsLabel: '$value',\n };\n\n props['onUpdate:modelValue'] = this.onPageInput;\n\n return (\n <div class=\"n-paginator__goto\" key={'paginate' + this.pageOptions.length}>\n <NSelect {...props} />\n </div>\n );\n },\n\n renderPrev()\n {\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleLeft,\n onClick: this.onPrevPage\n };\n\n if ( this.tempPage - 1 < 1 ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderNext()\n {\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleRight,\n onClick: this.onNextPage\n };\n\n if ( this.tempPage + 1 > this.pages ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderFirst()\n {\n if ( this.pages < this.maxPages ) {\n return null;\n }\n\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleDoubleLeft,\n onClick: this.onFirstPage\n };\n\n if ( this.tempPage - 1 < 1 ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderLast()\n {\n if ( this.pages < this.maxPages ) {\n return null;\n }\n\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleDoubleRight,\n onClick: this.onLastPage\n };\n\n if ( this.tempPage + 1 > this.pages ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderPage(index)\n {\n let page = this.tempPage;\n\n let pages = Math.abs(this.maxPages / 2);\n\n if ( page < pages ) {\n page = pages;\n }\n\n let global = Array(this.pages).length;\n\n if ( page > global - pages ) {\n page = global - pages;\n }\n\n let current = Num.int(index);\n\n if ( current < page - pages ) {\n return null;\n }\n\n if ( current > Math.max(1, page + pages) ) {\n return null;\n }\n\n let props = {\n type: this.type,\n size: this.size,\n };\n\n if ( current === this.tempPage ) {\n props.disabled = true;\n }\n\n props.onClick = () => {\n this.onPageInput(current);\n };\n\n return (\n <NButton {...props}>{current}</NButton>\n );\n },\n\n renderPages()\n {\n let pages = Arr.each(this.pageOptions, (index) => {\n return this.ctor('renderPage')(index);\n });\n\n return (\n <div class=\"n-paginator__pages\">\n {this.ctor('renderFirst')()}\n {this.ctor('renderPrev')()}\n {...pages}\n {this.ctor('renderNext')()}\n {this.ctor('renderLast')()}\n </div>\n );\n },\n\n renderSlot(view)\n {\n let renderFunction = this.ctor('render' +\n Str.ucfirst(view));\n\n if ( Mix.isFunction(renderFunction) ) {\n return renderFunction();\n }\n\n return this.$slots[view] && this.$slots[view]();\n },\n\n render()\n {\n let className = [\n 'n-paginator',\n 'n-paginator--' + this.size,\n 'n-paginator--' + this.type\n ];\n\n return <div class={className}>\n {\n Arr.each(this.layout, (view) => {\n return this.ctor('renderSlot')(view);\n })\n }\n </div>;\n }\n}\n","import { Arr, Mix, Obj, Event, Hash, Run } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInfo',\n\n model: {\n prop: 'item'\n },\n\n props: {\n\n item: {\n default()\n {\n return null;\n }\n },\n\n syncEvent: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid(),\n elements: [],\n options: [],\n tempValue: this.item,\n };\n },\n\n watch: {\n\n item(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.bindSyncEvent();\n },\n\n beforeUnmount()\n {\n this.unbindSyncEvent();\n },\n\n updated()\n {\n Run.delay(() => {\n if ( this.$refs.scrollbar ) {\n // this.$refs.scrollbar.adaptHeight();\n }\n }, 500);\n },\n\n methods: {\n\n bindSyncEvent()\n {\n if ( !this.syncEvent ) {\n return;\n }\n\n this.options = this.syncEvent;\n\n if ( Mix.isFunction(this.options) ) {\n this.options = this.options(this);\n }\n\n let syncFunction = (value, uid = null) => {\n if ( uid === this.options[1] ) {\n this.setValue(value);\n }\n };\n\n Event.bind(this.options[0], syncFunction,\n this.uid);\n },\n\n unbindSyncEvent()\n {\n Event.unbind(this.options[0], this.uid);\n },\n\n setValue(value)\n {\n this.$emit('update:modelValue',\n this.tempValue = value);\n },\n\n addColumn(column)\n {\n Arr.add(this.elements,\n column, { uid: column.uid });\n },\n\n removeColumn(column)\n {\n Arr.remove(this.elements,\n { uid: column.uid });\n },\n\n },\n\n provide()\n {\n return {\n NInfo: this\n };\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={!this.showEmptyIcon} class=\"n-info__empty\">\n {this.$slots.empty && this.$slots.empty() || this.trans('No entry')}\n </NEmptyIcon>\n );\n },\n\n renderBody()\n {\n if ( Mix.isEmpty(this.tempValue) ) {\n return this.ctor('renderEmpty')();\n }\n\n let elements = Obj.each(this.elements, (column) => {\n return (\n <div class=\"n-info__column\">\n {column.ctor('renderLabel')({ item: this.tempValue })}\n {column.ctor('renderBody')({ item: this.tempValue })}\n </div>\n );\n });\n\n return (\n <div class=\"n-info__body\">\n {Mix.vals(elements)}\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-info',\n 'n-info--' + this.type,\n 'n-info--' + this.size,\n ];\n\n let infoHtml = (\n <NScrollbar ref=\"scrollbar\" relative={this.relative}>\n {this.ctor('renderBody')()}\n </NScrollbar>\n );\n\n return (\n <div class={classList}>\n {[infoHtml, this.$slots.default()]}\n </div>\n );\n }\n}\n","import { Hash, Obj, Locale, Str } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NInfoColumn',\n\n inject: {\n\n NInfo: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n prop: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'string';\n },\n type: [String]\n },\n\n previewProp: {\n default()\n {\n return 'preview';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Object, Array, Function]\n },\n\n optionsValue: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n emptyText: {\n default()\n {\n return Locale.trans('-');\n },\n type: [String]\n },\n\n trueText: {\n default()\n {\n return Locale.trans('Yes');\n },\n type: [String]\n },\n\n falseText: {\n default()\n {\n return Locale.trans('No');\n },\n type: [String]\n },\n\n datetimeFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm');\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid()\n };\n },\n\n beforeMount()\n {\n this.NInfo.addColumn(this);\n },\n\n beforeUnmount()\n {\n this.NInfo.removeColumn(this);\n },\n\n renderLabel()\n {\n if ( this.$slots.label ) {\n return this.$slots.label();\n }\n \n return (\n <div class=\"n-info-column\">\n <span>{this.label}</span>\n </div>\n );\n },\n\n renderBody(props)\n {\n let passed = Obj.except(props, [], {\n column: this\n });\n\n let component = resolveComponent('NInfoField' + \n Str.ucfirst(this.type));\n\n if ( ! component ) {\n return null;\n }\n\n passed.class = [\n 'n-info-field',\n 'n-info-field--' + this.type\n ];\n\n return h(component, passed);\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NInfo: {\n default: undefined\n }\n\n },\n\n props: {\n\n column: {\n required: true\n },\n\n item: {\n required: true\n },\n\n },\n\n computed: {\n\n input()\n {\n return Obj.get(this.item, this.column.prop);\n }\n\n },\n\n render()\n {\n return (\n <div>\n <span>{ this.input }</span>\n </div>\n );\n }\n\n}\n","import { Str } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldString',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Str.string(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Str } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldBoolean',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Str.boolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import { Str } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldDatetime',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Str.datetime(this.input, this.column.datetimeFormat, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Mix } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldOption',\n\n extends: InfoField,\n\n renderOption(value)\n {\n let options = this.column.options;\n\n if ( Mix.isFunction(options) ) {\n options = this.column.options(this);\n }\n\n let prop = this.column.optionsValue;\n\n options = Arr.each(options, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let option = Arr.find(options, (item) => {\n return Obj.get(item, prop) == value;\n });\n\n if ( ! option ) {\n return [this.column.emptyText];\n }\n\n return Obj.get(option, this.column.optionsLabel,\n this.column.undefinedText);\n },\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n let input = ! Mix.isRef(this.input) ?\n [this.input] : this.input;\n\n return (\n <div>\n <span>{ Arr.each(input, this.ctor('renderOption')) }</span>\n </div>\n );\n }\n\n}\n","import InfoField from \"../info-field.jsx\";\nimport { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInfoFieldImage',\n\n extends: InfoField,\n\n computed: {\n\n preview()\n {\n return Obj.get(this.item, this.column.previewProp);\n }\n\n },\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n let props = {\n fit: 'contain',\n };\n\n return (\n <div>\n <NPreview file={this.preview || this.input} thumb={this.input} {...props} />\n </div>\n );\n }\n\n}\n","import { Hash, Obj, Arr, Mix, Event, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreview',\n\n props: {\n\n file: {\n default()\n {\n return null;\n }\n },\n\n thumb: {\n default()\n {\n return null;\n }\n },\n\n title: {\n default()\n {\n return null;\n },\n type: [String]\n },\n\n index: {\n default()\n {\n return 0;\n },\n type: [Number, String]\n },\n\n group: {\n default()\n {\n return Hash.uuid();\n },\n type: [String]\n },\n\n fit: {\n default()\n {\n return 'cover';\n },\n type: [String]\n },\n\n mime: {\n default()\n {\n return null;\n },\n type: [String]\n },\n\n preview: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showSrc: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n buttonText: {\n default()\n {\n return Locale.trans('Download file');\n },\n type: [String]\n },\n\n renderButton: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n tempFile()\n {\n return this.file || this.thumb;\n },\n\n tempThumb()\n {\n return this.thumb || this.file;\n },\n\n },\n\n provide()\n {\n return { NPreview: this };\n },\n\n methods: {\n\n openBox()\n {\n this.$refs.modal.openBox();\n },\n\n closeBox()\n {\n this.$refs.modal.closeBox();\n },\n\n },\n\n renderTitle()\n {\n if ( Mix.isEmpty(this.title) ) {\n return null;\n }\n\n return (\n <div class=\"n-preview__title\">\n <span>{this.title}</span>\n </div>\n );\n },\n\n renderPreview()\n {\n if ( ! this.preview ) {\n return this.ctor('renderFull')();\n }\n\n let type = this.PreviewHelper.getType(this.tempThumb);\n\n if ( type === 'image' ) {\n return (<NPreviewImage src={this.tempThumb} />);\n }\n\n let props = {\n showSrc: false, renderButton: false,\n };\n\n return (<NPreviewPlain src={this.tempThumb} {...props} />);\n },\n\n renderFull()\n {\n let type = this.PreviewHelper.getType(this.tempFile);\n\n if ( type === 'image' ) {\n return (<NPreviewImage src={this.tempFile} />);\n }\n\n if ( type === 'video' ) {\n return (<NPreviewVideo src={this.tempFile} />);\n }\n\n let props = {\n showSrc: this.showSrc, buttonText: this.buttonText, renderButton: this.renderButton\n };\n\n return (<NPreviewPlain src={this.tempFile} {...props} />);\n },\n\n renderModal()\n {\n if ( ! this.preview ) {\n return null;\n }\n\n let modalProps = {\n index: this.index, group: this.group, file: this.tempFile\n };\n\n return (\n <NPreviewModal ref=\"modal\" {...modalProps} />\n );\n },\n\n render()\n {\n let classList = [\n 'n-preview',\n 'n-preview--' + this.fit\n ];\n\n if ( this.preview ) {\n classList.push('n-clickable');\n }\n\n let type = this.PreviewHelper.getType(this.tempFile);\n\n if ( type ) {\n classList.push('n-mime-' + type);\n }\n\n let thumb = this.PreviewHelper.getType(this.tempThumb);\n\n if ( thumb ) {\n classList.push('n-mime-preview-' + thumb);\n }\n\n let props = {};\n\n if ( this.preview ) {\n props.onClick = () => this.openBox();\n }\n\n let key = btoa(this.tempThumb);\n\n return (\n <div key={key} class={classList} {...props}>\n { [this.ctor('renderPreview')(), this.ctor('renderTitle')(), this.ctor('renderModal')()] }\n </div>\n );\n }\n\n}","import { Mix, Obj, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewPlain',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n showSrc: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n buttonText: {\n default()\n {\n return Locale.trans('Download file');\n },\n type: [String]\n },\n\n renderButton: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n file() {\n return Obj.get(this.src, 'name', this.src);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-preview-plain'\n ];\n\n let slots = [];\n\n slots[0] = (\n <li>{ this.PreviewHelper.getMime(this.file) }</li>\n );\n\n if ( this.showSrc ) {\n slots.push(<li class=\"np-file\">{ this.file }</li>);\n }\n\n let buttonProps = {\n nativeType: 'a', href: this.file, target: '_blank'\n };\n\n let buttonHtml = (\n <li class=\"np-button\">\n <NButton {...buttonProps}>{ this.buttonText }</NButton>\n </li>\n );\n\n if ( this.renderButton ) {\n slots.push(buttonHtml);\n }\n\n return (\n <div class={classList}>\n <ul>{ slots }</ul>\n </div>\n );\n }\n\n}","import { Obj, Arr, Run, Mix, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewImage',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n },\n\n data()\n {\n return {\n load: false, tempSrc: null\n };\n },\n\n beforeMount()\n {\n if ( ! window.ImageCache ) {\n window.ImageCache = [];\n }\n\n\n if ( ! Arr.has(window.ImageCache, this.src) ) {\n this.tempSrc = this.src;\n }\n\n },\n\n mounted()\n {\n this.resolveLoad();\n },\n\n watch: {\n\n 'src': function () {\n this.resolveLoad();\n }\n\n },\n\n methods: {\n\n resolveLoad()\n {\n if ( Arr.has(window.ImageCache, this.src) ) {\n return;\n }\n\n this.tempSrc = null;\n\n if ( Mix.isRef(this.src) ) {\n return this.resolveData();\n }\n\n Dom.find(this.$refs.image).loaded(() => {\n\n /**\n * Add image to cache\n */\n Arr.add(window.ImageCache, this.src);\n\n /**\n * Mark image as loaded\n */\n Run.delay(() => this.load = false, 200);\n });\n\n this.laod = true;\n },\n\n resolveData()\n {\n let reader = new FileReader();\n\n reader.onload = () => {\n this.tempSrc = reader.result;\n };\n\n reader.readAsDataURL(this.src);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-preview-image'\n ];\n\n if ( Arr.has(window.ImageCache, this.src) ) {\n classList.push('n-cached');\n }\n\n if ( ! this.load ) {\n classList.push('n-ready');\n }\n\n return (\n <div class={classList}>\n <img ref=\"image\" src={this.tempSrc || this.src} />\n </div>\n );\n }\n\n}","import { Obj, Arr, Str, Mix, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewVideo',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n },\n\n data()\n {\n return {\n provider: 'plain', unique: null, tempSrc: null\n };\n },\n\n mounted()\n {\n this.resolveType();\n },\n\n watch: {\n\n 'src': function () {\n this.resolveType();\n }\n\n },\n\n methods: {\n\n resolveType()\n {\n this.tempSrc = null;\n\n if ( this.resolveYoutube() ) {\n return;\n }\n\n if ( this.resolveVimeo() ) {\n return;\n }\n\n if ( Mix.isRef(this.src) ) {\n this.resolveData();\n }\n\n this.provider = 'plain';\n },\n\n resolveData()\n {\n console.log('Coming at some point (blob stream)....');\n },\n\n resolveYoutube()\n {\n let youtube = this.PreviewHelper.getYoutubeKey(this.src);\n\n if ( ! youtube ) {\n return false;\n }\n\n this.provider = 'youtube';\n\n this.$emit('resolve:youtube', this.unique = youtube);\n\n return true;\n },\n\n resolveVimeo()\n {\n let vimeo = this.PreviewHelper.getVimeoKey(this.src);\n\n if ( ! vimeo ) {\n return false;\n }\n\n this.provider = 'vimeo';\n\n this.$emit('resolve:vimeo', this.unique = vimeo);\n\n return true;\n }\n\n },\n\n renderYoutube()\n {\n let props = {\n src: `https://www.youtube.com/embed/${this.unique}`\n };\n\n return (\n <iframe {...props}></iframe>\n );\n },\n\n renderVimeo()\n {\n let props = {\n src: `https://player.vimeo.com/video/${this.unique}`\n };\n\n return (\n <iframe {...props}></iframe>\n );\n },\n\n renderPlain()\n {\n let src = Obj.get(this.src, 'name', this.src);\n\n return (\n <video width=\"320\" height=\"240\" controls>\n <source src={this.tempSrc || this.src} type={this.PreviewHelper.getMime(src)} />\n </video>\n );\n },\n\n render()\n {\n let classList = [\n 'n-preview-video'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('render' + Str.ucfirst(this.provider))() }\n </div>\n );\n }\n\n}","import { Mix, Event, Obj, Hash } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewModal',\n\n inject: {\n\n NPreview: {\n default: undefined\n }\n\n },\n\n props: {\n\n file: {\n default()\n {\n return null;\n }\n },\n\n index: {\n default()\n {\n return 0;\n },\n type: [Number, String]\n },\n\n group: {\n default()\n {\n return Hash.uuid();\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return { uid: Hash.uuid(), visible: false };\n },\n\n computed: {\n\n tempFile() {\n return Obj.get(this.file, 'name', this.file);\n }\n\n },\n\n watch: {\n\n visible: function (value) {\n if ( value ) {\n this.NPreview.$emit('slide');\n }\n }\n\n },\n\n mounted()\n {\n this.PreviewHandler.create()\n .append(this.$el);\n\n this.PreviewHandler.append(this);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n\n this.PreviewHandler.remove(this);\n },\n\n methods: {\n\n openBox()\n {\n this.PreviewHandler.open(this);\n },\n\n closeBox()\n {\n this.PreviewHandler.close();\n }\n\n },\n\n renderFull()\n {\n let classList = [\n 'n-preview-frame'\n ];\n\n let mime = this.PreviewHelper.getType(this.tempFile);\n\n if ( mime === 'image' ) {\n return (<NPreviewImage class={classList} src={this.file} />);\n }\n\n if ( mime === 'video' ) {\n return (<NPreviewVideo class={classList} src={this.file} />);\n }\n\n let props = {\n showSrc: this.NPreview ? this.NPreview.showSrc : false,\n };\n\n return (<NPreviewPlain class={classList} src={this.file} {...props} />);\n },\n\n render()\n {\n if ( ! this.visible ) {\n return null;\n }\n\n return this.ctor('renderFull')();\n },\n\n}","import { Mix, Arr, Dom, Obj } from \"@kizmann/pico-js\";\n\nexport class PreviewHelper\n{\n static alias = 'PreviewHelper';\n\n static getExt(source, fallback = 'plain')\n {\n let match = source.match(/\\.([^.?]+)(\\?.*?)?$/);\n\n if ( ! match ) {\n return fallback;\n }\n\n if ( Mix.isEmpty(match[1]) ) {\n return fallback;\n }\n\n return match[1];\n }\n\n static getType(source, fallback = 'text')\n {\n let file = Obj.get(source, 'name', source);\n\n if ( Mix.isEmpty(file) ) {\n return fallback;\n }\n\n let extension = PreviewHelper.getExt(file);\n\n if ( PreviewHelper.getYoutubeKey(file) ) {\n return 'video';\n }\n\n if ( PreviewHelper.getVimeoKey(file) ) {\n return 'video';\n }\n\n Obj.each(window.PreviewMimes, (exts, key) => {\n if ( Arr.has(exts, extension) ) fallback = key;\n });\n\n return fallback;\n }\n\n static getMime(source, fallback = 'text/plain')\n {\n let file = Obj.get(source, 'name', source);\n\n if ( Mix.isEmpty(file) ) {\n return fallback;\n }\n\n if ( PreviewHelper.getYoutubeKey(source) ) {\n return 'video/youtube';\n }\n\n if ( PreviewHelper.getVimeoKey(source) ) {\n return 'video/vimeo';\n }\n\n return PreviewHelper.getType(file) + '/' + PreviewHelper.getExt(file);\n }\n\n static getVimeoKey(source, fallback = null)\n {\n if ( ! Mix.isString(source) ) {\n return fallback;\n }\n\n let host = source.match(/^https?:\\/\\/(www\\.|player\\.)?vimeo\\.com/);\n\n if ( ! host ) {\n return fallback;\n }\n\n let path = source.match(/(\\/[0-9]+)(&|$)/);\n\n if ( path && path.length === 3 ) {\n return path[0].replace(/(^\\/|&$)/, '');\n }\n\n return fallback;\n }\n\n static getYoutubeKey(source, fallback)\n {\n if ( ! Mix.isString(source) ) {\n return fallback;\n }\n\n let host = source.match(/^https?:\\/\\/(www\\.)?(youtube\\.com|youtu\\.be)/);\n\n if ( ! host ) {\n return fallback;\n }\n\n let id = source.match(/(\\?v=.*?)(?=&|$)/);\n\n if ( id && id.length === 2 ) {\n return id[0].replace(/^\\?v=/, '');\n }\n\n let path = source.match(/(\\.be\\/.*?)(?=\\?|$)/);\n\n if ( path && path.length === 2 ) {\n return path[0].replace(/^\\.be\\//, '');\n }\n\n let frame = source.match(/(\\/embed\\/)(.*?$)/);\n\n if ( frame && frame.length === 3 ) {\n return frame[0].replace(/^\\/embed\\//, '');\n }\n\n return fallback;\n }\n\n}\n\nif ( ! window[PreviewHelper.alias] ) {\n window[PreviewHelper.alias] = PreviewHelper;\n}\n\nexport default PreviewHelper;","import { Mix, Arr, Obj, Dom } from \"@kizmann/pico-js\";\n\nwindow.PreviewGroups = {};\n\nexport class PreviewHandler\n{\n static alias = 'PreviewHandler';\n\n static current = null;\n\n static append(item)\n {\n if ( !window.PreviewGroups[item.group] ) {\n window.PreviewGroups[item.group] = {};\n }\n\n window.PreviewGroups[item.group][item.uid] = item;\n }\n\n static remove(item)\n {\n delete window.PreviewGroups[item.group][item.uid];\n }\n\n static get(group)\n {\n if ( !window.PreviewGroups[group] ) {\n window.PreviewGroups[group] = {};\n }\n\n return Arr.sort(window.PreviewGroups[group], 'index');\n }\n\n static next()\n {\n if ( ! Mix.isRef(this.current) ) {\n return null;\n }\n\n let items = this.get(this.current.group);\n\n let index = Arr.findIndex(items, {\n uid: this.current.uid\n });\n\n let next = Arr.first(items);\n\n if ( items.length > index + 1 ) {\n next = Arr.get(items, index + 1);\n }\n\n return this.switch(next);\n }\n\n static prev()\n {\n if ( ! Mix.isRef(this.current) ) {\n return null;\n }\n\n let items = this.get(this.current.group);\n\n let index = Arr.findIndex(items, {\n uid: this.current.uid\n });\n\n let prev = Arr.last(items);\n\n if ( 0 <= index - 1 ) {\n prev = Arr.get(items, index - 1);\n }\n\n return this.switch(prev);\n }\n\n static create()\n {\n let el = Dom.find('.n-preview-modal');\n\n if ( el.length() ) {\n return el;\n }\n\n let classList = [\n 'n-preview-modal',\n 'n-preview-modal--md',\n 'n-preview-modal--primary',\n 'n-theme--dark'\n ];\n\n el = Dom.make('div', {\n classList: classList.join(' ')\n });\n\n el.attr('data-preview', 'nano');\n\n let close = Dom.make('div', {\n classList: 'n-preview-modal__close',\n innerHTML: `<i class=\"${nano.Icons.times}\"></i>`\n });\n\n close.on('click', () => {\n this.close()\n });\n\n close.appendTo(el);\n\n let prev = Dom.make('div', {\n classList: 'n-preview-modal__prev',\n innerHTML: `<i class=\"${nano.Icons.angleLeft}\"></i>`\n });\n\n prev.on('click', () => {\n this.prev()\n });\n\n prev.appendTo(el);\n\n let next = Dom.make('div', {\n classList: 'n-preview-modal__next',\n innerHTML: `<i class=\"${nano.Icons.angleRight}\"></i>`\n });\n\n next.on('click', () => {\n this.next()\n });\n\n next.appendTo(el);\n\n el.appendTo(document.body);\n\n return el;\n }\n\n static open(item)\n {\n let el = this.create();\n\n let keydownFn = (e) => {\n\n if ( e.keyCode === 27 ) {\n e.stopPropagation();\n return this.close();\n }\n\n if ( e.keyCode === 37 ) {\n e.stopPropagation();\n return this.prev();\n }\n\n if ( e.keyCode === 39 ) {\n e.stopPropagation();\n return this.next();\n }\n\n }\n\n Dom.find(window).on('keydown', keydownFn, {\n uid: 'n-preview-modal'\n });\n\n this.switch(item);\n\n if ( this.get(item.group).length > 1 ) {\n el.addClass('n-multi');\n }\n\n el.addClass('n-ready');\n }\n\n static close()\n {\n let el = this.create();\n\n Dom.find(window).off('keydown', null, {\n uid: 'n-preview-modal'\n });\n\n this.switch(null);\n\n el.remClass(['n-ready', 'n-multi']);\n }\n\n static switch(item)\n {\n if ( Mix.isRef(this.current) ) {\n Obj.set(this.current, 'visible', false);\n }\n\n this.current = item;\n\n if ( Mix.isRef(this.current) ) {\n Obj.set(this.current, 'visible', true);\n }\n\n return item;\n }\n\n}\n\nif ( ! window.PreviewHandler ) {\n window.PreviewHandler = PreviewHandler;\n}\n\nexport default PreviewHandler;","import Preview from \"./src/preview/preview.jsx\";\nimport PreviewPlain from \"./src/preview-plain/preview-plain.jsx\";\nimport PreviewImage from \"./src/preview-image/preview-image.jsx\";\nimport PreviewVideo from \"./src/preview-video/preview-video.jsx\";\nimport PreviewModal from \"./src/preview-modal/preview-modal.jsx\";\n\nimport PreviewHelper from \"./src/preview/preview-helper.mjs\";\nimport PreviewHandler from \"./src/preview/preview-handler.mjs\";\n\nwindow.DefaultPreviewMimes = {\n image: [\n 'jpg', 'jpeg', 'gif', 'svg', 'png', 'bmp'\n ],\n video: [\n 'mp4', 'webm', 'mov'\n ],\n audio: [\n 'mp3', 'aac',\n ],\n font: [\n 'woff', 'ttf', 'otf'\n ],\n text: [\n 'csv', 'txt', 'html'\n ],\n application: [\n 'pdf', 'doc', 'xls'\n ]\n};\n\nexport default function (App) {\n\n if ( ! window.PreviewMimes ) {\n window.PreviewMimes = pi.Obj.assign(window.DefaultPreviewMimes, window.PreviewMimes);\n }\n\n let directives = [\n PreviewHelper, PreviewHandler\n ];\n\n pi.Arr.each(directives, (glob) => {\n App.config.globalProperties[glob.alias] = glob;\n });\n\n let components = [\n Preview, PreviewModal, PreviewPlain, PreviewImage, PreviewVideo\n ];\n\n pi.Arr.each(components, (comp) => {\n App.component(comp.name, comp);\n });\n\n}\n\n","import { Arr, Map, Run } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NMap',\n\n props: {\n\n lat: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n lng: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n zoom: {\n default()\n {\n return 15;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NMap: this\n };\n },\n\n data()\n {\n return { init: false, callbacks: [], tempMap: null };\n },\n\n watch: {\n\n lat()\n {\n Run.delay(() => this.tempMap.focusMarkers(), 100);\n },\n\n lng()\n {\n Run.delay(() => this.tempMap.focusMarkers(), 100);\n }\n\n },\n\n mounted()\n {\n this.tempMap = new Map(this.$el, {\n lat: this.lat, lng: this.lng, zoom: this.zoom\n });\n\n this.init = true;\n\n Arr.each(this.callbacks, (callback) => callback())\n },\n\n methods: {\n\n getMap()\n {\n return this.tempMap;\n },\n\n onMount(callback)\n {\n this.init ? callback() : this.callbacks.push(callback);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-map'\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { Hash, Obj, Num, Mix, Run } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NMapMarker',\n\n inject: {\n\n NMap: {\n default: undefined\n }\n\n },\n\n props: {\n\n lat: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n lng: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n drag: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n options: {\n default()\n {\n return { style: 'default' };\n },\n type: [Object]\n },\n\n },\n\n data()\n {\n return {\n id: Hash.uuid(), tempMarker: null\n };\n },\n\n methods: {\n\n importMarkerPosition()\n {\n this.tempMarker.marker.setPosition({\n lat: this.lat, lng: this.lng\n });\n },\n\n updateMarkerPosition()\n {\n this.$emit('update:lat', this.tempMarker.marker.getPosition().lat());\n this.$emit('update:lng', this.tempMarker.marker.getPosition().lng());\n },\n\n initializeMarker()\n {\n let options = Obj.assign({\n lat: Num.float(this.lat), lng: Num.float(this.lng), draggable: this.drag\n }, this.options);\n\n if ( ! Mix.isEmpty(this.$slots.default) ) {\n options.html = this.$el.innerHTML;\n }\n\n this.tempMarker = this.NMap.getMap().createMarker(this.id, options);\n\n this.tempMarker.marker.addListener('position_changed',\n Run.debounce(this.updateMarkerPosition));\n\n this.tempMarker.marker.addListener('dragstart',\n () => this.$emit('dragstart', this.tempMarker));\n\n this.tempMarker.marker.addListener('dragend',\n () => this.$emit('dragend', this.tempMarker));\n\n this.tempMarker.marker.addListener('mouseover',\n () => this.$emit('mouseenter', this.tempMarker));\n\n this.tempMarker.marker.addListener('mouseout',\n () => this.$emit('mouseleave', this.tempMarker));\n },\n\n setMarkerByAddress(address)\n {\n let successClosure = () => {\n this.NMap.getMap().focusMarkers(null, this.NMap.zoom);\n };\n\n let errorClosure = () => {\n this.Notify(this.trans('Address not found.'), 'danger');\n };\n\n this.NMap.getMap().setMarkerByAddress(this.id, address)\n .then(successClosure, errorClosure);\n }\n\n },\n\n watch: {\n\n lat()\n {\n this.importMarkerPosition();\n },\n\n lng()\n {\n this.importMarkerPosition();\n }\n\n },\n\n beforeMount()\n {\n this.NMap.onMount(this.initializeMarker);\n },\n\n render()\n {\n return (\n <div style=\"display: none;\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Mix, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFile',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n multiple: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n glass: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n clearable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n clearableIcon: {\n default()\n {\n return nano.Icons.times;\n },\n type: [String]\n },\n\n buttonText: {\n default()\n {\n return Locale.trans('Select file');\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n },\n\n tempValue()\n {\n if ( Mix.isEmpty(this.tempValue) ) {\n this.$refs.input.value = null;\n }\n }\n\n },\n\n methods: {\n\n openContext()\n {\n this.$refs.input.click();\n },\n\n updateFile()\n {\n let tempValue = [\n ...this.$refs.input.files\n ];\n\n if ( ! this.multiple ) {\n tempValue = tempValue[0];\n }\n\n this.$emit('update:modelValue', this.tempValue = tempValue);\n },\n\n clearFile()\n {\n this.$emit('update:modelValue', null);\n }\n\n },\n\n renderInput()\n {\n let props = {\n size: this.size,\n disabled: true,\n iconDisabled: false,\n };\n\n props['onIconClick'] = this.clearFile;\n\n if ( ! this.multiple ) {\n props.modelValue = Obj.get(this.tempValue, 'name');\n }\n\n if ( this.multiple ) {\n props.modelValue = Locale.choice(':count File|:count Files',\n this.tempValue.length);\n }\n\n if ( this.clearable && !Mix.isEmpty(this.tempValue) ) {\n props.icon = this.clearableIcon;\n }\n\n return (\n <NInput {...props}>\n { /* Input field for text */ }\n </NInput>\n );\n },\n\n renderButton()\n {\n let props = {\n size: this.size,\n disabled: this.disabled,\n icon: this.icon,\n glass: this.glass,\n onClick: this.openContext\n };\n\n return (\n <NButton {...props}>{this.buttonText}</NButton>\n );\n },\n\n renderHidden()\n {\n let props = {\n 'onInput': this.updateFile\n };\n\n return (\n <div class=\"n-file__input\">\n <input ref=\"input\" type=\"file\" multiple={this.multiple} {...props}></input>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-file'\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderInput')() }\n { this.ctor('renderButton')() }\n { this.ctor('renderHidden')() }\n </div>\n )\n }\n\n}\n","import { Str, Num, Arr, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRating',\n\n props: {\n\n modelValue: {\n default()\n {\n return 0;\n },\n type: [Number, String]\n },\n\n steps: {\n default()\n {\n return 0.5;\n },\n type: [Number]\n },\n\n fixed: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n choice: {\n default()\n {\n return ':count';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n virtualValue()\n {\n return Num.fixed(1 / this.max * this.modelValue * 5, this.fixed);\n },\n\n },\n\n renderStars()\n {\n let stars = [\n 1, 2, 3, 4, 5\n ];\n\n return Arr.each (stars, (rate) => {\n\n let className = 'is-null';\n\n if ( this.virtualValue >= rate - 0.5 ) {\n className = 'is-half';\n }\n\n if ( this.virtualValue >= rate ) {\n className = 'is-full';\n }\n\n return (\n <span class={className}></span>\n );\n });\n },\n\n renderValue()\n {\n let vars = {\n value: Str.number(this.modelValue, this.fixed)\n };\n\n if ( this.$slots.default ) {\n return this.$slots.default(vars);\n }\n\n return Locale.choice(this.choice, this.modelValue, vars);\n },\n\n render()\n {\n let classList = [\n 'n-rating',\n 'n-rating--' + this.size,\n 'n-rating--' + this.type\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-rating__stars\">\n {this.ctor('renderStars')()}\n </div>\n <div class=\"n-rating__value\">\n {this.ctor('renderValue')()}\n </div>\n </div>\n );\n }\n\n}\n","import { Run, Arr, Obj, Mix, Dom, Locale } from \"@kizmann/pico-js\";\n\nwindow.NDrawerStack = [];\n\nexport default {\n\n name: 'NDrawer',\n\n inject: {\n\n NDrawer: {\n default: undefined\n },\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n width: {\n default()\n {\n return '30%';\n },\n type: [String]\n },\n\n title: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n theme: {\n default()\n {\n return 'auto';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'right';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n tempValue()\n {\n this.startRefreshTimeout();\n }\n\n },\n\n provide()\n {\n return {\n NDrawer: this\n };\n },\n\n data()\n {\n return {\n target: null, tempValue: false\n };\n },\n\n mounted()\n {\n this.target = Dom.find(this.selector || this.$el)\n .prev().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).on('keydown',\n this.eventKeydown, this._.uid);\n\n let showDrawer = () => {\n this.tempValue = true;\n };\n\n if ( this.modelValue ) {\n Run.delay(showDrawer, 100);\n }\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n\n Dom.find(document.body).off('keydown',\n null, this._.uid);\n },\n\n methods: {\n\n openModal(force = false, source = null)\n {\n if ( this.tempValue ) {\n return;\n }\n\n if ( this.closable || force ) {\n this.tempValue = true;\n }\n\n this.$emit('update:modelValue', true, source);\n },\n\n closeDrawer(force = false, source = null)\n {\n if ( ! this.tempValue ) {\n return;\n }\n\n if ( ! this.update ) {\n return this.$emit('close', source);\n }\n\n if ( this.closable || force ) {\n this.tempValue = false;\n }\n\n this.$emit('update:modelValue', false, source);\n },\n\n stopRefreshTimeout()\n {\n clearTimeout(this.refresh);\n\n Dom.find(this.$el).remClass('n-ready');\n },\n\n startRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n window.zIndex += 1;\n\n Dom.find(this.$el).attr('data-drawer',\n window.zIndex);\n\n Dom.find(this.$el).style({\n 'z-index': window.zIndex\n });\n\n this.queueRefreshTimeout();\n },\n\n queueRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n this.refresh = setTimeout(() => {\n Dom.find(this.$el).addClass('n-ready');\n }, 100);\n },\n\n eventClick(event, el)\n {\n if ( this.disabled || event.which !== 1 ) {\n return;\n }\n\n let result = !! Dom.find(el).closest(this.target);\n\n if ( ! result && ! this.tempValue ) {\n return;\n }\n\n if ( this.tempValue && this.closable ) {\n result = ! Dom.find(el).closest(this.$refs.backdrop);\n }\n\n if ( result === this.tempValue ) {\n return;\n }\n\n if ( ! result ) {\n return this.closeDrawer(false, 'escape');\n }\n\n if ( this.listen ) {\n this.openModal(true, 'selector');\n }\n },\n\n eventKeydown(event, el)\n {\n if ( ! this.tempValue || event.which !== 27 ) {\n return;\n }\n\n let extractIndex = (modal) => {\n return Dom.find(modal).attr('data-drawer');\n };\n\n let indexes = Dom.find('.n-drawer:not(.n-hidden)')\n .each(extractIndex);\n\n let index = Dom.find(this.$el).attr('data-drawer');\n\n if ( Arr.last(indexes.sort()) !== index ) {\n return;\n }\n\n this.closeDrawer(false, 'escape');\n },\n\n },\n\n renderClose()\n {\n if ( ! this.renderClose || ! this.closable ) {\n return null;\n }\n\n let props = {\n onClick: () => this.closeDrawer(false, 'escape')\n };\n\n return (\n <div class=\"n-drawer__close\" {...props}>\n <span class={nano.Icons.times}></span>\n </div>\n );\n },\n\n renderHeader()\n {\n if ( ! this.$slots.header && ! this.title ) {\n return null;\n }\n\n return (\n <div class=\"n-drawer__header\">\n { [this.$slots.header && this.$slots.header({ closeDrawer: this.closeDrawer }) || this.title, this.ctor('renderClose')()] }\n </div>\n );\n },\n\n renderFooter()\n {\n if ( ! this.$slots.footer ) {\n return null;\n }\n\n return (\n <div class=\"n-drawer__footer\">\n { this.$slots.footer({ closeDrawer: this.closeDrawer }) }\n </div>\n );\n },\n\n renderBody()\n {\n let bodyHtml = (\n <NScrollbar ref=\"scrollbar\" relative={true} wrapClass=\"n-drawer__wrap\">\n { this.$slots.default && this.$slots.default({ closeDrawer: this.closeDrawer }) }\n </NScrollbar>\n );\n\n if ( this.$slots.body ) {\n bodyHtml = this.$slots.body({ closeDrawer: this.closeDrawer });\n }\n\n return (\n <div class=\"n-drawer__body\">\n { bodyHtml }\n </div>\n );\n },\n\n renderFrame()\n {\n if ( ! this.tempValue ) {\n return null;\n }\n\n let style = {\n width: this.width\n };\n\n let innerHtml = [\n this.ctor('renderHeader')(),\n this.ctor('renderBody')(),\n this.ctor('renderFooter')(),\n ]\n\n return (\n <div class=\"n-drawer__frame\" style={style}>\n { this.$slots.raw ? this.$slots.raw() : innerHtml }\n </div>\n );\n },\n\n renderBackdrop()\n {\n let classList = [\n 'n-drawer__backdrop',\n ];\n\n return (\n <div ref=\"backdrop\" class={classList}></div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-drawer',\n 'n-drawer--' + this.size,\n 'n-drawer--' + this.position\n ];\n\n if ( this.theme ) {\n classList.push('n-theme--' + this.theme);\n }\n\n if ( this.tempValue ) {\n this.queueRefreshTimeout();\n }\n\n if ( this.renderClose ) {\n classList.push('n-closable');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let innerHtml = null;\n\n if ( this.tempValue ) {\n innerHtml = this.ctor('renderFrame')();\n }\n\n return (\n <div class={classList}>\n { [innerHtml, this.ctor('renderBackdrop')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Mix, Hash, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NChartItem',\n\n inject: {\n NChart: {\n default: undefined\n }\n },\n\n props: {\n\n value: {\n default()\n {\n return 1;\n },\n type: [String, Number]\n },\n\n axis: {\n default()\n {\n return Locale.trans('Items');\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return Locale.trans('Items');\n },\n type: [String, Number]\n },\n\n type: {\n default()\n {\n return null;\n },\n type: [String]\n },\n\n color: {\n default()\n {\n return null;\n }\n }\n\n },\n\n data()\n {\n return {\n uid: Hash.uuid()\n };\n },\n\n beforeMount()\n {\n if ( this.NChart ) {\n this.NChart.appendElement(this);\n }\n },\n\n beforeUnmount()\n {\n if ( this.NChart ) {\n this.NChart.removeElement(this);\n }\n },\n\n methods: {\n\n getClass(index, className = 'n-chart-item')\n {\n if ( ! Mix.isEmpty(this.type) ) {\n return className + '--' + this.type;\n }\n\n return className + '--color-' + this.getColor(index);\n },\n\n getColor(index)\n {\n if ( this.color !== 'auto' ) {\n return this.color;\n }\n\n let color = this.NChart.color + index;\n\n let subdivide = Math.floor(color /\n this.NChart.colorLimit);\n\n return color - (this.NChart.colorLimit *\n subdivide);\n }\n\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Arr, Num, Mix, Dom, Hash, Locale, Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NChartDonut',\n\n provide()\n {\n return {\n NChart: this\n };\n },\n\n props: {\n\n sort: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n width: {\n default()\n {\n return 6;\n },\n type: [Number]\n },\n\n color: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n colorLimit: {\n default()\n {\n return 19;\n },\n type: [Number]\n },\n\n label: {\n default()\n {\n return Locale.trans('Total count');\n },\n type: [String]\n },\n\n otherLabel: {\n default()\n {\n return Locale.trans('Other count');\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n overlap: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n limit: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n renderLegend: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n total()\n {\n let count = Arr.each(this.elements, (item) => {\n return Num.float(item.value);\n });\n\n return Num.combine(count);\n },\n\n fixed()\n {\n let count = Arr.each(this.elements, (item) => {\n return Num.float(item.value);\n });\n\n return Num.combine(count);\n }\n\n },\n\n data()\n {\n let attrs = {\n 'cx': '65', 'cy': '65', 'r': '57.2958'\n };\n\n return {\n attrs, elements: []\n };\n },\n\n beforeMount()\n {\n this.vis = this.hid = [];\n },\n\n methods: {\n\n appendElement(element)\n {\n this.index = - 1;\n\n Arr.add(this.elements, element, {\n uid: element.uid\n });\n },\n\n removeElement(checkbox)\n {\n this.index = - 1;\n\n Arr.remove(this.elements, {\n uid: checkbox.uid\n });\n },\n\n onMouseenter(item)\n {\n Dom.find(this.$refs.text).style({\n '--n-chart-label': `'${item.label}'`,\n '--n-chart-value': Num.int(item.value)\n });\n },\n\n onMouseleave(item)\n {\n Dom.find(this.$refs.text).style(null);\n }\n\n },\n\n renderCircle(item, index)\n {\n let gaps = (this.vis.length) * (this.width * 2);\n\n if ( ! Mix.isEmpty(this.hid) ) {\n gaps = (this.vis.length + 1) * (this.width * 2);\n }\n\n let [distance] = [\n ((360 - gaps) * Num.float(item.value) / this.total) + (this.width * 2),\n ];\n\n\n let offset = (this.last * - 1);\n\n if ( !this.overlap ) {\n offset = Math.min(offset - (this.width * 0.5), 0);\n }\n\n let dashar = distance;\n\n if ( !this.overlap ) {\n dashar = Math.max(dashar - (this.width * 1.5), 0);\n }\n\n let classBlock = [\n 'n-chart-item', item.getClass(index),\n ];\n\n let classHover = [\n 'n-chart-hover'\n ];\n\n let propsBlock = {\n 'stroke-dashoffset': Num.fixed(offset, 4),\n 'stroke-dasharray': Num.fixed(dashar, 4) + ' 360'\n };\n\n let propsHover = propsBlock;\n\n propsHover['onmouseenter'] = () => {\n this.onMouseenter(item);\n };\n\n propsHover['onmouseleave'] = () => {\n this.onMouseleave(item);\n };\n\n this.last = distance + this.last;\n\n return (\n <g class=\"n-chart-group\">\n <circle class={classHover} {...propsHover} {...this.attrs}></circle>\n <circle class={classBlock} {...propsBlock} {...this.attrs}></circle>\n </g>\n );\n },\n\n renderOtherCircle(others, items)\n {\n if ( Mix.isEmpty(others) ) {\n return null;\n }\n\n let count = Arr.each(others, (item) => {\n return Num.float(item.value);\n });\n\n let item = {\n label: this.otherLabel, value: Num.combine(count)\n };\n\n item['getClass'] = () => {\n return 'n-chart-item--other';\n };\n\n return this.ctor('renderCircle')(item, items.length, items);\n },\n\n renderSvg()\n {\n this.last = 0;\n\n let [elements, sorted] = [\n Arr.clone(this.elements), Arr.sort(this.elements, 'value').reverse()\n ];\n\n if ( this.sort ) {\n elements = Arr.clone(sorted);\n }\n\n let temp = Arr.splice(sorted, 0, this.limit || elements.length);\n\n let visible = Arr.filter(elements, (el) => {\n return !! Arr.find(temp, { uid: el.uid});\n });\n\n let hidden = Arr.filter(elements, (el) => {\n return ! Arr.find(temp, { uid: el.uid});\n });\n\n [this.vis, this.hid] = [\n visible, hidden\n ];\n\n let items = Arr.each(visible, (item, index) => {\n return this.ctor('renderCircle')(item, index);\n });\n\n let baseHtml = (\n <circle class=\"n-chart-donut__base\" {...this.attrs}></circle>\n );\n\n let othersHtml = this.ctor('renderOtherCircle')(...[\n hidden, visible\n ]);\n\n return (\n <svg width=\"600\" height=\"600\" viewBox=\"0 0 130 130\">\n {[baseHtml, ...items, othersHtml]}\n </svg>\n );\n },\n\n renderText()\n {\n return (\n <div ref=\"text\" class=\"n-chart-donut__text\">\n <span></span><span></span>\n </div>\n );\n },\n\n renderDonut()\n {\n return (\n <div class=\"n-chart-donut__chart\">\n {[this.ctor('renderSvg')(), this.ctor('renderText')()]}\n </div>\n )\n },\n\n renderLegendOther(hidden, visible)\n {\n if ( Mix.isEmpty(hidden) ) {\n return null;\n }\n\n let count = Arr.each(hidden, (item) => {\n return Num.float(item.value);\n });\n\n let item = {\n label: this.otherLabel, value: Num.combine(count)\n };\n\n item['getClass'] = () => {\n return 'n-chart-legend--other';\n };\n\n return this.ctor('renderLegendItem')(item, visible.length);\n },\n\n renderLegendItem(item, index)\n {\n let classList = [\n 'n-chart-legend',\n item.getClass(index, 'n-chart-legend')\n ];\n\n return (\n <div class={classList}>\n <span>{item.label}</span>\n <span>{item.value}</span>\n </div>\n );\n },\n\n renderLegend()\n {\n if ( ! this.renderLegend ) {\n return null;\n }\n\n let items = Arr.each(this.vis, (item, index) => {\n return this.ctor('renderLegendItem')(item, index);\n });\n\n let othersHtml = this.ctor('renderLegendOther')(...[\n this.hid, this.vis\n ]);\n\n return (\n <div class=\"n-chart-donut__legend\">\n {[...items, othersHtml]}\n </div>\n )\n },\n\n render()\n {\n let classList = [\n 'n-chart-donut',\n 'n-chart-donut--' + this.size,\n ];\n\n if ( this.overlap ) {\n classList.push('n-chart-donut--overlap');\n }\n\n let style = {\n '--n-chart-label': `'${this.label}'`,\n '--n-chart-value': Num.int(this.total),\n '--n-stroke-width': Num.int(this.width),\n '--n-stroke-hover-width': Num.int(this.width * 1.2)\n };\n\n let bodyHtml = [\n this.ctor('renderDonut')(),\n this.ctor('renderLegend')(),\n ];\n\n if ( this.$slots.default ) {\n bodyHtml.push(this.$slots.default());\n }\n\n return (\n <div class={classList} style={style}>\n {bodyHtml}\n </div>\n );\n }\n\n}\n","import { Arr, Mix, Num, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NChartBar',\n\n provide()\n {\n return {\n NChart: this\n };\n },\n\n props: {\n\n sort: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n color: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n colorLimit: {\n default()\n {\n return 19;\n },\n type: [Number]\n },\n\n label: {\n default()\n {\n return Locale.trans('Total');\n },\n type: [String]\n },\n\n otherLabel: {\n default()\n {\n return Locale.trans('Other');\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n limit: {\n default()\n {\n return 4;\n },\n type: [Number]\n },\n\n minHeight: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n renderLegend: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n total()\n {\n let count = Arr.each(this.elements, (item) => {\n return Num.float(item.value);\n });\n\n return Num.combine(count);\n },\n\n min()\n {\n let min = Number.MAX_VALUE;\n\n Arr.each(this.elements, (item) => {\n min = Math.min(min, Num.float(item.value));\n });\n\n return Num.float(min);\n },\n\n max()\n {\n let max = Number.MIN_VALUE;\n\n Arr.each(this.elements, (item) => {\n max = Math.max(max, Num.float(item.value));\n });\n\n return Num.float(max);\n }\n\n },\n\n data()\n {\n return {\n elements: []\n };\n },\n\n methods: {\n\n appendElement(element)\n {\n this.index = -1;\n\n Arr.add(this.elements, element, {\n uid: element.uid\n });\n },\n\n removeElement(checkbox)\n {\n this.index = -1;\n\n Arr.remove(this.elements, {\n uid: checkbox.uid\n });\n },\n\n },\n\n renderBarItem(item, index)\n {\n let classList = [\n 'n-chart-item', item.getClass(index),\n ];\n\n let height = ((100 - this.minHeight) / this.max * item.value) + this.minHeight;\n\n let style = {\n '--n-chart-height': Num.int(height) + '%'\n };\n\n let html = [];\n\n html.push(\n <div class=\"n-chart-bar__bar\">\n {/* Chart bar */}\n </div>\n );\n\n html.push(\n <div class=\"n-chart-bar__dot\">\n {/* Chart dor */}\n </div>\n );\n\n html.push(\n <div class=\"n-chart-bar__value\">\n <span>{item.axis}</span>\n <span>{item.value}</span>\n </div>\n );\n\n return (\n <div class={classList} style={style}>\n {html}\n </div>\n );\n },\n\n renderBarOther(hidden, visible)\n {\n if ( Mix.isEmpty(hidden) ) {\n return null;\n }\n\n let count = Arr.each(hidden, (item) => {\n return Num.float(item.value);\n });\n\n let item = {\n axis: this.otherLabel, value: Num.combine(count)\n };\n\n item['getClass'] = () => {\n return 'n-chart-item--other';\n };\n\n return this.ctor('renderBarItem')(item, visible.length);\n },\n\n renderBars()\n {\n let [elements, sorted] = [\n Arr.clone(this.elements), Arr.sort(this.elements, 'value').reverse()\n ];\n\n if ( this.sort ) {\n elements = Arr.clone(sorted);\n }\n\n let temp = Arr.splice(sorted, 0, this.limit || elements.length);\n\n let visible = Arr.filter(elements, (el) => {\n return !! Arr.find(temp, { uid: el.uid});\n });\n\n let hidden = Arr.filter(elements, (el) => {\n return ! Arr.find(temp, { uid: el.uid});\n });\n\n [this.vis, this.hid] = [\n visible, hidden\n ];\n\n let items = Arr.each(visible, (item, index) => {\n return this.ctor('renderBarItem')(item, index);\n });\n\n let othersHtml = this.ctor('renderBarOther')(...[\n this.hid, this.vis\n ]);\n\n return (\n <div class=\"n-chart-bar__bars\">\n {[...items, othersHtml]}\n </div>\n );\n },\n\n renderAxis()\n {\n return (\n <div class=\"n-chart-bar__axis\">\n <span>{this.max}</span>\n <span>{this.min}</span>\n </div>\n );\n },\n\n renderLegendOther(hidden, visible)\n {\n if ( Mix.isEmpty(hidden) ) {\n return null;\n }\n\n let count = Arr.each(hidden, (item) => {\n return Num.float(item.value);\n });\n\n let item = {\n axis: this.otherLabel, value: Num.combine(count)\n };\n\n item['getClass'] = () => {\n return 'n-chart-legend--other';\n };\n\n return this.ctor('renderLegendItem')(item, visible.length);\n },\n\n renderLegendItem(item, index)\n {\n let classList = [\n 'n-chart-legend',\n item.getClass(index, 'n-chart-legend')\n ];\n\n return (\n <div class={classList}>\n <span>{item.axis}</span>\n <span>{item.value}</span>\n </div>\n );\n },\n\n renderLegend()\n {\n if ( ! this.renderLegend ) {\n return null;\n }\n\n let items = Arr.each(this.vis, (item, index) => {\n return this.ctor('renderLegendItem')(item, index);\n });\n\n let othersHtml = this.ctor('renderLegendOther')(...[\n this.hid, this.vis\n ]);\n\n return (\n <div class=\"n-chart-bar__legend\">\n {[...items, othersHtml]}\n </div>\n )\n },\n\n render()\n {\n let classList = [\n 'n-chart-bar',\n 'n-chart-bar--' + this.size,\n ];\n\n let bodyHtml = [\n this.ctor('renderBars')(),\n this.ctor('renderLegend')(),\n ];\n\n if ( this.$slots.default ) {\n bodyHtml.push(this.$slots.default());\n }\n\n return (\n <div class={classList}>\n {bodyHtml}\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Dom, Locale } from \"@kizmann/pico-js\";\n\nimport CtorMixin from \"./mixins/src/ctor.js\";\nimport CmerMixin from \"./mixins/src/cmer.js\";\nimport CsloMixin from \"./mixins/src/cslo.js\";\n\nimport Alert from \"./alert/index.js\";\nimport Notification from \"./notification/index.js\";\nimport Empty from \"./empty/index.js\";\nimport Config from \"./config/index.js\";\nimport Scrollbar from \"./scrollbar/index.js\";\nimport Virtualscroller from \"./virtualscroller/index.js\";\nimport Draggable from \"./draggable/index.js\";\nimport Loader from \"./loader/index.js\";\nimport Resizer from \"./resizer/index.js\";\nimport Popover from \"./popover/index.js\";\nimport Modal from \"./modal/index.js\";\nimport Button from \"./button/index.js\";\nimport Input from \"./input/index.js\";\nimport InputNumber from \"./input-number/index.js\";\nimport Textarea from \"./textarea/index.js\";\nimport Select from \"./select/index.js\";\nimport Checkbox from \"./checkbox/index.js\";\nimport Radio from \"./radio/index.js\";\nimport Slider from \"./slider/index.js\";\nimport Switch from \"./switch/index.js\";\nimport Confirm from \"./confirm/index.js\";\nimport Cascader from \"./cascader/index.js\";\nimport Datepicker from \"./datepicker/index.js\";\nimport Timepicker from \"./timepicker/index.js\";\nimport Datetimepicker from \"./datetimepicker/index.js\";\nimport Durationpicker from \"./durationpicker/index.js\";\nimport Transfer from \"./transfer/index.js\";\nimport Form from \"./form/index.js\";\nimport Tabs from \"./tabs/index.js\";\nimport Tags from \"./tags/index.js\";\nimport Collapse from \"./collapse/index.js\";\nimport Table from \"./table/index.js\";\nimport Paginator from \"./paginator/index.js\";\nimport Info from \"./info/index.js\";\nimport Preview from \"./preview/index.js\";\nimport Map from \"./map/index.js\";\nimport File from \"./file/index.js\";\nimport Rating from \"./rating/index.js\";\nimport Drawer from \"./drawer/index.js\";\nimport Chart from \"./chart/index.js\";\n\nconst NanoImports = [\n Alert,\n Notification,\n Empty,\n Config,\n Scrollbar,\n Virtualscroller,\n Draggable,\n Loader,\n Resizer,\n Popover,\n Modal,\n Button,\n Input,\n InputNumber,\n Textarea,\n Select,\n Checkbox,\n Radio,\n Slider,\n Switch,\n Confirm,\n Cascader,\n Datepicker,\n Timepicker,\n Datetimepicker,\n Durationpicker,\n Transfer,\n Form,\n Tabs,\n Tags,\n Collapse,\n Table,\n Paginator,\n Info,\n Preview,\n Map,\n File,\n Rating,\n Drawer,\n Chart\n];\n\nexport const Icons = {\n handle: 'fa fa-ellipsis-v',\n checked: 'fa fa-check',\n circle: 'fa fa-circle',\n intermediate: 'fa fa-minus',\n clock: 'fa fa-clock',\n calendar: 'fa fa-calendar',\n times: 'fa fa-times',\n primary: 'fa fa-info-circle',\n secondary: 'fa fa-info-circle',\n success: 'fa fa-check-circle',\n warning: 'fa fa-exclamation-circle',\n danger: 'fa fa-times-circle',\n info: 'fa fa-info-circle',\n angleUp: 'fa fa-angle-up',\n angleRight: 'fa fa-angle-right',\n angleDown: 'fa fa-angle-down',\n angleLeft: 'fa fa-angle-left',\n angleDoubleLeft: 'fa fa-angle-double-left',\n angleDoubleRight: 'fa fa-angle-double-right'\n};\n\nexport const Settings = {\n iconPosition: 'before',\n notifySize: 'md',\n notifyPosition: 'bottom-start'\n};\n\nexport function Install(App, Icons = {}, Settings = {})\n{\n /**\n * @const window.pi\n */\n\n if ( typeof window.pi === 'undefined' ) {\n return console.error('pico-js is not available.');\n }\n\n Obj.each(window.pi, (value, key) => {\n App.config.globalProperties[key] = value;\n });\n\n App.config.globalProperties.ctor = CtorMixin.ctor;\n App.config.globalProperties.cmer = CmerMixin.cmer;\n App.config.globalProperties.cslo = CsloMixin.cslo;\n\n App.config.globalProperties.trans = Locale.trans;\n App.config.globalProperties.choice = Locale.choice;\n\n window.nano.Icons = Obj.assign(window.nano.Icons, Icons);\n window.nano.Settings = Obj.assign(window.nano.Settings, Settings);\n\n Arr.each(NanoImports, (NanoModule) => {\n NanoModule(App);\n });\n\n // require('./chart/index.js'); // Ignore\n // require('./wysiwyg/index.js'); // Ignore\n}\n\nexport const Nano = {\n Icons: Icons, Settings: Settings, Install: Install\n};\n\nwindow.keyMods = [];\n\nDom.find(document).on('keydown', (event) => {\n Arr.add(window.keyMods, event.which);\n});\n\nDom.find(document).on('keyup', (event) => {\n Arr.remove(window.keyMods, event.which);\n});\n\nDom.find(document).on('dragstart', (event) => {\n Arr.add(window.keyMods, event.which);\n});\n\nDom.find(document).on('dragend', (event) => {\n window.keyMods = [];\n});\n\nif ( typeof window.nano === 'undefined' ) {\n window.nano = Nano;\n}\n\nexport default Nano;\n","import AlertHandler from \"./src/alert/alert-handler.mjs\";\n\nexport default function (App) {\n\n window.AlertIcons = pi.Obj.assign(window.nano.Icons,\n window.AlertIcons || {});\n\n let directives = [\n AlertHandler\n ];\n\n pi.Arr.each(directives, (glob) => {\n App.config.globalProperties[glob.alias] = window[glob.alias] = glob;\n });\n\n}\n","import NotificationElement from \"./src/notification/notification-element.mjs\";\nimport NotificationHandler from \"./src/notification/notification-handler.mjs\";\n\nexport default function (App) {\n\n const NotifcationIcons = {\n primary: window.nano.Icons.info,\n secondary: window.nano.Icons.info,\n success: window.nano.Icons.success,\n warning: window.nano.Icons.warning,\n danger: window.nano.Icons.danger,\n info: window.nano.Icons.info\n };\n\n window.NotifcationIcons = pi.Obj.assign(NotifcationIcons,\n window.NotifcationIcons || {});\n\n let directives = [\n NotificationElement, NotificationHandler\n ];\n\n pi.Arr.each(directives, (glob) => {\n App.config.globalProperties[glob.alias] = window[glob.alias] = glob;\n });\n}","import EmptyIcon from \"./src/empty-icon/empty-icon.jsx\";\n\nexport default function (App) {\n App.component(EmptyIcon.name, EmptyIcon);\n}\n","import NConfig from \"./src/config/config.jsx\";\nimport NConfigNext from \"./src/config/config-next.jsx\";\n// import NBuilder from \"./src/builder/builder.jsx\";\n// import NRefrencePanel from \"./src/reference-panel/reference-panel.jsx\";\n// import NRefrencePicker from \"./src/reference-picker/reference-picker.jsx\";\n\nexport default function(App) {\n App.component(NConfig.name, NConfig);\n App.component(NConfigNext.name, NConfigNext);\n // App.component(NBuilder.name, NBuilder);\n // App.component(NRefrencePanel.name, NRefrencePanel);\n // App.component(NRefrencePicker.name, NRefrencePicker);\n}\n","import Scrollbar from \"./src/scrollbar/scrollbar.jsx\";\n\nexport default function (App) {\n App.component(Scrollbar.name, Scrollbar);\n}","import Virtualscroller from \"./src/virtualscroller/virtualscroller.jsx\";\n\nexport default function (App) {\n App.component(Virtualscroller.name, Virtualscroller);\n}","import Draglist from \"./src/draglist/draglist.jsx\";\nimport DraglistItem from \"./src/draglist-item/draglist-item.jsx\";\nimport Draggrid from \"./src/draggrid/draggrid.jsx\";\nimport DraggridItem from \"./src/draggrid-item/draggrid-item.jsx\";\nimport Dropzone from \"./src/dropzone/dropzone.jsx\";\n\nexport default function (App) {\n App.component(Draglist.name, Draglist);\n App.component(DraglistItem.name, DraglistItem);\n App.component(Draggrid.name, Draggrid);\n App.component(DraggridItem.name, DraggridItem);\n App.component(Dropzone.name, Dropzone);\n}","import Loader from \"./src/loader/loader.jsx\";\n\nexport default function (App) {\n App.component(Loader.name, Loader);\n}\n","import Resizer from \"./src/resizer/resizer.jsx\";\nimport ResizerNext from \"./src/resizer/resizer-next.jsx\";\n\nexport default function (App) {\n // App.component(Resizer.name, Resizer);\n App.component(ResizerNext.name, ResizerNext);\n}\n","import Popover from \"./src/popover/popover.jsx\";\nimport PopoverGroup from \"./src/popover-group/popover-group.jsx\";\nimport PopoverOption from \"./src/popover-option/popover-option.jsx\";\n\nimport PopoverElement from \"./src/popover/popover-element.mjs\";\nimport PopoverHandler from \"./src/popover/popover-handler.mjs\";\nimport PopoverHelper from \"./src/popover/popover-helper.mjs\";\n\nexport default function (App) {\n\n let directives = [\n PopoverElement, PopoverHandler, PopoverHelper\n ];\n\n pi.Arr.each(directives, (glob) => {\n App.config.globalProperties[glob.alias] = window[glob.alias] = glob;\n });\n\n let components = [\n Popover, PopoverGroup, PopoverOption\n ];\n\n pi.Arr.each(components, (comp) => {\n App.component(comp.name, comp);\n });\n}","import Modal from \"./src/modal/modal.jsx\";\n\nexport default function (App) {\n App.component(Modal.name, Modal);\n}\n","import Button from \"./src/button/button.jsx\";\nimport ButtonGroup from \"./src/button-group/button-group.jsx\";\n\nexport default function (App) {\n App.component(Button.name, Button);\n App.component(ButtonGroup.name, ButtonGroup);\n}\n","import Input from \"./src/input/input.jsx\";\n\nexport default function (App) {\n App.component(Input.name, Input);\n}\n","import InputNumber from \"./src/input-number/input-number.jsx\";\n\nexport default function (App) {\n App.component(InputNumber.name, InputNumber);\n}","import Textarea from \"./src/textarea/textarea.jsx\";\n\nexport default function (App) {\n App.component(Textarea.name, Textarea);\n}","import Select from \"./src/select/select.jsx\";\nimport SelectOption from \"./src/select-option/select-option.jsx\";\n\nexport default function (App) {\n App.component(Select.name, Select);\n App.component(SelectOption.name, SelectOption);\n}\n","import Checkbox from \"./src/checkbox/checkbox.jsx\";\nimport CheckboxGroup from \"./src/checkbox-group/checkbox-group.jsx\";\n\nexport default function (App) {\n App.component(Checkbox.name, Checkbox);\n App.component(CheckboxGroup.name, CheckboxGroup);\n}","import NRadio from \"./src/radio/radio.jsx\";\nimport NRadioGroup from \"./src/radio-group/radio-group.jsx\";\n\nexport default function (App) {\n App.component(NRadio.name, NRadio);\n App.component(NRadioGroup.name, NRadioGroup);\n}\n","import Slider from \"./src/slider/slider.jsx\";\n\nexport default function (App) {\n App.component(Slider.name, Slider);\n}","import Switch from \"./src/switch/switch.jsx\";\n\nexport default function (App) {\n App.component(Switch.name, Switch);\n}","import Confirm from \"./src/confirm/confirm.jsx\";\nimport ConfirmHandler from \"./src/confirm/confirm-handler.mjs\";\n\nexport default function (App) {\n\n let ConfirmIcons = {\n primary: window.nano.Icons.info,\n secondary: window.nano.Icons.info,\n success: window.nano.Icons.success,\n warning: window.nano.Icons.warning,\n danger: window.nano.Icons.danger,\n info: window.nano.Icons.info\n };\n\n window.ConfirmIcons = pi.Obj.assign(ConfirmIcons,\n window.ConfirmIcons || {});\n\n let directives = [\n ConfirmHandler\n ];\n\n pi.Arr.each(directives, (glob) => {\n App.config.globalProperties[glob.alias] = window[glob.alias] = glob;\n });\n\n App.component(Confirm.name, Confirm);\n}","import CascaderPanel from \"./src/cascader-panel/cascader-panel.jsx\";\nimport Cascader from \"./src/cascader/cascader.jsx\";\n\nexport default function (App) {\n App.component(CascaderPanel.name, CascaderPanel);\n App.component(Cascader.name, Cascader);\n}","import DatepickerPanel from \"./src/datepicker-panel/datepicker-panel.jsx\";\nimport Datepicker from \"./src/datepicker/datepicker.jsx\";\n\nexport default function (App) {\n App.component(DatepickerPanel.name, DatepickerPanel);\n App.component(Datepicker.name, Datepicker);\n}","import TimepickerPanel from \"./src/timepicker-panel/timepicker-panel.jsx\";\nimport Timepicker from \"./src/timepicker/timepicker.jsx\";\n\nexport default function (App) {\n App.component(TimepickerPanel.name, TimepickerPanel);\n App.component(Timepicker.name, Timepicker);\n}","import Datetimepicker from \"./src/datetimepicker/datetimepicker.jsx\";\n\nexport default function (App) {\n App.component(Datetimepicker.name, Datetimepicker);\n}","import Durationpicker from \"./src/durationpicker/durationpicker.jsx\";\n\nexport default function (App) {\n App.component(Durationpicker.name, Durationpicker);\n}","import Transfer from \"./src/transfer/transfer.jsx\";\n\nexport default function (App) {\n App.component(Transfer.name, Transfer);\n}","import Form from \"./src/form/form.jsx\";\nimport FormBag from \"./src/form-bag/form-bag.jsx\";\nimport FormGroup from \"./src/form-group/form-group.jsx\";\nimport FormItem from \"./src/form-item/form-item.jsx\";\nimport FormFrame from \"./src/form-frame/form-frame.jsx\";\n\nexport default function (App) {\n App.component(Form.name, Form);\n App.component(FormBag.name, FormBag);\n App.component(FormGroup.name, FormGroup);\n App.component(FormItem.name, FormItem);\n App.component(FormFrame.name, FormFrame);\n}","import Tabs from \"./src/tabs/tabs.jsx\";\nimport TabsItem from \"./src/tabs-item/tabs-item.jsx\";\n\nexport default function (App) {\n App.component(Tabs.name, Tabs);\n App.component(TabsItem.name, TabsItem);\n}","import Tags from \"./src/tags/tags.jsx\";\nimport TagsItem from \"./src/tags-item/tags-item.jsx\";\n\nexport default function (App) {\n App.component(Tags.name, Tags);\n App.component(TagsItem.name, TagsItem);\n}","import Collapse from \"./src/collapse/collapse.jsx\";\nimport CollapseItem from \"./src/collapse-item/collapse-item.jsx\";\n\nexport default function (App) {\n App.component(Collapse.name, Collapse);\n App.component(CollapseItem.name, CollapseItem);\n}","import Table from \"./src/table/table.jsx\";\nimport TableColumn from \"./src/table-column/table-column.jsx\";\nimport TableCellString from \"./src/table-cell/types/table-cell-string.jsx\";\nimport TableCellBoolean from \"./src/table-cell/types/table-cell-boolean.jsx\";\nimport TableCellDatetime from \"./src/table-cell/types/table-cell-datetime.jsx\";\nimport TableCellOption from \"./src/table-cell/types/table-cell-option.jsx\";\nimport TableCellImage from \"./src/table-cell/types/table-cell-image.jsx\";\nimport TableCellMatrix from \"./src/table-cell/types/table-cell-matrix.jsx\";\nimport TableCellSelect from \"./src/table-cell/types/table-cell-select.jsx\";\nimport TableFilterString from \"./src/table-filter/types/table-filter-string.jsx\";\nimport TableFilterBoolean from \"./src/table-filter/types/table-filter-boolean.jsx\";\nimport TableFilterDatetime from \"./src/table-filter/types/table-filter-datetime.jsx\";\nimport TableFilterOption from \"./src/table-filter/types/table-filter-option.jsx\";\n\n\nexport default function (App) {\n App.component(Table.name, Table);\n App.component(TableColumn.name, TableColumn);\n App.component(TableCellString.name, TableCellString);\n App.component(TableCellBoolean.name, TableCellBoolean);\n App.component(TableCellDatetime.name, TableCellDatetime);\n App.component(TableCellOption.name, TableCellOption);\n App.component(TableCellImage.name, TableCellImage);\n App.component(TableCellMatrix.name, TableCellMatrix);\n App.component(TableCellSelect.name, TableCellSelect);\n App.component(TableFilterString.name, TableFilterString);\n App.component(TableFilterBoolean.name, TableFilterBoolean);\n App.component(TableFilterDatetime.name, TableFilterDatetime);\n App.component(TableFilterOption.name, TableFilterOption);\n}","import Paginator from \"./src/paginator/paginator.jsx\";\n\nexport default function (App) {\n App.component(Paginator.name, Paginator);\n}","import Info from \"./src/info/info.jsx\";\nimport InfoColumn from \"./src/info-column/info-column.jsx\";\nimport InfoFieldString from \"./src/info-field/types/info-field-string.jsx\";\nimport InfoFieldBoolean from \"./src/info-field/types/info-field-boolean.jsx\";\nimport InfoFieldDatetime from \"./src/info-field/types/info-field-datetime.jsx\";\nimport InfoFieldOption from \"./src/info-field/types/info-field-option.jsx\";\nimport InfoFieldImage from \"./src/info-field/types/info-field-image.jsx\";\n\nexport default function (App) {\n App.component(Info.name, Info);\n App.component(InfoColumn.name, InfoColumn);\n App.component(InfoFieldString.name, InfoFieldString);\n App.component(InfoFieldBoolean.name, InfoFieldBoolean);\n App.component(InfoFieldDatetime.name, InfoFieldDatetime);\n App.component(InfoFieldOption.name, InfoFieldOption);\n App.component(InfoFieldImage.name, InfoFieldImage);\n}","import Map from \"./src/map/map.jsx\";\nimport MapMarker from \"./src/map-marker/map-marker.jsx\";\n\nexport default function (App) {\n App.component(Map.name, Map);\n App.component(MapMarker.name, MapMarker);\n}\n\n","import File from \"./src/file/file.jsx\";\n\nexport default function (App) {\n App.component(File.name, File);\n}\n\n","import Rating from \"./src/rating/rating.jsx\";\n\nexport default function (App) {\n App.component(Rating.name, Rating);\n}\n","import Modal from \"./src/drawer/drawer.jsx\";\n\nexport default function (App) {\n App.component(Modal.name, Modal);\n}\n","import ChartItem from \"./src/chart-item/chart-item.jsx\";\nimport ChartDonut from \"./src/chart-donut/chart-donut.jsx\";\nimport ChartBar from \"./src/chart-bar/chart-bar.jsx\";\n\nexport default function (App) {\n App.component(ChartItem.name, ChartItem);\n App.component(ChartDonut.name, ChartDonut);\n App.component(ChartBar.name, ChartBar);\n}"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__55__","__WEBPACK_EXTERNAL_MODULE__122__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","ctor","_this","fallback","arguments","length","Obj","this","$options","split","_len","args","Array","_key","apply","cmer","classList","attrsList","Mix","isString","isArray","Arr","each","isObj","assign","$attrs","cslo","slot","props","$slots","findIndex","type","Comment","AlertHandler","options","_classCallCheck","_defineProperty","text","size","uid","Hash","uuid","unbindEvents","modal","remove","Dom","find","document","body","style","el","icon","window","AlertIcons","make","innerHTML","concat","appendTo","on","e","keyCode","stopPropagation","close","target","inside","Run","delay","addClass","off","_this2","cls","push","merge","join","frame","renderIcon","renderText","requestAnimationFrame","bindEvents","render","NotificationElement","duration","setTimeout","iconClass","NotifcationIcons","alias","NotificationBag","NotificationHandler","_NotificationHandler$","create","wrapper","element","append","_len2","_key2","_construct","empty","nano","Settings","notifySize","notifyPosition","name","String","disabled","Boolean","inline","_createVNode","modelValue","config","scope","data","tempValue","methods","solveAwait","isEmpty","match","has","$$scope","$$value","solveValue","isFunction","solveEvent","$configRefs","$refs","solveContent","_len3","_key3","$render","prepareValue","veModel","path","deepSet","inputClosure","closure","keys","val","shift","set","watch","renderLayer","source","setup","component","replace","vIf","vShow","vAwait","class","$on","$props","display","model","map","input","content","slots","resolved","resolveComponent","h","extraValue","sempValue","getString","final","trans","propAwait","result","state","getState","propExists","exists","solveInput","sources","$scope","$model","$extra","$global","toPropKey","splits","Str","ucfirst","lcfirst","toEventKey","cb","solveContext","_this3","console","error","getProp","getInput","isNull","setInput","renderSetup","_this4","defaultsBind","binds","events","updateKey","default","renderSlot","callback","_this5","_this6","inject","NScrollbar","provide","overflowY","overflowX","offsetY","Number","offsetX","framerate","wrapClass","computed","touch","navigator","msMaxTouchPoints","mousedown","mousemove","mouseup","init","native","height","width","beforeMount","outer","hasHtrack","hasVtrack","adaptScrollBehavior","mounted","observer","ResizeObserver","getWrapperSizeDebounced","observe","$el","Event","bind","_","passive","onScroll","getWrapperSize","beforeUnmount","disconnect","unbind","rect","getBoundingClientRect","now","Math","round","isEqual","clearInterval","interval","spacer","actual","_ref","remClass","clientWidth","clientHeight","rainbow","_ref2","styles","adaptScrollHeight","adaptScrollWidth","_ref3","frameWidth","frameHeight","$emit","scrollTo","x","y","onScrollTo","scrollTop","scrollLeft","scrollIntoView","selector","padding","onScrollIntoView","outerHeight","offsetTop","outerWidth","offsetLeft","$dom","offsetWidth","offsetHeight","innerHeight","scrollHeight","compare","barHeight","max","maxHeight","ceil","heightRatio","vbar","adaptScrollPosition","innerWidth","scrollWidth","barWidth","maxWidth","widthRatio","hbar","scroll","top","left","vbarTop","transform","hbarLeft","fire","$nextTick","then","getTouchEvent","event","touches","changedTouches","onVbarMousedown","which","preventDefault","onVbarMousemove","onVbarMouseup","clientY","offset","onHbarMousedown","onHbarMousemove","onHbarMouseup","clientX","WIN","vbarProps","hbarProps","_mergeProps","except","DEBUG_NVSCROLL","NDraggable","items","itemHeight","itemWidth","renderNode","deathzone","threshold","useKeys","uniqueProp","start","end","grid","buffer","updateRender","ready","bindAdaptScroll","unbindAdaptScroll","callWhenReady","clearWhenReady","refreshScroll","setInterval","onScrollupdate","isIndexRendered","index","scrollbar","scrollToIndex","onScrollToIndex","total","floor","targetTop","refreshDriver","clearState","onSizechange","queue","timer","Date","clearTimeout","to","bufferItems","renderItem","passed","topOffset","renderFunction","renderRows","slice","renderGridRows","counter","chunk","renderGrid","_this7","chunks","renderItems","_this8","totalHeight","_resolveComponent","dragMods","NDragCounter","_createClass","count","update","html","Locale","choice","dataTransfer","setData","setDragImage","keyMods","attr","DragCounter","NDragIndicator","parent","safezone","strategy","hasClass","show","hide","item","NDraghandler","rootNode","_this$bindDragstart","DragIndicator","DragCache","bindDragstart","_toConsumableArray","framebuffer","onDragenterRoot","onDragoverRoot","onDragleaveRoot","onDragendRoot","onDragdropRoot","bindDragend","bindDragdrop","closest","cacheNodes","allowDrop","node","frames","moveNodes","group","cache","allowGroups","JSON","parse","stringify","dragcount","dropNodes","tempSelected","removeNode","clone","unlinkNodes","removeNodes","isSelected","id","virtuals","route","resolve","targetNode","isInSelf","cascade","childNodes","unbindNode","$handle","handle","onDragstartNode","onDragenterNode","onDragoverNode","onDragleaveNode","onDragendNode","onDragdropNode","optoff","moveNodesMany","moveNodesOne","insertNode","moveNodesRoot","first","transformDrop","moveNodesInto","moveNodesBefore","moveNodesAfter","eventName","_this9","filter","childProp","disableMove","targetRoute","children","splice","_this0","reduce","reduceItem","Num","depth","cascades","unique","tempCascade","virtual","last","DEBUG_NDLIST","draggable","current","selected","expanded","lazyload","showEmptyIcon","itemOffset","scrollTopOnChange","renderCurrent","renderHandle","renderSelect","renderExpand","allowSelect","allowDrag","keyEvents","highlightTimeout","modifier","visible","highlight","firstSelected","lastSelected","tempCurrent","tempExpanded","drag","watchModifierDown","watchModifierUp","virtualscroller","inner","bindRoot","$watch","watchSelected","deep","refreshVirtuals","unbindRoot","filterVirtuals","add","updateNode","findVirtual","log","contains","getIndex","getCurrentIndex","isDraggable","canDrag","isHighlight","highlightNode","refresh","recursive","scrollToHighlight","isCurrent","setCurrent","setRawCurrent","setNextCurrent","setPrevCurrent","reset","syncCurrent","isDisabled","canSelect","hasChildren","getChildren","isExpanded","expandItem","toggle","expandCurrent","isTotalSelected","isInterSelected","toggleSingleNode","toggleRangeNode","indexies","reversed","selectItem","selectAll","row","unselectAll","bindKeydown","onKeydown","unbindKeydown","renderEmpty","only","onMouseenter","onMouseleave","inheritAttrs","NDraggableItem","required","bindNode","unmounted","copy","copyNode","onClick","onDblclick","renderElement","renderSpacer","Icons","angleRight","checked","NDropzone","NLoader","minimum","debounce","tempVisible","applyTimer","timing","startTimer","restartTimer","timeout","flex","minWidth","position","resizerWidth","sizeFixed","getWidthDebounced","updateRemoteWidth","forceWidth","updateHandle","updateWidth","onLeftMousedown","onLeftMouseup","onLeftMousemove","scrollX","targetWidth","min","frameStyle","onRightMousedown","onRightMouseup","onRightMousemove","isNumber","NPopover","listen","trigger","theme","scrollClose","multiClose","alwaysRender","prevent","prev","popel","Popover","active","open","renderBody","raw","header","footer","viewBody","tempSize","focus","iconPosition","image","imagePosition","clickClose","renderImage","renderContent","PopoverHelper","getTouchState","PopoverBag","PopoverHandler","getMouseDownEvent","throttle","detectFadeOnCurrent","getScrollEvent","detectScrollOnCurrent","PopoverElement","parents","currentChange","_current$options","tgt","src","currents","mount","_this$options","getHoverEvent","onHover","getClickEvent","getContextEvent","onContext","_this$options2","_this$options3","showQueue","updatePosition","bindResizeObserver","hideQueue","unbindResizeObserver","unsetCurrent","_this$options4","_this$options5","_this$options6","client","_this$options7","getTargetOffset","zIndex","_this$options8","targetRect","windowRect","posY","posX","center","inverse","broken","getTargetHorizontal","_this$options9","getTargetVertical","_this$options0","title","closable","renderClose","startRefreshTimeout","NModal","eventClick","eventKeydown","openModal","force","closeModal","stopRefreshTimeout","queueRefreshTimeout","backdrop","indexes","sort","times","renderHeader","renderFooter","bodyHtml","renderFrame","innerHtml","renderBackdrop","link","glass","square","nativeType","NForm","NFormItem","iconDisabled","placeholder","deepDisabled","onIconClick","onInput","onSubmit","onFocus","onBlur","renderInput","clearValue","MAX_VALUE","clearable","stepSize","precision","format","decimals","clear","getValue","getDisplayValue","number","nextStep","isNaN","toFixed","onNextDown","prevTimeout","prevInterval","nextTimeout","nextInterval","onNextUp","prevStep","onPrevDown","onPrevUp","regex","RegExp","renderPrev","onMousedown","renderNext","renderClear","autoRows","maxRows","minRows","maxLength","eventInput","rows","currentRows","_isSlot","s","toString","_isVNode","lazy","multiple","collapse","emptyText","undefinedText","collapseText","allowCreate","optionsValue","optionsLabel","optionsDisabled","custom","elements","tempClear","search","searched","generateOptions","searchOptions","NSelect","scrollToClosest","focusInput","$value","$index","option","label","tempLabel","addOption","removeOption","resetInput","onFocusInput","onInputInput","onKeydownInput","createOrToggle","selectPrev","selectNext","searchRegex","string","toggleOption","popover","denyUpdate","getOptionLabel","newIndex","scrollToCurrent","createOption","virtualscroll","select","renderLabelClear","renderLabelAngle","angleDown","renderLabelItem","labelHtml","renderLabelCollapse","firstHtml","renderLabelItems","renderMultiple","isEmptyValue","inputHtml","renderSingle","modelLabel","renderDisplay","displayHtml","_slot","_slot2","emptyHtml","vals","renderLazyOption","isMultipleActive","isSingleActive","renderLazyItems","renderPopover","onClose","$event","renderOptions","valueProp","labelProp","toggleItem","renderOption","NCheckboxGroup","allowUncheck","intermediate","global","tempComputed","globalChecked","tempChecked","tempIntermediate","globalIntermediate","tempDisabled","globalDisabled","isChecked","addCheckbox","removeCheckbox","check","checkCheckbox","uncheck","uncheckCheckbox","eventShiftClick","shiftCheckbox","eventLocalClick","shiftKey","toggleCheckbox","eventGlobalClick","toggleAll","updateFromGroup","renderCheckbox","interHtml","checkHtml","renderLabel","align","checkbox","emit","checkboxes","uncheckAll","checkAll","NRadioGroup","addRadio","removeRadio","checkRadio","renderRadio","radio","range","steps","labels","fixmin","fixmax","minmax","getPseudoValue","onResize","setModelValue","getValPos","fixed","getValStyle","getBarPos","getBarWidth","getBarStyle","getClosestValue","diff","step","abs","onMouseup","onMousemove","relativeWidth","closestValue","stepMin","stepMax","handleProps","_objectSpread","renderHandles","values","renderBar","barProps","onValue","offValue","onType","offType","renderSwitch","confirmText","cancelText","activeState","changeVisible","extractText","nodes","Confirm","confirm","abort","ConfirmHandler","next","Promise","cancel","ConfirmIcons","action","renderCancel","renderConfirm","promise","hover","disabledProp","tempHover","clearCascader","hoverItem","onSelect","clickTimer","lastclick","hoverTimer","fireSelectItem","renderCascade","renderList","onCascaderInput","onCascaderHover","onPopoverInput","itemLabel","arrive","clearArrive","depart","clearDepart","minDate","maxDate","monthPanels","weekdays","months","yearsGrid","tempCache","monthsGrid","Now","tempArrive","tempDepart","tempView","tempRanger","cacheArrive","cacheDepart","gotoDate","gotoMonth","gotoYear","patchDate","time","applyTime","patchMonth","printRange","patchYear","patchRange","renderToolbarPrev","angleLeft","renderToolbarNext","renderToolbarMonth","monthsHtml","month","renderToolbarYear","yearsHtml","year","renderToolbar","renderDateItem","equalDate","valid","isNotBeforeMin","after","isNotAfterMax","before","renderRangeDateItem","viewMode","isTempValid","between","arriveFirst","renderDate","legendHtml","day","panelHtml","prevMonth","nextMonth","renderMonthItem","equal","renderMonth","prevYear","nextYear","renderYearItem","renderYear","prevDecade","nextDecade","placeholderArrive","placeholderDepart","rangeSeparator","boundary","displayFormat","clearDatepicker","clearRangeDatepicker","clearSingleDatepicker","onValueInput","moment","isValid","date","onArriveInput","onDepartInput","onDatepickerInput","onDatepickerDepart","onDatepickerArrive","initialDate","renderRange","arriveProps","departProps","hoursInterval","minutesInterval","secondsInterval","hoursGrid","getHoursGrid","minutesGrid","getMinutesGrid","secondsGrid","getSecondsGrid","eventSelect","scrollbars","ref","renderHourItem","hour","renderHourPanel","renderMinuteItem","minute","renderMinutePanel","renderSecondItem","second","renderSecondPanel","_slot3","clearTimepicker","onTimepickerInput","renderPanel","clearDatetimepicker","renderPanels","renderDatePanel","renderTimePanel","minDuration","maxDuration","negativeText","days","hours","minutes","seconds","editValue","findPattern","pattern","replaceAll","humanizeValue","digitizeValue","dmatch","hmatch","mmatch","smatch","clearDurationpicker","onValueChange","onDurationpickerInput","onChange","optionProps","scrollProps","relative","sourceLabel","targetLabel","sourceChecked","selectedSource","tempSource","sourceIntermediate","targetChecked","selectedTarget","tempTarget","targetIntermediate","sourceSearch","searchPattern","targetSearch","moveItemsTarget","moveItemsSource","moveRowTarget","moveRowSource","moveToSource","moveToTarget","updateSelectedSource","updateSelectedTarget","renderSourceSelect","renderSourceTitle","counterHtml","renderSourceHeader","renderSourceSearch","renderSourceBody","onMove","renderTargetSelect","renderTargetTitle","renderTargetHeader","renderTargetSearch","renderTargetBody","renderMoveSource","renderMoveTarget","FormMessage","field","required_if","required_unless","same","diffrent","MIN_VALUE","minlength","maxlength","email","FormRules","isBool","form","dom","errors","kind","ignore","forceChange","forceErrors","rules","groups","ruleErrors","blocked","emitChange","resetChange","getGroups","appendGroup","removeGroup","is","appendItem","removeItem","prevState","nextState","validate","validateField","rule","_FormRules$name","_FormMessage$name","_rule$split2","_toArray","_arrayLikeToArray","message","err","includeErrors","getErrors","attrs","gotoField","renderField","itemProps","gotoInput","_createTextVNode","NFormFrame","tooltip","tooltipPosition","NFormGroup","getItems","toggleGroup","openGroup","closeGroup","renderCollapse","textHtml","renderAction","renderTooltip","NTabs","NTabsItem","NCollapse","NCollapseItem","tooltipWindow","conditional","conditionOn","conditionOff","enabled","toggleCondition","$input","childs","click","changeTab","showTab","renderCondition","renderError","showSearch","searchPlaceholder","searchIcon","onSearchInput","onScrollEvent","onMoveEvent","applyStar","block","onApplyStar","inviewMaxY","menu","lower","extract","indexOf","onClickEvent","star","renderSearch","searchProps","renderMenu","iconHtml","buttonProps","href","renderMenus","bodyProps","float","addTab","tab","$forceUpdate","removeTab","getTab","updateEvent","currentTab","sorted","updated","renderHeaderIndicator","tabs","keep","renderHeaderIcon","renderHeaderLabel","NTags","tags","addTag","removeTag","color","getSorted","hideTab","toggleTab","dragger","renderHeaderAction","renderHeaderAngle","angle","showDelay","order","NTable","sortProp","sortDir","closeFilterOnEnter","tempVisibleProps","tempSortProp","tempSortDir","tempFilter","tempFilterProps","makeVisibleProps","detectVisible","addColumn","column","removeColumn","getColumnIndex","getColumnVisiblity","getColumnSorted","getColumnFilter","filterProp","property","getColumnFiltered","detectVisibity","isect","sortByColumn","dir","replaceFilter","filters","resetFilter","refreshCurrent","columns","renderContext","renderHead","defaultRender","draggableHtml","Function","matrixDisabled","breakpoint","previewProp","matrix","matrixProp","fixedWidth","trueText","falseText","datetimeFormat","matrixValues","NTableColumn","tempWidth","changedStates","sortDirection","renderHeadLabel","renderHeadSort","renderHeadFilter","angleHtml","setFirstState","firstState","extends","TableCell","datetime","isRef","preview","previewProps","fit","toggleMatrix","toggleSelect","itemList","currentMatrix","combine","finder","canReset","canApply","getFilterClone","mountFilter","getFilterProp","getDefaultFilter","applyFilter","clearFilter","renderForm","renderApply","renderReset","TableFilter","operator","li","nl","eq","ne","lt","gt","in","ni","page","limit","limitOptions","maxPages","layout","pages","tempLimit","pageOptions","i","tempPage","forcePage","updatePaginate","paginate","onPrevPage","onPageInput","onNextPage","onFirstPage","onLastPage","onLimitInput","renderLimit","renderCount","renderGoto","renderFirst","angleDoubleLeft","renderLast","angleDoubleRight","renderPage","renderPages","view","className","syncEvent","bindSyncEvent","unbindSyncEvent","setValue","NInfo","infoHtml","InfoField","file","thumb","mime","showSrc","buttonText","renderButton","tempFile","tempThumb","NPreview","openBox","closeBox","renderTitle","renderPreview","PreviewHelper","getType","renderFull","renderModal","modalProps","btoa","getMime","buttonHtml","load","tempSrc","ImageCache","resolveLoad","resolveData","loaded","laod","reader","FileReader","onload","readAsDataURL","provider","resolveType","resolveYoutube","resolveVimeo","youtube","getYoutubeKey","vimeo","getVimeoKey","renderYoutube","renderVimeo","renderPlain","PreviewHandler","extension","getExt","PreviewMimes","exts","PreviewGroups","DefaultPreviewMimes","video","audio","font","application","lat","lng","zoom","NMap","callbacks","tempMap","focusMarkers","Map","getMap","onMount","tempMarker","importMarkerPosition","marker","setPosition","updateMarkerPosition","getPosition","initializeMarker","createMarker","addListener","setMarkerByAddress","address","Notify","clearableIcon","openContext","updateFile","files","clearFile","renderHidden","virtualValue","renderStars","rate","renderValue","vars","NDrawerStack","NDrawer","closeDrawer","NChart","axis","appendElement","removeElement","getClass","getColor","subdivide","colorLimit","otherLabel","overlap","renderLegend","vis","hid","renderCircle","gaps","distance","dashar","classBlock","propsBlock","propsHover","renderOtherCircle","others","renderSvg","reverse","temp","hidden","baseHtml","othersHtml","renderDonut","renderLegendOther","renderLegendItem","minHeight","renderBarItem","renderBarOther","renderBars","renderAxis","NanoImports","App","pi","directives","glob","globalProperties","primary","info","secondary","success","warning","danger","EmptyIcon","NConfig","NConfigNext","Scrollbar","Virtualscroller","Draglist","DraglistItem","Draggrid","DraggridItem","Dropzone","Loader","ResizerNext","components","PopoverGroup","PopoverOption","comp","Modal","Button","ButtonGroup","Input","InputNumber","Textarea","Select","SelectOption","Checkbox","CheckboxGroup","NRadio","Slider","Switch","CascaderPanel","Cascader","DatepickerPanel","Datepicker","TimepickerPanel","Timepicker","Datetimepicker","Durationpicker","Transfer","Form","FormBag","FormGroup","FormItem","FormFrame","Tabs","TabsItem","Tags","TagsItem","Collapse","CollapseItem","Table","TableColumn","TableCellString","TableCellBoolean","TableCellDatetime","TableCellOption","TableCellImage","TableCellMatrix","TableCellSelect","TableFilterString","TableFilterBoolean","TableFilterDatetime","TableFilterOption","Paginator","Info","InfoColumn","InfoFieldString","InfoFieldBoolean","InfoFieldDatetime","InfoFieldOption","InfoFieldImage","Preview","PreviewModal","PreviewPlain","PreviewImage","PreviewVideo","MapMarker","File","Rating","ChartItem","ChartDonut","ChartBar","circle","clock","calendar","angleUp","Install","CtorMixin","CmerMixin","CsloMixin","NanoModule","Nano"],"sourceRoot":""}
1
+ {"version":3,"file":"nano-ui.esm.js","mappings":"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","sources":["webpack://Nano/webpack/universalModuleDefinition","webpack://Nano/external umd {\"root\":\"Vue\",\"commonjs2\":\"vue\",\"commonjs\":\"vue\",\"amd\":\"vue\"}","webpack://Nano/external umd {\"root\":\"pi\",\"commonjs2\":\"@kizmann/pico-js\",\"commonjs\":\"@kizmann/pico-js\",\"amd\":\"@kizmann/pico-js\"}","webpack://Nano/webpack/bootstrap","webpack://Nano/webpack/runtime/define property getters","webpack://Nano/webpack/runtime/hasOwnProperty shorthand","webpack://Nano/webpack/runtime/make namespace object","webpack://Nano/./src/root/js/proto/ProtoExtend.ts","webpack://Nano/./src/root/js/proto/ProtoController.ts","webpack://Nano/./src/root/js/module/Styler.ts","webpack://Nano/./src/root/js/data/BaseData.ts","webpack://Nano/./src/root/js/data/IconData.ts","webpack://Nano/./src/root/js/proto/ProtoData.ts","webpack://Nano/./src/root/js/proto/ProtoView.ts","webpack://Nano/./src/root/js/controller/GroupController.ts","webpack://Nano/./src/root/js/data/PositionData.ts","webpack://Nano/./src/root/js/data/TextData.ts","webpack://Nano/./src/root/js/data/OptionData.ts","webpack://Nano/./src/root/js/data/DragData.ts","webpack://Nano/./src/root/js/prop/BaseProps.ts","webpack://Nano/./src/root/js/prop/IconProps.ts","webpack://Nano/./src/root/js/prop/AlignProps.ts","webpack://Nano/./src/root/js/prop/PositionProps.ts","webpack://Nano/./src/root/js/prop/TextProps.ts","webpack://Nano/./src/root/js/prop/OptionProps.ts","webpack://Nano/./src/root/js/prop/DragProps.ts","webpack://Nano/./src/root/js/helper/OptionHelper.ts","webpack://Nano/./src/root/js/module/Pointer.ts","webpack://Nano/./src/root/index.ts","webpack://Nano/./src/modal/js/handler/NModalElement.ts","webpack://Nano/./src/modal/js/handler/NModalHandler.ts","webpack://Nano/./src/signal/js/alert/NAlertElement.ts","webpack://Nano/./src/signal/js/alert/NAlertHandler.ts","webpack://Nano/./src/signal/js/confirm/NConfirmElement.ts","webpack://Nano/./src/signal/js/confirm/NConfirmHandler.ts","webpack://Nano/./src/signal/js/notify/NNotifyElement.ts","webpack://Nano/./src/signal/js/notify/NNotifyHandler.ts","webpack://Nano/./src/signal/index.ts","webpack://Nano/./src/input/js/input/NInputData.ts","webpack://Nano/./src/input/js/input/NInputView.ts","webpack://Nano/./src/input/js/input/NInputController.ts","webpack://Nano/./src/input/js/input/NInput.ts","webpack://Nano/./src/input/js/input-number/NInputNumberData.ts","webpack://Nano/./src/input/js/input-number/NInputNumberView.ts","webpack://Nano/./src/input/js/input-number/NInputNumberController.ts","webpack://Nano/./src/input/js/input-number/NInputNumber.ts","webpack://Nano/./src/input/js/input-file/NInputFileData.ts","webpack://Nano/./src/input/js/input-file/NInputFileView.ts","webpack://Nano/./src/input/js/input-file/NInputFileController.ts","webpack://Nano/./src/input/js/input-file/NInputFile.ts","webpack://Nano/./src/input/js/textarea/NTextareaData.ts","webpack://Nano/./src/input/js/textarea/NTextareaView.ts","webpack://Nano/./src/input/js/textarea/NTextareaController.ts","webpack://Nano/./src/input/js/textarea/NTextarea.ts","webpack://Nano/./src/button/js/button/NButtonView.ts","webpack://Nano/./src/button/js/button/NButtonData.ts","webpack://Nano/./src/button/js/button/NButtonController.ts","webpack://Nano/./src/button/js/button/NButton.ts","webpack://Nano/./src/button/js/button-group/NButtonGroupView.ts","webpack://Nano/./src/button/js/button-group/NButtonGroupData.ts","webpack://Nano/./src/button/js/button-group/NButtonGroupController.ts","webpack://Nano/./src/button/js/button-group/NButtonGroup.ts","webpack://Nano/./src/checkbox/js/checkbox/NCheckboxView.ts","webpack://Nano/./src/checkbox/js/checkbox/NCheckboxData.ts","webpack://Nano/./src/checkbox/js/checkbox/NCheckboxController.ts","webpack://Nano/./src/checkbox/js/checkbox/NCheckboxControllerGlobal.ts","webpack://Nano/./src/checkbox/js/checkbox/NCheckboxControllerSingle.ts","webpack://Nano/./src/checkbox/js/checkbox/NCheckbox.ts","webpack://Nano/./src/checkbox/js/checkbox-group/NCheckboxGroupView.ts","webpack://Nano/./src/checkbox/js/checkbox-group/NCheckboxGroupData.ts","webpack://Nano/./src/checkbox/js/checkbox-group/NCheckboxGroupController.ts","webpack://Nano/./src/checkbox/js/checkbox-group/NCheckboxGroup.ts","webpack://Nano/./src/radio/js/radio/NRadioView.ts","webpack://Nano/./src/radio/js/radio/NRadioData.ts","webpack://Nano/./src/radio/js/radio/NRadioController.ts","webpack://Nano/./src/radio/js/radio/NRadio.ts","webpack://Nano/./src/radio/js/radio-group/NRadioGroupView.ts","webpack://Nano/./src/radio/js/radio-group/NRadioGroupData.ts","webpack://Nano/./src/radio/js/radio-group/NRadioGroupController.ts","webpack://Nano/./src/radio/js/radio-group/NRadioGroup.ts","webpack://Nano/./src/popover/js/popover-panel/NPopoverPanelView.ts","webpack://Nano/./src/popover/js/popover-panel/NPopoverPanelData.ts","webpack://Nano/./src/popover/js/popover-panel/NPopoverPanelController.ts","webpack://Nano/./src/select/js/select/NSelectView.ts","webpack://Nano/./src/select/js/select/NSelectData.ts","webpack://Nano/./src/select/js/select/NSelectController.ts","webpack://Nano/./src/select/js/select/NSelect.ts","webpack://Nano/./src/switch/js/switch/NSwitchView.ts","webpack://Nano/./src/switch/js/switch/NSwitchData.ts","webpack://Nano/./src/switch/js/switch/NSwitchController.ts","webpack://Nano/./src/switch/js/switch/NSwitch.ts","webpack://Nano/./src/cascader/js/cascader-panel/NCascaderPanelView.ts","webpack://Nano/./src/cascader/js/cascader-panel/NCascaderPanelData.ts","webpack://Nano/./src/cascader/js/helper/NCascaderHelper.ts","webpack://Nano/./src/cascader/js/cascader-panel/NCascaderPanelController.ts","webpack://Nano/./src/cascader/js/cascader-panel/NCascaderPanel.ts","webpack://Nano/./src/cascader/js/cascader/NCascaderView.ts","webpack://Nano/./src/cascader/js/cascader/NCascaderData.ts","webpack://Nano/./src/cascader/js/cascader/NCascaderController.ts","webpack://Nano/./src/cascader/js/cascader/NCascader.ts","webpack://Nano/./src/popover/js/popover/NPopoverView.ts","webpack://Nano/./src/popover/js/popover/NPopoverData.ts","webpack://Nano/./src/popover/js/handler/NPopoverElement.ts","webpack://Nano/./src/popover/js/handler/NPopoverHandler.ts","webpack://Nano/./src/popover/js/popover/NPopoverController.ts","webpack://Nano/./src/popover/js/popover/NPopover.ts","webpack://Nano/./src/popover/js/popover-group/NPopoverGroupView.ts","webpack://Nano/./src/popover/js/popover-group/NPopoverGroupData.ts","webpack://Nano/./src/popover/js/popover-group/NPopoverGroupController.ts","webpack://Nano/./src/popover/js/popover-group/NPopoverGroup.ts","webpack://Nano/./src/popover/js/popover-option/NPopoverOptionView.ts","webpack://Nano/./src/popover/js/popover-option/NPopoverOptionData.ts","webpack://Nano/./src/popover/js/popover-option/NPopoverOptionController.ts","webpack://Nano/./src/popover/js/popover-option/NPopoverOption.ts","webpack://Nano/./src/scrollbar/js/scrollbar/NScrollbarView.ts","webpack://Nano/./src/scrollbar/js/scrollbar/NScrollbarData.ts","webpack://Nano/./src/scrollbar/js/handler/NScrollbarHelper.ts","webpack://Nano/./src/scrollbar/js/handler/NScrollbarElement.ts","webpack://Nano/./src/scrollbar/js/scrollbar/NScrollbarController.ts","webpack://Nano/./src/scrollbar/js/scrollbar/NScrollbar.ts","webpack://Nano/./src/scrollbar/js/virtualbar/NVirtualbarView.ts","webpack://Nano/./src/scrollbar/js/virtualbar/NVirtualbarData.ts","webpack://Nano/./src/scrollbar/js/virtualbar/NVirtualbarController.ts","webpack://Nano/./src/scrollbar/js/virtualbar/NVirtualbar.ts","webpack://Nano/./src/resizer/js/resizer/NResizerView.ts","webpack://Nano/./src/resizer/js/resizer/NResizerData.ts","webpack://Nano/./src/resizer/js/resizer/NResizerController.ts","webpack://Nano/./src/resizer/js/resizer/NResizer.ts","webpack://Nano/./src/draggable/js/drag/NDragIndicator.ts","webpack://Nano/./src/draggable/js/drag/NDragCounter.ts","webpack://Nano/./src/draggable/js/drag/NDragReciever.ts","webpack://Nano/./src/draggable/js/drag/NDragHandler.ts","webpack://Nano/./src/draggable/js/draglist/NDraglistView.ts","webpack://Nano/./src/draggable/js/draglist/NDraglistData.ts","webpack://Nano/./src/draggable/js/helper/NDragHelper.ts","webpack://Nano/./src/draggable/js/helper/NVirtualHelper.ts","webpack://Nano/./src/draggable/js/draglist/NDraglistController.ts","webpack://Nano/./src/draggable/js/draglist/NDraglist.ts","webpack://Nano/./src/draggable/js/dropzone/NDropzoneView.ts","webpack://Nano/./src/draggable/js/dropzone/NDropzoneData.ts","webpack://Nano/./src/draggable/js/dropzone/NDropzoneController.ts","webpack://Nano/./src/draggable/js/dropzone/NDropzone.ts","webpack://Nano/./src/table/js/table/NTableView.ts","webpack://Nano/./src/table/js/table/NTableData.ts","webpack://Nano/./src/table/js/table/NTableController.ts","webpack://Nano/./src/table/js/table/NTable.ts","webpack://Nano/./src/table/js/table-column/NTableColumnView.ts","webpack://Nano/./src/table/js/table-column/NTableColumnData.ts","webpack://Nano/./src/table/js/table-column/NTableColumnController.ts","webpack://Nano/./src/table/js/table-column/NTableColumn.ts","webpack://Nano/./src/table/js/paginator/NPaginatorView.ts","webpack://Nano/./src/table/js/paginator/NPaginatorData.ts","webpack://Nano/./src/table/js/paginator/NPaginatorController.ts","webpack://Nano/./src/table/js/paginator/NPaginator.ts","webpack://Nano/./src/table/js/table-cell/NTableCellString.ts","webpack://Nano/./src/table/js/table-cell/NTableCellBoolean.ts","webpack://Nano/./src/table/js/table-cell/NTableCellDatetime.ts","webpack://Nano/./src/table/js/table-cell/NTableCellOption.ts","webpack://Nano/./src/table/js/table-cell/NTableCellSelect.ts","webpack://Nano/./src/table/js/table-cell/NTableCellMatrix.ts","webpack://Nano/./src/table/js/table-cell/NTableCellImage.ts","webpack://Nano/./src/table/js/table-filter/NTableFilterString.ts","webpack://Nano/./src/table/js/table-filter/NTableFilterOption.ts","webpack://Nano/./src/table/js/table-filter/NTableFilterDatetime.ts","webpack://Nano/./src/table/index.ts","webpack://Nano/./src/table/js/plugin/NTableSelectPlugin.ts","webpack://Nano/./src/table/js/plugin/NTableMatrixPlugin.ts","webpack://Nano/./src/info/js/info/NInfoView.ts","webpack://Nano/./src/info/js/info/NInfoData.ts","webpack://Nano/./src/info/js/info/NInfoController.ts","webpack://Nano/./src/info/js/info/NInfo.ts","webpack://Nano/./src/info/js/info-column/NInfoColumnView.ts","webpack://Nano/./src/info/js/info-column/NInfoColumnData.ts","webpack://Nano/./src/info/js/info-column/NInfoColumnController.ts","webpack://Nano/./src/info/js/info-column/NInfoColumn.ts","webpack://Nano/./src/info/index.ts","webpack://Nano/./src/empty/js/empty-icon/NEmptyIconView.ts","webpack://Nano/./src/empty/js/empty-icon/NEmptyIconData.ts","webpack://Nano/./src/empty/js/empty-icon/NEmptyIconController.ts","webpack://Nano/./src/empty/js/empty-icon/NEmptyIcon.ts","webpack://Nano/./src/modal/js/modal/NModalView.ts","webpack://Nano/./src/modal/js/modal/NModalData.ts","webpack://Nano/./src/modal/js/modal/NModalController.ts","webpack://Nano/./src/modal/js/modal/NModal.ts","webpack://Nano/./src/modal/js/drawer/NDrawerView.ts","webpack://Nano/./src/modal/js/drawer/NDrawerData.ts","webpack://Nano/./src/modal/js/drawer/NDrawerController.ts","webpack://Nano/./src/modal/js/drawer/NDrawer.ts","webpack://Nano/./src/loader/js/loader/NLoaderView.ts","webpack://Nano/./src/loader/js/loader/NLoaderData.ts","webpack://Nano/./src/loader/js/loader/NLoaderController.ts","webpack://Nano/./src/loader/js/loader/NLoader.ts","webpack://Nano/./src/datetime/js/datepicker-panel/NDatepickerPanelView.ts","webpack://Nano/./src/datetime/js/datepicker-panel/NDatepickerPanelData.ts","webpack://Nano/./src/datetime/js/helper/NDateHelper.ts","webpack://Nano/./src/datetime/js/datepicker-panel/NDatepickerPanelController.ts","webpack://Nano/./src/datetime/js/datepicker-panel/NDatepickerPanel.ts","webpack://Nano/./src/datetime/js/datepicker/NDatepickerView.ts","webpack://Nano/./src/datetime/js/datepicker/NDatepickerData.ts","webpack://Nano/./src/datetime/js/datepicker/NDatepickerController.ts","webpack://Nano/./src/datetime/js/datepicker/NDatepicker.ts","webpack://Nano/./src/datetime/js/timepicker-panel/NTimepickerPanelView.ts","webpack://Nano/./src/datetime/js/timepicker-panel/NTimepickerPanelData.ts","webpack://Nano/./src/datetime/js/timepicker-panel/NTimepickerPanelController.ts","webpack://Nano/./src/datetime/js/timepicker-panel/NTimepickerPanel.ts","webpack://Nano/./src/datetime/js/timepicker/NTimepickerView.ts","webpack://Nano/./src/datetime/js/timepicker/NTimepickerData.ts","webpack://Nano/./src/datetime/js/timepicker/NTimepickerController.ts","webpack://Nano/./src/datetime/js/timepicker/NTimepicker.ts","webpack://Nano/./src/datetime/js/datetimepicker/NDatetimepickerView.ts","webpack://Nano/./src/datetime/js/datetimepicker/NDatetimepickerData.ts","webpack://Nano/./src/datetime/js/datetimepicker/NDatetimepickerController.ts","webpack://Nano/./src/datetime/js/datetimepicker/NDatetimepicker.ts","webpack://Nano/./src/datetime/js/durationpicker/NDurationpickerView.ts","webpack://Nano/./src/datetime/js/durationpicker/NDurationpickerData.ts","webpack://Nano/./src/datetime/js/durationpicker/NDurationpickerController.ts","webpack://Nano/./src/datetime/js/durationpicker/NDurationpicker.ts","webpack://Nano/./src/transfer/js/transfer/NTransferView.ts","webpack://Nano/./src/transfer/js/transfer/NTransferData.ts","webpack://Nano/./src/transfer/js/transfer/NTransferController.ts","webpack://Nano/./src/transfer/js/transfer/NTransfer.ts","webpack://Nano/./src/tabs/js/tabs/NTabsView.ts","webpack://Nano/./src/tabs/js/tabs/NTabsData.ts","webpack://Nano/./src/tabs/js/tabs/NTabsController.ts","webpack://Nano/./src/tabs/js/tabs/NTabs.ts","webpack://Nano/./src/tabs/js/tabs-item/NTabsItemView.ts","webpack://Nano/./src/tabs/js/tabs-item/NTabsItemData.ts","webpack://Nano/./src/tabs/js/tabs-item/NTabsItemController.ts","webpack://Nano/./src/tabs/js/tabs-item/NTabsItem.ts","webpack://Nano/./src/collapse/js/collapse/NCollapseView.ts","webpack://Nano/./src/collapse/js/collapse/NCollapseData.ts","webpack://Nano/./src/collapse/js/collapse/NCollapseController.ts","webpack://Nano/./src/collapse/js/collapse/NCollapse.ts","webpack://Nano/./src/collapse/js/collapse-item/NCollapseItemView.ts","webpack://Nano/./src/collapse/js/collapse-item/NCollapseItemData.ts","webpack://Nano/./src/collapse/js/collapse-item/NCollapseItemController.ts","webpack://Nano/./src/collapse/js/collapse-item/NCollapseItem.ts","webpack://Nano/./src/visuals/js/tag/NTagView.ts","webpack://Nano/./src/visuals/js/tag/NTagData.ts","webpack://Nano/./src/visuals/js/tag/NTagController.ts","webpack://Nano/./src/visuals/js/tag/NTag.ts","webpack://Nano/./src/visuals/js/rating/NRatingView.ts","webpack://Nano/./src/visuals/js/rating/NRatingData.ts","webpack://Nano/./src/visuals/js/rating/NRatingController.ts","webpack://Nano/./src/visuals/js/rating/NRating.ts","webpack://Nano/./src/preview/js/preview/NPreviewView.ts","webpack://Nano/./src/preview/js/helper/NPreviewHelper.ts","webpack://Nano/./src/preview/js/preview/NPreviewData.ts","webpack://Nano/./src/preview/js/handler/NPreviewElement.ts","webpack://Nano/./src/preview/js/handler/NPreviewHandler.ts","webpack://Nano/./src/preview/js/preview/NPreviewController.ts","webpack://Nano/./src/preview/js/preview/NPreview.ts","webpack://Nano/./src/preview/js/preview-module/NPreviewFileModule.ts","webpack://Nano/./src/preview/js/preview-module/NPreviewImageModule.ts","webpack://Nano/./src/preview/js/preview-module/NPreviewVideoModule.ts","webpack://Nano/./src/preview/index.ts","webpack://Nano/./src/slider/js/slider/NSliderView.ts","webpack://Nano/./src/slider/js/slider/NSliderData.ts","webpack://Nano/./src/slider/js/slider/NSliderController.ts","webpack://Nano/./src/slider/js/slider/NSlider.ts","webpack://Nano/./src/form/js/form/NFormView.ts","webpack://Nano/./src/form/js/form/NFormData.ts","webpack://Nano/./src/form/js/form-rules/module/NFormRuleRequired.ts","webpack://Nano/./src/form/js/form-rules/module/NFormRuleRequiredIf.ts","webpack://Nano/./src/form/js/form-rules/module/NFormRuleRequiredUnless.ts","webpack://Nano/./src/form/js/form-rules/module/NFormRuleSame.ts","webpack://Nano/./src/form/js/form-rules/module/NFormRuleDiffrent.ts","webpack://Nano/./src/form/js/form-rules/module/NFormRuleValue.ts","webpack://Nano/./src/form/js/form-rules/module/NFormRuleEmail.ts","webpack://Nano/./src/form/js/form-rules/module/NFormRuleMin.ts","webpack://Nano/./src/form/js/form-rules/module/NFormRuleMax.ts","webpack://Nano/./src/form/js/form-rules/module/NFormRuleMinlength.ts","webpack://Nano/./src/form/js/form-rules/module/NFormRuleMaxlength.ts","webpack://Nano/./src/form/js/form-rules/NFormRuleHandler.ts","webpack://Nano/./src/form/js/form/NFormController.ts","webpack://Nano/./src/form/js/form/NForm.ts","webpack://Nano/./src/form/js/form-item/NFormItemView.ts","webpack://Nano/./src/form/js/form-item/NFormItemData.ts","webpack://Nano/./src/form/js/form-item/NFormItemController.ts","webpack://Nano/./src/form/js/form-item/NFormItem.ts","webpack://Nano/./src/form/js/form-bag/NFormBagView.ts","webpack://Nano/./src/form/js/form-bag/NFormBagData.ts","webpack://Nano/./src/form/js/form-bag/NFormBagController.ts","webpack://Nano/./src/form/js/form-bag/NFormBag.ts","webpack://Nano/./src/form/js/form-group/NFormGroupView.ts","webpack://Nano/./src/form/js/form-group/NFormGroupData.ts","webpack://Nano/./src/form/js/form-group/NFormGroupController.ts","webpack://Nano/./src/form/js/form-group/NFormGroup.ts","webpack://Nano/./src/form/js/form-frame/NFormFrameView.ts","webpack://Nano/./src/form/js/form-frame/NFormFrameData.ts","webpack://Nano/./src/form/js/form-frame/NFormFrameController.ts","webpack://Nano/./src/form/js/form-frame/NFormFrame.ts","webpack://Nano/./src/config/js/config/NConfigView.ts","webpack://Nano/./src/config/js/config/NConfigData.ts","webpack://Nano/./src/config/js/config/NConfigController.ts","webpack://Nano/./src/config/js/config/NConfig.ts","webpack://Nano/./src/chart/js/chart-bar/NChartBarView.ts","webpack://Nano/./src/chart/js/chart-bar/NChartBarData.ts","webpack://Nano/./src/chart/js/chart-bar/NChartBarController.ts","webpack://Nano/./src/chart/js/chart-bar/NChartBar.ts","webpack://Nano/./src/chart/js/chart-donut/NChartDonutView.ts","webpack://Nano/./src/chart/js/chart-donut/NChartDonutData.ts","webpack://Nano/./src/chart/js/chart-donut/NChartDonutController.ts","webpack://Nano/./src/chart/js/chart-donut/NChartDonut.ts","webpack://Nano/./src/chart/js/chart-item/NChartItemView.ts","webpack://Nano/./src/chart/js/chart-item/NChartItemData.ts","webpack://Nano/./src/chart/js/chart-item/NChartItemController.ts","webpack://Nano/./src/chart/js/chart-item/NChartItem.ts","webpack://Nano/./src/map/js/map/NMapView.ts","webpack://Nano/./src/map/js/map/NMapData.ts","webpack://Nano/./src/map/js/map/NMapController.ts","webpack://Nano/./src/map/js/map/NMap.ts","webpack://Nano/./src/map/js/map-marker/NMapMarkerView.ts","webpack://Nano/./src/map/js/map-marker/NMapMarkerData.ts","webpack://Nano/./src/map/js/map-marker/NMapMarkerController.ts","webpack://Nano/./src/map/js/map-marker/NMapMarker.ts","webpack://Nano/./src/root/js/legacy/ctor.ts","webpack://Nano/./src/root/js/legacy/cmer.ts","webpack://Nano/./src/root/js/legacy/cslo.ts","webpack://Nano/./src/index.esm.ts","webpack://Nano/./src/input/index.ts","webpack://Nano/./src/button/index.ts","webpack://Nano/./src/checkbox/index.ts","webpack://Nano/./src/radio/index.ts","webpack://Nano/./src/select/index.ts","webpack://Nano/./src/switch/index.ts","webpack://Nano/./src/popover/index.ts","webpack://Nano/./src/scrollbar/index.ts","webpack://Nano/./src/resizer/index.ts","webpack://Nano/./src/draggable/index.ts","webpack://Nano/./src/empty/index.ts","webpack://Nano/./src/cascader/index.ts","webpack://Nano/./src/modal/index.ts","webpack://Nano/./src/loader/index.ts","webpack://Nano/./src/datetime/index.ts","webpack://Nano/./src/transfer/index.ts","webpack://Nano/./src/tabs/index.ts","webpack://Nano/./src/collapse/index.ts","webpack://Nano/./src/visuals/index.ts","webpack://Nano/./src/slider/index.ts","webpack://Nano/./src/form/index.ts","webpack://Nano/./src/config/index.ts","webpack://Nano/./src/chart/index.ts","webpack://Nano/./src/map/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@kizmann/pico-js\"), require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@kizmann/pico-js\", \"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Nano\"] = factory(require(\"@kizmann/pico-js\"), require(\"vue\"));\n\telse\n\t\troot[\"Nano\"] = factory(root[\"pi\"], root[\"Vue\"]);\n})(self, (__WEBPACK_EXTERNAL_MODULE__55__, __WEBPACK_EXTERNAL_MODULE__122__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__122__;","module.exports = __WEBPACK_EXTERNAL_MODULE__55__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { Arr, Mix } from \"@kizmann/pico-js\";\n\ntype Constructor = new (...args: any[]) => any;\n\nexport const ProtoExtend: any = (values: Constructor[], construct: boolean = true): Constructor => {\n\n let First: Constructor = class { };\n\n if ( values.length && construct ) {\n First = values[0];\n }\n\n Arr.each(values, (value: Constructor) => {\n Mix.extend(First.prototype, value.prototype);\n });\n\n return First;\n}\n\nexport default ProtoExtend;","import { onUnmounted, inject, watch, computed, ComponentInternalInstance, getCurrentInstance, isRef, onBeforeUnmount, onMounted, ref, SetupContext } from \"vue\";\nimport { Run, Mix, Arr, Dom, Hash, Signal, Obj } from \"@kizmann/pico-js\";\nimport { ProtoData, ProtoView } from \"../../index.ts\";\n\nexport interface FakeInternalInstance extends ComponentInternalInstance\n{\n ncx : ProtoController;\n ctx : any;\n setupState : Record<string, any>;\n}\n\nexport class ProtoController\n{\n /**\n * @type {FakeInternalInstance}\n */\n instance : FakeInternalInstance;\n\n /**\n * @type {SetupContext}\n */\n context : SetupContext;\n\n /**\n * @type {any}\n */\n props : any;\n\n scope : ProtoController;\n\n /**\n * @type {ProtoView}\n */\n view : ProtoView;\n\n /**\n * @type {ProtoData}\n */\n data : ProtoData;\n\n vals : object = {};\n\n /**\n * @type {object}\n */\n refs : object = {};\n\n /**\n @type {object}\n */\n signals : object = {};\n\n /**\n * @type {string}\n */\n uid : string;\n\n /**\n * @type {HTMLElement | null}\n */\n el : HTMLElement | null;\n\n constructor(props : object, context : SetupContext)\n {\n [this.props, this.context] = [\n props, context,\n ];\n }\n\n setup()\n {\n // @ts-ignore\n this.instance = getCurrentInstance();\n\n if ( !this.instance.ncx ) {\n this.instance.ncx = this;\n }\n\n this.scope = this;\n\n this.injectRef([\n 'form-item', 'NFormItem'\n ]);\n\n onMounted(() => {\n this.el = this.ref('el')?.value;\n });\n\n onMounted(() => {\n this.onMounted();\n });\n\n onUnmounted(() => {\n this.onUnmounted();\n });\n\n onBeforeUnmount(() => {\n Arr.each(this.signals, (v : any, k : string) => {\n this.offSignal(k);\n });\n });\n\n return this;\n }\n\n onMounted()\n {\n //\n }\n\n onUnmounted()\n {\n //\n }\n\n dispose(fn : Function)\n {\n onUnmounted(() => {\n Run.delay(fn, 2000);\n });\n }\n\n pass(keys : any = [])\n {\n Arr.each(keys, (fn: string, key : string) => {\n this.instance.ctx[key] = (...args : any[]) => this[fn](...args);\n });\n }\n\n unpack()\n {\n return {\n scope: this.scope,\n el: this.el,\n view: this.view,\n data: this.data,\n refs: this.refs\n };\n }\n\n render()\n {\n return () => this.view.default();\n }\n\n has(key : string)\n {\n return Mix.isUndef(this.vals[key]);\n }\n\n empty(key : string)\n {\n if ( !isRef(this.vals[key]) ) {\n return Mix.isEmpty(this.vals[key]);\n }\n\n return Mix.isEmpty(this.vals[key].value);\n }\n\n get(key : string, fallback : any = undefined)\n {\n if ( this.vals[key] === undefined ) {\n return this.prop(key, fallback);\n }\n\n if ( !isRef(this.vals[key]) ) {\n return this.vals[key] ?? fallback;\n }\n\n return this.vals[key].value;\n }\n\n set(key : string, value : any)\n {\n if ( !isRef(this.vals[key]) ) {\n return this.vals[key] = value;\n }\n\n return this.vals[key].value = value;\n }\n\n update(key : string, value : any)\n {\n this.context.emit(`update:${key}`, ...[\n this.set(key, value)\n ]);\n\n return this.get(key);\n }\n\n prop(key : string, fallback : any = null)\n {\n if ( !isRef(this.props[key]) ) {\n return this.props[key] ?? fallback;\n }\n\n return this.props[key].value;\n }\n\n ref(key : string, fallback : any = null)\n {\n return this.refs[key] ?? fallback;\n }\n\n ncx(key : string)\n {\n if ( this.refs[key]?.ncx ) {\n return this.refs[key].ncx;\n }\n\n return this.refs[key]?.value?._?.ncx;\n }\n\n rel(key : string)\n {\n if ( this.refs[key]?.value?.$el ) {\n return this.refs[key].value.$el;\n }\n\n return this.refs[key]?.value;\n }\n\n dom(key : string)\n {\n if ( this.refs[key]?.value?.$el ) {\n // @ts-ignore\n return Dom.make(this.refs[key].value.$el);\n }\n\n // @ts-ignore\n return Dom.make(this.refs[key]?.value);\n }\n\n emit(event : string, ...args : any[])\n {\n return this.context.emit(event, ...args);\n }\n\n injectRef(key : string | string[], fallback : any = null)\n {\n if ( Mix.isStr(key) ) {\n // @ts-ignore\n key = [key, key];\n }\n\n return this.refs[key[0]] = inject(key[1], fallback);\n }\n\n cloneProp(key : string, options : any = {})\n {\n this.vals[key] = ref(this.props[key]);\n\n if ( !Mix.isPrim(this.vals[key].value) ) {\n options.deep ??= true;\n }\n\n watch(() => this.props[key], (value) => {\n this.set(key, value);\n }, options);\n\n return this;\n }\n\n linkProp(key : string | string[], source : any = null, freeze : boolean = false)\n {\n if ( Mix.isStr(key) ) {\n // @ts-ignore\n key = [key, key];\n }\n\n if ( source == null ) {\n source = this.props;\n }\n\n if ( source.ncx?.vals ) {\n source = source.ncx.vals;\n }\n\n if ( isRef(source[key[1]]) ) {\n this.vals[key[0]] = source[key[1]];\n }\n\n const fn = () => {\n\n const value = source[key[1]];\n\n if ( !freeze ) {\n return value;\n }\n\n return Object.freeze(value);\n };\n\n if ( !this.vals[key[0]] ) {\n this.vals[key[0]] = computed(fn);\n }\n\n return this;\n }\n\n watchProp(key : string, cb : Function, options : any = {})\n {\n if ( !Mix.isPrim(this.vals[key]?.value) ) {\n options.deep ??= true;\n }\n\n watch(() => this.props[key], (v) => {\n cb(v);\n }, options);\n\n return this;\n }\n\n watchData(key : string, cb : Function, options : any = {})\n {\n if ( !Mix.isPrim(this.vals[key]?.value) ) {\n options.deep ??= true;\n }\n\n watch(this.vals[key], (v) => {\n cb(v);\n }, options);\n\n return this;\n }\n\n makeLinkData(key : string, source : any, cb : Function, options : any = {})\n {\n this.vals[key] = ref(cb());\n\n watch(() => this.vals[source], () => {\n this.vals[key].value = cb();\n }, options);\n\n return this;\n }\n\n makeLinkProp(key : string, source : any, cb : Function, options : any = {})\n {\n this.vals[key] = ref(cb());\n\n watch(() => this.props[source], () => {\n this.vals[key].value = cb();\n }, options);\n\n return this;\n }\n\n compData(key : string, cb : Function)\n {\n this.vals[key] = computed(() => {\n return cb.call(this);\n });\n\n return this;\n }\n\n makeData(key : string, value : any = null)\n {\n this.vals[key] = ref(value);\n\n return this;\n }\n\n exposeData(key : string)\n {\n this.instance.setupState = {\n ...this.instance.setupState ?? {}, [key]: this.vals[key]\n };\n\n return this;\n }\n\n makeRef(key : string)\n {\n this.refs[key] = ref(null);\n\n return this;\n }\n\n makeUID()\n {\n this.uid = this.prop('uid') ?? Hash.uuid();\n }\n\n passProps(value : any, keys : string[] = [])\n {\n Arr.each(keys, (key) => {\n value[key] = this.get(key);\n });\n\n return value;\n }\n\n onSignal(event : string, cb : Function)\n {\n const uid = Hash.uuid();\n Signal.bind(event, cb, { uid });\n this.signals[uid] = event;\n }\n\n offSignal(uid : string)\n {\n if ( this.signals[uid] ) {\n Signal.unbind(this.signals[uid], { uid });\n }\n }\n\n fireSignal(event : string, ...args : any[])\n {\n Signal.fire(event, ...args);\n }\n\n applyClear()\n {\n const clearValue = Obj.clone(...[\n this.data.clearValue\n ]);\n\n this.update('modelValue', clearValue);\n }\n\n get attrs()\n {\n return this.context.attrs;\n }\n\n}\n\nexport default ProtoController;","import { Mix, Obj } from \"@kizmann/pico-js\";\n\nconst ICONS_SIGNAL = {\n 'default': 'fa fa-circle-check',\n 'info': 'fa fa-circle-info',\n 'success': 'fa fa-circle-check',\n 'warning': 'fa fa-circle-exclamation',\n 'danger': 'fa fa-circle-xmark',\n};\n\nconst ICONS_PREVIEW = {\n 'default': 'fa fa-magnifying-glass-plus',\n 'video': 'fa fa-play',\n};\n\nconst ICONS_DEFAULT = {\n 'locate': 'fa fa-location-crosshairs',\n 'revert': 'fa fa-clock-rotate-left',\n 'prev': 'fa fa-angle-left',\n 'prev-first': 'fa fa-angle-double-left',\n 'next': 'fa fa-angle-right',\n 'next-last': 'fa fa-angle-double-right',\n 'check': 'fa fa-check',\n 'angle-left': 'fa fa-angle-left',\n 'angle-right': 'fa fa-angle-right',\n 'angle-up': 'fa fa-angle-up',\n 'angle-down': 'fa fa-angle-down',\n 'search': 'fa fa-search',\n 'times': 'fa fa-times',\n 'minus': 'fa fa-minus',\n 'clock': 'fa fa-clock',\n 'calendar': 'fa fa-calendar-days',\n 'duration': 'fa fa-stopwatch'\n};\n\nexport class Styler\n{\n /**\n * @type {number}\n */\n static limitwheel : number = 19;\n\n /**\n * @type {any}\n */\n static icons : any = {\n default: ICONS_DEFAULT,\n preview: ICONS_PREVIEW,\n alert: ICONS_SIGNAL,\n confirm: ICONS_SIGNAL,\n notify: ICONS_SIGNAL,\n };\n\n static bem(bem : string, options : any = {}) : string[]\n {\n let classList = [bem];\n\n if ( options.theme ) {\n classList.push('n-theme-' + options.theme);\n }\n\n if ( options.type ) {\n classList.push('n-type-' + options.type);\n }\n\n if ( options.size ) {\n classList.push('n-size-' + options.size);\n }\n\n return classList;\n }\n\n static button(options : any = {}, bem : string = 'n-button') : string[]\n {\n let classList = this.bem(bem, options);\n\n if ( options.glass ) {\n classList.push(bem + '--glass');\n }\n\n if ( options.link ) {\n classList.push(bem + '--link');\n }\n\n return classList;\n }\n\n static icon(type : string, group: string = 'default', fallback : string = 'default') : string\n {\n if ( type == null ) {\n type = fallback;\n }\n\n if ( Obj.has(this.icons, [group, type]) ) {\n return Obj.get(this.icons, [group, type]);\n }\n\n return Obj.get(this.icons, [group, fallback]);\n }\n\n static wheel(index: number | string) : number\n {\n index = Mix.int(index);\n\n if ( index >= 0 && index <= this.limitwheel ) {\n return index;\n }\n\n const tank = Math.floor(...[\n index / this.limitwheel\n ]);\n\n // Put in 30 get 12 if limit is 20\n return index - (tank * this.limitwheel);\n }\n\n}\n\nexport default Styler;","import { ProtoController } from \"../../index.ts\";\nimport Styler from \"../module/Styler.ts\";\n\nexport class BaseData\n{\n /**\n * @type {ProtoController}\n */\n declare scope : ProtoController;\n\n /**\n * @returns {boolean}\n */\n get load() : boolean\n {\n return this.scope.get('load');\n }\n\n /**\n * @param {boolean} value\n */\n set load(value : boolean)\n {\n this.scope.set('load', value);\n }\n\n /**\n * @returns {boolean}\n */\n get disabled() : boolean\n {\n return this.scope.get('disabled');\n }\n\n /**\n * @param {boolean} value\n */\n set disabled(value : boolean)\n {\n this.scope.set('disabled', value);\n }\n\n /**\n * @returns {string}\n */\n get size() : string\n {\n return this.scope.get('size');\n }\n\n /**\n * @param {string} value\n */\n set size(value : string)\n {\n this.scope.set('size', value);\n }\n\n /**\n * @returns {string}\n */\n get type() : string\n {\n return this.scope.get('type');\n }\n\n /**\n * @returns {string|number}\n */\n get color() : string | number\n {\n return this.scope.get('color');\n }\n\n /**\n * @returns {string|number}\n */\n get $color() : string | number\n {\n return this.color ? Styler.wheel(this.color) : null;\n }\n\n /**\n * @param {string} value\n */\n set type(value : string)\n {\n this.scope.set('type', value);\n }\n\n /**\n * @returns {string}\n */\n get theme() : string\n {\n return this.scope.get('theme');\n }\n\n /**\n * @param {string} value\n */\n set theme(value : string)\n {\n this.scope.set('theme', value);\n }\n\n /**\n * @returns {boolean}\n */\n get clearable() : boolean\n {\n return this.scope.get('clearable');\n }\n\n /**\n * @param {boolean} value\n */\n set clearable(value : boolean)\n {\n this.scope.set('clearable', value);\n }\n\n /**\n * @returns {any}\n */\n get clearValue() : any\n {\n return this.scope.get('clearValue');\n }\n\n /**\n * @param {any} value\n */\n set clearValue(value : any)\n {\n this.scope.set('clearValue', value);\n }\n\n}\n\nexport default BaseData;","import { ProtoController } from \"../../index.ts\";\n\nexport type IconPosition = 'before' | 'after';\n\nexport class IconData\n{\n /**\n * @type {ProtoController}\n */\n declare scope : ProtoController;\n\n /**\n * @returns {string}\n */\n get icon() : IconPosition\n {\n return this.scope.get('icon');\n }\n\n /**\n * @param {string} value\n */\n set icon(value : string)\n {\n this.scope.set('icon', value);\n }\n\n /**\n * @returns {IconPosition}\n */\n get iconPosition() : IconPosition\n {\n return this.scope.get('iconPosition');\n }\n\n /**\n * @param {IconPosition} value\n */\n set iconPosition(value : IconPosition)\n {\n this.scope.set('iconPosition', value);\n }\n\n /**\n * @returns {boolean}\n */\n get iconDisabled() : boolean\n {\n return this.scope.get('iconDisabled');\n }\n\n /**\n * @param {boolean} value\n */\n set iconDisabled(value : boolean)\n {\n this.scope.set('iconDisabled', value);\n }\n\n}\n\nexport default IconData;","import ProtoExtend from \"./ProtoExtend.ts\";\nimport BaseData from \"../data/BaseData.ts\";\nimport IconData from \"../data/IconData.ts\";\nimport { ProtoController } from \"../../index.ts\";\nimport { Arr, Mix } from \"@kizmann/pico-js\";\n\nexport class ProtoData extends ProtoExtend([BaseData, IconData])\n{\n /**\n * @type {ProtoController}\n */\n scope : ProtoController;\n\n constructor(scope : ProtoController)\n {\n super();\n\n this.scope = scope;\n }\n\n classRoot(merge : string[] = []) : string[]\n {\n const { view } = this.scope;\n\n const classList = [\n view.bem\n ];\n\n if ( this.theme != null ) {\n classList.push(`n-theme-${this.theme}`);\n }\n\n if ( this.size != null ) {\n classList.push(`n-size-${this.size}`);\n }\n\n if ( this.type != null ) {\n classList.push(`n-type-${this.type}`);\n }\n\n if ( this.$color != null ) {\n classList.push(`n-color-${this.$color}`);\n }\n\n if ( this.load ) {\n classList.push('n-load');\n }\n\n if ( this.superDisabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.icon && this.iconPosition ) {\n classList.push(`n-icon-${this.iconPosition}`);\n }\n\n if ( typeof merge !== 'object' ) {\n merge = [merge];\n }\n\n Arr.each(merge, (cls : string) => {\n classList.push(cls.replace(':bem', view.bem));\n });\n\n return classList;\n }\n\n classPart(part : any, merge : string[] = []) : string[]\n {\n const { view } = this.scope;\n\n const classList = [\n //\n ];\n\n if ( !Mix.isEmpty(part) ) {\n classList.push(`${view.bem}__${part}`);\n }\n\n if ( typeof merge !== 'object' ) {\n merge = [merge];\n }\n\n Arr.each(merge, (cls : string) => {\n classList.push(cls.replace(':bem', view.bem));\n });\n\n return classList;\n }\n\n get superDisabled() : boolean\n {\n const ncx = this.scope.ncx('form-item');\n\n return this.scope.get('disabled') || ! (!ncx || ncx?.data.model);\n }\n\n}\n\nexport interface ProtoData extends BaseData, IconData {\n //\n}\n\nexport default ProtoData;","import { ProtoController, Styler } from \"../../index.ts\";\nimport { Mix } from \"@kizmann/pico-js\";\nimport { Obj } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\nimport { resolveComponent } from \"vue\";\n\nexport class ProtoView\n{\n /**\n * @type {ProtoController}\n */\n scope : ProtoController;\n\n /**\n * @type {string}\n */\n declare bem : string;\n\n constructor(scope : ProtoController)\n {\n this.scope = scope;\n }\n\n default() : any\n {\n return null;\n }\n\n slot(key : string = 'default', ...args : any[]) : any\n {\n const { slots } = this.scope.context;\n\n if ( slots[key] == null ) {\n return null;\n }\n\n return slots[key](...args);\n }\n\n icon(props : any = undefined) : any\n {\n if ( ! Mix.isObj(props) ) {\n props = { icon: props };\n }\n\n if ( !props.icon ) {\n return null;\n }\n\n const [icon, classList] = [\n Obj.pluck(props, 'icon', ''),\n Obj.pluck(props, 'class', [])\n ];\n\n props.class = [\n `n-icon ${icon}`, ...classList\n ].join(' ');\n\n return h('i', props);\n }\n\n comp(el : any, props : any = null, slot : any = null) : any\n {\n let component = null;\n\n try {\n component = resolveComponent(el);\n } catch (e) {\n console.error(`Failed to resolve component: ${el}`);\n }\n\n if ( component == null ) {\n return null;\n }\n\n return h(component, props, slot);\n }\n\n div(props : any = 'div', slot : any = null, type : string = 'div') : any\n {\n const { data } = this.scope;\n\n if ( ! Mix.isObj(props) ) {\n props = { name: props };\n }\n\n let [name, classList] = [\n Obj.pluck(props, 'name', null),\n Obj.pluck(props, 'class', [])\n ];\n\n props.class = data.classPart(...[\n name, classList\n ]);\n\n return h(type, props, slot);\n }\n\n clear(value : any = true) : any\n {\n let { scope, data } = this.scope;\n\n if ( Mix.isEmpty(value) ) {\n return null;\n }\n\n if ( !scope.get('clearable') ) {\n return null;\n }\n\n let config : any = {\n name: 'clear', class: ['n-form-clear']\n };\n\n config.onClick = () => {\n scope.applyClear();\n scope.set('search', '');\n scope.ref('input')?.value?.focus();\n };\n\n return this.div(config, [\n this.icon(Styler.icon('times'))\n ]);\n }\n\n angle() : any\n {\n let config = {\n name: 'angle', class: ['n-form-angle']\n };\n\n return this.div(config, [\n this.icon(Styler.icon('angle-down'))\n ]);\n }\n\n empty(options : any = {}) : any\n {\n const { scope } = this.scope;\n\n const props = {\n ...options, emptyText: scope.get('emptyText')\n };\n\n return this.div('empty', [\n this.comp('n-empty-icon', props)\n ]);\n }\n\n}\n\nexport default ProtoView;","import { Arr } from \"@kizmann/pico-js\";\nimport { ProtoController } from \"../../index.ts\";\nimport { onUnmounted, ref } from \"vue\";\n\n\nexport class GroupController extends ProtoController\n{\n /**\n * @type {any}\n */\n _childs : any = [];\n\n /**\n * @type {any}\n */\n _child_events : any = [];\n\n get childs() : any\n {\n return this._childs.value;\n }\n\n set childs(value : any)\n {\n this._childs.value = value;\n }\n\n setup()\n {\n super.setup();\n\n this._childs = ref([]);\n\n onUnmounted(() => {\n this._childs = null;\n });\n\n return this;\n }\n\n watchChilds(cb : Function)\n {\n this._child_events.push(cb);\n }\n\n append(child : any)\n {\n Arr.append(this._childs.value, child);\n\n Arr.each(this._child_events, (cb : Function) => {\n cb();\n });\n\n return this;\n }\n\n remove(child : any)\n {\n const childs = this._childs.value;\n\n const indexies : any[] = Arr.filterIndex(childs, (c : any) => {\n return c.uid === child.uid;\n });\n\n Arr.splices(this._childs.value, indexies);\n\n Arr.each(this._child_events, (cb : Function) => {\n cb();\n });\n\n return this;\n }\n\n}\n\nexport default GroupController;","import { ProtoController } from \"../../index.ts\";\n\nexport type PopoverPositionTop =\n 'top-start' |\n 'top-center' |\n 'top-end';\n\nexport type PopoverPositionBottom =\n 'bottom-start' |\n 'bottom-center' |\n 'bottom-end';\n\nexport type PopoverPositionLeft =\n 'left-start' |\n 'left-center' |\n 'left-end';\n\nexport type PopoverPositionRight =\n 'right-start' |\n 'right-center' |\n 'right-end';\n\nexport type PopoverPosition =\n PopoverPositionTop |\n PopoverPositionBottom |\n PopoverPositionLeft |\n PopoverPositionRight;\n\nexport type DrawerPosition =\n 'top' |\n 'bottom' |\n 'left' |\n 'right';\n\nexport type ModalPosition =\n PopoverPosition |\n 'center-center';\n\nexport class PositionData\n{\n /**\n * @type {ProtoController}\n */\n declare scope : ProtoController;\n\n /**\n * @returns {PopoverPosition|DrawerPosition|ModalPosition}\n */\n get position() : PopoverPosition | DrawerPosition | ModalPosition\n {\n return this.scope.get('position');\n }\n\n /**\n * @param {PopoverPosition|DrawerPosition|ModalPosition} value\n */\n set position(value : PopoverPosition | DrawerPosition | ModalPosition)\n {\n this.scope.set('position', value);\n }\n\n}\n\nexport default PositionData;","import { ProtoController } from \"../../index.ts\";\n\nexport class TextData\n{\n /**\n * @type {ProtoController}\n */\n declare scope : ProtoController;\n\n /**\n * @returns {string}\n */\n get undefinedText() : string\n {\n return this.scope.get('undefinedText');\n }\n\n /**\n * @param {string} value\n */\n set undefinedText(value : string)\n {\n this.scope.set('undefinedText', value);\n }\n\n /**\n * @returns {string}\n */\n get emptyText() : string\n {\n return this.scope.get('emptyText');\n }\n\n /**\n * @param {string} value\n */\n set emptyText(value : string)\n {\n this.scope.set('emptyText', value);\n }\n\n /**\n * @returns {string}\n */\n get trueText() : string\n {\n return this.scope.get('trueText');\n }\n\n /**\n * @param {string} value\n */\n set trueText(value : string)\n {\n this.scope.set('trueText', value);\n }\n\n /**\n * @returns {string}\n */\n get falseText() : string\n {\n return this.scope.get('falseText');\n }\n\n /**\n * @param {string} value\n */\n set falseText(value : string)\n {\n this.scope.set('falseText', value);\n }\n\n}\n\nexport default TextData;","import { ProtoController } from \"../../index.ts\";\n\nexport class OptionData\n{\n /**\n * @type {ProtoController}\n */\n declare scope : ProtoController;\n\n /**\n * @returns {any}\n */\n get options() : any\n {\n return this.scope.get('options');\n }\n\n /**\n * @param {any} value\n */\n set options(value : any)\n {\n this.scope.set('options', value);\n }\n\n /**\n * @returns {string}\n */\n get optionsValue() : string\n {\n return this.scope.get('optionsValue');\n }\n\n /**\n * @param {string} value\n */\n set optionsValue(value : string)\n {\n this.scope.set('optionsValue', value);\n }\n\n /**\n * @returns {string}\n */\n get optionsLabel() : string\n {\n return this.scope.get('optionsLabel');\n }\n\n /**\n * @param {string} value\n */\n set optionsLabel(value : string)\n {\n this.scope.set('optionsLabel', value);\n }\n\n}\n\nexport default OptionData;","import { ProtoController } from \"../../index.ts\";\n\nexport class DragData\n{\n /**\n * @type {ProtoController}\n */\n declare scope : ProtoController;\n\n /**\n * @returns {any[]}\n */\n get items() : any[]\n {\n return this.scope.get('items');\n }\n\n /**\n * @returns {object}\n */\n get current() : object\n {\n return this.scope.get('current');\n }\n\n /**\n * @returns {any[]}\n */\n get selected() : any[]\n {\n return this.scope.get('selected');\n }\n\n /**\n * @returns {any[]}\n */\n get expanded() : any[]\n {\n return this.scope.get('expanded');\n }\n\n /**\n * @returns {any[]}\n */\n get group() : any[]\n {\n return this.scope.get('group');\n }\n\n /**\n * @returns {any[]}\n */\n get allowGroups() : any[]\n {\n return this.scope.get('allowGroups');\n }\n\n /**\n * @returns {function}\n */\n get safezone() : Function\n {\n return this.scope.get('safezone');\n }\n\n /**\n * @returns {boolean}\n */\n get allowCurrent() : boolean\n {\n return this.scope.get('allowCurrent');\n }\n\n /**\n * @returns {boolean}\n */\n get renderHandle() : boolean\n {\n return this.scope.get('renderHandle');\n }\n\n /**\n * @returns {boolean}\n */\n get renderExpand() : boolean\n {\n return this.scope.get('renderExpand');\n }\n\n /**\n * @returns {boolean}\n */\n get renderSelect() : boolean\n {\n return this.scope.get('renderSelect');\n }\n\n /**\n * @returns {boolean|function}\n */\n get allowSelect() : boolean | Function\n {\n return this.scope.get('allowSelect');\n }\n\n /**\n * @returns {boolean|function}\n */\n get allowDrag() : boolean | Function\n {\n return this.scope.get('allowDrag');\n }\n\n /**\n * @returns {boolean|function}\n */\n get allowDrop() : boolean | Function\n {\n return this.scope.get('allowDrop');\n }\n\n /**\n * @returns {function}\n */\n get transformDrop() : Function\n {\n return this.scope.get('transformDrop');\n }\n\n /**\n * @returns {boolean}\n */\n get insertNode() : boolean\n {\n return this.scope.get('insertNode');\n }\n\n /**\n * @returns {boolean}\n */\n get removeNode() : boolean\n {\n return this.scope.get('removeNode');\n }\n\n /**\n * @returns {string}\n */\n get uniqueProp() : string\n {\n return this.scope.get('uniqueProp');\n }\n\n /**\n * @returns {string}\n */\n get childProp() : string\n {\n return this.scope.get('childProp');\n }\n\n /**\n * @returns {number}\n */\n get itemHeight() : number\n {\n return this.scope.get('itemHeight');\n }\n\n /**\n * @returns {number}\n */\n get itemWidth() : number\n {\n return this.scope.get('itemWidth');\n }\n\n /**\n * @returns {number}\n */\n get itemOffset() : number\n {\n return this.scope.get('itemOffset');\n }\n\n /**\n * @returns {boolean}\n */\n get itemSkip() : boolean\n {\n return this.scope.get('itemSkip');\n }\n\n /**\n * @returns {boolean}\n */\n get rootSkip() : boolean\n {\n return this.scope.get('rootSkip');\n }\n\n}\n\nexport default DragData;","import { PropType } from \"vue\";\n\nexport const Load = {\n\n /**\n * @type {PropType<boolean>}\n */\n load: {\n type: [Boolean], default: false\n },\n\n};\n\nexport const Disabled = {\n\n /**\n * @type {PropType<boolean>}\n */\n disabled: {\n type: [Boolean], default: false\n },\n\n};\n\nexport const Size = {\n\n /**\n * @type {PropType<string>}\n */\n size: {\n type: [String], default: null\n },\n\n};\n\nexport const Type = {\n\n /**\n * @type {PropType<string>}\n */\n type: {\n type: [String], default: null\n },\n\n};\n\nexport const Color = {\n\n /**\n * @type {PropType<string|number>}\n */\n color: {\n type: [String, Number], default: null\n },\n\n};\n\nexport const Clearable = {\n\n /**\n * @type {PropType<boolean>}\n */\n clearable: {\n type: [Boolean], default: false\n },\n\n};\n\nexport const ClearValue = {\n\n /**\n * @type {PropType<string|number|boolean>}\n */\n clearValue: {\n type: [String, Number, Boolean], default: null\n },\n\n};\n\nexport const ThemeDark = {\n\n /**\n * @type {PropType<string>}\n */\n theme: {\n type: [String], default: 'dark'\n },\n\n};\n","import { PropType } from \"vue\";\nimport { Arr } from \"@kizmann/pico-js\";\nimport { IconPosition } from \"../data/IconData.ts\";\n\nconst ICON_POSITION: IconPosition[] = [\n 'before', 'after'\n];\n\nexport const Icon = {\n\n /**\n * @type {PropType<string>}\n */\n icon: {\n type: String, default: ''\n },\n\n};\n\nexport const IconDisabled = {\n\n /**\n * @type {PropType<string>}\n */\n iconDisabled: {\n type: Boolean, default: false,\n },\n\n};\n\nexport const IconPositionBefore = {\n\n /**\n * @type {PropType<string>}\n */\n iconPosition: {\n type: String, default: 'before', validator: (v) => Arr.has(ICON_POSITION, v)\n },\n\n};\n\nexport const IconPositionAfter = {\n\n /**\n * @type {PropType<string>}\n */\n iconPosition: {\n type: String, default: 'after', validator: (v) => Arr.has(ICON_POSITION, v)\n },\n\n};\n","import { PropType } from \"vue\";\nimport { Arr } from \"@kizmann/pico-js\";\nimport { AlignDirection, AlignPosition } from \"../data/AlignData.ts\";\n\nconst ALIGN_DIRECTION : AlignDirection[] = [\n 'horizontal', 'vertical'\n];\n\nconst AlignDirectionValidator = (v : string) => {\n return Arr.has(ALIGN_DIRECTION, v);\n};\n\nconst ALIGN_POSITION : AlignPosition[] = [\n 'left', 'center', 'right'\n];\n\nconst AlignPositionValidator = (v : string) => {\n return Arr.has(ALIGN_POSITION, v);\n};\n\nexport const AlignHorizontal = {\n\n /**\n * @type {PropType<string>}\n */\n align: {\n type: [String], default: 'horizontal', validator: AlignDirectionValidator\n },\n\n};\n\nexport const AlignVertical = {\n\n /**\n * @type {PropType<string>}\n */\n align: {\n type: [String], default: 'vertical', validator: AlignDirectionValidator\n },\n\n};\n\nexport const AlignLeft = {\n\n /**\n * @type {PropType<string>}\n */\n align: {\n type: [String], default: 'left', validator: AlignPositionValidator\n },\n\n};\n\nexport const AlignRight = {\n\n /**\n * @type {PropType<string>}\n */\n align: {\n type: [String], default: 'left', validator: AlignPositionValidator\n },\n\n};\n","import { PropType } from \"vue\";\nimport { Arr } from \"@kizmann/pico-js\";\nimport { PopoverPosition, DrawerPosition } from \"../data/PositionData.ts\";\n\nconst POPOVER_POSITION: PopoverPosition[] = [\n 'top-start',\n 'top-center',\n 'top-end',\n 'bottom-start',\n 'bottom-center',\n 'bottom-end',\n 'left-start',\n 'left-center',\n 'left-end',\n 'right-start',\n 'right-center',\n 'right-end',\n];\n\nconst PopoverPositionValidator = (v : string) => {\n return Arr.has(POPOVER_POSITION, v);\n};\n\nconst DRAWER_POSITION: DrawerPosition[] = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n];\n\nconst DrawerPositionValidator = (v : string) => {\n return Arr.has(DRAWER_POSITION, v);\n};\n\nexport const PositionBottomStart = {\n\n /**\n * @type {PropType<string>}\n */\n position: {\n type: String, default: 'bottom-start', validator: PopoverPositionValidator\n },\n\n};\n\nexport const PositionBottomCenter = {\n\n /**\n * @type {PropType<string>}\n */\n position: {\n type: String, default: 'bottom-center', validator: PopoverPositionValidator\n },\n\n};\n\nexport const PositionDrawer = {\n\n /**\n * @type {PropType<string>}\n */\n position: {\n type: String, default: 'right', validator: DrawerPositionValidator\n },\n\n}\n\nexport const PositionModal = {\n\n /**\n * @type {PropType<string>}\n */\n position: {\n type: String, default: 'right', validator: DrawerPositionValidator\n },\n\n}","import { PropType } from \"vue\";\nimport { Locale } from \"@kizmann/pico-js\";\n\nexport const UndefinedText = {\n\n /**\n * @type {PropType<string>}\n */\n undefinedText: {\n type: String, default: () => Locale.trans('Undefined')\n },\n\n};\n\nexport const EmptyText = {\n\n /**\n * @type {PropType<string>}\n */\n emptyText: {\n type: String, default: () => Locale.trans('No items')\n },\n\n};\n\nexport const TrueText = {\n\n /**\n * @type {PropType<string>}\n */\n trueText: {\n type: String, default: () => Locale.trans('Yes')\n },\n\n};\n\nexport const FalseText = {\n\n /**\n * @type {PropType<string>}\n */\n falseText: {\n type: String, default: () => Locale.trans('No')\n },\n\n};","import { PropType } from \"vue\";\n\nexport const OptionsObject = {\n\n /**\n * @type {PropType<object>}\n */\n options: {\n type: Object, default: () => {}\n },\n\n /**\n * @type {PropType<string>}\n */\n optionsValue: {\n type: String, default: '$index'\n },\n\n /**\n * @type {PropType<string>}\n */\n optionsLabel: {\n type: String, default: '$value'\n },\n\n};\n","import { PropType } from \"vue\";\n\nexport const Draglist = {\n\n /**\n * @type {PropType<array>}\n */\n items: {\n type: [Array], default: () => []\n },\n\n /**\n * @type {PropType<object>}\n */\n current: {\n type: [Object], default: null\n },\n\n /**\n * @type {PropType<array>}\n */\n selected: {\n type: [Array], default: () => []\n },\n\n /**\n * @type {PropType<array>}\n */\n expanded: {\n type: [Array], default: () => []\n },\n\n /**\n * @type {PropType<array>}\n */\n group: {\n type: [Array], default: null\n },\n\n /**\n * @type {PropType<array>}\n */\n allowGroups: {\n type: [Array], default: null\n },\n\n /**\n * @type {PropType<number|function>}\n */\n safezone: {\n type: [Number, Function], default: 0.6\n },\n\n /**\n * @type {PropType<boolean>}\n */\n allowCurrent: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<boolean>}\n */\n renderHandle: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n renderExpand: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n renderSelect: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean|function>}\n */\n allowSelect: {\n type: [Boolean, Function], default: true\n },\n\n /**\n * @type {PropType<boolean|function>}\n */\n allowDrag: {\n type: [Boolean, Function], default: true\n },\n\n /**\n * @type {PropType<boolean|function>}\n */\n allowDrop: {\n type: [Boolean, Function], default: true\n },\n\n /**\n * @type {PropType<function>}\n */\n transformDrop: {\n type: [Function], default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n insertNode: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<boolean>}\n */\n removeNode: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<string>}\n */\n uniqueProp: {\n type: [String], default: 'id'\n },\n\n /**\n * @type {PropType<string>}\n */\n childProp: {\n type: [String], default: 'children'\n },\n\n /**\n * @type {PropType<boolean>}\n */\n itemSkip: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n rootSkip: {\n type: [Boolean], default: false\n },\n\n}","import { Arr, Mix, Obj, Str } from \"@kizmann/pico-js\";\n\nexport class OptionHelper\n{\n\n static getList(scope : any) : any[]\n {\n const { options } = scope.data;\n\n const result = Arr.each(options, (v : any, i : any) => {\n return { $index: i, $value: v };\n });\n\n return result ?? [];\n }\n\n static getFlat(scope : any, list : any[] = null) : any[]\n {\n const { optionsLabel: ol, optionsValue: ov } = scope.data;\n\n if ( list == null ) {\n list = this.getList(scope);\n }\n\n const result = Arr.each(list, (item : any) => {\n return {\n label: Obj.get(item, ol), value: Obj.get(item, ov),\n };\n });\n\n return result ?? [];\n }\n\n static getCombineList(scope : any, list : any[]) : any[]\n {\n let value = scope.data.model;\n\n if ( Mix.isEmpty(value) ) {\n return list;\n }\n\n if ( !Mix.isArr(value) ) {\n value = Arr.all(value);\n }\n\n let values = Arr.diff(...[\n value, Arr.extract(list, 'value')\n ]);\n\n const { allowCreate, undefinedText } = scope.data;\n\n const fn = (v:any) => {\n return allowCreate ? Mix.str(v) : undefinedText;\n };\n\n const result = Arr.clone(list);\n\n Arr.each(values, (v : any) => {\n result.push({ label: fn(v), value: Mix.str(v) });\n });\n\n return result ?? [];\n }\n\n static getFilterList(scope : any, list : any[]) : any[]\n {\n let search = scope.data.search;\n\n if ( Mix.isEmpty(search) ) {\n return list;\n }\n\n const result = Arr.filter(list, (item : any) => {\n return Str.has(item.label, search);\n });\n\n return result ?? [];\n }\n\n static getListItem(scope : any, list : any[], value : any) : any\n {\n const { optionsValue } = scope.data;\n\n const result = Arr.find(list, (v : any) => {\n return Obj.get(v, optionsValue) === value;\n });\n\n return result ?? null;\n }\n\n static getFlatItem(scope : any, list : any[], value : any) : any\n {\n const result = Arr.find(list, (v : any) => {\n return v.value === value;\n });\n\n return result ?? null;\n }\n\n}\n\nexport default OptionHelper;","import { Arr, Dom, For, Mix, Obj, Run } from \"@kizmann/pico-js\";\n\nexport class Pointer\n{\n /**\n * @type {number}\n */\n static index : number = 10000;\n\n /**\n * @type {any[]}\n */\n static signals : any[] = [];\n\n /**\n * @type {any[]}\n */\n static chains : any[] = [];\n\n /**\n * @type {any[]}\n */\n static groups : any[] = [];\n\n /**\n * @type {any}\n */\n static cursor : any = {\n clientX: 0, clientY: 0\n };\n\n static init() : Pointer\n {\n const el = Dom.find(window);\n\n el.on('keydown', ...[\n (e : any) => this.on(e),\n ]);\n\n el.on('keyup', ...[\n (e : any) => this.on(e),\n ]);\n\n el.on('pointerdown', ...[\n (e : any) => this.on(e),\n ]);\n\n el.on('pointerup', ...[\n (e : any) => this.on(e),\n ]);\n\n el.on('contextmenu', ...[\n (e : any) => this.on(e)\n ]);\n\n el.on('pointermove', ...[\n Run.framebuffer((e : any) => this.on(e), 'NPointer'),\n ], { passive: true });\n\n el.on('scroll', ...[\n Run.framebuffer((e : any) => this.on(e), 'NPointer'),\n ], { passive: true });\n\n el.on('virtualscroll', ...[\n Run.framebuffer((e : any) => this.on(e), 'NPointer'),\n ], { passive: true });\n\n return this;\n }\n\n static zindex() : number\n {\n return 10000 + this.chains.length;\n }\n\n static on(e : any) : void\n {\n const cursor = {\n clientX: e.clientX, clientY: e.clientY\n };\n\n if ( e.clientX || e.clientY ) {\n this.cursor = cursor;\n }\n\n let targets = Dom.getNodePoint(this.cursor);\n\n let v = {\n type: e.type, targets, target: Arr.first(targets)\n };\n\n if ( e.type === 'pointerdown' ) {\n v.type = 'mousedown';\n }\n\n if ( e.type === 'pointerup' ) {\n v.type = 'mouseup';\n }\n\n if ( e.type === 'pointermove' ) {\n v.type = 'mousemove';\n }\n\n if ( e.type === 'keydown' && e.which === 27 ) {\n v = { ...v, type: 'keyescape' };\n }\n\n if ( e.type === 'keydown' && e.which === 13 ) {\n v = { ...v, type: 'keyenter' };\n }\n\n let [prevent, pl] = [\n false, Dom.find(v.target).upnode('[prevent]')\n ];\n\n if ( !e.metaKey && !pl.empty() ) {\n prevent = this.preventCodes(e, pl);\n }\n\n if ( prevent ) {\n e && e.preventDefault();\n }\n\n for ( const { type, cb } of this.signals ) {\n if ( type === v.type ) cb(e, v);\n }\n }\n\n static preventCodes(e : any, el : Dom) : boolean\n {\n const keycode = For.parseOptions(...[\n el.attr('prevent') || ''\n ]);\n\n const prevent = Obj.get(keycode, e.type);\n\n if ( Mix.isArr(prevent) ) {\n return Arr.has(prevent, e.which);\n }\n\n return !! prevent;\n }\n\n static findGesture(e : any)\n {\n // distinguish which gesture is executed\n }\n\n static bind(id : string, type : string, cb : Function) : void\n {\n Arr.append(this.signals, { id, type, cb });\n }\n\n static unbind(id : string) : void\n {\n Arr.remove(this.signals, { id });\n }\n\n static deblock(uid : string, type : string = 'none', group : string, cb : Function = null)\n {\n if ( group == null ) {\n group = uid;\n }\n\n let items = [];\n\n const sames = Arr.find(this.groups, (val : any) => {\n return Arr.has(val, group);\n }, []);\n\n const fn = (val : any) => {\n return val[1] === type && !Arr.has(sames, val[0]);\n };\n\n for ( let item of Arr.clone(this.chains).reverse() ) {\n if ( !fn(item) ) break; else items.push(item);\n }\n\n let loop : any = cb, next = (cb : any, nx : any) => {\n Run.frame(() => ((cb && cb()), (nx && nx())));\n };\n\n Arr.each(items.reverse(), (val : any) => {\n loop = ((p) => () => next(val[2], p))(loop);\n });\n\n loop && loop();\n }\n\n static prevent(uid : string, type : string = 'none', group : string, cb : Function = null)\n {\n if ( group == null ) {\n group = uid;\n }\n\n const index = Arr.findIndex(this.groups, (val : any) => {\n return Arr.has(val, group);\n });\n\n if ( index === -1 ) {\n Arr.append(this.groups, [group]);\n }\n\n if ( index !== -1 ) {\n Arr.add(this.groups[index], uid);\n }\n\n this.chains.push([uid, type, cb]);\n }\n\n static release(uid : string, cb : Function = null)\n {\n const index = Arr.findIndex(this.groups, (val : any) => {\n return Arr.has(val, uid);\n });\n\n if ( index !== -1 ) {\n Arr.remove(this.groups[index], uid);\n }\n\n this.groups = Arr.filter(this.groups);\n\n Run.frame(() => {\n (Arr.remove(this.chains, [uid]), cb && cb());\n });\n }\n\n static blocked(uid : string)\n {\n const index = Arr.findIndex(this.chains, (val : any) => {\n return val[0] === uid;\n });\n\n return index !== -1 && index !== this.chains.length - 1;\n }\n\n}\n\nif ( !globalThis.NPointer ) {\n globalThis.NPointer = Pointer.init();\n}\n\nexport default Pointer;","import ProtoExtend from \"./js/proto/ProtoExtend.ts\";\nimport ProtoController from \"./js/proto/ProtoController.ts\";\nimport ProtoData from \"./js/proto/ProtoData.ts\";\nimport ProtoView from \"./js/proto/ProtoView.ts\";\nimport GroupController from \"./js/controller/GroupController.ts\";\nimport BaseData from \"./js/data/BaseData.ts\";\nimport IconData from \"./js/data/IconData.ts\";\nimport AlignData from \"./js/data/AlignData.ts\";\nimport PositionData from \"./js/data/PositionData.ts\";\nimport TextData from \"./js/data/TextData.ts\";\nimport OptionData from \"./js/data/OptionData.ts\";\nimport DragData from \"./js/data/DragData.ts\";\n\nexport {\n ProtoExtend,\n ProtoController,\n ProtoData,\n ProtoView,\n GroupController,\n BaseData,\n IconData,\n AlignData,\n PositionData,\n TextData,\n OptionData,\n DragData,\n};\n\nimport * as BaseProps from \"./js/prop/BaseProps.ts\";\nimport * as IconProps from \"./js/prop/IconProps.ts\";\nimport * as AlignProps from \"./js/prop/AlignProps.ts\";\nimport * as PositionProps from \"./js/prop/PositionProps.ts\";\nimport * as TextProps from \"./js/prop/TextProps.ts\";\nimport * as OptionProps from \"./js/prop/OptionProps.ts\";\nimport * as DragProps from \"./js/prop/DragProps.ts\";\n\nexport const Props = {\n ...BaseProps,\n ...IconProps,\n ...AlignProps,\n ...PositionProps,\n ...TextProps,\n ...OptionProps,\n ...DragProps,\n};\n\nimport { OptionHelper } from \"./js/helper/OptionHelper.ts\";\n\nexport const Helpers = {\n Option: OptionHelper,\n};\n\nimport Pointer from \"./js/module/Pointer.ts\";\nimport Styler from \"./js/module/Styler.ts\";\n\nexport {\n Pointer, Styler\n};\n","import { Dom, Arr, Obj, Run, Hash, Str } from \"@kizmann/pico-js\";\nimport { Pointer } from \"../../../root/index.ts\";\nimport { NModalHandler } from \"./NModalHandler.ts\";\n\nexport class NModalElement\n{\n /**\n * @type {boolean}\n */\n visible : boolean = false;\n\n /**\n * @type {boolean}\n */\n freeze : boolean = false;\n\n /**\n * @type {any}\n */\n options : any = {\n target: null,\n listen: true,\n closable: true,\n beforeOpen: null,\n beforeClose: null,\n };\n\n get uid() : string\n {\n return this.options.uid;\n }\n\n constructor(el : HTMLElement, options : any = {})\n {\n if ( options.uid == null ) {\n options.uid = Hash.uuid()\n }\n\n if ( options.target == null ) {\n options.target = Dom.find(el).prev().get(0);\n }\n\n this.options = Obj.assign(this.options, options, {\n el: Dom.find(el)\n });\n\n this.options.el.data('modal', options.uid);\n }\n\n renderBox()\n {\n let { uid, el } = this.options;\n\n if ( !this.visible ) {\n return el.remClass('n-ready').style(null);\n }\n\n let zindex = Pointer.zindex();\n\n NModalHandler.open(...[\n uid, zindex\n ]);\n\n el.style({\n 'z-index': zindex\n });\n\n el.addClass('n-ready');\n }\n\n getEventEls(event : any)\n {\n const { el, target, listen } = this.options;\n\n const [ev, wrap] = [\n Dom.find(event.target), el.child().get(0)\n ];\n\n let result : any = {\n src: ev.closest(wrap),\n };\n\n if ( listen && target ) {\n result.tgt = ev.closest(target);\n }\n\n return result;\n }\n\n onMousedown(event : any)\n {\n let { src, tgt } = this.getEventEls(event);\n\n if ( !this.visible && !tgt && !src ) {\n return;\n }\n\n let state = tgt || src;\n\n if ( this.options.toggle ) {\n state = !this.visible ? state : src;\n }\n\n const { closable } = this.options;\n\n if ( !state && !closable ) {\n return;\n }\n\n this.state(state);\n }\n\n onEscape(event : any)\n {\n if ( !this.visible ) {\n return;\n }\n\n const { closable } = this.options;\n\n if ( !closable ) {\n return;\n }\n\n this.state(false);\n }\n\n on(event : string, cb : Function)\n {\n this.options[`on${Str.ucfirst(event)}`] = cb;\n }\n\n state(state : any)\n {\n if ( !this.visible && state ) {\n this.open();\n }\n\n if ( this.visible && !state ) {\n this.close();\n }\n\n // Idle if state and visible are equal\n }\n\n onPromise(prom : any, cb : Function)\n {\n if ( typeof prom !== 'function' ) {\n return cb();\n }\n\n let response = prom();\n\n if ( response == null ) {\n return cb();\n }\n\n if ( typeof response === 'boolean' ) {\n return response && cb();\n }\n\n this.freeze = true;\n\n response\n .then(() => {\n cb();\n })\n .finally(() => {\n this.freeze = false\n });\n }\n\n open(silent : boolean = false)\n {\n if ( this.freeze ) {\n return this;\n }\n\n const fn = () => {\n this.openRun(silent);\n };\n\n this.onPromise(...[\n this.options.beforeOpen, fn\n ]);\n\n return this;\n }\n\n openRun(silent : boolean = false)\n {\n const { uid } = this.options;\n\n Run.frame(() => {\n this.renderBox();\n });\n\n Pointer.prevent(uid, 'modal', null, () => {\n this.close(true);\n });\n\n if ( !silent && this.options.onOpen ) {\n this.options.onOpen();\n }\n\n this.visible = true;\n }\n\n close(forceClose : boolean = false, silent : boolean = false)\n {\n if ( this.freeze ) {\n return this;\n }\n\n const fn = () => {\n this.closeRun(forceClose, silent);\n };\n\n this.onPromise(...[\n this.options.beforeClose, fn\n ]);\n\n return this;\n }\n\n closeRun(force : boolean = false, silent : boolean = false)\n {\n const { uid } = this.options;\n\n if ( !force && Pointer.blocked(uid) ) {\n return;\n }\n\n // Unblock parent el\n Pointer.release(uid);\n\n // Change backdrop index\n NModalHandler.close(uid);\n\n Run.frame(() => {\n this.renderBox();\n });\n\n if ( !silent && this.options.onClose ) {\n this.options.onClose();\n }\n\n this.visible = false;\n }\n\n}\n\nexport default NModalElement;","import { Arr, Dom, Mix } from \"@kizmann/pico-js\";\nimport { Pointer } from \"../../../root/index.ts\";\nimport NModalElement from \"./NModalElement.ts\";\n\nexport class NModalHandler\n{\n /**\n * @type {Dom}\n */\n static el: Dom;\n\n /**\n * @type {any[]}\n */\n static indexes : any[] = [];\n\n /**\n * @type {NModalElement[]}\n */\n static modals : NModalElement[] = [];\n\n static init()\n {\n this.el = Dom.make('div', {\n class: 'n-modal-backdrop',\n });\n\n this.el.appendTo(document.body);\n\n Pointer.bind('NModal', 'keyescape', (e : any) => {\n this.escape(e);\n });\n\n Pointer.bind('NModal', 'mousedown', (e : any) => {\n this.mousedown(e);\n });\n\n return this;\n }\n\n static mousedown(event : any)\n {\n Arr.each(this.modals, (modal : NModalElement) => {\n modal.onMousedown(event);\n });\n }\n\n static escape(event : any)\n {\n Arr.each(this.modals, (modal : NModalElement) => {\n modal.onEscape(event);\n });\n }\n\n static append(el : HTMLElement, config : any)\n {\n const modal = new NModalElement(el, config);\n\n Arr.append(this.modals, modal);\n\n return modal;\n }\n\n static remove({ uid } : any)\n {\n const modal = Arr.find(this.modals, { uid });\n\n if ( Mix.isEmpty(modal) ) {\n throw new Error('Modal not found with id: ' + Mix.str(uid));\n }\n\n if ( modal && modal.destroy ) {\n modal.destroy();\n }\n\n Arr.remove(this.modals, { uid });\n }\n\n static open(uid: string, zindex : number): NModalHandler\n {\n Arr.append(this.indexes, [uid, zindex]);\n\n this.el.style({\n 'z-index': zindex\n });\n\n if ( this.indexes.length > 0 ) {\n this.el.addClass('n-ready');\n Dom.find(document.body).addClass('n-backdrop');\n }\n\n return this;\n }\n\n static close(uid : string) :NModalHandler\n {\n Arr.remove(this.indexes, [uid]);\n\n if ( this.indexes.length < 1 ) {\n this.el.remClass('n-ready');\n Dom.find(document.body).remClass('n-backdrop');\n }\n\n const last = Arr.last(this.indexes);\n\n if ( Mix.isEmpty(last) ) {\n return this;\n }\n\n const style = {\n 'z-index': last[1]\n };\n\n if ( this.indexes.length > 0 ) {\n this.el.style(style);\n }\n\n return this;\n }\n\n}\n\nif ( !globalThis.NModalHandler ) {\n globalThis.NModalHandler = NModalHandler.init();\n}\n\nexport default NModalHandler;\n","import { Dom, Hash, Locale, Obj, Run } from \"@kizmann/pico-js\";\nimport { Styler } from \"../../../root/index.ts\";\nimport NModalHandler from \"../../../modal/js/handler/NModalHandler.ts\";\nimport NModalElement from \"../../../modal/js/handler/NModalElement.ts\";\n\nexport class NAlertElement\n{\n /**\n * @var {Dom}\n */\n el : Dom;\n\n /**\n * @var {NModalElement}\n */\n modal : NModalElement;\n\n /**\n * @var {any}\n */\n options : any = {\n uid: null,\n text: null,\n theme: 'dark',\n size: null,\n type: null,\n okayText: null,\n };\n\n /**\n * @type {string}\n */\n get uid() : string\n {\n return this.options.uid;\n }\n\n constructor(options : any)\n {\n if ( options.uid == null ) {\n options.uid = Hash.uuid();\n }\n\n const texts = {\n okayText: Locale.trans('Okay'),\n };\n\n this.options = Obj.assign(...[\n this.options, texts, options\n ]);\n\n this.el = this.render();\n }\n\n open()\n {\n let modalProps : any = {\n uid: this.options.uid, listen: false, closable: false\n };\n\n this.modal = NModalHandler.append(...[\n this.el.get(0), modalProps\n ]);\n\n this.modal.on('close', () => {\n this.close();\n });\n\n Run.frame(() => {\n this.modal.openRun(true);\n });\n }\n\n close()\n {\n if ( this.modal.visible ) {\n this.modal.closeRun(false, true);\n }\n\n // Remove modal blocking\n NModalHandler.remove(this.modal);\n\n // Remove element from dom\n this.el.get(0).remove();\n\n // Clear for memory\n [this.el, this.modal] = [null, null];\n }\n\n render()\n {\n const root = Dom.make('div', {\n class: Styler.bem('n-alert', this.options),\n });\n\n root.appendTo(document.body);\n\n const frame = Dom.make('div', {\n class: 'n-alert__frame',\n });\n\n frame.appendTo(root);\n\n const body = Dom.make('div', {\n class: 'n-alert__body',\n });\n\n body.appendTo(frame);\n\n const iconCls = Styler.icon(...[\n this.options.type, 'alert'\n ]);\n\n const icon = Dom.make('div', {\n class: 'n-alert__icon',\n html: `<i class=\"${iconCls}\"></i>`,\n });\n\n icon.appendTo(body);\n\n const text = Dom.make('div', {\n class: 'n-alert__text',\n html: `<p>${this.options.text}</p>`,\n });\n\n text.appendTo(body);\n\n const action = Dom.make('div', {\n class: 'n-alert__action',\n });\n\n action.appendTo(frame);\n\n const okayCls = Styler.button({\n //\n });\n\n const okay = Dom.make('button', {\n class: okayCls.join(' '),\n });\n\n okay.on('mousedown', () => {\n this.close();\n });\n\n okay.html(...[\n `<span>${this.options.okayText}</span>`\n ]);\n\n okay.appendTo(action);\n\n return root;\n }\n\n}","import { Mix } from \"@kizmann/pico-js\";\nimport { NAlertElement } from \"./NAlertElement.ts\";\n\nexport class NAlertHandler\n{\n\n static make(options : any = {}, type : string = null)\n {\n if ( Mix.isString(options) ) {\n options = { text: options };\n }\n\n if ( type != null ) {\n options.type = type;\n }\n\n const modal = new NAlertElement(...[\n options\n ]);\n\n return modal.open();\n }\n\n}\n\nexport default NAlertHandler;","import { Dom, Hash, Locale, Obj, Run } from \"@kizmann/pico-js\";\nimport { Styler } from \"../../../root/index.ts\";\nimport NModalHandler from \"../../../modal/js/handler/NModalHandler.ts\";\nimport NModalElement from \"../../../modal/js/handler/NModalElement.ts\";\n\nexport class NConfirmElement\n{\n /**\n * @var {Dom}\n */\n el : Dom;\n\n /**\n * @var {NModalElement}\n */\n modal : NModalElement;\n\n /**\n * @type {Function}\n */\n signal : Function;\n\n /**\n * @var {any}\n */\n options : any = {\n uid: null,\n text: null,\n theme: 'dark',\n size: null,\n type: null,\n cancelText: null,\n confirmText: null,\n };\n\n /**\n * @type {string}\n */\n get uid() : string\n {\n return this.options.uid;\n }\n\n constructor(options : any)\n {\n if ( options.uid == null ) {\n options.uid = Hash.uuid();\n }\n\n const texts = {\n cancelText: Locale.trans('Cancel'),\n confirmText: Locale.trans('Confirm'),\n };\n\n this.options = Obj.assign(...[\n this.options, texts, options\n ]);\n\n this.signal = () => {\n console.warn('Confirm calling empty signal!');\n };\n\n this.el = this.render();\n }\n\n promise()\n {\n return new Promise((resolve, reject) => {\n\n const confirm = () => {\n this.close(), Run.frame(() => resolve(1));\n };\n\n const cancel = () => {\n this.close(), Run.frame(() => reject(0));\n };\n\n this.signal = (val : boolean) => {\n val ? confirm() : cancel();\n }\n\n this.open();\n });\n }\n\n open()\n {\n let modalProps : any = {\n uid: this.options.uid, listen: false,\n };\n\n modalProps.onClose = () => {\n this.signal(false);\n };\n\n this.modal = NModalHandler.append(...[\n this.el.get(0), modalProps\n ]);\n\n Run.frame(() => {\n this.modal.openRun(true);\n });\n }\n\n close()\n {\n if ( this.modal.visible ) {\n this.modal.closeRun(false, true);\n }\n\n // Remove modal blocking\n NModalHandler.remove(this.modal);\n\n // Remove element from dom\n this.el.get(0).remove();\n\n // Clear for memory\n [this.el, this.modal] = [null, null];\n }\n\n render()\n {\n const root = Dom.make('div', {\n class: Styler.bem('n-confirm', this.options),\n });\n\n root.appendTo(document.body);\n\n const frame = Dom.make('div', {\n class: 'n-confirm__frame',\n });\n\n frame.appendTo(root);\n\n const body = Dom.make('div', {\n class: 'n-confirm__body',\n });\n\n body.appendTo(frame);\n\n const iconCls = Styler.icon(...[\n this.options.type, 'confirm'\n ]);\n\n const icon = Dom.make('div', {\n class: 'n-confirm__icon',\n html: `<i class=\"${iconCls}\"></i>`,\n });\n\n icon.appendTo(body);\n\n const text = Dom.make('div', {\n class: 'n-confirm__text',\n html: `<p>${this.options.text}</p>`,\n });\n\n text.appendTo(body);\n\n const action = Dom.make('div', {\n class: 'n-confirm__action',\n });\n\n action.appendTo(frame);\n\n const cancelCls = Styler.button({\n glass: true, type: 'neutral'\n });\n\n const cancel = Dom.make('button', {\n class: cancelCls.join(' '),\n });\n\n cancel.on('mousedown', () => {\n this.signal(false);\n });\n\n cancel.html(...[\n `<span>${this.options.cancelText}</span>`\n ]);\n\n cancel.appendTo(action);\n\n const confirmCls = Styler.button({\n //\n });\n\n const confirm = Dom.make('button', {\n class: confirmCls.join(' '),\n });\n\n confirm.on('mousedown', () => {\n this.signal(true);\n });\n\n confirm.html(...[\n `<span>${this.options.confirmText}</span>`\n ]);\n\n confirm.appendTo(action);\n\n return root;\n }\n\n}","import { Mix } from \"@kizmann/pico-js\";\nimport { NConfirmElement } from \"./NConfirmElement.ts\";\n\nexport class NConfirmHandler\n{\n\n static make(options : any = {}, type : string = null)\n {\n if ( Mix.isString(options) ) {\n options = { text: options };\n }\n\n if ( type != null ) {\n options.type = type;\n }\n\n const modal = new NConfirmElement(...[\n options\n ]);\n\n return modal.promise();\n }\n\n}\n\nexport default NConfirmHandler;","import { Dom, Hash, Locale, Obj, Run } from \"@kizmann/pico-js\";\nimport { Styler } from \"../../../root/index.ts\";\nimport NNotifyHandler from \"./NNotifyHandler.ts\";\n\nexport class NNotifyElement\n{\n /**\n * @var {Dom}\n */\n el : Dom;\n\n /**\n * @var {any}\n */\n options : any = {\n text: null,\n theme: null,\n size: null,\n type: null,\n position: null,\n duration: 4500,\n };\n\n constructor(options : any)\n {\n this.options = Obj.assign(...[\n this.options, options\n ]);\n }\n\n open()\n {\n const {duration} = this.options;\n\n const frame = NNotifyHandler.frame(...[\n this.options.position\n ]);\n\n this.el = this.render();\n\n this.el.on('pointerdown', (e:any) => {\n e.stopPropagation();\n this.close();\n });\n\n Run.delay(...[\n () => this.close(), duration\n ]);\n\n Run.frame(() => {\n this.el.addClass('n-active');\n });\n\n this.el.appendTo(frame);\n }\n\n close()\n {\n if ( this.el == null ) {\n return;\n }\n\n // Remove element from dom\n this.el.get(0).remove();\n\n // Clear for memory\n this.el = null;\n\n // Remove frame if necessary\n Run.frame(() => NNotifyHandler.clear());\n }\n\n render()\n {\n const root = Dom.make('div', {\n class: Styler.bem('n-notify', this.options),\n });\n\n const icon = Dom.make('div', {\n class: 'n-notify__icon',\n });\n\n const iconCls = Styler.icon(...[\n this.options.type, 'notify'\n ]);\n\n icon.html(...[\n `<i class=\"${iconCls}\"></i>`\n ]);\n\n icon.appendTo(root);\n\n const text = Dom.make('div', {\n class: 'n-notify__text',\n });\n\n text.html(...[\n `<p>${this.options.text}</p>`\n ]);\n\n text.appendTo(root);\n\n return root;\n }\n\n}","import { Dom, Mix } from \"@kizmann/pico-js\";\nimport { NNotifyElement } from \"./NNotifyElement.ts\";\nimport { Styler } from \"../../../root/index.ts\";\n\nexport class NNotifyHandler\n{\n static make(options : any = {}, type : string = null)\n {\n if ( Mix.isString(options) ) {\n options = { text: options };\n }\n\n if ( type != null ) {\n options.type = type;\n }\n\n const notification = new NNotifyElement(...[\n options\n ]);\n\n return notification.open();\n }\n\n static create(position : string)\n {\n const el = Dom.make('div', {\n class: Styler.bem('n-notify-frame'),\n });\n\n el.data('notify', position);\n\n // Append to body\n el.appendTo(document.body);\n\n return el;\n }\n\n static frame(position : string)\n {\n if ( position == null ) {\n position = 'bottom-start';\n }\n\n let el = Dom.find(`[data-notify=\"${position}\"]`);\n\n if ( el.el == null ) {\n el = this.create(position);\n }\n\n return el;\n }\n\n static clear()\n {\n Dom.find('[data-notify]').each((el : HTMLElement) => {\n if ( !Dom.find(el).childs().length ) {\n el.remove();\n }\n });\n }\n\n}\n\nexport default NNotifyHandler;","import { App } from \"vue\";\nimport NAlertHandler from \"./js/alert/NAlertHandler.ts\";\nimport NConfirmHandler from \"./js/confirm/NConfirmHandler.ts\";\nimport NNotifyHandler from \"./js/notify/NNotifyHandler.ts\";\n\nexport default function (App : App) {\n //\n}\n\nif ( ! globalThis.Alert ) {\n globalThis.Alert = NAlertHandler;\n}\n\nif ( ! globalThis.Confirm ) {\n globalThis.Confirm = NConfirmHandler;\n}\n\nif ( ! globalThis.Notify ) {\n globalThis.Notify = NNotifyHandler;\n}","import { ProtoData } from \"../../../root/index.ts\";\nimport { NInputController } from \"./NInputController.ts\";\n\nexport class NInputData extends ProtoData\n{\n declare scope : NInputController;\n\n get classList() : string[]\n {\n let classList = [];\n\n if ( this.scope.get('focus') ) {\n classList.push('n-focus');\n }\n\n return this.classRoot(classList);\n }\n\n get model() : any\n {\n return this.scope.get('modelValue');\n }\n\n get native() : string\n {\n return this.scope.get('nativeType');\n }\n\n get placeholder() : string\n {\n return this.scope.get('placeholder');\n }\n\n get focus() : number\n {\n return this.scope.get('focus');\n }\n\n get label() : string\n {\n return this.scope.get('label');\n }\n\n get labelPosition() : string\n {\n return this.scope.get('labelPosition');\n }\n\n}\n\nexport default NInputData;","import { h } from \"vue\";\nimport { Arr, Mix, Obj, Run } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NInputController } from \"./NInputController.ts\";\n\n/**\n * @class NInputView\n * @extends {ProtoView<NInputController>}\n */\nexport class NInputView extends ProtoView\n{\n /**\n * @type {NInputController}\n */\n declare scope : NInputController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-input';\n\n default() : any\n {\n const { attrs, data } = this.scope;\n\n let props = {\n class: data.classList,\n style: attrs.style,\n };\n\n const slots = [\n this.input()\n ];\n\n if ( data.iconPosition === 'before' ) {\n Arr.prepend(slots, this.button());\n }\n\n if ( data.labelPosition === 'before' ) {\n Arr.prepend(slots, this.label());\n }\n\n if ( data.iconPosition === 'after' ) {\n Arr.append(slots, this.button());\n }\n\n if ( data.labelPosition === 'after' ) {\n Arr.append(slots, this.label());\n }\n\n return h('div', props, [\n ...slots, this.clear(data.model)\n ]);\n }\n\n label() : any\n {\n let { scope, data } = this.scope;\n\n if ( Mix.isEmpty(data.label) ) {\n return null;\n }\n\n const props : any = {\n name: 'label',\n };\n\n props.onPointerdown = (e : any) => {\n Run.frame(() => scope.rel('input')?.focus());\n };\n\n return this.div(props, [\n data.label\n ]);\n }\n\n input() : any\n {\n let { scope, data } = this.scope;\n\n const exclude = [\n 'class',\n 'style',\n 'value',\n 'type',\n 'placeholder',\n 'onInput',\n 'onKeydown',\n 'onKeyup',\n ];\n\n let props = Obj.except(scope.attrs, exclude, {\n ref: scope.ref('input'),\n value: data.model,\n type: data.native,\n disabled: data.superDisabled,\n placeholder: data.placeholder,\n });\n\n props.onInput = (e : any) => {\n scope.update('modelValue', e.target.value);\n scope.emit('input', e);\n };\n\n props.onKeydown = (e : any) => {\n scope.emit('keydown', e);\n };\n\n props.onKeyup = (e : any) => {\n scope.emit('keyup', e);\n };\n\n props.onFocus = (e : any) => {\n scope.set('focus', 1);\n scope.emit('focus', e);\n };\n\n props.onBlur = (e : any) => {\n scope.set('focus', 0);\n scope.emit('blur', e);\n };\n\n return h('input', props);\n }\n\n button() : any\n {\n let { scope, data } = this.scope;\n\n if ( Mix.isEmpty(data.icon) ) {\n return null;\n }\n\n let config : any = {\n name: 'button', class: []\n };\n\n const props : any = scope.props;\n\n if ( props.onButtonClick || props.onButtonDblclick ) {\n config.class.push('n-has-event');\n }\n\n config.onPointerdown = (e : any) => {\n Run.frame(() => scope.rel('input')?.focus());\n scope.emit('button-click', e);\n };\n\n config.onDblclick = (e : any) => {\n scope.emit('button-dblclick', e);\n };\n\n return this.div(config, [\n this.icon(data.icon)\n ]);\n }\n\n}\n\nexport default NInputView;","import { ProtoController } from \"../../../root/index.ts\";\nimport { SetupContext } from \"vue\";\nimport NInputData from \"./NInputData.ts\";\nimport NInputView from \"./NInputView.ts\";\n\nexport class NInputController extends ProtoController\n{\n /**\n * @type {NInputController}\n */\n declare scope : NInputController;\n\n /**\n * @type {NInputData}\n */\n declare data: NInputData;\n\n /**\n * @type {NInputView}\n */\n declare view: NInputView;\n\n constructor(props: any, context: SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NInputView(this),\n new NInputData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this\n .cloneProp('modelValue')\n .linkProp('clearValue');\n\n this\n .makeData('focus')\n .makeRef('input');\n\n return this;\n }\n\n}\n\nexport default NInputController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NInputController } from \"./NInputController.ts\";\n\nexport const NInputProps = {\n\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n ...Props.Disabled,\n ...Props.Clearable,\n ...Props.ClearValue,\n ...Props.Icon,\n ...Props.IconPositionBefore,\n ...Props.IconDisabled,\n\n /**\n * @type {PropType<string|number>}\n */\n modelValue: {\n type: [String, Number], default: ''\n },\n\n /**\n * @type {PropType<string>}\n */\n nativeType: {\n type: [String], default: 'text'\n },\n\n /**\n * @type {PropType<string>}\n */\n placeholder: {\n type: [String], default: ''\n },\n\n /**\n * @type {PropType<string>}\n */\n label: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n labelPosition: {\n type: [String], default: 'before'\n },\n\n /**\n * @type {PropType<function>}\n */\n onButtonClick: {\n type: [Function], default: null\n },\n\n /**\n * @type {PropType<function>}\n */\n onButtonDblclick: {\n type: [Function], default: null\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NInput',\n\n /**\n * @type {boolean}\n */\n inheritAttrs: false,\n\n /**\n * @type {typeof NInputProps}\n */\n props: NInputProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n setup(props, context)\n {\n let ncx = new NInputController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { ProtoData } from \"../../../root/index.ts\";\nimport NInputNumberController from \"./NInputNumberController.ts\";\n\nexport class NInputNumberData extends ProtoData\n{\n /**\n * @type {NInputNumberController}\n */\n declare scope : NInputNumberController;\n\n get classList() : string[]\n {\n let classList = [];\n\n if ( this.scope.get('focus') ) {\n classList.push('n-focus');\n }\n\n return this.classRoot(classList);\n }\n\n get model() : number\n {\n return this.scope.get('modelValue');\n }\n\n set model(value : number)\n {\n this.scope.set('modelValue', value);\n }\n\n get focus() : number\n {\n return this.scope.get('focus');\n }\n\n set focus(value : number)\n {\n this.scope.set('focus', value);\n }\n\n get placeholder() : string\n {\n return this.scope.get('placeholder');\n }\n\n set placeholder(value : string)\n {\n this.scope.set('placeholder', value);\n }\n\n\n get min() : number\n {\n return this.scope.get('min');\n }\n\n set min(value : number)\n {\n this.scope.set('min', value);\n }\n\n get max() : number\n {\n return this.scope.get('max');\n }\n\n set max(value : number)\n {\n this.scope.set('max', value);\n }\n\n get stepSize() : number\n {\n return this.scope.get('stepSize');\n }\n\n set stepSize(value : number)\n {\n this.scope.set('stepSize', value);\n }\n\n get precision() : number\n {\n return this.scope.get('precision');\n }\n\n set precision(value : number)\n {\n this.scope.set('precision', value);\n }\n\n get format() : string\n {\n return this.scope.get('format');\n }\n\n set format(value : string)\n {\n this.scope.set('format', value);\n }\n\n}\n\nexport default NInputNumberData;","import { h } from \"vue\";\nimport { Dom, Locale, Mix, Obj, Run, Str } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NInputNumberController } from \"./NInputNumberController.ts\";\n\nexport class NInputNumberView extends ProtoView\n{\n /**\n * @type {NInputNumberController}\n */\n declare scope : NInputNumberController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-input-number';\n\n default()\n {\n const { attrs, data } = this.scope;\n\n let props = {\n class: data.classList,\n style: attrs.style,\n };\n\n return h('div', props, [\n this.prev(),\n this.input(),\n this.clear(),\n this.next(),\n ]);\n }\n\n input()\n {\n let { scope, data } = this.scope;\n\n const exclude = [\n 'class',\n 'style',\n 'value',\n 'type',\n 'placeholder',\n 'onInput',\n 'onKeydown',\n 'onKeyup',\n ];\n\n const count = Str.number(...[\n data.model, data.precision\n ]);\n\n let value = Locale.replace(data.format, {\n count\n });\n\n if ( !Mix.isNum(data.model) ) {\n value = '';\n }\n\n let props = Obj.except(scope.attrs, exclude, {\n ref: scope.ref('input'),\n value: value,\n type: data.type,\n disabled: data.superDisabled,\n placeholder: data.placeholder,\n });\n\n props.onInput = (e : any) => {\n scope.emit('input', e);\n };\n\n props.onKeydown = (e : any) => {\n if ( e.which === 13 ) scope.applyFormat(e.target.value);\n scope.emit('keydown', e);\n };\n\n props.onKeyup = (e : any) => {\n scope.emit('keyup', e);\n };\n\n props.onFocus = (e : any) => {\n data.focus = 1;\n scope.emit('focus', e);\n };\n\n props.onBlur = (e : any) => {\n scope.applyFormat(e.target.value);\n data.focus = 0;\n scope.emit('blur', e);\n };\n\n return h('input', props);\n }\n\n prev()\n {\n let { scope, data } = this.scope;\n\n const props : any = {\n name: 'decrease'\n };\n\n let intval : any, bounce : any;\n\n const fn = () => {\n intval = Run.interval(() => {\n scope.decreaseNumber();\n }, 120);\n };\n\n props.onPointerdown = () => {\n\n bounce = Run.delay(() => {\n fn();\n }, 500);\n\n Dom.find(window).once('pointerup', () => {\n intval && intval();\n bounce && bounce();\n });\n\n scope.decreaseNumber();\n };\n\n return this.div(props, [\n this.icon('fa fa-minus')\n ]);\n }\n\n next()\n {\n let { scope } = this.scope;\n\n const props : any = {\n name: 'increase'\n };\n\n let intval : any, bounce : any;\n\n const fn = () => {\n intval = Run.interval(() => {\n scope.increaseNumber();\n }, 120);\n };\n\n props.onPointerdown = () => {\n\n bounce = Run.delay(() => {\n fn();\n }, 500);\n\n Dom.find(window).once('pointerup', () => {\n intval && intval();\n bounce && bounce();\n });\n\n scope.increaseNumber();\n };\n\n return this.div(props, [\n this.icon('fa fa-plus')\n ]);\n }\n\n}\n\nexport default NInputNumberView;","import { SetupContext } from \"vue\";\nimport { Mix } from \"@kizmann/pico-js\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NInputNumberData } from \"./NInputNumberData.ts\";\nimport { NInputNumberView } from \"./NInputNumberView.ts\";\n\n\nexport class NInputNumberController extends ProtoController\n{\n /**\n * @type {NInputNumberController}\n */\n declare scope : NInputNumberController;\n\n /**\n * @type {NInputNumberData}\n */\n declare data : NInputNumberData;\n\n /**\n * @type {NInputNumberView}\n */\n declare view : NInputNumberView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NInputNumberView(this),\n new NInputNumberData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this\n .cloneProp('modelValue');\n\n this\n .makeData('focus')\n .makeRef('input');\n\n return this;\n }\n\n applyFormat(input : string) : void\n {\n const { data } = this;\n\n if ( input === '' ) {\n return;\n }\n\n const match = input.match(...[\n /[0-9]+([.,][0-9]+)?/\n ]);\n\n let value = data.model;\n\n if ( match && data.precision > 0 ) {\n value = Mix.num(match[0]);\n }\n\n if ( match && data.precision < 1 ) {\n value = Mix.int(match[0]);\n }\n\n if ( value < this.data.min ) {\n value = this.data.min;\n }\n\n if ( value > this.data.max ) {\n value = this.data.max;\n }\n\n if ( Mix.isNum(value) ) {\n this.update('modelValue', value);\n }\n }\n\n decreaseNumber() : void\n {\n let value = this.data.model;\n\n if ( !Mix.isNum(value) ) {\n value = this.data.min;\n }\n\n value -= 1;\n\n if ( value < this.data.min ) {\n value = this.data.min;\n }\n\n if ( value > this.data.max ) {\n value = this.data.max;\n }\n\n this.update('modelValue', value);\n }\n\n increaseNumber() : void\n {\n let value = this.data.model;\n\n value += 1;\n\n if ( value < this.data.min ) {\n value = this.data.min;\n }\n\n if ( value > this.data.max ) {\n value = this.data.max;\n }\n\n this.update('modelValue', value);\n }\n\n}\n\nexport default NInputNumberController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NInputNumberController } from \"./NInputNumberController.ts\";\n\nexport const NInputNumberProps = {\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n ...Props.Disabled,\n ...Props.Clearable,\n ...Props.ClearValue,\n ...Props.Icon,\n ...Props.IconPositionBefore,\n ...Props.IconDisabled,\n\n /**\n * @type {PropType<string|number>}\n */\n modelValue: {\n type: [String, Number], default: ''\n },\n\n /**\n * @type {PropType<number>}\n */\n min: {\n type: [Number], default: 0\n },\n\n /**\n * @type {PropType<number>}\n */\n max: {\n type: [Number], default: Number.MAX_SAFE_INTEGER\n },\n\n /**\n * @type {PropType<number>}\n */\n stepSize: {\n type: [Number], default: 1\n },\n\n /**\n * @type {PropType<number>}\n */\n precision: {\n type: [Number], default: 0\n },\n\n /**\n * @type {PropType<string>}\n */\n format: {\n type: [String], default: ':count'\n },\n\n /**\n * @type {PropType<string>}\n */\n placeholder: {\n type: [String], default: ''\n },\n\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NInputNumber',\n\n /**\n * @type {boolean}\n */\n inheritAttrs: false,\n\n /**\n * @type {typeof NInputNumberProps}\n */\n props: NInputNumberProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n setup(props, context)\n {\n let ncx = new NInputNumberController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { ProtoData } from \"../../../root/index.ts\";\nimport { NInputFileController } from \"./NInputFileController.ts\";\n\nexport class NInputFileData extends ProtoData\n{\n declare scope : NInputFileController;\n\n get classList() : string[]\n {\n return this.classRoot([]);\n }\n\n get model() : any\n {\n return this.scope.get('modelValue');\n }\n\n set model(value : any)\n {\n this.scope.set('modelValue', value);\n }\n\n get multiple() : boolean\n {\n return this.scope.get('multiple');\n }\n\n get glass() : boolean\n {\n return this.scope.get('glass');\n }\n\n get placeholder() : string\n {\n return this.scope.get('placeholder');\n }\n\n get buttonText() : string\n {\n return this.scope.get('buttonText');\n }\n\n get countText() : string\n {\n return this.scope.get('countText');\n }\n\n}\n\nexport default NInputFileData;","import { h } from \"vue\";\nimport { Arr, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { ProtoView, Styler } from \"../../../root/index.ts\";\nimport { NInputFileController } from \"./NInputFileController.ts\";\n\n/**\n * @class NInputFileView\n * @extends {ProtoView<NInputFileController>}\n */\nexport class NInputFileView extends ProtoView\n{\n /**\n * @type {NInputFileController}\n */\n declare scope : NInputFileController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-input-file';\n\n default()\n {\n const { attrs, data } = this.scope;\n\n let props = {\n class: data.classList,\n style: attrs.style,\n };\n\n return h('div', props, [\n this.input(), this.button(), this.hidden()\n ]);\n }\n\n input()\n {\n let { scope, data } = this.scope;\n\n const props : any = {\n modelValue: Obj.get(data.model, 'name'),\n disabled: true,\n };\n\n const texts : [string, number] = [\n data.countText, data.model?.length\n ];\n\n if ( data.multiple ) {\n props.modelValue = Locale.choice(...texts);\n }\n\n return this.comp('n-input', props);\n }\n\n button()\n {\n let { scope, data } = this.scope;\n\n const props : any = {\n glass: data.glass,\n };\n\n props.onClick = () => {\n scope.rel('input')?.click();\n };\n\n return this.comp('n-button', props, () => [\n Locale.trans(data.buttonText)\n ]);\n }\n\n hidden()\n {\n let { scope, data } = this.scope;\n\n const props : any = {\n ref: scope.ref('input'),\n type: 'file',\n multiple: data.multiple\n };\n\n props.onInput = () => {\n scope.updateModel();\n };\n\n return this.div('input', [\n h('input', props)\n ]);\n }\n\n}\n\nexport default NInputFileView;","import { ProtoController } from \"../../../root/index.ts\";\nimport { SetupContext } from \"vue\";\nimport NInputFileData from \"./NInputFileData.ts\";\nimport NInputFileView from \"./NInputFileView.ts\";\nimport { Arr, Mix } from \"@kizmann/pico-js\";\n\nexport class NInputFileController extends ProtoController\n{\n /**\n * @type {NInputFileController}\n */\n declare scope : NInputFileController;\n\n /**\n * @type {NInputFileData}\n */\n declare data: NInputFileData;\n\n /**\n * @type {NInputFileView}\n */\n declare view: NInputFileView;\n\n constructor(props: any, context: SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NInputFileView(this),\n new NInputFileData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeRef('input');\n this.cloneProp('modelValue');\n\n return this;\n }\n\n updateModel()\n {\n const { data } = this;\n\n let files = [\n ...this.rel('input')?.files\n ];\n\n if ( Mix.isEmpty(files) ) {\n return;\n }\n\n if ( !data.multiple ) {\n files = Arr.first(files);\n }\n\n this.update('modelValue', files);\n }\n\n}\n\nexport default NInputFileController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NInputFileController } from \"./NInputFileController.ts\";\n\nexport const NInputFileProps = {\n\n ...Props.Size,\n ...Props.Type,\n ...Props.Disabled,\n ...Props.Icon,\n ...Props.Clearable,\n ...Props.ClearValue,\n\n /**\n * @type {PropType<any>}\n */\n modelValue: {\n default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n multiple: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<string>}\n */\n placeholder: {\n type: [String], default: ''\n },\n\n /**\n * @type {PropType<boolean>}\n */\n glass: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<string>}\n */\n buttonText: {\n type: [String], default: 'Select file'\n },\n\n /**\n * @type {PropType<string>}\n */\n countText: {\n type: [String], default: ':count File|:count Files'\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NInputFile',\n\n /**\n * @type {boolean}\n */\n inheritAttrs: false,\n\n /**\n * @type {typeof NInputFileProps}\n */\n props: NInputFileProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NInputFileController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { ProtoData } from \"../../../root/index.ts\";\nimport NTextareaController from \"./NTextareaController.ts\";\n\nexport class NTextareaData extends ProtoData\n{\n /**\n * @type {NTextareaController}\n */\n declare scope : NTextareaController;\n\n get classList() : string[]\n {\n let classList = [];\n\n if ( this.scope.get('focus') ) {\n classList.push('n-focus');\n }\n\n return this.classRoot(classList);\n }\n\n get model() : string\n {\n return this.scope.get('modelValue');\n }\n\n set model(value : string)\n {\n this.scope.set('modelValue', value);\n }\n\n get focus() : number\n {\n return this.scope.get('focus');\n }\n\n set focus(value : number)\n {\n this.scope.set('focus', value);\n }\n\n get placeholder()\n {\n return this.scope.get('placeholder');\n }\n\n set placeholder(value : string)\n {\n this.scope.set('placeholder', value);\n }\n\n get autoRows() : boolean\n {\n return this.scope.get('autoRows');\n }\n\n set autoRows(value : boolean)\n {\n this.scope.set('autoRows', value);\n }\n\n get maxRows() : number\n {\n return this.scope.get('maxRows');\n }\n\n set maxRows(value : number)\n {\n this.scope.set('maxRows', value);\n }\n\n get minRows() : number\n {\n return this.scope.get('minRows');\n }\n\n set minRows(value : number)\n {\n this.scope.set('minRows', value);\n }\n\n get maxLength() : number\n {\n return this.scope.get('maxLength');\n }\n\n set maxLength(value : number)\n {\n this.scope.set('maxLength', value);\n }\n\n}\n\nexport default NTextareaData;","import { h } from \"vue\";\nimport { Obj } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NTextareaController } from \"./NTextareaController.ts\";\n\n/**\n * @class NTextareaView\n * @extends {ProtoView<NTextareaController>}\n */\nexport class NTextareaView extends ProtoView\n{\n /**\n * @type {NTextareaController}\n */\n declare scope : NTextareaController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-textarea';\n\n default()\n {\n const { attrs, data } = this.scope;\n\n let props = {\n class: data.classList,\n style: attrs.style,\n };\n\n return h('div', props, [\n this.input()\n ]);\n }\n\n input()\n {\n let { scope, data } = this.scope;\n\n const exclude = [\n 'class',\n 'style',\n 'value',\n 'type',\n 'placeholder',\n 'onInput',\n 'onKeydown',\n 'onKeyup',\n ];\n\n let props = Obj.except(scope.attrs, exclude, {\n ref: scope.ref('input'),\n value: data.model,\n type: data.type,\n rows: data.minRows,\n disabled: data.superDisabled,\n placeholder: data.placeholder,\n });\n\n if ( data.maxLength ) {\n props.maxLength = data.maxLength;\n }\n\n let currentRows = (data.model.match(/\\n/g) || []).length + 1;\n\n if ( data.autoRows && props.rows < currentRows ) {\n props.rows = currentRows <= data.maxRows ? currentRows : data.maxRows;\n }\n\n props.onInput = (e : any) => {\n data.model = e.target.value;\n scope.emit('input', e);\n };\n\n props.onKeydown = (e : any) => {\n scope.emit('keydown', e);\n };\n\n props.onKeyup = (e : any) => {\n scope.emit('keyup', e);\n };\n\n props.onFocus = (e : any) => {\n data.focus = 1;\n scope.emit('focus', e);\n };\n\n props.onBlur = (e : any) => {\n data.focus = 0;\n scope.emit('blur', e);\n };\n\n return h('textarea', props);\n }\n\n}\n\nexport default NTextareaView;","import { SetupContext } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NTextareaData } from \"./NTextareaData.ts\";\nimport { NTextareaView } from \"./NTextareaView.ts\";\n\nexport class NTextareaController extends ProtoController\n{\n /**\n * @type {NTextareaController}\n */\n declare scope : NTextareaController;\n\n /**\n * @type {NTextareaData}\n */\n declare data : NTextareaData;\n\n /**\n * @type {NTextareaView}\n */\n declare view : NTextareaView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NTextareaView(this),\n new NTextareaData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this\n .cloneProp('modelValue');\n\n this\n .makeData('focus')\n .makeRef('input');\n\n return this;\n }\n\n}\n\nexport default NTextareaController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NTextareaController } from \"./NTextareaController.ts\";\n\nexport const NTextareaProps = {\n\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n ...Props.Disabled,\n\n /**\n * @type {PropType<string|number>}\n */\n modelValue: {\n type: [String, Number], default: ''\n },\n\n /**\n * @type {PropType<string>}\n */\n placeholder: {\n type: [String], default: ''\n },\n\n /**\n * @type {PropType<boolean>}\n */\n autoRows: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<number>}\n */\n minRows: {\n type: [Number], default: 3\n },\n\n /**\n * @type {PropType<number>}\n */\n maxRows: {\n type: [Number], default: 6\n },\n\n /**\n * @type {PropType<number>}\n */\n maxLength: {\n type: [Number], default: null\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NTextarea',\n\n /**\n * @type {boolean}\n */\n inheritAttrs: false,\n\n /**\n * @type {typeof NTextareaProps}\n */\n props: NTextareaProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n setup(props, context)\n {\n let ncx = new NTextareaController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NButtonController } from \"./NButtonController.ts\";\n\nexport class NButtonView extends ProtoView\n{\n /**\n * @type {NButtonController}\n */\n declare scope : NButtonController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-button';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n class: data.classList,\n disabled: data.superDisabled,\n };\n\n props.onPointerdown = (e : any) => {\n scope.emit('click', e);\n };\n\n props.onDblclick = (e : any) => {\n scope.emit('dblclick', e);\n };\n\n const slots = [\n this.body()\n ];\n\n if ( data.iconPosition === 'before' ) {\n Arr.prepend(slots, this.icon(data.icon));\n }\n\n if ( data.iconPosition === 'after' ) {\n Arr.append(slots, this.icon(data.icon));\n }\n\n return h(data.native, props, slots);\n }\n\n body() : any\n {\n let { scope, context} = this.scope;\n\n if ( scope.get('square') ) {\n return null;\n }\n\n if ( ! context.slots.default ) {\n return null;\n }\n\n return h('span', null, [\n this.slot('default')\n ]);\n }\n\n}\n\nexport default NButtonView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NButtonController from \"./NButtonController.ts\";\n\nexport class NButtonData extends ProtoData\n{\n /**\n * @type {NButtonController}\n */\n declare scope : NButtonController;\n\n get classList() : string[]\n {\n let classList = [];\n\n if ( this.scope.get('link') ) {\n classList.push(':bem--link');\n }\n\n if ( this.scope.get('square') ) {\n classList.push(':bem--square');\n }\n\n if ( this.scope.get('round') ) {\n classList.push(':bem--round');\n }\n\n if ( this.scope.get('glass') ) {\n classList.push(':bem--glass');\n }\n\n return this.classRoot(classList);\n }\n\n get native() : string\n {\n return this.scope.get('nativeType');\n }\n\n get link() : boolean\n {\n return this.scope.get('link');\n }\n\n get square() : boolean\n {\n return this.scope.get('square');\n }\n\n get round() : boolean\n {\n return this.scope.get('round');\n }\n\n get glass() : boolean\n {\n return this.scope.get('glass');\n }\n\n}\n\nexport default NButtonData;","import { SetupContext } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NButtonView } from \"./NButtonView.ts\";\nimport { NButtonData } from \"./NButtonData.ts\";\n\n\nexport class NButtonController extends ProtoController\n{\n /**\n * @type {NButtonController}\n */\n declare scope : NButtonController;\n\n /**\n * @type {NButtonData}\n */\n declare data: NButtonData;\n\n /**\n * @type {NButtonView}\n */\n declare view: NButtonView;\n\n constructor(props:any, context:SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NButtonView(this),\n new NButtonData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n return this;\n }\n\n}\n\nexport default NButtonController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NButtonController } from \"./NButtonController.ts\";\n\nexport const NButtonProps = {\n\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n ...Props.Disabled,\n ...Props.Icon,\n ...Props.IconPositionBefore,\n\n /**\n * @type {PropType<string>}\n */\n nativeType: {\n type: [String], default: 'button'\n },\n\n /**\n * @type {PropType<boolean>}\n */\n link: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n glass: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n round: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n square: {\n type: [Boolean], default: false\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NButton',\n\n /**\n * @type {typeof NButtonProps}\n */\n props: NButtonProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'click',\n 'dblclick'\n ],\n\n setup(props, context)\n {\n let ncx = new NButtonController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NButtonGroupController } from \"./NButtonGroupController.ts\";\n\n/**\n * @class NButtonGroupView\n * @extends {ProtoView<NButtonGroupController>}\n */\nexport class NButtonGroupView extends ProtoView\n{\n /**\n * @type {NButtonGroupController}\n */\n declare scope : NButtonGroupController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-button-group';\n\n default()\n {\n let { scope, data } = this.scope;\n\n let props = {\n class: data.classList,\n };\n\n return h('div', props, [\n this.slot('default')\n ]);\n }\n\n}\n\nexport default NButtonGroupView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NButtonGroupController from \"./NButtonGroupController.ts\";\n\nexport class NButtonGroupData extends ProtoData\n{\n /**\n * @type {NButtonGroupController}\n */\n declare scope : NButtonGroupController;\n\n get classList(): string[]\n {\n return this.classRoot();\n }\n\n}","import { ProtoController } from \"../../../root/index.ts\";\nimport { NButtonGroupView } from \"./NButtonGroupView.ts\";\nimport { NButtonGroupData } from \"./NButtonGroupData.ts\";\nimport { SetupContext } from \"vue\";\n\nexport class NButtonGroupController extends ProtoController\n{\n /**\n * @type {NButtonGroupController}\n */\n declare scope : NButtonGroupController;\n\n /**\n * @type {NButtonGroupData}\n */\n declare data : NButtonGroupData;\n\n /**\n * @type {NButtonGroupView}\n */\n declare view : NButtonGroupView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NButtonGroupView(this),\n new NButtonGroupData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n return this;\n }\n\n}\n\nexport default NButtonGroupController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NButtonGroupController } from \"./NButtonGroupController.ts\";\n\nexport const NButtonGroupProps = {\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n ...Props.Disabled,\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NButtonGroup',\n\n /**\n * @type {typeof NButtonGroupProps}\n */\n props: NButtonGroupProps,\n\n setup(props, context)\n {\n let ncx = new NButtonGroupController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NCheckboxController } from \"./NCheckboxController.ts\";\n\nexport class NCheckboxView extends ProtoView\n{\n /**\n * @type {NCheckboxController}\n */\n declare scope : NCheckboxController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-checkbox';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n class: data.classList\n };\n\n props.onClick = () => {\n scope.superToggle();\n };\n\n return h('div', props, [\n this.checkbox(), this.body()\n ]);\n }\n\n body() : any\n {\n return this.div('label', [\n this.slot('default')\n ]);\n }\n\n checkbox() : any\n {\n const { data } = this.scope;\n\n let config = {\n icon: 'fa fa-minus',\n };\n\n if ( data.model ) {\n config.icon = 'fa fa-check';\n }\n\n return this.div('checkbox', [\n this.icon(config)\n ]);\n }\n\n}\n\nexport default NCheckboxView;","import { ProtoData } from \"../../../root/index.ts\";\nimport { Arr } from \"@kizmann/pico-js\";\nimport NCheckboxController from \"./NCheckboxController.ts\";\n\nexport class NCheckboxData extends ProtoData\n{\n /**\n * @type {NCheckboxController}\n */\n declare scope : NCheckboxController;\n\n get classList() : string[]\n {\n let classList = this.classRoot();\n\n if ( this.model ) {\n Arr.append(classList, 'n-checked');\n }\n\n if ( this.model && this.allowUncheck ) {\n Arr.remove(classList, 'n-disabled');\n }\n\n if ( this.intermediate ) {\n Arr.append(classList, 'n-intermediate');\n }\n\n return classList;\n }\n\n get model() : boolean\n {\n return this.scope.get('modelValue');\n }\n\n get value() : any\n {\n return this.scope.get('value');\n }\n\n get allowUncheck() : boolean\n {\n return this.scope.get('allowUncheck');\n }\n\n get global() : boolean\n {\n return this.scope.get('global');\n }\n\n get intermediate() : boolean\n {\n return this.scope.get('intermediate');\n }\n\n}","import { onMounted, onUnmounted } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NCheckboxView } from \"./NCheckboxView.ts\";\nimport { NCheckboxData } from \"./NCheckboxData.ts\";\nimport { SetupContext } from \"vue\";\n\n\nexport class NCheckboxController extends ProtoController\n{\n /**\n * @type {NCheckboxController}\n */\n declare scope : NCheckboxController;\n\n /**\n * @type {NCheckboxData}\n */\n declare data : NCheckboxData;\n\n /**\n * @type {NCheckboxView}\n */\n declare view : NCheckboxView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NCheckboxView(this),\n new NCheckboxData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n\n this.injectRef([\n 'group', 'NCheckboxGroup'\n ]);\n\n return this;\n }\n\n onMounted()\n {\n //\n }\n\n onUnmounted()\n {\n //\n }\n\n superToggle()\n {\n //\n }\n\n}\n\nexport default NCheckboxController;","import { NCheckboxController } from \"./NCheckboxController.ts\";\n\n\nexport class NCheckboxControllerGlobal extends NCheckboxController\n{\n /**\n * @type {NCheckboxControllerGlobal}\n */\n declare scope : NCheckboxControllerGlobal;\n\n setup()\n {\n super.setup()\n\n const group = this.ref('group');\n\n if ( !group ) {\n throw new Error('NCheckboxGroup is required on global!');\n }\n\n this\n .linkProp(['modelValue', 'checked'], group)\n .linkProp('intermediate', group);\n\n return this;\n }\n\n superToggle()\n {\n this.ncx('group').superGlobal();\n }\n\n}\n\nexport default NCheckboxController;","import { Arr } from \"@kizmann/pico-js\";\nimport { NCheckboxController } from \"./NCheckboxController.ts\";\n\nexport class NCheckboxControllerSingle extends NCheckboxController\n{\n /**\n * @type {NCheckboxControllerSingle}\n */\n declare scope : NCheckboxControllerSingle;\n\n setup()\n {\n super.setup()\n\n this.cloneProp('modelValue');\n\n if ( this.ref('group') ) {\n this.watchModel();\n this.updateModel();\n }\n\n return this;\n }\n\n onMounted()\n {\n this.ncx('group')?.append(this);\n }\n\n onUnmounted()\n {\n this.ncx('group')?.remove(this);\n }\n\n watchModel()\n {\n const group = this.ncx('group');\n\n const fn = () => {\n this.updateModel();\n };\n\n group.watchProp('modelValue', fn);\n }\n\n updateModel()\n {\n const group = this.ncx('group');\n\n const value = Arr.has(...[\n group.data.model, this.data.value\n ]);\n\n this.set('modelValue', value);\n }\n\n superToggle()\n {\n const group = this.ncx('group');\n\n if ( group ) {\n group.superToggle(this);\n }\n\n this.update('modelValue', !this.data.model);\n }\n\n}\n\nexport default NCheckboxController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NCheckboxControllerGlobal } from \"./NCheckboxControllerGlobal.ts\";\nimport { NCheckboxControllerSingle } from \"./NCheckboxControllerSingle.ts\";\n\nexport const NCheckboxProps = {\n\n ...Props.Size,\n ...Props.Type,\n ...Props.Disabled,\n\n /**\n * @type {PropType<number|boolean>}\n */\n modelValue: {\n type: [Number, Boolean], default: false\n },\n\n /**\n * @type {PropType<number|boolean|string>}\n */\n value: {\n type: [Number, Boolean, String], default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n allowUncheck: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n global: {\n type: [Boolean], default: false\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NCheckbox',\n\n /**\n * @type {typeof NCheckboxProps}\n */\n props: NCheckboxProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n ],\n\n setup(props, context)\n {\n let name : any = NCheckboxControllerSingle;\n\n if ( props.global ) {\n name = NCheckboxControllerGlobal;\n }\n\n let ncx = new name(props, context);\n\n ncx.pass({\n toggle: 'superToggle',\n });\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NCheckboxGroupController } from \"./NCheckboxGroupController.ts\";\n\nexport class NCheckboxGroupView extends ProtoView\n{\n /**\n * @type {NCheckboxGroupController}\n */\n declare scope : NCheckboxGroupController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-checkbox-group';\n\n default() : any\n {\n let { data } = this.scope;\n\n let props = {\n class: data.classList\n };\n\n return h('div', props, [\n this.slot('default')\n ]);\n }\n\n}\n\nexport default NCheckboxGroupView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NCheckboxGroupController from \"./NCheckboxGroupController.ts\";\n\nexport class NCheckboxGroupData extends ProtoData\n{\n /**\n * @type {NCheckboxGroupController}\n */\n declare scope : NCheckboxGroupController;\n\n get classList() : string[]\n {\n let classList = [];\n\n if ( this.align ) {\n classList.push(`:bem--${this.align}`);\n }\n\n return this.classRoot(classList);\n }\n\n get model() : any[]\n {\n return this.scope.get('modelValue');\n }\n\n get checked() : boolean\n {\n return this.scope.get('checked');\n }\n\n get intermediate() : boolean\n {\n return this.scope.get('intermediate');\n }\n\n get align() : string\n {\n return this.scope.get('align');\n }\n\n}","import { SetupContext, provide } from \"vue\";\nimport { Arr, Mix } from \"@kizmann/pico-js\";\nimport { GroupController } from \"../../../root/index.ts\";\nimport { NCheckboxGroupView } from \"./NCheckboxGroupView.ts\";\nimport { NCheckboxGroupData } from \"./NCheckboxGroupData.ts\";\n\nexport class NCheckboxGroupController extends GroupController\n{\n /**\n * @type {NCheckboxGroupController}\n */\n declare scope : NCheckboxGroupController;\n\n /**\n * @type {NCheckboxGroupData}\n */\n declare data : NCheckboxGroupData;\n\n /**\n * @type {NCheckboxGroupView}\n */\n declare view : NCheckboxGroupView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NCheckboxGroupView(this),\n new NCheckboxGroupData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this\n .cloneProp('modelValue');\n\n this.compData('checked', () => {\n return this.getChecked();\n });\n\n this.compData('intermediate', () => {\n return this.getIntermediate();\n });\n\n this\n .exposeData('checked')\n .exposeData('intermediate');\n\n provide('NCheckboxGroup', this.instance);\n\n return this;\n }\n\n superGlobal()\n {\n const { checked, intermediate } = this.data;\n\n let keys = [];\n\n // @ts-ignore\n if ( !checked ?? intermediate ) {\n keys = Arr.extract(this.childs, 'data.value');\n }\n\n Arr.each(this.childs, (child : any) => {\n child.set('modelValue', Arr.has(keys, child.value));\n });\n\n this.update('modelValue', keys);\n }\n\n superToggle(child : any)\n {\n const result = Arr.toggle(...[\n this.data.model, child.data.value\n ]);\n\n this.update('modelValue', result);\n }\n\n getChecked()\n {\n return Arr.lengths(...[\n this.data.model, this.scope.childs\n ]);\n }\n\n getIntermediate()\n {\n return ! Mix.isEmpty(this.data.model);\n }\n\n}\n\nexport default NCheckboxGroupController;","import { PropType, defineComponent, getCurrentInstance } from \"vue\";\nimport { Obj } from \"@kizmann/pico-js\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NCheckboxGroupController } from \"./NCheckboxGroupController.ts\";\n\n\nexport const NCheckboxGroupProps = {\n\n ...Props.Size,\n ...Props.Type,\n ...Props.AlignHorizontal,\n\n /**\n * @type {PropType<array>}\n */\n modelValue: {\n type: [Array], default: () => []\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NCheckboxGroup',\n\n /**\n * @type {typeof NCheckboxGroupProps}\n */\n props: NCheckboxGroupProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NCheckboxGroupController(props, context);\n\n ncx.pass({\n global: 'superGlobal',\n toggle: 'superToggle',\n });\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NRadioController } from \"./NRadioController.ts\";\n\nexport class NRadioView extends ProtoView\n{\n /**\n * @type {NRadioController}\n */\n declare scope : NRadioController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-radio';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n class: data.classList\n };\n\n props.onClick = () => {\n scope.superApply();\n };\n\n return h('div', props, [\n this.radio(), this.body()\n ]);\n }\n\n body() : any\n {\n return this.div('label', [\n this.slot('default')\n ]);\n }\n\n radio() : any\n {\n return this.div('radio', [\n h('span')\n ]);\n }\n\n}\n\nexport default NRadioView;","import { Arr } from \"@kizmann/pico-js\";\nimport { ProtoData } from \"../../../root/index.ts\";\nimport NRadioController from \"./NRadioController.ts\";\n\nexport class NRadioData extends ProtoData\n{\n /**\n * @type {NRadioController}\n */\n declare scope : NRadioController;\n\n get classList() : string[]\n {\n let classList = this.classRoot();\n\n if ( this.model === this.value ) {\n Arr.append(classList, 'n-checked');\n }\n\n return classList;\n }\n\n get model() : string\n {\n return this.scope.get('modelValue');\n }\n\n get value() : string\n {\n return this.scope.get('value');\n }\n\n}","import { onMounted, onUnmounted, SetupContext } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NRadioView } from \"./NRadioView.ts\";\nimport { NRadioData } from \"./NRadioData.ts\";\n\nexport class NRadioController extends ProtoController\n{\n /**\n * @type {NRadioController}\n */\n declare scope : NRadioController;\n\n /**\n * @type {NRadioData}\n */\n declare data : NRadioData;\n\n /**\n * @type {NRadioView}\n */\n declare view : NRadioView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NRadioView(this),\n new NRadioData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n\n const group = this.injectRef([\n 'group', 'NRadioGroup'\n ]);\n\n if ( !group ) {\n throw new Error('NRadioGroup is required in radio!');\n }\n\n this.linkProp('modelValue', group);\n\n return this;\n }\n\n onMounted()\n {\n this.ncx('group')?.append(this);\n }\n\n onUnmounted()\n {\n this.ncx('group')?.remove(this);\n }\n\n superApply()\n {\n this.ncx('group').superApply(this);\n }\n\n}\n\nexport default NRadioController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NRadioController } from \"./NRadioController.ts\";\n\nexport const NRadioProps = {\n\n ...Props.Size,\n ...Props.Type,\n ...Props.Disabled,\n\n /**\n * @type {PropType<null|string>}\n */\n value: {\n type: [String], default: 'undefined'\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NRadio',\n\n /**\n * @type {typeof NRadioProps}\n */\n props: NRadioProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NRadioController(props, context);\n\n ncx.pass({\n apply: 'superApply'\n });\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NRadioGroupController } from \"./NRadioGroupController.ts\";\n\nexport class NRadioGroupView extends ProtoView\n{\n /**\n * @type {NRadioGroupController}\n */\n declare scope : NRadioGroupController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-radio-group';\n\n default() : any\n {\n let { data } = this.scope;\n\n let props = {\n class: data.classList\n };\n\n return h('div', props, [\n this.slot()\n ]);\n }\n\n}\n\nexport default NRadioGroupView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NRadioGroupController from \"./NRadioGroupController.ts\";\n\nexport class NRadioGroupData extends ProtoData\n{\n /**\n * @type {NRadioGroupController}\n */\n declare scope : NRadioGroupController;\n\n get classList() : string[]\n {\n let classList = [];\n\n if ( this.align ) {\n classList.push(`:bem--${this.align}`);\n }\n\n return this.classRoot(classList);\n }\n\n get model() : string\n {\n return this.scope.get('modelValue');\n }\n\n get align() : string\n {\n return this.scope.get('align');\n }\n\n}","import { provide, SetupContext } from \"vue\";\nimport { GroupController } from \"../../../root/index.ts\";\nimport { NRadioGroupView } from \"./NRadioGroupView.ts\";\nimport { NRadioGroupData } from \"./NRadioGroupData.ts\";\n\nexport class NRadioGroupController extends GroupController\n{\n /**\n * @type {NRadioGroupController}\n */\n declare scope : NRadioGroupController;\n\n /**\n * @type {NRadioGroupData}\n */\n declare data : NRadioGroupData;\n\n /**\n * @type {NRadioGroupView}\n */\n declare view : NRadioGroupView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NRadioGroupView(this),\n new NRadioGroupData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.cloneProp('modelValue');\n\n provide('NRadioGroup', this.instance);\n\n return this;\n }\n\n superApply(child:any)\n {\n this.update('modelValue', child.data.value);\n }\n\n}\n\nexport default NRadioGroupController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NRadioGroupController } from \"./NRadioGroupController.ts\";\n\nexport const NRadioGroupProps = {\n\n ...Props.Size,\n ...Props.Type,\n ...Props.Disabled,\n ...Props.AlignHorizontal,\n\n /**\n * @type {PropType<string|number>}\n */\n modelValue: {\n type: [String,Number], default: ''\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NRadioGroup',\n\n /**\n * @type {typeof NRadioGroupProps}\n */\n props: NRadioGroupProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NRadioGroupController(props, context);\n\n ncx.pass({\n apply: 'superApply'\n });\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport NPopoverPanelController from \"./NPopoverPanelController.ts\";\n\nexport class NPopoverPanelView extends ProtoView\n{\n /**\n * @type {NPopoverPanelController}\n */\n declare scope : NPopoverPanelController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-popover-panel';\n\n /**\n * @type {any}\n */\n popoverConfig : any = {\n width: 1\n };\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props = {\n ref: scope.ref('el'),\n class: data.classList\n };\n\n return h('div', props, [\n this.display(),\n this.popover(),\n ]);\n }\n\n display() : any\n {\n return this.div('display', [\n this.handle(),\n this.clear(),\n this.angle(),\n ]);\n }\n\n handle() : any\n {\n const { data } = this.scope;\n\n if ( !data.icon ) {\n return null;\n }\n\n let props = {\n class: data.classPart('icon')\n };\n\n Arr.append(...[\n props.class, 'n-form-icon'\n ]);\n\n return h('div', props, [\n this.icon(data.icon)\n ]);\n }\n\n popover() : any\n {\n const { data, scope } = this.scope;\n\n let props : any = {\n ...this.popoverConfig, type: data.type\n };\n\n props.ref = scope.ref('popover');\n\n props = scope.passProps(props, [\n 'position',\n ]);\n\n props.onOpen = () => {\n scope.set('focus', 1);\n scope.onOpen();\n };\n\n props.onClose = () => {\n scope.set('focus', 0);\n scope.onClose();\n };\n\n return this.comp('n-popover', props, {\n raw: () => this.panel()\n });\n }\n\n panel() : any\n {\n return this.slot('panel')\n }\n\n}\n\nexport default NPopoverPanelView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NPopoverPanelController from \"./NPopoverPanelController.ts\";\n\nexport class NPopoverPanelData extends ProtoData\n{\n /**\n * @type {NPopoverPanelController}\n */\n declare scope : NPopoverPanelController;\n\n get classList():string[]\n {\n let classList = [];\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n return this.classRoot(classList);\n }\n\n get focus()\n {\n return this.scope.get('focus');\n }\n\n}\n\nexport default NPopoverPanelData;","import { onMounted, SetupContext } from \"vue\";\nimport { Dom, Run } from \"@kizmann/pico-js\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NPopoverPanelView } from \"./NPopoverPanelView.ts\";\nimport { NPopoverPanelData } from \"./NPopoverPanelData.ts\";\n\nexport class NPopoverPanelController extends ProtoController\n{\n /**\n * @type {NPopoverPanelController}\n */\n declare scope : NPopoverPanelController;\n\n /**\n * @type {NPopoverPanelData}\n */\n declare data: NPopoverPanelData;\n\n /**\n * @type {NPopoverPanelView}\n */\n declare view: NPopoverPanelView;\n\n constructor(props:any, context:SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NPopoverPanelView(this),\n new NPopoverPanelData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this\n .makeRef('el')\n .makeRef('popover');\n\n this.makeData('focus', 0);\n\n return this;\n }\n\n onReady()\n {\n //\n }\n\n onOpen()\n {\n //\n }\n\n onClose()\n {\n //\n }\n\n onFocus()\n {\n Run.frame(() => {\n this.dom('el').child().pointerdown();\n });\n }\n\n onBlur()\n {\n Run.frame(() => {\n Dom.find(window).pointerdown();\n });\n }\n\n}\n\nexport default NPopoverPanelController;","import { h } from \"vue\";\nimport { Arr, Dom, Locale, Mix, Run } from \"@kizmann/pico-js\";\nimport { NSelectController } from \"./NSelectController.ts\";\nimport { NPopoverPanelView } from \"../../../popover/js/popover-panel/NPopoverPanelView.ts\";\n\nexport class NSelectView extends NPopoverPanelView\n{\n /**\n * @type {NSelectController}\n */\n declare scope : NSelectController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-select';\n\n /**\n * @type {any}\n */\n popoverConfig : any = {\n width: -1,\n };\n\n display() : any\n {\n return this.div('display', [\n this.clear(),\n this.angle(),\n this.single(),\n this.multis()\n ]);\n }\n\n single() : any\n {\n const { data } = this.scope;\n\n if ( data.multiple ) {\n return null;\n }\n\n return this.input();\n }\n\n multis() : any\n {\n const { data } = this.scope;\n\n if ( !data.multiple ) {\n return null;\n }\n\n return this.div('items', [\n this.tags(), this.collapse(), this.input()\n ]);\n }\n\n input() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n ref: scope.ref('input'),\n value: data.search,\n disabled: data.superDisabled,\n placeholder: Locale.trans(data.placeholder)\n };\n\n if ( !data.focus && data.label ) {\n props.value = data.label;\n }\n\n if ( !Mix.isEmpty(data.model) && data.label ) {\n props.placeholder = data.label;\n }\n\n if ( !data.focus && data.multiple ) {\n props.value = '';\n }\n\n if ( !Mix.isEmpty(data.model) && data.multiple ) {\n props.placeholder = '';\n }\n\n props.onInput = (e : any) => {\n scope.set('search', e.target.value);\n scope.scrollToIndex(0);\n }\n\n props.onFocus = (e : any) => {\n scope.onFocus();\n };\n\n props.onKeydown = (e : any) => {\n if ( e.which === 9 ) scope.onBlur();\n if ( e.which === 13 ) scope.onEnter();\n if ( e.which === 38 ) scope.scrollToIndex(data.index - 1);\n if ( e.which === 40 ) scope.scrollToIndex(data.index + 1);\n };\n\n return this.div('input', [\n h('input', props)\n ]);\n }\n\n tags() : any\n {\n const { data } = this.scope;\n\n if ( Mix.isEmpty(data.model) ) {\n return null;\n }\n\n let items = Arr.clone(data.model);\n\n if ( data.collapse ) {\n items = Arr.slice(items, 0, 1);\n }\n\n return Arr.each(items, (value : any) => {\n return this.tag(value);\n });\n }\n\n tag(value : any) : any\n {\n const { scope, data } = this.scope;\n\n const item = Arr.find(data.virtuals, {\n value\n });\n\n let props : any = {\n class: 'fa fa-times',\n };\n\n props.onClick = () => {\n scope.applyModel(value);\n };\n\n return this.div('item', [\n h('span', null, [item?.label || value]), h('i', props)\n ]);\n }\n\n collapse() : any\n {\n const { data } = this.scope;\n\n if ( !data.collapse || Mix.len(data.model) < 2 ) {\n return null;\n }\n\n const text = Locale.choice(...[\n data.collapseText, data.model.length - 1\n ]);\n\n return this.div('item', [\n h('span', null, [text])\n ]);\n\n }\n\n panel() : any\n {\n const { scope, data } = this.scope;\n\n if ( !data.searched.length ) {\n return this.empty();\n }\n\n let props : any = {\n ref: scope.ref('scrollbar'),\n class: [`${this.bem}__body`, 'n-popover-shadow'],\n items: data.searched,\n };\n\n props.onReady = () => {\n this.scope.onReady();\n };\n\n const slots : any = {};\n\n slots.default = (item : any) => {\n return this.item(item);\n };\n\n return this.comp('n-virtualbar', props, slots);\n }\n\n item({ value, index }) : any\n {\n const { scope, data } = this.scope;\n\n let props : any = {\n focus: index === data.index\n };\n\n props.onClick = () => {\n scope.set('index', index);\n scope.applyModel(value.value);\n };\n\n props.active = Arr.has(...[\n data.model, value.value\n ]);\n\n if ( props.active ) {\n props.icon = 'fa fa-check';\n }\n\n return this.comp('n-popover-option', props, () => [\n value.label\n ]);\n }\n\n}\n\nexport default NSelectView;","import { Arr, Mix, Obj } from \"@kizmann/pico-js\";\nimport { ProtoExtend, OptionData, PositionData } from \"../../../root/index.ts\";\nimport { NPopoverPanelData } from \"../../../popover/js/popover-panel/NPopoverPanelData.ts\";\nimport { NSelectController } from \"./NSelectController.ts\";\n\nexport class NSelectData extends ProtoExtend([NPopoverPanelData, OptionData, PositionData])\n{\n /**\n * @type {NSelectController}\n */\n declare scope : NSelectController;\n\n get model() : any\n {\n let model = this.scope.get('modelValue');\n\n if ( ! this.multiple ) {\n return Arr.first(model);\n }\n\n return Arr.filter(Arr.all(model));\n }\n\n get label() : string\n {\n const item = Arr.find(this.virtuals, {\n value: this.model\n });\n\n return item?.label;\n }\n\n get prepared() : any[]\n {\n return this.scope.get('prepared');\n }\n\n get virtuals() : any[]\n {\n return this.scope.get('virtuals');\n }\n\n get searched() : any[]\n {\n return this.scope.get('searched');\n }\n\n get index() : number\n {\n return this.scope.get('index');\n }\n\n get search() : string\n {\n return this.scope.get('search');\n }\n\n get multiple() : boolean\n {\n return this.scope.get('multiple');\n }\n\n get allowCreate() : boolean\n {\n return this.scope.get('allowCreate');\n }\n\n get collapse() : boolean\n {\n return this.scope.get('collapse');\n }\n\n get placeholder() : string\n {\n return this.scope.get('placeholder');\n }\n\n get collapseText() : string\n {\n return this.scope.get('collapseText');\n }\n\n}\n\nexport interface NSelectData extends NPopoverPanelData, OptionData, PositionData {}\n\nexport default NSelectData;","import { SetupContext, onMounted } from \"vue\";\nimport { Arr, Locale, Mix, Num, Obj, Run, Str } from \"@kizmann/pico-js\";\nimport { NPopoverPanelController } from \"../../../popover/js/popover-panel/NPopoverPanelController.ts\";\nimport { NSelectView } from \"./NSelectView.ts\";\nimport { NSelectData } from \"./NSelectData.ts\";\nimport { Helpers } from \"../../../root/index.ts\";\n\nexport class NSelectController extends NPopoverPanelController\n{\n /**\n * @type {NSelectController}\n */\n declare scope : NSelectController;\n\n /**\n * @type {NSelectData}\n */\n declare data : NSelectData;\n\n /**\n * @type {NSelectView}\n */\n declare view : NSelectView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NSelectView(this),\n // @ts-ignore\n new NSelectData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this\n .cloneProp('modelValue');\n\n this\n .makeRef('input')\n .makeRef('scrollbar');\n\n this\n .makeData('search', '')\n .makeData('index', 0);\n\n this.compData('prepared', () => {\n return Helpers.Option.getFlat(this);\n });\n\n this.compData('virtuals', () => {\n return Helpers.Option.getCombineList(...[\n this, this.data.prepared\n ]);\n });\n\n this.compData('searched', () => {\n return Helpers.Option.getFilterList(...[\n this, this.data.virtuals\n ]);\n });\n\n return this;\n }\n\n onMounted()\n {\n this.resetDisplay();\n }\n\n onReady()\n {\n this.scrollToIndex();\n }\n\n onOpen()\n {\n this.set('search', '');\n this.focusInput();\n this.resetDisplay();\n }\n\n onClose()\n {\n this.ref('input')?.value?.blur();\n this.set('search', '');\n }\n\n onEnter()\n {\n const { data } = this;\n\n const slice : [any[], number] = [\n data.searched, data.index\n ];\n\n let model = data.model;\n\n if ( data.searched.length ) {\n model = Arr.get(...slice)?.value;\n }\n\n if ( data.allowCreate ) {\n model = data.search || model;\n }\n\n if ( Arr.matches(data.model, model) ) {\n return;\n }\n\n if ( !Mix.isEmpty(model) ) {\n this.applyModel(model);\n }\n\n this.set('search', '');\n }\n\n applyModel(value:any)\n {\n const { data } = this;\n\n let model = Arr.all(data.model);\n\n if ( Mix.isArr(model) ) {\n model = Arr.filter(model);\n }\n\n if ( !Mix.isEmpty(value) ) {\n Arr.toggle(model, value);\n }\n\n if ( !data.multiple ) {\n model = Arr.last(model);\n }\n\n const clearValue = Obj.clone(...[\n data.clearValue,\n ]);\n\n if ( Mix.isEmpty(value) ) {\n model = clearValue;\n }\n\n const denyUpdate = Mix.isEmpty(model)\n && ! data.clearable\n && ! data.multiple;\n\n if ( ! denyUpdate ) {\n this.update('modelValue', model);\n }\n }\n\n focusInput()\n {\n Run.frame(() => {\n this.ref('input')?.value?.focus();\n });\n }\n\n resetDisplay()\n {\n const { data } = this;\n\n const index = Arr.findIndex(data.virtuals, {\n value: Arr.first(data.model)\n }, 0);\n\n this.set('index', Math.max(0, index));\n }\n\n scrollToIndex(index = null)\n {\n const { data } = this;\n\n if ( index == null ) {\n index = data.index;\n }\n\n index = Num.minmax(...[\n index, 0, data.searched.length - 1\n ]);\n\n if ( index !== data.index ) {\n this.set('index', index);\n }\n\n this.ncx('scrollbar')?.scrollTo(...[\n data.index\n ]);\n }\n\n}\n\nexport default NSelectController;","import { SetupContext, ExtractPropTypes, PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NSelectController } from \"./NSelectController.ts\";\n\nexport const NSelectProps = {\n\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n ...Props.Disabled,\n ...Props.Clearable,\n ...Props.ClearValue,\n ...Props.EmptyText,\n ...Props.UndefinedText,\n ...Props.PositionBottomCenter,\n ...Props.OptionsObject,\n\n /**\n * @type {PropType<any>}\n */\n modelValue: {\n default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n multiple: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n allowCreate: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n collapse: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<string>}\n */\n placeholder: {\n type: [String], default: 'Please select'\n },\n\n /**\n * @type {PropType<string>}\n */\n collapseText: {\n type: [String], default: '+:count item|+:count items'\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NSelect',\n\n /**\n * @type {typeof NSelectProps}\n */\n props: NSelectProps,\n\n emits: [\n 'update:modelValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NSelectController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NSwitchController } from \"./NSwitchController.ts\";\n\nexport class NSwitchView extends ProtoView\n{\n /**\n * @type {NSwitchController}\n */\n declare scope : NSwitchController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-switch';\n\n default()\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n class: data.classList\n };\n\n props.onClick = () => {\n scope.toggle();\n };\n\n return h('div', props, [\n this.switch(), this.label()\n ]);\n }\n\n switch()\n {\n return this.div('switch', [\n h('span')\n ]);\n }\n\n label()\n {\n return this.div('label', [\n this.slot('default')\n ]);\n }\n\n}\n\nexport default NSwitchView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NSwitchController from \"./NSwitchController.ts\";\n\nexport class NSwitchData extends ProtoData\n{\n /**\n * @type {NSwitchController}\n */\n declare scope : NSwitchController;\n\n get classList() : string[]\n {\n let classList = [];\n\n if ( this.model === this.onValue ) {\n classList.push('n-on');\n }\n\n if ( this.model === this.offValue ) {\n classList.push('n-off');\n }\n\n if ( this.onType && this.onValue === this.model ) {\n classList.push(`n-type-${this.onType}`);\n }\n\n if ( this.offType && this.offValue === this.model ) {\n classList.push(`n-type-${this.offType}`);\n }\n\n return this.classRoot(classList);\n }\n\n get model() : any\n {\n return this.scope.get('modelValue');\n }\n\n set model(value : any)\n {\n this.scope.set('modelValue', value);\n }\n\n get onValue() : any\n {\n return this.scope.get('onValue');\n }\n\n set onValue(value : any)\n {\n this.scope.set('onValue', value);\n }\n\n get offValue() : any\n {\n return this.scope.get('offValue');\n }\n\n set offValue(value : any)\n {\n this.scope.set('offValue', value);\n }\n\n get onType() : string\n {\n return this.scope.get('onType');\n }\n\n set onType(value : string)\n {\n this.scope.set('onType', value);\n }\n\n get offType() : string\n {\n return this.scope.get('offType');\n }\n\n set offType(value : string)\n {\n this.scope.set('offType', value);\n }\n\n}","import { SetupContext } from \"vue\";\nimport { Arr } from \"@kizmann/pico-js\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NSwitchView } from \"./NSwitchView.ts\";\nimport { NSwitchData } from \"./NSwitchData.ts\";\n\nexport class NSwitchController extends ProtoController\n{\n /**\n * @type {NSwitchController}\n */\n declare scope : NSwitchController;\n\n /**\n * @type {NSwitchData}\n */\n declare data : NSwitchData;\n\n /**\n * @type {NSwitchView}\n */\n declare view : NSwitchView;\n\n constructor(props:any, context:SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NSwitchView(this),\n new NSwitchData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this\n .cloneProp('modelValue');\n\n return this;\n }\n\n toggle()\n {\n let value = this.data.model;\n\n if ( this.data.model === this.data.onValue ) {\n value = this.data.offValue;\n }\n\n if ( this.data.model === this.data.offValue ) {\n value = this.data.onValue;\n }\n\n const both = [\n this.data.onValue, this.data.offValue\n ];\n\n if ( ! Arr.has(both, value) ) {\n value = this.data.onValue;\n }\n\n this.update('modelValue', value);\n }\n\n}\n\nexport default NSwitchController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NSwitchController } from \"./NSwitchController.ts\";\n\nexport const NSwitchProps = {\n\n ...Props.Size,\n ...Props.Disabled,\n\n /**\n * @type {PropType<number|boolean|string|object>}\n */\n modelValue: {\n type: [Number, Boolean, String, Object], default: false\n },\n\n /**\n * @type {PropType<string>}\n */\n onType: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n offType: {\n type: [String], default: 'default'\n },\n\n /**\n * @type {PropType<number|boolean|string|object>}\n */\n onValue: {\n type: [Number, Boolean, String, Object], default: true\n },\n\n /**\n * @type {PropType<number|boolean|string|object>}\n */\n offValue: {\n type: [Number, Boolean, String, Object], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n inline: {\n type: [Boolean], default: true\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NSwitch',\n\n /**\n * @type {NSwitchProps}\n */\n props: NSwitchProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue'\n ],\n\n setup(props, context)\n {\n let ncx = new NSwitchController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Mix, Obj, Run } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NCascaderPanelController } from \"./NCascaderPanelController.ts\";\n\nexport class NCascaderPanelView extends ProtoView\n{\n /**\n * @type {NCascaderPanelController}\n */\n declare scope : NCascaderPanelController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-cascader-panel';\n\n default() : any\n {\n let { data } = this.scope;\n\n let props = {\n class: data.classList\n };\n\n const slots = Arr.each(data.virtuals, (val : any) => {\n return this.items(val[data.childProp] ?? []);\n });\n\n return h('div', props, [\n this.items(data.options), ...slots\n ]);\n }\n\n items(items : any) : any\n {\n const { data } = this.scope;\n\n if ( Mix.isEmpty(items) ) {\n return null;\n }\n\n let props = {\n class: data.classPart('items'),\n items: items,\n };\n\n return this.comp('n-virtualbar', props, ({ value }) => {\n return this.item(value);\n });\n }\n\n item(item : any) : any\n {\n const { scope, data } = this.scope;\n\n let props : any = {\n disabled: item[data.disabledProp],\n };\n\n if ( !Mix.isEmpty(item[data.childProp]) ) {\n props.icon = 'fa fa-angle-right';\n }\n\n const active = Arr.has(...[\n data.model, item[data.valueProp]\n ]);\n\n if ( active ) {\n props.active = true;\n }\n\n if ( data.split === item[data.valueProp] ) {\n props.icon = 'fa fa-check';\n }\n\n const visible = Arr.has(...[\n data.visible, item[data.valueProp]\n ]);\n\n if ( visible ) {\n props.focus = true;\n }\n\n props.onPointerenter = () => {\n scope.onMouseenter(item);\n };\n\n props.onClick = (e : any) => {\n e.preventDefault();\n scope.onClick(item);\n };\n\n props.onDblclick = (e : any) => {\n e.preventDefault();\n scope.onDblclick(item);\n };\n\n return this.comp('n-popover-option', props, () => [\n Obj.get(item, data.labelProp)\n ]);\n }\n\n}\n\nexport default NCascaderPanelView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NCascaderPanelController from \"./NCascaderPanelController.ts\";\n\nexport class NCascaderPanelData extends ProtoData\n{\n /**\n * @type {NCascaderPanelController}\n */\n declare scope : NCascaderPanelController;\n\n get classList() : string[]\n {\n let classList = [];\n\n return this.classRoot(classList);\n }\n\n get model() : string[]\n {\n return this.scope.get('modelValue');\n }\n\n get split() : string\n {\n return this.scope.get('splitValue');\n }\n\n get virtuals() : any\n {\n return this.scope.get('virtuals');\n }\n\n get visible() : string[]\n {\n return this.scope.get('visible');\n }\n\n get options() : any\n {\n return this.scope.get('options');\n }\n\n get trigger() : string\n {\n return this.scope.get('trigger');\n }\n\n get labelProp() : string\n {\n return this.scope.get('labelProp');\n }\n\n get valueProp() : string\n {\n return this.scope.get('valueProp');\n }\n\n get childProp() : string\n {\n return this.scope.get('childProp');\n }\n\n get disabledProp() : string\n {\n return this.scope.get('disabledProp');\n }\n\n}\n\nexport default NCascaderPanelData;","import { Arr, Mix, Obj } from \"@kizmann/pico-js\";\n\nexport class NCascaderHelper\n{\n\n static buildSplitFromModel(scope : any) : NCascaderHelper\n {\n const { model } = scope.data;\n\n if ( Mix.isEmpty(model) ) {\n return this;\n }\n\n scope.set('splitValue', ...[\n Arr.last(model)\n ]);\n\n return this;\n }\n\n static buildModelFromSplit(scope : any) : NCascaderHelper\n {\n const { options, split, valueProp, childProp } = scope.data;\n\n if ( Mix.isEmpty(split) ) {\n return this;\n }\n\n let result = Arr.cascadeFind(options, childProp, (val : any) => {\n return val[valueProp] === split;\n });\n\n if ( Mix.isEmpty(result) ) {\n result = [{ [valueProp]: split }];\n }\n\n scope.set('modelValue', ...[\n Arr.extract(result, valueProp)\n ]);\n\n return this;\n }\n\n static getCascade(scope : any, value : string[] = null) : any[]\n {\n const { options, model, visible, valueProp, childProp } = scope.data;\n\n if ( visible == null ) {\n value = Arr.last(model || []);\n }\n\n if ( visible != null ) {\n value = Arr.last(visible || []);\n }\n\n const result = Arr.cascadeFind(options, childProp, (val : any) => {\n return val[valueProp] === value;\n });\n\n return result ?? [];\n }\n\n static getPath(scope : any, item : any)\n {\n const { options, valueProp, childProp } = scope.data;\n\n const result = Arr.cascadeFind(options, childProp, (val : any) => {\n return val[valueProp] === item[valueProp];\n });\n\n return Arr.extract(result, valueProp);\n }\n\n}\n\nexport default NCascaderHelper;","import { SetupContext } from \"vue\";\nimport { Arr, Mix, Obj } from \"@kizmann/pico-js\";\nimport { GroupController } from \"../../../root/index.ts\";\nimport { NCascaderPanelView } from \"./NCascaderPanelView.ts\";\nimport { NCascaderPanelData } from \"./NCascaderPanelData.ts\";\nimport { NCascaderHelper } from \"../helper/NCascaderHelper.ts\";\n\n\nexport class NCascaderPanelController extends GroupController\n{\n /**\n * @type {NCascaderPanelController}\n */\n declare scope : NCascaderPanelController;\n\n /**\n * @type {NCascaderPanelData}\n */\n declare data : NCascaderPanelData;\n\n /**\n * @type {NCascaderPanelView}\n */\n declare view : NCascaderPanelView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NCascaderPanelView(this),\n new NCascaderPanelData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this\n .cloneProp('modelValue')\n .cloneProp('splitValue');\n\n this\n .makeRef('el');\n\n const { model, split } = this.data;\n\n if ( Mix.isEmpty(model) && !Mix.isEmpty(split) ) {\n NCascaderHelper.buildModelFromSplit(this);\n }\n\n if ( Mix.isEmpty(split) && !Mix.isEmpty(model) ) {\n NCascaderHelper.buildSplitFromModel(this);\n }\n\n this.compData('virtuals', () => {\n return NCascaderHelper.getCascade(this);\n });\n\n this.makeData('visible', ...[\n Obj.clone(this.data.model)\n ]);\n\n return this;\n }\n\n onMouseenter(item : any)\n {\n const { data } = this;\n\n if ( data.trigger === 'hover' ) {\n this.updateVisible(item);\n }\n }\n\n onClick(item : any)\n {\n const { data } = this;\n\n if ( data.trigger === 'click' ) {\n this.updateVisible(item);\n }\n\n if ( data.trigger === 'hover' ) {\n this.updateCascade(item);\n }\n }\n\n onDblclick(item : any)\n {\n const { data } = this;\n\n if ( data.trigger === 'click' ) {\n this.updateCascade(item);\n }\n }\n\n updateVisible(item : any)\n {\n const cascade = NCascaderHelper.getPath(...[\n this, item\n ]);\n\n this.set('visible', cascade);\n }\n\n updateCascade(item : any)\n {\n const cascade = NCascaderHelper.getPath(...[\n this, item\n ]);\n\n const [total, split] = [\n cascade, Arr.last(cascade)\n ];\n\n this.update('splitValue', split);\n this.update('modelValue', total);\n }\n\n}\n\nexport default NCascaderPanelController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NCascaderPanelController } from \"./NCascaderPanelController.ts\";\n\nexport const NCascaderPanelProps = {\n\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n ...Props.Disabled,\n\n /**\n * @type {PropType<array|object>}\n */\n modelValue: {\n type: [Array,Object], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n splitValue: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n trigger: {\n type: [String], default: 'hover'\n },\n\n /**\n * @type {PropType<array|object>}\n */\n options: {\n type: [Array,Object], default: () => []\n },\n\n /**\n * @type {PropType<string>}\n */\n labelProp: {\n type: [String], default: 'label'\n },\n\n /**\n * @type {PropType<string>}\n */\n valueProp: {\n type: [String], default: 'value'\n },\n\n /**\n * @type {PropType<string>}\n */\n childProp: {\n type: [String], default: 'children'\n },\n\n /**\n * @type {PropType<string>}\n */\n disabledProp: {\n type: [String], default: 'disabled'\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NCascaderPanel',\n\n /**\n * @type {typeof NCascaderPanelProps}\n */\n props: NCascaderPanelProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n 'update:splitValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NCascaderPanelController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Dom, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { NCascaderController } from \"./NCascaderController.ts\";\nimport { NPopoverPanelView } from \"../../../popover/js/popover-panel/NPopoverPanelView.ts\";\nimport { NCascaderPanelProps } from \"../cascader-panel/NCascaderPanel.ts\";\n\nexport class NCascaderView extends NPopoverPanelView\n{\n /**\n * @type {NCascaderController}\n */\n declare scope : NCascaderController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-cascader';\n\n display() : any\n {\n return this.div('display', [\n this.items(),\n this.clear(),\n this.angle(),\n ]);\n }\n\n items() : any\n {\n const { data } = this.scope;\n\n if ( Mix.isEmpty(data.model) ) {\n return this.placeholder();\n }\n\n let items = data.virtuals;\n\n if ( Mix.isEmpty(items) ) {\n items = data.model;\n }\n\n const first = Arr.first(items);\n\n let [offset, compare] = [\n Mix.len(items) - data.collapse,\n Mix.len(items) - data.collapse,\n ];\n\n if ( ! data.collapseFirst ) {\n offset = offset + 1;\n }\n\n let result = items;\n\n if ( items.length > data.collapse ) {\n result = items.slice(offset);\n }\n\n let slots = [];\n\n if ( offset !== compare ) {\n Arr.append(slots, this.item(first));\n }\n\n if ( offset > 0 ) {\n Arr.append(slots, this.collapse());\n }\n\n Arr.each(result, (item : any) => {\n Arr.append(slots, this.item(item));\n });\n\n return this.div('items', slots);\n }\n\n item(item : any) : any\n {\n const { data } = this.scope;\n\n let props : any = {\n name: 'item'\n };\n\n let label = Obj.get(...[\n item, data.labelProp\n ]);\n\n if ( Mix.isEmpty(label) ) {\n label = Locale.trans(data.undefinedText)\n }\n\n return this.div(props, [\n h('span', null, [label])\n ])\n }\n\n collapse() : any\n {\n const { data } = this.scope;\n\n let props :any = {\n name: 'item'\n }\n\n return this.div(props, [\n h('span', null, [\n Locale.trans(data.collapseText)\n ])\n ]);\n }\n\n placeholder() : any\n {\n const { data } = this.scope;\n\n return this.div('placeholder', [\n Locale.trans(data.placeholder)\n ]);\n }\n\n panel() : any\n {\n const { scope, data } = this.scope;\n\n if ( !data.options.length ) {\n return this.empty();\n }\n\n let props = {\n ref: scope.ref('panel'),\n class: ['n-popover-shadow']\n };\n\n props = scope.passProps(props, [\n ...Mix.keys(NCascaderPanelProps)\n ]);\n\n props['onUpdate:modelValue'] = (value : any) => {\n scope.update('modelValue', value);\n };\n\n props['onUpdate:splitValue'] = (value : any) => {\n scope.update('splitValue', value);\n };\n\n return this.comp('n-cascader-panel', props);\n }\n\n}\n\nexport default NCascaderView;","import { Arr, Mix, Obj } from \"@kizmann/pico-js\";\nimport { ProtoExtend, PositionData, TextData } from \"../../../root/index.ts\";\nimport { NPopoverPanelData } from \"../../../popover/js/popover-panel/NPopoverPanelData.ts\";\nimport { NCascaderController } from \"./NCascaderController.ts\";\n\nexport class NCascaderData extends ProtoExtend([NPopoverPanelData, PositionData, TextData])\n{\n /**\n * @type {NCascaderController}\n */\n declare scope : NCascaderController;\n\n get model() : string[]\n {\n return this.scope.get('modelValue');\n }\n\n get split() : string\n {\n return this.scope.get('splitValue');\n }\n\n get virtuals() : any\n {\n return this.scope.get('virtuals');\n }\n\n get collapse() : number\n {\n return this.scope.get('collapse');\n }\n\n get collapseText() : string\n {\n return this.scope.get('collapseText');\n }\n\n get collapseFirst() : boolean\n {\n return this.scope.get('collapseFirst');\n }\n\n get placeholder() : string\n {\n return this.scope.get('placeholder');\n }\n\n get options() : any\n {\n return this.scope.get('options');\n }\n\n get labelProp() : string\n {\n return this.scope.get('labelProp');\n }\n\n get valueProp() : string\n {\n return this.scope.get('valueProp');\n }\n\n get childProp() : string\n {\n return this.scope.get('childProp');\n }\n\n\n}\n\nexport interface NCascaderData extends NPopoverPanelData, PositionData, TextData {\n}\n\nexport default NCascaderData;","import { onMounted, SetupContext } from \"vue\";\nimport { Arr, Locale, Mix, Obj, Run, Str } from \"@kizmann/pico-js\";\nimport { ProtoExtend } from \"../../../root/index.ts\";\nimport { NPopoverPanelController } from \"../../../popover/js/popover-panel/NPopoverPanelController.ts\";\nimport { NCascaderView } from \"./NCascaderView.ts\";\nimport { NCascaderData } from \"./NCascaderData.ts\";\nimport { NCascaderHelper } from \"../helper/NCascaderHelper.ts\";\n\nexport class NCascaderController extends NPopoverPanelController\n{\n /**\n * @type {NCascaderController}\n */\n declare scope : NCascaderController;\n\n /**\n * @type {NCascaderData}\n */\n declare data : NCascaderData;\n\n /**\n * @type {NCascaderView}\n */\n declare view : NCascaderView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n // @ts-ignore\n new NCascaderView(this),\n // @ts-ignore\n new NCascaderData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this\n .cloneProp('modelValue')\n .cloneProp('splitValue');\n\n this.makeRef('panel');\n\n let { model, split } = this.data;\n\n if ( Mix.isEmpty(model) && ! Mix.isEmpty(split) ) {\n NCascaderHelper.buildModelFromSplit(this);\n }\n\n if ( ! Mix.isEmpty(model) && Mix.isEmpty(split) ) {\n NCascaderHelper.buildSplitFromModel(this);\n }\n\n this.compData('virtuals', () => {\n return NCascaderHelper.getCascade(this);\n });\n\n return this;\n }\n\n}\n\nexport default NCascaderController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NCascaderController } from \"./NCascaderController.ts\";\nimport { NCascaderPanelProps } from \"../cascader-panel/NCascaderPanel.ts\";\n\nexport const NCascaderProps = {\n\n ...Props.Clearable,\n ...Props.ClearValue,\n ...Props.EmptyText,\n ...Props.UndefinedText,\n ...Props.PositionBottomStart,\n ...NCascaderPanelProps,\n\n /**\n * @type {PropType<number>}\n */\n collapse: {\n type: [Number], default: 3\n },\n\n /**\n * @type {PropType<string>}\n */\n collapseText: {\n type: [String], default: '...'\n },\n\n /**\n * @type {PropType<boolean>}\n */\n collapseFirst: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<string>}\n */\n placeholder: {\n type: [String], default: 'Please select'\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NCascader',\n\n /**\n * @type {typeof NCascaderProps}\n */\n props: NCascaderProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n 'update:splitValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NCascaderController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NPopoverController } from \"./NPopoverController.ts\";\n\nexport class NPopoverView extends ProtoView\n{\n /**\n * @type {NPopoverController}\n */\n declare scope : NPopoverController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-popover';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props = {\n ref: scope.ref('el'),\n class: data.classList\n };\n\n if ( !data.model ) {\n props.class.push('n-hidden');\n }\n\n return h('div', props, [\n this.body(),\n ]);\n }\n\n body() : any\n {\n const { data } = this.scope;\n\n if ( !data.model ) {\n return null;\n }\n\n const props : any = {\n name: 'frame'\n };\n\n if ( data.width ) {\n props.style = `width: ${data.width}px;`;\n }\n\n const { slots } = this.scope.context;\n\n if ( slots.raw ) {\n return slots.raw();\n }\n\n const html = [];\n\n if ( slots.header ) {\n html.push(this.div('header', this.slot('header')));\n }\n\n if ( slots.default ) {\n html.push(this.div('body', this.slot('default')));\n }\n\n if ( slots.footer ) {\n html.push(this.div('footer', this.slot('footer')));\n }\n\n return this.div(props, html);\n }\n\n}\n\nexport default NPopoverView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NPopoverController from \"./NPopoverController.ts\";\n\nexport class NPopoverData extends ProtoData\n{\n /**\n * @type {NPopoverController}\n */\n declare scope : NPopoverController;\n\n get classList() : string[]\n {\n let classList = [];\n\n if ( this.position != null ) {\n classList.push(`:bem--${this.position}`);\n }\n\n return this.classRoot(classList);\n }\n\n get model() : boolean\n {\n return this.scope.get('modelValue');\n }\n\n get width() : number\n {\n return this.scope.get('width');\n }\n\n get target() : any\n {\n return this.scope.get('target');\n }\n\n get trigger() : string\n {\n return this.scope.get('trigger');\n }\n\n get toggle() : boolean\n {\n return this.scope.get('toggle');\n }\n\n get position() : string\n {\n return this.scope.get('position');\n }\n\n get escapeClose() : boolean\n {\n return this.scope.get('escapeClose');\n }\n\n get scrollClose() : boolean\n {\n return this.scope.get('scrollClose');\n }\n\n get multiClose() : boolean\n {\n return this.scope.get('multiClose');\n }\n\n}","import { Dom, Arr, Obj, Run, Hash, Str } from \"@kizmann/pico-js\";\nimport { Pointer } from \"../../../root/index.ts\";\nimport NPopoverHandler from \"./NPopoverHandler.ts\";\n\nexport class NPopoverElement\n{\n /**\n * @type {ResizeObserver}\n */\n observer : ResizeObserver;\n\n /**\n * @type {boolean}\n */\n visible : boolean = false;\n\n /**\n * @type {any}\n */\n cursor : any = {\n x: 0, y: 0,\n };\n\n /**\n * @type {any}\n */\n options : any = {\n target: null,\n listen: true,\n trigger: 'hover',\n toggle: false,\n position: 'bottom-center',\n width: 0,\n escapeClose: true,\n scrollClose: true,\n multiClose: true,\n };\n\n get uid() : string\n {\n return this.options.uid;\n }\n\n constructor(el : HTMLElement, options : any = {})\n {\n if ( options.uid == null ) {\n options.uid = Hash.uuid()\n }\n\n if ( options.target == null ) {\n options.target = Dom.find(el).prev().get(0);\n }\n\n this.options = Obj.assign(this.options, options, {\n el: Dom.find(el)\n });\n\n this.observeBox();\n\n Dom.find(el).appendTo(document.body);\n }\n\n destroy()\n {\n this.observer.disconnect();\n }\n\n observeBox()\n {\n const { el, uid } = this.options;\n\n el.data('popover', uid);\n\n this.observer = new ResizeObserver(() => {\n this.renderBox();\n });\n\n this.observer.observe(el.el);\n }\n\n renderBox()\n {\n let { el, target, trigger, position, width } = this.options;\n\n if ( !this.visible ) {\n return el.attr('style', null);\n }\n\n let style : any = {\n 'z-index': Pointer.zindex()\n };\n\n if ( width === -1 ) {\n style.width = Dom.find(target).width() + 'px'\n }\n\n el.style(style);\n\n let config = [\n target, position,\n ];\n\n if ( trigger === 'context' ) {\n Arr.add(config, this.cursor);\n }\n\n let box = el.popover(...config);\n\n el.data('position', box.position);\n\n style = {\n top: box.y + 'px', left: box.x + 'px',\n };\n\n Arr.each(box.self, (v : any, k : any) => {\n style[`--n-self-${k}`] = v + 'px';\n });\n\n Arr.each(box.rect, (v : any, k : any) => {\n style[`--n-rect-${k}`] = v + 'px';\n });\n\n el.style(style).addClass('n-ready');\n }\n\n getEventEls(event : any)\n {\n const el = Dom.find(event.target);\n\n let result : any = {\n src: el.closest(this.options.el),\n };\n\n if ( this.options.target ) {\n result.tgt = el.closest(this.options.target);\n }\n\n return result;\n }\n\n onMousedown(event : any)\n {\n if ( !this.options.listen ) {\n return;\n }\n\n if ( this.options.trigger === 'hover' ) {\n return this.onMousemove(event);\n }\n\n if ( this.options.trigger === 'context' ) {\n return this.onContext(event);\n }\n\n let { src, tgt } = this.getEventEls(event);\n\n if ( !this.visible && !tgt && !src ) {\n return;\n }\n\n let state = tgt || src;\n\n if ( this.options.toggle ) {\n state = !this.visible ? state : src;\n }\n\n this.state(state);\n }\n\n onMousemove(event : any)\n {\n if ( !this.options.listen ) {\n return;\n }\n\n if ( this.options.trigger !== 'hover' ) {\n return;\n }\n\n let { src, tgt } = this.getEventEls(event);\n\n if ( !this.visible && !tgt && !src ) {\n return;\n }\n\n this.state(tgt || src);\n }\n\n onContext(event : any)\n {\n if ( !this.options.listen ) {\n return;\n }\n\n if ( this.options.trigger !== 'context' ) {\n return;\n }\n\n this.cursor = {\n x: event.clientX, y: event.clientY,\n };\n\n let { src, tgt } = this.getEventEls(event);\n\n if ( !this.visible && !tgt && !src ) {\n return;\n }\n\n let state = tgt || src;\n\n if ( event.button !== 2 ) {\n state = state ? this.visible : false;\n }\n\n if ( this.options.toggle ) {\n state = !this.visible ? state : src;\n }\n\n this.state(state);\n }\n\n onScroll(event : any)\n {\n if ( !this.visible ) {\n return;\n }\n\n const { el, scrollClose } = this.options;\n\n if ( !scrollClose ) {\n return;\n }\n\n let state = false;\n\n if ( event.detail?.target ) {\n state = el.contains(event.detail.target);\n }\n\n this.state(state);\n }\n\n onEscape(event : any)\n {\n if ( !this.visible ) {\n return;\n }\n\n this.state(!this.options.escapeClose);\n }\n\n on(event : string, cb : Function)\n {\n this.options[`on${Str.ucfirst(event)}`] = cb;\n }\n\n state(state : any)\n {\n if ( !this.visible && state ) {\n this.open();\n }\n\n if ( this.visible && !state ) {\n this.close();\n }\n\n // Idle if state and visible are equal\n }\n\n open(silent : boolean = false)\n {\n const { uid, target } = this.options;\n\n const fn = () => {\n Run.frame(() => this.renderBox());\n };\n\n const group = Dom.find(target).upnode('[data-popover]')\n .data('popover');\n\n if ( this.options.multiClose ) {\n Pointer.deblock(uid, 'popover', group, fn);\n }\n\n // Needed to run pointerdown first\n NPopoverHandler.moveup(this);\n\n Pointer.prevent(uid, 'popover', group, () => {\n this.close(true);\n });\n\n if ( !this.options.multiClose ) {\n fn();\n }\n\n if ( !silent && this.options.onOpen ) {\n this.options.onOpen();\n }\n\n this.visible = true;\n }\n\n close(force : boolean = false, silent : boolean = false)\n {\n const { uid } = this.options;\n\n if ( !force && Pointer.blocked(uid) ) {\n return;\n }\n\n // Unblock parent el\n Pointer.release(uid);\n\n Run.frame(() => {\n this.renderBox();\n });\n\n if ( !silent && this.options.onClose ) {\n this.options.onClose();\n }\n\n this.visible = false;\n }\n\n}\n\nexport default NPopoverElement;","import { Arr, Dom } from \"@kizmann/pico-js\";\nimport { Pointer } from \"../../../root/index.ts\";\nimport NPopoverElement from \"./NPopoverElement.ts\";\n\nexport class NPopoverHandler\n{\n /**\n * @type {NPopoverElement[]}\n */\n static popovers : NPopoverElement[] = [];\n\n static init()\n {\n Pointer.bind('NPopover', 'scroll', (e : any) => {\n this.scroll(e);\n });\n\n Pointer.bind('NPopover', 'virtualscroll', (e : any) => {\n this.scroll(e);\n });\n\n Pointer.bind('NPopover', 'keyescape', (e : any) => {\n this.escape(e);\n });\n\n Pointer.bind('NPopover', 'mousedown', (e : any) => {\n this.mousedown(e);\n });\n\n Pointer.bind('NPopover', 'mousemove', (e : any) => {\n this.mousemove(e);\n });\n\n Pointer.bind('NPopover', 'context', (e : any) => {\n this.context(e);\n });\n\n return this;\n }\n\n static scroll(event : any)\n {\n Arr.each(this.popovers, (popover : NPopoverElement) => {\n popover.onScroll(event);\n });\n }\n\n static mousedown(event : any)\n {\n Arr.each(this.popovers, (popover : NPopoverElement) => {\n popover.onMousedown(event);\n });\n }\n\n static mousemove(event : any)\n {\n Arr.each(this.popovers, (popover : NPopoverElement) => {\n popover.onMousemove(event);\n });\n }\n\n static context(event : any)\n {\n Arr.each(this.popovers, (popover : NPopoverElement) => {\n popover.onContext(event);\n });\n }\n\n static escape(event : any)\n {\n Arr.each(this.popovers, (popover : NPopoverElement) => {\n popover.onEscape(event);\n });\n }\n\n static append(el : HTMLElement, config : any)\n {\n const popover = new NPopoverElement(el, config);\n\n Arr.append(this.popovers, popover);\n\n return popover;\n }\n\n static remove({ uid } : any)\n {\n const popover = Arr.find(this.popovers, { uid });\n\n if ( popover ) {\n popover.destroy();\n }\n\n Arr.remove(this.popovers, { uid })\n }\n\n static moveup({ uid } : any)\n {\n const popover = Arr.find(this.popovers, { uid });\n\n Arr.remove(this.popovers, { uid });\n\n Arr.prepend(this.popovers, popover);\n }\n\n}\n\nif ( !globalThis.NPopoverHandler ) {\n globalThis.NPopoverHandler = NPopoverHandler.init();\n}\n\nexport default NPopoverHandler;\n","import { SetupContext, onBeforeUnmount, onMounted, provide } from \"vue\";\nimport { Dom } from \"@kizmann/pico-js\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NPopoverView } from \"./NPopoverView.ts\";\nimport { NPopoverData } from \"./NPopoverData.ts\";\nimport { NPopoverHandler } from \"../handler/NPopoverHandler.ts\";\nimport { NPopoverElement } from \"../handler/NPopoverElement.ts\";\n\nexport class NPopoverController extends ProtoController\n{\n /**\n * @type {NPopoverController}\n */\n declare scope : NPopoverController;\n\n /**\n * @type {NPopoverData}\n */\n declare data : NPopoverData;\n\n /**\n * @type {NPopoverView}\n */\n declare view : NPopoverView;\n\n /**\n * @type {NPopoverElement}\n */\n popel : NPopoverElement;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NPopoverView(this),\n new NPopoverData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.cloneProp('modelValue');\n this.makeRef('el');\n\n provide('NPopover', this.instance);\n\n return this;\n }\n\n onMounted()\n {\n const { el, data } = this;\n\n this.makeUID();\n\n this.popel = NPopoverHandler.append(el, {\n uid: this.uid,\n width: data.width,\n target: data.target,\n trigger: data.trigger,\n toggle: data.toggle,\n position: data.position,\n escapeClose: data.escapeClose,\n scrollClose: data.scrollClose,\n multiClose: data.multiClose,\n });\n\n this.popel.on('open', () => {\n this.onOpen();\n });\n\n this.popel.on('close', () => {\n this.onClose();\n });\n\n Dom.find(el).appendTo(document.body);\n }\n\n onUnmounted()\n {\n NPopoverHandler.remove({ uid: this.uid });\n }\n\n onOpen()\n {\n this.update('modelValue', true);\n this.emit('open');\n }\n\n onClose()\n {\n this.update('modelValue', false);\n this.emit('close');\n }\n\n superOpen(silent : boolean = false)\n {\n this.popel.open(silent);\n }\n\n superClose(force : boolean = false, silent : boolean = false)\n {\n this.popel.close(force, silent);\n }\n\n}\n\nexport default NPopoverController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NPopoverController } from \"./NPopoverController.ts\";\n\nexport const NPopoverProps = {\n\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n ...Props.ThemeDark,\n ...Props.PositionBottomCenter,\n\n /**\n * @type {PropType<boolean>}\n */\n modelValue: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<number>}\n */\n width: {\n type: [Number], default: null\n },\n\n /**\n * @type {PropType<string|null>}\n */\n target: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n trigger: {\n type: [String], default: 'click'\n },\n\n /**\n * @type {PropType<boolean>}\n */\n toggle: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n escapeClose: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<boolean>}\n */\n scrollClose: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<boolean>}\n */\n multiClose: {\n type: [Boolean], default: true\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NPopover',\n\n /**\n * @type {typeof NPopoverProps}\n */\n props: NPopoverProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n 'open',\n 'close',\n ],\n\n setup(props, context)\n {\n let ncx = new NPopoverController(props, context);\n\n ncx.pass({\n open: 'superOpen',\n close: 'superClose',\n });\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NPopoverGroupController } from \"./NPopoverGroupController.ts\";\n\nexport class NPopoverGroupView extends ProtoView\n{\n /**\n * @type {NPopoverGroupController}\n */\n declare scope : NPopoverGroupController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-popover-group';\n\n default() : any\n {\n let { data } = this.scope;\n\n let props = {\n class: data.classList\n };\n\n return h('div', props, [\n h('span', null, [this.slot()])\n ]);\n }\n\n}\n\nexport default NPopoverGroupView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NPopoverGroupController from \"./NPopoverGroupController.ts\";\n\nexport class NPopoverGroupData extends ProtoData\n{\n /**\n * @type {NPopoverGroupController}\n */\n declare scope : NPopoverGroupController;\n\n get classList() : string[]\n {\n return this.classRoot();\n }\n\n}","import { SetupContext } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NPopoverGroupView } from \"./NPopoverGroupView.ts\";\nimport { NPopoverGroupData } from \"./NPopoverGroupData.ts\";\n\nexport class NPopoverGroupController extends ProtoController\n{\n /**\n * @type {NPopoverGroupController}\n */\n declare scope : NPopoverGroupController;\n\n /**\n * @type {NPopoverGroupData}\n */\n declare data : NPopoverGroupData;\n\n /**\n * @type {NPopoverGroupView}\n */\n declare view : NPopoverGroupView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NPopoverGroupView(this),\n new NPopoverGroupData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.injectRef([\n 'popover', 'NPopover'\n ]);\n\n return this;\n }\n\n}\n\nexport default NPopoverGroupController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NPopoverGroupController } from \"./NPopoverGroupController.ts\";\n\nexport const NPopoverGroupProps = {\n ...Props.Disabled\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NPopoverGroup',\n\n /**\n * @type {typeof NPopoverGroupProps}\n */\n props: NPopoverGroupProps,\n\n setup(props, context)\n {\n let ncx = new NPopoverGroupController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NPopoverOptionController } from \"./NPopoverOptionController.ts\";\n\nexport class NPopoverOptionView extends ProtoView\n{\n /**\n * @type {NPopoverOptionController}\n */\n declare scope : NPopoverOptionController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-popover-option';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n class: data.classList\n };\n\n props.onClick = (e : any) => {\n scope.onClick(e);\n };\n\n props.onDblclick = (e : any) => {\n scope.onDblclick(e);\n };\n\n return h('div', props, [\n this.icon(data.icon), h('span', null, this.slot())\n ]);\n }\n\n}\n\nexport default NPopoverOptionView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NPopoverOptionController from \"./NPopoverOptionController.ts\";\n\nexport class NPopoverOptionData extends ProtoData\n{\n /**\n * @type {NPopoverOptionController}\n */\n declare scope : NPopoverOptionController;\n\n get classList() : string[]\n {\n let classList = [];\n\n if ( this.active ) {\n classList.push('n-active');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n return this.classRoot(classList);\n }\n\n get focus() : boolean\n {\n return this.scope.get('focus');\n }\n\n get active() : boolean\n {\n return this.scope.get('active');\n }\n\n get clickClose() : boolean\n {\n return this.scope.get('clickClose');\n }\n\n}","import { SetupContext } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NPopoverOptionView } from \"./NPopoverOptionView.ts\";\nimport { NPopoverOptionData } from \"./NPopoverOptionData.ts\";\n\nexport class NPopoverOptionController extends ProtoController\n{\n /**\n * @type {NPopoverOptionController}\n */\n declare scope : NPopoverOptionController;\n\n /**\n * @type {NPopoverOptionData}\n */\n declare data : NPopoverOptionData;\n\n /**\n * @type {NPopoverOptionView}\n */\n declare view : NPopoverOptionView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NPopoverOptionView(this),\n new NPopoverOptionData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.injectRef([\n 'popover', 'NPopover'\n ]);\n\n return this;\n }\n\n onClick(e : any)\n {\n const popover = this.ref('popover');\n\n if ( popover && this.get('clickClose') ) {\n popover.ncx.superClose();\n }\n\n this.emit('click', e);\n }\n\n onDblclick(e : any)\n {\n const popover = this.ref('popover');\n\n if ( popover && this.get('clickClose') ) {\n popover.ncx.superClose();\n }\n\n this.emit('dblclick', e);\n }\n\n}\n\nexport default NPopoverOptionController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NPopoverOptionController } from \"./NPopoverOptionController.ts\";\n\nexport const NPopoverOptionProps = {\n\n ...Props.Disabled,\n ...Props.Icon,\n ...Props.IconPositionAfter,\n\n /**\n * @type {PropType<boolean>}\n */\n focus: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n active: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n clickClose: {\n type: [Boolean], default: true\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NPopoverOption',\n\n /**\n * @type {typeof NPopoverOptionProps}\n */\n props: NPopoverOptionProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'click',\n 'dblclick'\n ],\n\n setup(props, context)\n {\n let ncx = new NPopoverOptionController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NScrollbarController } from \"./NScrollbarController.ts\";\n\nexport class NScrollbarView extends ProtoView\n{\n /**\n * @type {NScrollbarController}\n */\n declare scope : NScrollbarController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-scrollbar';\n\n default()\n {\n let { scope, data } = this.scope;\n\n let props = {\n ref: scope.ref('el'),\n class: data.classList\n };\n\n return h('div', props, [\n this.content()\n ]);\n }\n\n content()\n {\n const { scope } = this.scope;\n\n let props = {\n ref: scope.ref('viewport'),\n class: `${this.bem}-content`\n };\n\n return h('div', props, [\n this.body()\n ]);\n }\n\n body()\n {\n let { data } = this.scope;\n\n let props = {\n class: data.wrapClass.replace(':bem', this.bem)\n };\n\n return h('div', props, [\n this.slot('default')\n ]);\n }\n\n}\n\nexport default NScrollbarView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NScrollbarController from \"./NScrollbarController.ts\";\n\nexport class NScrollbarData extends ProtoData\n{\n /**\n * @type {NScrollbarController}\n */\n declare scope : NScrollbarController;\n\n get classList() : string[]\n {\n let classList = [];\n\n if ( this.overflowX ) {\n classList.push('n-overflow-x');\n }\n\n if ( this.overflowY ) {\n classList.push('n-overflow-y');\n }\n\n return this.classRoot(classList);\n }\n\n get overflowX() : boolean\n {\n return this.scope.get('overflowX');\n }\n\n set overflowX(value : boolean)\n {\n this.scope.set('overflowX', value);\n }\n\n get overflowY() : boolean\n {\n return this.scope.get('overflowY');\n }\n\n set overflowY(value : boolean)\n {\n this.scope.set('overflowY', value);\n }\n\n get wrapClass() : string\n {\n return this.scope.get('wrapClass');\n }\n\n set wrapClass(value : string)\n {\n this.scope.set('wrapClass', value);\n }\n\n}","import { Arr, Dom } from \"@kizmann/pico-js\";\n\nexport default class NScrollbarHelper\n{\n /**\n * @type {boolean}\n */\n static native : boolean;\n\n static init()\n {\n if ( this.native == null ) {\n this.detectNative();\n }\n\n return this;\n }\n\n static detectNative()\n {\n const el = Dom.make('div', {\n classList: 'n-scrollbar-test', html: '<div></div>'\n });\n\n el.appendTo(document.body);\n\n const vrect = {\n client: el.el.clientHeight,\n offset: el.el.offsetHeight,\n };\n\n const hrect = {\n client: el.el.clientWidth,\n offset: el.el.offsetWidth,\n };\n\n const rainbow = [\n vrect.client === vrect.offset,\n hrect.client === hrect.offset,\n ];\n\n this.native = !Arr.has(rainbow, false);\n\n el.el.remove();\n }\n\n}\n\nif ( !globalThis.NScrollbarHelper ) {\n globalThis.NScrollbarHelper = NScrollbarHelper.init();\n}","import { Arr, Dom, Hash, Obj, Run } from \"@kizmann/pico-js\";\nimport NScrollbarHelper from \"./NScrollbarHelper.ts\";\n\nexport class NScrollbarElement\n{\n /**\n * @type {boolean}\n */\n native : boolean;\n\n /**\n * @type {ResizeObserver}\n */\n resize : ResizeObserver;\n\n /**\n * @type {MutationObserver}\n */\n mutate : MutationObserver;\n\n /**\n * @type {Dom}\n */\n el : Dom;\n\n /**\n * @type {Dom}\n */\n cl : Dom;\n\n /**\n * @type {Dom}\n */\n wl : Dom;\n\n /**\n * @type {Dom}\n */\n sbar : Dom;\n\n /**\n * @type {Dom}\n */\n hbar : Dom;\n\n /**\n * @type {Dom}\n */\n vbar : Dom;\n\n /**\n * @type {number}\n */\n width : number = -1;\n\n /**\n * @type {number}\n */\n height : number = -1;\n\n /**\n * @type {any}\n */\n buffer : any = {};\n\n options : any = {\n uid: null,\n bem: 'n-scrollbar',\n overflowX: true,\n overflowY: true,\n scrollPortal: false,\n onReady: () => null,\n onUpdate: () => null,\n }\n\n constructor(el : HTMLElement, options : any = {})\n {\n this.native = NScrollbarHelper.native;\n\n if ( !options.uid ) {\n options.uid = Hash.uuid();\n }\n\n this.options = {\n ...this.options, ...options\n };\n\n this.el = Dom.find(el);\n this.cl = Dom.find(this.el.childs()[0]);\n this.wl = Dom.find(this.cl.childs()[0]);\n\n if ( this.native ) {\n this.el.addClass(`${this.options.bem}--native`);\n }\n\n this.makePseudo();\n this.detectRect();\n this.observeBox();\n\n this.options.onReady({\n target: this.cl.el,\n });\n }\n\n destroy()\n {\n this.resize.disconnect();\n this.resize = null;\n this.mutate.disconnect();\n this.mutate = null;\n this.cl.off('scroll');\n this.sbar.el.remove();\n this.hbar.off('mousedown');\n this.hbar.el.remove();\n this.vbar.off('mousedown');\n this.vbar.el.remove();\n }\n\n makePseudo()\n {\n const { bem, overflowX, overflowY, scrollPortal } = this.options;\n\n const fn = Run.framerate(() => {\n this.adaptBars();\n this.fireScroll();\n }, 24);\n\n let portal = this.el;\n\n if ( scrollPortal ) {\n portal = this.el.parent().upnode('.n-scrollbar');\n }\n\n this.cl.on('scroll', fn, {\n passive: true\n });\n\n this.cl.on('wheel', fn, {\n passive: true\n });\n\n this.sbar = Dom.make('div', {\n class: `${bem}-spacer`\n });\n\n this.sbar.appendTo(this.el);\n\n this.hbar = Dom.make('div', {\n class: `${bem}-h`,\n });\n\n this.hbar.on('mousedown', (e : any) => {\n this.onMousedown(e, 'width', this.hbar);\n });\n\n if ( overflowX ) {\n this.hbar.appendTo(portal);\n }\n\n this.vbar = Dom.make('div', {\n class: `${bem}-v`\n });\n\n this.vbar.on('mousedown', (e:any) => {\n this.onMousedown(e, 'height', this.vbar);\n });\n\n if ( overflowY ) {\n this.vbar.appendTo(portal);\n }\n }\n\n fireScroll()\n {\n Dom.find(window).fire('virtualscroll', {\n target: this.cl.el,\n });\n }\n\n returnRect()\n {\n this.el.addClass('is-paused');\n\n const rect = Obj.only(this.wl.rect(), [\n 'width', 'height',\n ]);\n\n rect.height += Dom.num(this.wl.computed('margin-top'));\n rect.height += Dom.num(this.wl.computed('margin-bottom'));\n\n rect.width += Dom.num(this.wl.computed('margin-left'));\n rect.width += Dom.num(this.wl.computed('margin-right'));\n\n this.el.remClass('is-paused');\n\n return rect;\n }\n\n equalRect(rect : any)\n {\n const { width, height } = this;\n\n [this.width, this.height] = [\n rect.width, rect.height\n ];\n\n if ( width !== rect.width ) {\n return false;\n }\n\n if ( height !== rect.height ) {\n return false;\n }\n\n return true;\n }\n\n detectRect()\n {\n const { overflowX, overflowY } = this.options;\n\n const rect = Dom.find(this.sbar).actual(() => {\n return this.returnRect();\n });\n\n if ( !this.equalRect(rect) ) {\n Run.async(() => this.adaptBars());\n }\n\n if ( !overflowX ) {\n delete rect.width;\n }\n\n if ( !overflowY ) {\n delete rect.width;\n }\n\n this.sbar.style(rect);\n\n this.options.onUpdate({\n target: this.cl.el,\n });\n }\n\n adaptBars()\n {\n const { overflowX, overflowY, scrollPortal } = this.options;\n\n let portal : any = this.el;\n\n if ( scrollPortal ) {\n portal = this.el.parent().upnode('.n-scrollbar');\n }\n\n const yrect = {\n scroll: this.cl.el.scrollHeight,\n client: this.el.el.clientHeight,\n };\n\n yrect.scroll -= Dom.num(this.wl.computed('margin-bttom'));\n\n const hasy = yrect.client < yrect.scroll;\n\n if ( hasy ) {\n this.applyBar('height', this.vbar, yrect, portal);\n }\n\n if ( overflowY ) {\n portal.stateClass('has-vtrack', hasy);\n }\n\n const xrect = {\n scroll: this.cl.el.scrollWidth,\n client: this.el.el.clientWidth,\n };\n\n xrect.scroll -= Dom.num(this.wl.computed('margin-right'));\n\n const hasx = xrect.client < xrect.scroll;\n\n if ( hasx ) {\n this.applyBar('width', this.hbar, xrect, portal);\n }\n\n if ( overflowX ) {\n portal.stateClass('has-htrack', hasx);\n }\n }\n\n applyBar(key : string, el : Dom, rect : any, portal : any)\n {\n if ( el == null ) {\n return;\n }\n\n let size = (rect.client / rect.scroll) * rect.client;\n\n let min = Math.max(...[\n size, 50\n ]);\n\n let max = Math.ceil(...[\n (rect.client / rect.scroll) *\n (rect.scroll - rect.client)\n ]);\n\n let scroll = 0;\n\n if ( key === 'width' ) {\n scroll = this.cl.el.scrollLeft;\n }\n\n if ( key === 'height' ) {\n scroll = this.cl.el.scrollTop;\n }\n\n const ratio = (max - (min - size) - 10) / max;\n\n const offset = Math.ceil(...[\n (rect.client / rect.scroll) * scroll * ratio\n ]) || 0;\n\n let style : any = {\n [key]: (min = Math.ceil(min))\n };\n\n this.buffer[key] = {\n min, max, scroll, ratio, offset, rect\n };\n\n const port = this.el.offset(null, portal);\n\n if ( key === 'width' ) {\n style.translate = [offset + port.left + 'px', 0];\n }\n\n if ( key === 'height' ) {\n style.translate = [0, offset + port.top + 'px'];\n }\n\n const comp = style.translate.join('');\n\n if ( this.buffer['fx' + key] !== comp ) {\n Run.frame(() => el.style(style));\n }\n\n this.buffer['fx' + key] = comp;\n }\n\n observeBox()\n {\n // @ts-ignore\n this.resize = new ResizeObserver(Run.debounce(() => {\n Run.async(() => this.detectRect());\n }, 30));\n\n this.resize.observe(this.wl.el, {\n box: 'border-box'\n });\n\n // @ts-ignore\n this.mutate = new MutationObserver(() => {\n this.detectRect();\n });\n\n this.mutate.observe(this.el.el, {\n attributeFilter: ['style']\n });\n }\n\n onMousedown(e : any, key : string, el : Dom)\n {\n const { uid } = this.options;\n\n e.preventDefault();\n e.stopPropagation();\n\n if ( e.button !== 0 ) {\n return;\n }\n\n let store = {\n pos: 0, scroll: this.buffer[key].scroll\n };\n\n if ( key === 'width' ) {\n store.pos = e.clientX;\n }\n\n if ( key === 'height' ) {\n store.pos = e.clientY;\n }\n\n const doc = Dom.find(document.body);\n\n doc.on('mousemove', (e : any) => {\n this.onMousemove(e, key, store);\n }, { uid, passive: true });\n\n doc.once('mouseup', (e : any) => {\n doc.off('mousemove', { uid });\n el.remClass('is-active');\n });\n\n el.addClass('is-active');\n }\n\n onMousemove(e : any, key : string, { pos, scroll } : any)\n {\n const {\n min, ratio, rect\n } = this.buffer[key];\n\n let newpos = 0;\n\n if ( key === 'width' ) {\n newpos = e.clientX;\n }\n\n if ( key === 'height' ) {\n newpos = e.clientY;\n }\n\n const calc = (rect.client / rect.scroll) *\n scroll * ratio;\n\n const rela = (newpos - pos) + calc;\n\n const result = rela / (rect.client - min - 10) *\n (rect.scroll - rect.client);\n\n if ( key === 'width' ) {\n Run.frame(() => this.cl.el.scrollLeft = result);\n }\n\n if ( key === 'height' ) {\n Run.frame(() => this.cl.el.scrollTop = result);\n }\n }\n\n}\n","import { ProtoController } from \"../../../root/index.ts\";\nimport { NScrollbarView } from \"./NScrollbarView.ts\";\nimport { NScrollbarData } from \"./NScrollbarData.ts\";\nimport { onBeforeUnmount, onMounted } from \"vue\";\nimport { NScrollbarElement } from \"../handler/NScrollbarElement.ts\";\nimport { SetupContext } from \"vue\";\nimport { Run } from \"@kizmann/pico-js\";\n\nexport class NScrollbarController extends ProtoController\n{\n /**\n * @type {NScrollbarController}\n */\n declare scope : NScrollbarController;\n\n /**\n * @type {NScrollbarData}\n */\n declare data : NScrollbarData;\n\n /**\n * @type {NScrollbarView}\n */\n declare view : NScrollbarView;\n\n /**\n * @type {NScrollbarElement}\n */\n scrollbar : NScrollbarElement;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NScrollbarView(this),\n new NScrollbarData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this\n .makeRef('el')\n .makeRef('viewport');\n\n onBeforeUnmount(() => {\n this.scrollbar.destroy();\n });\n\n return this;\n }\n\n onMounted()\n {\n const { el, view, data } = this;\n\n let options : any = {\n bem: view.bem,\n overflowX: data.overflowX,\n overflowY: data.overflowY,\n };\n\n options.onReady = () => {\n this.emit('ready', this);\n };\n\n this.scrollbar = new NScrollbarElement(el, options);\n }\n\n scrollTo(selector : any, options : any = {})\n {\n options = {\n padding: 0, ...options\n };\n\n const item = this.dom('el').find(selector);\n\n if ( !item ) {\n return console.warn('Scroll element not found!');\n }\n\n const viewport = this.ref('viewport')?.value;\n\n if ( !viewport ) {\n return console.warn('Viewport is not ready yet!');\n }\n\n let target = item.offset('top', viewport);\n\n let [scroll, client] = [\n viewport.scrollTop, viewport.clientHeight\n ];\n\n client -= item.height() + options.padding;\n\n if ( target > scroll && target < scroll + client ) {\n return;\n }\n\n if ( target > scroll + client ) {\n target -= client;\n }\n\n Run.frame(() => {\n viewport.scrollTo({ top: target, ...options });\n });\n }\n\n scrollCenter(selector : any, options : any = {})\n {\n const item = this.dom('el').find(selector);\n\n if ( !item ) {\n return console.warn('Scroll element not found!');\n }\n\n const viewport = this.ref('viewport')?.value;\n\n if ( !viewport ) {\n console.warn('Viewport is not ready yet!');\n }\n\n let target = item.offset('top', viewport);\n\n let [scroll, client] = [\n viewport.scrollTop, viewport.clientHeight\n ];\n\n target += (client / 2) + (item.height() / 2);\n\n if ( target > scroll && target < scroll + client ) {\n return;\n }\n\n if ( target > scroll + client ) {\n target -= client;\n }\n\n Run.frame(() => {\n viewport.scrollTo({ top: target, ...options });\n });\n }\n\n}\n\nexport default NScrollbarController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NScrollbarController } from \"./NScrollbarController.ts\";\n\nexport const NScrollbarProps = {\n\n /**\n * @type {PropType<boolean>}\n */\n overflowX: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<boolean>}\n */\n overflowY: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<string>}\n */\n wrapClass: {\n type: [String], default: ':bem__wrap'\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NScrollbar',\n\n /**\n * @type {typeof NScrollbarProps}\n */\n props: NScrollbarProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'ready',\n 'scroll',\n ],\n\n setup(props, context)\n {\n let ncx = new NScrollbarController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h, withMemo } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NVirtualbarController } from \"./NVirtualbarController.ts\";\nimport { Arr } from \"@kizmann/pico-js\";\n\nconst VirtualRow = () => {\n\n};\n\nexport class NVirtualbarView extends ProtoView\n{\n /**\n * @type {NVirtualbarController}\n */\n declare scope : NVirtualbarController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-scrollbar';\n\n /**\n * @type {string}\n */\n vem : string = 'n-virtualbar';\n\n default()\n {\n let { scope, data } = this.scope;\n\n let props = {\n ref: scope.ref('el'),\n class: data.classList\n };\n\n return h('div', props, [\n this.content()\n ]);\n }\n\n content()\n {\n const { scope } = this.scope;\n\n let props : any = {\n ref: scope.ref('viewport'),\n class: `${this.bem}-content`,\n };\n\n props.onWheelPassive = () => {\n scope.startWatch();\n };\n\n props.onScrollPassive = () => {\n scope.startWatch();\n };\n\n return h('div', props, [\n this.body()\n ]);\n }\n\n body()\n {\n const { data } = this.scope;\n\n let classList = [\n data.wrapClass.replace(':bem', this.bem)\n ];\n\n let props = {\n class: classList\n };\n\n return h('div', props, [\n this.wrapper()\n ]);\n }\n\n wrapper()\n {\n const { data } = this.scope;\n\n let props : any = {\n class: [`${this.vem}__inner`]\n };\n\n let total = data.items.length * data.itemHeight;\n\n if ( data.grid ) {\n total = (data.state.total ?? 0) * data.itemHeight\n }\n\n props.style = {\n 'overflow-y': 'hidden', 'height': `${total}px`,\n };\n\n const [hkey, wkey] = [\n '--n-item-height', '--n-item-width'\n ];\n\n props.style = {\n ...props.style, [hkey]: `${data.itemHeight}px`\n };\n\n props.style = {\n ...props.style, [wkey]: `${data.itemWidth}px`\n };\n\n return h('div', props, [\n data.grid ? this.grid() : this.list()\n ]);\n }\n\n grid()\n {\n const [{ data }, { start, end, grid, total }] = [\n this.scope, this.scope.data.state\n ];\n\n const rows = Arr.chunk(...[\n data.items, grid\n ]);\n\n let items = Arr.slice(...[\n rows, start, end\n ]);\n\n const result = Arr.each(items, (value : any, index : number) => {\n return this.row(value, index + start);\n });\n\n return [...result];\n }\n\n row(row : any[], index : number) : any\n {\n const { context, data } = this.scope;\n\n let fn = () => null;\n\n if ( context.slots.default ) {\n fn = context.slots.default;\n }\n\n let props : any = {\n class: [`${this.vem}__row`]\n };\n\n props.style = {\n top: `${index * data.itemHeight}px`,\n };\n\n const nodes = Arr.each(row, (value : any, i : number) => {\n return this.node({ value, index: i + index }, fn, true);\n });\n\n return h('div', props, [\n ...nodes\n ]);\n }\n\n list()\n {\n const { context, data } = this.scope;\n\n const [start, end] = [\n Math.max(1, data.state.start),\n Math.min(data.state.end, data.items.length - 1)\n ];\n\n let items = Arr.slice(...[\n data.items, start, end\n ]);\n\n let fn = () => null;\n\n if ( context.slots.default ) {\n fn = context.slots.default;\n }\n\n const result = Arr.each(items, (value : any, index : number) => {\n return this.node({ value, index: index + start }, fn);\n });\n\n return [\n this.first(), ...result, this.last()\n ];\n }\n\n first() : any\n {\n const { context, data } = this.scope;\n\n let fn = () => null;\n\n if ( context.slots.default ) {\n fn = context.slots.default;\n }\n\n return this.node({\n value: Arr.first(data.items), index: 0\n }, fn);\n }\n\n last() : any\n {\n const { context, data } = this.scope;\n\n let fn = () => null;\n\n if ( context.slots.default ) {\n fn = context.slots.default;\n }\n\n return this.node({\n value: Arr.last(data.items), index: data.items.length-1\n }, fn);\n }\n\n node(item : any, fn : Function, row : boolean = false)\n {\n const { data } = this.scope;\n\n let props : any = {\n key: this.scope.uid + item.index,\n class: [`${this.vem}__item`],\n style: {}\n };\n\n const height = data.itemHeight;\n\n if ( ! row ) {\n props.style.top = `${item.index * height}px`;\n }\n\n return h('div', props, [fn(item)]);\n }\n\n}\n\nexport default NVirtualbarView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NVirtualbarController from \"./NVirtualbarController.ts\";\n\nexport class NVirtualbarData extends ProtoData\n{\n /**\n * @type {NVirtualbarController}\n */\n declare scope : NVirtualbarController;\n\n get classList() : string[]\n {\n let classList = [\n 'n-virtual'\n ];\n\n if ( this.overflowX ) {\n classList.push('n-overflow-x');\n }\n\n if ( this.overflowY ) {\n classList.push('n-overflow-y');\n }\n\n return this.classRoot(classList);\n }\n\n get state() : any\n {\n return this.scope.get('state');\n }\n\n set state(value : any)\n {\n this.scope.set('state', value);\n }\n\n get items() : any[]\n {\n return this.scope.get('items');\n }\n\n set items(value : any[])\n {\n this.scope.set('items', value);\n }\n\n get threshold() : number\n {\n return this.scope.get('threshold');\n }\n\n set threshold(value : number)\n {\n this.scope.set('threshold', value);\n }\n\n get rawMode() : boolean\n {\n return this.scope.get('rawMode');\n }\n\n set rawMode(value : boolean)\n {\n this.scope.set('rawMode', value);\n }\n\n get wrapClass() : string\n {\n return this.scope.get('wrapClass');\n }\n\n set wrapClass(value : string)\n {\n this.scope.set('wrapClass', value);\n }\n\n get grid() : number\n {\n return this.scope.get('grid');\n }\n\n set grid(value : number)\n {\n this.scope.set('grid', value);\n }\n\n get itemWidth() : number\n {\n return this.scope.get('itemWidth');\n }\n\n set itemWidth(value : number)\n {\n this.scope.set('itemWidth', value);\n }\n\n get itemHeight() : number\n {\n return this.scope.get('itemHeight');\n }\n\n set itemHeight(value : number)\n {\n this.scope.set('itemHeight', value);\n }\n\n get overflowX() : boolean\n {\n return this.scope.get('overflowX');\n }\n\n set overflowX(value : boolean)\n {\n this.scope.set('overflowX', value);\n }\n\n get overflowY() : boolean\n {\n return this.scope.get('overflowY');\n }\n\n set overflowY(value : boolean)\n {\n this.scope.set('overflowY', value);\n }\n\n get scrollPortal() : boolean\n {\n return this.scope.get('scrollPortal');\n }\n\n set scrollPortal(value : boolean)\n {\n this.scope.set('scrollPortal', value);\n }\n\n}","import { onBeforeUnmount, onMounted, watch } from \"vue\";\nimport { Run } from \"@kizmann/pico-js\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NVirtualbarView } from \"./NVirtualbarView.ts\";\nimport { NVirtualbarData } from \"./NVirtualbarData.ts\";\nimport { NScrollbarElement } from \"../handler/NScrollbarElement.ts\";\nimport { SetupContext } from \"vue\";\n\n\nexport class NVirtualbarController extends ProtoController\n{\n /**\n * @type {NVirtualbarController}\n */\n declare scope : NVirtualbarController;\n\n /**\n * @type {NVirtualbarData}\n */\n declare data : NVirtualbarData;\n\n /**\n * @type {NVirtualbarView}\n */\n declare view : NVirtualbarView;\n\n /**\n * @type {NScrollbarElement}\n */\n scrollbar : NScrollbarElement;\n\n /**\n * @type {any}\n */\n timer : any;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NVirtualbarView(this),\n new NVirtualbarData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n\n this\n .makeRef('el')\n .makeRef('viewport');\n\n this.makeData('state', {\n start: 0, end: 0, grid: 1\n });\n\n watch(() => this.props.items, () => {\n this.buildState();\n });\n\n onBeforeUnmount(() => {\n this.scrollbar.destroy();\n });\n\n return this;\n }\n\n onMounted()\n {\n const { el, view, data } = this;\n\n let options : any = {\n bem: view.bem,\n overflowX: data.overflowX,\n overflowY: data.overflowY,\n scrollPortal: data.scrollPortal,\n };\n\n options.onReady = () => {\n this.buildState();\n this.fireReady();\n };\n\n options.onUpdate = () => {\n this.buildState();\n };\n\n this.scrollbar = new NScrollbarElement(el, options);\n }\n\n fireReady()\n {\n this.emit('ready', this);\n }\n\n buildState()\n {\n const { el, data } = this;\n\n let [grid, width] : [number, number] = [\n 1, el.clientWidth\n ];\n\n if ( data.grid ) {\n grid = Math.floor(width / data.itemWidth);\n }\n\n const total = Math.ceil(data.items.length / grid);\n\n if ( data.threshold && total * grid < data.threshold ) {\n return this.set('state', { start: 0, end: total, grid, total });\n }\n\n const item = {\n x: data.itemWidth, y: data.itemHeight\n };\n\n const viewport = this.ref('viewport')?.value;\n\n if ( !viewport ) {\n return console.warn('Viewport is not ready yet!');\n }\n\n const [scroll, client] = [\n viewport.scrollTop - 400, el.clientHeight + 800\n ];\n\n const [start, end] = [\n Math.floor(scroll / item.y),\n Math.ceil((scroll + client) / item.y),\n ];\n\n const state = {\n start: Math.max(0, start),\n end: Math.min(end, total),\n grid: Math.max(1, grid),\n total: Math.max(0, total),\n };\n\n const rainbow = [\n data.state.start === state.start,\n data.state.end === state.end,\n data.state.grid === state.grid,\n data.state.total === state.total,\n ];\n\n if ( rainbow.indexOf(false) !== -1 ) {\n this.set('state', state);\n }\n }\n\n startWatch()\n {\n if ( this.timer ) {\n return;\n }\n\n this.timer = Date.now();\n\n const idler = Run.interval(() => {\n this.buildState();\n }, 15);\n\n Run.delay(() => {\n this.timer = (idler(), 0);\n }, 2000);\n }\n\n scrollTo(index : number)\n {\n const viewport = this.ref('viewport')?.value;\n\n if ( !viewport ) {\n console.warn('Viewport is not ready yet!');\n }\n\n const { items, state, itemHeight } = this.data;\n\n if ( index < 0 ) {\n index += items.length;\n }\n\n let target = Math.floor(index / state.grid) * itemHeight;\n\n let [scroll, client] = [\n viewport.scrollTop, viewport.clientHeight\n ];\n\n client -= itemHeight;\n\n if ( target > scroll && target <= scroll + client ) {\n return;\n }\n\n if ( target > scroll + client ) {\n target -= client;\n }\n\n Run.frame(() => {\n viewport.scrollTop = target;\n });\n }\n\n}\n\nexport default NVirtualbarController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NVirtualbarController } from \"./NVirtualbarController.ts\";\n\nexport const NVirtualbarProps = {\n\n /**\n * @type {PropType<array>}\n */\n items: {\n type: [Array], default: () => []\n },\n\n /**\n * @type {PropType<boolean>}\n */\n grid: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<number>}\n */\n threshold: {\n type: [Number], default: 101\n },\n\n /**\n * @type {PropType<number>}\n */\n itemHeight: {\n type: [Number], default: 34\n },\n\n /**\n * @type {PropType<number>}\n */\n itemWidth: {\n type: [Number], default: 120\n },\n\n /**\n * @type {PropType<boolean>}\n */\n overflowX: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<boolean>}\n */\n overflowY: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<string>}\n */\n wrapClass: {\n type: [String], default: ':bem__wrap'\n },\n\n /**\n * @type {PropType<boolean>}\n */\n scrollPortal: {\n type: [Boolean], default: false\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NVirtualbar',\n\n /**\n * @type {typeof NVirtualbarProps}\n */\n props: NVirtualbarProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'ready',\n 'scroll',\n ],\n\n setup(props, context)\n {\n let ncx = new NVirtualbarController(props, context);\n\n ncx.pass({\n 'scrollTo': 'scrollTo',\n });\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Mix } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NResizerController } from \"./NResizerController.ts\";\n\nexport class NResizerView extends ProtoView\n{\n /**\n * @type {NResizerController}\n */\n declare scope : NResizerController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-resizer';\n\n default()\n {\n let { scope, data } = this.scope;\n\n let props = {\n ref: scope.ref('el'),\n class: data.classList\n };\n\n let style : any = {};\n\n if ( Mix.isNum(data.model) ) {\n style.width = `${data.model}px`;\n }\n\n if ( !style.width && data.flex ) {\n style.flex = data.flex;\n }\n\n if ( data.model ) {\n style.flex = `0 0 ${data.model}px`;\n }\n\n if ( Mix.isNum(data.minWidth) ) {\n style.minWidth = `${data.minWidth}px`;\n }\n\n if ( Mix.isNum(data.maxWidth) ) {\n style.maxWidth = `${data.maxWidth}px`;\n }\n\n return h('div', { ...props, style }, [\n this.handle(), this.slot()\n ]);\n }\n\n handle()\n {\n let { scope } = this.scope;\n\n let props : any = {\n name: 'handle', ref: scope.ref('handle'),\n };\n\n props.onPointerdown = (e : any) => {\n scope.onPointerdown(e);\n };\n\n return this.div(props);\n }\n\n}\n\nexport default NResizerView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NResizerController from \"./NResizerController.ts\";\n\nexport class NResizerData extends ProtoData\n{\n /**\n * @type {NResizerController}\n */\n declare scope : NResizerController;\n\n get classList() : string[]\n {\n let classList = [];\n\n if ( this.direction ) {\n classList.push(`:bem--${this.direction}`);\n }\n\n return this.classRoot(classList);\n }\n\n get model() : number\n {\n return this.scope.get('modelValue');\n }\n\n set model(value : number)\n {\n this.scope.set('modelValue', value);\n }\n\n get width() : number\n {\n return this.scope.get('width');\n }\n\n set width(value : number)\n {\n this.scope.set('width', value);\n }\n\n get minWidth() : number\n {\n return this.scope.get('minWidth');\n }\n\n set minWidth(value : number)\n {\n this.scope.set('minWidth', value);\n }\n\n get maxWidth() : number\n {\n return this.scope.get('maxWidth');\n }\n\n set maxWidth(value : number)\n {\n this.scope.set('maxWidth', value);\n }\n\n get group() : any[]\n {\n return this.scope.get('group');\n }\n\n set group(value : any[])\n {\n this.scope.set('group', value);\n }\n\n get flex() : string\n {\n return this.scope.get('flex');\n }\n\n set flex(value : string)\n {\n this.scope.set('flex', value);\n }\n\n get direction() : string\n {\n return this.scope.get('direction');\n }\n\n set direction(value : string)\n {\n this.scope.set('direction', value);\n }\n\n}","import { SetupContext, onMounted, onUnmounted } from \"vue\";\nimport { Arr, Dom, Mix } from \"@kizmann/pico-js\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NResizerView } from \"./NResizerView.ts\";\nimport { NResizerData } from \"./NResizerData.ts\";\n\nexport class NResizerController extends ProtoController\n{\n /**\n * @type {NResizerController}\n */\n declare scope : NResizerController;\n\n /**\n * @type {NResizerData}\n */\n declare data : NResizerData;\n\n /**\n * @type {NResizerView}\n */\n declare view : NResizerView;\n\n /**\n * @type {ResizeObserver}\n */\n observer : ResizeObserver;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NResizerView(this),\n new NResizerData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n\n this\n .cloneProp('modelValue')\n .cloneProp('width')\n .cloneProp('group');\n\n this\n .makeRef('el')\n .makeRef('handle');\n\n\n if ( this.data.group == null ) {\n this.set('group', [this.uid]);\n }\n\n return this;\n }\n\n onMounted()\n {\n this.onSignal('NResizer', (group : any) => {\n this.onGroupSignal(group);\n });\n\n this.observer = new ResizeObserver(() => {\n this.observeOffset();\n });\n\n this.observer.observe(this.ref('el').value);\n }\n\n onUnmounted()\n {\n this.observer.disconnect();\n this.observer = null;\n }\n\n observeOffset()\n {\n this.detectOffset();\n this.update('width', this.data.width);\n }\n\n detectOffset(e : any = {})\n {\n const { data } = this;\n\n let [cursor, client] = [\n e.clientX, this.el.clientWidth,\n ];\n\n const offset = this.dom('el').rect();\n\n if ( data.direction === 'right' ) {\n cursor = (cursor ?? offset.x + client);\n }\n\n if ( data.direction === 'left' ) {\n cursor = cursor ?? offset.x;\n }\n\n let target = 0;\n\n if ( data.direction === 'right' ) {\n target = cursor - offset.x;\n }\n\n if ( data.direction === 'left' ) {\n target = offset.x - cursor + client;\n }\n\n if ( Mix.isNum(data.minWidth) ) {\n target = Math.max(target, data.minWidth);\n }\n\n if ( Mix.isNum(data.maxWidth) ) {\n target = Math.min(target, data.maxWidth);\n }\n\n target = data.width = Math.round(target);\n\n if ( data.direction === 'right' ) {\n return target;\n }\n\n return target * -1;\n }\n\n onPointerdown(e : any)\n {\n const uid = this.uid;\n\n e.preventDefault();\n e.stopPropagation();\n\n const [el, db] = [\n Dom.find(this.el),\n Dom.find(document.body)\n ];\n\n db.on('pointermove', (e : any) => {\n this.onPointermove(e);\n }, { passive: true, uid });\n\n db.once('pointerup', (e : any) => {\n this.onPointerup(e);\n db.off('pointermove', { uid });\n el.remClass('n-move');\n });\n\n el.addClass('n-move');\n }\n\n onPointermove(e : any)\n {\n const offset = this.detectOffset(e);\n\n let style = {\n transform: `translateX(${offset}px)`\n };\n\n this.dom('handle').style(style);\n }\n\n onPointerup(e : any)\n {\n this.fireSignal('NResizer', this.data.group);\n }\n\n onGroupSignal(group : any)\n {\n const { data } = this;\n\n if ( !Arr.has(data.group, group) ) {\n return;\n }\n\n this.update('width', data.width);\n this.update('modelValue', data.width);\n }\n\n}\n\nexport default NResizerController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NResizerController } from \"./NResizerController.ts\";\n\nexport const NResizerProps = {\n\n ...Props.Disabled,\n ...Props.Type,\n\n /**\n * @type {PropType<number>}\n */\n modelValue: {\n type: [Number], default: null\n },\n\n /**\n * @type {PropType<number>}\n */\n width: {\n type: [Number], default: null\n },\n\n /**\n * @type {PropType<number>}\n */\n minWidth: {\n type: [Number], default: 40\n },\n\n /**\n * @type {PropType<number>}\n */\n maxWidth: {\n type: [Number], default: null\n },\n\n /**\n * @type {PropType<array>}\n */\n group: {\n type: [Array], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n flex: {\n type: [String], default: ''\n },\n\n /**\n * @type {PropType<string>}\n */\n direction: {\n type: [String], default: 'right'\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NResizer',\n\n /**\n * @type {typeof NResizerProps}\n */\n props: NResizerProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n 'update:width',\n ],\n\n setup(props, context)\n {\n let ncx = new NResizerController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { Arr, Dom, Num, Obj, Run } from \"@kizmann/pico-js\";\n\nexport class NDragIndicator\n{\n\n /**\n * @type {typeof Dom}\n */\n static el : typeof Dom;\n\n /**\n * @type {any}\n */\n static style : any = {\n top: -1, left: -1, width: -1, height: -1\n };\n\n static init()\n {\n this.el = Dom.make('div', {\n class: 'n-drag-indicator'\n });\n\n Dom.ready(() => {\n this.el.appendTo(document.body);\n });\n\n return this;\n }\n\n static reset(parent : any = null)\n {\n this.style = {\n top: -1, left: -1, width: -1, height: -1\n };\n\n if ( parent == null ) {\n parent = document.body;\n }\n\n if ( !this.el.parent().is(parent) ) {\n this.el.appendTo(parent);\n }\n\n return this;\n }\n\n static update(options : any = {})\n {\n let classList = [\n 'n-drag-indicator',\n ];\n\n if ( options.grid ) {\n Arr.append(classList, 'n-view-grid');\n }\n\n if ( options.mode ) {\n Arr.append(classList, 'n-mode-' + options.mode);\n }\n\n if ( options.type ) {\n Arr.append(classList, 'n-type-' + options.type);\n }\n\n this.el.attr('class', classList);\n\n return this;\n }\n\n static remove()\n {\n this.el.style(null, false);\n\n let classList = [\n 'n-drag-indicator',\n ];\n\n this.el.attr('class', classList);\n\n return this.reset()\n }\n\n static patch(options : any)\n {\n const target = Dom.find(options.target);\n\n if ( target.el == null ) {\n return this.remove();\n }\n\n let boundry = target.el.offsetParent;\n\n if ( boundry == null ) {\n boundry = document.body;\n }\n\n if ( this.el.parent().el !== boundry ) {\n this.reset(boundry);\n }\n\n let box = Obj.only(target.rect(), [\n 'width', 'height'\n ]);\n\n if ( options.offset ) {\n box.width -= options.offset;\n }\n\n let offset = target.offset(null, boundry);\n\n if ( options.offset ) {\n offset.left += options.offset;\n }\n\n const style = {\n ...box, ...offset,\n };\n\n if ( Obj.matches(this.style, style) ) {\n return;\n }\n\n this.el.style(this.style = style);\n\n return this;\n }\n\n static show(options : any = {})\n {\n this.update(options).patch(options);\n\n return this;\n }\n\n}\n\nif ( !globalThis.NDragIndicator ) {\n globalThis.NDragIndicator = NDragIndicator.init();\n}\n\nexport default NDragIndicator;","import { Arr, Dom, Run } from \"@kizmann/pico-js\";\n\nexport class NDragCounter\n{\n /**\n * @type {Dom}\n */\n static el : Dom;\n\n /**\n * @type {Dom}\n */\n static ghost : Dom;\n\n /**\n * @type {boolean}\n */\n static active : boolean;\n\n /**\n * @type {number[]}\n */\n static translate : number[] = [\n 0, 0\n ];\n\n static init()\n {\n this.el = Dom.make('div', {\n class: 'n-drag-counter'\n });\n\n const style = [\n \"position: fixed;\",\n \"top: -1px;\",\n \"left: -1px;\",\n \"width: 1px;\",\n \"height: 1px;\",\n ];\n\n this.ghost = Dom.make('div', {\n style: style.join(' '),\n });\n\n Dom.ready(() => {\n this.el.appendTo(document.body);\n this.ghost.appendTo(document.body);\n });\n\n return this;\n }\n\n static remove()\n {\n this.active = false;\n\n let classList = [\n 'n-drag-counter',\n ];\n\n this.el.attr('class', classList);\n\n return this;\n }\n\n static show(position : any, options : any = {})\n {\n if ( !position.x || !position.y ) {\n return this.remove();\n }\n\n if ( !this.active ) {\n Run.frame(() => this.active = true);\n }\n\n let classList = [\n 'n-drag-counter',\n ];\n\n if ( this.active ) {\n Arr.append(classList, 'n-ready');\n }\n\n if ( options.mode ) {\n Arr.append(classList, 'n-mode-' + options.mode);\n }\n\n if ( options.type ) {\n Arr.append(classList, 'n-type-' + options.type);\n }\n\n let translate = [\n position.x + 'px',\n position.y + 'px',\n ];\n\n let style = {\n translate,\n };\n\n if ( ! this.active ) {\n this.el.style(style, false);\n }\n\n if ( ! Arr.matches(this.translate, translate) ) {\n Run.frame(() => this.el.style(style, false));\n }\n\n this.el.attr('class', classList);\n\n return this;\n }\n\n static create(event : any, options : any = {})\n {\n const data = event.dataTransfer;\n\n // Fix data transfer\n data.setData('text/plain', '');\n\n if ( typeof data.setDragImage !== 'function' ) {\n return;\n }\n\n data.setDragImage(this.ghost.el, 0, 0);\n\n if ( options.text ) {\n this.el.html(`<span>${options.text}</span>`);\n }\n\n return this;\n }\n\n}\n\nif ( !globalThis.NDragCounter ) {\n globalThis.NDragCounter = NDragCounter.init();\n}\n\nexport default NDragCounter;","import { Arr, Dom, Mix } from \"@kizmann/pico-js\";\nimport NDragHandler from \"./NDragHandler.ts\";\n\nexport class NDragReciever\n{\n /**\n * @type {string}\n */\n uid : string;\n\n /**\n * @type {any}\n */\n options : any = {\n grid: false,\n dragmove: null,\n dragend: null,\n dragdrop: null,\n }\n\n constructor(uid : string, options : any)\n {\n this.uid = uid;\n\n this.options = {\n ...this.options, ...options\n };\n\n return this;\n }\n\n dragmove(e : any, target : HTMLElement, config : any)\n {\n const { dragmove, grid } = this.options;\n\n const [zone, item] = [\n target.closest('[dropzone]'),\n target.closest('[dropitem]'),\n ];\n\n const uids = {\n zone: zone?.getAttribute('dropzone'),\n item: item?.getAttribute('dropitem'),\n };\n\n let [result, els] : [any, any] = [\n { uids }, { zone, item }\n ];\n\n if ( dragmove ) {\n result = dragmove(e, result, config, els);\n }\n\n if ( !result.grid ) {\n result.grid = grid;\n }\n\n if ( !result.type ) {\n result.type = config.type;\n }\n\n return result;\n }\n\n dragdrop(e : any, target : HTMLElement, config : any)\n {\n let result = this.dragmove(e, target, config);\n\n if ( Arr.has(['deny', 'self'], result.mode) ) {\n return result;\n }\n\n const { dragdrop } = this.options;\n\n if ( dragdrop ) {\n result = dragdrop(e, result, config);\n }\n\n return result;\n }\n\n dragend(e : any, result : any, config : any)\n {\n const { dragend } = this.options;\n\n if ( dragend ) {\n result = dragend(e, result, config);\n }\n\n return result;\n }\n\n dragstart(e : any, config : any)\n {\n NDragHandler.dragstart(e, config);\n }\n\n getMode(event : any, el : HTMLElement, safezone : Function | number = 0.5)\n {\n let [fn, mode] = [safezone, 'inside'];\n\n if ( typeof fn !== 'function' ) {\n // @ts-ignore\n fn = (v : number) => v * safezone;\n }\n\n const [{ grid }, rect] = [\n this.options, Dom.find(el).rect()\n ];\n\n const [offset, size, scale] = [\n grid ? rect.x : rect.y,\n grid ? rect.width : rect.height,\n grid ? event.clientX : event.clientY,\n ];\n\n const padding = fn(size);\n\n if ( scale < offset + padding ) {\n mode = 'before';\n }\n\n if ( scale > offset + size - padding ) {\n mode = 'after';\n }\n\n if ( Dom.find(el).hasClass('n-expanded') ) {\n mode = mode === 'after' ? 'inside' : mode;\n }\n\n return mode;\n }\n\n}\n\nexport default NDragReciever;","import { Arr, Dom, Locale, Mix, Obj, Run } from \"@kizmann/pico-js\";\nimport NDragIndicator from \"./NDragIndicator.ts\";\nimport NDragCounter from \"./NDragCounter.ts\";\nimport NDragReciever from \"./NDragReciever.ts\";\n\nexport class NDragHandler\n{\n /**\n * @type {string}\n */\n static type : string = 'none';\n\n /**\n * @type {number}\n */\n static active : number = 0;\n\n /**\n * @type {any}\n */\n static config : any = {};\n\n /**\n * @type {any}\n */\n static zones : any = {};\n\n /**\n * @type {any}\n */\n static event : any = {\n altKey: false,\n metaKey: false,\n clientX: 0,\n clientY: 0,\n target: null,\n }\n\n static init()\n {\n const win = Dom.find(document);\n\n const onPassiveDragover = Run.framerate((e : any) => {\n this.dragover(e);\n }, 20, false);\n\n const onDelayedDragdrop = (e : any) => Run.async(() => {\n this.dragdrop(e);\n });\n\n win.on('dragenter', (e : any) => {\n if ( this.active ) {\n e.preventDefault();\n }\n });\n\n win.on('dragover', (e : any) => {\n if ( this.active ) {\n e.preventDefault();\n onPassiveDragover(e);\n }\n });\n\n win.on('drop', (e : any) => {\n if ( this.active ) {\n e.preventDefault();\n onDelayedDragdrop(e);\n }\n });\n\n win.on('dragend', (e : any) => {\n e.preventDefault();\n this.active = 0;\n Dom.find(document.body).remClass('n-drag');\n });\n\n return this;\n }\n\n destroy()\n {\n const win = Dom.find(document);\n\n win.off('dragenter');\n win.off('dragover');\n win.off('drop');\n win.off('dragend');\n }\n\n static dragover(e : any)\n {\n this.type = 'none';\n\n if ( e.altKey ) {\n this.type = 'alt';\n }\n\n let [options, targets] : [any, any] = [\n {}, Dom.getNodePoint(e)\n ];\n\n // Get deepest target\n const target = Arr.first(targets);\n\n // Extract dropzone\n const zone = target.closest('[dropzone]');\n\n if ( zone != null ) {\n options = this.runDragover(e, target, zone);\n }\n\n const position = {\n x: e.clientX, y: e.clientY\n };\n\n if ( !options.type ) {\n options.type = 'none';\n }\n\n NDragIndicator.show(options);\n NDragCounter.show(position, options);\n }\n\n static dragdrop(e : any)\n {\n let [options, targets] : [any, any[]] = [\n {}, Dom.getNodePoint(e)\n ];\n\n // Get deepest target\n const target = Arr.first(targets);\n\n // Extract dropzone\n const zone = target.closest('[dropzone]');\n\n if ( zone != null ) {\n options = this.runDragdrop(e, target, zone);\n }\n\n if ( options.mode != null && zone != null ) {\n this.runDragend(e, options);\n }\n\n this.active = 0;\n this.type = 'none';\n\n Run.frame(() => {\n NDragCounter.show({});\n NDragIndicator.show({});\n });\n }\n\n static runDragover(e : any, target : HTMLElement, frame : HTMLElement)\n {\n const zone = Dom.find(frame).attr('dropzone');\n\n if ( this.zones[zone] == null ) {\n return {};\n }\n\n const config = {\n ...this.config, type: this.type,\n };\n\n return this.zones[zone].dragmove(e, target, config);\n }\n\n static runDragdrop(e : any, target : HTMLElement, frame : HTMLElement)\n {\n const zone = Dom.find(frame).attr('dropzone');\n\n if ( this.zones[zone] == null ) {\n return {};\n }\n\n const config = {\n ...this.config, type: this.type,\n };\n\n return this.zones[zone].dragdrop(e, target, config);\n }\n\n static runDragend(e : any, options : any)\n {\n const { uid } = this.config;\n\n if ( this.zones[uid] == null ) {\n return {};\n }\n\n const config = {\n ...this.config, type: this.type,\n };\n\n return this.zones[uid].dragend(e, options, config);\n }\n\n static append(uid : string, config : any = {})\n {\n this.zones[uid] = new NDragReciever(uid, config);\n\n return this.zones[uid];\n }\n\n static remove(uid : string)\n {\n delete this.zones[uid];\n\n return this;\n }\n\n static dragstart(e : any, config : any = {}, options : any = {})\n {\n this.active = 1;\n Dom.find(document.body).addClass('n-drag');\n\n config = {\n items: [], ...config\n };\n\n this.config = Obj.clone(config);\n\n options = {\n text: ':count item|:count items', ...options\n };\n\n options.text = Locale.choice(...[\n options.text, this.config.items.length\n ]);\n\n NDragCounter.create(e, options);\n }\n\n}\n\nif ( !globalThis.NDragHandler ) {\n globalThis.NDragHandler = NDragHandler.init();\n}\n\nexport default NDragHandler;","import { h } from \"vue\";\nimport { ProtoView, Styler } from \"../../../root/index.ts\";\nimport { NDraglistController } from \"./NDraglistController.ts\";\nimport { Arr, Obj } from \"@kizmann/pico-js\";\n\nexport class NDraglistView extends ProtoView\n{\n /**\n * @type {NDraglistController}\n */\n declare scope : NDraglistController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-draglist';\n\n /**\n * @type {string}\n */\n iem : string = 'n-draglist-item';\n\n cache = [];\n\n default()\n {\n let { scope, data } = this.scope;\n\n this.bem = data.grid ? 'n-draggrid' :\n 'n-draglist';\n\n this.iem = data.grid ? 'n-draggrid-item' :\n 'n-draglist-item';\n\n let props = {\n ref: scope.ref('virtualbar'),\n class: data.classList,\n items: data.visibles,\n grid: data.grid,\n itemHeight: data.itemHeight,\n itemWidth: data.itemWidth,\n scrollPortal: data.scrollPortal,\n prevent: 'keydown:[37,38,39,40]',\n dropzone: scope.uid,\n };\n\n const slots : any = {};\n\n slots.default = (node : any) => {\n return this.node(node);\n };\n\n return this.comp('n-virtualbar', props, slots);\n }\n\n header()\n {\n let props = {\n class: ['n-draglist-head']\n };\n\n return h('div', props, [\n this.header_handle(),\n this.header_expand(),\n this.header_select(),\n ]);\n }\n\n header_handle()\n {\n const { data } = this.scope;\n\n if ( !data.renderHandle ) {\n return null;\n }\n\n let props = {\n class: ['n-draglist-item__handle'],\n };\n\n return h('div', props);\n }\n\n header_expand()\n {\n const { data } = this.scope;\n\n if ( !data.renderExpand ) {\n return null;\n }\n\n let props = {\n class: ['n-draglist-item__expand'],\n };\n\n return h('div', props);\n }\n\n header_select()\n {\n const { data } = this.scope;\n\n if ( !data.renderSelect ) {\n return null;\n }\n\n let props : any= {\n class: ['n-draglist-item__checkbox']\n }\n\n props.onClick = (e : any) => {\n this.scope.selectAll();\n };\n\n let parent = {\n class: ['n-draglist-item__select'],\n };\n\n const state = this.scope.selectState();\n\n if ( state ) {\n Arr.append(parent.class, 'n-selected');\n }\n\n if ( ! data.items.length ) {\n Arr.append(parent.class, 'n-disabled');\n }\n\n let icon = Styler.icon('check');\n\n if ( state === 1 ) {\n icon = Styler.icon('minus');\n }\n\n return h('div', parent, [\n h('div', props, [\n h('i', { class: icon })\n ])\n ]);\n }\n\n node({ value, props })\n {\n if ( ! value ) {\n return null;\n }\n\n let { scope, data } = this.scope;\n\n props = {\n dropitem: value.uid, class: [],\n };\n\n if ( !data.renderHandle ) {\n props.draggable = !data.renderHandle;\n }\n\n if ( value.childs ) {\n Arr.append(props.class, 'n-children');\n }\n\n const uid = Obj.get(data.current, data.uniqueProp);\n\n if ( data.allowCurrent && uid === value.uid ) {\n Arr.append(props.class, 'n-current');\n }\n\n if ( Arr.has(data.expanded, value.uid) ) {\n Arr.append(props.class, 'n-expanded');\n }\n\n Arr.append(props.class, scope.view.iem);\n\n props.onPointerdown = (e : any) => {\n scope.onCurrentclick(e, value);\n scope.emit('row-click', data.current);\n };\n\n props.onDblclick = () => {\n scope.emit('row-dblclick', data.current);\n };\n\n props.onDragstart = (e : any) => {\n scope.nodeDragstart(e, value);\n };\n\n return h('div', props, [\n this.node_spacer(value),\n this.node_handle(value),\n this.node_expand(value),\n this.node_select(value),\n this.node_element(value),\n ]);\n }\n\n node_spacer(value : any)\n {\n if ( !value.depth ) {\n return null;\n }\n\n const { data } = this.scope;\n\n const props : any = {\n class: `${this.iem}__spacer`\n };\n\n props.style = {\n 'width': `${value.depth * data.itemOffset}px`\n };\n\n return h('div', props);\n }\n\n node_handle(value : any)\n {\n const { scope, data } = this.scope;\n\n if ( !data.renderHandle ) {\n return null;\n }\n\n const parent = {\n class: `${this.iem}__handle`,\n draggable: true,\n };\n\n const props : any = {\n class: `${this.iem}__ellipsis`\n };\n\n props.onDragstart = (e) => {\n scope.nodeDragstart(e, value);\n };\n\n return h('div', parent, [\n h('div', props, [\n h('i', { class: 'fa fa-ellipsis-v' })\n ])\n ]);\n }\n\n node_expand(value : any)\n {\n const { scope, data } = this.scope;\n\n if ( !data.renderExpand ) {\n return null;\n }\n\n const parent = {\n class: `${this.iem}__expand`\n };\n\n const props : any = {\n class: `${this.iem}__angle`\n };\n\n props.onPointerdown = (e : any) => {\n e.preventDefault();\n scope.onExpandclick(e, value);\n };\n\n return h('div', parent, [\n h('div', props, [\n h('i', { class: 'fa fa-angle-right' })\n ])\n ]);\n }\n\n node_select(value : any)\n {\n const { scope, data } = this.scope;\n\n if ( !data.renderSelect ) {\n return null;\n }\n\n const parent : any = {\n class: [`${this.iem}__select`]\n };\n\n if ( !scope.nodeAllowSelect(value) ) {\n Arr.append(parent.class, 'n-disabled');\n }\n\n if ( Arr.has(data.selected, value.uid) ) {\n Arr.append(parent.class, 'n-selected');\n }\n\n const props : any = {\n class: [`${this.iem}__checkbox`]\n };\n\n props.onPointerdown = (e : any) => {\n e.preventDefault();\n scope.onSelectclick(e, value);\n };\n\n return h('div', parent, [\n h('div', props, [\n h('i', { class: 'fa fa-check' })\n ])\n ]);\n }\n\n node_element(value : any)\n {\n const { data, scope } = this.scope;\n\n const props = {\n class: `${this.iem}__element`\n };\n\n const item = Obj.get(data, value.route);\n\n const passed : any = {\n value, item\n };\n\n passed.copy = () => {\n console.log('BUILD copy');\n };\n\n passed.remove = () => {\n console.log('BUILD remove');\n };\n\n let renderNode = () => {\n return scope.context.slots.default({ value, item });\n };\n\n return h('div', props, [renderNode()]);\n }\n\n\n}\n\nexport default NDraglistView;","import { ProtoExtend, ProtoData, DragData } from \"../../../root/index.ts\";\nimport NDraglistController from \"./NDraglistController.ts\";\n\nexport class NDraglistData extends ProtoExtend([ProtoData, DragData])\n{\n /**\n * @type {NDraglistController}\n */\n declare scope : NDraglistController;\n\n get classList() : string[]\n {\n let classList = [];\n\n return this.classRoot(classList);\n }\n\n get index() : number\n {\n return this.scope.get('index');\n }\n\n set index(value : number)\n {\n this.scope.set('index', value);\n }\n\n get virtuals() : any[]\n {\n return this.scope.get('virtuals');\n }\n\n set virtuals(value : any[])\n {\n this.scope.set('virtuals', value);\n }\n\n get visibles() : any[]\n {\n return this.scope.get('visibles');\n }\n\n set visibles(value : any[])\n {\n this.scope.set('visibles', value);\n }\n\n get relation() : any\n {\n return this.scope.get('relation');\n }\n\n set relation(value : any)\n {\n this.scope.set('relation', value);\n }\n\n get grid() : boolean\n {\n return this.scope.get('grid');\n }\n\n get itemHeight() : number\n {\n return this.scope.get('itemHeight');\n }\n\n get itemWidth() : number\n {\n return this.scope.get('itemWidth');\n }\n\n get itemOffset() : number\n {\n return this.scope.get('itemOffset');\n }\n\n get scrollPortal() : boolean\n {\n return this.scope.get('scrollPortal');\n }\n\n set scrollPortal(value : boolean)\n {\n this.scope.set('scrollPortal', value);\n }\n\n}\n\nexport interface NDraglistData extends ProtoData, DragData\n{\n}\n\nexport default NDraglistData;","import { Arr, Obj, Run } from \"@kizmann/pico-js\";\n\nexport class NDragHelper {\n\n static unlinkNodes(scope: any, clone : any, result : any, config : any)\n {\n if ( !scope.data.removeNode ) {\n return clone;\n }\n\n Arr.each(config.items, ({ value }) => {\n Obj.set(clone, value.route, null);\n });\n\n return clone;\n }\n\n static removeNodes(scope: any, clone : any, result : any, config : any)\n {\n if ( !scope.data.removeNode ) {\n return clone;\n }\n\n const { childProp } = scope.data;\n\n const fn = (value : any, prop : string = 'items') => {\n return Arr.filter(value?.[prop]);\n };\n\n clone.items = Arr.recursive(fn(clone), childProp, (node : any) => {\n return Obj.set(node, childProp, fn(node, childProp));\n });\n\n return clone;\n }\n\n static appendNodes(scope: any, clone : any, result : any, config : any)\n {\n const args : [...any] = [\n scope, clone, result, config\n ];\n\n if ( !scope.data.insertNode ) {\n return clone;\n }\n\n if ( config.uid === scope.uid ) {\n // @ts-ignore\n this.unlinkNodes(...args);\n }\n\n Arr.each(config.items, ({ item }) => {\n Arr.append(clone.items, item);\n });\n\n if ( config.uid === scope.uid ) {\n // @ts-ignore\n clone = this.removeNodes(...args);\n }\n\n return clone;\n }\n\n static insideNodes(scope: any, clone : any, result : any, config : any)\n {\n const args : [...any] = [\n scope, clone, result, config\n ];\n const { data } = scope;\n\n if ( !data.insertNode ) {\n return clone;\n }\n\n let value = Arr.find(data.virtuals, {\n uid: result.uids.item\n });\n\n if ( value == null ) {\n return clone;\n }\n\n if ( config.uid === scope.uid ) {\n // @ts-ignore\n this.unlinkNodes(...args);\n }\n\n const path = [\n ...value.route, data.childProp\n ];\n\n const childs = Obj.get(clone, path, []);\n\n Arr.each(config.items, ({ item }) => {\n Arr.append(childs, item);\n });\n\n Obj.set(clone, path, childs);\n\n if ( config.uid === scope.uid ) {\n // @ts-ignore\n this.removeNodes(...args);\n }\n\n return clone;\n }\n\n static beforeNodes(scope: any, clone : any, result : any, config : any)\n {\n const args : [...any] = [\n scope, clone, result, config\n ];\n\n const { data } = scope;\n\n if ( !data.insertNode ) {\n return clone;\n }\n\n let value = Arr.find(data.virtuals, {\n uid: result.uids.item\n });\n\n if ( value == null ) {\n return clone;\n }\n\n if ( config.uid === scope.uid ) {\n // @ts-ignore\n this.unlinkNodes(...args);\n }\n\n const path = [\n ...Arr.slice(value.route, 0, -1)\n ];\n\n const childs = Obj.get(clone, path, []);\n\n Arr.each(config.items.reverse(), ({ item }) => {\n Arr.insert(childs, value.index, item);\n });\n\n if ( config.uid === scope.uid ) {\n // @ts-ignore\n this.removeNodes(...args);\n }\n\n return clone;\n }\n\n static afterNodes(scope: any, clone : any, result : any, config : any)\n {\n const args : [...any] = [\n scope, clone, result, config\n ];\n\n const { data } = scope;\n\n if ( !data.insertNode ) {\n return clone;\n }\n\n let value = Arr.find(data.virtuals, {\n uid: result.uids.item\n });\n\n if ( value == null ) {\n return clone;\n }\n\n if ( config.uid === scope.uid ) {\n // @ts-ignore\n this.unlinkNodes(...args);\n }\n\n const path = [\n ...Arr.slice(value.route, 0, -1)\n ];\n\n const childs = Obj.get(clone, path, []);\n\n Arr.each(config.items.reverse(), ({ item }) => {\n Arr.insert(childs, value.index + 1, item);\n });\n\n if ( config.uid === scope.uid ) {\n // @ts-ignore\n this.removeNodes(...args);\n }\n\n return clone;\n }\n\n}\n\nexport default NDragHelper;","import { Arr, Mix, Obj } from \"@kizmann/pico-js\";\nimport NDragHelper from \"./NDragHelper\";\n\nexport class NVirtualHelper\n{\n\n static visibles(scope : any) : any[]\n {\n let visibles = Arr.clone(scope.data.virtuals);\n\n visibles = Arr.filter(visibles, (node : any) => {\n return Arr.contains(scope.data.expanded, node.cascade.slice(0, -1));\n });\n\n return visibles;\n }\n\n static virtuals(scope : any, items : any = null, ...args : any[]) : any[]\n {\n if ( items == null ) {\n items = Arr.clone(scope.data.items);\n }\n\n items = Arr.reduce(items, (merge : any, item : any, index : any) => {\n return this.extract(scope, merge, item, index, ...args);\n }, []);\n\n Arr.each(items, (item : any, index: number) => {\n item.total = index;\n });\n\n return items;\n }\n\n static extract(scope : any, merge : any, item : any, index : any, depth : number = 0, path : string[] = ['items'], prev : any[] = []) : any\n {\n const { uniqueProp, childProp } = scope.data;\n\n const uid = Obj.get(item, ...[\n uniqueProp,\n ]);\n\n const parent = Arr.last(prev);\n\n const cascade = [\n ...prev, uid\n ];\n\n const route = [\n ...path, index\n ];\n\n let virtual : any = {\n uid, index, depth, route, cascade, parent,\n };\n\n let childs = Obj.get(item, ...[\n childProp, []\n ]);\n\n // Add child length\n virtual.childs = childs.length;\n\n if ( Mix.isEmpty(childs) ) {\n return [...merge, virtual];\n }\n\n const croute = [\n ...path, Mix.int(index), childProp\n ];\n\n const props = [\n depth + 1, croute, cascade\n ];\n\n childs = this.virtuals(...[\n scope, childs, ...props\n ]);\n\n return Arr.merge(...[\n merge, [virtual], childs\n ]);\n }\n\n}\n\nexport default NVirtualHelper;","import { onMounted, SetupContext } from \"vue\";\nimport { Arr, Mix, Num, Obj, Run } from \"@kizmann/pico-js\";\nimport { ProtoController, Pointer } from \"../../../root/index.ts\";\nimport { NDragHandler } from \"../drag/NDragHandler.ts\";\nimport { NDragReciever } from \"../drag/NDragReciever.ts\";\nimport { NDraglistView } from \"./NDraglistView.ts\";\nimport { NDraglistData } from \"./NDraglistData.ts\";\nimport { NDragHelper } from \"../helper/NDragHelper.ts\";\nimport { NVirtualHelper } from \"../helper/NVirtualHelper.ts\";\n\nexport class NDraglistController extends ProtoController\n{\n /**\n * @type {NDraglistController}\n */\n declare scope : NDraglistController;\n\n /**\n * @type {NDraglistData}\n */\n declare data : NDraglistData;\n\n /**\n * @type {NDraglistView}\n */\n declare view : NDraglistView;\n\n /**\n * @type {NDragReciever}\n */\n drag : NDragReciever;\n\n /**\n * @type {string}\n */\n selectbuffer : string;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NDraglistView(this),\n // @ts-ignore\n new NDraglistData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n\n this\n .cloneProp('current')\n .cloneProp('selected')\n .cloneProp('expanded')\n .cloneProp('group');\n\n this.makeRef('virtualbar');\n\n // Make virtuals available (all items on one layer)\n this.makeData('virtuals', ...[\n NVirtualHelper.virtuals(this)\n ]);\n\n this.watchProp('items', () => {\n this.set('virtuals', NVirtualHelper.virtuals(this));\n this.update('selected', []);\n });\n\n // Make visibles available (all items except unexpanded)\n this.makeData('visibles', ...[\n NVirtualHelper.visibles(this)\n ]);\n\n this.watchData('virtuals', () => {\n this.set('visibles', NVirtualHelper.visibles(this));\n });\n\n this.watchData('expanded', () => {\n this.set('visibles', NVirtualHelper.visibles(this));\n });\n\n // Make relation available (first selected item)\n this.makeData('relation', ...[\n this.buildRelation()\n ]);\n\n this.watchData('selected', () => {\n this.set('relation', this.buildRelation());\n });\n\n this.makeData('index', ...[\n this.buildIndex()\n ]);\n\n this.watchData('visibles', () => {\n this.set('index', this.buildIndex());\n });\n\n this.watchData('current', () => {\n this.set('index', this.buildIndex());\n });\n\n if ( this.data.group == null ) {\n this.set('group', [this.uid]);\n }\n\n if ( this.data.allowGroups == null ) {\n this.set('allowGroups', this.data.group);\n }\n\n return this;\n }\n\n onMounted()\n {\n const { uid } = this;\n\n Pointer.bind(uid, 'keydown', (e : any, v : any) => {\n\n const self = v.target?.closest(...[\n `[dropzone=\"${uid}\"]`\n ]);\n\n if ( self && e.which === 38 || self && e.which === 37 ) {\n this.setPrevCurrent();\n }\n\n if ( self && e.which === 40 || self && e.which === 39 ) {\n this.setNextCurrent();\n }\n\n });\n\n let config : any = {\n grid: this.data.grid,\n };\n\n config.dragmove = (...args : any[]) => {\n // @ts-ignore\n return this.onDragmove(...args);\n };\n\n config.dragdrop = (...args : any[]) => {\n // @ts-ignore\n return this.onDragdrop(...args);\n };\n\n config.dragend = (...args : any[]) => {\n // @ts-ignore\n return this.onDragend(...args);\n };\n\n this.drag = NDragHandler.append(uid, config);\n }\n\n onUnmounted()\n {\n NDragHandler.remove(this.uid);\n Pointer.unbind(this.uid);\n }\n\n getValue(item : any, fallback : any = null)\n {\n const { data } = this;\n\n if ( item == null ) {\n return fallback;\n }\n\n const uid = Obj.get(...[\n item, data.uniqueProp\n ]);\n\n if ( uid == null ) {\n return fallback;\n }\n\n return Arr.find(data.virtuals, { uid }, fallback);\n\n }\n\n getItem(value : any, fallback : any = null)\n {\n const { data } = this;\n\n if ( value == null ) {\n return fallback;\n }\n\n return Obj.get(...[\n data, value.route, fallback\n ]);\n }\n\n buildIndex()\n {\n const { data } = this;\n\n if ( data.current == null ) {\n return -1;\n }\n\n const uid = Obj.get(...[\n data.current, data.uniqueProp\n ]);\n\n if ( uid == null ) {\n return -1;\n }\n\n return Arr.findIndex(data.visibles, {\n uid\n });\n }\n\n buildRelation()\n {\n let relation = Arr.find(this.data.virtuals, (val : any) => {\n return Arr.has(this.data.selected, val.uid);\n },);\n\n return Object.freeze({ depth: -1, ...relation });\n }\n\n onCurrentclick(e : any, item : any)\n {\n if ( e.metaKey ) {\n this.onSelectclick(e, item);\n }\n\n this.update('current', this.getItem(item));\n }\n\n onSelectclick(e : any, item : any)\n {\n const { data } = this;\n\n let selected = Arr.toggle(...[\n Arr.clone(data.selected), item.uid\n ]);\n\n let first = Arr.find(data.visibles, (node : any) => {\n return Arr.has(data.selected, node.uid);\n });\n\n if ( ! e.shiftKey || ! first || item.depth ) {\n return this.update('selected', selected);\n }\n\n const items = Arr.filter(data.visibles, (node : any) => {\n return ! node.depth;\n });\n\n let last = item;\n\n if ( first.index > last.index ) {\n [last, first] = [first, item];\n }\n\n const target = Arr.slice(...[\n items, first.index, last.index + 1\n ]);\n\n selected = Arr.extract(target, 'uid');\n\n return this.update('selected', selected);\n }\n\n onExpandclick(e : any, item : any)\n {\n this.update('expanded', ...[\n Arr.toggle(this.data.expanded, item.uid)\n ]);\n }\n\n onDragmove(e : any, result : any, config : any, els : any)\n {\n const { data } = this;\n\n if ( !Arr.has(config.group, data.allowGroups) ) {\n return result;\n }\n\n if ( result.uids.item ) {\n result = this.nodeDragmove(e, result, config, els);\n }\n\n if ( result.mode || this.data.rootSkip ) {\n return result;\n }\n\n result = {\n ...result, target: els.zone, mode: 'append'\n };\n\n if ( !this.nodeAllowDrop(null, result, config) ) {\n result.mode = 'deny';\n }\n\n return result;\n }\n\n onDragdrop(e : any, result : any, config : any)\n {\n let clone = {\n items: Arr.clone(this.data.items),\n };\n\n let transformDrop = this.data.transformDrop;\n\n if ( typeof transformDrop !== 'function' ) {\n transformDrop = (value : any) => value;\n }\n\n Arr.each(config.items, ({ item }, i) => {\n config.items[i]['item'] = transformDrop(item);\n });\n\n const args : [...any] = [\n this, clone, result, config\n ];\n\n if ( result.mode === 'append' ) {\n // @ts-ignore\n clone = NDragHelper.appendNodes(...args);\n }\n\n if ( result.mode === 'inside' ) {\n // @ts-ignore\n clone = NDragHelper.insideNodes(...args);\n }\n\n if ( result.mode === 'before' ) {\n // @ts-ignore\n clone = NDragHelper.beforeNodes(...args);\n }\n\n if ( result.mode === 'after' ) {\n // @ts-ignore\n clone = NDragHelper.afterNodes(...args);\n }\n\n this.emit('update:items', clone.items);\n this.update('current', null);\n this.update('selected', []);\n\n return result;\n }\n\n onDragend(e : any, result : any, config : any)\n {\n if ( this.uid === result.uids.zone ) {\n return result;\n }\n\n let clone = {\n items: Arr.clone(this.data.items),\n };\n\n const args : [...any] = [\n this, clone, result, config\n ];\n\n // @ts-ignore\n NDragHelper.unlinkNodes(...args);\n\n // @ts-ignore\n NDragHelper.removeNodes(...args);\n\n this.emit('update:items', clone.items);\n this.update('current', null);\n this.update('selected', []);\n\n return result;\n }\n\n nodeDragstart(e : any, item : any)\n {\n const { data } = this;\n\n let selected = Arr.clone(data.selected);\n\n if ( !Arr.has(selected, [item.uid]) ) {\n selected = [item.uid];\n }\n\n const virtuals = Arr.each(selected, (uid : any) => {\n return Arr.find(data.virtuals, { uid });\n });\n\n const items = Arr.each(virtuals, (value : any) => {\n return { value, item: Obj.get(data, value.route) };\n });\n\n this.drag.dragstart(e, {\n uid: this.uid, items, group: Obj.clone(data.group)\n });\n\n Run.frame(() => {\n this.update('selected', selected);\n });\n }\n\n nodeDragmove(e : any, result : any, config : any, els : any)\n {\n const { data } = this;\n\n if ( data.itemSkip ) {\n return result;\n }\n\n const item = Arr.find(data.virtuals, {\n uid: result.uids.item\n });\n\n if ( !item ) {\n return result;\n }\n\n result = Obj.assign(result, {\n target: els.item, offset: data.itemOffset * item.depth\n });\n\n const node = {\n item, value: Obj.get(data, item.route)\n };\n\n let rainbow = Arr.each(config.items ?? [], (el : any) => {\n return Arr.has(item.cascade, el.value.uid);\n });\n\n if ( Arr.has(rainbow, true) ) {\n return { ...result, mode: 'self' };\n }\n\n if ( !this.nodeAllowDrop(node, result, config) ) {\n result.mode = 'deny';\n }\n\n if ( !result.mode ) {\n result.mode = this.drag.getMode(e, els.item, data.safezone);\n }\n\n return result;\n }\n\n nodeAllowDrop(target : any, result : any, config : any)\n {\n let allowDrop = this.data.allowDrop;\n\n if ( typeof allowDrop !== 'function' ) {\n allowDrop = () => allowDrop;\n }\n\n let rainbow = Arr.each(config.items, (node : any) => {\n return !!allowDrop(node, target, result.mode);\n });\n\n return !Arr.has(rainbow, false);\n }\n\n nodeAllowSelect(value : any)\n {\n const { data } = this;\n\n if ( data.relation.depth === -1 ) {\n return true;\n }\n\n if ( data.relation.depth !== value.depth ) {\n return false;\n }\n\n let allowSelect = data.allowSelect;\n\n if ( typeof allowSelect !== 'function' ) {\n allowSelect = () => allowSelect;\n }\n\n return allowSelect({\n value, item: Obj.get(data, value.route)\n });\n }\n\n setTotalCurrent(total: number)\n {\n const { data } = this;\n\n const index = Arr.findIndex(data.visibles, (node : any) => {\n return node.total === total;\n });\n\n this.ncx('virtualbar')?.scrollTo(index);\n\n this.update('current', ...[\n this.getItem(data.visibles[index])\n ]);\n }\n\n setPrevCurrent()\n {\n const { data } = this;\n\n const index = Arr.prev(...[\n data.visibles, data.index,\n ]);\n\n this.ncx('virtualbar')?.scrollTo(index);\n\n this.update('current', ...[\n this.getItem(data.visibles[index])\n ]);\n }\n\n setNextCurrent()\n {\n const { data } = this;\n\n const index = Arr.next(...[\n data.visibles, data.index,\n ]);\n\n this.ncx('virtualbar')?.scrollTo(index);\n\n this.update('current', ...[\n this.getItem(data.visibles[index])\n ]);\n }\n\n selectAll()\n {\n const { items, selected } = this.data;\n\n let ids = Arr.extract(...[\n items, this.data.uniqueProp\n ]);\n\n if ( selected.length === items.length ) {\n ids = [];\n }\n\n this.update('selected', ids);\n }\n\n selectState(): number\n {\n const { items, selected } = this.data;\n\n if ( selected.length === 0 ) {\n return 0;\n }\n\n if ( selected.length === items.length ) {\n return 2;\n }\n\n return 1;\n }\n\n scrollToIndex(index : number)\n {\n this.ncx('virtualbar')?.scrollTo(index);\n }\n\n}\n\nexport default NDraglistController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NDraglistController } from \"./NDraglistController.ts\";\n\nexport const NDraglistProps = {\n\n ...Props.Size,\n ...Props.Type,\n ...Props.Draglist,\n\n /**\n * @type {PropType<boolean>}\n */\n grid: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<number>}\n */\n itemHeight: {\n type: [Number], default: 32\n },\n\n /**\n * @type {PropType<number>}\n */\n itemWidth: {\n type: [Number], default: 120\n },\n\n /**\n * @type {PropType<number>}\n */\n itemOffset: {\n type: [Number], default: 30\n },\n\n /**\n * @type {PropType<boolean>}\n */\n scrollPortal: {\n type: [Boolean], default: false\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NDraglist',\n\n /**\n * @type {typeof NDraglistProps}\n */\n props: NDraglistProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:items',\n 'update:current',\n 'update:selected',\n 'update:expanded',\n 'row-click',\n 'row-dblclick',\n ],\n\n setup(props, context)\n {\n let ncx = new NDraglistController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NDropzoneController } from \"./NDropzoneController.ts\";\n\nexport class NDropzoneView extends ProtoView\n{\n /**\n * @type {NDropzoneController}\n */\n declare scope : NDropzoneController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-dropzone';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n class: data.classList,\n dropzone: scope.uid,\n };\n\n return h('div', props, [this.body()]);\n }\n\n body() : any\n {\n let { data, context } = this.scope;\n\n if ( data.item == null ) {\n return null;\n }\n\n return context.slots.default(data.item);\n }\n\n}\n\nexport default NDropzoneView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NDropzoneController from \"./NDropzoneController.ts\";\n\nexport class NDropzoneData extends ProtoData\n{\n /**\n * @type {NDropzoneController}\n */\n declare scope : NDropzoneController;\n\n get classList() : string[]\n {\n return this.classRoot([]);\n }\n\n get item() : any\n {\n return this.scope.get('item');\n }\n\n get allowGroups() : string[]\n {\n return this.scope.get('allowGroups');\n }\n\n}\n\nexport default NDropzoneData;","import { SetupContext } from \"vue\";\nimport { Pointer, ProtoController } from \"../../../root/index.ts\";\nimport { NDropzoneView } from \"./NDropzoneView.ts\";\nimport { NDropzoneData } from \"./NDropzoneData.ts\";\nimport { NDragReciever } from \"../drag/NDragReciever.ts\";\nimport { NDragHandler } from \"../drag/NDragHandler.ts\";\nimport { Arr } from \"@kizmann/pico-js\";\n\n\nexport class NDropzoneController extends ProtoController\n{\n /**\n * @type {NDropzoneController}\n */\n declare scope : NDropzoneController;\n\n /**\n * @type {NDropzoneData}\n */\n declare data: NDropzoneData;\n\n /**\n * @type {NDropzoneView}\n */\n declare view: NDropzoneView;\n\n /**\n * @type {NDragReciever}\n */\n drag : NDragReciever;\n\n constructor(props:any, context:SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NDropzoneView(this),\n new NDropzoneData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n\n if ( this.data.allowGroups == null ) {\n this.set('allowGroups', [this.uid]);\n }\n\n return this;\n }\n\n onMounted()\n {\n const { uid } = this;\n\n let config : any = {};\n\n config.dragmove = (...args : any[]) => {\n // @ts-ignore\n return this.onDragmove(...args);\n };\n\n config.dragdrop = (...args : any[]) => {\n // @ts-ignore\n return this.onDragdrop(...args);\n };\n\n config.dragend = (...args : any[]) => {\n // @ts-ignore\n return this.onDragend(...args);\n };\n\n this.drag = NDragHandler.append(uid, config);\n }\n\n onUnmounted()\n {\n NDragHandler.remove(this.uid);\n }\n\n onDragmove(e : any, result : any, config : any, els : any)\n {\n const { data } = this;\n\n if ( !Arr.has(config.group, data.allowGroups) ) {\n return result;\n }\n\n result = {\n ...result, target: els.zone, mode: 'inside'\n };\n\n return result;\n }\n\n onDragdrop(e : any, result : any, config : any)\n {\n const node = Arr.first(config.items);\n\n this.update('item', node.item);\n\n return result;\n }\n\n onDragend(e : any, result : any, config : any)\n {\n\n return result;\n }\n\n}\n\nexport default NDropzoneController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NDropzoneController } from \"./NDropzoneController.ts\";\n\nexport const NDropzone = {\n\n ...Props.Size,\n ...Props.Type,\n\n /**\n * @type {PropType<object>}\n */\n item: {\n type: [Object], default: null\n },\n\n /**\n * @type {PropType<array>}\n */\n allowGroups: {\n type: [Array], default: null\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NDropzone',\n\n /**\n * @type {typeof NDropzone}\n */\n props: NDropzone,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:item',\n ],\n\n setup(props, context)\n {\n let ncx = new NDropzoneController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NTableController } from \"./NTableController.ts\";\nimport { Arr, Locale, Mix, Obj, Str } from \"@kizmann/pico-js\";\n\nexport class NTableView extends ProtoView\n{\n /**\n * @type {NTableController}\n */\n // @ts-ignore\n declare scope : NTableController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-table';\n\n resolve(type : string, scope : string = 'NTableCells') : any\n {\n if ( globalThis[scope][type] ) {\n return globalThis[scope][type];\n }\n\n return globalThis[scope]['string'];\n }\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props = {\n ref: scope.ref('el'),\n class: data.classList,\n overflowY: false,\n };\n\n return this.comp('n-scrollbar', props, () => [\n this.header(), this.context(), this.body(), this.slot()\n ]);\n }\n\n header() : any\n {\n let props = {\n name: 'header',\n prevent: 'contextmenu:1'\n };\n\n const items = Arr.each(this.scope.childs, (column : any, index : number) => {\n return this.column(column, index);\n });\n\n const slots = [\n this.draghead(),\n ];\n\n return this.div(props, [\n ...slots, ...items\n ]);\n }\n\n draghead() : any\n {\n const draglist = this.scope.ref('draglist');\n\n if ( !draglist.value ) {\n return null;\n }\n return draglist.value._.ncx.view.header();\n }\n\n context() : any\n {\n const { scope, data } = this.scope;\n\n let contextProps = {\n size: 'sm',\n trigger: 'context',\n toggle: true,\n width: 160,\n };\n\n const group = this.comp('n-popover-group', null, () => {\n return Locale.trans('Toggle column visiblity');\n });\n\n const groupProps = {\n modelValue: data.visible,\n align: 'vertical',\n };\n\n groupProps['onUpdate:modelValue'] = (value : any) => {\n scope.update('visible', value);\n };\n\n const values = Arr.each(scope.childs, (column : any) => {\n return this.comp('n-checkbox', { value: column.uid }, () => {\n return column.data.label;\n });\n });\n\n const checkbox = this.comp('n-checkbox-group', groupProps, () => {\n return values;\n })\n\n return this.comp('n-popover', contextProps, () => [\n group, checkbox\n ]);\n }\n\n column(column : any, index : number) : any\n {\n const { scope, data } = this.scope;\n\n if ( !Arr.has(data.visible, column.uid) ) {\n return null;\n }\n\n let props : any = {\n class: [`${this.bem}-column`],\n };\n\n const sorted = [\n 'n-sorted', `n-${data.sortDir}`\n ];\n\n if ( column.data.sortProp === data.sortProp ) {\n props.class = Arr.merge(props.class, sorted);\n }\n\n const filter = Arr.find(data.filter, {\n property: column.data.filterProp\n });\n\n if ( filter ) {\n Arr.append(props.class, ['n-filtered']);\n }\n\n props.style = {\n 'z-index': scope.childs.length - index\n };\n\n if ( column.data.fixedWidth ) {\n props.disabled = true;\n }\n\n props = {\n ...props, ...scope.getStyle(column),\n };\n\n if ( !Mix.isEmpty(data.fixedWidth) ) {\n props.modelValue = scope.getWidth(column.uid);\n }\n\n props['onUpdate:width'] = (width : number) => {\n data.looseWidth[column.uid] = width;\n };\n\n props['onUpdate:modelValue'] = (width : number) => {\n data.fixedWidth[column.uid] = width;\n };\n\n props.onClick = () => {\n if ( column.data.sort ) {\n scope.applySortColumn(column);\n }\n };\n\n return this.comp('n-resizer', props, () => [\n this.sort(column),\n this.label(column),\n this.filter(column),\n ]);\n }\n\n sort(column : any) : any\n {\n if ( !column.data.sort ) {\n return null;\n }\n\n const props = {\n class: [`${this.bem}-column__sort`],\n };\n\n return h('div', props, [\n h('i')\n ]);\n }\n\n label(column : any) : any\n {\n const props = {\n class: [`${this.bem}-column__label`],\n };\n\n return h('div', props, [\n column.data.label\n ]);\n }\n\n filter(column : any) : any\n {\n if ( !column.data.filter ) {\n return null;\n }\n\n const angleProps : any = {\n class: [`${this.bem}-column__filter`],\n };\n\n angleProps.onClick = (e) => {\n e.stopPropagation();\n };\n\n const angle = h('div', angleProps, [\n h('i', { class: 'fa fa-angle-down' }),\n ]);\n\n return [angle, this.popover(column)];\n }\n\n popover(column : any) : any\n {\n const { scope, data } = this.scope;\n\n const model = Obj.get(...[\n data.filterMap, column.uid\n ]);\n\n let resetProps : any = {\n type: 'neutral',\n size: 'xs',\n glass: true,\n };\n\n const filter = Arr.find(data.filter, {\n property: column.data.filterProp\n });\n\n if ( !filter ) {\n resetProps.disabled = true;\n }\n\n resetProps.onClick = () => {\n scope.resetColumnFilter(column);\n };\n\n const reset = this.comp('n-button', resetProps, () => [\n Locale.trans('Reset')\n ]);\n\n let applyProps : any = {\n size: 'xs',\n glass: true,\n };\n\n applyProps.onClick = () => {\n scope.applyColumnFilter();\n };\n\n const apply = this.comp('n-button', applyProps, () => [\n Locale.trans('Apply')\n ]);\n\n const props = {\n toggle: true,\n width: 220,\n };\n\n const component = this.resolve(...[\n column.data.type, 'NTableFilters'\n ]);\n\n const compProps = {\n column, model, comp: this.comp,\n };\n\n let slots = {\n default: () => h(component, compProps),\n footer: () => [reset, apply]\n };\n\n return this.comp('n-popover', props, slots);\n }\n\n body() : any\n {\n let { scope, data } = this.scope;\n\n let props = {\n ref: scope.ref('draglist'),\n items: data.items,\n overflowX: false,\n scrollPortal: true,\n };\n\n const passed = [\n 'itemHeight',\n 'itemOffset',\n 'renderHandle',\n 'renderExpand',\n 'renderSelect',\n ];\n\n Arr.each(passed, (key : any) => {\n props[key] = scope.props[key];\n });\n\n props['onUpdate:items'] = (value : any) => {\n scope.emit('update:items', value);\n };\n\n props['onUpdate:current'] = (value : any) => {\n scope.emit('update:current', value);\n };\n\n props['onUpdate:selected'] = (value : any) => {\n scope.emit('update:selected', value);\n };\n\n props['onUpdate:expanded'] = (value : any) => {\n scope.emit('update:expanded', value);\n };\n\n return this.comp('n-draglist', props, (node : any) => {\n return this.rows(node)\n });\n }\n\n rows(node : any) : any\n {\n const { scope, data } = this.scope;\n\n const columns = Arr.filter(scope.childs, (column : any) => {\n return Arr.has(data.visible, column.uid);\n });\n\n return Arr.each(columns, (column : any, index : number) => {\n return this.cell(node, column, index);\n });\n }\n\n cell(node : any, column : any, index : number) : any\n {\n const [{ scope }, { data }] = [\n this.scope, column.unpack()\n ];\n\n if ( !scope.data.looseWidth[column.uid] ) {\n return null;\n }\n\n let classList = [\n `${this.bem}-cell`,\n `${this.bem}-cell--${data.type}`,\n `${this.bem}-cell--${data.align}`,\n ];\n\n let props : any = {\n class: classList\n };\n\n let width = this.scope.getWidth(column.uid);\n\n if ( index === 0 ) {\n width -= node.value.depth * scope.data.itemOffset;\n }\n\n props.style = {\n width: width + 'px'\n };\n\n const input = Obj.get(...[\n node.item, data.prop\n ]);\n\n const cell = {\n props: props,\n input: input,\n node: node,\n column: column,\n table: scope,\n comp: this.comp,\n };\n\n return this.resolve(data.type)({\n bem: `${this.bem}-cell`, ...cell\n });\n }\n\n}\n\nexport default NTableView;","import { ProtoExtend, ProtoData, DragData } from \"../../../root/index.ts\";\nimport NTableController from \"./NTableController.ts\";\n\n\nexport class NTableData extends ProtoExtend([ProtoData, DragData])\n{\n /**\n * @type {NTableController}\n */\n // @ts-ignore\n declare scope : NTableController;\n\n get classList() : string[]\n {\n let classList = [];\n\n return this.classRoot(classList);\n }\n\n get visible() : string[]\n {\n return this.scope.get('visible');\n }\n\n set visible(value : string[])\n {\n this.scope.set('visible', value);\n }\n\n get filter() : any[]\n {\n return this.scope.get('filter');\n }\n\n set filter(value : any[])\n {\n this.scope.set('filter', value);\n }\n\n get filterMap() : any[]\n {\n return this.scope.get('filterMap');\n }\n\n set filterMap(value : any[])\n {\n this.scope.set('filterMap', value);\n }\n\n get looseWidth() : any\n {\n return this.scope.get('looseWidth');\n }\n\n set looseWidth(value : any)\n {\n this.scope.set('looseWidth', value);\n }\n\n get fixedWidth() : any\n {\n return this.scope.get('fixedWidth');\n }\n\n set fixedWidth(value : any)\n {\n this.scope.set('fixedWidth', value);\n }\n\n get sortProp() : string\n {\n return this.scope.get('sortProp');\n }\n\n set sortProp(value : string)\n {\n this.scope.set('sortProp', value);\n }\n\n get sortDir() : string\n {\n return this.scope.get('sortDir');\n }\n\n set sortDir(value : string)\n {\n this.scope.set('sortDir', value);\n }\n\n}\n\nexport interface NTableData extends ProtoData, DragData {}\n\nexport default NTableData;","import { onMounted, provide, SetupContext } from \"vue\";\nimport { Arr, Mix } from \"@kizmann/pico-js\";\nimport { GroupController } from \"../../../root/index.ts\";\nimport { NTableView } from \"./NTableView.ts\";\nimport { NTableData } from \"./NTableData.ts\";\n\nexport class NTableController extends GroupController\n{\n /**\n * @type {NTableController}\n */\n declare scope : NTableController;\n\n /**\n * @type {NTableData}\n */\n declare data : NTableData;\n\n /**\n * @type {NTableView}\n */\n declare view : NTableView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NTableView(this),\n // @ts-ignore\n new NTableData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this\n .cloneProp('visible')\n .cloneProp('filter')\n .cloneProp('sortProp')\n .cloneProp('sortDir');\n\n this\n .makeRef('el')\n .makeRef('draglist');\n\n this.makeData('looseWidth', {});\n this.makeData('fixedWidth', {});\n\n this.makeData('filterMap', ...[\n this.buildFilters()\n ]);\n\n this.watchProp('filter', () => {\n this.set('filterMap', this.buildFilters());\n });\n\n this.watchChilds(() => {\n this.set('filterMap', this.buildFilters());\n });\n\n provide('NTable', this.instance);\n\n onMounted(() => {\n this.onMounted()\n });\n\n return this;\n }\n\n onMounted()\n {\n if ( this.data.visible == null ) {\n this.buildVisible();\n }\n }\n\n buildVisible()\n {\n const width = this.dom('el').width();\n\n const columns = Arr.filter(this.childs, (column : any) => {\n return column.getVisibility(width);\n });\n\n const visible = Arr.each(columns, (column : any) => {\n return column.uid;\n });\n\n this.update('visible', visible);\n }\n\n buildFilters()\n {\n let filters = {};\n\n Arr.each(this.childs, (child : any) => {\n filters[child.uid] = this.buildFilter(child);\n });\n\n return filters;\n }\n\n buildFilter(column : any, merge : boolean = true)\n {\n const { data } = column;\n\n let value = {\n value: null, type: data.type, property: data.filterProp,\n };\n\n const active = Arr.find({\n // @ts-ignore\n property: value.property\n });\n\n if ( merge && active ) {\n value = Object.assign(value, active);\n }\n\n return value;\n }\n\n getWidth(uid : string)\n {\n if ( this.data.fixedWidth[uid] != null ) {\n return this.data.fixedWidth[uid];\n }\n\n return this.data.looseWidth[uid];\n }\n\n getStyle(column : any)\n {\n const { data } = column.unpack();\n\n let style : any = {\n flex: '1 1 auto'\n };\n\n if ( Mix.isStr(data.width) ) {\n style.flex = `1 1 ${data.width}`;\n }\n\n if ( Mix.isNum(data.width) ) {\n style.flex = `1 1 ${data.width}px`;\n }\n\n if ( data.fixedWidth ) {\n style.flex = `0 0 ${data.fixedWidth}px`;\n }\n\n if ( !data.fixedWidth && data.minWidth ) {\n style.minWidth = data.minWidth;\n }\n\n if ( !data.fixedWidth && data.maxWidth ) {\n style.maxWidth = data.maxWidth;\n }\n\n return style;\n }\n\n toggleSelect()\n {\n return this.ncx('draglist').selectAll();\n }\n\n getTotalSelect()\n {\n return this.ncx('draglist').selectState();\n }\n\n applyColumnFilter()\n {\n const { data } = this;\n\n const filters = Arr.filter(data.filterMap, (filter : any) => {\n return !Mix.isEmpty(filter.value);\n });\n\n this.update('filter', filters);\n }\n\n resetColumnFilter(column : any)\n {\n const { data } = this;\n\n data.filterMap[column.uid] = this.buildFilter(...[\n column, false\n ]);\n\n this.applyColumnFilter();\n }\n\n applySortColumn(column : any)\n {\n const { data } = this;\n\n const value = {\n prop: data.sortProp, dir: data.sortDir,\n };\n\n const changed = !Arr.has(...[\n [column.data.sortProp], value.prop\n ]);\n\n let result = {\n prop: column.data.sortProp, dir: 'asc',\n }\n\n if ( !changed && value.dir === 'asc' ) {\n result.dir = 'desc';\n }\n\n if ( !changed && value.dir === 'desc' ) {\n result.dir = 'asc';\n }\n\n if ( result.dir !== value.dir ) {\n this.update('sortDir', result.dir);\n }\n\n if ( result.prop !== value.prop ) {\n this.update('sortProp', result.prop);\n }\n\n this.emit('sort', ...Mix.vals(result));\n }\n\n}\n\nexport default NTableController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NTableController } from \"./NTableController.ts\";\n\nexport const NTableProps = {\n\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n ...Props.Draglist,\n\n /**\n * @type {PropType<array>}\n */\n filter: {\n type: [Array], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n sortProp: {\n type: [String], default: 'id'\n },\n\n /**\n * @type {PropType<string>}\n */\n sortDir: {\n type: [String], default: 'desc'\n },\n\n /**\n * @type {PropType<array>}\n */\n visible: {\n type: [Array], default: null\n },\n\n /**\n * @type {PropType<number>}\n */\n itemHeight: {\n type: [Number], default: 32\n },\n\n /**\n * @type {PropType<number>}\n */\n itemOffset: {\n type: [Number], default: 30\n },\n\n};\n\nexport default defineComponent({\n\n name: 'NTable',\n\n props: NTableProps,\n\n emits: [\n 'update:items',\n 'update:visible',\n 'update:current',\n 'update:selected',\n 'update:expanded',\n 'update:filter',\n 'update:sortProp',\n 'update:sortDir',\n 'filter',\n 'sort',\n 'row-click',\n 'row-dblclick',\n ],\n\n setup(props, context)\n {\n let ncx = new NTableController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { ProtoView } from \"../../../root/index.ts\";\nimport { NTableColumnController } from \"./NTableColumnController.ts\";\n\nexport class NTableColumnView extends ProtoView\n{\n /**\n * @type {NTableColumnController}\n */\n declare scope : NTableColumnController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-table-column';\n\n default()\n {\n return null;\n }\n\n}\n\nexport default NTableColumnView;","import { ProtoExtend, ProtoData, OptionData, TextData } from \"../../../root/index.ts\";\nimport NTableColumnController from \"./NTableColumnController.ts\";\n\nexport class NTableColumnData extends ProtoExtend([ProtoData, OptionData, TextData])\n{\n /**\n * @type {NTableColumnController}\n */\n declare scope : NTableColumnController;\n\n get classList():string[]\n {\n return this.classRoot();\n }\n\n get model():any\n {\n return this.scope.get('modelValue');\n }\n\n set model(value:any)\n {\n this.scope.set('modelValue', value);\n }\n\n get data():any\n {\n return this.scope.get('data');\n }\n\n get disabled():any\n {\n return this.scope.get('disabled');\n }\n\n get type():string\n {\n return this.scope.get('type');\n }\n\n get label():string\n {\n return this.scope.get('label');\n }\n\n get prop():string\n {\n return this.scope.get('prop');\n }\n\n get sort():boolean\n {\n return this.scope.get('sort');\n }\n\n get sortProp():string\n {\n return this.scope.get('sortProp', this.prop);\n }\n\n get filter():boolean\n {\n return this.scope.get('filter');\n }\n\n get filterProp():string\n {\n return this.scope.get('filterProp', this.prop);\n }\n\n get visible():boolean\n {\n return this.scope.get('visible');\n }\n\n get breakpoint():number\n {\n return this.scope.get('breakpoint');\n }\n\n get width():number|string\n {\n return this.scope.get('width');\n }\n\n get fixedWidth():number\n {\n return this.scope.get('fixedWidth');\n }\n\n get minWidth():number\n {\n return this.scope.get('minWidth');\n }\n\n get maxWidth():number\n {\n return this.scope.get('maxWidth');\n }\n\n get align():string\n {\n return this.scope.get('align');\n }\n\n get optionsMap():any\n {\n return this.scope.get('optionsMap');\n }\n\n get datetimeFormat()\n {\n return this.scope.get('datetimeFormat');\n }\n\n}\n\nexport interface NTableColumnData extends ProtoData, OptionData, TextData {}\n\nexport default NTableColumnData;","import { onMounted, SetupContext } from \"vue\";\nimport { Arr, Mix, Num, Obj } from \"@kizmann/pico-js\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NTableColumnView } from \"./NTableColumnView.ts\";\nimport { NTableColumnData } from \"./NTableColumnData.ts\";\n\nexport class NTableColumnController extends ProtoController\n{\n /**\n * @type {NTableColumnController}\n */\n declare scope : NTableColumnController;\n\n /**\n * @type {NTableColumnData}\n */\n declare data : NTableColumnData;\n\n /**\n * @type {NTableColumnView}\n */\n declare view : NTableColumnView;\n\n /**\n * @type {any}\n */\n plugin : any;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NTableColumnView(this),\n // @ts-ignore\n new NTableColumnData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n\n this.injectRef(['table', 'NTable']);\n\n this.makeLinkData('optionsMap', 'options', () => {\n return this.createOptionsMap();\n });\n\n const plugin = Obj.get(...[\n globalThis.NTablePlugins, this.data.type\n ]);\n\n if ( !Mix.isEmpty(plugin) ) {\n this.plugin = new plugin(this.ncx('table'), this);\n }\n\n return this;\n }\n\n onMounted()\n {\n this.ncx('table').append(this);\n }\n\n onUnmounted()\n {\n this.ncx('table').remove(this);\n }\n\n createOptionsMap()\n {\n let options = this.data.options;\n\n if ( Mix.isFunc(options) ) {\n options = options(this);\n }\n\n const result = Arr.each(options, (value : any, index : any) => {\n return { $value: value, $index: index };\n });\n\n return Object.freeze(result);\n }\n\n getOptions()\n {\n const { data } = this;\n\n const result = Arr.each(data.optionsMap, (item : any) => {\n return {\n label: Obj.get(item, data.optionsLabel),\n value: Obj.get(item, data.optionsValue),\n };\n });\n\n return Object.freeze(result);\n }\n\n getOption(value : any)\n {\n const { data } = this;\n\n let option = Arr.find(data.optionsMap, (item : any) => {\n return Obj.get(item, data.optionsValue) == value;\n });\n\n return Obj.get(option, data.optionsLabel);\n }\n\n getVisibility(width : number = 9999)\n {\n const { data } = this;\n\n if ( !data.visible ) {\n return false;\n }\n\n if ( !data.breakpoint ) {\n return true;\n }\n\n return Mix.num(data.breakpoint) > width;\n }\n\n}\n\nexport default NTableColumnController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NTableColumnController } from \"./NTableColumnController.ts\";\n\nexport const NTableColumnProps = {\n\n ...Props.TrueText,\n ...Props.FalseText,\n ...Props.EmptyText,\n ...Props.UndefinedText,\n ...Props.OptionsObject,\n\n /**\n * @type {PropType<any>}\n */\n uid: {\n default: null\n },\n\n /**\n * @type {PropType<any>}\n */\n modelValue: {\n default: null\n },\n\n /**\n * @type {PropType<object>}\n */\n data: {\n type: [Object], default: null\n },\n\n /**\n * @type {PropType<object>}\n */\n plugin: {\n type: [Object], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n type: {\n type: [String], default: 'string'\n },\n\n /**\n * @type {PropType<string>}\n */\n label: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n prop: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n sort: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<string>}\n */\n sortProp: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n filter: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<string>}\n */\n filterProp: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<boolean|function>}\n */\n disabled: {\n type: [Boolean, Function], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n visible: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<string|number>}\n */\n breakpoint: {\n type: [String,Number], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n align: {\n type: [String], default: 'left'\n },\n\n /**\n * @type {PropType<string|number>}\n */\n width: {\n type: [String,Number], default: null\n },\n\n /**\n * @type {PropType<number>}\n */\n fixedWidth: {\n type: [Number], default: null\n },\n\n /**\n * @type {PropType<number>}\n */\n minWidth: {\n type: [Number], default: 60\n },\n\n /**\n * @type {PropType<number>}\n */\n maxWidth: {\n type: [Number], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n datetimeFormat: {\n type: [String], default: 'LTSD'\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NTableColumn',\n\n /**\n * @type {typeof NTableColumnProps}\n */\n props: NTableColumnProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NTableColumnController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Locale, Mix, Str } from \"@kizmann/pico-js\";\nimport { ProtoView, Styler } from \"../../../root/index.ts\";\nimport { NPaginatorController } from \"./NPaginatorController.ts\";\n\nexport class NPaginatorView extends ProtoView\n{\n /**\n * @type {NPaginatorController}\n */\n declare scope : NPaginatorController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-paginator';\n\n resolve(key : string) : any\n {\n const func = Str.sc(`slot_${key}`);\n\n if ( this[func] ) {\n return this[func]();\n }\n\n return this.slot_custom(key);\n }\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n class: data.classList,\n disabled: data.disabled,\n };\n\n const slots = Arr.each(data.layout, (key : string) => {\n return this.resolve(key);\n });\n\n return h('div', props, slots);\n }\n\n slot_spacer() : any\n {\n return this.div('spacer', null);\n }\n\n slot_custom(key : string) : any\n {\n const { context } = this.scope;\n\n if ( !context.slots[key] ) {\n return null;\n }\n\n return this.div('pages', [\n this.slot(key)\n ]);\n }\n\n slot_limit() : any\n {\n const { scope, data } = this.scope;\n\n const fn = (value : number) => {\n return Locale.choice(data.limitText, value);\n };\n\n const options = Arr.each(data.limitOptions, (value : number) => {\n return { value, label: fn(value) };\n });\n\n let props : any = {\n modelValue: data.limit,\n options: options,\n optionsValue: '$value.value',\n optionsLabel: '$value.label',\n };\n\n props['onUpdate:modelValue'] = (value : number) => {\n scope.update('limit', value);\n };\n\n return this.div('limit', [\n this.comp('n-select', props)\n ]);\n }\n\n slot_count() : any\n {\n const { data } = this.scope;\n\n return this.div('count', [\n Locale.choice(data.countText, data.total)\n ]);\n }\n\n slot_goto() : any\n {\n const { scope, data } = this.scope;\n\n let props : any = {\n modelValue: data.page,\n options: data.pageOptions,\n undefinedText: '?',\n emptyText: null,\n optionsValue: '$value',\n optionsLabel: '$value',\n };\n\n props['onUpdate:modelValue'] = (value : number) => {\n scope.update('page', value);\n };\n\n return this.div('goto', [\n this.comp('n-select', props),\n ]);\n }\n\n slot_pages() : any\n {\n const { data } = this.scope;\n\n const [page, pages]: [number, number] = [\n data.page || 1, Math.abs(data.maxPages / 2)\n ];\n\n let [min, max]: [number, number] = [\n Math.floor(page - pages), Math.ceil(page + pages)\n ];\n\n if ( min < 1 ) {\n (max -= min, min = 0);\n }\n\n const len = data.pageOptions.length + 1;\n\n if ( max > len ) {\n (min -= (max - len), max = len);\n }\n\n if ( max - min > 0 ) {\n max -= 1;\n }\n\n let items = Arr.slice(data.pageOptions, ...[\n min, max\n ]);\n\n let slots = Arr.each(items, (value : number) => {\n return this.page(value);\n });\n\n Arr.prepend(slots, ...[\n this.page(1, 'prev-first'),\n this.page(data.page - 1, 'prev'),\n ]);\n\n Arr.append(slots, ...[\n this.page(data.page + 1, 'next'),\n this.page(len - 1, 'next-last'),\n ]);\n\n return this.div('pages', slots);\n }\n\n page(index: number, icon : string = null) : any\n {\n const { scope, data } = this.scope;\n\n let props : any = {\n ...(data.buttonProps || {})\n };\n\n if ( ! Mix.isEmpty(icon) ) {\n props.square = true;\n }\n\n if ( index === data.page ) {\n props.disabled = true;\n }\n\n props['onPointerdown'] = () => {\n scope.update('page', index);\n }\n\n if ( index < 1 ) {\n props.disabled = true;\n }\n\n const len = data.pageOptions.length;\n\n if ( index > len ) {\n props.disabled = true;\n }\n\n if ( icon ) {\n props.icon = Styler.icon(icon);\n }\n\n return this.comp('n-button', props, ...[\n () => icon ? null : index\n ]);\n }\n\n}\n\nexport default NPaginatorView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NPaginatorController from \"./NPaginatorController.ts\";\n\nexport class NPaginatorData extends ProtoData\n{\n /**\n * @type {NPaginatorController}\n */\n declare scope : NPaginatorController;\n\n get classList() : string[]\n {\n return this.classRoot([]);\n }\n\n get page() : number\n {\n return this.scope.get('page');\n }\n\n get pageOptions() : number[]\n {\n return this.scope.get('pageOptions');\n }\n\n get limit() : number\n {\n return this.scope.get('limit');\n }\n\n get limitOptions() : number[]\n {\n return this.scope.get('limitOptions');\n }\n\n get total() : number\n {\n return this.scope.get('total');\n }\n\n get maxPages() : number\n {\n return this.scope.get('maxPages');\n }\n\n get layout() : string[]\n {\n return this.scope.get('layout');\n }\n\n get limitText() : string\n {\n return this.scope.get('limitText');\n }\n\n get countText() : string\n {\n return this.scope.get('countText');\n }\n\n get buttonProps() : any\n {\n return this.scope.get('buttonProps');\n }\n\n}\n\nexport default NPaginatorData;","import { SetupContext } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NPaginatorView } from \"./NPaginatorView.ts\";\nimport { NPaginatorData } from \"./NPaginatorData.ts\";\nimport { Arr, Num } from \"@kizmann/pico-js\";\n\n\nexport class NPaginatorController extends ProtoController\n{\n /**\n * @type {NPaginatorController}\n */\n declare scope : NPaginatorController;\n\n /**\n * @type {NPaginatorData}\n */\n declare data : NPaginatorData;\n\n /**\n * @type {NPaginatorView}\n */\n declare view : NPaginatorView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NPaginatorView(this),\n new NPaginatorData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this\n .cloneProp('page')\n .cloneProp('limit');\n\n this.makeData('pageOptions', []);\n\n this.watchData('page', () => {\n this.updatePageOptions();\n });\n\n this.watchData('limit', () => {\n this.updatePageOptions();\n });\n\n this.updatePageOptions();\n\n return this;\n }\n\n updatePageOptions()\n {\n const { data } = this;\n\n const pages = Num.ceil(...[\n data.total / data.limit\n ]);\n\n const options = Arr.make(pages || 1, (i : number) => {\n return i + 1;\n });\n\n this.set('pageOptions', options);\n }\n\n}\n\nexport default NPaginatorController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NPaginatorController } from \"./NPaginatorController.ts\";\n\nexport const NPaginatorLimits = [\n 25, 50, 100, 500, 1000, 2500\n];\n\nexport const NPaginatorLayout = [\n 'limit', 'count', 'spacer', 'goto', 'pages'\n];\n\nexport const NPaginatorProps = {\n\n ...Props.Size,\n ...Props.Type,\n\n /**\n * @type {PropType<number>}\n */\n page: {\n type: [Number], default: 1\n },\n\n /**\n * @type {PropType<number>}\n */\n limit: {\n type: [Number], default: 100\n },\n\n /**\n * @type {PropType<array>}\n */\n limitOptions: {\n type: [Array], default: () => NPaginatorLimits\n },\n\n /**\n * @type {PropType<number>}\n */\n total: {\n type: [Number], default: 0\n },\n\n /**\n * @type {PropType<number>}\n */\n maxPages: {\n type: [Number], default: 5\n },\n\n /**\n * @type {PropType<array>}\n */\n layout: {\n type: [Array], default: () => NPaginatorLayout\n },\n\n /**\n * @type {PropType<array>}\n */\n limitText: {\n type: [String], default: ':count item|:count items'\n },\n\n /**\n * @type {PropType<array>}\n */\n countText: {\n type: [String], default: 'No items|Total :count item|Total :count items'\n },\n\n /**\n * @type {PropType<object>}\n */\n buttonProps: {\n type: [Object], default: null\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NPaginator',\n\n /**\n * @type {typeof NPaginatorProps}\n */\n props: NPaginatorProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'paginate',\n 'update:page',\n 'update:limit',\n ],\n\n setup(props, context)\n {\n let ncx = new NPaginatorController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Str } from \"@kizmann/pico-js\";\n\nexport const NTableCellString = ({ props, input }) => {\n\n const value = Str.string(input);\n\n props = {\n ...props, innerHTML: `<span>${value}</span>`\n };\n\n return h('div', props);\n};\n\nexport default NTableCellString;","import { h } from \"vue\";\nimport { Str } from \"@kizmann/pico-js\";\n\nexport const NTableCellBoolean = ({ props, input, column }) => {\n\n const args = [\n column.data.trueText, column.data.falseText\n ];\n\n const value = Str.boolean(input, ...args);\n\n props = {\n ...props, innerHTML: `<span>${value}</span>`\n };\n\n return h('div', props);\n};\n\nexport default NTableCellBoolean;","import { h } from \"vue\";\nimport { Now } from \"@kizmann/pico-js\";\n\nexport const NTableCellDatetime = ({ props, input, column }) => {\n\n const { data } = column.unpack()\n\n const value = Now.make(input).format(...[\n data.datetimeFormat\n ]);\n\n props = {\n ...props, innerHTML: `<span>${value}</span>`\n };\n\n return h('div', props);\n};\n\nexport default NTableCellDatetime;","import { h } from \"vue\";\n\nexport const NTableCellOption = ({ props, input, column }) => {\n\n let value = column.getOption(input)\n\n if ( value === input ) {\n value = column.data.undefinedText;\n }\n\n props = {\n ...props, innerHTML: `<span>${value}</span>`\n };\n\n return h('div', props);\n};\n\nexport default NTableCellOption;","import { h } from \"vue\";\nimport { Arr, Str } from \"@kizmann/pico-js\";\n\nexport const NTableCellSelect = ({ props, bem, column, node }) => {\n\n props.class = [\n ...props.class, `${bem}--checkbox`\n ];\n\n if ( column.plugin.equal(node.item) ) {\n Arr.append(props.class, 'n-checked');\n }\n\n if ( column.plugin.disabled(node.item) ) {\n Arr.append(props.class, 'n-disabled');\n }\n\n if ( column.plugin.uncheck(node.item) ) {\n Arr.remove(props.class, 'n-disabled');\n }\n\n props = {\n ...props, innerHTML: `<i class=\"fa fa-check\"></i>`\n };\n\n props.onClick = () => {\n column.plugin.toggle(node.item);\n };\n\n return h('div', props);\n};\n\nexport default NTableCellSelect;","import { h } from \"vue\";\nimport { Arr } from \"@kizmann/pico-js\";\n\nexport const NTableCellMatrix = ({ props, bem, column, node }) => {\n\n props.class = [\n ...props.class, `${bem}--checkbox`\n ];\n\n if ( column.plugin.equal(node.item) ) {\n Arr.append(props.class, 'n-checked');\n }\n\n if ( column.plugin.disabled(node.item) ) {\n Arr.append(props.class, 'n-disabled');\n }\n\n if ( column.plugin.uncheck(node.item) ) {\n Arr.remove(props.class, 'n-disabled');\n }\n\n props = {\n ...props, innerHTML: `<i class=\"fa fa-check\"></i>`\n };\n\n props.onClick = () => {\n column.plugin.toggle(node.item);\n };\n\n return h('div', props);\n};\n\nexport default NTableCellMatrix;","import { h } from \"vue\";\nimport { Obj, Run, Str } from \"@kizmann/pico-js\";\n\nexport const NTableCellImage = ({ node, table, column, props, input, comp }) => {\n\n const data = column.get('data')\n\n props = {\n ...props,\n };\n\n let image : any = {\n file: input,\n group: column.uid,\n };\n\n if ( Obj.has(node, 'value.total') ) {\n image.index = node.value.total;\n }\n\n if ( Obj.has(data, 'thumbProp') ) {\n image.thumb = Obj.get(node.item, data.thumbProp);\n }\n\n image.onFocus = () => {\n table?.ncx('draglist').setTotalCurrent(image.index);\n };\n\n return h('div', props, [\n comp('n-preview', image)\n ]);\n};\n\nexport default NTableCellImage;","import { h } from \"vue\";\nimport { Locale, Mix, Obj } from \"@kizmann/pico-js\";\n\nexport const NTableFilterString = ({ model, comp, table }) => {\n\n if ( !Mix.isStr(model.value) ) {\n Obj.set(model, 'value', '');\n }\n\n if ( !model.operator ) {\n Obj.set(model, 'operator', 'li');\n }\n\n const valueProps : any = {\n modelValue: model.value,\n };\n\n valueProps.onEnter = () => {\n table.applyColumnFilter();\n };\n\n valueProps['onUpdate:modelValue'] = (value : any) => {\n Obj.set(model, 'value', value);\n };\n\n const value = comp('n-form-item', valueProps, () => [\n comp('n-input', valueProps)\n ])\n\n const operatorProps : any = {\n modelValue: model.operator,\n };\n\n operatorProps['onUpdate:modelValue'] = (value : any) => {\n Obj.set(model, 'operator', value);\n };\n\n operatorProps.options = {\n 'li': Locale.trans('Includes value'),\n 'nl': Locale.trans('Excludes value'),\n 'eq': Locale.trans('Equal value'),\n 'new': Locale.trans('Except value'),\n };\n\n const operator = comp('n-form-item', null, () => [\n comp('n-select', operatorProps)\n ]);\n\n return h('div', null, [\n value, operator\n ]);\n};\n\nexport default NTableFilterString;","import { h } from \"vue\";\nimport { Arr, Locale, Mix, Obj } from \"@kizmann/pico-js\";\n\nexport const NTableFilterOption = ({ model, comp, column, table }) => {\n\n if ( !Mix.isArr(model.value) ) {\n Obj.set(model, 'value', []);\n }\n\n if ( !model.operator ) {\n Obj.set(model, 'operator', 'in');\n }\n\n const valueProps = {\n modelValue: model.value,\n align: 'vertical',\n };\n\n valueProps['onUpdate:modelValue'] = (value : any) => {\n Obj.set(model, 'value', value);\n };\n\n const values = Arr.each(column.getOptions(), ({ label, value }) => {\n return comp('n-checkbox', { value }, () => label);\n });\n\n const value = comp('n-form-item', valueProps, [\n comp('n-checkbox-group', valueProps, () => values),\n ]);\n\n const operatorProps : any = {\n modelValue: model.operator,\n };\n\n operatorProps['onUpdate:modelValue'] = (value : any) => {\n Obj.set(model, 'operator', value);\n };\n\n operatorProps.options = {\n 'in': Locale.trans('Includes value'),\n 'ni': Locale.trans('Excludes value'),\n };\n\n const operator = comp('n-form-item', operatorProps, [\n comp('n-select', operatorProps)\n ]);\n\n return h('div', null, [\n value, operator\n ]);\n};\n\nexport default NTableFilterOption;","import { h } from \"vue\";\nimport { Locale, Mix, Obj } from \"@kizmann/pico-js\";\n\nexport const NTableFilterDatetime = ({ model, comp, table }) => {\n\n if ( !Mix.isStr(model.value) ) {\n Obj.set(model, 'value', '');\n }\n\n if ( !model.operator ) {\n Obj.set(model, 'operator', 'eq');\n }\n\n const valueProps : any = {\n modelValue: model.value,\n };\n\n valueProps.onEnter = () => {\n table.applyColumnFilter();\n };\n\n valueProps['onUpdate:modelValue'] = (value : any) => {\n Obj.set(model, 'value', value);\n };\n\n const value = comp('n-form-item', valueProps, () => [\n comp('n-datepicker', valueProps)\n ]);\n\n const operatorProps : any = {\n modelValue: model.operator,\n };\n\n operatorProps['onUpdate:modelValue'] = (value : any) => {\n Obj.set(model, 'operator', value);\n };\n\n operatorProps.options = {\n 'eq': Locale.trans('Exact date'),\n 'lt': Locale.trans('Before date'),\n 'gt': Locale.trans('After date'),\n };\n\n const operator = comp('n-form-item', null, () => [\n comp('n-select', operatorProps)\n ]);\n\n return h('div', null, [\n value, operator\n ]);\n};\n\nexport default NTableFilterDatetime;","import { App } from \"vue\";\nimport NTable from \"./js/table/NTable.ts\";\nimport NTableColumn from \"./js/table-column/NTableColumn.ts\";\nimport NPaginator from \"./js/paginator/NPaginator.ts\";\n\nexport default function (App : App) {\n App.component(NTable.name, NTable);\n App.component(NTableColumn.name, NTableColumn);\n App.component(NPaginator.name, NPaginator);\n}\n\nimport NTableCellString from \"./js/table-cell/NTableCellString.ts\";\nimport NTableCellBoolean from \"./js/table-cell/NTableCellBoolean.ts\";\nimport NTableCellDatetime from \"./js/table-cell/NTableCellDatetime.ts\";\nimport NTableCellOption from \"./js/table-cell/NTableCellOption.ts\";\nimport NTableCellSelect from \"./js/table-cell/NTableCellSelect.ts\";\nimport NTableCellMatrix from \"./js/table-cell/NTableCellMatrix.ts\";\nimport NTableCellImage from \"./js/table-cell/NTableCellImage.ts\";\n\nglobalThis.NTableCells = {\n 'string': NTableCellString,\n 'boolean': NTableCellBoolean,\n 'datetime': NTableCellDatetime,\n 'image': NTableCellImage,\n 'option': NTableCellOption,\n 'select': NTableCellSelect,\n 'matrix': NTableCellMatrix,\n};\n\nimport NTableFilterString from \"./js/table-filter/NTableFilterString.ts\";\nimport NTableFilterOption from \"./js/table-filter/NTableFilterOption.ts\";\nimport NTableFilterDatetime from \"./js/table-filter/NTableFilterDatetime.ts\";\n\nglobalThis.NTableFilters = {\n 'string': NTableFilterString,\n 'option': NTableFilterOption,\n 'datetime': NTableFilterDatetime,\n};\n\nimport NTableMatrixPlugin from \"./js/plugin/NTableMatrixPlugin.ts\";\nimport NTableSelectPlugin from \"./js/plugin/NTableSelectPlugin.ts\";\n\nglobalThis.NTablePlugins = {\n 'select': NTableSelectPlugin,\n 'matrix': NTableMatrixPlugin,\n};","import { Mix, Obj, Run } from \"@kizmann/pico-js\";\nimport NTableController from \"../table/NTableController.ts\";\nimport NTableColumnController from \"../table-column/NTableColumnController.ts\";\n\nexport default class NTableSelectPlugin\n{\n /**\n * @type {NTableController}\n */\n table : NTableController;\n\n /**\n * @type {NTableColumnController}\n */\n column : NTableColumnController;\n\n /**\n * @type {object}\n */\n config : any = {\n allowUncheck: true,\n };\n\n constructor(table : NTableController, column : NTableColumnController)\n {\n [this.table, this.column] = [\n table, column\n ];\n\n this.config = {\n ...this.config, ...(column.data.data ?? {})\n };\n }\n\n equal(item : any)\n {\n const { column, table } = this;\n\n if ( Mix.isEmpty(column.data.model) ) {\n return false;\n }\n\n const [suid, muid] = [\n Obj.get(item, table.data.uniqueProp),\n Obj.get(column.data.model, table.data.uniqueProp),\n ];\n\n return suid === muid;\n }\n\n disabled(item : any)\n {\n const { column } = this;\n\n if ( !Mix.isEmpty(column.data.model) ) {\n return true;\n }\n\n let disabled = column.data.disabled;\n\n if ( typeof disabled !== 'function' ) {\n disabled = (v : any) => false;\n }\n\n return disabled(item);\n }\n\n uncheck(item : any)\n {\n if ( this.equal(item) ) {\n return this.config.allowUncheck;\n }\n\n return false;\n }\n\n toggle(item : any)\n {\n const { column, table } = this;\n\n if ( this.equal(item) ) {\n item = null;\n }\n\n Run.frame(() => {\n table.instance.proxy.$forceUpdate();\n });\n\n column.emit('update:modelValue', item);\n }\n\n}","import { Arr, Mix, Num, Obj, Run } from \"@kizmann/pico-js\";\nimport NTableController from \"../table/NTableController.ts\";\nimport NTableColumnController from \"../table-column/NTableColumnController.ts\";\n\nexport default class NTableMatrixPlugin\n{\n /**\n * @type {NTableController}\n */\n table : NTableController;\n\n /**\n * @type {NTableColumnController}\n */\n column : NTableColumnController;\n\n /**\n * @type {any}\n */\n matrix : any;\n\n /**\n * @type {any}\n */\n config : any = {\n allowUncheck: true, matrix: 0, prop: 'matrix',\n };\n\n constructor(table : NTableController, column : NTableColumnController)\n {\n [this.table, this.column] = [\n table, column\n ];\n\n this.config = {\n ...this.config, ...(column.data.data ?? {})\n };\n\n column.watchProp('modelValue', () => {\n this.setup();\n });\n\n this.setup();\n }\n\n setup()\n {\n this.matrix = this.parse();\n }\n\n parse() : any\n {\n const { column, table } = this;\n\n let result = {};\n\n Arr.each(column.data.model ?? [], (item : any) => {\n\n const [uid, matrix] = [\n Obj.get(item, table.data.uniqueProp),\n Obj.get(item, this.config.prop),\n ];\n\n result[uid] = Num.matrix(matrix);\n });\n\n return result;\n }\n\n equal(item : any)\n {\n const { table } = this;\n\n const uid = Obj.get(...[\n item, table.data.uniqueProp\n ]);\n\n return Arr.has(...[\n this.matrix[uid], this.config.matrix\n ]);\n }\n\n disabled(item : any)\n {\n const { column } = this;\n\n let disabled = column.data.disabled;\n\n if ( typeof disabled !== 'function' ) {\n disabled = (v : any) => false;\n }\n\n return disabled(item);\n }\n\n uncheck(item)\n {\n const { column } = this;\n\n if ( this.equal(item) ) {\n return this.config.allowUncheck;\n }\n\n return false;\n }\n\n toggle(item : any)\n {\n const { column, table } = this;\n\n const fallback = Obj.assign({}, item, {\n [this.config.prop]: []\n });\n\n const uniqueProp = table.data.uniqueProp;\n\n let finder = Arr.find(column.data.model ?? [], {\n [uniqueProp]: Obj.get(item, uniqueProp)\n });\n\n if ( !finder ) {\n finder = fallback;\n }\n\n let matrix = finder[this.config.prop];\n\n if ( !Mix.isArr(matrix) ) {\n matrix = Num.matrix(matrix);\n }\n\n finder[this.config.prop] = Num.combine(...[\n Arr.toggle(matrix, this.config.matrix)\n ]);\n\n const result = Arr.replace(column.data.model ?? [], finder, {\n [uniqueProp]: Obj.get(item, uniqueProp)\n });\n\n Run.frame(() => {\n table.instance.proxy.$forceUpdate();\n });\n\n column.emit('update:modelValue', result);\n }\n\n}","import { h } from \"vue\";\nimport { Arr } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NInfoController } from \"./NInfoController.ts\";\n\nexport class NInfoView extends ProtoView\n{\n /**\n * @type {NInfoController}\n */\n declare scope : NInfoController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-info';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n class: data.classList,\n };\n\n const slots = [\n this.body()\n ];\n\n if ( ! data.scrollbar ) {\n return h('div', props, slots);\n }\n\n return this.comp('n-scrollbar', props, () => {\n return slots;\n });\n }\n\n body() : any\n {\n const { data } = this.scope;\n\n if ( data.item ) {\n return this.div('body', [this.slot()]);\n }\n\n return this.div('empty', [\n this.empty({ inline: false })\n ]);\n }\n\n}\n\nexport default NInfoView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NInfoController from \"./NInfoController.ts\";\n\nexport class NInfoData extends ProtoData\n{\n /**\n * @type {NInfoController}\n */\n declare scope : NInfoController;\n\n get classList() : string[]\n {\n return this.classRoot([]);\n }\n\n get item() : string\n {\n return this.scope.get('item');\n }\n\n get syncEvent() : Function\n {\n return this.scope.get('syncEvent');\n }\n\n get scrollbar() : boolean\n {\n return this.scope.get('scrollbar');\n }\n\n get renderEmpty() : boolean\n {\n return this.scope.get('renderEmpty');\n }\n\n\n}\n\nexport default NInfoData;","import { provide, SetupContext } from \"vue\";\nimport { GroupController } from \"../../../root/index.ts\";\nimport { NInfoView } from \"./NInfoView.ts\";\nimport { NInfoData } from \"./NInfoData.ts\";\n\n\nexport class NInfoController extends GroupController\n{\n /**\n * @type {NInfoController}\n */\n declare scope : NInfoController;\n\n /**\n * @type {NInfoData}\n */\n declare data: NInfoData;\n\n /**\n * @type {NInfoView}\n */\n declare view: NInfoView;\n\n constructor(props:any, context:SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NInfoView(this),\n new NInfoData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n provide('NInfo', this.instance);\n\n return this;\n }\n\n}\n\nexport default NInfoController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NInfoController } from \"./NInfoController.ts\";\nimport { Locale } from \"@kizmann/pico-js\";\n\nexport const NInfoProps = {\n\n ...Props.Size,\n ...Props.Type,\n\n /**\n * @type {PropType<object>}\n */\n item: {\n type: [Object], default: null\n },\n\n /**\n * @type {PropType<function>}\n */\n syncEvent: {\n type: [Function], default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n scrollbar: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n renderEmpty: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<string>}\n */\n emptyText: {\n type: [String], default: () => Locale.trans('No item')\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NInfo',\n\n /**\n * @type {typeof NInfoProps}\n */\n props: NInfoProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n //\n ],\n\n setup(props, context)\n {\n let ncx = new NInfoController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NInfoColumnController } from \"./NInfoColumnController.ts\";\nimport { Obj } from \"@kizmann/pico-js\";\n\n/**\n * @class NInfoColumnView\n * @extends {ProtoView<NInfoColumnController>}\n */\nexport class NInfoColumnView extends ProtoView\n{\n /**\n * @type {NInfoColumnController}\n */\n declare scope : NInfoColumnController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-info-column';\n\n resolve(type : string, scope : string = 'NInfoCells') : any\n {\n if ( globalThis[scope][type] ) {\n return globalThis[scope][type];\n }\n\n return globalThis[scope]['string'];\n }\n\n default() : any\n {\n const { scope, data } = this.scope;\n\n const props : any = {\n class: [this.bem, `${this.bem}--${data.type}`],\n };\n\n return h('div', props, [\n this.label(), this.field()\n ]);\n }\n\n label() : any\n {\n const { data } = this.scope;\n\n return this.div('label', [\n data.label\n ]);\n }\n\n field() : any\n {\n const { scope, data } = this.scope;\n\n let props : any = {\n class: ['n-info-cell']\n };\n\n const input = Obj.get(...[\n scope.ncx('info').data.item, data.prop\n ]);\n\n const cell = {\n bem: 'n-info-cell',\n props: props,\n input: input,\n item: { item: data.item },\n column: scope,\n info: scope.ncx('info'),\n comp: this.comp,\n };\n\n return this.resolve(data.type)({\n ...cell\n });\n }\n\n\n}\n\nexport default NInfoColumnView;","import { ProtoExtend, ProtoData, OptionData, TextData } from \"../../../root/index.ts\";\nimport NInfoColumnController from \"./NInfoColumnController.ts\";\n\nexport class NInfoColumnData extends ProtoExtend([ProtoData, OptionData, TextData])\n{\n /**\n * @type {NInfoColumnController}\n */\n declare scope : NInfoColumnController;\n\n get data():any\n {\n return this.scope.get('data');\n }\n\n get type() : string\n {\n return this.scope.get('type');\n }\n\n get label() : string\n {\n return this.scope.get('label');\n }\n\n get prop() : string\n {\n return this.scope.get('prop');\n }\n\n get optionsMap():any\n {\n return this.scope.get('optionsMap');\n }\n\n get datetimeFormat()\n {\n return this.scope.get('datetimeFormat');\n }\n\n}\n\nexport interface NInfoColumnData extends ProtoData, OptionData, TextData {}","import { ProtoController } from \"../../../root/index.ts\";\nimport { NInfoColumnView } from \"./NInfoColumnView.ts\";\nimport { NInfoColumnData } from \"./NInfoColumnData.ts\";\nimport { SetupContext } from \"vue\";\nimport { Arr, Mix, Obj } from \"@kizmann/pico-js\";\n\nexport class NInfoColumnController extends ProtoController\n{\n /**\n * @type {NInfoColumnController}\n */\n declare scope : NInfoColumnController;\n\n /**\n * @type {NInfoColumnData}\n */\n declare data : NInfoColumnData;\n\n /**\n * @type {NInfoColumnView}\n */\n declare view : NInfoColumnView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NInfoColumnView(this),\n new NInfoColumnData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n\n this.injectRef(['info', 'NInfo']);\n\n this.makeLinkData('optionsMap', 'options', () => {\n return this.createOptionsMap();\n });\n\n return this;\n }\n\n onMounted()\n {\n this.ncx('info')?.append(this);\n }\n\n onUnmounted()\n {\n this.ncx('info')?.remove(this);\n }\n\n createOptionsMap()\n {\n let options = this.data.options;\n\n if ( Mix.isFunc(options) ) {\n options = options(this);\n }\n\n const result = Arr.each(options, (value : any, index : any) => {\n return { $value: value, $index: index };\n });\n\n return Object.freeze(result);\n }\n\n getOptions()\n {\n const { data } = this;\n\n const result = Arr.each(data.optionsMap, (item : any) => {\n return {\n label: Obj.get(item, data.optionsLabel),\n value: Obj.get(item, data.optionsValue),\n };\n });\n\n return Object.freeze(result);\n }\n\n getOption(value : any)\n {\n const { data } = this;\n\n let option = Arr.find(data.optionsMap, (item : any) => {\n return Obj.get(item, data.optionsValue) == value;\n });\n\n return Obj.get(option, data.optionsLabel);\n }\n\n}\n\nexport default NInfoColumnController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NInfoColumnController } from \"./NInfoColumnController.ts\";\n\nexport const NInfoColumnProps = {\n\n ...Props.TrueText,\n ...Props.FalseText,\n ...Props.EmptyText,\n ...Props.UndefinedText,\n ...Props.OptionsObject,\n\n /**\n * @type {PropType<any>}\n */\n modelValue: {\n default: null\n },\n\n /**\n * @type {PropType<object>}\n */\n data: {\n type: [Object], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n type: {\n type: [String], default: 'string'\n },\n\n /**\n * @type {PropType<string>}\n */\n label: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n prop: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n datetimeFormat: {\n type: [String], default: 'LTSD'\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NInfoColumn',\n\n /**\n * @type {typeof NInfoColumnProps}\n */\n props: NInfoColumnProps,\n\n setup(props, context)\n {\n let ncx = new NInfoColumnController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { App } from \"vue\";\nimport NInfo from \"./js/info/NInfo.ts\";\nimport NInfoColumn from \"./js/info-column/NInfoColumn.ts\";\nimport NTableCellString from \"../table/js/table-cell/NTableCellString.ts\";\nimport NTableCellBoolean from \"../table/js/table-cell/NTableCellBoolean.ts\";\nimport NTableCellDatetime from \"../table/js/table-cell/NTableCellDatetime.ts\";\nimport NTableCellImage from \"../table/js/table-cell/NTableCellImage.ts\";\nimport NTableCellOption from \"../table/js/table-cell/NTableCellOption.ts\";\n\nexport default function (App : App) {\n App.component(NInfo.name, NInfo);\n App.component(NInfoColumn.name, NInfoColumn);\n}\n\nglobalThis.NInfoCells = {\n 'string': NTableCellString,\n 'boolean': NTableCellBoolean,\n 'datetime': NTableCellDatetime,\n 'image': NTableCellImage,\n 'option': NTableCellOption,\n};","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NEmptyIconController } from \"./NEmptyIconController.ts\";\nimport { Locale, Mix } from \"@kizmann/pico-js\";\n\nexport class NEmptyIconView extends ProtoView\n{\n /**\n * @type {NEmptyIconController}\n */\n declare scope : NEmptyIconController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-empty-icon';\n\n default() : any\n {\n let { data } = this.scope;\n\n let props = {\n class: data.classList\n };\n\n return h('div', props, [\n this.type(), this.body()\n ]);\n }\n\n type() : any\n {\n return this.div('type', [\n this.slot('icon')\n ]);\n }\n\n body() : any\n {\n const {context, data} = this.scope;\n\n let slot = null;\n\n if ( context.slots.default ) {\n slot = this.slot('default');\n }\n\n if ( ! Mix.isEmpty(data.emptyText) ) {\n slot = Locale.trans(data.emptyText);\n }\n\n return !slot ? null : this.div('text', [\n slot\n ]);\n }\n\n}\n\nexport default NEmptyIconView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NEmptyIconController from \"./NEmptyIconController.ts\";\n\nexport class NEmptyIconData extends ProtoData\n{\n /**\n * @type {NEmptyIconController}\n */\n declare scope : NEmptyIconController;\n\n get classList() : string[]\n {\n let classList = [\n `:bem--${this.image}`\n ];\n\n if ( this.scope.get('inline') ) {\n classList.push(':bem--inline');\n }\n\n return this.classRoot(classList);\n }\n\n get image() : string\n {\n return this.scope.get('image');\n }\n\n get inline() : boolean\n {\n return this.scope.get('inline');\n }\n\n get emptyText() : string\n {\n return this.scope.get('emptyText');\n }\n\n}","import { SetupContext } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NEmptyIconView } from \"./NEmptyIconView.ts\";\nimport { NEmptyIconData } from \"./NEmptyIconData.ts\";\n\nexport class NEmptyIconController extends ProtoController\n{\n /**\n * @type {NEmptyIconController}\n */\n declare scope : NEmptyIconController;\n\n /**\n * @type {NEmptyIconData}\n */\n declare data : NEmptyIconData;\n\n /**\n * @type {NEmptyIconView}\n */\n declare view : NEmptyIconView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NEmptyIconView(this),\n new NEmptyIconData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n return this;\n }\n\n}\n\nexport default NEmptyIconController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NEmptyIconController } from \"./NEmptyIconController.ts\";\n\nexport const NEmptyIconProps = {\n\n ...Props.Size,\n\n /**\n * @type {PropType<string>}\n */\n image: {\n type: [String], default: 'default'\n },\n\n /**\n * @type {PropType<boolean>}\n */\n inline: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<string>}\n */\n emptyText: {\n type: [String], default: null\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NEmptyIcon',\n\n /**\n * @type {typeof NEmptyIconProps}\n */\n props: NEmptyIconProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n //\n ],\n\n setup(props, context)\n {\n let ncx = new NEmptyIconController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NModalController } from \"./NModalController.ts\";\n\nexport class NModalView extends ProtoView\n{\n /**\n * @type {NModalController}\n */\n declare scope : NModalController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-modal';\n\n default() : any\n {\n let { uid, scope, data } = this.scope;\n\n let props = {\n ref: scope.ref('el'),\n class: data.classList\n };\n\n if ( !data.model ) {\n props.class.push('n-hidden');\n }\n\n return h('div', props, [\n this.body()\n ]);\n }\n\n body() : any\n {\n const { scope, data } = this.scope;\n\n if ( !data.model ) {\n return null;\n }\n\n const props : any = {\n name: 'frame',\n };\n\n let style = [];\n\n if ( data.width ) {\n style.push(`width: ${data.width}px;`);\n }\n\n if ( data.height ) {\n style.push(`height: ${data.height}px;`);\n }\n\n const { slots } = this.scope.context;\n\n if ( slots.raw ) {\n return slots.raw();\n }\n\n const html = [];\n\n if ( slots.header ) {\n html.push(this.div('header', this.slot('header')));\n }\n\n if ( slots.default ) {\n html.push(this.content());\n }\n\n if ( slots.footer ) {\n html.push(this.div('footer', this.slot('footer')));\n }\n\n return this.div({ ...props, style: style.join(' ') }, html);\n }\n\n content() : any\n {\n let { data } = this.scope;\n\n const props = {\n class: data.classPart('content')\n };\n\n if ( ! data.scrollbar ) {\n return h('div', props, this.slot('default'));\n }\n\n return this.comp('n-scrollbar', props, () => {\n return this.slot('default');\n });\n }\n\n}\n\nexport default NModalView;","import { ProtoData } from \"../../../root/index.ts\";\nimport { NModalController } from \"./NModalController.ts\";\n\nexport class NModalData extends ProtoData\n{\n /**\n * @type {NModalController}\n */\n declare scope : NModalController;\n\n get classList() : string[]\n {\n let classList = [];\n\n if ( this.position != null ) {\n classList.push(`:bem--${this.position}`);\n }\n\n return this.classRoot(classList);\n }\n\n get model() : boolean\n {\n return this.scope.get('modelValue');\n }\n\n get listen() : boolean\n {\n return this.scope.get('listen');\n }\n\n get closable() : boolean\n {\n return this.scope.get('closable');\n }\n\n get scrollbar() : boolean\n {\n return this.scope.get('scrollbar');\n }\n\n get width() : number\n {\n return this.scope.get('width');\n }\n\n get height() : number\n {\n return this.scope.get('height');\n }\n\n get target() : any\n {\n return this.scope.get('target');\n }\n\n get position() : string\n {\n return this.scope.get('position');\n }\n\n get beforeOpen() : Function\n {\n return this.scope.get('beforeOpen');\n }\n\n get beforeClose() : Function\n {\n return this.scope.get('beforeClose');\n }\n\n}\n\nexport default NModalData;","import { SetupContext, provide } from \"vue\";\nimport { Dom } from \"@kizmann/pico-js\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NModalView } from \"./NModalView.ts\";\nimport { NModalData } from \"./NModalData.ts\";\nimport { NModalHandler } from \"../handler/NModalHandler.ts\";\nimport { NModalElement } from \"../handler/NModalElement.ts\";\n\nexport class NModalController extends ProtoController\n{\n /**\n * @type {NModalController}\n */\n declare scope : NModalController;\n\n /**\n * @type {NModalData}\n */\n declare data : NModalData;\n\n /**\n * @type {NModalView}\n */\n declare view : NModalView;\n\n /**\n * @type {NModalElement}\n */\n modal : NModalElement;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NModalView(this),\n new NModalData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n\n this.cloneProp('modelValue');\n\n this\n .makeRef('el')\n .makeRef('frame');\n\n provide('NModal', this.instance);\n\n return this;\n }\n\n onMounted()\n {\n const { el, data } = this;\n\n this.modal = NModalHandler.append(el, {\n uid: this.uid,\n target: data.target,\n listen: data.listen,\n closable: data.closable,\n beforeOpen: data.beforeOpen,\n beforeClose: data.beforeClose,\n });\n\n this.modal.on('open', () => {\n this.onOpen();\n });\n\n this.modal.on('close', () => {\n this.onClose();\n });\n\n Dom.find(el).appendTo(document.body);\n }\n\n onUnmounted()\n {\n NModalHandler.remove(this.modal);\n }\n\n onOpen()\n {\n this.update('modelValue', true);\n this.emit('open');\n }\n\n onClose()\n {\n this.update('modelValue', false);\n this.emit('close');\n }\n\n superOpen(silent : boolean = false)\n {\n this.modal.open(silent);\n }\n\n superClose(force : boolean = false, silent : boolean = false)\n {\n this.modal.close(force, silent);\n }\n\n}\n\nexport default NModalController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NModalController } from \"./NModalController.ts\";\n\nexport const NModalProps = {\n\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n ...Props.ThemeDark,\n ...Props.PositionModal,\n\n /**\n * @type {PropType<boolean>}\n */\n modelValue: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n scrollbar: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<boolean>}\n */\n listen: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<boolean>}\n */\n closable: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<string|number>}\n */\n width: {\n type: [String,Number], default: null\n },\n\n /**\n * @type {PropType<string|number>}\n */\n height: {\n type: [String,Number], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n target: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<function>}\n */\n beforeOpen: {\n type: [Function], default: null\n },\n\n /**\n * @type {PropType<function>}\n */\n beforeClose: {\n type: [Function], default: null\n }\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NModal',\n\n /**\n * @type {typeof NModalProps}\n */\n props: NModalProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n 'open',\n 'close',\n ],\n\n setup(props, context)\n {\n let ncx = new NModalController(props, context);\n\n ncx.pass({\n open: 'superOpen',\n close: 'superClose',\n });\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { NDrawerController } from \"./NDrawerController.ts\";\nimport { NModalView } from \"../modal/NModalView.ts\";\n\nexport class NDrawerView extends NModalView\n{\n /**\n * @type {NDrawerController}\n */\n declare scope : NDrawerController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-drawer';\n\n}\n\nexport default NDrawerView;","import { NDrawerController } from \"./NDrawerController.ts\";\nimport { NModalData } from \"../modal/NModalData.ts\";\n\nexport class NDrawerData extends NModalData\n{\n /**\n * @type {NDrawerController}\n */\n declare scope : NDrawerController;\n\n}\n\nexport default NDrawerData;","import { SetupContext, provide } from \"vue\";\nimport { Dom } from \"@kizmann/pico-js\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NDrawerView } from \"./NDrawerView.ts\";\nimport { NDrawerData } from \"./NDrawerData.ts\";\nimport { NModalHandler } from \"../handler/NModalHandler.ts\";\nimport { NModalElement } from \"../handler/NModalElement.ts\";\n\nexport class NDrawerController extends ProtoController\n{\n /**\n * @type {NDrawerController}\n */\n declare scope : NDrawerController;\n\n /**\n * @type {NDrawerData}\n */\n declare data : NDrawerData;\n\n /**\n * @type {NDrawerView}\n */\n declare view : NDrawerView;\n\n /**\n * @type {NModalElement}\n */\n modal : NModalElement;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NDrawerView(this),\n new NDrawerData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.cloneProp('modelValue');\n\n this\n .makeRef('el')\n .makeRef('frame');\n\n provide('NModal', this.instance);\n\n return this;\n }\n\n onMounted()\n {\n const { el, data } = this;\n\n this.makeUID();\n\n this.modal = NModalHandler.append(el, {\n uid: this.uid,\n target: data.target,\n listen: data.listen,\n closable: data.closable,\n beforeOpen: data.beforeOpen,\n beforeClose: data.beforeClose,\n });\n\n this.modal.on('open', () => {\n this.onOpen();\n });\n\n this.modal.on('close', () => {\n this.onClose();\n });\n\n Dom.find(el).appendTo(document.body);\n }\n\n onUnmounted()\n {\n NModalHandler.remove({ uid: this.uid });\n }\n\n onOpen()\n {\n this.update('modelValue', true);\n this.emit('open');\n }\n\n onClose()\n {\n this.update('modelValue', false);\n this.emit('close');\n }\n\n superOpen()\n {\n this.modal.open();\n }\n\n superClose(forceClose : boolean = false)\n {\n this.modal.close(forceClose);\n }\n\n\n}\n\nexport default NDrawerController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NDrawerController } from \"./NDrawerController.ts\";\n\nexport const NDrawerProps = {\n\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n ...Props.ThemeDark,\n ...Props.PositionDrawer,\n\n /**\n * @type {PropType<boolean>}\n */\n modelValue: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<string>}\n */\n mode: {\n type: [String], default: 'modal'\n },\n\n /**\n * @type {PropType<boolean>}\n */\n listen: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<boolean>}\n */\n closable: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<boolean>}\n */\n scrollbar: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<string|number>}\n */\n width: {\n type: [String,Number], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n height: {\n type: [String,Number], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n target: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<function>}\n */\n beforeOpen: {\n type: [Function], default: null\n },\n\n /**\n * @type {PropType<function>}\n */\n beforeClose: {\n type: [Function], default: null\n }\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NDrawer',\n\n /**\n * @type {typeof NDrawerProps}\n */\n props: NDrawerProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n 'open',\n 'close',\n ],\n\n setup(props, context)\n {\n let ncx = new NDrawerController(props, context);\n\n ncx.pass({\n open: 'superOpen',\n close: 'superClose',\n });\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NLoaderController } from \"./NLoaderController.ts\";\n\nexport class NLoaderView extends ProtoView\n{\n /**\n * @type {NLoaderController}\n */\n declare scope : NLoaderController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-loader';\n\n default() : any\n {\n let { data } = this.scope;\n\n let props = {\n class: data.classList\n };\n\n return h('div', props, [\n this.slot()\n ]);\n }\n\n}\n\nexport default NLoaderView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NLoaderController from \"./NLoaderController.ts\";\n\nexport class NLoaderData extends ProtoData\n{\n /**\n * @type {NLoaderController}\n */\n declare scope : NLoaderController;\n\n get classList() : string[]\n {\n let classList = [];\n\n if ( this.active ) {\n classList.push('n-load');\n }\n\n return this.classRoot(classList);\n }\n\n get active(): boolean\n {\n return this.scope.get('active');\n }\n\n get visible(): boolean\n {\n return this.scope.get('visible');\n }\n\n get minimum(): number\n {\n return this.scope.get('minimum');\n }\n\n get debounce(): number\n {\n return this.scope.get('debounce');\n }\n\n}\n\nexport default NLoaderData;","import { SetupContext } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NLoaderView } from \"./NLoaderView.ts\";\nimport { NLoaderData } from \"./NLoaderData.ts\";\nimport { Run } from \"@kizmann/pico-js\";\n\nexport class NLoaderController extends ProtoController\n{\n /**\n * @type {NLoaderController}\n */\n declare scope : NLoaderController;\n\n /**\n * @type {NLoaderData}\n */\n declare data : NLoaderData;\n\n /**\n * @type {NLoaderView}\n */\n declare view : NLoaderView;\n\n /**\n * @type {number}\n */\n timing : number = 0;\n\n /**\n * @type {any}\n */\n timeout : any = null;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NLoaderView(this),\n new NLoaderData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeData('active');\n\n this.watchProp('visible', () => {\n this.applyTimer();\n });\n\n const { visible } = this.data;\n\n if ( visible ) {\n this.applyTimer();\n }\n\n return this;\n }\n\n applyTimer()\n {\n this.timing = Date.now();\n\n if ( this.timeout ) {\n this.timeout();\n }\n\n if ( this.data.visible ) {\n return this.set('active', this.data.visible);\n }\n\n this.startTimer();\n }\n\n startTimer()\n {\n let timing = Date.now() - this.timing;\n\n if ( timing < this.data.minimum ) {\n return this.restartTimer(timing);\n }\n\n const { debounce: db } = this.data;\n\n this.timeout = Run.delay(() => {\n this.set('active', false);\n }, db);\n }\n\n restartTimer(timing = 0)\n {\n const { minimum: min } = this.data;\n\n if ( this.timeout ) {\n this.timeout();\n }\n\n this.timeout = Run.delay(...[\n () => this.startTimer(), min - timing + 10\n ]);\n }\n\n}\n\nexport default NLoaderController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NLoaderController } from \"./NLoaderController.ts\";\n\nexport const NLoaderProps = {\n\n ...Props.Type,\n ...Props.Size,\n\n /**\n * @type {PropType<boolean>}\n */\n visible: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<number>}\n */\n minimum: {\n type: [Number], default: 120\n },\n\n /**\n * @type {PropType<number>}\n */\n debounce: {\n type: [Number], default: 120\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NLoader',\n\n /**\n * @type {typeof NLoaderProps}\n */\n props: NLoaderProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n //\n ],\n\n setup(props, context)\n {\n let ncx = new NLoaderController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Mix, Now, Obj, Run } from \"@kizmann/pico-js\";\nimport { ProtoView, Styler } from \"../../../root/index.ts\";\nimport { NDatepickerPanelController } from \"./NDatepickerPanelController.ts\";\n\nexport class NDatepickerPanelView extends ProtoView\n{\n /**\n * @type {NDatepickerPanelController}\n */\n declare scope : NDatepickerPanelController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-datepicker-panel';\n\n default() : any\n {\n let { data } = this.scope;\n\n let props = {\n class: data.classList\n };\n\n return h('div', props, [\n this.header(), this.body(), this.footer()\n ]);\n }\n\n footer() : any\n {\n const { data } = this.scope;\n\n if ( data.view === 'dates' ) {\n return null;\n }\n\n let props : any = {\n size: 'sm',\n link: true,\n glass: true,\n };\n\n return this.div('footer', [\n this.comp('n-button', props, ['Go back'])\n ]);\n }\n\n header() : any\n {\n return this.div('header', [\n this.display(), this.navigation()\n ]);\n }\n\n display() : any\n {\n const { scope, data } = this.scope;\n\n let months = Arr.each(data.displays, (date : Now) => {\n return date.format('MMM');\n });\n\n months = [\n Arr.first(months), Arr.last(months)\n ];\n\n if ( data.displays.length < 12 ) {\n months = Arr.unique(months);\n }\n\n let monthProps : any = {\n name: 'month'\n };\n\n monthProps.onPointerdown = () => {\n scope.set('view', 'months');\n };\n\n const month = this.div(monthProps, [\n months.join(' - ')\n ]);\n\n let years = Arr.each(data.displays, (date : Now) => {\n return date.format('YYYY');\n });\n\n years = Arr.unique([\n Arr.first(years), Arr.last(years)\n ]);\n\n let yearProps : any = {\n name: 'year'\n };\n\n yearProps.onPointerdown = () => {\n scope.set('view', 'years');\n };\n\n const year = this.div(yearProps, [\n years.join(' - ')\n ]);\n\n return this.div('display', [\n month, year\n ]);\n }\n\n navigation() : any\n {\n const { scope, data } = this.scope;\n\n let locateProps : any = {\n glass: true,\n square: true,\n icon: Styler.icon('revert')\n };\n\n locateProps.onPointerdown = () => {\n scope.onRevert();\n };\n\n const locate = this.div('locate', [\n this.comp('n-button', locateProps)\n ]);\n\n let prevProps : any = {\n glass: true,\n square: true,\n icon: Styler.icon('prev')\n };\n\n prevProps.onPointerdown = () => {\n scope.onPrev();\n };\n\n const prev = this.div('prev', [\n this.comp('n-button', prevProps)\n ]);\n\n let nextProps : any = {\n glass: true,\n square: true,\n icon: Styler.icon('next')\n };\n\n nextProps.onPointerdown = () => {\n scope.onNext();\n };\n\n const next = this.div('next', [\n this.comp('n-button', nextProps)\n ]);\n\n let slots = [prev, next];\n\n let inview = Arr.each(data.displays, (date : Now) => {\n return date.equal(data.dates[0], 'YYYYMM');\n });\n\n if ( ! Arr.has(inview, true) ) {\n slots = [locate, ...slots];\n }\n\n return slots;\n }\n\n body() : any\n {\n const { data } = this.scope;\n\n let slots = [];\n\n if ( data.view === 'dates' ) {\n slots = [this.dates()];\n }\n\n if ( data.view === 'months' ) {\n slots = [this.months()];\n }\n\n if ( data.view === 'years' ) {\n slots = [this.years()];\n }\n\n return this.div('body', [\n ...slots\n ]);\n }\n\n years()\n {\n const { data } = this.scope;\n\n let panels = Arr.each(data.yearsGrid, (year : Now) => {\n return this.year(year);\n });\n\n return this.div('years', panels);\n }\n\n year(year: Now)\n {\n const { scope, data } = this.scope;\n\n let props : any = {\n class: data.classPart('month'),\n };\n\n if ( year.equal(data.displays[0], 'YYYY') ) {\n props.class.push('n-selected');\n }\n\n if ( year.equal('now', 'YYYY') ) {\n props.class.push('n-current');\n }\n\n props.onPointerdown = () => {\n scope.setPanelDate(year);\n };\n\n return h('div', props, [\n year.format('YYYY')\n ]);\n }\n\n months()\n {\n const { data } = this.scope;\n\n let panels = Arr.each(data.monthsGrid, (month : Now) => {\n return this.month(month);\n });\n\n return this.div('months', panels);\n }\n\n month(month: Now)\n {\n const { scope, data } = this.scope;\n\n let props : any = {\n class: data.classPart('year'),\n };\n\n if ( month.equal(data.displays[0], 'YYYYMM') ) {\n props.class.push('n-selected');\n }\n\n if ( month.equal('now', 'YYYYMM') ) {\n props.class.push('n-current');\n }\n\n props.onPointerdown = () => {\n scope.setPanelDate(month);\n };\n\n return this.div(props, [\n month.format('MMM')\n ]);\n }\n\n dates() : any\n {\n const { data } = this.scope;\n\n let panels = Arr.make(data.panels, (i : number) => {\n return this.div('panel', [this.panel(i)]);\n });\n\n return this.div('panels', panels);\n }\n\n panel(offset : number) : any\n {\n let { data } = this.scope;\n\n let base = Arr.first(data.displays).clone().add(...[\n offset, 'months'\n ]);\n\n let weeks = Arr.chunk(...[\n base.grid('days'), 7\n ]);\n\n const items = Arr.each(weeks, (dates : Now[]) => {\n return this.week(dates, base);\n })\n\n return [this.legend(), ...items];\n }\n\n legend()\n {\n const days = Arr.make(7, (i : number) => {\n return Now.make('now').day(i).format('dd');\n });\n\n const fn = (day : string) => {\n return h('span', null, [day]);\n };\n\n const legends = Arr.each(days, (day : string) => {\n return this.div('day', [fn(day)]);\n });\n\n return this.div('legend', legends);\n }\n\n week(days : Now[], base : Now)\n {\n const dates = Arr.each(days, (date : Now) => {\n return this.date(date, base);\n });\n\n return this.div('week', dates);\n }\n\n date(date : Now, base : Now)\n {\n const { scope, data } = this.scope;\n\n let props : any = {\n class: data.classPart('day'),\n };\n\n props.class = Arr.merge(props.class, ...[\n data.classDate(date)\n ]);\n\n if ( date.equal('now', 'YYYYMMDD') ) {\n props.class.push('n-today');\n }\n\n if ( date.equal(base, 'YYYYMM') ) {\n props.class.push('n-current');\n }\n\n props.onPointerdown = () => {\n scope.setRangeDate(date);\n };\n\n props.onPointerenter = () => {\n scope.setHoverDate(date);\n };\n\n let disabled = [\n data.minDate && date.beforeDate(data.minDate),\n data.maxDate && date.afterDate(data.maxDate),\n ];\n\n if ( Arr.has(disabled, true) ) {\n props.class.push('n-disabled');\n }\n\n return h('div', props, [date.format('DD')]);\n }\n\n}\n\nexport default NDatepickerPanelView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NDatepickerPanelController from \"./NDatepickerPanelController.ts\";\nimport { Arr, Now } from \"@kizmann/pico-js\";\n\nexport class NDatepickerPanelData extends ProtoData\n{\n /**\n * @type {NDatepickerPanelController}\n */\n declare scope : NDatepickerPanelController;\n\n classDate(date: Now)\n {\n const valids = Arr.filter(this.dates, (date:Now) => {\n return date.input;\n });\n\n if ( this.ranges.length ) {\n return this.classDateHover(date);\n }\n\n if ( valids.length ) {\n return this.classDateNormal(date)\n }\n\n return [];\n }\n\n classDateNormal(date: Now)\n {\n let classList = [];\n\n if ( date.equalDate(this.dates[0]) ) {\n classList.push('n-arrive');\n classList.push('n-selected');\n }\n\n if ( date.equalDate(this.dates[1]) ) {\n classList.push('n-depart');\n classList.push('n-selected');\n }\n\n if ( date.between(...this.dates) ) {\n classList.push('n-between');\n classList.push('n-selected');\n }\n\n return Arr.unique(classList);\n }\n\n classDateHover(date: Now)\n {\n let classList = [];\n\n if ( date.equalDate(this.hovers[0]) ) {\n classList.push('n-arrive');\n }\n\n if ( date.equalDate(this.hovers[1]) ) {\n classList.push('n-depart');\n }\n\n if ( date.between(...this.hovers) ) {\n classList.push('n-between');\n }\n\n return classList;\n }\n\n get classList() : string[]\n {\n let classList = [];\n\n return this.classRoot(classList);\n }\n\n get model() : string|string[]\n {\n return this.scope.get('modelValue');\n }\n\n get dates() : Now[]\n {\n return this.scope.get('dates');\n }\n\n get displays() : Now[]\n {\n return this.scope.get('displays');\n }\n\n get ranges() : Now[]\n {\n return this.scope.get('ranges');\n }\n\n get hovers() : Now[]\n {\n return this.scope.get('hovers');\n }\n\n get view() : string\n {\n return this.scope.get('view');\n }\n\n get arrive() : string\n {\n return this.scope.get('arrive');\n }\n\n get depart() : string\n {\n return this.scope.get('depart');\n }\n\n get range() : boolean\n {\n return this.scope.get('range');\n }\n\n get panels() : number\n {\n return this.scope.get('panels');\n }\n\n get format() : string\n {\n return this.scope.get('format');\n }\n\n get displayFormat() : string\n {\n return this.scope.get('displayFormat');\n }\n\n get minDate() : any\n {\n return this.scope.get('minDate');\n }\n\n get maxDate() : any\n {\n return this.scope.get('maxDate');\n }\n\n get yearsGrid() : Now[]\n {\n return Arr.first(this.displays).getYearsGrid();\n }\n\n get monthsGrid() : Now[]\n {\n return Arr.first(this.displays).getMonthsGrid();\n }\n\n}\n\nexport default NDatepickerPanelData;","import { Arr, Locale, Mix, Now, Obj } from \"@kizmann/pico-js\";\n\nexport class NDateHelper\n{\n\n static getDate(scope : any, date : any = null)\n {\n const { model, arrive, depart } = scope.data;\n\n if ( !Mix.isEmpty(depart) ) {\n date = depart;\n }\n\n if ( !Mix.isEmpty(arrive) ) {\n date = arrive;\n }\n\n if ( !Mix.isEmpty(model) ) {\n date = Arr.all(model);\n }\n\n return Now.make(...[Arr.first(date)]);\n }\n\n static getDates(scope : any, date : any = [null, null])\n {\n const { model, arrive, depart } = scope.data;\n\n if ( !Mix.isEmpty(depart) ) {\n date[1] = depart;\n }\n\n if ( !Mix.isEmpty(arrive) ) {\n date[0] = arrive;\n }\n\n if ( !Mix.isArr(model) ) {\n date = [model, model];\n }\n\n if ( Mix.isArr(model) ) {\n date = Arr.slice(model, 0, 2);\n }\n\n return Arr.each(date, (d : any) => {\n return Now.make(d);\n });\n }\n\n static getDisplays(scope : any, date : any = null)\n {\n if ( date == null ) {\n date = this.getDate(scope, date);\n }\n\n if ( !date.input ) {\n date.reset({ time: true });\n }\n\n const dates = Arr.make(scope.data.panels, (i : number) => {\n return date.clone().add(i, 'months');\n });\n\n return dates ?? [];\n }\n\n static getDurationData(scope : any, value : number = null)\n {\n const { model } = scope.data;\n\n if ( value == null ) {\n value = model;\n }\n\n if ( value < 0 ) {\n value = value * -1;\n }\n\n if ( value == 0 || value == null ) {\n return null;\n }\n\n return Now.make().safeDuration(value);\n }\n\n static getDurationString(scope : any, value : number = null) : string\n {\n const result = this.getDurationData(scope, value);\n\n if ( !result ) {\n return null;\n }\n\n let texts = [];\n\n Arr.each(result, (v : number, k : string) => {\n if ( v !== 0 ) texts.push(Locale.choice(scope.get(k), v));\n });\n\n return texts.join(' ');\n }\n\n static getDurationMatch(scope : any, value: string, key : string = 'days') : number\n {\n const pattern = scope.get(key, '')\n .replace(/\\s+/g, '\\\\s*')\n .replace(/:count/g, '([0-9]+)');\n\n const regex = new RegExp(pattern, 'i');\n\n if ( !regex.test(value) ) {\n return 0;\n }\n\n return Mix.num(value.match(regex)[1]);\n }\n\n static getDurationNumber(scope : any, value : string = null) : number\n {\n if ( value == null ) {\n return 0;\n }\n\n let keys = [\n 'dates', 'hours', 'minutes', 'seconds'\n ];\n\n const date = Now.make(), backup = date.clone();\n\n Arr.each(keys, (k : string) => {\n date.add(this.getDurationMatch(scope, value, k), k);\n });\n\n return date.diffrence(backup);\n }\n\n}","import { SetupContext } from \"vue\";\nimport { Arr, Mix, Now, Obj, Run } from \"@kizmann/pico-js\";\nimport { GroupController } from \"../../../root/index.ts\";\nimport { NDatepickerPanelView } from \"./NDatepickerPanelView.ts\";\nimport { NDatepickerPanelData } from \"./NDatepickerPanelData.ts\";\nimport { NDateHelper } from \"../helper/NDateHelper.ts\";\n\n\nexport class NDatepickerPanelController extends GroupController\n{\n /**\n * @type {NDatepickerPanelController}\n */\n declare scope : NDatepickerPanelController;\n\n /**\n * @type {NDatepickerPanelData}\n */\n declare data : NDatepickerPanelData;\n\n /**\n * @type {NDatepickerPanelView}\n */\n declare view : NDatepickerPanelView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NDatepickerPanelView(this),\n new NDatepickerPanelData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this\n .cloneProp('modelValue')\n .cloneProp('arrive')\n .cloneProp('depart');\n\n this.makeData('view', 'dates');\n this.makeData('ranges', []);\n this.makeData('hovers', []);\n\n this.makeData('dates', ...[\n NDateHelper.getDates(this)\n ]);\n\n this.makeData('displays', ...[\n NDateHelper.getDisplays(this)\n ]);\n\n this.watchProp('modelValue', () => {\n this.updateDates();\n });\n\n this.watchProp('arrive', () => {\n this.updateDates();\n });\n\n this.watchProp('depart', () => {\n this.updateDates();\n });\n\n return this;\n }\n\n updateDates()\n {\n this.set('dates', ...[\n NDateHelper.getDates(this)\n ]);\n\n // this.set('displays', ...[\n // NDateHelper.getDisplays(this)\n // ]);\n }\n\n setDisplayDates(date : Now = null)\n {\n const dates = NDateHelper.getDisplays(...[\n this, date\n ]);\n\n this.set('displays', dates);\n }\n\n onPrev()\n {\n const { data } = this;\n\n let date = Arr.first(data.displays).clone();\n\n if ( data.view === 'dates' ) {\n date.sub(1, 'months');\n }\n\n if ( data.view === 'months' ) {\n date.sub(1, 'years');\n }\n\n if ( data.view === 'years' ) {\n date.sub(10, 'years');\n }\n\n this.setDisplayDates(date);\n }\n\n onNext()\n {\n const { data } = this;\n\n let date = Arr.first(data.displays).clone();\n\n if ( data.view === 'dates' ) {\n date.add(1, 'months');\n }\n\n if ( data.view === 'months' ) {\n date.add(1, 'years');\n }\n\n if ( data.view === 'years' ) {\n date.add(10, 'years');\n }\n\n this.setDisplayDates(date);\n }\n\n onRevert()\n {\n this.setDisplayDates();\n this.set('view', 'dates');\n }\n\n onMousedown(item : Now)\n {\n const { data } = this;\n\n this.update('modelValue', ...[\n item.format(data.format)\n ]);\n\n this.set('dateValue', item);\n }\n\n setPanelDate(item : Now)\n {\n Run.frame(() => {\n this.set('view', 'dates');\n });\n\n this.setDisplayDates(item);\n }\n\n setRangeDate(date : Now)\n {\n const { data } = this;\n\n if ( ! data.range ) {\n return this.setModelDate(date);\n }\n\n let [real, temp] = [\n Arr.filter(data.ranges), data.ranges\n ];\n\n if ( real.length !== 1 ) {\n temp = [null, null];\n }\n\n if ( real.length === 0 ) {\n temp[0] = date.clone();\n }\n\n if ( real.length === 1 ) {\n temp[1] = date.clone();\n }\n\n if ( date.before(temp[0]) ) {\n temp = temp.reverse();\n }\n\n if ( real.length === 1 ) {\n return this.setModelRange(temp);\n }\n\n this.set('hovers', [\n date.clone(), date.clone()\n ]);\n\n this.set('ranges', temp);\n }\n\n setHoverDate(date : Now)\n {\n const { data } = this;\n\n if ( ! data.ranges.length ) {\n return;\n }\n\n let hovers = [\n data.ranges[0], date.clone()\n ];\n\n if ( date.before(data.ranges[0]) ) {\n hovers = hovers.reverse();\n }\n\n this.set('hovers', hovers);\n }\n\n setModelDate(date : Now)\n {\n const { data } = this;\n\n let dates = [\n date.clone(), date.clone()\n ];\n\n this.update('modelValue', ...[\n date.format(data.format)\n ]);\n\n this.set('dates', dates);\n }\n\n setModelRange(dates : Now[])\n {\n const { data } = this;\n\n let values = Arr.each(dates, (date : Now) => {\n return date.format(data.format);\n });\n\n this.set('hovers', []);\n this.set('ranges', []);\n this.set('dates', dates);\n\n this.update('arrive', values[0]);\n this.update('depart', values[1]);\n this.update('modelValue', values);\n }\n\n}\n\nexport default NDatepickerPanelController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NDatepickerPanelController } from \"./NDatepickerPanelController.ts\";\n\nexport const NDatepickerPanelProps = {\n\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n ...Props.Disabled,\n\n /**\n * @type {PropType<array|string>}\n */\n modelValue: {\n type: [Array, String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n arrive: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<any>}\n */\n clearArrive: {\n default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n depart: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<any>}\n */\n clearDepart: {\n default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n range: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<number>}\n */\n panels: {\n type: [Number], default: 1\n },\n\n /**\n * @type {PropType<string>}\n */\n format: {\n type: [String], default: 'YYYY-MM-DD HH:mm:ss'\n },\n\n /**\n * @type {PropType<any>}\n */\n minDate: {\n default: null\n },\n\n /**\n * @type {PropType<any>}\n */\n maxDate: {\n default: null\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NDatepickerPanel',\n\n /**\n * @type {typeof NDatepickerPanelProps}\n */\n props: NDatepickerPanelProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n 'update:arrive',\n 'update:depart',\n ],\n\n setup(props, context)\n {\n let ncx = new NDatepickerPanelController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Dom, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { NDatepickerController } from \"./NDatepickerController.ts\";\nimport { NPopoverPanelView } from \"../../../popover/js/popover-panel/NPopoverPanelView.ts\";\nimport { NDatepickerPanelProps } from \"../datepicker-panel/NDatepickerPanel.ts\";\n\nexport class NDatepickerView extends NPopoverPanelView\n{\n /**\n * @type {NDatepickerController}\n */\n declare scope : NDatepickerController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-datepicker';\n\n display() : any\n {\n return this.div('display', [\n this.handle(),\n this.input(),\n this.range(),\n this.clear(),\n this.angle(),\n ]);\n }\n\n input() : any\n {\n const { scope, data } = this.scope;\n\n if ( data.range ) {\n return null;\n }\n\n let props : any = {\n ref: scope.ref('input'),\n value: data.input,\n placeholder: data.placeholder,\n };\n\n props.onInput = (e : any) => {\n scope.set('input', e.target.value);\n };\n\n props.onFocus = () => {\n scope.onFocus();\n };\n\n props.onKeydown = (e : any) => {\n if ( e.which === 9 ) scope.onBlur();\n if ( e.which === 13 ) scope.onInput();\n };\n\n return this.div('input', [\n h('input', props)\n ]);\n }\n\n range()\n {\n return [\n this.arrive(), this.seperator(), this.depart()\n ];\n }\n\n seperator()\n {\n const { data } = this.scope;\n\n if ( ! data.range ) {\n return null;\n }\n\n return this.div('seperator', [\n data.rangeSeperator\n ]);\n }\n\n arrive() : any\n {\n const { scope, data } = this.scope;\n\n if ( ! data.range ) {\n return null;\n }\n\n let props : any = {\n ref: scope.ref('arrive'),\n value: data.inputs[0],\n placeholder: data.placeholderArrive,\n };\n\n props.onInput = (e : any) => {\n scope.vals['inputs'].value[0] = e.target.value;\n };\n\n props.onFocus = () => {\n scope.onFocus();\n };\n\n props.onKeydown = (e : any) => {\n // if ( e.which === 9 ) scope.onBlur();\n if ( e.which === 13 ) scope.onArrive();\n };\n\n return this.div('input', [\n h('input', props)\n ]);\n }\n\n depart() : any\n {\n const { scope, data } = this.scope;\n\n if ( ! data.range ) {\n return null;\n }\n\n let props : any = {\n ref: scope.ref('depart'),\n value: data.inputs[1],\n placeholder: data.placeholderDepart,\n };\n\n props.onInput = (e : any) => {\n scope.vals['inputs'].value[1] = e.target.value;\n };\n\n props.onFocus = () => {\n scope.onFocus();\n };\n\n props.onKeydown = (e : any) => {\n if ( e.which === 9 ) scope.onBlur();\n if ( e.which === 13 ) scope.onDepart();\n };\n\n return this.div('input', [\n h('input', props)\n ]);\n }\n\n panel() : any\n {\n const { scope, data } = this.scope;\n\n let props = {\n ref: scope.ref('panel'),\n class: ['n-popover-shadow']\n };\n\n props = scope.passProps(props, [\n ...Mix.keys(NDatepickerPanelProps)\n ]);\n\n props['onUpdate:modelValue'] = (value : any) => {\n scope.update('modelValue', value);\n };\n\n props['onUpdate:arrive'] = (value : any) => {\n scope.update('arrive', value);\n };\n\n props['onUpdate:depart'] = (value : any) => {\n scope.update('depart', value);\n };\n\n return this.comp('n-datepicker-panel', props);\n }\n\n}\n\nexport default NDatepickerView;","import { Arr, Mix, Now, Obj } from \"@kizmann/pico-js\";\nimport { ProtoExtend, PositionData, TextData } from \"../../../root/index.ts\";\nimport { NPopoverPanelData } from \"../../../popover/js/popover-panel/NPopoverPanelData.ts\";\nimport { NDatepickerController } from \"./NDatepickerController.ts\";\n\nexport class NDatepickerData extends ProtoExtend([NPopoverPanelData, PositionData, TextData])\n{\n /**\n * @type {NDatepickerController}\n */\n declare scope : NDatepickerController;\n\n get model() : string\n {\n return this.scope.get('modelValue');\n }\n\n get date() : Now\n {\n return this.scope.get('date');\n }\n\n get dates() : Now\n {\n return this.scope.get('dates');\n }\n\n get input() : string\n {\n return this.scope.get('input');\n }\n\n get inputs() : string\n {\n return this.scope.get('inputs');\n }\n\n get range() : boolean\n {\n return this.scope.get('range');\n }\n\n get placeholder() : string\n {\n return this.scope.get('placeholder');\n }\n\n get placeholderArrive() : string\n {\n return this.scope.get('placeholderArrive');\n }\n\n get placeholderDepart() : string\n {\n return this.scope.get('placeholderDepart');\n }\n\n get format() : string\n {\n return this.scope.get('format');\n }\n\n get displayFormat() : string\n {\n return this.scope.get('displayFormat');\n }\n\n get rangeSeperator() : string\n {\n return this.scope.get('rangeSeperator');\n }\n\n get minDate() : any\n {\n return this.scope.get('minDate');\n }\n\n get maxDate() : any\n {\n return this.scope.get('maxDate');\n }\n\n get clearArrive() : any\n {\n return this.scope.get('clearArrive');\n }\n\n get clearDepart() : any\n {\n return this.scope.get('clearDepart');\n }\n\n}\n\nexport interface NDatepickerData extends NPopoverPanelData, PositionData, TextData {\n}\n\nexport default NDatepickerData;","import { onMounted, SetupContext } from \"vue\";\nimport { Arr, Locale, Mix, Now, Obj, Run, Str } from \"@kizmann/pico-js\";\nimport { NPopoverPanelController } from \"../../../popover/js/popover-panel/NPopoverPanelController.ts\";\nimport { NDatepickerView } from \"./NDatepickerView.ts\";\nimport { NDatepickerData } from \"./NDatepickerData.ts\";\nimport { NDateHelper } from \"../helper/NDateHelper.ts\";\n\nexport class NDatepickerController extends NPopoverPanelController\n{\n /**\n * @type {NDatepickerController}\n */\n declare scope : NDatepickerController;\n\n /**\n * @type {NDatepickerData}\n */\n declare data : NDatepickerData;\n\n /**\n * @type {NDatepickerView}\n */\n declare view : NDatepickerView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n // @ts-ignore\n new NDatepickerView(this),\n // @ts-ignore\n new NDatepickerData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this\n .makeRef('input')\n .makeRef('arrive')\n .makeRef('depart')\n .makeRef('panel');\n\n this\n .cloneProp('modelValue')\n .cloneProp('arrive')\n .cloneProp('depart');\n\n this\n .makeData('input')\n .makeData('inputs')\n .makeData('date')\n .makeData('dates');\n\n this.watchData('modelValue', () => {\n this.updateDates();\n });\n\n this.updateDates();\n\n return this;\n }\n\n updateDates()\n {\n const { data } = this;\n\n const date = this.set('date', ...[\n NDateHelper.getDate(this)\n ]);\n\n this.set('input', ...[\n date.input ? date.format(data.displayFormat) : '',\n ]);\n\n const dates = this.set('dates', ...[\n NDateHelper.getDates(this)\n ]);\n\n this.set('inputs', [\n dates[0].input ? dates[0].format(data.displayFormat) : '',\n dates[1].input ? dates[1].format(data.displayFormat) : '',\n ]);\n }\n\n applyClear()\n {\n let model = Obj.clone(...[\n this.data.clearValue\n ]);\n\n const arrive = Obj.clone(...[\n this.data.clearArrive\n ]);\n\n const depart = Obj.clone(...[\n this.data.clearDepart\n ]);\n\n if ( this.data.range ) {\n model = [arrive, depart];\n }\n\n this.update('modelValue', model);\n\n if ( this.data.range ) {\n this.update('arrive', arrive);\n this.update('depart', depart);\n }\n\n this.updateDates();\n }\n\n onClose()\n {\n this.ref('input')?.value?.blur();\n this.ref('arrive')?.value?.blur();\n this.ref('depart')?.value?.blur();\n this.updateDates();\n }\n\n onInput()\n {\n const { data } = this;\n\n let date = Now.make(...[\n data.input, data.displayFormat\n ]);\n\n if ( !date.valid() ) {\n return this.updateDates();\n }\n\n if ( data.minDate && date.before(data.minDate) ) {\n date = Now.make(data.minDate);\n }\n\n if ( data.maxDate && date.after(data.maxDate) ) {\n date = Now.make(data.maxDate);\n }\n\n this.update(...[\n 'modelValue', date.format(data.format)\n ]);\n }\n\n onArrive()\n {\n const { data } = this;\n\n let date = Now.make(...[\n data.inputs[0], data.displayFormat\n ]);\n\n if ( !date.valid() ) {\n return this.updateDates();\n }\n\n if ( data.minDate && date.before(data.minDate) ) {\n date = Now.make(data.minDate);\n }\n\n if ( data.maxDate && date.after(data.maxDate) ) {\n date = Now.make(data.maxDate);\n }\n\n let items = [\n date, data.dates[1]\n ];\n\n items = Arr.each(items, (item:Now) => {\n return item.format(data.format);\n });\n\n this.update(...[\n 'arrive', date.format(data.format)\n ]);\n\n this.update('modelValue', items);\n }\n\n onDepart()\n {\n const { data } = this;\n\n let date = Now.make(...[\n data.inputs[1], data.displayFormat\n ]);\n\n if ( !date.valid() ) {\n return this.updateDates();\n }\n\n if ( data.minDate && date.before(data.minDate) ) {\n date = Now.make(data.minDate);\n }\n\n if ( data.maxDate && date.after(data.maxDate) ) {\n date = Now.make(data.maxDate);\n }\n\n let items = [\n data.dates[0], date\n ];\n\n items = Arr.each(items, (item:Now) => {\n return item.format(data.format);\n });\n\n this.update(...[\n 'depart', date.format(data.format)\n ]);\n\n this.update('modelValue', items);\n }\n\n}\n\nexport default NDatepickerController;","import { PropType, defineComponent } from \"vue\";\nimport { Props, Styler } from \"../../../root/index.ts\";\nimport { NDatepickerController } from \"./NDatepickerController.ts\";\nimport { NDatepickerPanelProps } from \"../datepicker-panel/NDatepickerPanel.ts\";\n\nexport const NDatepickerProps = {\n\n ...Props.Clearable,\n ...Props.ClearValue,\n ...Props.PositionBottomStart,\n ...NDatepickerPanelProps,\n\n /**\n * @type {PropType<string>}\n */\n placeholder: {\n type: [String], default: 'Select date'\n },\n\n /**\n * @type {PropType<string>}\n */\n placeholderArrive: {\n type: [String], default: 'Start date'\n },\n\n /**\n * @type {PropType<string>}\n */\n placeholderDepart: {\n type: [String], default: 'End date'\n },\n\n /**\n * @type {PropType<string>}\n */\n rangeSeperator: {\n type: [String], default: '-'\n },\n\n /**\n * @type {PropType<string>}\n */\n displayFormat: {\n type: [String], default: 'YYYY-MM-DD'\n },\n\n /**\n * @type {PropType<string>}\n */\n icon: {\n type: [String], default: () => Styler.icon('calendar')\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NDatepicker',\n\n /**\n * @type {typeof NDatepickerProps}\n */\n props: NDatepickerProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n 'update:arrive',\n 'update:depart',\n ],\n\n setup(props, context)\n {\n let ncx = new NDatepickerController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Mix, Now, Obj, Run } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NTimepickerPanelController } from \"./NTimepickerPanelController.ts\";\n\nexport class NTimepickerPanelView extends ProtoView\n{\n /**\n * @type {NTimepickerPanelController}\n */\n declare scope : NTimepickerPanelController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-timepicker-panel';\n\n default() : any\n {\n let { data } = this.scope;\n\n let props = {\n class: data.classList\n };\n\n return h('div', props, [\n this.header(), this.body()\n ]);\n }\n\n header()\n {\n const { data } = this.scope;\n\n let timeProps = {\n class: data.classPart('time')\n };\n\n let time = data.date.format(...[\n data.displayFormat\n ]);\n\n if ( !data.date.input ) {\n time = data.placeholder;\n }\n\n const display = this.div('display', [\n h('span', timeProps, [time])\n ]);\n\n return this.div('header', [display]);\n }\n\n body() : any\n {\n return this.div('body', [\n this.hours(), this.minutes(), this.seconds()\n ]);\n }\n\n hours() : any\n {\n const { data } = this.scope;\n\n if ( !/HH/.test(data.displayFormat) ) {\n return null;\n }\n\n const items = Arr.each(data.hoursGrid, (hour : any) => {\n return this.item(hour, 'HH');\n });\n\n let props : any = {\n class: data.classPart('panel'),\n };\n\n let selector = [\n `[data-index=\"${data.date.format('HH')}\"]`\n ];\n\n props.onReady = (ncx : any) => {\n data.date.input && ncx.scrollCenter(...selector);\n };\n\n return this.comp('n-scrollbar', props, () => items);\n }\n\n minutes()\n {\n const { data } = this.scope;\n\n if ( !/mm/.test(data.displayFormat) ) {\n return null;\n }\n\n const items = Arr.each(data.minutesGrid, (minute : any) => {\n return this.item(minute, 'mm');\n });\n\n let props : any = {\n class: data.classPart('panel'),\n };\n\n let selector = [\n `[data-index=\"${data.date.format('mm')}\"]`\n ];\n\n props.onReady = (ncx : any) => {\n data.date.input && ncx.scrollCenter(...selector);\n };\n\n return this.comp('n-scrollbar', props, () => items);\n }\n\n seconds()\n {\n const { data } = this.scope;\n\n if ( !/ss/.test(data.displayFormat) ) {\n return null;\n }\n\n const items = Arr.each(data.secondsGrid, (second : any) => {\n return this.item(second, 'ss');\n });\n\n let props : any = {\n class: data.classPart('panel'),\n };\n\n let selector = [\n `[data-index=\"${data.date.format('ss')}\"]`\n ];\n\n props.onReady = (ncx : any) => {\n data.date.input && ncx.scrollCenter(...selector);\n };\n\n return this.comp('n-scrollbar', props, () => items);\n }\n\n item(item : Now, format : string) : any\n {\n const { scope, data } = this.scope;\n\n let props : any = {\n class: data.classPart('item'),\n };\n\n props['data-index'] = item.format(format);\n\n if ( data.date.input && data.date.equal(item, format) ) {\n props.class.push('n-selected');\n }\n\n props.onPointerdown = () => {\n scope.onMousedown(item);\n };\n\n return this.div(props, [\n h('span', null, [item.format(format)])\n ]);\n }\n\n}\n\nexport default NTimepickerPanelView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NTimepickerPanelController from \"./NTimepickerPanelController.ts\";\nimport { Now } from \"@kizmann/pico-js\";\n\nexport class NTimepickerPanelData extends ProtoData\n{\n /**\n * @type {NTimepickerPanelController}\n */\n declare scope : NTimepickerPanelController;\n\n get classList() : string[]\n {\n let classList = [];\n\n return this.classRoot(classList);\n }\n\n get model() : string\n {\n return this.scope.get('modelValue');\n }\n\n get date() : Now\n {\n return this.scope.get('dateValue');\n }\n\n get placeholder() : string\n {\n return this.scope.get('placeholder');\n }\n\n get format() : string\n {\n return this.scope.get('format');\n }\n\n get displayFormat() : string\n {\n return this.scope.get('displayFormat');\n }\n\n get hoursInterval() : number\n {\n return this.scope.get('hoursInterval');\n }\n\n get minutesInterval() : number\n {\n return this.scope.get('minutesInterval');\n }\n\n get secondsInterval() : number\n {\n return this.scope.get('secondsInterval');\n }\n\n get gridDate() : Now\n {\n return this.date.reset({ time: !this.date.input });\n }\n\n get hoursGrid() : Now[]\n {\n return this.gridDate.getHoursGrid(this.hoursInterval);\n }\n\n get minutesGrid() : Now[]\n {\n return this.gridDate.getMinutesGrid(this.minutesInterval);\n }\n\n get secondsGrid() : Now[]\n {\n return this.gridDate.getSecondsGrid(this.secondsInterval);\n }\n\n}\n\nexport default NTimepickerPanelData;","import { SetupContext } from \"vue\";\nimport { Arr, Mix, Now, Obj } from \"@kizmann/pico-js\";\nimport { GroupController } from \"../../../root/index.ts\";\nimport { NTimepickerPanelView } from \"./NTimepickerPanelView.ts\";\nimport { NTimepickerPanelData } from \"./NTimepickerPanelData.ts\";\n\nexport class NTimepickerPanelController extends GroupController\n{\n /**\n * @type {NTimepickerPanelController}\n */\n declare scope : NTimepickerPanelController;\n\n /**\n * @type {NTimepickerPanelData}\n */\n declare data : NTimepickerPanelData;\n\n /**\n * @type {NTimepickerPanelView}\n */\n declare view : NTimepickerPanelView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NTimepickerPanelView(this),\n new NTimepickerPanelData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.cloneProp('modelValue');\n\n // this.makeRef('el');\n\n this.makeLinkProp('dateValue', 'modelValue', () => {\n return Now.make(this.data.model);\n });\n\n return this;\n }\n\n onMousedown(item : Now)\n {\n const { data } = this;\n\n this.update('modelValue', ...[\n item.format(data.format)\n ]);\n\n this.set('dateValue', item);\n }\n\n}\n\nexport default NTimepickerPanelController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NTimepickerPanelController } from \"./NTimepickerPanelController.ts\";\n\nexport const NTimepickerPanelProps = {\n\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n ...Props.Disabled,\n\n /**\n * @type {PropType<string>}\n */\n modelValue: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n placeholder: {\n type: [String], default: 'Select time'\n },\n\n /**\n * @type {PropType<string>}\n */\n format: {\n type: [String], default: 'YYYY-MM-DD HH:mm:ss'\n },\n\n /**\n * @type {PropType<string>}\n */\n displayFormat: {\n type: [String], default: 'HH:mm:ss'\n },\n\n /**\n * @type {PropType<number>}\n */\n hoursInterval: {\n type: [Number], default: 1\n },\n\n /**\n * @type {PropType<number>}\n */\n minutesInterval: {\n type: [Number], default: 1\n },\n\n /**\n * @type {PropType<number>}\n */\n secondsInterval: {\n type: [Number], default: 1\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NTimepickerPanel',\n\n /**\n * @type {typeof NTimepickerPanelProps}\n */\n props: NTimepickerPanelProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NTimepickerPanelController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Dom, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { NTimepickerController } from \"./NTimepickerController.ts\";\nimport { NPopoverPanelView } from \"../../../popover/js/popover-panel/NPopoverPanelView.ts\";\nimport { NTimepickerPanelProps } from \"../timepicker-panel/NTimepickerPanel.ts\";\n\nexport class NTimepickerView extends NPopoverPanelView\n{\n /**\n * @type {NTimepickerController}\n */\n declare scope : NTimepickerController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-timepicker';\n\n display() : any\n {\n return this.div('display', [\n this.handle(),\n this.input(),\n this.clear(),\n this.angle(),\n ]);\n }\n\n input() : any\n {\n const { scope, data } = this.scope;\n\n let props : any = {\n ref: scope.ref('input'),\n value: data.input,\n placeholder: data.placeholder,\n };\n\n props.onInput = (e : any) => {\n scope.set('input', e.target.value);\n };\n\n props.onFocus = () => {\n scope.onFocus();\n };\n\n props.onKeydown = (e : any) => {\n if ( e.which === 9 ) scope.onBlur();\n if ( e.which === 13 ) scope.onEnter();\n };\n\n return this.div('input', [\n h('input', props)\n ]);\n }\n\n panel() : any\n {\n const { scope, data } = this.scope;\n\n let props = {\n ref: scope.ref('panel'),\n class: ['n-popover-shadow']\n };\n\n props = scope.passProps(props, [\n ...Mix.keys(NTimepickerPanelProps)\n ]);\n\n props['onUpdate:modelValue'] = (value : any) => {\n scope.update('modelValue', value);\n };\n\n return this.comp('n-timepicker-panel', props);\n }\n\n}\n\nexport default NTimepickerView;","import { Arr, Mix, Now, Obj } from \"@kizmann/pico-js\";\nimport { ProtoExtend, PositionData, TextData } from \"../../../root/index.ts\";\nimport { NPopoverPanelData } from \"../../../popover/js/popover-panel/NPopoverPanelData.ts\";\nimport { NTimepickerController } from \"./NTimepickerController.ts\";\n\nexport class NTimepickerData extends ProtoExtend([NPopoverPanelData, PositionData, TextData])\n{\n /**\n * @type {NTimepickerController}\n */\n declare scope : NTimepickerController;\n\n get model() : string\n {\n return this.scope.get('modelValue');\n }\n\n get date() : Now\n {\n return this.scope.get('date');\n }\n\n get input() : string\n {\n return this.scope.get('input');\n }\n\n get placeholder() : string\n {\n return this.scope.get('placeholder');\n }\n\n get format() : string\n {\n return this.scope.get('format');\n }\n\n get displayFormat() : string\n {\n return this.scope.get('displayFormat');\n }\n\n}\n\nexport interface NTimepickerData extends NPopoverPanelData, PositionData, TextData {\n}\n\nexport default NTimepickerData;","import { SetupContext } from \"vue\";\nimport { Now } from \"@kizmann/pico-js\";\nimport { NPopoverPanelController } from \"../../../popover/js/popover-panel/NPopoverPanelController.ts\";\nimport { NTimepickerView } from \"./NTimepickerView.ts\";\nimport { NTimepickerData } from \"./NTimepickerData.ts\";\nimport { NDateHelper } from \"../helper/NDateHelper.ts\";\n\nexport class NTimepickerController extends NPopoverPanelController\n{\n /**\n * @type {NTimepickerController}\n */\n declare scope : NTimepickerController;\n\n /**\n * @type {NTimepickerData}\n */\n declare data : NTimepickerData;\n\n /**\n * @type {NTimepickerView}\n */\n declare view : NTimepickerView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n // @ts-ignore\n new NTimepickerView(this),\n // @ts-ignore\n new NTimepickerData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.cloneProp('modelValue');\n\n this\n .makeRef('input')\n .makeRef('panel');\n\n this\n .makeData('date')\n .makeData('input');\n\n this.watchData('modelValue', () => {\n this.updateDates();\n });\n\n this.updateDates();\n\n return this;\n }\n\n updateDates()\n {\n const { data } = this;\n\n const date = this.set('date', ...[\n NDateHelper.getDate(this)\n ]);\n\n this.set('input', ...[\n date.input ? date.format(data.displayFormat) : '',\n ]);\n }\n\n onClose()\n {\n this.ref('input')?.value.blur()\n this.updateDates();\n }\n\n onEnter()\n {\n const { data } = this;\n\n const date = Now.make(...[\n data.input, data.displayFormat\n ]);\n\n if ( ! date.valid() ) {\n return this.updateDates();\n }\n\n this.update(...[\n 'modelValue', date.format(data.format)\n ]);\n }\n\n}\n\nexport default NTimepickerController;","import { PropType, defineComponent } from \"vue\";\nimport { Props, Styler } from \"../../../root/index.ts\";\nimport { NTimepickerController } from \"./NTimepickerController.ts\";\nimport { NTimepickerPanelProps } from \"../timepicker-panel/NTimepickerPanel.ts\";\n\nexport const NTimepickerProps = {\n\n ...Props.Clearable,\n ...Props.ClearValue,\n ...Props.PositionBottomStart,\n ...NTimepickerPanelProps,\n\n /**\n * @type {PropType<string>}\n */\n icon: {\n type: [String], default: () => Styler.icon('clock')\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NTimepicker',\n\n /**\n * @type {typeof NTimepickerProps}\n */\n props: NTimepickerProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NTimepickerController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Dom, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { NDatetimepickerController } from \"./NDatetimepickerController.ts\";\nimport { NPopoverPanelView } from \"../../../popover/js/popover-panel/NPopoverPanelView.ts\";\nimport { Styler } from \"../../../root/index.ts\";\n\nexport class NDatetimepickerView extends NPopoverPanelView\n{\n /**\n * @type {NDatetimepickerController}\n */\n declare scope : NDatetimepickerController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-datetimepicker';\n\n display() : any\n {\n return this.div('display', [\n this.handle(),\n this.input(),\n this.clear(),\n this.angle(),\n ]);\n }\n\n input() : any\n {\n const { scope, data } = this.scope;\n\n if ( data.range ) {\n return null;\n }\n\n let props : any = {\n ref: scope.ref('input'),\n value: data.input,\n placeholder: data.placeholder,\n };\n\n props.onInput = (e : any) => {\n scope.set('input', e.target.value);\n };\n\n props.onFocus = () => {\n scope.onFocus();\n };\n\n props.onKeydown = (e : any) => {\n if ( e.which === 9 ) scope.onBlur();\n if ( e.which === 13 ) scope.onInput();\n };\n\n return this.div('input', [\n h('input', props)\n ]);\n }\n\n panel() : any\n {\n let props = {\n class: [`${this.bem}-panel`, 'n-popover-shadow']\n };\n\n return h('div', props, [\n this.datepicker(), this.timepicker()\n ]);\n }\n\n datepicker() : any\n {\n const { scope, data } = this.scope;\n\n let props = {\n ref: scope.ref('datepicker'),\n class: `${this.bem}__date-panel`,\n };\n\n props = scope.passProps(props, [\n 'modelValue',\n 'clearValue',\n 'panels',\n 'format',\n 'minDate',\n 'maxDate',\n ]);\n\n props['onUpdate:modelValue'] = (value : any) => {\n scope.update('modelValue', value);\n };\n\n return this.comp('n-datepicker-panel', props);\n }\n\n timepicker() : any\n {\n const { scope, data } = this.scope;\n\n let props = {\n ref: scope.ref('timepicker'),\n class: `${this.bem}__time-panel`,\n };\n\n props = scope.passProps(props, [\n 'modelValue',\n 'clearValue',\n 'format',\n ]);\n\n props['onUpdate:modelValue'] = (value : any) => {\n scope.update('modelValue', value);\n };\n\n return this.comp('n-timepicker-panel', props);\n }\n\n}\n\nexport default NDatetimepickerView;","import { Arr, Mix, Now, Obj } from \"@kizmann/pico-js\";\nimport { ProtoExtend, PositionData, TextData } from \"../../../root/index.ts\";\nimport { NPopoverPanelData } from \"../../../popover/js/popover-panel/NPopoverPanelData.ts\";\nimport { NDatetimepickerController } from \"./NDatetimepickerController.ts\";\n\nexport class NDatetimepickerData extends ProtoExtend([NPopoverPanelData, PositionData, TextData])\n{\n /**\n * @type {NDatetimepickerController}\n */\n declare scope : NDatetimepickerController;\n\n get model() : string\n {\n return this.scope.get('modelValue');\n }\n\n get date() : Now\n {\n return this.scope.get('date');\n }\n\n get input() : string\n {\n return this.scope.get('input');\n }\n\n get placeholder() : string\n {\n return this.scope.get('placeholder');\n }\n\n get format() : string\n {\n return this.scope.get('format');\n }\n\n get displayFormat() : string\n {\n return this.scope.get('displayFormat');\n }\n\n get minDate() : any\n {\n return this.scope.get('minDate');\n }\n\n get maxDate() : any\n {\n return this.scope.get('maxDate');\n }\n\n}\n\nexport interface NDatetimepickerData extends NPopoverPanelData,\n PositionData,\n TextData {\n //\n}\n\nexport default NDatetimepickerData;","import { SetupContext } from \"vue\";\nimport { Arr, Locale, Mix, Now, Obj, Run, Str } from \"@kizmann/pico-js\";\nimport { NPopoverPanelController } from \"../../../popover/js/popover-panel/NPopoverPanelController.ts\";\nimport { NDatetimepickerView } from \"./NDatetimepickerView.ts\";\nimport { NDatetimepickerData } from \"./NDatetimepickerData.ts\";\nimport { NDateHelper } from \"../helper/NDateHelper.ts\";\n\nexport class NDatetimepickerController extends NPopoverPanelController\n{\n /**\n * @type {NDatetimepickerController}\n */\n declare scope : NDatetimepickerController;\n\n /**\n * @type {NDatetimepickerData}\n */\n declare data : NDatetimepickerData;\n\n /**\n * @type {NDatetimepickerView}\n */\n declare view : NDatetimepickerView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n // @ts-ignore\n new NDatetimepickerView(this),\n // @ts-ignore\n new NDatetimepickerData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this\n .makeRef('input')\n .makeRef('datepicker')\n .makeRef('timepicker');\n\n this.cloneProp('modelValue');\n\n this\n .makeData('input')\n .makeData('date');\n\n this.watchData('modelValue', () => {\n this.updateDates();\n });\n\n this.updateDates();\n\n return this;\n }\n\n updateDates()\n {\n const { data } = this;\n\n const date = this.set('date', ...[\n NDateHelper.getDate(this)\n ]);\n\n this.set('input', ...[\n date.input ? date.format(data.displayFormat) : '',\n ]);\n }\n\n onClose()\n {\n this.ref('input')?.value?.blur();\n this.updateDates();\n }\n\n onInput()\n {\n const { data } = this;\n\n let date = Now.make(...[\n data.input, data.displayFormat\n ]);\n\n if ( !date.valid() ) {\n return this.updateDates();\n }\n\n if ( data.minDate && date.before(data.minDate) ) {\n date = Now.make(data.minDate);\n }\n\n if ( data.maxDate && date.after(data.maxDate) ) {\n date = Now.make(data.maxDate);\n }\n\n this.update(...[\n 'modelValue', date.format(data.format)\n ]);\n }\n\n}\n\nexport default NDatetimepickerController;","import { PropType, defineComponent } from \"vue\";\nimport { Props, Styler } from \"../../../root/index.ts\";\nimport { NDatetimepickerController } from \"./NDatetimepickerController.ts\";\n\nexport const NDatetimepickerProps = {\n\n ...Props.Type,\n ...Props.Size,\n ...Props.Disabled,\n ...Props.Clearable,\n ...Props.ClearValue,\n ...Props.PositionBottomStart,\n\n /**\n * @type {PropType<any>}\n */\n modelValue: {\n default: null\n },\n\n /**\n * @type {PropType<any>}\n */\n minDate: {\n default: null\n },\n\n /**\n * @type {PropType<any>}\n */\n maxDate: {\n default: null\n },\n\n /**\n * @type {PropType<number>}\n */\n panels: {\n type: [Number], default: 1\n },\n\n /**\n * @type {PropType<string>}\n */\n placeholder: {\n type: [String], default: 'Select datetime'\n },\n\n /**\n * @type {PropType<string>}\n */\n format: {\n type: [String], default: 'YYYY-MM-DD HH:mm:ss'\n },\n\n /**\n * @type {PropType<string>}\n */\n displayFormat: {\n type: [String], default: 'YYYY-MM-DD HH:mm:ss'\n },\n\n /**\n * @type {PropType<string>}\n */\n icon: {\n type: [String], default: () => Styler.icon('calendar')\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NDatetimepicker',\n\n /**\n * @type {typeof NDatetimepickerProps}\n */\n props: NDatetimepickerProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NDatetimepickerController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Dom, Hash, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { NDurationpickerController } from \"./NDurationpickerController.ts\";\nimport { NPopoverPanelView } from \"../../../popover/js/popover-panel/NPopoverPanelView.ts\";\nimport { Styler } from \"../../../root/index.ts\";\nimport { NDateHelper } from \"../helper/NDateHelper.ts\";\n\nexport class NDurationpickerView extends NPopoverPanelView\n{\n /**\n * @type {NDurationpickerController}\n */\n declare scope : NDurationpickerController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-durationpicker';\n\n /**\n * @type {any}\n */\n popoverConfig : any = {\n width: -1,\n };\n\n display() : any\n {\n return this.div('display', [\n this.handle(),\n this.input(),\n this.clear(),\n this.angle(),\n ]);\n }\n\n input() : any\n {\n const { scope, data } = this.scope;\n\n if ( data.range ) {\n return null;\n }\n\n let props : any = {\n ref: scope.ref('input'),\n value: data.input,\n placeholder: data.placeholder,\n };\n\n props.onInput = (e : any) => {\n scope.set('input', e.target.value);\n };\n\n props.onFocus = () => {\n scope.onFocus();\n };\n\n props.onKeydown = (e : any) => {\n if ( e.which === 9 ) scope.onBlur();\n if ( e.which === 13 ) scope.onInput();\n if ( e.which === 38 ) scope.scrollToIndex(data.index - 1);\n if ( e.which === 40 ) scope.scrollToIndex(data.index + 1);\n };\n\n return this.div('input', [\n h('input', props)\n ]);\n }\n\n panel() : any\n {\n const { scope, data } = this.scope;\n\n if ( !data.options.length ) {\n return this.empty();\n }\n\n const items = Arr.each(data.options, (value : any) => {\n return { value };\n })\n\n let props : any = {\n ref: scope.ref('scrollbar'),\n class: [`${this.bem}__body`, 'n-popover-shadow'],\n items: items,\n };\n\n props.onReady = () => {\n this.scope.onReady();\n };\n\n const slots : any = {};\n\n slots.default = (item : any) => {\n return this.item(item);\n };\n\n return this.comp('n-virtualbar', props, slots);\n }\n\n item({ value, index }) : any\n {\n const { scope, data } = this.scope;\n\n let props : any = {\n focus: index === data.index\n };\n\n props.onClick = () => {\n scope.set('index', index);\n scope.update('modelValue', value.value);\n };\n\n props.active = Arr.has(...[\n data.model, value.value\n ]);\n\n if ( props.active ) {\n props.icon = Styler.icon('check');\n }\n\n return this.comp('n-popover-option', props, () => [\n NDateHelper.getDurationString(this.scope, value.value)\n ]);\n }\n\n}\n\nexport default NDurationpickerView;","import { Arr, Mix, Now, Obj } from \"@kizmann/pico-js\";\nimport { ProtoExtend, PositionData, TextData } from \"../../../root/index.ts\";\nimport { NPopoverPanelData } from \"../../../popover/js/popover-panel/NPopoverPanelData.ts\";\nimport { NDurationpickerController } from \"./NDurationpickerController.ts\";\n\nexport class NDurationpickerData extends ProtoExtend([NPopoverPanelData, PositionData, TextData])\n{\n /**\n * @type {NDurationpickerController}\n */\n declare scope : NDurationpickerController;\n\n get model() : string\n {\n return this.scope.get('modelValue');\n }\n\n get input() : string\n {\n return this.scope.get('input');\n }\n\n get index() : number\n {\n return this.scope.get('index');\n }\n\n get options() : string\n {\n return this.scope.get('options');\n }\n\n get placeholder() : string\n {\n return this.scope.get('placeholder');\n }\n\n get minDuration() : any\n {\n return this.scope.get('minDuration');\n }\n\n get maxDuration() : any\n {\n return this.scope.get('maxDuration');\n }\n\n}\n\nexport interface NDurationpickerData extends NPopoverPanelData,\n PositionData,\n TextData\n{\n //\n}\n\nexport default NDurationpickerData;","import { SetupContext } from \"vue\";\nimport { Arr, Locale, Mix, Now, Num, Obj, Run, Str } from \"@kizmann/pico-js\";\nimport { NPopoverPanelController } from \"../../../popover/js/popover-panel/NPopoverPanelController.ts\";\nimport { NDurationpickerView } from \"./NDurationpickerView.ts\";\nimport { NDurationpickerData } from \"./NDurationpickerData.ts\";\nimport { NDateHelper } from \"../helper/NDateHelper.ts\";\n\nexport class NDurationpickerController extends NPopoverPanelController\n{\n /**\n * @type {NDurationpickerController}\n */\n declare scope : NDurationpickerController;\n\n /**\n * @type {NDurationpickerData}\n */\n declare data : NDurationpickerData;\n\n /**\n * @type {NDurationpickerView}\n */\n declare view : NDurationpickerView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n // @ts-ignore\n new NDurationpickerView(this),\n // @ts-ignore\n new NDurationpickerData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this\n .cloneProp('modelValue');\n\n this\n .makeData('input')\n .makeData('index', 0);\n\n this\n .makeRef('input')\n .makeRef('scrollbar');\n\n this.watchProp('modelValue', () => {\n this.updateDuration();\n });\n\n this.updateDuration();\n\n return this;\n }\n\n updateDuration()\n {\n this.set('input', ...[\n NDateHelper.getDurationString(this),\n ]);\n }\n\n onReady()\n {\n this.scrollToIndex();\n }\n\n onOpen()\n {\n this.focusInput();\n this.resetDisplay();\n }\n\n onClose()\n {\n Run.frame(() => {\n this.updateDuration();\n });\n\n this.ref('input')?.value?.blur();\n }\n\n onInput()\n {\n const intval = NDateHelper.getDurationString(this);\n\n if ( intval === this.data.input ) {\n return this.applyIndex();\n }\n\n const value = NDateHelper.getDurationNumber(...[\n this, this.data.input\n ]);\n\n this.update('modelValue', value);\n }\n\n applyIndex()\n {\n const { data } = this;\n\n const value = Obj.get(...[\n data.options, data.index\n ]);\n\n this.update('modelValue', value);\n }\n\n focusInput()\n {\n Run.frame(() => {\n this.ref('input')?.value?.focus();\n });\n }\n\n resetDisplay()\n {\n const { data } = this;\n\n const index = Arr.findIndex(data.options, [\n data.model\n ], 0);\n\n this.set('index', Math.max(0, index));\n }\n\n scrollToIndex(index = null)\n {\n const { data } = this;\n\n if ( index == null ) {\n index = data.index;\n }\n\n index = Num.minmax(...[\n index, 0, data.options.length - 1\n ]);\n\n if ( index !== data.index ) {\n this.set('index', index);\n }\n\n this.ncx('scrollbar')?.scrollTo(...[\n data.index\n ]);\n }\n\n}\n\nexport default NDurationpickerController;","import { PropType, defineComponent } from \"vue\";\nimport { Props, Styler } from \"../../../root/index.ts\";\nimport NDurationpickerController from \"./NDurationpickerController.ts\";\n\nexport const NDurationpickerOptions = [\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\nexport const NDurationpickerProps = {\n\n ...Props.Type,\n ...Props.Size,\n ...Props.Disabled,\n ...Props.Clearable,\n ...Props.ClearValue,\n ...Props.EmptyText,\n ...Props.PositionBottomStart,\n\n /**\n * @type {PropType<any>}\n */\n modelValue: {\n default: null\n },\n\n /**\n * @type {PropType<array|object>}\n */\n options: {\n type: [Array, Object], default: () => NDurationpickerOptions\n },\n\n /**\n * @type {PropType<any>}\n */\n minDuration: {\n default: null\n },\n\n /**\n * @type {PropType<any>}\n */\n maxDuration: {\n default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n placeholder: {\n type: [String], default: 'Select duration'\n },\n\n /**\n * @type {PropType<string>}\n */\n negativeText: {\n type: [String], default: 'Negative duration'\n },\n\n /**\n * @type {PropType<string>}\n */\n format: {\n type: [String], default: 'YYYY-MM-DD HH:mm:ss'\n },\n\n /**\n * @type {PropType<string>}\n */\n dates: {\n type: [String], default: ':count Day|:count Days'\n },\n\n /**\n * @type {PropType<string>}\n */\n hours: {\n type: [String], default: ':count Hour|:count Hours'\n },\n\n /**\n * @type {PropType<string>}\n */\n minutes: {\n type: [String], default: ':count Minute|:count Minutes'\n },\n\n /**\n * @type {PropType<string>}\n */\n seconds: {\n type: [String], default: ':count Second|:count Seconds'\n },\n\n /**\n * @type {PropType<string>}\n */\n icon: {\n type: [String], default: () => Styler.icon('duration')\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NDurationpicker',\n\n /**\n * @type {typeof NDurationpickerProps}\n */\n props: NDurationpickerProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NDurationpickerController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Obj } from \"@kizmann/pico-js\";\nimport { ProtoView, Styler } from \"../../../root/index.ts\";\nimport { NTransferController } from \"./NTransferController.ts\";\n\nexport class NTransferView extends ProtoView\n{\n /**\n * @type {NTransferController}\n */\n declare scope : NTransferController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-transfer';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n class: data.classList,\n };\n\n return h('div', props, [\n this.source(), this.controls(), this.target()\n ]);\n }\n\n controls() : any\n {\n const { scope } = this.scope;\n\n let moveRightProps : any = {\n square: true,\n icon: Styler.icon('angle-right'),\n };\n\n moveRightProps.disabled = scope.ncx('source')\n ?.data.selected.length === 0;\n\n moveRightProps['onClick'] = () => {\n scope.moveSelectedToTarget();\n };\n\n let moveLeftProps : any = {\n square: true,\n icon: Styler.icon('angle-left'),\n };\n\n moveLeftProps.disabled = scope.ncx('target')\n ?.data.selected.length === 0;\n\n moveLeftProps['onClick'] = () => {\n scope.moveSelectedToSource();\n };\n\n return this.div('controls', [\n this.comp('n-button', moveRightProps),\n this.comp('n-button', moveLeftProps),\n ]);\n }\n\n source_header()\n {\n const { scope, data } = this.scope;\n\n let inputProps : any = {\n modelValue: data.sourceSearch,\n placeholder: data.$sourcePlaceholder,\n clearable: true,\n clearValue: '',\n icon: Styler.icon('search'),\n };\n\n inputProps['onUpdate:modelValue'] = (value : any) => {\n scope.set('sourceSearch', value);\n };\n\n const select = this.div('select', [\n scope.ncx('source')?.view.header_select()\n ]);\n\n const input = this.div('search', [\n this.comp('n-input', inputProps)\n ]);\n\n const title = this.div('title', [\n h('span', data.$sourceLabel), h('span', data.source.length)\n ]);\n\n return this.div('header', [\n select, title, input\n ]);\n }\n\n source() : any\n {\n const { scope, uid, data } = this.scope;\n\n let props : any = {\n ref: scope.ref('source'),\n class: `${this.bem}__body`,\n group: [uid],\n items: data.source,\n allowCurrent: false,\n insertNode: false,\n itemSkip: true,\n renderSelect: true,\n };\n\n props.onRowDblclick = (item : any) => {\n scope.moveToTarget(item);\n };\n\n let slots : any = {};\n\n slots.default = ({ item }) => {\n return Obj.get(item, 'label');\n };\n\n const header = this.source_header();\n\n return this.div('panel', [\n header, this.comp('n-draglist', props, slots)\n ]);\n }\n\n target_header()\n {\n const { scope, data } = this.scope;\n\n let inputProps : any = {\n modelValue: data.targetSearch,\n placeholder: data.$targetPlaceholder,\n clearable: true,\n clearValue: '',\n icon: Styler.icon('search'),\n };\n\n inputProps['onUpdate:modelValue'] = (value : any) => {\n scope.set('targetSearch', value);\n };\n\n const select = this.div('select', [\n scope.ncx('target')?.view.header_select()\n ]);\n\n const input = this.div('search', [\n this.comp('n-input', inputProps)\n ]);\n\n const title = this.div('title', [\n h('span', data.$targetLabel), h('span', data.target.length)\n ]);\n\n return this.div('header', [\n select, title, input\n ]);\n }\n\n target() : any\n {\n const { scope, uid, data } = this.scope;\n\n let props : any = {\n ref: scope.ref('target'),\n class: `${this.bem}__body`,\n group: [uid],\n items: data.target,\n allowCurrent: false,\n insertNode: true,\n removeNode: true,\n itemSkip: true,\n renderSelect: true,\n };\n\n props['onUpdate:items'] = (items : any[]) => {\n scope.update('modelValue', items);\n };\n\n props.onRowDblclick = (item : any) => {\n scope.moveToSource(item);\n };\n\n let slots : any = {};\n\n slots.default = ({ item }) => {\n return Obj.get(item, 'label', 'foobar');\n };\n\n const header = this.target_header();\n\n return this.div('panel', [\n header, this.comp('n-draglist', props, slots)\n ]);\n }\n\n\n}\n\nexport default NTransferView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NTransferController from \"./NTransferController.ts\";\nimport { Locale } from \"@kizmann/pico-js\";\n\nexport class NTransferData extends ProtoData\n{\n /**\n * @type {NTransferController}\n */\n declare scope : NTransferController;\n\n get classList() : string[]\n {\n let classList = [];\n\n return this.classRoot(classList);\n }\n\n get model() : any[]\n {\n return this.scope.get('modelValue');\n }\n\n get source(): any[]\n {\n return this.scope.get('source');\n }\n\n get sourceSearch(): string\n {\n return this.scope.get('sourceSearch');\n }\n\n get target(): any[]\n {\n return this.scope.get('target');\n }\n\n get targetSearch(): string\n {\n return this.scope.get('targetSearch');\n }\n\n get options() : any[]\n {\n return this.scope.get('options');\n }\n\n get labelProp() : string\n {\n return this.scope.get('labelProp');\n }\n\n get uniqueProp() : string\n {\n return this.scope.get('uniqueProp');\n }\n\n get sourceLabel() : string\n {\n return this.scope.get('sourceLabel');\n }\n\n get $sourceLabel() : string\n {\n return Locale.trans(this.sourceLabel);\n }\n\n get sourcePlaceholder() : string\n {\n return this.scope.get('sourcePlaceholder');\n }\n\n get $sourcePlaceholder() : string\n {\n return Locale.trans(this.sourcePlaceholder);\n }\n\n get targetLabel() : string\n {\n return this.scope.get('targetLabel');\n }\n\n get $targetLabel() : string\n {\n return Locale.trans(this.targetLabel);\n }\n\n get targetPlaceholder() : string\n {\n return this.scope.get('targetPlaceholder');\n }\n\n get $targetPlaceholder() : string\n {\n return Locale.trans(this.targetPlaceholder);\n }\n\n}\n\nexport default NTransferData;","import { SetupContext } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NTransferView } from \"./NTransferView.ts\";\nimport { NTransferData } from \"./NTransferData.ts\";\nimport { Arr, Mix, Obj, Str } from \"@kizmann/pico-js\";\n\n\nexport class NTransferController extends ProtoController\n{\n /**\n * @type {NTransferController}\n */\n declare scope : NTransferController;\n\n /**\n * @type {NTransferData}\n */\n declare data : NTransferData;\n\n /**\n * @type {NTransferView}\n */\n declare view : NTransferView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NTransferView(this),\n new NTransferData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n\n this\n .makeRef('source')\n .makeRef('target');\n\n this.cloneProp('modelValue');\n\n this\n .makeData('source')\n .makeData('sourceSearch', '')\n .makeData('target')\n .makeData('targetSearch', '');\n\n this.watchData('modelValue', () => {\n this.updateSource();\n this.updateTarget();\n });\n\n this.watchProp('options', () => {\n this.updateSource();\n this.updateTarget();\n });\n\n this.watchData('sourceSearch', () => {\n this.updateSource();\n });\n\n this.watchData('targetSearch', () => {\n this.updateTarget();\n });\n\n this.updateSource();\n this.updateTarget();\n\n return this;\n }\n\n updateSource()\n {\n const { data } = this.scope;\n\n const [search, unique, label] = [\n data.sourceSearch, data.uniqueProp, data.labelProp\n ];\n\n let uniques = Arr.each(data.model || [], (item : any) => {\n return Obj.get(item, unique);\n });\n\n const sources = Arr.filter(data.options, (item : any) => {\n return !Arr.has(uniques, item[unique]);\n });\n\n const options = Arr.filter(sources, (item : any) => {\n return Str.has(Obj.get(item, label), search);\n });\n\n this.set('source', Arr.sort(options, label));\n }\n\n updateTarget()\n {\n const { data } = this.scope;\n\n const [search, label] = [\n data.targetSearch, data.labelProp\n ];\n\n const options = Arr.filter(data.model || [], (item : any) => {\n return Str.has(Obj.get(item, label), search);\n });\n\n this.set('target', Arr.sort(options, label));\n }\n\n moveToSource(item : any)\n {\n console.log(item);\n const { uniqueProp } = this.data;\n\n const result = Arr.clone(...[\n this.data.model || []\n ]);\n\n Arr.remove(result, item, {\n [uniqueProp]: Obj.get(item, uniqueProp)\n });\n\n this.update('modelValue', result);\n }\n\n moveToTarget(item : any)\n {\n const { uniqueProp } = this.data;\n\n const result = Arr.clone(...[\n this.data.model || []\n ]);\n\n Arr.add(result, item, {\n [uniqueProp]: Obj.get(item, uniqueProp)\n });\n\n this.update('modelValue', result);\n }\n\n moveSelectedToSource()\n {\n const { selected } = this.ncx('target').data;\n\n const result = Arr.clone(...[\n this.data.model || []\n ]);\n\n const { uniqueProp } = this.data;\n\n const items = Arr.filter(result, (item : any) => {\n return !Arr.has(selected, item[uniqueProp]);\n });\n\n this.update('modelValue', items);\n\n }\n\n moveSelectedToTarget()\n {\n const { selected } = this.ncx('source').data;\n\n const result = Arr.clone(...[\n this.data.model || []\n ]);\n\n const { uniqueProp } = this.data;\n\n const items = Arr.each(selected, (uid : string) => {\n return Arr.find(this.data.options, { [uniqueProp]: uid });\n });\n\n Arr.append(...[\n result, ...Arr.filter(items)\n ]);\n\n this.update('modelValue', result);\n }\n\n}\n\nexport default NTransferController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NTransferController } from \"./NTransferController.ts\";\n\nexport const NTransferProps = {\n\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n ...Props.Disabled,\n\n /**\n * @type {PropType<array|object>}\n */\n modelValue: {\n type: [Array,Object], default: null\n },\n\n /**\n * @type {PropType<array|object>}\n */\n options: {\n type: [Array,Object], default: () => []\n },\n\n /**\n * @type {PropType<string>}\n */\n labelProp: {\n type: [String], default: 'label'\n },\n\n /**\n * @type {PropType<string>}\n */\n uniqueProp: {\n type: [String], default: 'id'\n },\n\n /**\n * @type {PropType<string>}\n */\n sourceLabel: {\n type: [String], default: 'Source'\n },\n\n /**\n * @type {PropType<string>}\n */\n targetLabel: {\n type: [String], default: 'Target'\n },\n\n /**\n * @type {PropType<string>}\n */\n sourcePlaceholder: {\n type: [String], default: 'Search source'\n },\n\n /**\n * @type {PropType<string>}\n */\n targetPlaceholder: {\n type: [String], default: 'Search target'\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NTransfer',\n\n /**\n * @type {typeof NTransferProps}\n */\n props: NTransferProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NTransferController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Mix } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NTabsController } from \"./NTabsController.ts\";\nimport NTabsItemController from \"../tabs-item/NTabsItemController.ts\";\n\nexport class NTabsView extends ProtoView\n{\n /**\n * @type {NTabsController}\n */\n declare scope : NTabsController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-tabs';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n ref: scope.ref('el'),\n class: data.classList,\n };\n\n return h('div', props, [\n this.header(), this.body()\n ]);\n }\n\n header() : any\n {\n const { scope, data } = this.scope;\n\n const items = Arr.each(data.sorted, (item: any) => {\n return item.view.header(scope);\n });\n\n const props : any = {\n ref: scope.ref('indicator'),\n name: 'indicator',\n };\n\n const indicator = this.div(props, [\n //\n ]);\n\n return this.div('header', [\n indicator, ...items\n ]);\n }\n\n body() : any\n {\n return this.div('body', [\n this.slot('default')\n ]);\n }\n\n}\n\nexport default NTabsView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NTabsController from \"./NTabsController.ts\";\nimport NTabsItemController from \"../tabs-item/NTabsItemController.ts\";\n\nexport class NTabsData extends ProtoData\n{\n /**\n * @type {NTabsController}\n */\n declare scope : NTabsController;\n\n get classList() : string[]\n {\n let classList = [];\n\n if ( this.float ) {\n classList.push('n-float');\n }\n\n return this.classRoot(classList);\n }\n\n get model() : string\n {\n return this.scope.get('modelValue');\n }\n\n get sorted() : NTabsItemController[]\n {\n return this.scope.get('sorted');\n }\n\n get value() : string\n {\n return this.scope.get('value');\n }\n\n get float(): boolean\n {\n return this.scope.get('float');\n }\n\n get scrollbar() : boolean\n {\n return this.scope.get('scrollbar');\n }\n\n get lazy() : boolean\n {\n return this.scope.get('lazy');\n }\n\n get keep() : boolean\n {\n return this.scope.get('keep');\n }\n\n get dragOpen() : boolean\n {\n return this.scope.get('dragOpen');\n }\n\n}\n\nexport default NTabsData;","import { provide, SetupContext } from \"vue\";\nimport { GroupController } from \"../../../root/index.ts\";\nimport { NTabsView } from \"./NTabsView.ts\";\nimport { NTabsData } from \"./NTabsData.ts\";\nimport { Arr, Num, Run } from \"@kizmann/pico-js\";\n\n\nexport class NTabsController extends GroupController\n{\n /**\n * @type {NTabsController}\n */\n declare scope : NTabsController;\n\n /**\n * @type {NTabsData}\n */\n declare data: NTabsData;\n\n /**\n * @type {NTabsView}\n */\n declare view: NTabsView;\n\n /**\n * @type {ResizeObserver}\n */\n resizer : ResizeObserver;\n\n constructor(props:any, context:SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NTabsView(this),\n new NTabsData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.cloneProp('modelValue');\n\n this\n .makeData('sorted')\n .makeData('value');\n\n this\n .makeRef('el')\n .makeRef('indicator');\n\n this.watchData('modelValue', () => {\n this.updateTabs();\n });\n\n this.watchChilds(() => {\n this.updateTabs();\n });\n\n provide('NTabs', this.instance);\n\n return this;\n }\n\n onMounted()\n {\n // @ts-ignore\n this.resizer = new ResizeObserver(Run.debounce(() => {\n Run.async(() => this.updateIndicator());\n }, 50));\n }\n\n onUnmounted()\n {\n this.resizer.disconnect();\n this.resizer = null;\n }\n\n updateTabs()\n {\n let { model } = this.data;\n\n const sorted = Arr.sort(...[\n this.childs, 'data.sort'\n ]);\n\n const names = Arr.extract(...[\n sorted, 'data.name'\n ]);\n\n let value = model;\n\n if ( ! Arr.has(names, value) ) {\n value = Arr.first(names);\n }\n\n this.set('value', value);\n this.set('sorted', sorted);\n\n Run.frame(() => {\n this.updateIndicator();\n });\n }\n\n updateIndicator()\n {\n const [el, pl] = [\n this.dom('indicator'), this.dom('indicator').parent()\n ];\n\n const tl = pl.child('.n-active');\n\n const [offset, width] = [\n tl.offset('left', pl), tl.width() / 100,\n ];\n\n const transform = [\n `scaleX(${Num.fixed(width, 2)})`,\n `translateX(${Num.fixed(offset / width, 2)}px)`,\n ];\n\n el.style({\n transform: transform.join(' ')\n });\n\n el.addClass('n-ready');\n }\n\n superToggle(value: string)\n {\n this.update('modelValue', value);\n }\n\n}\n\nexport default NTabsController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NTabsController } from \"./NTabsController.ts\";\n\nexport const NTabsProps = {\n\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n\n /**\n * @type {PropType<string>}\n */\n modelValue: {\n type: [String], default: 'default'\n },\n\n /**\n * @type {PropType<boolean>}\n */\n float: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n scrollbar: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<boolean>}\n */\n lazy: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<boolean>}\n */\n keep: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n dragOpen: {\n type: [Boolean], default: false\n }\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NTabs',\n\n /**\n * @type {typeof NTabsProps}\n */\n props: NTabsProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NTabsController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Mix } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NTabsItemController } from \"./NTabsItemController.ts\";\nimport NTabsController from \"../tabs/NTabsController.ts\";\n\nexport class NTabsItemView extends ProtoView\n{\n /**\n * @type {NTabsItemController}\n */\n declare scope : NTabsItemController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-tabs-item';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n if ( ! scope.isActive() ) {\n return null;\n }\n\n if ( ! data.init ) {\n scope.set('init', true);\n }\n\n let props : any = {\n class: data.classList,\n wrapClass: `${this.bem}__wrap`,\n };\n\n const tabs = scope.ncx('tabs');\n\n if ( tabs.data.float ) {\n props.class.push('n-float');\n }\n\n if ( ! scope.isVisible() ) {\n props.style = 'display: none;';\n }\n\n const slot = () => {\n return this.slot('default');\n };\n\n if ( ! data.scrollbar ) {\n return h('div', props, slot());\n }\n\n return this.comp('n-scrollbar', ...[\n props, slot\n ]);\n }\n\n header(tabs: NTabsController) : any\n {\n const { data } = this.scope\n\n const props : any = {\n class: data.classPart('header')\n };\n\n if ( tabs.data.value === data.name ) {\n props.class.push('n-active');\n }\n\n props.onPointerdown = () => {\n tabs.superToggle(data.name);\n };\n\n props.onDragenter = () => {\n if( tabs.data.dragOpen ) {\n tabs.superToggle(data.name);\n }\n };\n\n return this.div(props, [\n this.header_icon(tabs),\n this.header_label(tabs),\n ]);\n }\n\n header_icon(tabs: NTabsController) : any\n {\n const { data } = this.scope;\n\n if ( Mix.isEmpty(data.icon) ) {\n return null;\n }\n\n return this.div('icon', [\n this.icon(data.icon)\n ]);\n }\n\n header_label(tabs: NTabsController) : any\n {\n const { data } = this.scope;\n\n return this.div('label', [\n h('span', null, data.label)\n ]);\n }\n\n}\n\nexport default NTabsItemView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NTabsItemController from \"./NTabsItemController.ts\";\n\nexport class NTabsItemData extends ProtoData\n{\n /**\n * @type {NTabsItemController}\n */\n declare scope : NTabsItemController;\n\n get classList() : string[]\n {\n let classList = [];\n\n\n return this.classRoot(classList);\n }\n\n get init(): boolean\n {\n return this.scope.get('init');\n }\n\n get name(): string\n {\n return this.scope.get('name');\n }\n\n get label(): string\n {\n return this.scope.get('label');\n }\n\n get sort(): number\n {\n return this.scope.get('sort');\n }\n\n get lazy(): boolean\n {\n return this.scope.get('lazy');\n }\n\n get keep(): boolean\n {\n return this.scope.get('keep');\n }\n\n get scrollbar(): boolean\n {\n return this.scope.get('scrollbar');\n }\n\n}\n\nexport default NTabsItemData;","import { provide, SetupContext } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NTabsItemView } from \"./NTabsItemView.ts\";\nimport { NTabsItemData } from \"./NTabsItemData.ts\";\nimport { Arr, Mix } from \"@kizmann/pico-js\";\n\n\nexport class NTabsItemController extends ProtoController\n{\n /**\n * @type {NTabsItemController}\n */\n declare scope : NTabsItemController;\n\n /**\n * @type {NTabsItemData}\n */\n declare data : NTabsItemData;\n\n /**\n * @type {NTabsItemView}\n */\n declare view : NTabsItemView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NTabsItemView(this),\n new NTabsItemData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n\n this\n .makeData('init')\n .cloneProp('scrollbar')\n .cloneProp('lazy')\n .cloneProp('keep');\n\n provide('NTabsItem', this.instance);\n\n this.injectRef([\n 'tabs', 'NTabs'\n ]);\n\n const tabs = this.ncx('tabs');\n\n if ( this.data.scrollbar === null ) {\n this.set('scrollbar', tabs.data.scrollbar);\n }\n\n if ( this.data.lazy === null ) {\n this.set('lazy', tabs.data.lazy);\n }\n\n if ( this.data.keep === null ) {\n this.set('keep', tabs.data.keep);\n }\n\n return this;\n }\n\n onMounted()\n {\n this.ncx('tabs')?.append(this);\n }\n\n onUnmounted()\n {\n this.ncx('tabs')?.remove(this);\n }\n\n isActive() : boolean\n {\n const [{ data }, tabs] = [\n this, this.ncx('tabs')\n ];\n\n if ( Mix.isEmpty(data.name) ) {\n return false;\n }\n\n if ( ! data.lazy || (data.keep && data.init) ) {\n return true;\n }\n\n\n return Arr.has(tabs.data.value, data.name);\n }\n\n isVisible() : boolean\n {\n const [{ data }, tabs] = [\n this, this.ncx('tabs')\n ];\n\n if ( Mix.isEmpty(data.name) ) {\n return false;\n }\n\n return Arr.has(tabs.data.value, data.name);\n }\n\n superOpen() : void\n {\n this.ncx('tabs')?.superToggle(this.data.name);\n }\n\n}\n\nexport default NTabsItemController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NTabsItemController } from \"./NTabsItemController.ts\";\n\nexport const NTabsItemProps = {\n\n /**\n * @type {PropType<number|string>}\n */\n sort: {\n type: [Number,String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n name: {\n type: [String], default: 'default'\n },\n\n /**\n * @type {PropType<string>}\n */\n label: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n icon: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n scrollbar: {\n type: [Boolean], default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n lazy: {\n type: [Boolean], default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n keep: {\n type: [Boolean], default: null\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NTabsItem',\n\n /**\n * @type {typeof NTabsItemProps}\n */\n props: NTabsItemProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n //\n ],\n\n setup(props, context)\n {\n let ncx = new NTabsItemController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Mix } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NCollapseController } from \"./NCollapseController.ts\";\n\nexport class NCollapseView extends ProtoView\n{\n /**\n * @type {NCollapseController}\n */\n declare scope : NCollapseController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-collapse';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n class: data.classList,\n };\n\n return h('div', props, [\n this.slot('default')\n ]);\n }\n\n items() : any\n {\n let { scope, data } = this.scope;\n\n const items = Arr.each(data.sorted, (item:any) => {\n return item.view.display(scope);\n });\n\n return Arr.filter(items);\n }\n\n}\n\nexport default NCollapseView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NCollapseController from \"./NCollapseController.ts\";\nimport NCollapseItemController from \"../collapse-item/NCollapseItemController.ts\";\n\nexport class NCollapseData extends ProtoData\n{\n /**\n * @type {NCollapseController}\n */\n declare scope : NCollapseController;\n\n get classList() : string[]\n {\n return this.classRoot([]);\n }\n\n get model() : string\n {\n return this.scope.get('modelValue');\n }\n\n get sorted() : NCollapseItemController[]\n {\n return this.scope.get('sorted');\n }\n\n get values() : string\n {\n return this.scope.get('values');\n }\n\n get scrollbar() : boolean\n {\n return this.scope.get('scrollbar');\n }\n\n get lazy() : boolean\n {\n return this.scope.get('lazy');\n }\n\n get keep() : boolean\n {\n return this.scope.get('keep');\n }\n\n get dragOpen() : boolean\n {\n return this.scope.get('dragOpen');\n }\n\n}\n\nexport default NCollapseData;","import { provide, SetupContext } from \"vue\";\nimport { GroupController } from \"../../../root/index.ts\";\nimport { NCollapseView } from \"./NCollapseView.ts\";\nimport { NCollapseData } from \"./NCollapseData.ts\";\nimport { Arr, Num, Run } from \"@kizmann/pico-js\";\n\n\nexport class NCollapseController extends GroupController\n{\n /**\n * @type {NCollapseController}\n */\n declare scope : NCollapseController;\n\n /**\n * @type {NCollapseData}\n */\n declare data: NCollapseData;\n\n /**\n * @type {NCollapseView}\n */\n declare view: NCollapseView;\n\n /**\n * @type {ResizeObserver}\n */\n resizer : ResizeObserver;\n\n constructor(props:any, context:SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NCollapseView(this),\n new NCollapseData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.cloneProp('modelValue');\n\n this\n .makeData('sorted');\n\n this.watchData('modelValue', () => {\n this.updateTabs();\n });\n\n this.watchChilds(() => {\n this.updateTabs();\n });\n\n provide('NCollapse', this.instance);\n\n return this;\n }\n\n updateTabs()\n {\n const sorted = Arr.sort(...[\n this.childs, 'data.sort'\n ]);\n\n this.set('sorted', sorted);\n }\n\n superFixed(value: string)\n {\n const { model } = this.data;\n\n if ( Arr.has(model, value) ) {\n return;\n }\n\n const result = Arr.toggle(...[\n Arr.clone(model), value\n ]);\n\n this.update('modelValue', result);\n }\n\n superToggle(value: string)\n {\n const { model } = this.data;\n\n const result = Arr.toggle(...[\n Arr.clone(model), value\n ]);\n\n this.update('modelValue', result);\n }\n\n}\n\nexport default NCollapseController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NCollapseController } from \"./NCollapseController.ts\";\n\nexport const NCollapseProps = {\n\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n\n /**\n * @type {PropType<array>}\n */\n modelValue: {\n type: [Array], default: () => []\n },\n\n /**\n * @type {PropType<boolean>}\n */\n scrollbar: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<boolean>}\n */\n lazy: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<boolean>}\n */\n keep: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n dragOpen: {\n type: [Boolean], default: true\n }\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NCollapse',\n\n /**\n * @type {typeof NCollapseProps}\n */\n props: NCollapseProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NCollapseController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Mix } from \"@kizmann/pico-js\";\nimport { ProtoView, Styler } from \"../../../root/index.ts\";\nimport { NCollapseItemController } from \"./NCollapseItemController.ts\";\nimport { NCollapseController } from \"../collapse/NCollapseController.ts\";\n\nexport class NCollapseItemView extends ProtoView\n{\n /**\n * @type {NCollapseItemController}\n */\n declare scope : NCollapseItemController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-collapse-item';\n\n default() : any\n {\n return this.display();\n }\n\n display() : any\n {\n const collapse = this.scope.ncx('collapse');\n\n return [\n this.header(collapse),\n this.content(collapse),\n ];\n }\n\n header(collapse : NCollapseController) : any\n {\n const { data } = this.scope\n\n const props : any = {\n class: data.classPart('header')\n };\n\n if ( Arr.has(collapse.data.model, data.name) ) {\n props.class.push('n-active');\n }\n\n props.onPointerdown = () => {\n collapse.superToggle(data.name);\n };\n\n props.onDragenter = () => {\n if ( collapse.data.dragOpen ) {\n collapse.superFixed(data.name);\n }\n };\n\n return this.div(props, [\n this.header_icon(collapse),\n this.header_label(collapse),\n this.header_action(collapse),\n this.header_angle(collapse),\n ]);\n }\n\n header_icon(collapse : NCollapseController) : any\n {\n const { data } = this.scope;\n\n if ( Mix.isEmpty(data.icon) ) {\n return null;\n }\n\n return this.div('icon', [\n this.icon(data.icon)\n ]);\n }\n\n header_label(collapse : NCollapseController) : any\n {\n const { data } = this.scope;\n\n return this.div('label', [\n data.label\n ]);\n }\n\n header_action(collapse : NCollapseController) : any\n {\n const { context } = this.scope;\n\n if ( ! context.slots.action ) {\n return null;\n }\n\n return this.div('action', [\n this.slot('action')\n ]);\n }\n\n header_angle(collapse : NCollapseController) : any\n {\n const { data } = this.scope;\n\n return this.div('angle', [\n this.icon(Styler.icon('angle-right'))\n ]);\n }\n\n content(collapse : NCollapseController) : any\n {\n let { scope, data } = this.scope;\n\n if ( !scope.isActive() ) {\n return null;\n }\n\n if ( !data.init ) {\n scope.set('init', true);\n }\n\n let props : any = {\n class: data.classPart('content'),\n wrapClass: `${this.bem}__wrap`,\n };\n\n if ( !scope.isVisible() ) {\n props.style = 'display: none;';\n }\n\n const slot = () => {\n return this.slot('default');\n };\n\n if ( !data.scrollbar ) {\n return h('div', props, slot());\n }\n\n return this.comp('n-scrollbar', ...[\n props, slot\n ]);\n }\n}\n\nexport default NCollapseItemView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NCollapseItemController from \"./NCollapseItemController.ts\";\n\nexport class NCollapseItemData extends ProtoData\n{\n /**\n * @type {NCollapseItemController}\n */\n declare scope : NCollapseItemController;\n\n get classList() : string[]\n {\n let classList = [];\n\n\n return this.classRoot(classList);\n }\n\n get init(): boolean\n {\n return this.scope.get('init');\n }\n\n get name(): string\n {\n return this.scope.get('name');\n }\n\n get label(): string\n {\n return this.scope.get('label');\n }\n\n get sort(): number\n {\n return this.scope.get('sort');\n }\n\n get lazy(): boolean\n {\n return this.scope.get('lazy');\n }\n\n get keep(): boolean\n {\n return this.scope.get('keep');\n }\n\n get scrollbar(): boolean\n {\n return this.scope.get('scrollbar');\n }\n\n}\n\nexport default NCollapseItemData;","import { provide, SetupContext } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NCollapseItemView } from \"./NCollapseItemView.ts\";\nimport { NCollapseItemData } from \"./NCollapseItemData.ts\";\nimport { Arr, Mix } from \"@kizmann/pico-js\";\n\n\nexport class NCollapseItemController extends ProtoController\n{\n /**\n * @type {NCollapseItemController}\n */\n declare scope : NCollapseItemController;\n\n /**\n * @type {NCollapseItemData}\n */\n declare data : NCollapseItemData;\n\n /**\n * @type {NCollapseItemView}\n */\n declare view : NCollapseItemView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NCollapseItemView(this),\n new NCollapseItemData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n\n this\n .makeData('init')\n .cloneProp('scrollbar')\n .cloneProp('lazy')\n .cloneProp('keep');\n\n provide('NCollapseItem', this.instance);\n\n this.injectRef([\n 'collapse', 'NCollapse'\n ]);\n\n const collapse = this.ncx('collapse');\n\n if ( this.data.scrollbar === null ) {\n this.set('scrollbar', collapse.data.scrollbar);\n }\n\n if ( this.data.lazy === null ) {\n this.set('lazy', collapse.data.lazy);\n }\n\n if ( this.data.keep === null ) {\n this.set('keep', collapse.data.keep);\n }\n\n return this;\n }\n\n onMounted()\n {\n this.ncx('collapse')?.append(this);\n }\n\n onUnmounted()\n {\n this.ncx('collapse')?.remove(this);\n }\n\n isActive() : boolean\n {\n const [{ data }, collapse] = [\n this, this.ncx('collapse')\n ];\n\n if ( Mix.isEmpty(data.name) ) {\n return false;\n }\n\n if ( ! data.lazy || (data.keep && data.init) ) {\n return true;\n }\n\n return Arr.has(collapse?.data.model, data.name);\n }\n\n isVisible() : boolean\n {\n const [{ data }, collapse] = [\n this, this.ncx('collapse')\n ];\n\n if ( Mix.isEmpty(data.name) ) {\n return false;\n }\n\n return Arr.has(collapse?.data.model, data.name);\n }\n\n superToggle()\n {\n this.ncx('collapse')?.superToggle(this.data.name);\n }\n\n superOpen()\n {\n if ( ! this.isVisible() ) {\n this.ncx('collapse')?.superToggle(this.data.name);\n }\n }\n\n superClose()\n {\n if ( this.isVisible() ) {\n this.ncx('collapse')?.superToggle(this.data.name);\n }\n }\n\n}\n\nexport default NCollapseItemController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NCollapseItemController } from \"./NCollapseItemController.ts\";\n\nexport const NCollapseItemProps = {\n\n /**\n * @type {PropType<number|string>}\n */\n sort: {\n type: [Number,String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n name: {\n type: [String], default: 'default'\n },\n\n /**\n * @type {PropType<string>}\n */\n label: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n icon: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n scrollbar: {\n type: [Boolean], default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n lazy: {\n type: [Boolean], default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n keep: {\n type: [Boolean], default: null\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NCollapseItem',\n\n /**\n * @type {typeof NCollapseItemProps}\n */\n props: NCollapseItemProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n //\n ],\n\n setup(props, context)\n {\n let ncx = new NCollapseItemController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NTagController } from \"./NTagController.ts\";\n\nexport class NTagView extends ProtoView\n{\n /**\n * @type {NTagController}\n */\n declare scope : NTagController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-tag';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n class: data.classList,\n };\n\n const slots = [\n h('span', null, [this.slot('default')])\n ];\n\n if ( data.iconPosition === 'before' ) {\n Arr.prepend(slots, this.icon(data.icon));\n }\n\n if ( data.iconPosition === 'after' ) {\n Arr.append(slots, this.icon(data.icon));\n }\n\n return h('div', props, slots);\n }\n\n}\n\nexport default NTagView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NTagController from \"./NTagController.ts\";\n\nexport class NTagData extends ProtoData\n{\n /**\n * @type {NTagController}\n */\n declare scope : NTagController;\n\n get classList() : string[]\n {\n return this.classRoot([]);\n }\n\n}\n\nexport default NTagData;","import { SetupContext } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NTagView } from \"./NTagView.ts\";\nimport { NTagData } from \"./NTagData.ts\";\n\n\nexport class NTagController extends ProtoController\n{\n /**\n * @type {NTagController}\n */\n declare scope : NTagController;\n\n /**\n * @type {NTagData}\n */\n declare data: NTagData;\n\n /**\n * @type {NTagView}\n */\n declare view: NTagView;\n\n constructor(props:any, context:SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NTagView(this),\n new NTagData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n return this;\n }\n\n}\n\nexport default NTagController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NTagController } from \"./NTagController.ts\";\n\nexport const NTagProps = {\n\n ...Props.Size,\n ...Props.Type,\n ...Props.Color,\n ...Props.Icon,\n ...Props.IconPositionBefore,\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NTag',\n\n /**\n * @type {typeof NTagProps}\n */\n props: NTagProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n //\n ],\n\n setup(props, context)\n {\n let ncx = new NTagController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Locale, Num, Str } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NRatingController } from \"./NRatingController.ts\";\n\nexport class NRatingView extends ProtoView\n{\n /**\n * @type {NRatingController}\n */\n declare scope : NRatingController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-rating';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n class: data.classList,\n };\n\n return h('div', props, [\n this.stars(), this.value(),\n ]);\n }\n\n stars() : any\n {\n const { data } = this.scope;\n\n const stars = Arr.make(data.stars, (index : number) => {\n return this.star(index + 1);\n });\n\n return this.div('stars', stars);\n }\n\n star(index : number) : any\n {\n const { data } = this.scope;\n\n let classList = ['is-null'];\n\n if ( data.closest >= index - 0.5 ) {\n classList = ['is-half'];\n }\n\n if ( data.closest >= index ) {\n classList = ['is-full'];\n }\n\n const props : any = {\n class: classList\n };\n\n return h('span', props);\n }\n\n value() : any\n {\n const { data } = this.scope;\n\n let value = data.value;\n\n if ( data.closestValue ) {\n value = data.closest;\n }\n\n let props : any = {\n count: Str.number(value, data.decimals, 'en')\n };\n\n return this.div('value', [\n Locale.choice(data.starsText, value, props)\n ]);\n }\n\n}\n\nexport default NRatingView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NRatingController from \"./NRatingController.ts\";\nimport { Mix } from \"@kizmann/pico-js\";\n\nexport class NRatingData extends ProtoData\n{\n /**\n * @type {NRatingController}\n */\n declare scope : NRatingController;\n\n get classList() : string[]\n {\n return this.classRoot([]);\n }\n\n get model(): string|number\n {\n return this.scope.get('modelValue');\n }\n\n get value(): number\n {\n return Mix.num(this.model);\n }\n\n get closest(): number\n {\n return Math.round(this.value / this.stepSize) * this.stepSize;\n }\n\n get closestValue(): boolean\n {\n return this.scope.get('closestValue');\n }\n\n get stepSize(): number\n {\n return this.scope.get('stepSize');\n }\n\n get stars(): number\n {\n return this.scope.get('stars');\n }\n\n get decimals(): number\n {\n return this.scope.get('decimals');\n }\n\n get starsText(): string\n {\n return this.scope.get('starsText');\n }\n\n}\n\nexport default NRatingData;","import { SetupContext } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NRatingView } from \"./NRatingView.ts\";\nimport { NRatingData } from \"./NRatingData.ts\";\n\n\nexport class NRatingController extends ProtoController\n{\n /**\n * @type {NRatingController}\n */\n declare scope : NRatingController;\n\n /**\n * @type {NRatingData}\n */\n declare data: NRatingData;\n\n /**\n * @type {NRatingView}\n */\n declare view: NRatingView;\n\n constructor(props:any, context:SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NRatingView(this),\n new NRatingData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n return this;\n }\n\n}\n\nexport default NRatingController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NRatingController } from \"./NRatingController.ts\";\n\nexport const NRatingProps = {\n\n ...Props.Size,\n ...Props.Type,\n\n /**\n * @type {PropType<string|number>}\n */\n modelValue: {\n type: [String,Number], default: 0\n },\n\n /**\n * @type {PropType<boolean>}\n */\n closestValue: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<number>}\n */\n stepSize: {\n type: [Number], default: 0.5\n },\n\n /**\n * @type {PropType<number>}\n */\n decimals: {\n type: [Number], default: 1\n },\n\n /**\n * @type {PropType<number>}\n */\n stars: {\n type: [Number], default: 5\n },\n\n /**\n * @type {PropType<string>}\n */\n starsText: {\n type: [String], default: 'No stars|:count Star|:count Stars'\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NRating',\n\n /**\n * @type {typeof NRatingProps}\n */\n props: NRatingProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n //\n ],\n\n setup(props, context)\n {\n let ncx = new NRatingController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Mix } from \"@kizmann/pico-js\";\nimport { ProtoView, Styler } from \"../../../root/index.ts\";\nimport { NPreviewController } from \"./NPreviewController.ts\";\n\nexport class NPreviewView extends ProtoView\n{\n /**\n * @type {NPreviewController}\n */\n declare scope : NPreviewController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-preview';\n\n resolve(type : string, scope : string = 'NPreviewModules')\n {\n if ( globalThis[scope][type] ) {\n return globalThis[scope][type];\n }\n\n return globalThis[scope]['text'];\n }\n\n default()\n {\n return this.body();\n }\n\n body() : any\n {\n let { scope, data } = this.scope;\n\n const display = {\n file: data.safeThumb,\n type: data.thumbType,\n mime: data.thumbMime,\n };\n\n const inTypes = Arr.has(...[\n data.previewTypes, display.type\n ]);\n\n if ( data.preview && !inTypes ) {\n display.type = 'text';\n }\n\n const classList = [\n `${this.bem}-${display.type}`,\n `${this.bem}-file-${data.fileType}`,\n ];\n\n if ( data.loaded ) {\n classList.push(`n-ready`);\n }\n\n const props : any = {\n ref: scope.ref('preview'),\n class: data.classList,\n };\n\n props.class = Arr.merge(...[\n props.class, classList,\n ]);\n\n props.onPointerup = (e) => {\n e.stopPropagation();\n if ( data.preview ) scope.openPreview();\n };\n\n const preview = this.preview({\n ...display, el: scope.rel('preview'), full: false\n });\n\n return h('div', props, [\n preview, this.hover(), this.title(), this.portal()\n ]);\n }\n\n portal() : any\n {\n let { scope, data } = this.scope;\n\n if ( !data.visible ) {\n return null;\n }\n\n const display = {\n file: data.safeFile,\n type: data.fileType,\n mime: data.fileMime,\n };\n\n let classList = [\n 'n-preview-portal',\n `n-preview-portal-${display.type}`,\n ];\n\n if ( data.loaded ) {\n classList.push(`n-ready`);\n }\n\n let props : any = {\n ref: scope.ref('portal'),\n class: classList,\n style: 'display: none;'\n };\n\n const preview = this.preview({\n ...display, el: scope.rel('portal'), full: true\n });\n\n return h('div', props, [preview]);\n }\n\n preview(props : any) : any\n {\n let { scope, data } = this.scope;\n\n return h(this.resolve(props.type), {\n ...props, scope, data\n });\n }\n\n hover() : any\n {\n const { data } = this.scope;\n\n if ( !data.preview ) {\n return null;\n }\n\n return this.div('hover', [\n this.icon(Styler.icon(data.fileType, 'preview'))\n ]);\n }\n\n title() : any\n {\n let { scope, data } = this.scope;\n\n if ( Mix.isEmpty(data.title) ) {\n return null;\n }\n\n return this.div('title', [\n h('span', null, data.title)\n ]);\n }\n\n meta(fullscreen : boolean) : any\n {\n let { data } = this.scope;\n\n let slots = [\n this.mime()\n ];\n\n if ( fullscreen ) {\n slots.push(this.path());\n }\n\n if ( fullscreen ) {\n slots.push(this.link());\n }\n\n const props : any = {\n class: data.classPart('meta')\n };\n\n return h('ul', props, slots);\n }\n\n path() : any\n {\n let { data } = this.scope;\n\n if ( ! Mix.isStr(data.safeFile) ) {\n return null;\n }\n\n if ( !data.showPath ) {\n return null;\n }\n\n const props : any = {\n class: data.classPart('path')\n };\n\n return h('li', props, [data.safeFile]);\n }\n\n mime() : any\n {\n let { data } = this.scope;\n\n const props : any = {\n class: data.classPart('mime')\n };\n\n return h('li', props, [data.fileMime]);\n }\n\n link() : any\n {\n let { data } = this.scope;\n\n if ( ! Mix.isStr(data.safeFile) ) {\n return null;\n }\n\n if ( !data.showLink ) {\n return null;\n }\n\n const props : any = {\n class: data.classPart('link'),\n }\n\n const button : any = {\n href: data.safeFile,\n nativeType: 'a',\n target: '_blank',\n };\n\n const link = this.comp('n-button', button, () => [\n data.$linkText\n ]);\n\n return h('li', props, [link]);\n }\n\n}\n\nexport default NPreviewView;","import { Arr, Mix, Obj, Run } from \"@kizmann/pico-js\";\n\nexport const NPreviewMimes : any = {\n image: [\n 'jpg', 'jpeg', 'gif', 'svg', 'png', 'bmp'\n ],\n video: [\n 'mp4', 'webm', 'mov'\n ],\n audio: [\n 'mp3', 'aac',\n ],\n font: [\n 'woff', 'ttf', 'otf'\n ],\n text: [\n 'csv', 'txt', 'html'\n ],\n application: [\n 'pdf', 'doc', 'xls'\n ]\n};\n\nexport class NPreviewHelper\n{\n static ext(source : any, fallback : string = 'plain') : string\n {\n let file = Obj.get(source, 'name', source);\n\n if ( Mix.isEmpty(file) ) {\n return fallback;\n }\n\n let match = file.match(/\\.([^.?]+)(\\?.*?)?$/);\n\n if ( !match ) {\n return fallback;\n }\n\n if ( Mix.isEmpty(match[1]) ) {\n return fallback;\n }\n\n return match[1];\n }\n\n static type(source : any, fallback = 'text') : string\n {\n let file = Obj.get(source, 'name', source);\n\n if ( Mix.isEmpty(file) ) {\n return fallback;\n }\n\n let extension = this.ext(file);\n\n if ( this.youtube(file) ) {\n return 'video';\n }\n\n if ( this.vimeo(file) ) {\n return 'video';\n }\n\n Obj.each(NPreviewMimes, (exts : string[], key : string) => {\n if ( Arr.has(exts, extension) ) fallback = key;\n });\n\n return fallback;\n }\n\n static mime(source : any, fallback = 'text/plain') : string\n {\n let file = Obj.get(source, 'name', source);\n\n if ( Mix.isEmpty(file) ) {\n return fallback;\n }\n\n if ( this.youtube(file) ) {\n return 'video/youtube';\n }\n\n if ( this.vimeo(file) ) {\n return 'video/vimeo';\n }\n\n return this.type(file) + '/' + this.ext(file);\n }\n\n static vimeo(source : any, fallback : any = null) : any\n {\n if ( !Mix.isStr(source) ) {\n return fallback;\n }\n\n let host = source.match(/^https?:\\/\\/(www\\.|player\\.)?vimeo\\.com/);\n\n if ( !host ) {\n return fallback;\n }\n\n let path = source.match(/(\\/[0-9]+)(&|$)/);\n\n if ( path && path.length === 3 ) {\n return path[0].replace(/(^\\/|&$)/, '');\n }\n\n return fallback;\n }\n\n static youtube(source : any, fallback : any = null) : any\n {\n if ( !Mix.isStr(source) ) {\n return fallback;\n }\n\n let host = source.match(/^https?:\\/\\/(www\\.)?(youtube\\.com|youtu\\.be)/);\n\n if ( !host ) {\n return fallback;\n }\n\n let id = source.match(/(\\?v=.*?)(?=&|$)/);\n\n if ( id && id.length === 2 ) {\n return id[0].replace(/^\\?v=/, '');\n }\n\n let path = source.match(/(\\.be\\/.*?)(?=\\?|$)/);\n\n if ( path && path.length === 2 ) {\n return path[0].replace(/^\\.be\\//, '');\n }\n\n let frame = source.match(/(\\/embed\\/)(.*?$)/);\n\n if ( frame && frame.length === 3 ) {\n return frame[0].replace(/^\\/embed\\//, '');\n }\n\n return fallback;\n }\n\n static image(source : any, cb : Function)\n {\n if ( Mix.isStr(source) ) {\n return Run.frame(() => cb(source));\n }\n\n let reader = new FileReader();\n\n reader.onload = () => {\n cb(reader.result);\n };\n\n reader.readAsDataURL(source);\n }\n\n}","import { ProtoData } from \"../../../root/index.ts\";\nimport { NPreviewController } from \"./NPreviewController.ts\";\nimport { NPreviewHelper } from \"../helper/NPreviewHelper.ts\";\nimport { Locale } from \"@kizmann/pico-js\";\n\nexport class NPreviewData extends ProtoData\n{\n /**\n * @type {NPreviewController}\n */\n declare scope : NPreviewController;\n\n get classList() : string[]\n {\n let classList = [];\n\n return this.classRoot(classList);\n }\n\n get index(): number\n {\n return this.scope.get('index');\n }\n\n get group(): string\n {\n return this.scope.get('group');\n }\n\n get visible(): boolean\n {\n return this.scope.get('visible');\n }\n\n get loaded(): boolean\n {\n return this.scope.get('loaded');\n }\n\n get preview(): boolean\n {\n return this.scope.get('preview');\n }\n\n get previewTypes(): string[]\n {\n return this.scope.get('previewTypes');\n }\n\n get file(): any\n {\n return this.scope.get('file');\n }\n\n get thumb(): any\n {\n return this.scope.get('thumb');\n }\n\n get safeFile(): any\n {\n return this.file ?? this.thumb;\n }\n\n get safeThumb(): any\n {\n return this.thumb ?? this.file;\n }\n\n get fileType(): string\n {\n return NPreviewHelper.type(this.safeFile);\n }\n\n get thumbType(): string\n {\n return NPreviewHelper.type(this.safeThumb);\n }\n\n get fileMime(): string\n {\n return NPreviewHelper.mime(this.safeFile);\n }\n\n get thumbMime(): string\n {\n return NPreviewHelper.mime(this.safeThumb);\n }\n\n get title(): string\n {\n return this.scope.get('title');\n }\n\n get showPath(): boolean\n {\n return this.scope.get('showPath');\n }\n\n get showLink(): boolean\n {\n return this.scope.get('showLink');\n }\n\n get linkText() : string\n {\n return this.scope.get('linkText');\n }\n\n get $linkText() : string\n {\n return Locale.trans(this.linkText);\n }\n\n}\n\nexport default NPreviewData;","import { Arr, Dom, Hash, Locale, Obj, Run, Str } from \"@kizmann/pico-js\";\nimport NPreviewController from \"../preview/NPreviewController\";\n\nexport class NPreviewElement\n{\n /**\n * @var {Dom}\n */\n el : Dom;\n\n /**\n * @var {any}\n */\n options : any = {\n index: 0,\n };\n\n get uid() : string\n {\n return this.options.uid;\n }\n\n get index() : number\n {\n return this.options.index;\n }\n\n get group() : string\n {\n return this.options.group;\n }\n\n constructor(options : any = {})\n {\n if ( options.uid == null ) {\n options.uid = Hash.uuid();\n }\n\n if ( options.group == null ) {\n options.group = Hash.uuid();\n }\n\n this.options = Obj.assign(...[\n this.options, options\n ]);\n }\n\n on(event : string, cb : Function)\n {\n this.options[`on${Str.ucfirst(event)}`] = cb;\n }\n\n animate(direction : string, cb : Function) : NPreviewElement\n {\n this.el.once('transitionend', () => {\n this.close(), cb();\n });\n\n this.el.addClass(...[\n `n-animate-${direction}`\n ]);\n\n return this;\n }\n\n reset()\n {\n this.el.remClass([\n 'n-animate-left', 'n-animate-right',\n ]);\n\n return this;\n }\n\n open(frame : Dom, mode : string = 'append')\n {\n this.el = Dom.make('div', {\n class: 'n-preview-modal__slide',\n });\n\n this.el.data(...[\n 'preview', this.uid\n ]);\n\n if ( mode === 'append' ) {\n this.el.appendTo(frame);\n }\n\n if ( mode === 'prepend' ) {\n this.el.prependTo(frame);\n }\n\n if ( this.options.onOpen ) {\n this.options.onOpen(this.el);\n }\n\n return this;\n }\n\n focus()\n {\n if (this.options.onFocus ) {\n this.options.onFocus();\n }\n\n return this;\n }\n\n close()\n {\n if (this.options.onClose ) {\n this.options.onClose();\n }\n\n if ( this.el ) {\n this.el.remove();\n }\n\n return this;\n }\n\n}","import { Arr, Dom, Mix, Run } from \"@kizmann/pico-js\";\nimport { Pointer, Styler } from \"../../../root/index.ts\";\nimport NModalHandler from \"../../../modal/js/handler/NModalHandler.ts\";\nimport { NPreviewElement } from \"./NPreviewElement.ts\";\n\nexport class NPreviewHandler\n{\n /**\n * @type {string}\n */\n static uid : string = 'NPreviewModal'\n\n /**\n * @type {boolean}\n */\n static blocked : boolean = false;\n\n /**\n * @type {Dom}\n */\n static root: Dom;\n\n /**\n * @type {Dom}\n */\n static frame: Dom;\n\n /**\n * @type {NPreviewElement}\n */\n static el : NPreviewElement;\n\n /**\n * @type {any}\n */\n static previews : NPreviewElement[] = [];\n\n static init() : NPreviewHandler\n {\n Pointer.bind(this.uid, 'mouseup', (e : any) => {\n Run.frame(() => this.backdrop(e));\n });\n\n Pointer.bind(this.uid, 'keyescape', (e : any) => {\n if ( this.el && e.which === 27 ) this.close();\n });\n\n Pointer.bind(this.uid, 'keydown', (e : any) => {\n if ( this.el && e.which === 37 ) this.prev();\n if ( this.el && e.which === 39 ) this.next();\n });\n\n return this;\n }\n\n static backdrop(e : any)\n {\n if ( ! this.el ) {\n return;\n }\n\n const tgt = this.frame.is(e.target);\n\n if ( !tgt ) {\n return;\n }\n\n this.close();\n }\n\n static append(config : any)\n {\n const { previews } = this;\n\n if ( config.index == null ) {\n config.index = previews.length * 10;\n }\n\n const preview = new NPreviewElement(config);\n\n Arr.append(previews, preview);\n\n return preview;\n }\n\n static remove({ uid } : any)\n {\n const preview = Arr.find(this.previews, { uid });\n\n if ( Mix.isEmpty(preview) ) {\n throw new Error('Preview not found with id: ' + Mix.str(uid));\n }\n\n if ( preview && preview.destroy ) {\n preview.destroy();\n }\n\n Arr.remove(this.previews, { uid });\n }\n\n static group(group : string) : NPreviewElement[]\n {\n const { previews } = this;\n\n const items = Arr.filter(previews, (item : any) => {\n return group === item.group;\n });\n\n return Arr.sort(items, 'index');\n }\n\n static open(node : NPreviewElement)\n {\n [this.root, this.frame] = [\n ...this.render()\n ];\n\n const items = this.group(node.group);\n\n if ( items.length > 1 ) {\n this.root.addClass('n-multi');\n }\n\n const zIndex = Pointer.zindex();\n\n Pointer.prevent(...[\n this.uid, 'preview', this.uid\n ]);\n\n this.root.style({\n 'z-index': zIndex\n });\n\n NModalHandler.open(this.uid, zIndex);\n\n Run.frame(() => {\n this.root.addClass('n-ready');\n });\n\n const index = Arr.findIndex(...[\n items, { uid: node.uid }\n ]);\n\n this.el = Arr.get(items, index)\n .open(this.frame);\n\n this.root.appendTo(document.body);\n }\n\n static close()\n {\n if ( this.el ) {\n this.el.close();\n }\n\n if ( this.root ) {\n this.root.remove();\n }\n\n Pointer.release(this.uid);\n NModalHandler.close(this.uid);\n }\n\n static render(): [Dom, Dom]\n {\n const root = Dom.make('div', {\n class: 'n-preview-modal',\n });\n\n const close = Dom.make('div', {\n class: 'n-preview-modal__close',\n });\n\n close.on('pointerdown', () => {\n this.close();\n });\n\n close.html(...[\n `<i class=\"${Styler.icon('times')}\"></i>`\n ]);\n\n close.appendTo(root);\n\n const prev = Dom.make('div', {\n class: 'n-preview-modal__prev',\n });\n\n prev.on('pointerdown', () => {\n this.prev();\n });\n\n prev.html(...[\n `<i class=\"${Styler.icon('angle-left')}\"></i>`\n ]);\n\n prev.appendTo(root);\n\n const next = Dom.make('div', {\n class: 'n-preview-modal__next',\n });\n\n next.on('pointerdown', () => {\n this.next();\n });\n\n next.html(...[\n `<i class=\"${Styler.icon('angle-right')}\"></i>`\n ]);\n\n next.appendTo(root);\n\n const frame = Dom.make('div', {\n class: 'n-preview-modal__frame',\n });\n\n frame.appendTo(root);\n\n return [root, frame];\n }\n\n static next()\n {\n if ( this.blocked ) {\n return this;\n }\n\n const { index, group } = this.el;\n\n this.el.animate('left', () => {\n\n const items = this.group(group);\n\n const indexes = Arr.extract(...[\n items, 'index'\n ]);\n\n const target = Arr.findIndex(...[\n indexes, index\n ]);\n\n this.el = Arr.get(...[\n items, Arr.next(indexes, target)\n ]);\n\n Run.frame(() => {\n this.blocked = false;\n });\n\n this.el.focus().open(this.frame);\n });\n\n this.blocked = true;\n\n return this;\n }\n\n static prev()\n {\n if ( this.blocked ) {\n return this;\n }\n\n const { index, group } = this.el;\n\n this.el.animate('right', () => {\n\n const items = this.group(group);\n\n const indexes = Arr.extract(...[\n items, 'index'\n ]);\n\n const target = Arr.findIndex(...[\n indexes, index\n ]);\n\n this.el = Arr.get(...[\n items, Arr.prev(indexes, target)\n ]);\n\n Run.frame(() => {\n this.blocked = false;\n });\n\n this.el.focus().open(this.frame);\n });\n\n this.blocked = true;\n\n return this;\n }\n\n}\n\nif ( !globalThis.NPreviewHandler ) {\n globalThis.NPreviewHandler = NPreviewHandler.init();\n}\n\nexport default NPreviewHandler;","import { SetupContext, provide } from \"vue\";\nimport { Dom, Run } from \"@kizmann/pico-js\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NPreviewView } from \"./NPreviewView.ts\";\nimport { NPreviewData } from \"./NPreviewData.ts\";\nimport NPreviewHandler from \"../handler/NPreviewHandler.ts\";\nimport { NPreviewElement } from \"../handler/NPreviewElement.ts\";\n// import { NModalHandler } from \"../handler/NModalHandler.ts\";\n// import { NModalElement } from \"../handler/NModalElement.ts\";\n\nexport class NPreviewController extends ProtoController\n{\n /**\n * @type {NPreviewController}\n */\n declare scope : NPreviewController;\n\n /**\n * @type {NPreviewData}\n */\n declare data : NPreviewData;\n\n /**\n * @type {NPreviewView}\n */\n declare view : NPreviewView;\n\n preview : NPreviewElement;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NPreviewView(this),\n new NPreviewData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n\n this\n .makeRef('preview')\n .makeRef('portal');\n\n this\n .makeData('visible', false);\n\n this.watchProp('index', () => {\n this.onChange();\n });\n\n return this;\n }\n\n onMounted()\n {\n const { data } = this;\n\n this.preview = NPreviewHandler.append({\n uid: this.uid,\n index: data.index,\n group: data.group,\n });\n\n this.preview.on('open', (el : Dom) => {\n this.openPortal(el);\n });\n\n this.preview.on('close', () => {\n this.closePortal();\n });\n\n this.preview.on('focus', () => {\n this.focusPortal();\n });\n }\n\n onUnmounted()\n {\n NPreviewHandler.remove(this.preview);\n }\n\n onChange()\n {\n this.onUnmounted(), this.onMounted();\n }\n\n openPreview()\n {\n NPreviewHandler.open(this.preview);\n }\n\n openPortal(el : Dom)\n {\n Run.frame(() => {\n el.append(this.ref('portal').value);\n });\n\n this.set('visible', true);\n }\n\n closePortal()\n {\n this.set('visible', false);\n }\n\n focusPortal()\n {\n this.get('onFocus')?.();\n }\n\n}\n\nexport default NPreviewController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NPreviewController } from \"./NPreviewController.ts\";\nimport { Hash } from \"@kizmann/pico-js\";\n\nexport const NPreviewProps = {\n\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n ...Props.ThemeDark,\n\n /**\n * @type {PropType<any>}\n */\n file: {\n default: null\n },\n\n /**\n * @type {PropType<any>}\n */\n thumb: {\n default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n title: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<number>}\n */\n index: {\n type: [Number], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n group: {\n type: [String], default: () => Hash.uuid()\n },\n\n /**\n * @type {PropType<string>}\n */\n fit: {\n type: [String], default: 'cover'\n },\n\n /**\n * @type {PropType<string>}\n */\n mime: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n forceFile: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<boolean>}\n */\n preview: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<array>}\n */\n previewTypes: {\n type: [Array], default: () => ['text', 'image']\n },\n\n /**\n * @type {PropType<boolean>}\n */\n showPath: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<string>}\n */\n linkText: {\n type: [String], default: 'Download file'\n },\n\n /**\n * @type {PropType<boolean>}\n */\n showLink: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<boolean>}\n */\n onFocus: {\n type: [Function], default: null\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NPreview',\n\n /**\n * @type {typeof NPreviewProps}\n */\n props: NPreviewProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'focus'\n ],\n\n setup(props, context)\n {\n let ncx = new NPreviewController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\n\nexport const NPreviewFileModule = ({ scope, full }) => {\n return h('ul', {}, [scope.view.meta(full)]);\n};\n\nexport default NPreviewFileModule;","import { h, ref } from \"vue\";\nimport { Dom, Mix } from \"@kizmann/pico-js\";\nimport { NPreviewHelper } from \"../helper/NPreviewHelper.ts\";\n\nexport const NPreviewImageModule = ({ el, file }) =>\n{\n const rel = ref(null);\n\n const image : any = {\n ref: rel,\n };\n\n NPreviewHelper.image(file, (value : string) => {\n rel?.value?.setAttribute('src', value);\n });\n\n image.onLoad = () => {\n Dom.find(el).addClass('n-ready');\n };\n\n image.onError = () => {\n Dom.find(el).addClass('n-error');\n };\n\n return h('img', image);\n};\n\nexport default NPreviewImageModule;","import { h } from \"vue\";\nimport { NPreviewHelper } from \"../helper/NPreviewHelper.ts\";\n\nexport const NPreviewVideoModule = ({ file, mime }) => {\n\n if ( mime === 'video/youtube' ) {\n return h('iframe', {\n src: `https://www.youtube.com/embed/${NPreviewHelper.youtube(file)}`\n });\n }\n\n if ( mime === 'video/vimeo' ) {\n return h('iframe', {\n src: `https://player.vimeo.com/video/${NPreviewHelper.vimeo(file)}`\n });\n }\n\n return h('video', { controls: true }, [\n h('source', { src: file, type: mime })\n ]);\n};\n\nexport default NPreviewVideoModule;","import { App } from \"vue\";\nimport NPreview from \"./js/preview/NPreview.ts\";\n\nexport default function (App : App) {\n App.component(NPreview.name, NPreview);\n}\n\nimport NPreviewFileModule from \"./js/preview-module/NPreviewFileModule.ts\";\nimport NPreviewImageModule from \"./js/preview-module/NPreviewImageModule.ts\";\nimport NPreviewVideoModule from \"./js/preview-module/NPreviewVideoModule.ts\";\n\nglobalThis.NPreviewModules = {\n 'text': NPreviewFileModule,\n 'image': NPreviewImageModule,\n 'video': NPreviewVideoModule,\n};","import { h } from \"vue\";\nimport { Arr, Num, Obj } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NSliderController } from \"./NSliderController.ts\";\n\nexport class NSliderView extends ProtoView\n{\n /**\n * @type {NSliderController}\n */\n declare scope : NSliderController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-slider';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n ref: scope.ref('el'),\n class: data.classList,\n };\n\n return h('div', props, [\n this.bar(), this.handles()\n ]);\n }\n\n bar() : any\n {\n let { scope, data } = this.scope;\n\n const width = (data.width || 0) / data.minmax *\n Num.subtract([\n data.values[1], data.values[0]\n ]);\n\n const offset = (data.width || 0) / data.minmax *\n Num.subtract([\n data.values[0], data.minfix\n ]);\n\n let props : any = {\n name: 'range'\n };\n\n props.style = {\n width: Num.fixed(width || 0, 2) + 'px',\n left: Num.fixed(offset || 0, 2) + 'px',\n };\n\n return this.div('bar', [\n this.div(props)\n ]);\n }\n\n handles() : any\n {\n let { data } = this.scope;\n\n const vals = Arr.slice(data.values, ...[\n data.range ? 0 : 1, data.values.length\n ]);\n\n return Arr.each(vals, (value : any, index : any) => {\n return this.handle(value, data.range ? index : 1);\n });\n }\n\n handle(value : any, index : any) : any\n {\n let { scope, data } = this.scope;\n\n const offset = (data.width || 0) / data.minmax *\n Num.subtract([\n value, data.minfix\n ]);\n\n let props : any = {\n name: 'handle', 'data-handle': index,\n };\n\n props.style = {\n left: Num.fixed(offset, 2) + 'px',\n };\n\n props.onPointerdown = (e : any) => {\n scope.onPointerdown(e, index);\n };\n\n let key = Arr.findIndex(...[\n data.steps, value\n ]);\n\n props['data-tooltip'] = Obj.get(...[\n data.labels, key, value\n ]);\n\n return this.div(props, [h('span')]);\n }\n\n}\n\nexport default NSliderView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NSliderController from \"./NSliderController.ts\";\nimport { Arr, Mix } from \"@kizmann/pico-js\";\n\nexport class NSliderData extends ProtoData\n{\n /**\n * @type {NSliderController}\n */\n declare scope : NSliderController;\n\n get classList() : string[]\n {\n let classList = [];\n\n if ( this.range ) {\n classList.push('n-range');\n }\n\n return this.classRoot(classList);\n }\n\n get model() : any\n {\n return this.scope.get('modelValue');\n }\n\n get values() : number[]\n {\n return this.scope.get('values');\n }\n\n get index() : number\n {\n return this.scope.get('index');\n }\n\n get width() : number\n {\n return this.scope.get('width');\n }\n\n get range() : boolean\n {\n return this.scope.get('range');\n }\n\n get steps() : any\n {\n return this.scope.get('steps');\n }\n\n get labels() : any\n {\n return this.scope.get('labels');\n }\n\n get min() : number\n {\n return this.scope.get('min');\n }\n\n get minfix() : number\n {\n return Mix.isArr(this.steps) ? Arr.first(this.steps) : this.min;\n }\n\n get max() : number\n {\n return this.scope.get('max');\n }\n\n get maxfix() : number\n {\n return Mix.isArr(this.steps) ? Arr.last(this.steps) : this.max;\n }\n\n get minmax() : number\n {\n return this.maxfix - this.minfix;\n }\n\n\n}\n\nexport default NSliderData;","import { SetupContext } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NSliderView } from \"./NSliderView.ts\";\nimport { NSliderData } from \"./NSliderData.ts\";\nimport { Arr, Dom, Mix, Num } from \"@kizmann/pico-js\";\n\n\nexport class NSliderController extends ProtoController\n{\n /**\n * @type {NSliderController}\n */\n declare scope : NSliderController;\n\n /**\n * @type {NSliderData}\n */\n declare data : NSliderData;\n\n /**\n * @type {NSliderView}\n */\n declare view : NSliderView;\n\n /**\n * @type {ResizeObserver}\n */\n observer : ResizeObserver;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NSliderView(this),\n new NSliderData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeRef('el');\n\n this.cloneProp('modelValue');\n\n this.makeData('width', null);\n this.makeData('index', 0);\n this.makeData('values', []);\n\n this.updateValues();\n\n return this;\n }\n\n onMounted()\n {\n this.observer = new ResizeObserver(() => {\n this.onResize();\n });\n\n this.observer.observe(this.rel('el'));\n }\n\n onUnmounted()\n {\n this.observer.disconnect();\n }\n\n onResize()\n {\n this.set('width', this.dom('el').width());\n }\n\n onPointerdown(e : any, index : number)\n {\n const uid = this.uid;\n\n e.preventDefault();\n e.stopPropagation();\n\n const [el, db] = [\n Dom.find(e.target).upnode('[data-handle]'),\n Dom.find(document.body)\n ];\n\n db.on('pointermove', (e : any) => {\n this.onPointermove(e, index);\n }, { passive: true, uid });\n\n db.once('pointerup', (e : any) => {\n this.onPointerup(e);\n db.off('pointermove', { uid });\n el.remClass('n-move');\n });\n\n el.addClass('n-move');\n }\n\n onPointermove(e : any, index : number)\n {\n const { data } = this;\n\n let [cursor, offset] = [\n e.clientX, this.dom('el').offset('left')\n ];\n\n let width = (cursor - offset) /\n data.width * 100;\n\n let closest = this.getClosestStep(...[\n width, index\n ]);\n\n if ( closest < data.minfix ) {\n closest = data.minfix;\n }\n\n if ( closest > data.maxfix ) {\n closest = data.maxfix;\n }\n\n const min = data.values[0];\n\n if ( index === 1 && closest < min ) {\n closest = min;\n }\n\n const max = data.values[1];\n\n if ( index === 0 && closest > max ) {\n closest = max;\n }\n\n const values = Arr.clone(data.values);\n\n Arr.splice(values, ...[\n index, 1, closest\n ]);\n\n this.set('values', values);\n }\n\n onPointerup(e : any)\n {\n const { data } = this;\n\n this.update('modelValue', ...[\n data.range ? data.values : Arr.last(data.values)\n ]);\n }\n\n updateValues()\n {\n const { data } = this;\n\n let values : [number, number] = [\n data.minfix, null\n ];\n\n if ( Mix.isArr(data.model) ) {\n values = data.model;\n }\n\n let value = Arr.last(...[\n Arr.all(data.model)\n ]);\n\n if ( Mix.isNull(value) ) {\n value = data.maxfix;\n }\n\n this.set('values', [values[0], value]);\n }\n\n getClosestStep(width : number, index : number)\n {\n const { data } = this;\n\n if ( Mix.isNum(data.steps) ) {\n return Math.round(width / data.steps) * data.steps;\n }\n\n const ranges = [\n Arr.last(data.steps), Arr.first(data.steps),\n ];\n\n const step = (Num.subtract(ranges) / 100 * width);\n\n let diff = Arr.each(data.steps, (val : number) => {\n return Math.abs(step - val + data.minfix);\n });\n\n let target = Arr.findIndex(diff, Math.min(...diff));\n\n return data.steps[target];\n }\n\n}\n\nexport default NSliderController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NSliderController } from \"./NSliderController.ts\";\n\nexport const NSliderProps = {\n\n ...Props.Size,\n ...Props.Type,\n ...Props.Disabled,\n\n /**\n * @type {PropType<string|number|array>}\n */\n modelValue: {\n type: [String,Number,Array], default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n range: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<array>}\n */\n labels: {\n type: [Array], default: () => []\n },\n\n /**\n * @type {PropType<number|array>}\n */\n steps: {\n type: [Number,Array], default: 1\n },\n\n /**\n * @type {PropType<number>}\n */\n min: {\n type: [Number], default: 0\n },\n\n /**\n * @type {PropType<number>}\n */\n max: {\n type: [Number], default: 100\n },\n\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NSlider',\n\n /**\n * @type {typeof NSliderProps}\n */\n props: NSliderProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NSliderController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NFormController } from \"./NFormController.ts\";\n\nexport class NFormView extends ProtoView\n{\n /**\n * @type {NFormController}\n */\n declare scope : NFormController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-form';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n class: data.classList,\n };\n\n return h(data.native, props, [\n this.slot('default')\n ]);\n }\n\n}\n\nexport default NFormView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NFormController from \"./NFormController.ts\";\nimport { Obj } from \"@kizmann/pico-js\";\n\nexport class NFormData extends ProtoData\n{\n /**\n * @type {NFormController}\n */\n declare scope : NFormController;\n\n get classList() : string[]\n {\n let classList = [];\n\n const { bem } = this.scope.view;\n\n if ( this.align ) {\n classList.push(`${bem}--${this.align}`);\n }\n\n if ( this.kind ) {\n classList.push(`${bem}--${this.kind}`);\n }\n\n return this.classRoot(classList);\n }\n\n get form() : any\n {\n return this.scope.get('form');\n }\n\n get errors() : any\n {\n return this.scope.get('errors');\n }\n\n get checks() : any\n {\n return this.scope.get('checks');\n }\n\n get messages() : any\n {\n return this.scope.getMessages();\n }\n\n get dirty() : boolean\n {\n return this.scope.get('dirty');\n }\n\n get native() : string\n {\n return this.scope.get('nativeType');\n }\n\n get kind() : string\n {\n return this.scope.get('kind');\n }\n\n get align() : string\n {\n return this.scope.get('align');\n }\n\n}\n\nexport default NFormData;","import { Arr, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { NFormController as Form } from \"../../form/NFormController.ts\";\nimport { NFormItemController as FormItem } from \"../../form-item/NFormItemController.ts\";\n\nexport const NFormRuleRequired = {\n\n key: 'required',\n\n validate(scope: Form, field : FormItem, value : any)\n {\n if ( Mix.isBool(value) ) {\n return value === true;\n }\n\n return !Mix.isEmpty(value);\n },\n\n message(scope: Form, field : FormItem, value : any)\n {\n return Locale.trans('Field is required');\n },\n\n};\n\nexport default NFormRuleRequired;","import { Arr, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { NFormController as Form } from \"../../form/NFormController.ts\";\nimport { NFormItemController as FormItem } from \"../../form-item/NFormItemController.ts\";\n\nexport const NFormRuleRequiredIf = {\n\n key: 'required_if',\n\n validate(scope: Form, field : FormItem, value : any, key : string = '')\n {\n let target = Obj.get(scope.data.form, key);\n\n if ( Mix.isEmpty(target) ) {\n return true;\n }\n\n if ( Mix.isBool(value) ) {\n return value === true;\n }\n\n return !Mix.isEmpty(value);\n },\n\n message(scope: Form, field : FormItem, value : any, key = '')\n {\n let label = Arr.find(scope.childs, (item : any) => {\n return item.data.prop === key;\n });\n\n return Locale.trans('Field is required if :label isset', {\n label: label?.data.label || key\n });\n },\n\n};\n\nexport default NFormRuleRequiredIf;","import { Arr, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { NFormController as Form } from \"../../form/NFormController.ts\";\nimport { NFormItemController as FormItem } from \"../../form-item/NFormItemController.ts\";\n\nexport const NFormRuleRequiredUnless = {\n\n key: 'required_unless',\n\n validate(scope: Form, field : FormItem, value : any, key : string = '')\n {\n let target = Obj.get(scope.data.form, key);\n\n if ( !Mix.isEmpty(target) ) {\n return true;\n }\n\n if ( Mix.isBool(value) ) {\n return value === true;\n }\n\n return !Mix.isEmpty(value);\n },\n\n message(scope: Form, field : FormItem, value : any, key : string = '')\n {\n let label = Arr.find(scope.childs, (item : any) => {\n return item.data.prop === key;\n });\n\n return Locale.trans('Field is required unless :label isset', {\n label: label?.data.label || key\n });\n },\n\n};\n\nexport default NFormRuleRequiredUnless;\n","import { Arr, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { NFormController as Form } from \"../../form/NFormController.ts\";\nimport { NFormItemController as FormItem } from \"../../form-item/NFormItemController.ts\";\n\nexport const NFormRuleSame = {\n\n key: 'same',\n\n validate(scope: Form, field : FormItem, value : any, key : string = '')\n {\n return value === Obj.get(scope.data.form, key);\n },\n\n message(scope: Form, field : FormItem, value : any, key : string = '')\n {\n let label = Arr.find(scope.childs, (item : any) => {\n return item.data.prop === key;\n });\n\n return Locale.trans('Must be same as :label', {\n label: label?.data.label || key\n });\n },\n\n};\n\nexport default NFormRuleSame;","import { Arr, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { NFormController as Form } from \"../../form/NFormController.ts\";\nimport { NFormItemController as FormItem } from \"../../form-item/NFormItemController.ts\";\n\nexport const NFormRuleDiffrent = {\n\n key: 'diffrent',\n\n validate(scope: Form, field : FormItem, value : any, key : string = '')\n {\n return value !== Obj.get(scope.data.form, key);\n },\n\n message(scope: Form, field : FormItem, value : any, key : string = '')\n {\n let label = Arr.find(scope.childs, (item : any) => {\n return item.data.prop === key;\n });\n\n return Locale.trans('Must be diffrent from :label', {\n label: label?.data.label || key\n });\n },\n\n};\n\nexport default NFormRuleDiffrent;","import { Arr, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { NFormController as Form } from \"../../form/NFormController.ts\";\nimport { NFormItemController as FormItem } from \"../../form-item/NFormItemController.ts\";\n\nexport const NFormRuleValue = {\n\n key: 'value',\n\n validate(scope: Form, field : FormItem, value : any, val: string = '')\n {\n return Mix.str(value) === val;\n },\n\n message(scope: Form, field : FormItem, value : any, val: string = '')\n {\n return Locale.trans('Must be exact value \":val\"', { val });\n },\n\n};\n\nexport default NFormRuleValue;","import { Arr, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { NFormController as Form } from \"../../form/NFormController.ts\";\nimport { NFormItemController as FormItem } from \"../../form-item/NFormItemController.ts\";\n\nexport const NFormRuleEmail = {\n\n key: 'email',\n\n validate(scope: Form, field : FormItem, value : any)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n return Mix.str(value).match(/^.*?@.*?\\.[a-z]{2,}$/);\n },\n\n message(scope: Form, field : FormItem, value : any)\n {\n return Locale.trans('Must be a valid email');\n },\n\n};\n\nexport default NFormRuleEmail;","import { Arr, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { NFormController as Form } from \"../../form/NFormController.ts\";\nimport { NFormItemController as FormItem } from \"../../form-item/NFormItemController.ts\";\n\nexport const NFormRuleMin = {\n\n key: 'min',\n\n validate(scope: Form, field : FormItem, value : any, min: number = Number.MIN_VALUE)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isNum(value) ) {\n return value >= Mix.num(min);\n }\n\n return false;\n },\n\n message(scope: Form, field : FormItem, value : any, min: number = Number.MIN_VALUE)\n {\n return Locale.trans('Must be greather than :min', { min });\n },\n\n};\n\nexport default NFormRuleMin;","import { Arr, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { NFormController as Form } from \"../../form/NFormController.ts\";\nimport { NFormItemController as FormItem } from \"../../form-item/NFormItemController.ts\";\n\nexport const NFormRuleMax = {\n\n key: 'max',\n\n validate(scope: Form, field : FormItem, value : any, max: number = Number.MAX_VALUE)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isNum(value) ) {\n return value <= Mix.num(max);\n }\n\n return false;\n },\n\n message(scope: Form, field : FormItem, value : any, max: number = Number.MAX_VALUE)\n {\n return Locale.trans('Must be lesser than :max', { max });\n },\n\n};\n\nexport default NFormRuleMax;","import { Arr, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { NFormController as Form } from \"../../form/NFormController.ts\";\nimport { NFormItemController as FormItem } from \"../../form-item/NFormItemController.ts\";\n\nexport const NFormRuleMinlength = {\n\n key: 'minlength',\n\n validate(scope: Form, field : FormItem, value : any, min: number = Number.MIN_VALUE)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isStr(value) || Mix.isArr(value) ) {\n return Mix.len(value) > Mix.num(min);\n }\n\n return false;\n },\n\n message(scope: Form, field : FormItem, value : any, min: number = Number.MIN_VALUE)\n {\n return Locale.trans('Length must be greater than :min', { min });\n },\n\n};\n\nexport default NFormRuleMinlength;","import { Arr, Locale, Mix, Obj } from \"@kizmann/pico-js\";\nimport { NFormController as Form } from \"../../form/NFormController.ts\";\nimport { NFormItemController as FormItem } from \"../../form-item/NFormItemController.ts\";\n\nexport const NFormRuleMaxlength = {\n\n key: 'maxlength',\n\n validate(scope: Form, field : FormItem, value : any, max: number = Number.MAX_VALUE)\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( Mix.isStr(value) || Mix.isArr(value) ) {\n return Mix.len(value) < Mix.num(max);\n }\n\n return false;\n },\n\n message(scope: Form, field : FormItem, value : any, max: number = Number.MAX_VALUE)\n {\n return Locale.trans('Length must be lesser than :max', { max });\n },\n\n};\n\nexport default NFormRuleMaxlength;","import { Arr, Mix, Obj } from \"@kizmann/pico-js\";\nimport NFormController from \"../form/NFormController.ts\";\nimport NFormItemController from \"../form-item/NFormItemController.ts\";\nimport NFormRuleRequired from \"./module/NFormRuleRequired.ts\";\nimport NFormRuleRequiredIf from \"./module/NFormRuleRequiredIf.ts\";\nimport NFormRuleRequiredUnless from \"./module/NFormRuleRequiredUnless.ts\";\nimport NFormRuleSame from \"./module/NFormRuleSame.ts\";\nimport NFormRuleDiffrent from \"./module/NFormRuleDiffrent.ts\";\nimport NFormRuleValue from \"./module/NFormRuleValue.ts\";\nimport NFormRuleEmail from \"./module/NFormRuleEmail.ts\";\nimport NFormRuleMin from \"./module/NFormRuleMin.ts\";\nimport NFormRuleMax from \"./module/NFormRuleMax.ts\";\nimport NFormRuleMinlength from \"./module/NFormRuleMinlength.ts\";\nimport NFormRuleMaxlength from \"./module/NFormRuleMaxlength.ts\";\n\n\nexport class NFormRuleHandler\n{\n static rules : any = {\n [NFormRuleRequired.key]: NFormRuleRequired,\n [NFormRuleRequiredIf.key]: NFormRuleRequiredIf,\n [NFormRuleRequiredUnless.key]: NFormRuleRequiredUnless,\n [NFormRuleSame.key]: NFormRuleSame,\n [NFormRuleDiffrent.key]: NFormRuleDiffrent,\n [NFormRuleValue.key]: NFormRuleValue,\n [NFormRuleEmail.key]: NFormRuleEmail,\n [NFormRuleMin.key]: NFormRuleMin,\n [NFormRuleMax.key]: NFormRuleMax,\n [NFormRuleMinlength.key]: NFormRuleMinlength,\n [NFormRuleMaxlength.key]: NFormRuleMaxlength,\n };\n\n static init() : NFormRuleHandler\n {\n return this;\n }\n\n static register(key : string, rule : any): NFormRuleHandler\n {\n this.rules[key] = rule;\n\n return this;\n }\n\n static test(scope : NFormController, field : NFormItemController) : string[]\n {\n const [errors, value] = [\n [], Obj.get(scope.data.form, field.data.prop)\n ];\n\n Arr.each(field.data.rules || [], (rule : string) => {\n\n let [name, ...args] = rule.split(':');\n\n if ( ! this.rules[name] ) {\n return;\n }\n\n const valid = this.rules[name].validate(...[\n scope, field, value, ...args\n ]);\n\n if ( valid ) {\n return;\n }\n\n const message = this.rules[name].message(...[\n scope, field, value, ...args\n ]);\n\n Arr.append(errors, message);\n });\n\n return errors;\n }\n\n}\n\nexport default NFormRuleHandler;","import { provide, ref, SetupContext, watch } from \"vue\";\nimport { GroupController } from \"../../../root/index.ts\";\nimport { NFormView } from \"./NFormView.ts\";\nimport { NFormData } from \"./NFormData.ts\";\nimport { Arr, Hash, Obj } from \"@kizmann/pico-js\";\nimport NFormRuleHandler from \"../form-rules/NFormRuleHandler.ts\";\n\n\nexport class NFormController extends GroupController\n{\n /**\n * @type {NFormController}\n */\n declare scope : NFormController;\n\n /**\n * @type {NFormData}\n */\n declare data: NFormData;\n\n /**\n * @type {NFormView}\n */\n declare view: NFormView;\n\n /**\n * @type {string}\n */\n hash : string;\n\n constructor(props:any, context:SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NFormView(this),\n new NFormData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n provide('NForm', this.instance);\n\n this.watchChilds(() => {\n this.onFieldChange();\n });\n\n this.cloneProp('dirty');\n this.makeData('checks', {});\n\n this.watchProp('form', () => {\n this.onFormChange();\n });\n\n this.compareChange();\n\n return this;\n }\n\n onFormChange()\n {\n this.compareChange();\n this.extractChecks();\n }\n\n onFieldChange()\n {\n // console.log('onFieldChange');\n }\n\n compareChange()\n {\n const { data } = this;\n\n if ( data.dirty || ! data.form ) {\n return;\n }\n\n const hash = Hash.object(data.form);\n\n if ( this.hash != hash ) {\n this.update('dirty', !! this.hash);\n }\n\n this.hash = hash;\n }\n\n extractChecks()\n {\n let checks : any = {}\n\n Arr.each(this.childs, (child : any) => {\n checks[child.data.prop] = NFormRuleHandler.test(this, child);\n });\n\n checks = Obj.filter(checks, (value : any) => {\n return value.length > 0;\n });\n\n this.set('checks', checks);\n }\n\n getMessages()\n {\n const { data } = this;\n\n let messages = Obj.clone(...[\n data.checks\n ]);\n\n Arr.each(data.errors, (val : any, key: string) => {\n messages[key] = Arr.merge(messages[key] ?? [], Arr.all(val));\n });\n\n return messages;\n }\n\n}\n\nexport default NFormController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NFormController } from \"./NFormController.ts\";\n\nexport const NFormProps = {\n\n ...Props.Load,\n ...Props.Size,\n ...Props.Type,\n ...Props.Disabled,\n ...Props.AlignVertical,\n\n /**\n * @type {PropType<object>}\n */\n form: {\n type: [Object], default: null\n },\n\n /**\n * @type {PropType<boolean>}\n */\n dirty: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<object>}\n */\n errors: {\n type: [Object], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n nativeType: {\n type: [String], default: 'div'\n },\n\n /**\n * @type {PropType<string>}\n */\n kind: {\n type: [String], default: 'classic'\n },\n\n /**\n * @type {PropType<boolean>}\n */\n square: {\n type: [Boolean], default: false\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NForm',\n\n /**\n * @type {typeof NFormProps}\n */\n props: NFormProps,\n\n /**\n * @type {boolean}\n */\n inheritAttrs: false,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:dirty',\n 'submit',\n ],\n\n setup(props, context)\n {\n let ncx = new NFormController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NFormItemController } from \"./NFormItemController.ts\";\nimport { Arr, Locale, Mix } from \"@kizmann/pico-js\";\n\n/**\n * @class NFormItemView\n * @extends {ProtoView<NFormItemController>}\n */\nexport class NFormItemView extends ProtoView\n{\n /**\n * @type {NFormItemController}\n */\n declare scope : NFormItemController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-form-item';\n\n default()\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n ref: scope.ref('el'),\n class: data.classList,\n };\n\n if ( ! data.model ) {\n props.class.push('is-disabled');\n }\n\n props['data-ncx'] = scope.uid;\n\n return h('div', props, [\n this.cond(),\n this.label(),\n this.input(),\n this.error(),\n ]);\n }\n\n cond()\n {\n const { scope, data } = this.scope;\n\n if ( ! data.conditional ) {\n return null;\n }\n\n let props : any = {\n name: 'condition',\n };\n\n props.onPointerdown = () => {\n scope.superToggle();\n };\n\n const onoff = [\n Locale.trans('Enable field'),\n Locale.trans('Disable field'),\n ];\n\n return this.div(props, [\n h('span', null, data.model ? onoff[1] : onoff[0])\n ]);\n }\n\n label()\n {\n const { data } = this.scope;\n\n return this.div('label', [\n h('span', null, data.label)\n ]);\n }\n\n input()\n {\n return this.div('input', [\n this.slot('default')\n ]);\n }\n\n error()\n {\n const { data } = this.scope;\n\n const errors = this.scope.ncx('form')\n ?.data.messages ?? {};\n\n if ( ! errors[data.prop] ) {\n return null;\n }\n\n return this.div('error', [\n h('span', null, Arr.first(errors[data.prop]))\n ]);\n }\n\n}\n\nexport default NFormItemView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NFormItemController from \"./NFormItemController.ts\";\n\nexport class NFormItemData extends ProtoData\n{\n /**\n * @type {NFormItemController}\n */\n declare scope : NFormItemController;\n\n get classList(): string[]\n {\n return this.classRoot();\n }\n\n get model() : boolean\n {\n return this.scope.get('modelValue');\n }\n\n get rules() : boolean\n {\n return this.scope.get('rules');\n }\n\n get label() : string\n {\n return this.scope.get('label');\n }\n\n get prop() : string\n {\n return this.scope.get('prop');\n }\n\n get conditional() : boolean\n {\n return this.scope.get('conditional');\n }\n\n}","import { ProtoController } from \"../../../root/index.ts\";\nimport { NFormItemView } from \"./NFormItemView.ts\";\nimport { NFormItemData } from \"./NFormItemData.ts\";\nimport { provide, SetupContext } from \"vue\";\nimport { Run } from \"@kizmann/pico-js\";\n\nexport class NFormItemController extends ProtoController\n{\n /**\n * @type {NFormItemController}\n */\n declare scope : NFormItemController;\n\n /**\n * @type {NFormItemData}\n */\n declare data : NFormItemData;\n\n /**\n * @type {NFormItemView}\n */\n declare view : NFormItemView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NFormItemView(this),\n new NFormItemData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n\n this.cloneProp('modelValue');\n this.makeRef('el');\n\n if ( ! this.data.conditional ) {\n this.set('modelValue', true);\n }\n\n this.injectRef(['form', 'NForm']);\n this.injectRef(['form-group', 'NFormGroup']);\n this.injectRef(['tabs-item', 'NTabsItem']);\n this.injectRef(['collapse-item', 'NCollapseItem']);\n\n provide('NFormItem', this.instance);\n\n return this;\n }\n\n onMounted()\n {\n this.ncx('form')?.append(this);\n this.ncx('form-group')?.append(this);\n }\n\n onUnmounted()\n {\n this.ncx('form')?.remove(this);\n this.ncx('form-group')?.remove(this);\n }\n\n superToggle()\n {\n if ( this.data.conditional ) {\n this.update('modelValue', !this.data.model);\n }\n }\n\n superView()\n {\n this.ncx('tabs-item')?.superOpen();\n this.ncx('collapse-item')?.superOpen();\n this.ncx('form-group')?.superOpen();\n\n const options: any = {\n behavior: 'smooth'\n };\n\n Run.frame(() => {\n this.el.scrollIntoView(options);\n });\n }\n\n}\n\nexport default NFormItemController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NFormItemController } from \"./NFormItemController.ts\";\n\nexport const NFormItemProps = {\n\n /**\n * @type {PropType<boolean>}\n */\n modelValue: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<array>}\n */\n rules: {\n type: [Array], default: () => []\n },\n\n /**\n * @type {PropType<boolean>}\n */\n conditional: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<string>}\n */\n label: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n prop: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n tooltip: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n conditionOn: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n conditionOff: {\n type: [String], default: null\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NFormItem',\n\n /**\n * @type {typeof NFormItemProps}\n */\n props: NFormItemProps,\n\n setup(props, context)\n {\n let ncx = new NFormItemController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Mix } from \"@kizmann/pico-js\";\nimport { ProtoView, Styler } from \"../../../root/index.ts\";\nimport { NFormBagController } from \"./NFormBagController.ts\";\nimport NFormItemController from \"../form-item/NFormItemController.ts\";\n\nexport class NFormBagView extends ProtoView\n{\n /**\n * @type {NFormBagController}\n */\n declare scope : NFormBagController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-form-bag';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n const errors = scope.ncx('form')\n ?.data.messages;\n\n if ( Mix.isEmpty(errors) ) {\n return null;\n }\n\n const fields = scope.ncx('form').childs;\n\n const items = Arr.each(fields, (field : any) => {\n return this.field(field, errors);\n });\n\n let props : any = {\n class: data.classList,\n };\n\n return h('div', props, items);\n }\n\n field(field : NFormItemController, errors: any) : any\n {\n const { prop, label } = field.data;\n\n if ( ! errors[prop] ) {\n return null;\n }\n\n const { data } = this.scope;\n\n let props : any = {\n name: 'item'\n };\n\n props.onPointerdown = () => {\n field.superView();\n };\n\n const items = Arr.each(errors[prop], (err : string) => {\n return h('li', null, err);\n });\n\n const list = this.div('list', [\n h('ul', null, items)\n ]);\n\n const link = this.div('link', [\n this.icon(Styler.icon('locate')), h('span', null, label)\n ]);\n\n return this.div(props, [link, list]);\n }\n\n}\n\nexport default NFormBagView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NFormBagController from \"./NFormBagController.ts\";\n\nexport class NFormBagData extends ProtoData\n{\n /**\n * @type {NFormBagController}\n */\n declare scope : NFormBagController;\n\n get classList() : string[]\n {\n let classList = [];\n\n return this.classRoot(classList);\n }\n\n}\n\nexport default NFormBagData;","import { SetupContext } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NFormBagView } from \"./NFormBagView.ts\";\nimport { NFormBagData } from \"./NFormBagData.ts\";\n\n\nexport class NFormBagController extends ProtoController\n{\n /**\n * @type {NFormBagController}\n */\n declare scope : NFormBagController;\n\n /**\n * @type {NFormBagData}\n */\n declare data: NFormBagData;\n\n /**\n * @type {NFormBagView}\n */\n declare view: NFormBagView;\n\n constructor(props:any, context:SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NFormBagView(this),\n new NFormBagData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.injectRef([\n 'form', 'NForm'\n ]);\n\n return this;\n }\n\n}\n\nexport default NFormBagController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NFormBagController } from \"./NFormBagController.ts\";\n\nexport const NFormBagProps = {\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NFormBag',\n\n /**\n * @type {typeof NFormBagProps}\n */\n props: NFormBagProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n //\n ],\n\n setup(props, context)\n {\n let ncx = new NFormBagController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Mix } from \"@kizmann/pico-js\";\nimport { ProtoView, Styler } from \"../../../root/index.ts\";\nimport { NFormGroupController } from \"./NFormGroupController.ts\";\n\nexport class NFormGroupView extends ProtoView\n{\n /**\n * @type {NFormGroupController}\n */\n declare scope : NFormGroupController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-form-group';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n ref: scope.ref('el'),\n class: data.classList,\n };\n\n if ( ! data.model ) {\n props.class.push('n-hidden');\n }\n\n props['data-ncx'] = scope.uid;\n\n return h(data.native, props, [\n this.header(), this.body()\n ]);\n }\n\n header() : any\n {\n const props : any = {\n name: 'legend',\n };\n\n props.onPointerdown = () => {\n this.scope.superToggle();\n };\n\n return this.div('header', [\n this.div(props, [\n this.collapse(), this.label(), this.action()\n ])\n ]);\n }\n\n collapse() : any\n {\n const { data } = this.scope;\n\n if ( ! data.collapse ) {\n return null;\n }\n\n return this.div('collapse', [\n this.icon(Styler.icon('angle-down'))\n ]);\n }\n\n action() : any\n {\n const { slots } = this.scope.context;\n\n if ( !slots.action ) {\n return null;\n }\n\n return this.div('action', [\n this.slot('action')\n ]);\n }\n\n label() : any\n {\n return this.div('label', [\n this.label_icon(), this.label_text()\n ]);\n }\n\n label_icon() : any\n {\n const { data } = this.scope;\n\n if ( Mix.isEmpty(data.icon) ) {\n return null;\n }\n\n return this.div('icon', [\n this.icon(data.icon)\n ]);\n }\n\n label_text() : any\n {\n const { data } = this.scope;\n\n return this.div('text', [\n h('span', null, data.label)\n ]);\n }\n\n body() : any\n {\n const { data } = this.scope;\n\n const props : any = {\n class: data.classPart('body')\n };\n\n if( data.grid ) {\n props.class.push(`n-grid gap-${data.grid}`);\n }\n\n return this.div(props, [\n this.slot('default')\n ]);\n }\n\n}\n\nexport default NFormGroupView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NFormGroupController from \"./NFormGroupController.ts\";\n\nexport class NFormGroupData extends ProtoData\n{\n /**\n * @type {NFormGroupController}\n */\n declare scope : NFormGroupController;\n\n get classList() : string[]\n {\n let classList = [];\n\n const { bem } = this.scope.view;\n\n if ( this.align ) {\n classList.push(`${bem}--${this.align}`);\n }\n\n if ( this.superKind ) {\n classList.push(`${bem}--${this.superKind}`);\n }\n\n if ( this.collapse ) {\n classList.push('has-collapse');\n }\n\n return this.classRoot(classList);\n }\n\n get model(): boolean\n {\n return this.scope.get('modelValue');\n }\n\n get native() : string\n {\n return this.scope.get('nativeType');\n }\n\n get kind() : string\n {\n return this.scope.get('kind');\n }\n\n get superKind() : string\n {\n const ncx = this.scope.ncx('form');\n\n return this.kind || ncx?.get('kind');\n }\n\n get align() : string\n {\n return this.scope.get('align');\n }\n\n get label() : string\n {\n return this.scope.get('label');\n }\n\n get collapse(): boolean\n {\n return this.scope.get('collapse');\n }\n\n get grid() : string\n {\n return this.scope.get('grid');\n }\n\n}\n\nexport default NFormGroupData;","import { provide, SetupContext } from \"vue\";\nimport { GroupController } from \"../../../root/index.ts\";\nimport { NFormGroupView } from \"./NFormGroupView.ts\";\nimport { NFormGroupData } from \"./NFormGroupData.ts\";\nimport { Run } from \"@kizmann/pico-js\";\n\nexport class NFormGroupController extends GroupController\n{\n /**\n * @type {NFormGroupController}\n */\n declare scope : NFormGroupController;\n\n /**\n * @type {NFormGroupData}\n */\n declare data : NFormGroupData;\n\n /**\n * @type {NFormGroupView}\n */\n declare view : NFormGroupView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NFormGroupView(this),\n new NFormGroupData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n\n this.cloneProp('modelValue');\n this.makeRef('el');\n\n this.injectRef(['form', 'NForm']);\n this.injectRef(['form-frame', 'NFormFrame']);\n this.injectRef(['tabs-item', 'NTabsItem']);\n this.injectRef(['collapse-item', 'NCollapseItem']);\n\n provide('NFormGroup', this.instance);\n\n return this;\n }\n\n onMounted()\n {\n this.ncx('form-frame')?.append(this);\n }\n\n onUnmounted()\n {\n this.ncx('form-frame')?.remove(this);\n }\n\n superToggle()\n {\n if ( this.data.collapse ) {\n this.update('modelValue', !this.data.model);\n }\n }\n\n superOpen()\n {\n if ( this.data.collapse ) {\n this.update('modelValue', true);\n }\n }\n\n superClose()\n {\n if ( this.data.collapse ) {\n this.update('modelValue', false);\n }\n }\n\n superView()\n {\n this.ncx('tabs-item')?.superOpen();\n this.ncx('collapse-item')?.superOpen();\n\n const options : any = {\n behavior: 'smooth'\n };\n\n Run.frame(() => {\n this.el.scrollIntoView(options);\n });\n }\n\n}\n\nexport default NFormGroupController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NFormGroupController } from \"./NFormGroupController.ts\";\nimport { Hash } from \"@kizmann/pico-js\";\n\nexport const NFormGroupProps = {\n\n ...Props.Icon,\n\n /**\n * @type {PropType<boolean>}\n */\n modelValue: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<string>}\n */\n nativeType: {\n type: [String], default: 'div'\n },\n\n /**\n * @type {PropType<string>}\n */\n kind: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n align: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n name: {\n type: [String], default: () => Hash.uuid()\n },\n\n /**\n * @type {PropType<string>}\n */\n label: {\n type: [String], default: null\n },\n\n /**\n * @type {PropType<string|number>}\n */\n grid: {\n type: [String,Number], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n collapse: {\n type: [Boolean], default: false\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NFormGroup',\n\n /**\n * @type {typeof NFormGroupProps}\n */\n props: NFormGroupProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n 'update:modelValue',\n ],\n\n setup(props, context)\n {\n let ncx = new NFormGroupController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr } from \"@kizmann/pico-js\";\nimport { ProtoView, Styler } from \"../../../root/index.ts\";\nimport { NFormFrameController } from \"./NFormFrameController.ts\";\n\nexport class NFormFrameView extends ProtoView\n{\n /**\n * @type {NFormFrameController}\n */\n declare scope : NFormFrameController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-form-frame';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n class: data.classList,\n };\n\n return h('div', props, [\n this.side(), this.body()\n ]);\n }\n\n side() : any\n {\n const { data } = this.scope;\n\n let props : any = {\n class: data.classPart('side')\n };\n\n return this.comp('n-scrollbar', props, () => [\n this.search(), this.links()\n ]);\n }\n\n search() : any\n {\n const { scope, data } = this.scope;\n\n let props : any = {\n modelValue: data.search,\n clearable: true,\n icon: Styler.icon('search'),\n placeholder: data.placeholder,\n };\n\n props.onInput = (e : any) => {\n scope.set('search', e.target.value);\n };\n\n return this.div('search', [\n this.comp('n-input', props)\n ]);\n }\n\n links() : any\n {\n const { childs } = this.scope;\n\n let items = Arr.each(childs, (child : any) => {\n return this.link(child);\n });\n\n return this.div('links', items);\n }\n\n link(group : any) : any\n {\n const { scope, data } = this.scope;\n\n let props : any = {\n class: data.classPart('link'),\n };\n\n props.onPointerdown = () => {\n scope.superView(group);\n };\n\n const { icon } = group.data;\n\n const label = h('span', null, [\n group.data.label\n ]);\n\n return h('div', props, [\n icon && this.icon(icon), label\n ]);\n }\n\n body() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n ref: scope.ref('body'),\n class: data.classPart('body'),\n };\n\n return this.comp('n-scrollbar', props, () => [\n this.slot('default')\n ]);\n }\n\n}\n\nexport default NFormFrameView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NFormFrameController from \"./NFormFrameController.ts\";\n\nexport class NFormFrameData extends ProtoData\n{\n /**\n * @type {NFormFrameController}\n */\n declare scope : NFormFrameController;\n\n get classList() : string[]\n {\n return this.classRoot([]);\n }\n\n get placeholder() : string\n {\n return this.scope.get('placeholder');\n }\n\n}\n\nexport default NFormFrameData;","import { provide, SetupContext } from \"vue\";\nimport { GroupController } from \"../../../root/index.ts\";\nimport { NFormFrameView } from \"./NFormFrameView.ts\";\nimport { NFormFrameData } from \"./NFormFrameData.ts\";\nimport NFormGroupController from \"../form-group/NFormGroupController.ts\";\nimport { Run } from \"@kizmann/pico-js\";\n\n\nexport class NFormFrameController extends GroupController\n{\n /**\n * @type {NFormFrameController}\n */\n declare scope : NFormFrameController;\n\n /**\n * @type {NFormFrameData}\n */\n declare data: NFormFrameData;\n\n /**\n * @type {NFormFrameView}\n */\n declare view: NFormFrameView;\n\n constructor(props:any, context:SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NFormFrameView(this),\n new NFormFrameData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeRef('body');\n\n provide('NFormFrame', this.instance);\n\n return this;\n }\n\n superView(group : NFormGroupController)\n {\n const selector = `[data-ncx=\"${group.uid}\"]`;\n\n const options = {\n behavior: 'smooth'\n };\n\n Run.frame(() => {\n this.ncx('body')?.scrollTo(selector, options);\n });\n\n group.superView();\n }\n\n}\n\nexport default NFormFrameController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NFormFrameController } from \"./NFormFrameController.ts\";\n\nexport const NFormFrameProps = {\n\n /**\n * @type {PropType<boolean>}\n */\n showSearch: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<string>}\n */\n placeholder: {\n type: [String], default: 'Search ...'\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NFormFrame',\n\n /**\n * @type {typeof NFormFrameProps}\n */\n props: NFormFrameProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n //\n ],\n\n setup(props, context)\n {\n let ncx = new NFormFrameController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h, resolveComponent } from \"vue\";\nimport { Arr, Mix, Obj } from \"@kizmann/pico-js\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NConfigController } from \"./NConfigController.ts\";\n\nexport class NConfigView extends ProtoView\n{\n /**\n * @type {NConfigController}\n */\n declare scope : NConfigController;\n\n default() : any\n {\n const { config } = this.scope.data;\n\n return Arr.each(config, (value : any, key : string) => {\n return this.setup(value, key);\n });\n }\n\n setup(setup : any, alias : string) : any\n {\n const { scope } = this.scope;\n\n if ( ! Mix.isObj(setup) ) {\n return setup;\n }\n\n const v_if = scope.propExists(...[\n setup['vIf']\n ]);\n\n if ( ! v_if ) {\n return null;\n }\n\n const v_await = scope.propAwait(...[\n setup['vAwait']\n ]);\n\n if ( ! v_await ) {\n return null;\n }\n\n let defaults = {\n binds: {},\n props: {},\n events: {},\n content: {},\n slots: {}\n };\n\n let defaultsBind = {\n value: '',\n fallback: null\n };\n\n setup = Obj.assign(defaults, setup);\n\n let binds = {};\n\n Obj.each(setup['binds'], (value : any, key : string) => {\n binds[key] = Obj.assign(defaultsBind, {\n ...defaultsBind, ...(Mix.isStr(value) ? { value } : value)\n });\n });\n\n let events : any = {};\n\n Obj.each(setup['events'], (value : any, key : string) => {\n events[scope.toEventKey(key)] = scope.solveContext(value);\n });\n\n let props : any = {};\n\n Obj.each(setup['props'], (value : any, key : string) => {\n props[scope.toPropKey(key)] = scope.getProp(key, value);\n });\n\n props = Obj.assign(props, events);\n\n Obj.each(binds, (value : any, key : string) => {\n\n let updateKey = 'onUpdate:' + key;\n\n props[scope.toEventKey(updateKey)] = (input : any) => {\n scope.setInput(value.value, input);\n };\n\n props[scope.toPropKey(key)] = scope.getInput(...[\n value.value, value.fallback\n ]);\n });\n\n let component : any = alias.replace(/:.*?$/, '');\n\n if ( !Arr.has(['div', 'p', 'span'], component) ) {\n component = resolveComponent(component);\n }\n\n if ( Mix.isEmpty(component) ) {\n return null;\n }\n\n if ( !scope.propExists(setup['vShow']) ) {\n props.style = \"display: none;\";\n }\n\n let slots = {\n default: this.child(setup.content)\n };\n\n Obj.each(setup.slots, (slot : any, key : string) => {\n slots[key] = this.child(slot);\n });\n\n return h(component, props, slots);\n }\n\n child(callback : any)\n {\n let render = () => Arr.each(callback, (value: any, key : string) => {\n return this.setup(value, key);\n });\n\n if ( Mix.isFunc(callback) ) {\n render = () => callback.apply(this.scope);\n }\n\n if ( Mix.isStr(callback) ) {\n render = () => this.scope.getString(callback);\n }\n\n return render;\n }\n\n}\n\nexport default NConfigView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NConfigController from \"./NConfigController.ts\";\n\nexport class NConfigData extends ProtoData\n{\n /**\n * @type {NConfigController}\n */\n declare scope : NConfigController;\n\n get model() : any\n {\n return this.scope.get('modelValue');\n }\n\n get extra() : any\n {\n return this.scope.get('extraValue');\n }\n\n get config() : any\n {\n return this.scope.get('config');\n }\n\n get self() : any\n {\n return this.scope.get('scope');\n }\n\n}\n\nexport default NConfigData;","import { SetupContext } from \"vue\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NConfigView } from \"./NConfigView.ts\";\nimport { NConfigData } from \"./NConfigData.ts\";\nimport { Arr, Locale, Mix, Obj, Str } from \"@kizmann/pico-js\";\n\n\nexport class NConfigController extends ProtoController\n{\n /**\n * @type {NConfigController}\n */\n declare scope : NConfigController;\n\n /**\n * @type {NConfigData}\n */\n declare data: NConfigData;\n\n /**\n * @type {NConfigView}\n */\n declare view: NConfigView;\n\n constructor(props:any, context:SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NConfigView(this),\n new NConfigData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n return this;\n }\n\n getString(value : string) : string\n {\n let final = Mix.str(value)\n .replace(/^@/, '')\n .replace(/^\\\\@/, '@');\n\n if ( /^@/.test(value) ) {\n return Locale.trans(final);\n }\n\n return final;\n }\n\n propAwait(value : any) : boolean\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Mix.isArr(value) ) {\n value = [value];\n }\n\n let result = Arr.each(value, (state : any) => {\n return this.getState(state, true);\n });\n\n return ! Arr.has(result, false);\n }\n\n propExists(value : any) : boolean\n {\n if ( Mix.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Mix.isArr(value) ) {\n value = [value];\n }\n\n let result = Arr.each(value, (state : any) => {\n return this.getState(state, false);\n });\n\n return ! Arr.has(result, false);\n }\n\n getState(value : any, exists : boolean = true) : boolean\n {\n if ( Mix.isFunc(value) ) {\n return !! this.solveInput(value);\n }\n\n if ( ! Mix.isStr(value) ) {\n return !! value;\n }\n\n if ( ! value.match(/(\\$scope|\\$model|\\$global)/) ) {\n return !! value;\n }\n\n let sources = {\n $scope: this.data.self,\n $model: this.data.model,\n $extra: this.data.extra,\n $global: globalThis\n };\n\n if ( exists ) {\n return Obj.has(sources, value);\n }\n\n return !! Obj.get(sources, value);\n }\n\n toPropKey(value : string) : string\n {\n let splits = value.replace(/^!/, '').split('-');\n\n const result = Arr.each(splits, (split : string) => {\n return Str.ucfirst(split);\n });\n\n return Str.lcfirst(result.join(''));\n }\n\n toEventKey(value : string) : string\n {\n if ( ! value.match(/^on/) ) {\n value = 'on-' + value;\n }\n\n let splits = value.split('-');\n\n const result = Arr.each(splits, (split : string) => {\n return Str.ucfirst(split);\n });\n\n return Str.lcfirst(result.join(''));\n }\n\n solveInput(cb : Function, fallback : any = undefined) : any\n {\n return cb.call(...[\n this.data.self, this.data.model, fallback\n ]);\n }\n\n solveContext(cb : Function) : Function\n {\n if ( ! Mix.isFunc(cb) ) {\n return () => console.error('NConfig: Raw suffix (!) only allowed on functions');\n }\n\n return (...args: [...any]) => {\n return cb.call(this.data.self, ...args);\n };\n }\n\n getProp(key : string, value : any) : any\n {\n if ( key.match(/^!/) ) {\n return this.solveContext(value);\n }\n\n if ( Mix.isFunc(value) ) {\n return this.solveInput(value);\n }\n\n if ( ! Mix.isStr(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.data.self,\n $model: this.data.model,\n $extra: this.data.extra,\n $global: globalThis\n };\n\n let result = Obj.get(...[\n sources, value.replace(/^!+/, '')\n ]);\n\n if ( value.match(/^!!\\$/) ) {\n result = Mix.isEmpty(result);\n }\n\n if ( value.match(/^!\\$/) ) {\n result = Mix.isEmpty(result);\n }\n\n return result;\n }\n\n getInput(prop : any, fallback : any) : any\n {\n if ( Mix.isFunc(prop) ) {\n return this.solveInput(prop, fallback);\n }\n\n let sources = {\n $scope: this.data.self,\n $model: this.data.model,\n $extra: this.data.extra,\n $global: globalThis\n };\n\n if ( ! Mix.isNull(fallback) && ! Obj.has(sources, prop) ) {\n Obj.set(sources, prop, fallback);\n }\n\n return Obj.get(sources, prop);\n }\n\n setInput(prop : any, value : any) : void\n {\n if ( Mix.isFunc(prop) ) {\n return console.error('NConfig: Bind with function is not allowed!');\n }\n\n let sources = {\n $scope: this.data.self,\n $model: this.data.model,\n $extra: this.data.extra,\n $global: globalThis\n };\n\n Obj.set(sources, prop, value);\n }\n\n}\n\nexport default NConfigController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NConfigController } from \"./NConfigController.ts\";\n\nexport const NConfigProps = {\n\n /**\n * @type {PropType<object>}\n */\n modelValue: {\n type: [Object], default: null\n },\n\n /**\n * @type {PropType<object>}\n */\n extraValue: {\n type: [Object], default: null\n },\n\n /**\n * @type {PropType<object>}\n */\n config: {\n type: [Object], default: null\n },\n\n /**\n * @type {PropType<object>}\n */\n scope: {\n type: [Object], default: null\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NConfig',\n\n /**\n * @type {typeof NConfigProps}\n */\n props: NConfigProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n //\n ],\n\n setup(props, context)\n {\n let ncx = new NConfigController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Locale, Mix, Num } from \"@kizmann/pico-js\";\nimport { ProtoView, Styler } from \"../../../root/index.ts\";\nimport { NChartBarController } from \"./NChartBarController.ts\";\n\nexport class NChartBarView extends ProtoView\n{\n /**\n * @type {NChartBarController}\n */\n declare scope : NChartBarController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-chart-bar';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n class: data.classList,\n };\n\n return h('div', props, [\n this.header(), this.body(), this.slot('default'),\n ]);\n }\n\n header() : any\n {\n const { scope, data } = this.scope;\n\n const total = this.div('total', [\n h('span', null, data.totalLabel),\n ]);\n\n const avgLabel = Locale.trans(...[\n ':count avg', { count: data.avgval }\n ]);\n\n const avg = this.div('tag', [\n h('span', null, avgLabel),\n ])\n\n return this.div('header', [\n total, avg,\n ]);\n }\n\n body() : any\n {\n return this.div('body', [\n this.frame(), this.legend(),\n ]);\n }\n\n frame() : any\n {\n return this.div('frame', [\n this.avg(), this.bars(),\n ]);\n }\n\n avg() : any\n {\n const { scope, data } = this.scope;\n\n const props : any = {\n name: 'avg',\n };\n\n const height = Num.fixed(...[\n (100/ data.maxval) * data.avgval, 2\n ]);\n\n props.style = {\n '--n-chart-avg': height + '%'\n };\n\n return this.div(props, []);\n }\n\n bars() : any\n {\n let { scope, data } = this.scope;\n\n const items = Arr.each(data.visible, (v : any, i : number) => {\n return this.bar(v.toItem(), i);\n });\n\n return this.div('bars', [\n ...items, this.other(),\n ]);\n }\n\n other() : any\n {\n const { scope, data } = this.scope;\n\n if ( ! data.hidden.length ) {\n return null;\n }\n\n const splits = Arr.each(data.hidden, (item: any) => {\n return Num.float(item.data.value);\n });\n\n const item : any = {\n axis: data.otherLabel,\n value: Num.combine(splits),\n color: null,\n type: 'neutral',\n };\n\n return this.bar(...[\n item, data.hidden.length\n ]);\n }\n\n bar(item : any, index : number) : any\n {\n const { scope, data } = this.scope;\n\n const props : any = {\n class: ['n-chart-item']\n };\n\n const height = scope.getHeight(item.value);\n\n props.style = {\n '--n-chart-height': height + '%'\n };\n\n const color = Styler.wheel(...[\n item.color ?? Mix.int(data.color) + index\n ]);\n\n if ( ! item.type ) {\n props.class.push(`n-color-${color}`);\n } else {\n props.class.push(`n-type-${item.type}`);\n }\n\n const popover : any = {\n trigger: 'hover',\n };\n\n const axis : any = {\n class: ['n-chart-axis']\n }\n\n if ( ! item.type ) {\n axis.class.push(`n-color-${color}`);\n } else {\n axis.class.push(`n-type-${item.type}`);\n }\n\n const value = this.comp('n-popover', popover, () => [\n this.div(axis, [\n h('span', item.value), h('span', item.axis),\n ])\n ]);\n\n return h('div', props, [\n this.div('bar'), value\n ]);\n }\n\n legend() : any\n {\n const { scope, data } = this.scope;\n\n if ( ! data.legend ) {\n return null;\n }\n\n let sorted = Arr.sort(scope.childs, 'data.value')\n .reverse();\n\n const items = Arr.each(sorted, (v : any, i: number) => {\n return this.item(v.toItem(), i);\n });\n\n const props : any = {\n class: data.classPart('legend')\n };\n\n return this.comp('n-scrollbar', props, () => [\n ...items,\n ])\n }\n\n item(item : any, index : number) : any\n {\n const { scope, data } = this.scope;\n\n const props : any = {\n class: ['n-chart-legend']\n };\n\n const color = Styler.wheel(...[\n item.color ?? Mix.int(data.color) + index\n ]);\n\n if ( ! item.type ) {\n props.class.push(`n-color-${color}`);\n } else {\n props.class.push(`n-type-${item.type}`);\n }\n\n return h('div', props, [\n h('span', null, [item.axis]),\n h('span', null, [item.value]),\n ]);\n }\n\n}\n\nexport default NChartBarView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NChartBarController from \"./NChartBarController.ts\";\nimport NChartItemController from \"../chart-item/NChartItemController.ts\";\n\nexport class NChartBarData extends ProtoData\n{\n /**\n * @type {NChartBarController}\n */\n declare scope : NChartBarController;\n\n get classList() : string[]\n {\n return this.classRoot([]);\n }\n\n get visible() : NChartItemController[]\n {\n return this.scope.get('visible');\n }\n\n get hidden() : NChartItemController[]\n {\n return this.scope.get('hidden');\n }\n\n get maxval() : number\n {\n return this.scope.get('maxval');\n }\n\n get avgval() : number\n {\n return this.scope.get('avgval');\n }\n\n get sort() : boolean\n {\n return this.scope.get('sort');\n }\n\n get limit() : number\n {\n return this.scope.get('limit');\n }\n\n get legend() : boolean\n {\n return this.scope.get('legend');\n }\n\n get color() : string|number\n {\n return this.scope.get('color');\n }\n\n get totalLabel() : string\n {\n return this.scope.get('totalLabel');\n }\n\n get otherLabel() : string\n {\n return this.scope.get('otherLabel');\n }\n\n get minHeight() : number\n {\n return this.scope.get('minHeight');\n }\n\n}\n\nexport default NChartBarData;","import { provide, SetupContext } from \"vue\";\nimport { GroupController } from \"../../../root/index.ts\";\nimport { NChartBarView } from \"./NChartBarView.ts\";\nimport { NChartBarData } from \"./NChartBarData.ts\";\nimport { Mix, Arr, Num } from \"@kizmann/pico-js\";\nimport NChartItemController from \"../chart-item/NChartItemController.ts\";\n\n\nexport class NChartBarController extends GroupController\n{\n /**\n * @type {NChartBarController}\n */\n declare scope : NChartBarController;\n\n /**\n * @type {NChartBarData}\n */\n declare data : NChartBarData;\n\n /**\n * @type {NChartBarView}\n */\n declare view : NChartBarView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NChartBarView(this),\n new NChartBarData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeData('maxval');\n this.makeData('avgval');\n this.makeData('visible');\n this.makeData('hidden');\n\n provide('NChart', this.instance);\n\n this.watchProp('limit', () => {\n this.makeDataset();\n this.makeMaxval();\n this.makeAvgval();\n });\n\n this.watchChilds(() => {\n this.makeDataset();\n this.makeMaxval();\n this.makeAvgval();\n });\n\n this.makeDataset();\n this.makeMaxval();\n this.makeAvgval();\n\n return this;\n }\n\n makeDataset() : void\n {\n const { data } = this;\n\n let items = !data.sort ?\n Arr.clone(this.childs) :\n Arr.sort(this.childs, 'data.value').reverse();\n\n const temp = Arr.slice(...[\n items, 0, data.limit ?? items.length\n ]);\n\n const visible = Arr.filter(items, (el : any) => {\n return Arr.find(temp, { uid: el.uid }) != null;\n });\n\n this.set('visible', visible);\n\n const hidden = Arr.filter(items, (el : any) => {\n return Arr.find(temp, { uid: el.uid }) == null;\n });\n\n this.set('hidden', hidden);\n }\n\n makeMaxval() : void\n {\n let other = Number.MIN_VALUE;\n\n Arr.each(this.data.hidden, (item : NChartItemController) => {\n other += Mix.num(item.data.value);\n });\n\n let max = other;\n\n Arr.each(this.data.visible, (item : NChartItemController) => {\n max = Math.max(max, Mix.num(item.data.value));\n });\n\n this.set('maxval', max);\n }\n\n makeAvgval() : void\n {\n let total = 0;\n\n Arr.each(this.childs, (item : NChartItemController) => {\n total += Mix.num(item.data.value);\n });\n\n const avg = Num.fixed(...[\n total / this.childs.length, 1\n ]);\n\n this.set('avgval', avg);\n }\n\n getHeight(value : string | number) : number\n {\n const { maxval, minHeight: min } = this.data;\n\n return Num.int(...[\n ((100 - min) / maxval * Mix.num(value)) + min\n ]);\n }\n\n}\n\nexport default NChartBarController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NChartBarController } from \"./NChartBarController.ts\";\nimport { Locale } from \"@kizmann/pico-js\";\n\nexport const NChartBarProps = {\n\n ...Props.Size,\n\n /**\n * @type {PropType<boolean>}\n */\n sort: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<number>}\n */\n limit: {\n type: [Number], default: 4\n },\n\n /**\n * @type {PropType<boolean>}\n */\n legend: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<number|string>}\n */\n color: {\n type: [Number,String], default: 10\n },\n\n /**\n * @type {PropType<string>}\n */\n totalLabel: {\n type: [String], default: () => Locale.trans('Total')\n },\n\n /**\n * @type {PropType<string>}\n */\n otherLabel: {\n type: [String], default: () => Locale.trans('Other')\n },\n\n /**\n * @type {PropType<number>}\n */\n minHeight: {\n type: [Number], default: 5\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NChartBar',\n\n /**\n * @type {typeof NChartBarProps}\n */\n props: NChartBarProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n //\n ],\n\n setup(props, context)\n {\n let ncx = new NChartBarController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { Arr, Locale, Mix, Num } from \"@kizmann/pico-js\";\nimport { ProtoView, Styler } from \"../../../root/index.ts\";\nimport { NChartDonutController } from \"./NChartDonutController.ts\";\n\nexport class NChartDonutView extends ProtoView\n{\n /**\n * @type {NChartDonutController}\n */\n declare scope : NChartDonutController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-chart-donut';\n\n /**\n * @type {number}\n */\n last : number = 0;\n\n /**\n * @type {any}\n */\n attrs: any = {\n 'cx': '70', 'cy': '70', 'r': '57.2958'\n };\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n class: data.classList,\n };\n\n if ( data.overlap ) {\n props.class.push(`${this.bem}--overlap`);\n }\n\n props.style = {\n '--n-chart-label': `'${data.totalLabel}'`,\n '--n-chart-value': Num.int(data.total),\n '--n-stroke-width': Num.int(data.width),\n };\n\n return h('div', props, [\n this.chart(), this.legend(), this.slot('default'),\n ]);\n }\n\n chart() : any\n {\n return this.div('chart', [\n this.svg(), this.text()\n ]);\n }\n\n svg() : any\n {\n const { scope, data } = this.scope;\n\n const props : any = {\n width: 600,\n height: 600,\n viewBox: '0 0 140 140',\n };\n\n this.last = 0;\n\n const items = Arr.each(data.visible, (v : any, i : number) => {\n return this.circle(v.toItem(), i);\n });\n\n const base = h('circle', {\n class: `${this.bem}__base`, ...this.attrs,\n });\n\n return h('svg', props, [\n base, ...items, this.other(),\n ]);\n }\n\n other() : any\n {\n const { scope, data } = this.scope;\n\n if ( ! data.hidden.length ) {\n return null;\n }\n\n const splits = Arr.each(data.hidden, (item: any) => {\n return Num.float(item.data.value);\n });\n\n const item : any = {\n axis: data.otherLabel,\n value: Num.combine(splits),\n color: null,\n type: 'neutral'\n };\n\n return this.circle(...[\n item, data.visible.length\n ]);\n }\n\n circle(item : any, index : number) : any\n {\n const { scope, data } = this.scope;\n\n let [offset, distance] = [\n this.last * - 1, scope.getDistance(item.value)\n ];\n\n if ( !data.overlap ) {\n offset = Math.min(offset - (data.width * 0.5), 0);\n }\n\n let dasharr = distance;\n\n if ( !data.overlap ) {\n dasharr = Math.max(dasharr - (data.width * 1.5), 0);\n }\n\n this.last = distance + this.last;\n\n const props : any = {\n class: ['n-chart-item'], ...this.attrs,\n };\n\n const color = Styler.wheel(...[\n item.color ?? Mix.int(data.color) + index\n ]);\n\n if ( ! item.type ) {\n props.class.push(`n-color-${color}`);\n } else {\n props.class.push(`n-type-${item.type}`);\n }\n\n props.style = {\n 'stroke-dashoffset': Num.fixed(offset, 4),\n 'stroke-dasharray': Num.fixed(dasharr, 4) + ' 360'\n };\n\n props.onPointerenter = () => {\n scope.onPointerenter(item);\n };\n\n props.onPointerleave = () => {\n scope.onPointerleave(item);\n };\n\n return h('g', { class: 'n-chart-group' }, [\n h('circle', props),\n ]);\n }\n\n text() : any\n {\n const { scope } = this.scope;\n\n const props : any = {\n ref: scope.ref('text'),\n name: 'text',\n };\n\n return this.div(props, [\n h('span', null, null),\n h('span', null, null),\n ]);\n }\n\n legend() : any\n {\n const { scope, data } = this.scope;\n\n if ( ! data.legend ) {\n return null;\n }\n\n let sorted = Arr.sort(scope.childs, 'data.value')\n .reverse();\n\n const items = Arr.each(sorted, (v : any, i: number) => {\n return this.item(v.toItem(), i);\n });\n\n const props : any = {\n class: data.classPart('legend')\n };\n\n return this.comp('n-scrollbar', props, () => [\n ...items,\n ])\n }\n\n item(item : any, index : number) : any\n {\n const { scope, data } = this.scope;\n\n const props : any = {\n class: ['n-chart-legend']\n };\n\n const color = Styler.wheel(...[\n item.color ?? Mix.int(data.color) + index\n ]);\n\n if ( ! item.type ) {\n props.class.push(`n-color-${color}`);\n } else {\n props.class.push(`n-type-${item.type}`);\n }\n\n return h('div', props, [\n h('span', null, [item.axis]),\n h('span', null, [item.value]),\n ]);\n }\n\n}\n\nexport default NChartDonutView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NChartDonutController from \"./NChartDonutController.ts\";\nimport NChartItemController from \"../chart-item/NChartItemController.ts\";\n\nexport class NChartDonutData extends ProtoData\n{\n /**\n * @type {NChartDonutController}\n */\n declare scope : NChartDonutController;\n\n get classList() : string[]\n {\n return this.classRoot([]);\n }\n\n get visible() : NChartItemController[]\n {\n return this.scope.get('visible');\n }\n\n get hidden() : NChartItemController[]\n {\n return this.scope.get('hidden');\n }\n\n get total() : number\n {\n return this.scope.get('total');\n }\n\n get maxval() : number\n {\n return this.scope.get('maxval');\n }\n\n get avgval() : number\n {\n return this.scope.get('avgval');\n }\n\n get length() : number\n {\n return this.hidden.length ? this.visible.length + 1 : this.visible.length;\n }\n\n get sort() : boolean\n {\n return this.scope.get('sort');\n }\n\n get limit() : number\n {\n return this.scope.get('limit');\n }\n\n get legend() : boolean\n {\n return this.scope.get('legend');\n }\n\n get color() : string|number\n {\n return this.scope.get('color');\n }\n\n get totalLabel() : string\n {\n return this.scope.get('totalLabel');\n }\n\n get otherLabel() : string\n {\n return this.scope.get('otherLabel');\n }\n\n get width() : number\n {\n return this.scope.get('width');\n }\n\n get overlap() : boolean\n {\n return this.scope.get('overlap');\n }\n\n}\n\nexport default NChartDonutData;","import { provide, SetupContext } from \"vue\";\nimport { GroupController } from \"../../../root/index.ts\";\nimport { NChartDonutView } from \"./NChartDonutView.ts\";\nimport { NChartDonutData } from \"./NChartDonutData.ts\";\nimport { Mix, Arr, Num } from \"@kizmann/pico-js\";\nimport NChartItemController from \"../chart-item/NChartItemController.ts\";\n\n\nexport class NChartDonutController extends GroupController\n{\n /**\n * @type {NChartDonutController}\n */\n declare scope : NChartDonutController;\n\n /**\n * @type {NChartDonutData}\n */\n declare data : NChartDonutData;\n\n /**\n * @type {NChartDonutView}\n */\n declare view : NChartDonutView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NChartDonutView(this),\n new NChartDonutData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeRef('text');\n\n this.makeData('maxval');\n this.makeData('total');\n this.makeData('visible');\n this.makeData('hidden');\n\n provide('NChart', this.instance);\n\n this.watchProp('limit', () => {\n this.makeDataset();\n this.makeTotal();\n this.makeMaxval();\n });\n\n this.watchChilds(() => {\n this.makeDataset();\n this.makeTotal();\n this.makeMaxval();\n });\n\n this.makeDataset();\n this.makeTotal();\n this.makeMaxval();\n\n return this;\n }\n\n makeDataset() : void\n {\n const { data } = this;\n\n let items = !data.sort ?\n Arr.clone(this.childs) :\n Arr.sort(this.childs, 'data.value').reverse();\n\n const temp = Arr.slice(...[\n items, 0, data.limit ?? items.length\n ]);\n\n const visible = Arr.filter(items, (el : any) => {\n return Arr.find(temp, { uid: el.uid }) != null;\n });\n\n this.set('visible', visible);\n\n const hidden = Arr.filter(items, (el : any) => {\n return Arr.find(temp, { uid: el.uid }) == null;\n });\n\n this.set('hidden', hidden);\n }\n\n makeTotal() : void\n {\n let count = Arr.each(this.childs, (item : any) => {\n return Num.float(item.data.value);\n });\n\n this.set('total', Num.combine(count));\n }\n\n makeMaxval() : void\n {\n let other = Number.MIN_VALUE;\n\n Arr.each(this.data.hidden, (item : NChartItemController) => {\n other += Mix.num(item.data.value);\n });\n\n let max = other;\n\n Arr.each(this.data.visible, (item : NChartItemController) => {\n max = Math.max(max, Mix.num(item.data.value));\n });\n\n this.set('maxval', max);\n }\n\n getDistance(value : string | number) : number\n {\n const { length, width, total } = this.data;\n\n let gaps = 360 - (length * width * 2);\n\n return (gaps * Mix.num(value) / total) + (width * 2);\n }\n\n onPointerenter(item : any) : void\n {\n this.dom('text').style({\n '--n-chart-label': `'${item.axis}'`,\n '--n-chart-value': Mix.int(item.value)\n });\n }\n\n onPointerleave(item : any) : void\n {\n this.dom('text').style(null);\n }\n\n}\n\nexport default NChartDonutController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NChartDonutController } from \"./NChartDonutController.ts\";\nimport { Locale } from \"@kizmann/pico-js\";\n\nexport const NChartDonutProps = {\n\n ...Props.Size,\n\n /**\n * @type {PropType<boolean>}\n */\n sort: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<number>}\n */\n limit: {\n type: [Number], default: 4\n },\n\n /**\n * @type {PropType<boolean>}\n */\n legend: {\n type: [Boolean], default: true\n },\n\n /**\n * @type {PropType<number|string>}\n */\n color: {\n type: [Number,String], default: 10\n },\n\n /**\n * @type {PropType<string>}\n */\n totalLabel: {\n type: [String], default: () => Locale.trans('Total')\n },\n\n /**\n * @type {PropType<string>}\n */\n otherLabel: {\n type: [String], default: () => Locale.trans('Other')\n },\n\n /**\n * @type {PropType<number>}\n */\n width: {\n type: [Number], default: 10\n },\n\n /**\n * @type {PropType<boolean>}\n */\n overlap: {\n type: [Boolean], default: false\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NChartDonut',\n\n /**\n * @type {typeof NChartDonutProps}\n */\n props: NChartDonutProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n //\n ],\n\n setup(props, context)\n {\n let ncx = new NChartDonutController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NChartItemController } from \"./NChartItemController.ts\";\n\n/**\n * @class NChartItemView\n * @extends {ProtoView<NChartItemController>}\n */\nexport class NChartItemView extends ProtoView\n{\n /**\n * @type {NChartItemController}\n */\n declare scope : NChartItemController;\n\n default()\n {\n return null;\n }\n\n}\n\nexport default NChartItemView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NChartItemController from \"./NChartItemController.ts\";\n\nexport class NChartItemData extends ProtoData\n{\n /**\n * @type {NChartItemController}\n */\n declare scope : NChartItemController;\n\n get value() : string|number\n {\n return this.scope.get('value');\n }\n\n get axis() : string\n {\n return this.scope.get('axis');\n }\n\n}","import { ProtoController } from \"../../../root/index.ts\";\nimport { NChartItemView } from \"./NChartItemView.ts\";\nimport { NChartItemData } from \"./NChartItemData.ts\";\nimport { SetupContext } from \"vue\";\n\nexport class NChartItemController extends ProtoController\n{\n /**\n * @type {NChartItemController}\n */\n declare scope : NChartItemController;\n\n /**\n * @type {NChartItemData}\n */\n declare data : NChartItemData;\n\n /**\n * @type {NChartItemView}\n */\n declare view : NChartItemView;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NChartItemView(this),\n new NChartItemData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n\n this.injectRef(['chart', 'NChart']);\n\n return this;\n }\n\n onMounted()\n {\n this.ncx('chart')?.append(this);\n }\n\n onUnmounted()\n {\n this.ncx('chart')?.remove(this);\n }\n\n toItem()\n {\n return {\n axis: this.data.axis,\n value: this.data.value,\n color: this.data.color,\n type: this.data.type,\n };\n }\n\n}\n\nexport default NChartItemController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NChartItemController } from \"./NChartItemController.ts\";\nimport { Locale } from \"@kizmann/pico-js\";\n\nexport const NChartItemProps = {\n\n ...Props.Type,\n ...Props.Color,\n\n /**\n * @type {PropType<string|number>}\n */\n value: {\n type: [String,Number], default: null\n },\n\n /**\n * @type {PropType<string>}\n */\n axis: {\n type: [String], default: () => Locale.trans('Item')\n },\n\n /**\n * @type {PropType<string>}\n */\n label: {\n type: [String], default: null\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NChartItem',\n\n /**\n * @type {typeof NChartItemProps}\n */\n props: NChartItemProps,\n\n setup(props, context)\n {\n let ncx = new NChartItemController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NMapController } from \"./NMapController.ts\";\n\nexport class NMapView extends ProtoView\n{\n /**\n * @type {NMapController}\n */\n declare scope : NMapController;\n\n /**\n * @type {string}\n */\n bem : string = 'n-map';\n\n default() : any\n {\n let { scope, data } = this.scope;\n\n let props : any = {\n ref: scope.ref('el'),\n class: data.classList,\n };\n\n return h('div', props, [\n this.slot('default')\n ]);\n }\n\n}\n\nexport default NMapView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NMapController from \"./NMapController.ts\";\n\nexport class NMapData extends ProtoData\n{\n /**\n * @type {NMapController}\n */\n declare scope : NMapController;\n\n get classList() : string[]\n {\n return this.classRoot([]);\n }\n\n get lat() : number\n {\n return this.scope.get('lat');\n }\n\n get lng() : number\n {\n return this.scope.get('lng');\n }\n\n get zoom() : number\n {\n return this.scope.get('zoom');\n }\n\n}\n\nexport default NMapData;","import { provide, SetupContext } from \"vue\";\nimport { Arr, Map } from \"@kizmann/pico-js\";\nimport { ProtoController } from \"../../../root/index.ts\";\nimport { NMapView } from \"./NMapView.ts\";\nimport { NMapData } from \"./NMapData.ts\";\n\n\nexport class NMapController extends ProtoController\n{\n /**\n * @type {NMapController}\n */\n declare scope : NMapController;\n\n /**\n * @type {NMapData}\n */\n declare data: NMapData;\n\n /**\n * @type {NMapView}\n */\n declare view: NMapView;\n\n /**\n * @type {Map}\n */\n map : Map;\n\n /**\n * @type {Function[]}\n */\n cbs : Function[] = [];\n\n constructor(props:any, context:SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NMapView(this),\n new NMapData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeRef('el');\n\n provide('NMap', this.instance);\n\n return this;\n }\n\n onMounted()\n {\n this.map = new Map(this.rel('el'), {\n lat: this.data.lat,\n lng: this.data.lng,\n zoom: this.data.zoom,\n });\n\n Arr.each(this.cbs, (cb : Function) => {\n cb(this.map);\n });\n }\n\n append(cb : Function) : void\n {\n Arr.append(this.cbs, cb);\n }\n\n}\n\nexport default NMapController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NMapController } from \"./NMapController.ts\";\n\nexport const NMapProps = {\n\n /**\n * @type {PropType<number>}\n */\n lat: {\n type: [Number], default: 0\n },\n\n /**\n * @type {PropType<number>}\n */\n lng: {\n type: [Number], default: 0\n },\n\n /**\n * @type {PropType<number>}\n */\n zoom: {\n type: [Number], default: 15\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NMap',\n\n /**\n * @type {typeof NMapProps}\n */\n props: NMapProps,\n\n /**\n * @type {string[]}\n */\n emits: [\n //\n ],\n\n setup(props, context)\n {\n let ncx = new NMapController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n return ncx.render();\n }\n\n});","import { h } from \"vue\";\nimport { ProtoView } from \"../../../root/index.ts\";\nimport { NMapMarkerController } from \"./NMapMarkerController.ts\";\n\n/**\n * @class NMapMarkerView\n * @extends {ProtoView<NMapMarkerController>}\n */\nexport class NMapMarkerView extends ProtoView\n{\n /**\n * @type {NMapMarkerController}\n */\n declare scope : NMapMarkerController;\n\n default()\n {\n const { scope } = this;\n\n const props: any = {\n ref: scope.ref('el'),\n style: 'display: none;'\n };\n\n return h('div', props, [\n this.slot('default')\n ]);\n }\n\n}\n\nexport default NMapMarkerView;","import { ProtoData } from \"../../../root/index.ts\";\nimport NMapMarkerController from \"./NMapMarkerController.ts\";\n\nexport class NMapMarkerData extends ProtoData\n{\n /**\n * @type {NMapMarkerController}\n */\n declare scope : NMapMarkerController;\n\n get lat() : number\n {\n return this.scope.get('lat');\n }\n\n get lng() : number\n {\n return this.scope.get('lng');\n }\n\n get drag() : boolean\n {\n return this.scope.get('drag');\n }\n\n get options() : object\n {\n return this.scope.get('options');\n }\n\n}","import { ProtoController } from \"../../../root/index.ts\";\nimport { NMapMarkerView } from \"./NMapMarkerView.ts\";\nimport { NMapMarkerData } from \"./NMapMarkerData.ts\";\nimport { SetupContext } from \"vue\";\nimport { Mix, Num, Obj, Run, Map, Locale } from \"@kizmann/pico-js\";\n\nexport class NMapMarkerController extends ProtoController\n{\n /**\n * @type {NMapMarkerController}\n */\n declare scope : NMapMarkerController;\n\n /**\n * @type {NMapMarkerData}\n */\n declare data : NMapMarkerData;\n\n /**\n * @type {NMapMarkerView}\n */\n declare view : NMapMarkerView;\n\n /**\n * @type {any}\n */\n marker : any;\n\n constructor(props : any, context : SetupContext)\n {\n super(props, context);\n\n [this.view, this.data] = [\n new NMapMarkerView(this),\n new NMapMarkerData(this),\n ];\n\n this.setup();\n }\n\n setup()\n {\n super.setup();\n\n this.makeUID();\n this.makeRef('el');\n this.injectRef(['map', 'NMap']);\n\n this.ncx('map').append((map : Map) => {\n this.initMarker(map);\n });\n\n this.watchProp('lat', () => {\n this.importPosition();\n });\n\n this.watchProp('lng', () => {\n this.importPosition();\n });\n\n return this;\n }\n\n initMarker(map : Map)\n {\n const { data, context } = this;\n\n let options : any = {\n lat: Num.float(data.lat), lng: Num.float(data.lng),\n };\n\n options = {\n ...data.options, ...options, draggable: data.drag\n };\n\n if ( context.slots.default ) {\n options.html = this.el.innerHTML;\n }\n\n this.marker = map.createMarker(this.uid, options);\n\n this.marker.marker.addListener('position_changed', Run.debounce(() => {\n this.updatePosition();\n }, 500));\n }\n\n updatePosition() : void\n {\n this.update('lat', this.marker.marker.getPosition().lat());\n this.update('lng', this.marker.marker.getPosition().lng());\n }\n\n importPosition() : void\n {\n this.marker.marker.setPosition({\n lat: this.data.lat, lng: this.data.lng\n });\n }\n\n superAddress(address : string) : void\n {\n this.ncx('map').map.setMarkerByAddress(this.uid, address)\n .then(() => {\n this.ncx('map').map.superFocus();\n });\n }\n\n}\n\nexport default NMapMarkerController;","import { PropType, defineComponent } from \"vue\";\nimport { Props } from \"../../../root/index.ts\";\nimport { NMapMarkerController } from \"./NMapMarkerController.ts\";\n\nexport const NMapMarkerProps = {\n\n /**\n * @type {PropType<number>}\n */\n lat: {\n type: [Number], default: 0\n },\n\n /**\n * @type {PropType<number>}\n */\n lng: {\n type: [Number], default: 0\n },\n\n /**\n * @type {PropType<boolean>}\n */\n drag: {\n type: [Boolean], default: false\n },\n\n /**\n * @type {PropType<object>}\n */\n options: {\n type: [Object], default: {}\n },\n\n};\n\nexport default defineComponent({\n\n /**\n * @type {string}\n */\n name: 'NMapMarker',\n\n /**\n * @type {typeof NMapMarkerProps}\n */\n props: NMapMarkerProps,\n\n setup(props, context)\n {\n let ncx = new NMapMarkerController(props, context);\n\n ncx.dispose(() => {\n ncx = null;\n });\n\n ncx.pass({\n 'address': 'superAddress'\n });\n\n return ncx.render();\n }\n\n});","import { Arr, Obj } from \"@kizmann/pico-js\";\n\nexport const ctor = function (key : string, 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 : [...any]) => ctor.apply(this, args);\n}\n\nexport default ctor;\n","import { Arr, Obj, Mix } from \"@kizmann/pico-js\";\n\nexport const cmer = function(classList : any) {\n\n let attrsList = {};\n\n if ( Mix.isStr(classList) ) {\n attrsList[classList] = true;\n }\n\n if ( Mix.isArr(classList) ) {\n Arr.each(classList, (value : any) => attrsList[value] = true);\n }\n\n if ( Mix.isObj(classList) ) {\n Obj.assign(attrsList, classList);\n }\n\n if ( Mix.isStr(this.$attrs.class) ) {\n attrsList[this.$attrs.class] = true;\n }\n\n if ( Mix.isArr(this.$attrs.class) ) {\n Arr.each(this.$attrs.class, (value : any) => attrsList[value] = true);\n }\n\n if ( Mix.isObj(this.$attrs.class) ) {\n Obj.assign(attrsList, this.$attrs.class);\n }\n\n return attrsList;\n}\n\nexport default cmer;","import { Comment } from \"vue\";\n\nexport const cslo = function (slot : string = 'default', props : any = {}) {\n\n if ( ! this.$slots[slot] ) {\n return false;\n }\n\n return this.$slots[slot](props).findIndex((o : any) => {\n return o.type !== Comment;\n }) !== -1;\n}\n\nexport default cslo;","// nano-ui v2\n// ^._.^= ∫ Lilli und Pashi, ich liebe euch\n\nimport NSignal from \"./signal/index.ts\";\nimport NInput from \"./input/index.ts\";\nimport NButton from \"./button/index.ts\";\nimport NCheckbox from \"./checkbox/index.ts\";\nimport NRadio from \"./radio/index.ts\";\nimport NSelect from \"./select/index.ts\";\nimport NSwitch from \"./switch/index.ts\";\nimport NCascader from \"./cascader/index.ts\";\nimport NPopover from \"./popover/index.ts\";\nimport NScrollbar from \"./scrollbar/index.ts\";\nimport NResizer from \"./resizer/index.ts\";\nimport NDraggable from \"./draggable/index.ts\";\nimport NTable from \"./table/index.ts\";\nimport NInfo from \"./info/index.ts\";\nimport NEmpty from \"./empty/index.ts\";\nimport NModal from \"./modal/index.ts\";\nimport NLoader from \"./loader/index.ts\";\nimport NDatetime from \"./datetime/index.ts\";\nimport NTransfer from \"./transfer/index.ts\";\nimport NTabs from \"./tabs/index.ts\";\nimport NCollapse from \"./collapse/index.ts\";\nimport NVisuals from \"./visuals/index.ts\";\nimport NPreview from \"./preview/index.ts\";\nimport NSlider from \"./slider/index.ts\";\nimport NForm from \"./form/index.ts\";\nimport NConfig from \"./config/index.ts\";\nimport NChart from \"./chart/index.ts\";\nimport NMap from \"./map/index.ts\";\nimport ctor from \"./root/js/legacy/ctor.ts\";\nimport cmer from \"./root/js/legacy/cmer.ts\";\nimport cslo from \"./root/js/legacy/cslo.ts\";\n\nconst NanoImports = [\n NSignal,\n NInput,\n NButton,\n NCheckbox,\n NRadio,\n NSelect,\n NSwitch,\n NPopover,\n NScrollbar,\n NResizer,\n NDraggable, // copy und remove funktion\n NTable,\n NInfo,\n NEmpty,\n NCascader,\n NModal,\n NLoader,\n NDatetime,\n NTransfer,\n NTabs,\n NCollapse,\n NVisuals,\n NPreview,\n NSlider,\n NForm, // form-frame inview fixen\n NConfig,\n NChart,\n NMap,\n];\n\nexport const Icons = {\n handle: 'fa fa-ellipsis-v',\n checked: 'fa fa-check',\n circle: 'fa fa-circle',\n intermediate: 'fa fa-minus',\n clock: 'fa fa-clock',\n calendar: 'fa fa-calendar',\n times: 'fa fa-times',\n primary: 'fa fa-info-circle',\n secondary: 'fa fa-info-circle',\n success: 'fa fa-check-circle',\n warning: 'fa fa-exclamation-circle',\n danger: 'fa fa-times-circle',\n info: 'fa fa-info-circle',\n angleUp: 'fa fa-angle-up',\n angleRight: 'fa fa-angle-right',\n angleDown: 'fa fa-angle-down',\n angleLeft: 'fa fa-angle-left',\n angleDoubleLeft: 'fa fa-angle-double-left',\n angleDoubleRight: 'fa fa-angle-double-right'\n};\n\nexport function Install(App : any, Icons : any = {}, Settings : any = {})\n{\n if ( typeof globalThis.pi === 'undefined' ) {\n return console.error('pico-js is not available.');\n }\n\n // Obj.each(window.pi, (value, key) => {\n // App.config.globalProperties[key] = value;\n // });\n\n App.config.globalProperties.ctor = ctor;\n App.config.globalProperties.cmer = cmer;\n App.config.globalProperties.cslo = cslo;\n\n if ( ! App.config.globalProperties.Notify ) {\n App.config.globalProperties.Notify = globalThis.Notify;\n }\n\n if ( ! App.config.globalProperties.Alert ) {\n App.config.globalProperties.Alert = globalThis.Alert;\n }\n\n if ( ! App.config.globalProperties.Confirm ) {\n App.config.globalProperties.Confirm = globalThis.Confirm;\n }\n\n if ( ! App.config.globalProperties.trans ) {\n App.config.globalProperties.trans = globalThis.pi.Locale.trans;\n }\n\n if ( ! App.config.globalProperties.choice ) {\n App.config.globalProperties.choice = globalThis.pi.Locale.choice;\n }\n\n NanoImports.forEach((NanoModule) => {\n NanoModule(App);\n });\n\n}\n\nexport const Nano = {\n Install, /* Legacy */ Icons: {}\n};\n\nif ( !globalThis.nano ) {\n globalThis.nano = Nano;\n}\n\nexport default Nano;\n","import { App } from \"vue\";\nimport NInput from \"./js/input/NInput.ts\";\nimport NInputNumber from \"./js/input-number/NInputNumber.ts\";\nimport NInputFile from \"./js/input-file/NInputFile.ts\";\nimport NTextarea from \"./js/textarea/NTextarea.ts\";\n\nexport default function (App : App) {\n App.component(NInput.name, NInput);\n App.component(NInputNumber.name, NInputNumber);\n App.component(NInputFile.name, NInputFile);\n App.component(NTextarea.name, NTextarea);\n}\n","import { App } from \"vue\";\nimport NButton from \"./js/button/NButton.ts\";\nimport NButtonGroup from \"./js/button-group/NButtonGroup.ts\";\n\nexport default function (App : App) {\n App.component(NButton.name, NButton);\n App.component(NButtonGroup.name, NButtonGroup);\n}","import { App } from \"vue\";\nimport NCheckbox from \"./js/checkbox/NCheckbox.ts\";\nimport NCheckboxGroup from \"./js/checkbox-group/NCheckboxGroup.ts\";\n\nexport default function (App : App) {\n App.component(NCheckbox.name, NCheckbox);\n App.component(NCheckboxGroup.name, NCheckboxGroup);\n}","import { App } from \"vue\";\nimport NRadio from \"./js/radio/NRadio.ts\";\nimport NRadioGroup from \"./js/radio-group/NRadioGroup.ts\";\n\nexport default function (App:App) {\n App.component(NRadio.name, NRadio);\n App.component(NRadioGroup.name, NRadioGroup);\n}","import { App } from \"vue\";\nimport NSelect from \"./js/select/NSelect.ts\";\n\nexport default function (App:App) {\n App.component(NSelect.name, NSelect);\n}","import { App } from \"vue\";\nimport NSwitch from \"./js/switch/NSwitch.ts\";\n\nexport default function (App: App) {\n App.component(NSwitch.name, NSwitch);\n}","import { App } from \"vue\";\nimport NPopover from \"./js/popover/NPopover.ts\";\nimport NPopoverGroup from \"./js/popover-group/NPopoverGroup.ts\";\nimport NPopoverOption from \"./js/popover-option/NPopoverOption.ts\";\n\nexport default function (App:App) {\n App.component(NPopover.name, NPopover);\n App.component(NPopoverGroup.name, NPopoverGroup);\n App.component(NPopoverOption.name, NPopoverOption);\n}","import { App } from \"vue\";\nimport NScrollbar from \"./js/scrollbar/NScrollbar.ts\";\nimport NVirtualbar from \"./js/virtualbar/NVirtualbar.ts\";\n\nexport default function (App : App) {\n App.component(NScrollbar.name, NScrollbar);\n App.component(NVirtualbar.name, NVirtualbar);\n}","import { App } from \"vue\";\nimport NResizer from \"./js/resizer/NResizer.ts\";\n\nexport default function (App : App) {\n App.component(NResizer.name, NResizer);\n}","import { App } from \"vue\";\nimport NDraglist from \"./js/draglist/NDraglist.ts\";\nimport NDropzone from \"./js/dropzone/NDropzone.ts\";\n\nexport default function (App:App) {\n App.component(NDraglist.name, NDraglist);\n App.component(NDropzone.name, NDropzone);\n}\n\nimport { NDragHandler } from \"./js/drag/NDragHandler.ts\";\nimport { NDragCounter } from \"./js/drag/NDragCounter.ts\";\nimport { NDragIndicator } from \"./js/drag/NDragIndicator.ts\";\nimport { NDragReciever } from \"./js/drag/NDragReciever.ts\";\n\nexport {\n NDragHandler,\n NDragCounter,\n NDragIndicator,\n NDragReciever,\n};\n","import { App } from \"vue\";\nimport NEmptyIcon from \"./js/empty-icon/NEmptyIcon.ts\";\n\nexport default function (App : App) {\n App.component(NEmptyIcon.name, NEmptyIcon);\n}","import { App } from \"vue\";\nimport NCascader from \"./js/cascader/NCascader.ts\";\nimport NCascaderPanel from \"./js/cascader-panel/NCascaderPanel.ts\";\n\nexport default function (App:App) {\n App.component(NCascader.name, NCascader);\n App.component(NCascaderPanel.name, NCascaderPanel);\n}","import { App } from \"vue\";\nimport NModal from \"./js/modal/NModal.ts\";\nimport NDrawer from \"./js/drawer/NDrawer.ts\";\n\nexport default function (App : App) {\n App.component(NModal.name, NModal);\n App.component(NDrawer.name, NDrawer);\n}\n","import { App } from \"vue\";\nimport NLoader from \"./js/loader/NLoader.ts\";\n\nexport default function (App : App) {\n App.component(NLoader.name, NLoader);\n}","import { App } from \"vue\";\nimport NDatepicker from \"./js/datepicker/NDatepicker.ts\";\nimport NDatepickerPanel from \"./js/datepicker-panel/NDatepickerPanel.ts\";\nimport NTimepicker from \"./js/timepicker/NTimepicker.ts\";\nimport NTimepickerPanel from \"./js/timepicker-panel/NTimepickerPanel.ts\";\nimport NDatetimepicker from \"./js/datetimepicker/NDatetimepicker.ts\";\nimport NDurationpicker from \"./js/durationpicker/NDurationpicker.ts\";\n\nexport default function (App : App) {\n App.component(NDatepicker.name, NDatepicker);\n App.component(NDatepickerPanel.name, NDatepickerPanel);\n App.component(NTimepicker.name, NTimepicker);\n App.component(NTimepickerPanel.name, NTimepickerPanel);\n App.component(NDatetimepicker.name, NDatetimepicker);\n App.component(NDurationpicker.name, NDurationpicker);\n}","import { App } from \"vue\";\nimport NTransfer from \"./js/transfer/NTransfer.ts\";\n\nexport default function (App : App) {\n App.component(NTransfer.name, NTransfer);\n}","import { App } from \"vue\";\nimport NTabs from \"./js/tabs/NTabs.ts\";\nimport NTabsItem from \"./js/tabs-item/NTabsItem.ts\";\n\nexport default function (App : App) {\n App.component(NTabs.name, NTabs);\n App.component(NTabsItem.name, NTabsItem);\n}\n","import { App } from \"vue\";\nimport NCollapse from \"./js/collapse/NCollapse.ts\";\nimport NCollapseItem from \"./js/collapse-item/NCollapseItem.ts\";\n\nexport default function (App : App) {\n App.component(NCollapse.name, NCollapse);\n App.component(NCollapseItem.name, NCollapseItem);\n}\n","import { App } from \"vue\";\nimport NTag from \"./js/tag/NTag.ts\";\nimport NRating from \"./js/rating/NRating.ts\";\n\nexport default function (App : App) {\n App.component(NTag.name, NTag);\n App.component(NRating.name, NRating);\n}","import { App } from \"vue\";\nimport NSlider from \"./js/slider/NSlider.ts\";\n\nexport default function (App : App) {\n App.component(NSlider.name, NSlider);\n}","import { App } from \"vue\";\nimport NForm from \"./js/form/NForm.ts\";\nimport NFormItem from \"./js/form-item/NFormItem.ts\";\nimport NFormBag from \"./js/form-bag/NFormBag.ts\";\nimport NFormGroup from \"./js/form-group/NFormGroup.ts\";\nimport NFormFrame from \"./js/form-frame/NFormFrame.ts\";\n\nexport default function (App : App) {\n App.component(NForm.name, NForm);\n App.component(NFormItem.name, NFormItem);\n App.component(NFormBag.name, NFormBag);\n App.component(NFormGroup.name, NFormGroup);\n App.component(NFormFrame.name, NFormFrame);\n}","import { App } from \"vue\";\nimport NConfig from \"./js/config/NConfig.ts\";\n\nexport default function (App : App) {\n App.component(NConfig.name, NConfig);\n}","import { App } from \"vue\";\nimport NChartBar from \"./js/chart-bar/NChartBar.ts\";\nimport NChartDonut from \"./js/chart-donut/NChartDonut.ts\";\nimport NChartItem from \"./js/chart-item/NChartItem.ts\";\n\nexport default function (App : App) {\n App.component(NChartBar.name, NChartBar);\n App.component(NChartDonut.name, NChartDonut);\n App.component(NChartItem.name, NChartItem);\n}","import { App } from \"vue\";\nimport NMap from \"./js/map/NMap.ts\";\nimport NMapMarker from \"./js/map-marker/NMapMarker.ts\";\n\nexport default function (App : App) {\n App.component(NMap.name, NMap);\n App.component(NMapMarker.name, NMapMarker);\n}"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__55__","__WEBPACK_EXTERNAL_MODULE__122__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","ProtoExtend","values","construct","First","length","Arr","each","Mix","extend","constructor","props","context","_defineProperty","this","setup","instance","getCurrentInstance","ncx","scope","injectRef","onMounted","el","ref","onUnmounted","onBeforeUnmount","signals","v","k","offSignal","dispose","fn","Run","delay","pass","keys","ctx","args","unpack","view","data","refs","render","default","has","isUndef","vals","empty","isRef","isEmpty","fallback","set","update","emit","_","rel","$el","dom","Dom","make","event","isStr","inject","cloneProp","options","isPrim","deep","watch","linkProp","source","freeze","computed","watchProp","cb","watchData","makeLinkData","makeLinkProp","compData","makeData","exposeData","setupState","_objectSpread","makeRef","makeUID","uid","Hash","uuid","passProps","onSignal","Signal","bind","unbind","fireSignal","fire","applyClear","clearValue","Obj","clone","attrs","ICONS_SIGNAL","Styler","bem","classList","theme","push","type","size","button","glass","link","icon","group","icons","wheel","index","int","limitwheel","Math","floor","preview","alert","confirm","notify","load","disabled","color","$color","clearable","iconPosition","iconDisabled","ProtoData","BaseData","IconData","super","classRoot","merge","superDisabled","cls","replace","classPart","part","model","slot","slots","isObj","pluck","class","join","h","comp","component","resolveComponent","e","console","error","div","name","clear","config","focus","angle","emptyText","ProtoController","childs","_childs","watchChilds","_child_events","append","child","remove","indexies","filterIndex","c","splices","position","undefinedText","trueText","falseText","optionsValue","optionsLabel","items","current","selected","expanded","allowGroups","safezone","allowCurrent","renderHandle","renderExpand","renderSelect","allowSelect","allowDrag","allowDrop","transformDrop","insertNode","removeNode","uniqueProp","childProp","itemHeight","itemWidth","itemOffset","itemSkip","rootSkip","Load","Boolean","Disabled","Size","String","Type","Color","Number","Clearable","ClearValue","ThemeDark","ICON_POSITION","Icon","IconDisabled","IconPositionBefore","validator","IconPositionAfter","ALIGN_DIRECTION","AlignDirectionValidator","ALIGN_POSITION","AlignPositionValidator","AlignHorizontal","align","AlignVertical","AlignLeft","AlignRight","POPOVER_POSITION","PopoverPositionValidator","DRAWER_POSITION","DrawerPositionValidator","PositionBottomStart","PositionBottomCenter","PositionDrawer","PositionModal","UndefinedText","Locale","trans","EmptyText","TrueText","FalseText","OptionsObject","Draglist","Array","Function","OptionHelper","getList","i","$index","$value","getFlat","list","ol","ov","item","label","getCombineList","isArr","all","diff","extract","allowCreate","str","result","getFilterList","search","filter","Str","getListItem","find","getFlatItem","Pointer","init","window","on","framebuffer","passive","zindex","chains","cursor","clientX","clientY","targets","getNodePoint","target","first","which","prevent","pl","upnode","metaKey","preventCodes","preventDefault","keycode","For","parseOptions","attr","findGesture","id","deblock","sames","groups","val","reverse","loop","p","next","nx","frame","findIndex","add","release","blocked","globalThis","NPointer","Props","BaseProps","IconProps","AlignProps","PositionProps","TextProps","OptionProps","DragProps","Helpers","Option","listen","closable","beforeOpen","beforeClose","prev","assign","renderBox","visible","remClass","style","NModalHandler","open","addClass","getEventEls","ev","wrap","src","closest","tgt","onMousedown","state","toggle","onEscape","ucfirst","close","onPromise","prom","response","then","finally","silent","openRun","onOpen","forceClose","closeRun","force","onClose","appendTo","document","body","escape","mousedown","modals","modal","NModalElement","Error","destroy","indexes","last","NAlertElement","text","okayText","texts","modalProps","iconCls","html","action","okayCls","okay","isString","NConfirmElement","cancelText","confirmText","signal","warn","promise","Promise","resolve","reject","cancel","cancelCls","confirmCls","NNotifyElement","duration","NNotifyHandler","stopPropagation","create","Alert","NAlertHandler","Confirm","NConfirmHandler","Notify","native","placeholder","labelPosition","ProtoView","input","prepend","except","onInput","onKeydown","onKeyup","onFocus","onBlur","onButtonClick","onButtonDblclick","onPointerdown","onDblclick","NInputController","NInputView","NInputData","NInputProps","modelValue","nativeType","defineComponent","inheritAttrs","emits","NInputNumberData","min","max","stepSize","precision","format","NInputNumberView","count","number","isNum","applyFormat","intval","bounce","interval","decreaseNumber","once","increaseNumber","NInputNumberController","match","num","NInputNumberProps","MAX_SAFE_INTEGER","multiple","buttonText","countText","hidden","choice","click","updateModel","NInputFileController","NInputFileView","NInputFileData","files","NInputFileProps","NTextareaData","autoRows","maxRows","minRows","maxLength","NTextareaView","rows","currentRows","NTextareaController","NTextareaProps","NButtonView","NButtonData","square","round","NButtonController","NButtonProps","NButtonGroupView","NButtonGroupData","NButtonGroupController","NButtonGroupProps","NCheckboxView","superToggle","checkbox","NCheckboxData","allowUncheck","intermediate","global","NCheckboxController","NCheckboxControllerGlobal","superGlobal","NCheckboxControllerSingle","watchModel","NCheckboxProps","NCheckboxGroupView","NCheckboxGroupData","checked","NCheckboxGroupController","GroupController","getChecked","getIntermediate","provide","lengths","NCheckboxGroupProps","NRadioView","superApply","radio","NRadioData","NRadioController","NRadioProps","apply","NRadioGroupView","NRadioGroupData","NRadioGroupController","NRadioGroupProps","NPopoverPanelView","width","display","popover","handle","popoverConfig","raw","panel","NPopoverPanelData","NPopoverPanelController","onReady","pointerdown","NSelectView","single","multis","tags","collapse","scrollToIndex","onEnter","slice","tag","virtuals","applyModel","len","collapseText","searched","active","NSelectData","OptionData","PositionData","prepared","NSelectController","resetDisplay","focusInput","blur","matches","Num","minmax","scrollTo","NSelectProps","NSwitchView","switch","NSwitchData","onValue","offValue","onType","offType","NSwitchController","both","NSwitchProps","inline","NCascaderPanelView","disabledProp","valueProp","split","onPointerenter","onMouseenter","onClick","labelProp","NCascaderPanelData","trigger","NCascaderHelper","buildSplitFromModel","buildModelFromSplit","cascadeFind","getCascade","getPath","NCascaderPanelController","updateVisible","updateCascade","cascade","total","NCascaderPanelProps","splitValue","NCascaderView","offset","compare","collapseFirst","NCascaderData","TextData","NCascaderController","NCascaderProps","NPopoverView","header","footer","NPopoverData","escapeClose","scrollClose","multiClose","x","y","observeBox","observer","disconnect","ResizeObserver","observe","box","top","left","rect","onMousemove","onContext","onScroll","detail","contains","NPopoverHandler","moveup","scroll","mousemove","popovers","NPopoverElement","NPopoverController","popel","superOpen","superClose","NPopoverProps","NPopoverGroupView","NPopoverGroupData","NPopoverGroupController","NPopoverGroupProps","NPopoverOptionView","NPopoverOptionData","clickClose","NPopoverOptionController","NPopoverOptionProps","NScrollbarView","content","wrapClass","NScrollbarData","overflowX","overflowY","NScrollbarHelper","detectNative","rainbow","clientHeight","offsetHeight","clientWidth","offsetWidth","NScrollbarElement","scrollPortal","onUpdate","cl","wl","makePseudo","detectRect","resize","mutate","off","sbar","hbar","vbar","framerate","adaptBars","fireScroll","portal","parent","returnRect","only","height","equalRect","actual","async","yrect","scrollHeight","client","hasy","applyBar","stateClass","xrect","scrollWidth","hasx","ceil","scrollLeft","scrollTop","ratio","buffer","port","translate","debounce","MutationObserver","attributeFilter","store","pos","doc","newpos","NScrollbarController","scrollbar","selector","padding","viewport","scrollCenter","NScrollbarProps","NVirtualbarView","startWatch","wrapper","vem","grid","hkey","wkey","start","end","chunk","row","nodes","node","NVirtualbarData","threshold","rawMode","NVirtualbarController","buildState","fireReady","indexOf","timer","Date","now","idler","NVirtualbarProps","NResizerView","flex","minWidth","maxWidth","NResizerData","direction","NResizerController","onGroupSignal","observeOffset","detectOffset","db","onPointermove","onPointerup","transform","NResizerProps","NDragIndicator","ready","reset","is","mode","patch","boundry","offsetParent","show","NDragCounter","ghost","dataTransfer","setData","setDragImage","dragmove","dragend","dragdrop","zone","uids","getAttribute","els","dragstart","NDragHandler","getMode","scale","hasClass","win","onPassiveDragover","dragover","onDelayedDragdrop","altKey","runDragover","runDragdrop","runDragend","zones","NDragReciever","NDraglistView","iem","visibles","dropzone","header_handle","header_expand","header_select","selectAll","selectState","dropitem","draggable","onCurrentclick","onDragstart","nodeDragstart","node_spacer","node_handle","node_expand","node_select","node_element","depth","onExpandclick","nodeAllowSelect","onSelectclick","route","NDraglistData","DragData","relation","NDragHelper","unlinkNodes","removeNodes","recursive","appendNodes","insideNodes","path","beforeNodes","insert","afterNodes","NVirtualHelper","reduce","virtual","NDraglistController","buildRelation","buildIndex","setPrevCurrent","setNextCurrent","onDragmove","onDragdrop","onDragend","drag","getValue","getItem","shiftKey","nodeDragmove","nodeAllowDrop","setTotalCurrent","ids","NDraglistProps","NDropzoneView","NDropzoneData","NDropzoneController","NDropzone","NTableView","column","draghead","draglist","groupProps","sorted","sortDir","sortProp","property","filterProp","fixedWidth","getStyle","getWidth","looseWidth","sort","applySortColumn","angleProps","filterMap","resetProps","resetColumnFilter","applyProps","applyColumnFilter","compProps","columns","cell","table","NTableData","NTableController","buildFilters","buildVisible","getVisibility","filters","buildFilter","toggleSelect","getTotalSelect","dir","changed","NTableProps","NTableColumnView","NTableColumnData","breakpoint","optionsMap","datetimeFormat","NTableColumnController","createOptionsMap","plugin","NTablePlugins","isFunc","getOptions","getOption","option","NTableColumnProps","NPaginatorView","func","sc","slot_custom","layout","slot_spacer","slot_limit","limitText","limitOptions","limit","slot_count","slot_goto","page","pageOptions","slot_pages","pages","abs","maxPages","buttonProps","NPaginatorData","NPaginatorController","updatePageOptions","NPaginatorLimits","NPaginatorLayout","NPaginatorProps","NTableCellString","string","innerHTML","NTableCellBoolean","boolean","NTableCellDatetime","Now","NTableCellOption","NTableCellSelect","equal","uncheck","NTableCellMatrix","NTableCellImage","image","file","thumb","thumbProp","NTableFilterString","operator","valueProps","operatorProps","NTableFilterOption","NTableFilterDatetime","NTableCells","NTableFilters","suid","muid","proxy","$forceUpdate","matrix","parse","finder","combine","NInfoView","NInfoData","syncEvent","renderEmpty","NInfoController","NInfoProps","NInfoColumnView","field","info","NInfoColumnData","NInfoColumnController","NInfoColumnProps","NInfoCells","NEmptyIconView","NEmptyIconData","NEmptyIconController","NEmptyIconProps","NModalView","NModalData","NModalController","NModalProps","NDrawerView","NDrawerData","NDrawerController","NDrawerProps","NLoaderView","NLoaderData","minimum","NLoaderController","applyTimer","timing","timeout","startTimer","restartTimer","NLoaderProps","NDatepickerPanelView","navigation","months","displays","date","unique","monthProps","month","years","yearProps","year","locateProps","onRevert","locate","prevProps","onPrev","nextProps","onNext","inview","dates","panels","yearsGrid","setPanelDate","monthsGrid","base","weeks","week","legend","days","day","legends","classDate","setRangeDate","setHoverDate","minDate","beforeDate","maxDate","afterDate","NDatepickerPanelData","valids","ranges","classDateHover","classDateNormal","equalDate","between","hovers","arrive","depart","range","displayFormat","getYearsGrid","getMonthsGrid","NDateHelper","getDate","getDates","getDisplays","time","getDurationData","safeDuration","getDurationString","getDurationMatch","pattern","regex","RegExp","test","getDurationNumber","backup","diffrence","NDatepickerPanelController","updateDates","setDisplayDates","sub","setModelDate","real","temp","before","setModelRange","NDatepickerPanelProps","clearArrive","clearDepart","NDatepickerView","seperator","rangeSeperator","inputs","placeholderArrive","onArrive","placeholderDepart","onDepart","NDatepickerData","NDatepickerController","valid","after","NDatepickerProps","NTimepickerPanelView","timeProps","hours","minutes","seconds","hoursGrid","hour","minutesGrid","minute","secondsGrid","second","NTimepickerPanelData","hoursInterval","minutesInterval","secondsInterval","gridDate","getHoursGrid","getMinutesGrid","getSecondsGrid","NTimepickerPanelController","NTimepickerPanelProps","NTimepickerView","NTimepickerData","NTimepickerController","NTimepickerProps","NDatetimepickerView","datepicker","timepicker","NDatetimepickerData","NDatetimepickerController","NDatetimepickerProps","NDurationpickerView","NDurationpickerData","minDuration","maxDuration","updateDuration","applyIndex","NDurationpickerOptions","NDurationpickerProps","negativeText","NDurationpickerController","NTransferView","controls","moveRightProps","moveSelectedToTarget","moveLeftProps","moveSelectedToSource","source_header","inputProps","sourceSearch","$sourcePlaceholder","select","title","$sourceLabel","moveToTarget","target_header","targetSearch","$targetPlaceholder","$targetLabel","moveToSource","NTransferData","sourceLabel","sourcePlaceholder","targetLabel","targetPlaceholder","NTransferController","updateSource","updateTarget","uniques","sources","log","NTransferProps","NTabsView","indicator","NTabsData","float","lazy","keep","dragOpen","NTabsController","updateTabs","resizer","updateIndicator","names","tl","fixed","NTabsProps","NTabsItemView","isActive","isVisible","tabs","onDragenter","header_icon","header_label","NTabsItemData","NTabsItemController","NTabsItemProps","NCollapseView","NCollapseData","NCollapseController","superFixed","NCollapseProps","NCollapseItemView","header_action","header_angle","NCollapseItemData","NCollapseItemController","NCollapseItemProps","NTagView","NTagData","NTagController","NTagProps","NRatingView","stars","star","closestValue","decimals","starsText","NRatingData","NRatingController","NRatingProps","NPreviewView","safeThumb","thumbType","mime","thumbMime","inTypes","previewTypes","fileType","loaded","openPreview","full","hover","safeFile","fileMime","meta","fullscreen","showPath","showLink","href","$linkText","NPreviewMimes","video","audio","font","application","NPreviewHelper","ext","extension","youtube","vimeo","exts","reader","FileReader","onload","readAsDataURL","NPreviewData","linkText","NPreviewElement","animate","prependTo","NPreviewHandler","backdrop","previews","zIndex","NPreviewController","onChange","openPortal","closePortal","focusPortal","NPreviewProps","fit","forceFile","NPreviewFileModule","NPreviewImageModule","setAttribute","onLoad","onError","NPreviewVideoModule","NPreviewModules","NSliderView","bar","handles","subtract","minfix","steps","labels","NSliderData","maxfix","NSliderController","updateValues","onResize","getClosestStep","splice","isNull","step","NSliderProps","NFormView","NFormData","kind","form","errors","checks","messages","getMessages","dirty","validate","isBool","message","MIN_VALUE","MAX_VALUE","NFormRuleHandler","register","rule","rules","NFormRuleRequired","NFormRuleRequiredIf","NFormRuleRequiredUnless","NFormRuleSame","NFormRuleDiffrent","NFormRuleValue","NFormRuleEmail","NFormRuleMin","NFormRuleMax","NFormRuleMinlength","NFormRuleMaxlength","NFormController","onFieldChange","onFormChange","compareChange","extractChecks","hash","object","NFormProps","NFormItemView","cond","conditional","onoff","NFormItemData","NFormItemController","superView","behavior","scrollIntoView","NFormItemProps","tooltip","conditionOn","conditionOff","NFormBagView","fields","err","NFormBagData","NFormBagController","NFormGroupView","label_icon","label_text","NFormGroupData","superKind","NFormGroupController","NFormGroupProps","NFormFrameView","side","links","NFormFrameData","NFormFrameController","NFormFrameProps","showSearch","NConfigView","alias","propExists","propAwait","defaultsBind","binds","events","toEventKey","solveContext","toPropKey","getProp","updateKey","setInput","getInput","callback","getString","NConfigData","extra","NConfigController","final","getState","exists","solveInput","$scope","$model","$extra","$global","splits","lcfirst","NConfigProps","extraValue","NChartBarView","totalLabel","avgLabel","avgval","avg","bars","maxval","toItem","other","axis","otherLabel","getHeight","NChartBarData","minHeight","NChartBarController","makeDataset","makeMaxval","makeAvgval","NChartBarProps","NChartDonutView","overlap","chart","svg","circle","viewBox","distance","getDistance","dasharr","onPointerleave","NChartDonutData","NChartDonutController","makeTotal","NChartDonutProps","NChartItemView","NChartItemData","NChartItemController","NChartItemProps","NMapView","NMapData","lat","lng","zoom","NMapController","map","Map","cbs","NMapProps","NMapMarkerView","NMapMarkerData","NMapMarkerController","initMarker","importPosition","marker","createMarker","addListener","updatePosition","getPosition","setPosition","superAddress","address","setMarkerByAddress","superFocus","NMapMarkerProps","ctor","$options","attrsList","$attrs","$slots","Comment","NanoImports","App","NInput","NInputNumber","NInputFile","NTextarea","NButton","NButtonGroup","NCheckbox","NCheckboxGroup","NRadio","NRadioGroup","NSelect","NSwitch","NPopover","NPopoverGroup","NPopoverOption","NScrollbar","NVirtualbar","NResizer","NDraglist","NTable","NTableColumn","NPaginator","NInfo","NInfoColumn","NEmptyIcon","NCascader","NCascaderPanel","NModal","NDrawer","NLoader","NDatepicker","NDatepickerPanel","NTimepicker","NTimepickerPanel","NDatetimepicker","NDurationpicker","NTransfer","NTabs","NTabsItem","NCollapse","NCollapseItem","NTag","NRating","NPreview","NSlider","NForm","NFormItem","NFormBag","NFormGroup","NFormFrame","NConfig","NChartBar","NChartDonut","NChartItem","NMap","NMapMarker","Icons","clock","calendar","times","primary","secondary","success","warning","danger","angleUp","angleRight","angleDown","angleLeft","angleDoubleLeft","angleDoubleRight","Install","Settings","pi","globalProperties","cmer","cslo","forEach","NanoModule","Nano","nano"],"sourceRoot":""}